Fixes incorrect ending for some scripts (#7691)
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
This commit is contained in:
parent
827dd4a67c
commit
ffd71b5337
@ -1585,7 +1585,7 @@ BattleScript_MoveEffectFlameBurst::
|
||||
healthbarupdate BS_SCRIPTING
|
||||
datahpupdate BS_SCRIPTING
|
||||
tryfaintmon BS_SCRIPTING
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectPowerTrick::
|
||||
attackcanceler
|
||||
@ -1673,7 +1673,7 @@ BattleScript_DefogDoAnim::
|
||||
BattleScript_DefogPrintString::
|
||||
printfromtable gStatDownStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_DefogTryHazards::
|
||||
BattleScript_DefogTryHazards:
|
||||
copybyte gEffectBattler, gBattlerAttacker
|
||||
trydefog TRUE, NULL
|
||||
copybyte gBattlerAttacker, gEffectBattler
|
||||
@ -1683,6 +1683,12 @@ BattleScript_DefogTryHazardsWithAnim:
|
||||
waitanimation
|
||||
goto BattleScript_DefogTryHazards
|
||||
|
||||
BattleScript_MoveEffectDefog::
|
||||
saveattacker
|
||||
trydefog TRUE, NULL
|
||||
restoreattacker
|
||||
return
|
||||
|
||||
BattleScript_EffectCopycat::
|
||||
attackcanceler
|
||||
attackstring
|
||||
@ -2604,8 +2610,11 @@ BattleScript_EffectMiracleEye::
|
||||
ppreduce
|
||||
setvolatile BS_TARGET, VOLATILE_MIRACLE_EYE
|
||||
goto BattleScript_IdentifiedFoe
|
||||
|
||||
BattleScript_EffectGravity::
|
||||
call BattleScript_EffectGravityInternal
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectGravityInternal:
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
@ -2631,7 +2640,7 @@ BattleScript_GravityLoopEnd:
|
||||
moveendcase MOVEEND_TARGET_VISIBLE
|
||||
jumpifnexttargetvalid BattleScript_GravityLoop
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectRoost::
|
||||
attackcanceler
|
||||
@ -3354,11 +3363,15 @@ BattleScript_EffectReflect::
|
||||
BattleScript_PrintReflectLightScreenSafeguardString::
|
||||
attackanimation
|
||||
waitanimation
|
||||
BattleScript_EffectAuroraVeilSuccess::
|
||||
printfromtable gReflectLightScreenSafeguardStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_MoveEffectAuroraVeil::
|
||||
printfromtable gReflectLightScreenSafeguardStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_VoltAbsorbHeal:
|
||||
copybyte gBattlerAbility, gBattlerTarget
|
||||
tryhealquarterhealth BS_TARGET, BattleScript_MonMadeMoveUseless @ Check if max hp
|
||||
@ -3739,13 +3752,13 @@ BattleScript_EffectSpite::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
@ TODO: Simplfy script
|
||||
BattleScript_EffectHealBell::
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
attackanimation
|
||||
waitanimation
|
||||
BattleScript_EffectHealBell_FromHeal::
|
||||
healpartystatus
|
||||
waitstate
|
||||
printfromtable gPartyStatusHealStringIds
|
||||
@ -3765,6 +3778,15 @@ BattleScript_PartyHealEnd::
|
||||
waitstate
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_MoveEffectAromatherapy::
|
||||
healpartystatus
|
||||
waitstate
|
||||
printfromtable gPartyStatusHealStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
updatestatusicon BS_ATTACKER_WITH_PARTNER
|
||||
waitstate
|
||||
return
|
||||
|
||||
BattleScript_EffectMeanLook::
|
||||
attackcanceler
|
||||
attackstring
|
||||
@ -4770,8 +4792,8 @@ BattleScript_BrickBreakDoHit::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
resultmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
setadditionaleffects
|
||||
tryfaintmon BS_TARGET
|
||||
setadditionaleffects
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectYawn::
|
||||
@ -4783,11 +4805,15 @@ BattleScript_EffectYawn::
|
||||
setyawn BattleScript_ButItFailed
|
||||
attackanimation
|
||||
waitanimation
|
||||
BattleScript_EffectYawnSuccess::
|
||||
printstring STRINGID_PKMNWASMADEDROWSY
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_MoveEffectYawnSide::
|
||||
printstring STRINGID_PKMNWASMADEDROWSY
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_PrintAbilityMadeIneffective::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
call BattleScript_AbilityPopUp
|
||||
@ -7831,7 +7857,7 @@ BattleScript_FlinchPrevention::
|
||||
call BattleScript_AbilityPopUp
|
||||
printstring STRINGID_PKMNSXPREVENTSFLINCHING
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_OwnTempoPrevents::
|
||||
pause B_WAIT_TIME_SHORT
|
||||
@ -9260,26 +9286,7 @@ BattleScript_TargetAbilityStatRaiseRet_End:
|
||||
BattleScript_EffectMaxMove::
|
||||
attackcanceler
|
||||
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
||||
attackstring
|
||||
ppreduce
|
||||
critcalc
|
||||
damagecalc
|
||||
adjustdamage
|
||||
attackanimation
|
||||
waitanimation
|
||||
effectivenesssound
|
||||
hitanimation BS_TARGET
|
||||
waitstate
|
||||
healthbarupdate BS_TARGET
|
||||
datahpupdate BS_TARGET
|
||||
critmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
resultmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
tryfaintmon BS_TARGET
|
||||
setadditionaleffects
|
||||
moveendall
|
||||
end
|
||||
goto BattleScript_HitFromAtkString
|
||||
|
||||
BattleScript_EffectRaiseStatAllies::
|
||||
savetarget
|
||||
@ -9295,7 +9302,7 @@ BattleScript_RaiseSideStatsIncrement:
|
||||
setallytonexttarget BattleScript_RaiseSideStatsLoop
|
||||
BattleScript_RaiseSideStatsEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectLowerStatFoes::
|
||||
savetarget
|
||||
@ -9311,26 +9318,26 @@ BattleScript_LowerSideStatsIncrement:
|
||||
setallytonexttarget BattleScript_LowerSideStatsLoop
|
||||
BattleScript_LowerSideStatsEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectSetWeather::
|
||||
playanimation 0, B_ANIM_MAX_SET_WEATHER
|
||||
printfromtable gMoveWeatherChangeStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectSetTerrain::
|
||||
printfromtable gTerrainStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
||||
call BattleScript_ActivateTerrainEffects
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_DamageNonTypesStarts::
|
||||
printfromtable gDamageNonTypesStartStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_DamageNonTypesContinues::
|
||||
printfromtable gDamageNonTypesDmgStringIds
|
||||
@ -9343,7 +9350,7 @@ BattleScript_EffectTryReducePP::
|
||||
tryspiteppreduce BattleScript_MoveEnd
|
||||
printstring STRINGID_PKMNREDUCEDPP
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectParalyzeSide::
|
||||
savetarget
|
||||
@ -9351,18 +9358,12 @@ BattleScript_EffectParalyzeSide::
|
||||
BattleScript_ParalyzeSideLoop:
|
||||
jumpifabsent BS_TARGET, BattleScript_ParalyzeSideIncrement
|
||||
trysetparalysis BattleScript_ParalyzeSideIncrement
|
||||
statusanimation BS_TARGET
|
||||
updatestatusicon BS_TARGET
|
||||
printfromtable gStatusConditionsStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
updatestatusicon BS_EFFECT_BATTLER
|
||||
waitstate
|
||||
BattleScript_ParalyzeSideIncrement:
|
||||
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_ParalyzeSideEnd
|
||||
setallytonexttarget BattleScript_ParalyzeSideLoop
|
||||
BattleScript_ParalyzeSideEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectPoisonSide::
|
||||
savetarget
|
||||
@ -9370,18 +9371,12 @@ BattleScript_EffectPoisonSide::
|
||||
BattleScript_PoisonSideLoop:
|
||||
jumpifabsent BS_TARGET, BattleScript_PoisonSideIncrement
|
||||
trysetpoison BattleScript_PoisonSideIncrement
|
||||
statusanimation BS_TARGET
|
||||
updatestatusicon BS_TARGET
|
||||
printfromtable gStatusConditionsStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
updatestatusicon BS_EFFECT_BATTLER
|
||||
waitstate
|
||||
BattleScript_PoisonSideIncrement:
|
||||
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_PoisonSideEnd
|
||||
setallytonexttarget BattleScript_PoisonSideLoop
|
||||
BattleScript_PoisonSideEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectPoisonParalyzeSide::
|
||||
savetarget
|
||||
@ -9389,18 +9384,12 @@ BattleScript_EffectPoisonParalyzeSide::
|
||||
BattleScript_PoisonParalyzeSideLoop:
|
||||
jumpifabsent BS_TARGET, BattleScript_PoisonParalyzeSideIncrement
|
||||
trysetpoisonparalysis BattleScript_PoisonParalyzeSideIncrement
|
||||
statusanimation BS_TARGET
|
||||
updatestatusicon BS_TARGET
|
||||
printfromtable gStatusConditionsStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
updatestatusicon BS_EFFECT_BATTLER
|
||||
waitstate
|
||||
BattleScript_PoisonParalyzeSideIncrement:
|
||||
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_PoisonParalyzeSideEnd
|
||||
setallytonexttarget BattleScript_PoisonParalyzeSideLoop
|
||||
BattleScript_PoisonParalyzeSideEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectEffectSporeSide::
|
||||
savetarget
|
||||
@ -9408,18 +9397,12 @@ BattleScript_EffectEffectSporeSide::
|
||||
BattleScript_EffectSporeSideLoop:
|
||||
jumpifabsent BS_TARGET, BattleScript_EffectSporeSideIncrement
|
||||
tryseteffectspore BattleScript_EffectSporeSideIncrement
|
||||
statusanimation BS_TARGET
|
||||
updatestatusicon BS_TARGET
|
||||
printfromtable gStatusConditionsStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
updatestatusicon BS_EFFECT_BATTLER
|
||||
waitstate
|
||||
BattleScript_EffectSporeSideIncrement:
|
||||
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_EffectSporeSideEnd
|
||||
setallytonexttarget BattleScript_EffectSporeSideLoop
|
||||
BattleScript_EffectSporeSideEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectConfuseSide::
|
||||
savetarget
|
||||
@ -9437,11 +9420,11 @@ BattleScript_ConfuseSideIncrement:
|
||||
BattleScript_ConfuseSideEnd:
|
||||
restoretarget
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 1, BattleScript_PrintCoinsScattered @ Gold Rush
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_PrintCoinsScattered:
|
||||
printstring STRINGID_COINSSCATTERED
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectInfatuateSide::
|
||||
savetarget
|
||||
@ -9458,7 +9441,7 @@ BattleScript_InfatuateSideIncrement:
|
||||
setallytonexttarget BattleScript_InfatuateSideLoop
|
||||
BattleScript_InfatuateSideEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectTormentSide::
|
||||
savetarget
|
||||
@ -9474,7 +9457,7 @@ BattleScript_TormentSideIncrement:
|
||||
setallytonexttarget BattleScript_TormentSideLoop
|
||||
BattleScript_TormentSideEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_TormentEnds::
|
||||
printstring STRINGID_TORMENTEDNOMORE
|
||||
@ -9495,7 +9478,7 @@ BattleScript_MeanLookSideIncrement:
|
||||
setallytonexttarget BattleScript_MeanLookSideLoop
|
||||
BattleScript_MeanLookSideEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectRaiseCritAlliesAnim::
|
||||
savetarget
|
||||
@ -9511,7 +9494,7 @@ BattleScript_RaiseCritAlliesIncrement:
|
||||
setallytonexttarget BattleScript_RaiseCritAlliesLoop
|
||||
BattleScript_RaiseCritAlliesEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectHealOneSixthAllies::
|
||||
jumpifteamhealthy BattleScript_MoveEnd
|
||||
@ -9530,7 +9513,7 @@ BattleScript_HealOneSixthAlliesIncrement:
|
||||
setallytonexttarget BattleScript_HealOneSixthAlliesLoop
|
||||
BattleScript_HealOneSixthAlliesEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectRecycleBerriesAllies::
|
||||
savetarget
|
||||
@ -9547,13 +9530,13 @@ BattleScript_RecycleBerriesAlliesIncrement:
|
||||
setallytonexttarget BattleScript_RecycleBerriesAlliesLoop
|
||||
BattleScript_RecycleBerriesAlliesEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
BattleScript_EffectSteelsurge::
|
||||
setsteelsurge BattleScript_MoveEnd
|
||||
printfromtable gDmgHazardsStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
return
|
||||
|
||||
@@@ END MAX MOVES @@@
|
||||
|
||||
|
||||
@ -552,10 +552,10 @@ extern const u8 BattleScript_EffectStonesurge[];
|
||||
extern const u8 BattleScript_EffectSteelsurge[];
|
||||
extern const u8 BattleScript_DamageNonTypesStarts[];
|
||||
extern const u8 BattleScript_DamageNonTypesContinues[];
|
||||
extern const u8 BattleScript_DefogTryHazards[];
|
||||
extern const u8 BattleScript_EffectAuroraVeilSuccess[];
|
||||
extern const u8 BattleScript_MoveEffectDefog[];
|
||||
extern const u8 BattleScript_MoveEffectAuroraVeil[];
|
||||
extern const u8 BattleScript_EffectGravitySuccess[];
|
||||
extern const u8 BattleScript_EffectYawnSuccess[];
|
||||
extern const u8 BattleScript_MoveEffectYawnSide[];
|
||||
extern const u8 BattleScript_EffectTryReducePP[];
|
||||
extern const u8 BattleScript_EffectParalyzeSide[];
|
||||
extern const u8 BattleScript_EffectPoisonSide[];
|
||||
@ -650,7 +650,7 @@ extern const u8 BattleScript_EffectSleepTalk[];
|
||||
extern const u8 BattleScript_EffectDestinyBond[];
|
||||
extern const u8 BattleScript_EffectSpite[];
|
||||
extern const u8 BattleScript_EffectHealBell[];
|
||||
extern const u8 BattleScript_EffectHealBell_FromHeal[];
|
||||
extern const u8 BattleScript_MoveEffectAromatherapy[];
|
||||
extern const u8 BattleScript_EffectMeanLook[];
|
||||
extern const u8 BattleScript_EffectNightmare[];
|
||||
extern const u8 BattleScript_EffectMinimize[];
|
||||
|
||||
@ -2897,7 +2897,7 @@ static inline bool32 TrySetLightScreen(u32 battler)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void SetNonVolatileStatusCondition(u32 effectBattler, enum MoveEffect effect, enum StatusTrigger trigger)
|
||||
static void SetNonVolatileStatus(u32 effectBattler, enum MoveEffect effect, enum StatusTrigger trigger)
|
||||
{
|
||||
gEffectBattler = effectBattler;
|
||||
|
||||
@ -3041,7 +3041,7 @@ void SetMoveEffect(u32 battler, u32 effectBattler, bool32 primary, bool32 certai
|
||||
battlerAbility,
|
||||
gBattleScripting.moveEffect,
|
||||
CHECK_TRIGGER))
|
||||
SetNonVolatileStatusCondition(gEffectBattler, gBattleScripting.moveEffect, TRIGGER_ON_MOVE);
|
||||
SetNonVolatileStatus(gEffectBattler, gBattleScripting.moveEffect, TRIGGER_ON_MOVE);
|
||||
break;
|
||||
case MOVE_EFFECT_CONFUSION:
|
||||
if (!CanBeConfused(gEffectBattler)
|
||||
@ -3079,6 +3079,7 @@ void SetMoveEffect(u32 battler, u32 effectBattler, bool32 primary, bool32 certai
|
||||
gLastUsedAbility = ABILITY_INNER_FOCUS;
|
||||
gBattlerAbility = gEffectBattler;
|
||||
RecordAbilityBattle(gEffectBattler, ABILITY_INNER_FOCUS);
|
||||
BattleScriptPush(gBattlescriptCurrInstr + 1);
|
||||
gBattlescriptCurrInstr = BattleScript_FlinchPrevention;
|
||||
}
|
||||
else
|
||||
@ -3390,6 +3391,7 @@ void SetMoveEffect(u32 battler, u32 effectBattler, bool32 primary, bool32 certai
|
||||
gBattleStruct->moveDamage[i] = gBattleMons[i].maxHP / 16;
|
||||
if (gBattleStruct->moveDamage[i] == 0)
|
||||
gBattleStruct->moveDamage[i] = 1;
|
||||
BattleScriptPush(gBattlescriptCurrInstr + 1);
|
||||
gBattlescriptCurrInstr = BattleScript_MoveEffectFlameBurst;
|
||||
}
|
||||
break;
|
||||
@ -3896,7 +3898,7 @@ void SetMoveEffect(u32 battler, u32 effectBattler, bool32 primary, bool32 certai
|
||||
|| gFieldStatuses & STATUS_FIELD_TERRAIN_ANY)
|
||||
{
|
||||
BattleScriptPush(gBattlescriptCurrInstr + 1);
|
||||
gBattlescriptCurrInstr = BattleScript_DefogTryHazards;
|
||||
gBattlescriptCurrInstr = BattleScript_MoveEffectDefog;
|
||||
}
|
||||
break;
|
||||
case MOVE_EFFECT_AURORA_VEIL:
|
||||
@ -3909,7 +3911,7 @@ void SetMoveEffect(u32 battler, u32 effectBattler, bool32 primary, bool32 certai
|
||||
gSideTimers[GetBattlerSide(gBattlerAttacker)].auroraVeilTimer = gBattleTurnCounter + 5;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_SAFEGUARD;
|
||||
BattleScriptPush(gBattlescriptCurrInstr + 1);
|
||||
gBattlescriptCurrInstr = BattleScript_EffectAuroraVeilSuccess;
|
||||
gBattlescriptCurrInstr = BattleScript_MoveEffectAuroraVeil;
|
||||
}
|
||||
break;
|
||||
case MOVE_EFFECT_GRAVITY:
|
||||
@ -3955,7 +3957,7 @@ void SetMoveEffect(u32 battler, u32 effectBattler, bool32 primary, bool32 certai
|
||||
{
|
||||
gBattleMons[gBattlerTarget].volatiles.yawn = 2;
|
||||
BattleScriptPush(gBattlescriptCurrInstr + 1);
|
||||
gBattlescriptCurrInstr = BattleScript_EffectYawnSuccess;
|
||||
gBattlescriptCurrInstr = BattleScript_MoveEffectYawnSide;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -4021,7 +4023,7 @@ void SetMoveEffect(u32 battler, u32 effectBattler, bool32 primary, bool32 certai
|
||||
break;
|
||||
case MOVE_EFFECT_AROMATHERAPY:
|
||||
BattleScriptPush(gBattlescriptCurrInstr + 1);
|
||||
gBattlescriptCurrInstr = BattleScript_EffectHealBell_FromHeal;
|
||||
gBattlescriptCurrInstr = BattleScript_MoveEffectAromatherapy;
|
||||
break;
|
||||
case MOVE_EFFECT_RECYCLE_BERRIES:
|
||||
if (RandomPercentage(RNG_G_MAX_REPLENISH, 50))
|
||||
@ -14521,13 +14523,13 @@ static void Cmd_setnonvolatilestatus(void)
|
||||
if (gBattleScripting.moveEffect >= MOVE_EFFECT_CONFUSION)
|
||||
SetMoveEffect(gBattleScripting.battler, gEffectBattler, FALSE, FALSE);
|
||||
else
|
||||
SetNonVolatileStatusCondition(gEffectBattler, gBattleScripting.moveEffect, TRIGGER_ON_ABILITY);
|
||||
SetNonVolatileStatus(gEffectBattler, gBattleScripting.moveEffect, TRIGGER_ON_ABILITY);
|
||||
break;
|
||||
case TRIGGER_ON_MOVE:
|
||||
SetNonVolatileStatusCondition(gBattlerTarget, GetMoveNonVolatileStatus(gCurrentMove), TRIGGER_ON_MOVE);
|
||||
SetNonVolatileStatus(gBattlerTarget, GetMoveNonVolatileStatus(gCurrentMove), TRIGGER_ON_MOVE);
|
||||
break;
|
||||
case TRIGGER_ON_PROTECT:
|
||||
SetNonVolatileStatusCondition(gBattlerAttacker, gBattleScripting.moveEffect, TRIGGER_ON_PROTECT);
|
||||
SetNonVolatileStatus(gBattlerAttacker, gBattleScripting.moveEffect, TRIGGER_ON_PROTECT);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -16334,12 +16336,8 @@ static void TrySetParalysis(const u8 *nextInstr, const u8 *failInstr)
|
||||
{
|
||||
if (CanBeParalyzed(gBattlerAttacker, gBattlerTarget, GetBattlerAbility(gBattlerTarget)))
|
||||
{
|
||||
gBattleMons[gBattlerTarget].status1 |= STATUS1_PARALYSIS;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = 3;
|
||||
gEffectBattler = gBattlerTarget;
|
||||
BtlController_EmitSetMonData(gBattlerTarget, B_COMM_TO_CONTROLLER, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gBattlerTarget].status1), &gBattleMons[gBattlerTarget].status1);
|
||||
MarkBattlerForControllerExec(gBattlerTarget);
|
||||
gBattlescriptCurrInstr = nextInstr;
|
||||
gBattlescriptCurrInstr = nextInstr - 1;
|
||||
SetNonVolatileStatus(gBattlerTarget, MOVE_EFFECT_PARALYSIS, TRIGGER_ON_MOVE);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -16351,12 +16349,8 @@ static void TrySetPoison(const u8 *nextInstr, const u8 *failInstr)
|
||||
{
|
||||
if (CanBePoisoned(gBattlerAttacker, gBattlerTarget, GetBattlerAbility(gBattlerAttacker), GetBattlerAbility(gBattlerTarget)))
|
||||
{
|
||||
gBattleMons[gBattlerTarget].status1 |= STATUS1_POISON;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
|
||||
gEffectBattler = gBattlerTarget;
|
||||
BtlController_EmitSetMonData(gBattlerTarget, B_COMM_TO_CONTROLLER, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gBattlerTarget].status1), &gBattleMons[gBattlerTarget].status1);
|
||||
MarkBattlerForControllerExec(gBattlerTarget);
|
||||
gBattlescriptCurrInstr = nextInstr;
|
||||
gBattlescriptCurrInstr = nextInstr - 1;
|
||||
SetNonVolatileStatus(gBattlerTarget, MOVE_EFFECT_POISON, TRIGGER_ON_MOVE);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -16368,17 +16362,8 @@ static void TrySetSleep(const u8 *nextInstr, const u8 *failInstr)
|
||||
{
|
||||
if (CanBeSlept(gBattlerAttacker, gBattlerTarget, GetBattlerAbility(gBattlerTarget), BLOCKED_BY_SLEEP_CLAUSE))
|
||||
{
|
||||
if (B_SLEEP_TURNS >= GEN_5)
|
||||
gBattleMons[gBattlerTarget].status1 |= STATUS1_SLEEP_TURN((Random() % 3) + 2);
|
||||
else
|
||||
gBattleMons[gBattlerTarget].status1 |= STATUS1_SLEEP_TURN((Random() % 4) + 3);
|
||||
|
||||
TryActivateSleepClause(gBattlerTarget, gBattlerPartyIndexes[gBattlerTarget]);
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = 4;
|
||||
gEffectBattler = gBattlerTarget;
|
||||
BtlController_EmitSetMonData(gBattlerTarget, B_COMM_TO_CONTROLLER, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gBattlerTarget].status1), &gBattleMons[gBattlerTarget].status1);
|
||||
MarkBattlerForControllerExec(gBattlerTarget);
|
||||
gBattlescriptCurrInstr = nextInstr;
|
||||
gBattlescriptCurrInstr = nextInstr - 1;
|
||||
SetNonVolatileStatus(gBattlerTarget, MOVE_EFFECT_SLEEP, TRIGGER_ON_MOVE);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -1018,11 +1018,11 @@ DOUBLE_BATTLE_TEST("Dynamax: G-Max Volt Crash paralyzes both opponents")
|
||||
} SCENE {
|
||||
MESSAGE("Pikachu used G-Max Volt Crash!");
|
||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, opponentLeft);
|
||||
STATUS_ICON(opponentLeft, paralysis: TRUE);
|
||||
MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!");
|
||||
STATUS_ICON(opponentLeft, paralysis: TRUE);
|
||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, opponentRight);
|
||||
STATUS_ICON(opponentRight, paralysis: TRUE);
|
||||
MESSAGE("The opposing Wynaut is paralyzed, so it may be unable to move!");
|
||||
STATUS_ICON(opponentRight, paralysis: TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1048,22 +1048,22 @@ DOUBLE_BATTLE_TEST("Dynamax: G-Max Stun Shock paralyzes or poisons both opponent
|
||||
// opponent left
|
||||
ANIMATION(ANIM_TYPE_STATUS, statusAnim, opponentLeft);
|
||||
if (statusAnim == B_ANIM_STATUS_PSN) {
|
||||
STATUS_ICON(opponentLeft, poison: TRUE);
|
||||
MESSAGE("The opposing Wobbuffet was poisoned!");
|
||||
STATUS_ICON(opponentLeft, poison: TRUE);
|
||||
}
|
||||
else {
|
||||
STATUS_ICON(opponentLeft, paralysis: TRUE);
|
||||
MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!");
|
||||
STATUS_ICON(opponentLeft, paralysis: TRUE);
|
||||
}
|
||||
// opponent right
|
||||
ANIMATION(ANIM_TYPE_STATUS, statusAnim, opponentRight);
|
||||
if (statusAnim == B_ANIM_STATUS_PSN) {
|
||||
STATUS_ICON(opponentRight, poison: TRUE);
|
||||
MESSAGE("The opposing Wynaut was poisoned!");
|
||||
STATUS_ICON(opponentRight, poison: TRUE);
|
||||
}
|
||||
else {
|
||||
STATUS_ICON(opponentRight, paralysis: TRUE);
|
||||
MESSAGE("The opposing Wynaut is paralyzed, so it may be unable to move!");
|
||||
STATUS_ICON(opponentRight, paralysis: TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1118,30 +1118,30 @@ DOUBLE_BATTLE_TEST("Dynamax: G-Max Befuddle paralyzes, poisons, or sleeps both o
|
||||
// opponent left
|
||||
ANIMATION(ANIM_TYPE_STATUS, statusAnim, opponentLeft);
|
||||
if (statusAnim == B_ANIM_STATUS_PSN) {
|
||||
STATUS_ICON(opponentLeft, poison: TRUE);
|
||||
MESSAGE("The opposing Wobbuffet was poisoned!");
|
||||
STATUS_ICON(opponentLeft, poison: TRUE);
|
||||
}
|
||||
else if (statusAnim == B_ANIM_STATUS_PRZ) {
|
||||
STATUS_ICON(opponentLeft, paralysis: TRUE);
|
||||
MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!");
|
||||
STATUS_ICON(opponentLeft, paralysis: TRUE);
|
||||
}
|
||||
else {
|
||||
STATUS_ICON(opponentLeft, sleep: TRUE);
|
||||
MESSAGE("The opposing Wobbuffet fell asleep!");
|
||||
STATUS_ICON(opponentLeft, sleep: TRUE);
|
||||
}
|
||||
// opponent right
|
||||
ANIMATION(ANIM_TYPE_STATUS, statusAnim, opponentRight);
|
||||
if (statusAnim == B_ANIM_STATUS_PSN) {
|
||||
STATUS_ICON(opponentRight, poison: TRUE);
|
||||
MESSAGE("The opposing Wobbuffet was poisoned!");
|
||||
STATUS_ICON(opponentRight, poison: TRUE);
|
||||
}
|
||||
else if (statusAnim == B_ANIM_STATUS_PRZ) {
|
||||
STATUS_ICON(opponentRight, paralysis: TRUE);
|
||||
MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!");
|
||||
STATUS_ICON(opponentRight, paralysis: TRUE);
|
||||
}
|
||||
else {
|
||||
STATUS_ICON(opponentRight, sleep: TRUE);
|
||||
MESSAGE("The opposing Wobbuffet fell asleep!");
|
||||
STATUS_ICON(opponentRight, sleep: TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user