mirror of
https://github.com/pret/pokeemerald.git
synced 2026-05-05 21:07:17 -05:00
reworked scripts to remove jumpifnotally / jumpiftargetabsent
This commit is contained in:
parent
e937482c27
commit
7de7599a7b
|
|
@ -2218,16 +2218,6 @@
|
|||
various 0, VARIOUS_SET_MAX_MOVE_EFFECT
|
||||
.endm
|
||||
|
||||
.macro jumpiftargetabsent, ptr:req
|
||||
various 0, VARIOUS_JUMP_IF_TARGET_ABSENT
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro jumpiftargetnotally, ptr:req
|
||||
various 0, VARIOUS_JUMP_IF_TARGET_NOT_ALLY
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro setsteelsurge, failInstr:req
|
||||
various 0, VARIOUS_SET_STEELSURGE
|
||||
.4byte \failInstr
|
||||
|
|
|
|||
|
|
@ -10334,6 +10334,16 @@ BattleScript_SymbiosisActivates::
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_TargetAbilityStatRaiseRet::
|
||||
copybyte gBattlerAbility, gEffectBattler
|
||||
copybyte gBattlerAttacker, gBattlerTarget
|
||||
call BattleScript_AbilityPopUp
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_TargetAbilityStatRaiseRet_End
|
||||
setgraphicalstatchangevalues
|
||||
call BattleScript_StatUp
|
||||
BattleScript_TargetAbilityStatRaiseRet_End:
|
||||
return
|
||||
|
||||
@@@ MAX MOVES @@@
|
||||
BattleScript_EffectMaxMove::
|
||||
attackcanceler
|
||||
|
|
@ -10354,17 +10364,16 @@ BattleScript_EffectMaxMove::
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
resultmessage
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
setmaxmoveeffect
|
||||
tryfaintmon BS_TARGET
|
||||
goto BattleScript_MoveEnd
|
||||
setmaxmoveeffect
|
||||
moveendall
|
||||
end
|
||||
|
||||
@ TODO: Maybe rework to use setallytonexttarget.
|
||||
BattleScript_EffectRaiseStatAllies::
|
||||
savetarget
|
||||
setbyte gBattlerTarget, 0
|
||||
copybyte gBattlerTarget, gBattlerAttacker
|
||||
BattleScript_RaiseSideStatsLoop:
|
||||
jumpiftargetnotally BattleScript_RaiseSideStatsIncrement
|
||||
jumpiftargetabsent BattleScript_RaiseSideStatsIncrement
|
||||
jumpifabsent BS_TARGET, BattleScript_RaiseSideStatsIncrement
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_RaiseSideStatsIncrement
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_RaiseSideStatsIncrement
|
||||
setgraphicalstatchangevalues
|
||||
|
|
@ -10373,18 +10382,17 @@ BattleScript_RaiseSideStatsLoop:
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_RaiseSideStatsIncrement:
|
||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
||||
addbyte gBattlerTarget, 1
|
||||
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_RaiseSideStatsLoop
|
||||
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_RaiseSideStatsEnd
|
||||
setallytonexttarget BattleScript_RaiseSideStatsLoop
|
||||
BattleScript_RaiseSideStatsEnd:
|
||||
restoretarget
|
||||
return
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectLowerStatFoes::
|
||||
savetarget
|
||||
setbyte gBattlerTarget, 0
|
||||
copybyte sBATTLER, gBattlerTarget
|
||||
BattleScript_LowerSideStatsLoop:
|
||||
jumpiftargetally BattleScript_LowerSideStatsIncrement
|
||||
jumpiftargetabsent BattleScript_LowerSideStatsIncrement
|
||||
jumpifabsent BS_TARGET, BattleScript_LowerSideStatsIncrement
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_LowerSideStatsIncrement
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_LowerSideStatsIncrement
|
||||
setgraphicalstatchangevalues
|
||||
|
|
@ -10393,18 +10401,18 @@ BattleScript_LowerSideStatsLoop:
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_LowerSideStatsIncrement:
|
||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
||||
addbyte gBattlerTarget, 1
|
||||
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_LowerSideStatsLoop
|
||||
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_LowerSideStatsEnd
|
||||
setallytonexttarget BattleScript_LowerSideStatsLoop
|
||||
BattleScript_LowerSideStatsEnd:
|
||||
restoretarget
|
||||
return
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectSetWeather::
|
||||
playanimation 0, B_ANIM_MAX_SET_WEATHER
|
||||
printfromtable gMoveWeatherChangeStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
call BattleScript_WeatherFormChanges
|
||||
return
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectSetTerrain::
|
||||
printfromtable gTerrainStringIds
|
||||
|
|
@ -10412,21 +10420,12 @@ BattleScript_EffectSetTerrain::
|
|||
playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG
|
||||
call BattleScript_TerrainSeedLoop
|
||||
jumpifabilitypresent ABILITY_MIMICRY, BattleScript_MimicryActivates_End3
|
||||
return
|
||||
BattleScript_TargetAbilityStatRaiseRet::
|
||||
copybyte gBattlerAbility, gEffectBattler
|
||||
copybyte gBattlerAttacker, gBattlerTarget
|
||||
call BattleScript_AbilityPopUp
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN, BattleScript_TargetAbilityStatRaiseRet_End
|
||||
setgraphicalstatchangevalues
|
||||
call BattleScript_StatUp
|
||||
BattleScript_TargetAbilityStatRaiseRet_End:
|
||||
return
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_DamageNonTypesStarts::
|
||||
printfromtable gDamageNonTypesStartStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_DamageNonTypesContinues::
|
||||
@printfromtable gDamageNonTypesStartStringIds
|
||||
|
|
@ -10463,10 +10462,9 @@ BattleScript_EffectTryReducePP::
|
|||
|
||||
BattleScript_EffectStatus1Foes::
|
||||
savetarget
|
||||
setbyte gBattlerTarget, 0
|
||||
copybyte sBATTLER, gBattlerTarget
|
||||
BattleScript_Status1FoesLoop:
|
||||
jumpiftargetally BattleScript_Status1FoesIncrement
|
||||
jumpiftargetabsent BattleScript_Status1FoesIncrement
|
||||
jumpifabsent BS_TARGET, BattleScript_Status1FoesIncrement
|
||||
trysetstatus1 BattleScript_Status1FoesIncrement
|
||||
statusanimation BS_TARGET
|
||||
updatestatusicon BS_TARGET
|
||||
|
|
@ -10474,18 +10472,17 @@ BattleScript_Status1FoesLoop:
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_UpdateEffectStatusIconRet
|
||||
BattleScript_Status1FoesIncrement:
|
||||
addbyte gBattlerTarget, 1
|
||||
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_Status1FoesLoop
|
||||
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_Status1FoesEnd
|
||||
setallytonexttarget BattleScript_Status1FoesLoop
|
||||
BattleScript_Status1FoesEnd:
|
||||
restoretarget
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectStatus2Foes::
|
||||
savetarget
|
||||
setbyte gBattlerTarget, 0
|
||||
copybyte sBATTLER, gBattlerTarget
|
||||
BattleScript_Status2FoesLoop:
|
||||
jumpiftargetally BattleScript_Status2FoesIncrement
|
||||
jumpiftargetabsent BattleScript_Status2FoesIncrement
|
||||
jumpifabsent BS_TARGET, BattleScript_Status2FoesIncrement
|
||||
trysetstatus2 BattleScript_Status2FoesIncrement
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication, 1, BattleScript_DoConfuseAnim
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication, 2, BattleScript_DoInfatuationAnim
|
||||
|
|
@ -10493,11 +10490,11 @@ BattleScript_Status2FoesPrintMessage:
|
|||
printfromtable gStatus2StringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_Status2FoesIncrement:
|
||||
addbyte gBattlerTarget, 1
|
||||
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_Status2FoesLoop
|
||||
jumpifbytenotequal gBattlerTarget, sBATTLER, BattleScript_Status2FoesEnd
|
||||
setallytonexttarget BattleScript_Status2FoesLoop
|
||||
BattleScript_Status2FoesEnd:
|
||||
restoretarget
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 1, BattleScript_PrintCoinsScattered
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 1, BattleScript_PrintCoinsScattered @ Gold Rush
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_DoConfuseAnim:
|
||||
|
|
@ -10519,10 +10516,9 @@ BattleScript_TormentEnds::
|
|||
|
||||
BattleScript_EffectRaiseCritAlliesAnim::
|
||||
savetarget
|
||||
setbyte gBattlerTarget, 0
|
||||
copybyte gBattlerTarget, gBattlerAttacker
|
||||
BattleScript_RaiseCritAlliesLoop:
|
||||
jumpiftargetnotally BattleScript_RaiseCritAlliesIncrement
|
||||
jumpiftargetabsent BattleScript_RaiseCritAlliesIncrement
|
||||
jumpifabsent BS_TARGET, BattleScript_RaiseCritAlliesIncrement
|
||||
setstatchanger STAT_ATK, 0, FALSE @ for animation
|
||||
setgraphicalstatchangevalues
|
||||
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
||||
|
|
@ -10530,18 +10526,18 @@ BattleScript_RaiseCritAlliesLoop:
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_RaiseCritAlliesIncrement:
|
||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
||||
addbyte gBattlerTarget, 1
|
||||
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_RaiseCritAlliesLoop
|
||||
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_RaiseCritAlliesEnd
|
||||
setallytonexttarget BattleScript_RaiseCritAlliesLoop
|
||||
BattleScript_RaiseCritAlliesEnd:
|
||||
restoretarget
|
||||
return
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectHealOneSixthAllies::
|
||||
jumpifteamhealthy BS_ATTACKER, BattleScript_MoveEnd
|
||||
setbyte gBattlerTarget, 0
|
||||
savetarget
|
||||
copybyte gBattlerTarget, gBattlerAttacker
|
||||
BattleScript_HealOneSixthAlliesLoop:
|
||||
jumpiftargetnotally BattleScript_HealOneSixthAlliesIncrement
|
||||
jumpiftargetabsent BattleScript_HealOneSixthAlliesIncrement
|
||||
jumpifabsent BS_TARGET, BattleScript_HealOneSixthAlliesIncrement
|
||||
tryhealsixthhealth BattleScript_HealOneSixthAlliesIncrement
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
||||
healthbarupdate BS_TARGET
|
||||
|
|
@ -10549,25 +10545,26 @@ BattleScript_HealOneSixthAlliesLoop:
|
|||
printstring STRINGID_PKMNREGAINEDHEALTH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_HealOneSixthAlliesIncrement:
|
||||
addbyte gBattlerTarget, 1
|
||||
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_HealOneSixthAlliesLoop
|
||||
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_HealOneSixthAlliesEnd
|
||||
setallytonexttarget BattleScript_HealOneSixthAlliesLoop
|
||||
BattleScript_HealOneSixthAlliesEnd:
|
||||
restoretarget
|
||||
return
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectCureStatusAllies::
|
||||
jumpifteamhealthy BS_ATTACKER, BattleScript_MoveEnd
|
||||
setbyte gBattlerTarget, 0
|
||||
savetarget
|
||||
copybyte gBattlerTarget, gBattlerAttacker
|
||||
BattleScript_CureStatusAlliesLoop:
|
||||
jumpiftargetnotally BattleScript_CureStatusAlliesIncrement
|
||||
jumpiftargetabsent BattleScript_CureStatusAlliesIncrement
|
||||
jumpifabsent BS_TARGET, BattleScript_CureStatusAlliesIncrement
|
||||
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_CureStatusActivate
|
||||
BattleScript_CureStatusAlliesIncrement:
|
||||
addbyte gBattlerTarget, 1
|
||||
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_CureStatusAlliesLoop
|
||||
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_CureStatusAlliesLoop
|
||||
setallytonexttarget BattleScript_CureStatusAlliesLoop
|
||||
BattleScript_CureStatusAlliesEnd:
|
||||
restoretarget
|
||||
return
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_CureStatusActivate:
|
||||
curestatus BS_TARGET
|
||||
updatestatusicon BS_TARGET
|
||||
|
|
@ -10577,19 +10574,21 @@ BattleScript_CureStatusActivate:
|
|||
|
||||
BattleScript_EffectRecycleBerriesAllies::
|
||||
jumpifteamhealthy BS_ATTACKER, BattleScript_MoveEnd
|
||||
setbyte gBattlerTarget, 0
|
||||
savetarget
|
||||
copybyte gBattlerTarget, gBattlerAttacker
|
||||
BattleScript_RecycleBerriesAlliesLoop:
|
||||
jumpiftargetnotally BattleScript_RecycleBerriesAlliesIncrement
|
||||
jumpiftargetabsent BattleScript_RecycleBerriesAlliesIncrement
|
||||
jumpifabsent BS_TARGET, BattleScript_RecycleBerriesAlliesIncrement
|
||||
tryrecycleberry BattleScript_RecycleBerriesAlliesIncrement
|
||||
printstring STRINGID_XFOUNDONEY
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_RecycleBerriesAlliesIncrement:
|
||||
addbyte gBattlerTarget, 1
|
||||
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_RecycleBerriesAlliesLoop
|
||||
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_RecycleBerriesAlliesEnd
|
||||
setallytonexttarget BattleScript_RecycleBerriesAlliesLoop
|
||||
BattleScript_RecycleBerriesAlliesEnd:
|
||||
restoretarget
|
||||
return
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
@@ End Max Moves
|
||||
|
||||
BattleScript_PokemonCantUseTheMove::
|
||||
attackstring
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@
|
|||
#define B_LAST_USED_BALL_BUTTON R_BUTTON // If last used ball is implemented, this button (or button combo) will trigger throwing the last used ball.
|
||||
|
||||
// Other settings
|
||||
#define B_DOUBLE_WILD_CHANCE 0 // % chance of encountering two Pokémon in a Wild Encounter.
|
||||
#define B_DOUBLE_WILD_CHANCE 100 // % chance of encountering two Pokémon in a Wild Encounter.
|
||||
#define B_MULTI_BATTLE_WHITEOUT GEN_LATEST // In Gen4+, multi battles end when the Player and also their Partner don't have any more Pokémon to fight.
|
||||
#define B_EVOLUTION_AFTER_WHITEOUT GEN_LATEST // In Gen6+, Pokemon that qualify for evolution after battle will evolve even if the player loses.
|
||||
#define B_WILD_NATURAL_ENEMIES TRUE // If set to TRUE, certain wild mon species will attack other species when partnered in double wild battles (eg. Zangoose vs Seviper)
|
||||
|
|
|
|||
|
|
@ -261,14 +261,12 @@
|
|||
#define VARIOUS_JUMP_IF_SHELL_TRAP 169
|
||||
#define VARIOUS_SET_MAX_MOVE_EFFECT 170
|
||||
#define VARIOUS_JUMP_IF_NO_VALID_TARGETS 171
|
||||
#define VARIOUS_JUMP_IF_TARGET_NOT_ALLY 172
|
||||
#define VARIOUS_JUMP_IF_TARGET_ABSENT 173
|
||||
#define VARIOUS_SET_STEELSURGE 174
|
||||
#define VARIOUS_DAMAGE_NON_TYPES 175
|
||||
#define VARIOUS_TRY_SET_STATUS1 176
|
||||
#define VARIOUS_TRY_SET_STATUS2 177
|
||||
#define VARIOUS_TRY_HEAL_SIXTH_HP 178
|
||||
#define VARIOUS_TRY_RECYCLE_BERRY 179
|
||||
#define VARIOUS_SET_STEELSURGE 172
|
||||
#define VARIOUS_DAMAGE_NON_TYPES 173
|
||||
#define VARIOUS_TRY_SET_STATUS1 174
|
||||
#define VARIOUS_TRY_SET_STATUS2 175
|
||||
#define VARIOUS_TRY_HEAL_SIXTH_HP 176
|
||||
#define VARIOUS_TRY_RECYCLE_BERRY 177
|
||||
|
||||
// Cmd_manipulatedamage
|
||||
#define DMG_CHANGE_SIGN 0
|
||||
|
|
|
|||
|
|
@ -11164,24 +11164,6 @@ static void Cmd_various(void)
|
|||
return;
|
||||
break;
|
||||
}
|
||||
case VARIOUS_JUMP_IF_TARGET_NOT_ALLY:
|
||||
{
|
||||
VARIOUS_ARGS(const u8 *jumpInstr);
|
||||
if (GetBattlerSide(gBattlerTarget) != GetBattlerSide(gBattlerAttacker))
|
||||
gBattlescriptCurrInstr = cmd->jumpInstr;
|
||||
else
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
return;
|
||||
}
|
||||
case VARIOUS_JUMP_IF_TARGET_ABSENT:
|
||||
{
|
||||
VARIOUS_ARGS(const u8 *jumpInstr);
|
||||
if (!IsBattlerAlive(gBattlerTarget))
|
||||
gBattlescriptCurrInstr = cmd->jumpInstr;
|
||||
else
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
return;
|
||||
}
|
||||
case VARIOUS_SET_STEELSURGE:
|
||||
{
|
||||
VARIOUS_ARGS(const u8 *failInstr);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user