mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-15 00:30:05 -05:00
battle script updates
This commit is contained in:
parent
0b0db8c744
commit
fddda28ba7
|
|
@ -710,8 +710,9 @@
|
|||
.byte 0x7c
|
||||
.endm
|
||||
|
||||
.macro setrain
|
||||
.macro setfieldweather weather:req
|
||||
.byte 0x7d
|
||||
.byte \weather
|
||||
.endm
|
||||
|
||||
.macro setreflect
|
||||
|
|
@ -1351,6 +1352,22 @@
|
|||
.endm
|
||||
|
||||
@ callnative macros
|
||||
.macro savetarget
|
||||
callnative BS_SaveTarget
|
||||
.endm
|
||||
|
||||
.macro restoretarget
|
||||
callnative BS_RestoreTarget
|
||||
.endm
|
||||
|
||||
.macro saveattacker
|
||||
callnative BS_SaveAttacker
|
||||
.endm
|
||||
|
||||
.macro restoreattacker
|
||||
callnative BS_RestoreAttacker
|
||||
.endm
|
||||
|
||||
.macro metalburstdamagecalculator failInstr:req
|
||||
callnative BS_CalcMetalBurstDmg
|
||||
.4byte \failInstr
|
||||
|
|
@ -1411,10 +1428,6 @@
|
|||
callnative BS_TryRevertWeatherForm
|
||||
.endm
|
||||
|
||||
.macro setsnow
|
||||
callnative BS_SetSnow
|
||||
.endm
|
||||
|
||||
.macro applysaltcure battler:req
|
||||
callnative BS_ApplySaltCure
|
||||
.byte \battler
|
||||
|
|
@ -1628,6 +1641,10 @@
|
|||
callnative BS_TryUpdateRecoilTracker
|
||||
.endm
|
||||
|
||||
.macro tryupdateleaderscresttracker
|
||||
callnative BS_TryUpdateLeadersCrestTracker
|
||||
.endm
|
||||
|
||||
.macro trytidyup clear:req, jumpInstr:req
|
||||
callnative BS_TryTidyUp
|
||||
.byte \clear
|
||||
|
|
@ -1637,7 +1654,7 @@
|
|||
.macro trygulpmissile
|
||||
callnative BS_TryGulpMissile
|
||||
.endm
|
||||
|
||||
|
||||
.macro tryactivategulpmissile
|
||||
callnative BS_TryActivateGulpMissile
|
||||
.endm
|
||||
|
|
@ -1647,6 +1664,14 @@
|
|||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro removeweather
|
||||
callnative BS_RemoveWeather
|
||||
.endm
|
||||
|
||||
.macro applyterastallization
|
||||
callnative BS_ApplyTerastallization
|
||||
.endm
|
||||
|
||||
@ various command changed to more readable macros
|
||||
.macro cancelmultiturnmoves battler:req
|
||||
various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES
|
||||
|
|
@ -1769,14 +1794,6 @@
|
|||
various \battler, VARIOUS_SWITCHIN_ABILITIES
|
||||
.endm
|
||||
|
||||
.macro savetarget
|
||||
various BS_TARGET, VARIOUS_SAVE_TARGET
|
||||
.endm
|
||||
|
||||
.macro restoretarget
|
||||
various BS_TARGET, VARIOUS_RESTORE_TARGET
|
||||
.endm
|
||||
|
||||
.macro instanthpdrop battler:req
|
||||
various \battler, VARIOUS_INSTANT_HP_DROP
|
||||
.endm
|
||||
|
|
@ -2211,10 +2228,6 @@
|
|||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro shellsidearmcheck
|
||||
various BS_ATTACKER, VARIOUS_SHELL_SIDE_ARM_CHECK
|
||||
.endm
|
||||
|
||||
.macro jumpifteanoberry jumpInstr:req
|
||||
various BS_ATTACKER, VARIOUS_TEATIME_TARGETS
|
||||
.4byte \jumpInstr
|
||||
|
|
@ -2282,11 +2295,6 @@
|
|||
various \battler, VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES
|
||||
.endm
|
||||
|
||||
.macro jumpifleafguardprotected battler:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
@ various remaining from pokefirered
|
||||
.macro getbattlersforrecall
|
||||
various BS_ATTACKER, VARIOUS_GET_BATTLERS_FOR_RECALL
|
||||
|
|
@ -2399,10 +2407,6 @@
|
|||
manipulatedamage DMG_CURR_ATTACKER_HP
|
||||
.endm
|
||||
|
||||
.macro dmg_1_2_attackerhp
|
||||
manipulatedamage DMG_1_2_ATTACKER_HP
|
||||
.endm
|
||||
|
||||
.macro jumpifflowerveil jumpInstr:req
|
||||
jumpifnottype BS_TARGET, TYPE_GRASS, 1f
|
||||
jumpifability BS_TARGET_SIDE, ABILITY_FLOWER_VEIL, \jumpInstr
|
||||
|
|
@ -2433,6 +2437,11 @@
|
|||
goto \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifleafguardprotected battler:req, jumpInstr:req
|
||||
various \battler, VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifsafeguard jumpInstr:req
|
||||
jumpifability BS_ATTACKER, ABILITY_INFILTRATOR, 1f
|
||||
jumpifsideaffecting BS_TARGET, SIDE_STATUS_SAFEGUARD, \jumpInstr
|
||||
|
|
|
|||
|
|
@ -141,6 +141,54 @@ BattleScript_SilphScopeUnveiled::
|
|||
|
||||
@ pokeemerald
|
||||
|
||||
BattleScript_Terastallization::
|
||||
@ TODO: no string prints in S/V, but right now this helps with clarity
|
||||
printstring STRINGID_PKMNSTORINGENERGY
|
||||
playanimation BS_ATTACKER, B_ANIM_TERA_CHARGE
|
||||
waitanimation
|
||||
applyterastallization
|
||||
playanimation BS_ATTACKER, B_ANIM_TERA_ACTIVATE
|
||||
waitanimation
|
||||
printstring STRINGID_PKMNTERASTALLIZEDINTO
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end3
|
||||
|
||||
BattleScript_TeraFormChange::
|
||||
@ TODO: no string prints in S/V, but right now this helps with clarity
|
||||
printstring STRINGID_PKMNSTORINGENERGY
|
||||
handleformchange BS_ATTACKER, 0
|
||||
handleformchange BS_ATTACKER, 1
|
||||
playanimation BS_ATTACKER, B_ANIM_TERA_CHARGE
|
||||
waitanimation
|
||||
applyterastallization
|
||||
playanimation BS_ATTACKER, B_ANIM_TERA_ACTIVATE
|
||||
waitanimation
|
||||
handleformchange BS_ATTACKER, 2
|
||||
printstring STRINGID_PKMNTERASTALLIZEDINTO
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
switchinabilities BS_ATTACKER
|
||||
end3
|
||||
|
||||
BattleScript_LowerAtkSpAtk::
|
||||
jumpifstat BS_EFFECT_BATTLER, CMP_GREATER_THAN, STAT_ATK, MIN_STAT_STAGE, BattleScript_LowerAtkSpAtkDoAnim
|
||||
jumpifstat BS_EFFECT_BATTLER, CMP_EQUAL, STAT_SPATK, MIN_STAT_STAGE, BattleScript_LowerAtkSpAtkEnd
|
||||
BattleScript_LowerAtkSpAtkDoAnim::
|
||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
||||
playstatchangeanimation BS_EFFECT_BATTLER, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE
|
||||
setstatchanger STAT_ATK, 1, TRUE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_LowerAtkSpAtkTrySpAtk
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_LowerAtkSpAtkTrySpAtk
|
||||
printfromtable gStatDownStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_LowerAtkSpAtkTrySpAtk::
|
||||
setstatchanger STAT_SPATK, 1, TRUE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_LowerAtkSpAtkEnd
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_LowerAtkSpAtkEnd
|
||||
printfromtable gStatDownStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_LowerAtkSpAtkEnd:
|
||||
return
|
||||
|
||||
BattleScript_EffectSpicyExtract::
|
||||
attackcanceler
|
||||
jumpifsubstituteblocks BattleScript_ButItFailed
|
||||
|
|
@ -317,7 +365,7 @@ BattleScript_EffectChillyReception::
|
|||
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_RAIN_PRIMAL, BattleScript_EffectChillyReceptionBlockedByPrimalRain
|
||||
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_STRONG_WINDS, BattleScript_EffectChillyReceptionBlockedByStrongWinds
|
||||
call BattleScript_EffectChillyReceptionPlayAnimation
|
||||
setsnow
|
||||
setfieldweather ENUM_WEATHER_SNOW
|
||||
call BattleScript_MoveWeatherChangeRet
|
||||
goto BattleScript_MoveSwitch
|
||||
BattleScript_EffectChillyReceptionPlayAnimation:
|
||||
|
|
@ -703,12 +751,6 @@ BattleScript_EffectShellTrap::
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_SteelBeamSelfDamage::
|
||||
dmg_1_2_attackerhp
|
||||
healthbarupdate BS_ATTACKER
|
||||
datahpupdate BS_ATTACKER
|
||||
return
|
||||
|
||||
BattleScript_EffectCourtChange::
|
||||
attackcanceler
|
||||
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
|
||||
|
|
@ -880,10 +922,6 @@ BattleScript_FlingMissed:
|
|||
ppreduce
|
||||
goto BattleScript_MoveMissedPause
|
||||
|
||||
BattleScript_EffectShellSideArm::
|
||||
shellsidearmcheck
|
||||
goto BattleScript_EffectHit
|
||||
|
||||
BattleScript_EffectPhotonGeyser::
|
||||
setphotongeysercategory
|
||||
goto BattleScript_EffectHit
|
||||
|
|
@ -1816,6 +1854,8 @@ BattleScript_EffectCopycat::
|
|||
trycopycat BattleScript_CopycatFail
|
||||
attackanimation
|
||||
waitanimation
|
||||
setbyte sB_ANIM_TURN, 0
|
||||
setbyte sB_ANIM_TARGETS_HIT, 0
|
||||
jumptocalledmove TRUE
|
||||
BattleScript_CopycatFail:
|
||||
ppreduce
|
||||
|
|
@ -1893,6 +1933,7 @@ BattleScript_EffectHitSwitchTarget::
|
|||
tryfaintmon BS_TARGET
|
||||
jumpiffainted BS_TARGET, TRUE, BattleScript_MoveEnd
|
||||
jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut
|
||||
jumpifability BS_TARGET, ABILITY_GUARD_DOG, BattleScript_MoveEnd
|
||||
jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted
|
||||
jumpiftargetdynamaxed BattleScript_HitSwitchTargetDynamaxed
|
||||
tryhitswitchtarget BattleScript_MoveEnd
|
||||
|
|
@ -2839,12 +2880,11 @@ BattleScript_EffectHealBlock::
|
|||
BattleScript_EffectHitEscape::
|
||||
call BattleScript_EffectHit_Ret
|
||||
jumpifmovehadnoeffect BattleScript_MoveEnd
|
||||
jumpifability BS_TARGET, ABILITY_GUARD_DOG, BattleScript_MoveEnd
|
||||
tryfaintmon BS_TARGET
|
||||
moveendto MOVEEND_ATTACKER_VISIBLE
|
||||
moveendfrom MOVEEND_TARGET_VISIBLE
|
||||
jumpifbattleend BattleScript_HitEscapeEnd
|
||||
jumpifbyte CMP_NOT_EQUAL gBattleOutcome 0, BattleScript_HitEscapeEnd
|
||||
jumpifbyte CMP_NOT_EQUAL, gBattleOutcome, 0, BattleScript_HitEscapeEnd
|
||||
jumpifemergencyexited BS_TARGET, BattleScript_HitEscapeEnd
|
||||
goto BattleScript_MoveSwitch
|
||||
BattleScript_HitEscapeEnd:
|
||||
|
|
@ -3120,13 +3160,6 @@ BattleScript_MaxHp50Recoil::
|
|||
tryfaintmon BS_ATTACKER
|
||||
return
|
||||
|
||||
BattleScript_PreserveMissedBitDoMoveAnim:
|
||||
bichalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
||||
attackanimation
|
||||
waitanimation
|
||||
orhalfword gMoveResultFlags, MOVE_RESULT_MISSED
|
||||
return
|
||||
|
||||
BattleScript_EffectDreamEater::
|
||||
attackcanceler
|
||||
jumpifsubstituteblocks BattleScript_DreamEaterNoEffect
|
||||
|
|
@ -3266,6 +3299,7 @@ BattleScript_EffectStatDown:
|
|||
BattleScript_StatDownFromAttackString:
|
||||
attackstring
|
||||
ppreduce
|
||||
BattleScript_EffectStatDownFromStatBuffChange:
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_StatDownEnd
|
||||
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_StatDownDoAnim
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_StatDownEnd
|
||||
|
|
@ -3276,6 +3310,7 @@ BattleScript_StatDownDoAnim::
|
|||
waitanimation
|
||||
setgraphicalstatchangevalues
|
||||
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
||||
bicword gHitMarker, HITMARKER_DISABLE_ANIMATION
|
||||
BattleScript_StatDownPrintString::
|
||||
printfromtable gStatDownStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
|
|
@ -3308,7 +3343,8 @@ BattleScript_MirrorArmorReflectStickyWeb:
|
|||
call BattleScript_AbilityPopUp
|
||||
setattackertostickywebuser
|
||||
jumpifbyteequal gBattlerAttacker, gBattlerTarget, BattleScript_StickyWebOnSwitchInEnd @ Sticky web user not on field -> no stat loss
|
||||
goto BattleScript_MirrorArmorReflectStatLoss
|
||||
call BattleScript_MirrorArmorReflectStatLoss
|
||||
goto BattleScript_StickyWebOnSwitchInEnd
|
||||
|
||||
BattleScript_StatDown::
|
||||
playanimation BS_EFFECT_BATTLER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
||||
|
|
@ -4389,7 +4425,7 @@ BattleScript_EffectSandstorm::
|
|||
attackstring
|
||||
ppreduce
|
||||
call BattleScript_CheckPrimalWeather
|
||||
setsandstorm
|
||||
setfieldweather ENUM_WEATHER_SANDSTORM
|
||||
goto BattleScript_MoveWeatherChange
|
||||
|
||||
BattleScript_EffectRollout::
|
||||
|
|
@ -4554,7 +4590,7 @@ BattleScript_EffectRainDance::
|
|||
attackstring
|
||||
ppreduce
|
||||
call BattleScript_CheckPrimalWeather
|
||||
setrain
|
||||
setfieldweather ENUM_WEATHER_RAIN
|
||||
BattleScript_MoveWeatherChange::
|
||||
attackanimation
|
||||
waitanimation
|
||||
|
|
@ -4572,7 +4608,7 @@ BattleScript_EffectSunnyDay::
|
|||
attackstring
|
||||
ppreduce
|
||||
call BattleScript_CheckPrimalWeather
|
||||
setsunny
|
||||
setfieldweather ENUM_WEATHER_SUN
|
||||
goto BattleScript_MoveWeatherChange
|
||||
|
||||
BattleScript_ExtremelyHarshSunlightWasNotLessened:
|
||||
|
|
@ -4930,7 +4966,7 @@ BattleScript_EffectHail::
|
|||
attackstring
|
||||
ppreduce
|
||||
call BattleScript_CheckPrimalWeather
|
||||
sethail
|
||||
setfieldweather ENUM_WEATHER_HAIL
|
||||
goto BattleScript_MoveWeatherChange
|
||||
|
||||
BattleScript_EffectTorment::
|
||||
|
|
@ -5553,6 +5589,7 @@ BattleScript_FaintAttacker::
|
|||
BattleScript_FaintTarget::
|
||||
tryillusionoff BS_TARGET
|
||||
tryactivategulpmissile
|
||||
tryupdateleaderscresttracker
|
||||
playfaintcry BS_TARGET
|
||||
pause B_WAIT_TIME_LONG
|
||||
dofaintanimation BS_TARGET
|
||||
|
|
@ -5715,7 +5752,7 @@ BattleScript_PrintFullBox::
|
|||
|
||||
BattleScript_ActionSwitch::
|
||||
hpthresholds2 BS_ATTACKER
|
||||
copybyte sSAVED_BATTLER, gBattlerAttacker
|
||||
saveattacker
|
||||
printstring STRINGID_RETURNMON
|
||||
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_PursuitSwitchDmgSetMultihit
|
||||
setmultihit 1
|
||||
|
|
@ -5733,7 +5770,7 @@ BattleScript_DoSwitchOut::
|
|||
switchoutabilities BS_ATTACKER
|
||||
updatedynamax
|
||||
waitstate
|
||||
copybyte gBattlerAttacker, sSAVED_BATTLER
|
||||
restoreattacker
|
||||
returnatktoball
|
||||
waitstate
|
||||
drawpartystatussummary BS_ATTACKER
|
||||
|
|
@ -5881,6 +5918,23 @@ BattleScript_SunlightFaded::
|
|||
call BattleScript_ActivateWeatherAbilities
|
||||
end2
|
||||
|
||||
BattleScript_FogContinues::
|
||||
printstring STRINGID_FOGISDEEP
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
playanimation BS_ATTACKER, B_ANIM_FOG_CONTINUES
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
end2
|
||||
|
||||
BattleScript_FogEnded_Ret::
|
||||
printstring STRINGID_FOGLIFTED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
call BattleScript_ActivateWeatherAbilities
|
||||
return
|
||||
|
||||
BattleScript_FogEnded::
|
||||
call BattleScript_FogEnded_Ret
|
||||
end2
|
||||
|
||||
BattleScript_OverworldStatusStarts::
|
||||
printfromtable gStartingStatusStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
|
|
@ -6261,6 +6315,7 @@ BattleScript_ToxicSpikesPoisoned::
|
|||
|
||||
BattleScript_StickyWebOnSwitchIn::
|
||||
savetarget
|
||||
saveattacker
|
||||
copybyte gBattlerTarget, sBATTLER
|
||||
setbyte sSTICKY_WEB_STAT_DROP, 1
|
||||
printstring STRINGID_STICKYWEBSWITCHIN
|
||||
|
|
@ -6279,6 +6334,7 @@ BattleScript_StickyWebOnSwitchInPrintStatMsg:
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_StickyWebOnSwitchInEnd:
|
||||
restoretarget
|
||||
restoreattacker
|
||||
return
|
||||
|
||||
BattleScript_PerishSongTakesLife::
|
||||
|
|
@ -6326,7 +6382,7 @@ BattleScript_GulpMissileNoSecondEffectGorging:
|
|||
|
||||
BattleScript_GulpMissileGulping::
|
||||
call BattleScript_AbilityPopUp
|
||||
playanimation BS_ATTACKER, B_ANIM_GULP_MISSILE
|
||||
playanimation BS_ATTACKER, B_ANIM_GULP_MISSILE
|
||||
waitanimation
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
effectivenesssound
|
||||
|
|
@ -6727,7 +6783,7 @@ BattleScript_TurnHeal:
|
|||
end2
|
||||
|
||||
BattleScript_AquaRingHeal::
|
||||
playanimation BS_ATTACKER, B_ANIM_AQUA_RING_HEAL
|
||||
playanimation BS_ATTACKER, B_ANIM_AQUA_RING_HEAL
|
||||
printstring STRINGID_AQUARINGHEAL
|
||||
goto BattleScript_TurnHeal
|
||||
|
||||
|
|
@ -6872,17 +6928,6 @@ BattleScript_OneHitKOMsg::
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_SAtkDown2::
|
||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
||||
playstatchangeanimation BS_ATTACKER, BIT_SPATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
|
||||
setstatchanger STAT_SPATK, 2, TRUE
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_ALLOW_PTR, BattleScript_SAtkDown2End
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_SAtkDown2End
|
||||
printfromtable gStatDownStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_SAtkDown2End::
|
||||
return
|
||||
|
||||
BattleScript_MoveEffectClearSmog::
|
||||
printstring STRINGID_RESETSTARGETSSTATLEVELS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
|
|
@ -6979,6 +7024,29 @@ BattleScript_AttackerFormChangeEnd3NoPopup::
|
|||
call BattleScript_AttackerFormChangeNoPopup
|
||||
end3
|
||||
|
||||
BattleScript_AttackerFormChangeWithString::
|
||||
pause 5
|
||||
copybyte gBattlerAbility, gBattlerAttacker
|
||||
call BattleScript_AbilityPopUp
|
||||
flushtextbox
|
||||
BattleScript_AttackerFormChangeWithStringNoPopup::
|
||||
handleformchange BS_ATTACKER, 0
|
||||
handleformchange BS_ATTACKER, 1
|
||||
playanimation BS_ATTACKER, B_ANIM_FORM_CHANGE
|
||||
waitanimation
|
||||
handleformchange BS_ATTACKER, 2
|
||||
printstring STRINGID_PKMNTRANSFORMED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_AttackerFormChangeWithStringEnd3::
|
||||
call BattleScript_AttackerFormChangeWithString
|
||||
end3
|
||||
|
||||
BattleScript_AttackerFormChangeWithStringEnd3NoPopup::
|
||||
call BattleScript_AttackerFormChangeWithStringNoPopup
|
||||
end3
|
||||
|
||||
BattleScript_AttackerFormChangeMoveEffect::
|
||||
waitmessage 1
|
||||
handleformchange BS_ATTACKER, 0
|
||||
|
|
@ -7731,7 +7799,7 @@ BattleScript_TryIntimidateHoldEffectsRet:
|
|||
return
|
||||
|
||||
BattleScript_IntimidateActivates::
|
||||
copybyte sSAVED_BATTLER, gBattlerTarget
|
||||
savetarget
|
||||
.if B_ABILITY_POP_UP == TRUE
|
||||
showabilitypopup BS_ATTACKER
|
||||
pause B_WAIT_TIME_LONG
|
||||
|
|
@ -7769,7 +7837,7 @@ BattleScript_IntimidateLoopIncrement:
|
|||
BattleScript_IntimidateEnd:
|
||||
copybyte sBATTLER, gBattlerAttacker
|
||||
destroyabilitypopup
|
||||
copybyte gBattlerTarget, sSAVED_BATTLER
|
||||
restoretarget
|
||||
pause B_WAIT_TIME_MED
|
||||
end3
|
||||
|
||||
|
|
@ -7802,7 +7870,7 @@ BattleScript_IntimidateInReverse:
|
|||
goto BattleScript_IntimidateLoopIncrement
|
||||
|
||||
BattleScript_SupersweetSyrupActivates::
|
||||
copybyte sSAVED_BATTLER, gBattlerTarget
|
||||
savetarget
|
||||
.if B_ABILITY_POP_UP == TRUE
|
||||
showabilitypopup BS_ATTACKER
|
||||
pause B_WAIT_TIME_LONG
|
||||
|
|
@ -7835,7 +7903,7 @@ BattleScript_SupersweetSyrupLoopIncrement:
|
|||
BattleScript_SupersweetSyrupEnd:
|
||||
copybyte sBATTLER, gBattlerAttacker
|
||||
destroyabilitypopup
|
||||
copybyte gBattlerTarget, sSAVED_BATTLER
|
||||
restoretarget
|
||||
pause B_WAIT_TIME_MED
|
||||
end3
|
||||
|
||||
|
|
@ -8147,7 +8215,6 @@ BattleScript_FlashFireBoost::
|
|||
call BattleScript_AbilityPopUp
|
||||
printfromtable gFlashFireStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
tryfaintmon BS_ATTACKER
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_AbilityPreventsPhasingOut::
|
||||
|
|
@ -8287,6 +8354,13 @@ BattleScript_ProteanActivates::
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_TeraShellDistortingTypeMatchups::
|
||||
pause B_WAIT_TIME_SHORTEST
|
||||
call BattleScript_AbilityPopUp
|
||||
printstring STRINGID_PKMNMADESHELLGLEAM
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_CursedBodyActivates::
|
||||
call BattleScript_AbilityPopUp
|
||||
printstring STRINGID_CUSEDBODYDISABLED
|
||||
|
|
@ -8353,7 +8427,7 @@ BattleScript_ScriptingAbilityStatRaise::
|
|||
call BattleScript_AbilityPopUp
|
||||
copybyte sSAVED_DMG, gBattlerAttacker
|
||||
copybyte gBattlerAttacker, sBATTLER
|
||||
statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL
|
||||
setgraphicalstatchangevalues
|
||||
playanimation BS_SCRIPTING, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
||||
waitanimation
|
||||
|
|
@ -8471,7 +8545,10 @@ BattleScript_FriskMsg::
|
|||
return
|
||||
|
||||
BattleScript_FriskActivates::
|
||||
tryfriskmsg BS_ATTACKER
|
||||
saveattacker
|
||||
copybyte gBattlerAttacker, sBATTLER
|
||||
tryfriskmsg BS_SCRIPTING
|
||||
restoreattacker
|
||||
end3
|
||||
|
||||
BattleScript_ImposterActivates::
|
||||
|
|
@ -8624,6 +8701,11 @@ BattleScript_IgnoresAndUsesRandomMove::
|
|||
|
||||
BattleScript_MoveUsedLoafingAround::
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_LOAFING, BattleScript_MoveUsedLoafingAroundMsg
|
||||
@ Skip ahead if not the Battle Palace message
|
||||
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_INCAPABLE_OF_POWER, BattleScript_MoveUsedLoafingAroundMsg
|
||||
setbyte gBattleCommunication, 0
|
||||
palacetryescapestatus BS_ATTACKER
|
||||
setbyte cMULTISTRING_CHOOSER, B_MSG_INCAPABLE_OF_POWER
|
||||
BattleScript_MoveUsedLoafingAroundMsg::
|
||||
printfromtable gInobedientStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
|
|
@ -9074,6 +9156,25 @@ BattleScript_AnnounceAirLockCloudNine::
|
|||
call BattleScript_ActivateWeatherAbilities
|
||||
end3
|
||||
|
||||
BattleScript_ActivateTeraformZero::
|
||||
call BattleScript_AbilityPopUp
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, B_WEATHER_ANY, BattleScript_ActivateTeraformZero_RemoveWeather
|
||||
jumpifhalfword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_ANY, BattleScript_ActivateTeraformZero_RemoveTerrain
|
||||
goto BattleScript_ActivateTeraformZero_End
|
||||
BattleScript_ActivateTeraformZero_RemoveWeather:
|
||||
removeweather
|
||||
printfromtable gWeatherEndsStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifhalfword CMP_NO_COMMON_BITS, gFieldStatuses, STATUS_FIELD_TERRAIN_ANY, BattleScript_ActivateTeraformZero_End
|
||||
BattleScript_ActivateTeraformZero_RemoveTerrain:
|
||||
removeterrain
|
||||
playanimation BS_ATTACKER, B_ANIM_RESTORE_BG
|
||||
printfromtable gTerrainStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_ActivateTeraformZero_End:
|
||||
end3
|
||||
|
||||
BattleScript_QuickClawActivation::
|
||||
flushtextbox
|
||||
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
|
||||
|
|
@ -9327,19 +9428,19 @@ BattleScript_RedCardIngrain:
|
|||
printstring STRINGID_PKMNANCHOREDITSELF
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
removeitem BS_SCRIPTING
|
||||
swapattackerwithtarget
|
||||
restoretarget
|
||||
return
|
||||
BattleScript_RedCardSuctionCups:
|
||||
printstring STRINGID_PKMNANCHORSITSELFWITH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
removeitem BS_SCRIPTING
|
||||
swapattackerwithtarget
|
||||
restoretarget
|
||||
return
|
||||
BattleScript_RedCardDynamaxed:
|
||||
printstring STRINGID_MOVEBLOCKEDBYDYNAMAX
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
removeitem BS_SCRIPTING
|
||||
swapattackerwithtarget
|
||||
restoretarget
|
||||
return
|
||||
|
||||
BattleScript_EjectButtonActivates::
|
||||
|
|
@ -9804,10 +9905,20 @@ BattleScript_BerserkGeneRet_End:
|
|||
removeitem BS_SCRIPTING
|
||||
end3
|
||||
|
||||
BattleScript_BoosterEnergyEnd2::
|
||||
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
|
||||
call BattleScript_AbilityPopUp
|
||||
printstring STRINGID_BOOSTERENERGYACTIVATES
|
||||
waitmessage B_WAIT_TIME_MED
|
||||
printstring STRINGID_STATWASHEIGHTENED
|
||||
waitmessage B_WAIT_TIME_MED
|
||||
removeitem BS_SCRIPTING
|
||||
end2
|
||||
|
||||
BattleScript_EffectSnow::
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
call BattleScript_CheckPrimalWeather
|
||||
setsnow
|
||||
setfieldweather ENUM_WEATHER_SNOW
|
||||
goto BattleScript_MoveWeatherChange
|
||||
|
|
|
|||
|
|
@ -1330,8 +1330,14 @@
|
|||
#define STRINGID_TRAINER1MON1COMEBACK 731
|
||||
#define STRINGID_TRAINER1MON2COMEBACK 732
|
||||
#define STRINGID_TRAINER1MON1AND2COMEBACK 733
|
||||
#define STRINGID_PKMNTERASTALLIZEDINTO 734
|
||||
#define STRINGID_BOOSTERENERGYACTIVATES 735
|
||||
#define STRINGID_FOGCREPTUP 736
|
||||
#define STRINGID_FOGISDEEP 737
|
||||
#define STRINGID_FOGLIFTED 738
|
||||
#define STRINGID_PKMNMADESHELLGLEAM 739
|
||||
|
||||
#define BATTLESTRINGS_COUNT 734
|
||||
#define BATTLESTRINGS_COUNT 740
|
||||
|
||||
// This is the string id that gBattleStringsTable starts with.
|
||||
// String ids before this (e.g. STRINGID_INTROMSG) are not in the table,
|
||||
|
|
@ -1393,6 +1399,17 @@
|
|||
#define B_MSG_STARTED_SUNLIGHT 4
|
||||
#define B_MSG_STARTED_HAIL 5
|
||||
#define B_MSG_STARTED_SNOW 6
|
||||
#define B_MSG_STARTED_FOG 7
|
||||
|
||||
// gWeatherEndsStringIds
|
||||
#define B_MSG_WEATHER_END_RAIN 0
|
||||
#define B_MSG_WEATHER_END_SANDSTORM 1
|
||||
#define B_MSG_WEATHER_END_SUN 2
|
||||
#define B_MSG_WEATHER_END_HAIL 3
|
||||
#define B_MSG_WEATHER_END_STRONG_WINDS 4
|
||||
#define B_MSG_WEATHER_END_SNOW 5
|
||||
#define B_MSG_WEATHER_END_FOG 6
|
||||
#define B_MSG_WEATHER_END_COUNT 7
|
||||
|
||||
// gRainContinuesStringIds
|
||||
#define B_MSG_RAIN_CONTINUES 0
|
||||
|
|
@ -1498,7 +1515,10 @@
|
|||
#define B_MSG_WONT_OBEY 1
|
||||
#define B_MSG_TURNED_AWAY 2
|
||||
#define B_MSG_PRETEND_NOT_NOTICE 3
|
||||
#define NUM_LOAF_STRINGS 4 // For randomly selecting a disobey string
|
||||
#define B_MSG_INCAPABLE_OF_POWER 4
|
||||
// For randomly selecting a disobey string
|
||||
// Skips the one used for Battle Palace
|
||||
#define NUM_LOAF_STRINGS 4
|
||||
|
||||
// gSafariGetNearStringIds
|
||||
#define B_MSG_CREPT_CLOSER 0
|
||||
|
|
|
|||
|
|
@ -353,6 +353,9 @@ static const u8 sText_HailStopped[] = _("The hail stopped.");
|
|||
static const u8 sText_StartedSnow[] = _("It started to snow!");
|
||||
static const u8 sText_SnowContinues[] = _("Snow continues to fall.");
|
||||
static const u8 sText_SnowStopped[] = _("The snow stopped.");
|
||||
static const u8 sText_FogCreptUp[] = _("Fog crept up as thick as soup!");
|
||||
static const u8 sText_FogIsDeep[] = _("The fog is deep…");
|
||||
static const u8 sText_FogLifted[] = _("The fog lifted.");
|
||||
static const u8 sText_FailedToSpitUp[] = _("But it failed to spit up\na thing!");
|
||||
static const u8 sText_FailedToSwallow[] = _("But it failed to swallow\na thing!");
|
||||
static const u8 sText_WindBecameHeatWave[] = _("The wind turned into a\nHEAT WAVE!");
|
||||
|
|
@ -668,6 +671,7 @@ static const u8 sText_ASandstormKickedUp[] = _("A sandstorm kicked up!");
|
|||
static const u8 sText_PkmnsWillPerishIn3Turns[] = _("Both Pokémon will perish\nin three turns!");
|
||||
static const u8 sText_AbilityRaisedStatDrastically[] = _("{B_DEF_ABILITY} raised {B_DEF_NAME_WITH_PREFIX}'s\n{B_BUFF1} drastically!");
|
||||
static const u8 sText_AsOneEnters[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} has two Abilities!");
|
||||
static const u8 sText_PkmnMadeShellGleam[] = _("{B_DEF_NAME_WITH_PREFIX} made its shell gleam!\nIt's distorting type matchups!");
|
||||
static const u8 sText_CuriousMedicineEnters[] = _("{B_EFF_NAME_WITH_PREFIX}'s\nstat changes were reset!");
|
||||
static const u8 sText_CanActFaster[] = _("{B_ATK_NAME_WITH_PREFIX} can act faster,\nthanks to {B_BUFF1}!");
|
||||
static const u8 sText_MicleBerryActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} boosted the accuracy of its\nnext move using {B_LAST_ITEM}!");
|
||||
|
|
@ -738,6 +742,7 @@ static const u8 sText_AttackerSwitchedStatWithTarget[] = _("{B_ATK_NAME_WITH_PRE
|
|||
static const u8 sText_BeingHitChargedPkmnWithPower[] = _("Being hit by {B_CURRENT_MOVE}\ncharged {B_DEF_NAME_WITH_PREFIX} with power!");
|
||||
static const u8 sText_SunlightActivatedAbility[] = _("The harsh sunlight activated\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ABILITY}!");
|
||||
static const u8 sText_StatWasHeightened[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_BUFF1} was heightened!");
|
||||
static const u8 sText_BoosterEnergyActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} used its Booster Energy\nto activate {B_SCR_ACTIVE_ABILITY}!");
|
||||
static const u8 sText_ElectricTerrainActivatedAbility[] = _("The Electric Terrain activated\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ABILITY}!");
|
||||
static const u8 sText_AbilityWeakenedSurroundingMonsStat[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nweakened the {B_BUFF1} of\lall surrounding Pokémon!\p");
|
||||
static const u8 sText_AttackerGainedStrengthFromTheFallen[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} gained strength\nfrom the fallen!");
|
||||
|
|
@ -962,6 +967,7 @@ const u8 gText_Unused_5F[] = _("5F");
|
|||
const u8 gText_Unused_6F[] = _("6F");
|
||||
const u8 gText_Unused_7F[] = _("7F");
|
||||
const u8 gText_Unused_8F[] = _("8F");
|
||||
static const u8 sText_PkmnTerastallizedInto[] = _("{B_ATK_NAME_WITH_PREFIX} terastallized\ninto the {B_BUFF1} type!");
|
||||
|
||||
|
||||
const u8 gText_TODO[] = _("TODO");
|
||||
|
|
@ -987,6 +993,7 @@ const u8 *const gPokeblockWasTooXStringTable[] = {
|
|||
};
|
||||
|
||||
const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT - BATTLESTRINGS_TABLE_START] = {
|
||||
[STRINGID_PKMNTERASTALLIZEDINTO - BATTLESTRINGS_TABLE_START] = sText_PkmnTerastallizedInto,
|
||||
[STRINGID_TIDYINGUPCOMPLETE - BATTLESTRINGS_TABLE_START] = sText_TidyingUpComplete,
|
||||
[STRINGID_SUPERSWEETAROMAWAFTS - BATTLESTRINGS_TABLE_START] = sText_SupersweetAromaWafts,
|
||||
[STRINGID_SHEDITSTAIL - BATTLESTRINGS_TABLE_START] = sText_ShedItsTail,
|
||||
|
|
@ -1032,6 +1039,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT - BATTLESTRINGS_TABLE_ST
|
|||
[STRINGID_ABILITYWEAKENEDSURROUNDINGMONSSTAT - BATTLESTRINGS_TABLE_START] = sText_AbilityWeakenedSurroundingMonsStat,
|
||||
[STRINGID_ELECTRICTERRAINACTIVATEDABILITY - BATTLESTRINGS_TABLE_START] = sText_ElectricTerrainActivatedAbility,
|
||||
[STRINGID_STATWASHEIGHTENED - BATTLESTRINGS_TABLE_START] = sText_StatWasHeightened,
|
||||
[STRINGID_BOOSTERENERGYACTIVATES - BATTLESTRINGS_TABLE_START] = sText_BoosterEnergyActivates,
|
||||
[STRINGID_SUNLIGHTACTIVATEDABILITY - BATTLESTRINGS_TABLE_START] = sText_SunlightActivatedAbility,
|
||||
[STRINGID_BEINGHITCHARGEDPKMNWITHPOWER - BATTLESTRINGS_TABLE_START] = sText_BeingHitChargedPkmnWithPower,
|
||||
[STRINGID_ATTACKERSWITCHEDSTATWITHTARGET - BATTLESTRINGS_TABLE_START] = sText_AttackerSwitchedStatWithTarget,
|
||||
|
|
@ -1097,6 +1105,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT - BATTLESTRINGS_TABLE_ST
|
|||
[STRINGID_CANACTFASTERTHANKSTO - BATTLESTRINGS_TABLE_START] = sText_CanActFaster,
|
||||
[STRINGID_CURIOUSMEDICINEENTERS - BATTLESTRINGS_TABLE_START] = sText_CuriousMedicineEnters,
|
||||
[STRINGID_ASONEENTERS - BATTLESTRINGS_TABLE_START] = sText_AsOneEnters,
|
||||
[STRINGID_PKMNMADESHELLGLEAM - BATTLESTRINGS_TABLE_START] = sText_PkmnMadeShellGleam,
|
||||
[STRINGID_ABILITYRAISEDSTATDRASTICALLY - BATTLESTRINGS_TABLE_START] = sText_AbilityRaisedStatDrastically,
|
||||
[STRINGID_PKMNSWILLPERISHIN3TURNS - BATTLESTRINGS_TABLE_START] = sText_PkmnsWillPerishIn3Turns,
|
||||
[STRINGID_ASANDSTORMKICKEDUP - BATTLESTRINGS_TABLE_START] = sText_ASandstormKickedUp,
|
||||
|
|
@ -1368,6 +1377,9 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT - BATTLESTRINGS_TABLE_ST
|
|||
[STRINGID_STARTEDSNOW - BATTLESTRINGS_TABLE_START] = sText_StartedSnow,
|
||||
[STRINGID_SNOWCONTINUES -BATTLESTRINGS_TABLE_START] = sText_SnowContinues,
|
||||
[STRINGID_SNOWSTOPPED - BATTLESTRINGS_TABLE_START] = sText_SnowStopped,
|
||||
[STRINGID_FOGCREPTUP - BATTLESTRINGS_TABLE_START] = sText_FogCreptUp,
|
||||
[STRINGID_FOGISDEEP - BATTLESTRINGS_TABLE_START] = sText_FogIsDeep,
|
||||
[STRINGID_FOGLIFTED - BATTLESTRINGS_TABLE_START] = sText_FogLifted,
|
||||
[STRINGID_FAILEDTOSPITUP - BATTLESTRINGS_TABLE_START] = sText_FailedToSpitUp,
|
||||
[STRINGID_FAILEDTOSWALLOW - BATTLESTRINGS_TABLE_START] = sText_FailedToSwallow,
|
||||
[STRINGID_WINDBECAMEHEATWAVE - BATTLESTRINGS_TABLE_START] = sText_WindBecameHeatWave,
|
||||
|
|
@ -1835,6 +1847,18 @@ const u16 gMoveWeatherChangeStringIds[] =
|
|||
[B_MSG_STARTED_SUNLIGHT] = STRINGID_SUNLIGHTGOTBRIGHT,
|
||||
[B_MSG_STARTED_HAIL] = STRINGID_STARTEDHAIL,
|
||||
[B_MSG_STARTED_SNOW] = STRINGID_STARTEDSNOW,
|
||||
[B_MSG_STARTED_FOG] = STRINGID_FOGCREPTUP, // Unused, can use for custom moves that set fog
|
||||
};
|
||||
|
||||
const u16 gWeatherEndsStringIds[B_MSG_WEATHER_END_COUNT] =
|
||||
{
|
||||
[B_MSG_WEATHER_END_RAIN] = STRINGID_RAINSTOPPED,
|
||||
[B_MSG_WEATHER_END_SANDSTORM] = STRINGID_SANDSTORMSUBSIDED,
|
||||
[B_MSG_WEATHER_END_SUN] = STRINGID_SUNLIGHTFADED,
|
||||
[B_MSG_WEATHER_END_HAIL] = STRINGID_HAILSTOPPED,
|
||||
[B_MSG_WEATHER_END_STRONG_WINDS] = STRINGID_STRONGWINDSDISSIPATED,
|
||||
[B_MSG_WEATHER_END_SNOW] = STRINGID_SNOWSTOPPED,
|
||||
[B_MSG_WEATHER_END_FOG] = STRINGID_FOGLIFTED,
|
||||
};
|
||||
|
||||
const u16 gSandStormHailSnowContinuesStringIds[] =
|
||||
|
|
@ -2099,12 +2123,12 @@ const u16 gWeatherStartsStringIds[] =
|
|||
[WEATHER_SUNNY_CLOUDS] = STRINGID_ITISRAINING,
|
||||
[WEATHER_SUNNY] = STRINGID_ITISRAINING,
|
||||
[WEATHER_RAIN] = STRINGID_ITISRAINING,
|
||||
[WEATHER_SNOW] = STRINGID_ITISRAINING,
|
||||
[WEATHER_SNOW] = (B_OVERWORLD_SNOW >= GEN_9 ? STRINGID_STARTEDSNOW : STRINGID_STARTEDHAIL),
|
||||
[WEATHER_RAIN_THUNDERSTORM] = STRINGID_ITISRAINING,
|
||||
[WEATHER_FOG_HORIZONTAL] = STRINGID_ITISRAINING,
|
||||
[WEATHER_FOG_HORIZONTAL] = STRINGID_FOGISDEEP,
|
||||
[WEATHER_VOLCANIC_ASH] = STRINGID_ITISRAINING,
|
||||
[WEATHER_SANDSTORM] = STRINGID_SANDSTORMISRAGING,
|
||||
[WEATHER_FOG_DIAGONAL] = STRINGID_ITISRAINING,
|
||||
[WEATHER_FOG_DIAGONAL] = STRINGID_FOGISDEEP,
|
||||
[WEATHER_UNDERWATER] = STRINGID_ITISRAINING,
|
||||
[WEATHER_SHADE] = STRINGID_ITISRAINING,
|
||||
[WEATHER_DROUGHT] = STRINGID_SUNLIGHTSTRONG,
|
||||
|
|
@ -2124,7 +2148,8 @@ const u16 gInobedientStringIds[] =
|
|||
[B_MSG_LOAFING] = STRINGID_PKMNLOAFING,
|
||||
[B_MSG_WONT_OBEY] = STRINGID_PKMNWONTOBEY,
|
||||
[B_MSG_TURNED_AWAY] = STRINGID_PKMNTURNEDAWAY,
|
||||
[B_MSG_PRETEND_NOT_NOTICE] = STRINGID_PKMNPRETENDNOTNOTICE
|
||||
[B_MSG_PRETEND_NOT_NOTICE] = STRINGID_PKMNPRETENDNOTNOTICE,
|
||||
[B_MSG_INCAPABLE_OF_POWER] = STRINGID_PKMNINCAPABLEOFPOWER
|
||||
};
|
||||
|
||||
const u16 gSafariReactionStringIds[NUM_SAFARI_REACTIONS] =
|
||||
|
|
|
|||
|
|
@ -340,6 +340,8 @@ static bool8 IsFinalStrikeEffect(u16 move);
|
|||
static void TryUpdateRoundTurnOrder(void);
|
||||
static void BestowItem(u32 battlerAtk, u32 battlerDef);
|
||||
static void ApplyExperienceMultipliers(s32 *expAmount, u8 expGetterMonId, u8 faintedBattler);
|
||||
static void RemoveAllWeather(void);
|
||||
static void RemoveAllTerrains(void);
|
||||
static bool8 CanBurnHitThaw(u16 move);
|
||||
static bool32 ChangeOrderTargetAfterAttacker(void);
|
||||
static void TryUpdateEvolutionTracker(u32 evolutionMethod, u32 upAmount, u16 usedMove);
|
||||
|
|
@ -473,7 +475,7 @@ static void Cmd_setatkhptozero(void);
|
|||
static void Cmd_jumpifnexttargetvalid(void);
|
||||
static void Cmd_tryhealhalfhealth(void);
|
||||
static void Cmd_trymirrormove(void);
|
||||
static void Cmd_setrain(void);
|
||||
static void Cmd_setfieldweather(void);
|
||||
static void Cmd_setreflect(void);
|
||||
static void Cmd_setseeded(void);
|
||||
static void Cmd_manipulatedamage(void);
|
||||
|
|
@ -732,7 +734,7 @@ void (* const gBattleScriptingCommandsTable[])(void) =
|
|||
Cmd_jumpifnexttargetvalid, //0x7A // done
|
||||
Cmd_tryhealhalfhealth, //0x7B // done
|
||||
Cmd_trymirrormove, //0x7C // done
|
||||
Cmd_setrain, //0x7D // done
|
||||
Cmd_setfieldweather, //0x7D // done
|
||||
Cmd_setreflect, //0x7E // done
|
||||
Cmd_setseeded, //0x7F // done
|
||||
Cmd_manipulatedamage, //0x80 // done
|
||||
|
|
@ -8466,6 +8468,30 @@ bool32 CanUseLastResort(u8 battler)
|
|||
return (knownMovesCount >= 2 && usedMovesCount >= knownMovesCount - 1);
|
||||
}
|
||||
|
||||
static void RemoveAllWeather(void)
|
||||
{
|
||||
gWishFutureKnock.weatherDuration = 0;
|
||||
|
||||
if (gBattleWeather & B_WEATHER_RAIN)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_END_RAIN;
|
||||
else if(gBattleWeather & B_WEATHER_SANDSTORM)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_END_SANDSTORM;
|
||||
else if(gBattleWeather & B_WEATHER_SUN)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_END_SUN;
|
||||
else if(gBattleWeather & B_WEATHER_HAIL)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_END_HAIL;
|
||||
else if(gBattleWeather & B_WEATHER_STRONG_WINDS)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_END_STRONG_WINDS;
|
||||
else if(gBattleWeather & B_WEATHER_SNOW)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_END_SNOW;
|
||||
else if(gBattleWeather & B_WEATHER_FOG)
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_END_FOG;
|
||||
else
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_END_COUNT; // failsafe
|
||||
|
||||
gBattleWeather = 0; // remove the weather
|
||||
}
|
||||
|
||||
static void RemoveAllTerrains(void)
|
||||
{
|
||||
gFieldTimers.terrainTimer = 0;
|
||||
|
|
@ -11072,19 +11098,39 @@ static void Cmd_trymirrormove(void)
|
|||
}
|
||||
}
|
||||
|
||||
static void Cmd_setrain(void)
|
||||
static void Cmd_setfieldweather(void)
|
||||
{
|
||||
CMD_ARGS();
|
||||
CMD_ARGS(u8 weather);
|
||||
|
||||
if (!TryChangeBattleWeather(gBattlerAttacker, ENUM_WEATHER_RAIN, FALSE))
|
||||
u8 weather = cmd->weather;
|
||||
|
||||
if (!TryChangeBattleWeather(gBattlerAttacker, weather, FALSE))
|
||||
{
|
||||
gMoveResultFlags |= MOVE_RESULT_MISSED;
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_FAILED;
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
return;
|
||||
}
|
||||
else
|
||||
|
||||
switch (weather)
|
||||
{
|
||||
case ENUM_WEATHER_RAIN:
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_RAIN;
|
||||
break;
|
||||
case ENUM_WEATHER_SUN:
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_SUNLIGHT;
|
||||
break;
|
||||
case ENUM_WEATHER_SANDSTORM:
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_SANDSTORM;
|
||||
break;
|
||||
case ENUM_WEATHER_HAIL:
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_HAIL;
|
||||
break;
|
||||
case ENUM_WEATHER_SNOW:
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_STARTED_SNOW;
|
||||
break;
|
||||
}
|
||||
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
|
||||
|
|
@ -16916,6 +16962,13 @@ void BS_TryUpdateRecoilTracker(void)
|
|||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
|
||||
void BS_TryUpdateLeadersCrestTracker(void)
|
||||
{
|
||||
NATIVE_ARGS();
|
||||
TryUpdateEvolutionTracker(EVO_DEFEAT_WITH_ITEM, 1, MOVE_NONE);
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
|
||||
void BS_TryTidyUp(void)
|
||||
{
|
||||
NATIVE_ARGS(u8 clear, const u8 *jumpInstr);
|
||||
|
|
@ -17016,3 +17069,18 @@ void BS_TryQuash(void)
|
|||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
|
||||
void BS_RemoveWeather(void)
|
||||
{
|
||||
NATIVE_ARGS();
|
||||
RemoveAllWeather();
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
|
||||
void BS_ApplyTerastallization(void)
|
||||
{
|
||||
NATIVE_ARGS();
|
||||
// TODO: Tera
|
||||
// ApplyBattlerVisualsForTeraAnim(gBattlerAttacker);
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user