Turned Stone Axe's and Ceaseless Edge's effects into MOVE_EFFECTs

This commit is contained in:
LOuroboros 2023-01-05 03:01:18 -03:00
parent 7e398ce80e
commit 72566e6323
4 changed files with 41 additions and 9 deletions

View File

@ -441,14 +441,18 @@ BattleScript_EffectStoneAxe::
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
resultmessage resultmessage
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
seteffectwithchance
tryfaintmon BS_TARGET tryfaintmon BS_TARGET
setstealthrock BattleScript_ButItFailed setmoveeffect MOVE_EFFECT_STEALTH_ROCK
printstring STRINGID_POINTEDSTONESFLOAT seteffectprimary
waitmessage B_WAIT_TIME_LONG
moveendall moveendall
end end
BattleScript_StealthRockActivates::
setstealthrock BattleScript_MoveEnd
printstring STRINGID_POINTEDSTONESFLOAT
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectDireClaw:: BattleScript_EffectDireClaw::
setmoveeffect MOVE_EFFECT_DIRE_CLAW setmoveeffect MOVE_EFFECT_DIRE_CLAW
goto BattleScript_EffectHit goto BattleScript_EffectHit
@ -472,14 +476,18 @@ BattleScript_EffectCeaselessEdge::
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
resultmessage resultmessage
waitmessage B_WAIT_TIME_LONG waitmessage B_WAIT_TIME_LONG
seteffectwithchance
tryfaintmon BS_TARGET tryfaintmon BS_TARGET
trysetspikes BattleScript_ButItFailedAtkStringPpReduce setmoveeffect MOVE_EFFECT_SPIKES
printstring STRINGID_SPIKESSCATTERED seteffectprimary
waitmessage B_WAIT_TIME_LONG
moveendall moveendall
end end
BattleScript_SpikesActivate::
trysetspikes BattleScript_MoveEnd
printstring STRINGID_SPIKESSCATTERED
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectTeatime:: BattleScript_EffectTeatime::
attackcanceler attackcanceler
attackstring attackstring

View File

@ -448,6 +448,8 @@ extern const u8 BattleScript_SupremeOverlordActivates[];
extern const u8 BattleScript_CostarActivates[]; extern const u8 BattleScript_CostarActivates[];
extern const u8 BattleScript_ToxicDebrisActivates[]; extern const u8 BattleScript_ToxicDebrisActivates[];
extern const u8 BattleScript_EarthEaterActivates[]; extern const u8 BattleScript_EarthEaterActivates[];
extern const u8 BattleScript_StealthRockActivates[];
extern const u8 BattleScript_SpikesActivate[];
// zmoves // zmoves
extern const u8 BattleScript_ZMoveActivateDamaging[]; extern const u8 BattleScript_ZMoveActivateDamaging[];

View File

@ -372,8 +372,10 @@
#define MOVE_EFFECT_TRAP_BOTH 70 #define MOVE_EFFECT_TRAP_BOTH 70
#define MOVE_EFFECT_DOUBLE_SHOCK 71 #define MOVE_EFFECT_DOUBLE_SHOCK 71
#define MOVE_EFFECT_DIRE_CLAW 72 #define MOVE_EFFECT_DIRE_CLAW 72
#define MOVE_EFFECT_STEALTH_ROCK 73
#define MOVE_EFFECT_SPIKES 74
#define NUM_MOVE_EFFECTS 73 #define NUM_MOVE_EFFECTS 75
#define MOVE_EFFECT_AFFECTS_USER 0x4000 #define MOVE_EFFECT_AFFECTS_USER 0x4000
#define MOVE_EFFECT_CERTAIN 0x8000 #define MOVE_EFFECT_CERTAIN 0x8000

View File

@ -2789,6 +2789,7 @@ void SetMoveEffect(bool32 primary, u32 certain)
bool32 mirrorArmorReflected = (GetBattlerAbility(gBattlerTarget) == ABILITY_MIRROR_ARMOR); bool32 mirrorArmorReflected = (GetBattlerAbility(gBattlerTarget) == ABILITY_MIRROR_ARMOR);
u32 flags = 0; u32 flags = 0;
u16 battlerAbility; u16 battlerAbility;
bool8 activateAfterFaint = FALSE;
if (gSpecialStatuses[gBattlerAttacker].parentalBondState == PARENTAL_BOND_1ST_HIT if (gSpecialStatuses[gBattlerAttacker].parentalBondState == PARENTAL_BOND_1ST_HIT
&& gBattleMons[gBattlerTarget].hp != 0 && gBattleMons[gBattlerTarget].hp != 0
@ -2806,6 +2807,10 @@ void SetMoveEffect(bool32 primary, u32 certain)
gBattleStruct->moveEffect2 = gBattleScripting.moveEffect; gBattleStruct->moveEffect2 = gBattleScripting.moveEffect;
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
return; return;
case MOVE_EFFECT_STEALTH_ROCK:
case MOVE_EFFECT_SPIKES:
activateAfterFaint = TRUE;
break;
} }
if (gBattleScripting.moveEffect & MOVE_EFFECT_AFFECTS_USER) if (gBattleScripting.moveEffect & MOVE_EFFECT_AFFECTS_USER)
@ -2838,6 +2843,7 @@ void SetMoveEffect(bool32 primary, u32 certain)
INCREMENT_RESET_RETURN INCREMENT_RESET_RETURN
if (gBattleMons[gEffectBattler].hp == 0 if (gBattleMons[gEffectBattler].hp == 0
&& !activateAfterFaint
&& gBattleScripting.moveEffect != MOVE_EFFECT_PAYDAY && gBattleScripting.moveEffect != MOVE_EFFECT_PAYDAY
&& gBattleScripting.moveEffect != MOVE_EFFECT_STEAL_ITEM && gBattleScripting.moveEffect != MOVE_EFFECT_STEAL_ITEM
&& gBattleScripting.moveEffect != MOVE_EFFECT_BUG_BITE) && gBattleScripting.moveEffect != MOVE_EFFECT_BUG_BITE)
@ -3659,6 +3665,20 @@ void SetMoveEffect(bool32 primary, u32 certain)
SetMoveEffect(TRUE, 0); SetMoveEffect(TRUE, 0);
} }
break; break;
case MOVE_EFFECT_STEALTH_ROCK:
if (!(gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_STEALTH_ROCK))
{
BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_StealthRockActivates;
}
break;
case MOVE_EFFECT_SPIKES:
if (!(gSideStatuses[GetBattlerSide(gEffectBattler)] & SIDE_STATUS_SPIKES))
{
BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_SpikesActivate;
}
break;
} }
} }
} }