Merge branch '_RHH/master' into _RHH/upcoming
# Conflicts: # data/battle_scripts_2.s # src/data/pokemon/species_info/gen_9.h
This commit is contained in:
commit
1720e1b129
@ -9609,7 +9609,7 @@ Move_EERIE_IMPULSE::
|
||||
createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 32, 30, 0, 40, 0
|
||||
createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 32, 30, 0, 40, 1
|
||||
createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 32, 30, 0, 40, 0
|
||||
createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 32, 30, 0, 40, 2
|
||||
createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 32, 30, 0, 40, 2
|
||||
createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 48, 30, 0, 40, 0
|
||||
createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 48, 30, 0, 40, 1
|
||||
createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 48, 30, 0, 40, 0
|
||||
@ -10274,7 +10274,7 @@ Move_THOUSAND_WAVES::
|
||||
waitforvisualfinish
|
||||
clearmonbg ANIM_ATK_PARTNER @I placed this one here, because it ruins the teleport animation
|
||||
loopsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 0x3, 0x15
|
||||
call ThousandWavesRecover
|
||||
call ThousandWavesRecover
|
||||
createsprite gThousandWavesGreenRecoverTemplate, ANIM_ATTACKER, 2, 0x28, 0xfff6, 0xd
|
||||
delay 0x3
|
||||
createsprite gThousandWavesGreenRecoverTemplate, ANIM_ATTACKER, 2, 0xffdd, 0x8, 0xd
|
||||
@ -10502,7 +10502,7 @@ Move_ORIGIN_PULSE::
|
||||
delay 0x10
|
||||
createsprite gOriginPulseRingTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x0, 0x0, 0x1F, 0x8
|
||||
playsewithpan SE_INTRO_BLAST, SOUND_PAN_ATTACKER
|
||||
waitforvisualfinish
|
||||
waitforvisualfinish
|
||||
createsprite gOriginPulseOrbTemplate, ANIM_ATTACKER, 2, 0x0
|
||||
createsprite gOriginPulseOrbTemplate, ANIM_ATTACKER, 2, 0x2b
|
||||
createsprite gOriginPulseOrbTemplate, ANIM_ATTACKER, 2, 0x55
|
||||
@ -12085,7 +12085,7 @@ Move_CORE_ENFORCER::
|
||||
delay 0x1
|
||||
createsprite gCoreEnforcerImpactTemplate, ANIM_TARGET, 3, 0xfffa, 0xffe2, 0x1, 0x3
|
||||
delay 0x1
|
||||
createsprite gCoreEnforcerImpactTemplate, ANIM_TARGET, 3, 0xffff, 0xffe2, 0x1, 0x3
|
||||
createsprite gCoreEnforcerImpactTemplate, ANIM_TARGET, 3, 0xffff, 0xffe2, 0x1, 0x3
|
||||
delay 0x1
|
||||
createsprite gCoreEnforcerImpactTemplate, ANIM_TARGET, 3, 0x5, 0xffe2, 0x1, 0x3
|
||||
delay 0x1
|
||||
@ -12128,7 +12128,7 @@ Move_CORE_ENFORCER::
|
||||
createsprite gCoreEnforcerBeamTemplate, ANIM_TARGET, 3, 0xf, 0x0, 0x14, 0x5
|
||||
createsprite gCoreEnforcerImpactTemplate, ANIM_TARGET, 3, 0x7, 0x3, 0x1, 0x3
|
||||
delay 0x1
|
||||
createsprite gCoreEnforcerImpactTemplate, ANIM_TARGET, 3, 0xC, 0x3, 0x1, 0x3
|
||||
createsprite gCoreEnforcerImpactTemplate, ANIM_TARGET, 3, 0xC, 0x3, 0x1, 0x3
|
||||
delay 0x1
|
||||
createsprite gCoreEnforcerImpactTemplate, ANIM_TARGET, 3, 0x11, 0x3, 0x1, 0x3
|
||||
delay 0x1
|
||||
@ -13569,7 +13569,7 @@ Move_PHOTON_GEYSER::
|
||||
unloadspritegfx ANIM_TAG_YELLOW_BALL @confuse ray (for zap cannon)
|
||||
unloadspritegfx ANIM_TAG_BLACK_BALL_2 @zap cannon
|
||||
unloadspritegfx ANIM_TAG_AIR_WAVE_2 @white/gray color
|
||||
@Shoot beam to the sky
|
||||
@Shoot beam to the sky
|
||||
loadspritegfx ANIM_TAG_STRAIGHT_BEAM
|
||||
createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_TARGET, 0x6, 0x0, 0x10, 0x43FF @Light yellow
|
||||
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 96, 1
|
||||
@ -13691,7 +13691,7 @@ Move_SNIPE_SHOT::
|
||||
loadspritegfx ANIM_TAG_LEER
|
||||
createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 0, 16, 0 @;Black
|
||||
waitforvisualfinish
|
||||
createsprite gLeerSpriteTemplate, ANIM_TARGET, 2, 0x18, -12
|
||||
createsprite gLeerSpriteTemplate, ANIM_TARGET, 2, 0x18, -12
|
||||
playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER
|
||||
waitforvisualfinish
|
||||
delay 0x20
|
||||
|
||||
@ -381,7 +381,7 @@ BattleScript_EffectAttackUpUserAlly_TryAlly:
|
||||
BattleScript_EffectAttackUpUserAlly_End:
|
||||
goto BattleScript_MoveEnd
|
||||
BattleScript_EffectAttackUpUserAlly_TryAlly_:
|
||||
jumpifability BS_ATTACKER_PARTNER, ABILITY_SOUNDPROOF, BattleScript_EffectAttackUpUserAlly_TryAllyBlocked
|
||||
jumpifability BS_ATTACKER_PARTNER, ABILITY_SOUNDPROOF, BattleScript_EffectAttackUpUserAlly_TryAllyBlocked
|
||||
setstatchanger STAT_ATK, 1, FALSE
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectAttackUpUserAlly_End
|
||||
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectAttackUpUserAlly_AllyAnim
|
||||
@ -2232,8 +2232,8 @@ BattleScript_EffectHealPulse::
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents @ stops pollen puff
|
||||
jumpifstatus3 BS_TARGET, STATUS3_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents
|
||||
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents @ stops pollen puff
|
||||
jumpifstatus3 BS_TARGET, STATUS3_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents
|
||||
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
|
||||
jumpifsubstituteblocks BattleScript_ButItFailed
|
||||
tryhealpulse BattleScript_AlreadyAtFullHp
|
||||
@ -5165,7 +5165,7 @@ BattleScript_EffectYawn::
|
||||
setyawn BattleScript_ButItFailed
|
||||
attackanimation
|
||||
waitanimation
|
||||
BattleScript_EffectYawnSuccess::
|
||||
BattleScript_EffectYawnSuccess::
|
||||
printstring STRINGID_PKMNWASMADEDROWSY
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
@ -7781,7 +7781,7 @@ BattleScript_TryAdrenalineOrbRet:
|
||||
|
||||
BattleScript_IntimidateActivates::
|
||||
showabilitypopup BS_ATTACKER
|
||||
copybyte sSAVED_BATTLER, gBattlerTarget
|
||||
copybyte sSAVED_BATTLER, gBattlerTarget
|
||||
pause B_WAIT_TIME_LONG
|
||||
destroyabilitypopup
|
||||
setbyte gBattlerTarget, 0
|
||||
@ -7809,7 +7809,7 @@ BattleScript_IntimidateLoopIncrement:
|
||||
BattleScript_IntimidateEnd:
|
||||
copybyte sBATTLER, gBattlerAttacker
|
||||
destroyabilitypopup
|
||||
copybyte gBattlerTarget, sSAVED_BATTLER
|
||||
copybyte gBattlerTarget, sSAVED_BATTLER
|
||||
pause B_WAIT_TIME_MED
|
||||
end3
|
||||
|
||||
|
||||
@ -6,260 +6,260 @@
|
||||
#include "constants/moves.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/game_stat.h"
|
||||
.include "asm/macros.inc"
|
||||
.include "asm/macros/battle_script.inc"
|
||||
.include "constants/constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
.include "asm/macros/battle_script.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section script_data, "aw", %progbits
|
||||
.section script_data, "aw", %progbits
|
||||
|
||||
.align 2
|
||||
.align 2
|
||||
gBattlescriptsForUsingItem::
|
||||
.4byte BattleScript_ItemRestoreHP @ EFFECT_ITEM_RESTORE_HP
|
||||
.4byte BattleScript_ItemCureStatus @ EFFECT_ITEM_CURE_STATUS
|
||||
.4byte BattleScript_ItemHealAndCureStatus @ EFFECT_ITEM_HEAL_AND_CURE_STATUS
|
||||
.4byte BattleScript_ItemIncreaseStat @ EFFECT_ITEM_INCREASE_STAT
|
||||
.4byte BattleScript_ItemSetMist @ EFFECT_ITEM_SET_MIST
|
||||
.4byte BattleScript_ItemSetFocusEnergy @ EFFECT_ITEM_SET_FOCUS_ENERGY
|
||||
.4byte BattleScript_RunByUsingItem @ EFFECT_ITEM_ESCAPE
|
||||
.4byte BattleScript_BallThrow @ EFFECT_ITEM_THROW_BALL
|
||||
.4byte BattleScript_ItemRestoreHP @ EFFECT_ITEM_REVIVE
|
||||
.4byte BattleScript_ItemRestorePP @ EFFECT_ITEM_RESTORE_PP
|
||||
.4byte BattleScript_ItemIncreaseAllStats @ EFFECT_ITEM_INCREASE_ALL_STATS
|
||||
.4byte BattleScript_ItemRestoreHP @ EFFECT_ITEM_RESTORE_HP
|
||||
.4byte BattleScript_ItemCureStatus @ EFFECT_ITEM_CURE_STATUS
|
||||
.4byte BattleScript_ItemHealAndCureStatus @ EFFECT_ITEM_HEAL_AND_CURE_STATUS
|
||||
.4byte BattleScript_ItemIncreaseStat @ EFFECT_ITEM_INCREASE_STAT
|
||||
.4byte BattleScript_ItemSetMist @ EFFECT_ITEM_SET_MIST
|
||||
.4byte BattleScript_ItemSetFocusEnergy @ EFFECT_ITEM_SET_FOCUS_ENERGY
|
||||
.4byte BattleScript_RunByUsingItem @ EFFECT_ITEM_ESCAPE
|
||||
.4byte BattleScript_BallThrow @ EFFECT_ITEM_THROW_BALL
|
||||
.4byte BattleScript_ItemRestoreHP @ EFFECT_ITEM_REVIVE
|
||||
.4byte BattleScript_ItemRestorePP @ EFFECT_ITEM_RESTORE_PP
|
||||
.4byte BattleScript_ItemIncreaseAllStats @ EFFECT_ITEM_INCREASE_ALL_STATS
|
||||
|
||||
.align 2
|
||||
.align 2
|
||||
gBattlescriptsForSafariActions::
|
||||
.4byte BattleScript_ActionWatchesCarefully
|
||||
.4byte BattleScript_ActionGetNear
|
||||
.4byte BattleScript_ActionThrowPokeblock
|
||||
.4byte BattleScript_ActionWallyThrow
|
||||
.4byte BattleScript_ActionWatchesCarefully
|
||||
.4byte BattleScript_ActionGetNear
|
||||
.4byte BattleScript_ActionThrowPokeblock
|
||||
.4byte BattleScript_ActionWallyThrow
|
||||
|
||||
BattleScript_ItemEnd:
|
||||
end
|
||||
end
|
||||
|
||||
BattleScript_UseItemMessage:
|
||||
printstring STRINGID_EMPTYSTRING3
|
||||
pause B_WAIT_TIME_MED
|
||||
playse SE_USE_ITEM
|
||||
getbattlerside BS_ATTACKER
|
||||
copybyte cMULTISTRING_CHOOSER, gBattleCommunication
|
||||
printfromtable gTrainerUsedItemStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
printstring STRINGID_EMPTYSTRING3
|
||||
pause B_WAIT_TIME_MED
|
||||
playse SE_USE_ITEM
|
||||
getbattlerside BS_ATTACKER
|
||||
copybyte cMULTISTRING_CHOOSER, gBattleCommunication
|
||||
printfromtable gTrainerUsedItemStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_ItemRestoreHPRet:
|
||||
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
||||
healthbarupdate BS_SCRIPTING
|
||||
datahpupdate BS_SCRIPTING
|
||||
printstring STRINGID_ITEMRESTOREDSPECIESHEALTH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
|
||||
healthbarupdate BS_SCRIPTING
|
||||
datahpupdate BS_SCRIPTING
|
||||
printstring STRINGID_ITEMRESTOREDSPECIESHEALTH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_ItemRestoreHP::
|
||||
call BattleScript_UseItemMessage
|
||||
itemrestorehp BattleScript_ItemRestoreHPEnd
|
||||
call BattleScript_ItemRestoreHPRet
|
||||
call BattleScript_UseItemMessage
|
||||
itemrestorehp BattleScript_ItemRestoreHPEnd
|
||||
call BattleScript_ItemRestoreHPRet
|
||||
BattleScript_ItemRestoreHPEnd:
|
||||
end
|
||||
end
|
||||
|
||||
BattleScript_ItemRestoreHP_Party::
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_ItemRestoreHP_SendOutRevivedBattler
|
||||
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
||||
printstring STRINGID_ITEMRESTOREDSPECIESHEALTH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_ItemRestoreHP_SendOutRevivedBattler
|
||||
bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT
|
||||
printstring STRINGID_ITEMRESTOREDSPECIESHEALTH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
|
||||
BattleScript_ItemRestoreHP_SendOutRevivedBattler:
|
||||
switchinanim BS_SCRIPTING, FALSE
|
||||
waitstate
|
||||
switchineffects BS_SCRIPTING
|
||||
end
|
||||
switchinanim BS_SCRIPTING, FALSE
|
||||
waitstate
|
||||
switchineffects BS_SCRIPTING
|
||||
end
|
||||
|
||||
BattleScript_ItemCureStatus::
|
||||
call BattleScript_UseItemMessage
|
||||
call BattleScript_UseItemMessage
|
||||
BattleScript_ItemCureStatusAfterItemMsg:
|
||||
itemcurestatus BattleScript_ItemCureStatusEnd
|
||||
updatestatusicon BS_SCRIPTING
|
||||
printstring STRINGID_ITEMCUREDSPECIESSTATUS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
itemcurestatus BattleScript_ItemCureStatusEnd
|
||||
updatestatusicon BS_SCRIPTING
|
||||
printstring STRINGID_ITEMCUREDSPECIESSTATUS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_ItemCureStatusEnd:
|
||||
end
|
||||
end
|
||||
|
||||
BattleScript_ItemHealAndCureStatus::
|
||||
call BattleScript_UseItemMessage
|
||||
itemrestorehp BattleScript_ItemCureStatusAfterItemMsg
|
||||
call BattleScript_ItemRestoreHPRet
|
||||
goto BattleScript_ItemCureStatusAfterItemMsg
|
||||
call BattleScript_UseItemMessage
|
||||
itemrestorehp BattleScript_ItemCureStatusAfterItemMsg
|
||||
call BattleScript_ItemRestoreHPRet
|
||||
goto BattleScript_ItemCureStatusAfterItemMsg
|
||||
|
||||
BattleScript_ItemIncreaseStat::
|
||||
call BattleScript_UseItemMessage
|
||||
itemincreasestat
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_ItemEnd
|
||||
setgraphicalstatchangevalues
|
||||
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
call BattleScript_UseItemMessage
|
||||
itemincreasestat
|
||||
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_ALLOW_PTR, BattleScript_ItemEnd
|
||||
setgraphicalstatchangevalues
|
||||
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
|
||||
BattleScript_ItemSetMist::
|
||||
call BattleScript_UseItemMessage
|
||||
setmist
|
||||
playmoveanimation BS_ATTACKER, MOVE_MIST
|
||||
waitanimation
|
||||
printfromtable gMistUsedStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
call BattleScript_UseItemMessage
|
||||
setmist
|
||||
playmoveanimation BS_ATTACKER, MOVE_MIST
|
||||
waitanimation
|
||||
printfromtable gMistUsedStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
|
||||
BattleScript_ItemSetFocusEnergy::
|
||||
call BattleScript_UseItemMessage
|
||||
jumpifstatus2 BS_ATTACKER, STATUS2_FOCUS_ENERGY_ANY, BattleScript_ButItFailed
|
||||
setfocusenergy
|
||||
playmoveanimation BS_ATTACKER, MOVE_FOCUS_ENERGY
|
||||
waitanimation
|
||||
copybyte sBATTLER, gBattlerAttacker
|
||||
printstring STRINGID_PKMNUSEDXTOGETPUMPED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
call BattleScript_UseItemMessage
|
||||
jumpifstatus2 BS_ATTACKER, STATUS2_FOCUS_ENERGY_ANY, BattleScript_ButItFailed
|
||||
setfocusenergy
|
||||
playmoveanimation BS_ATTACKER, MOVE_FOCUS_ENERGY
|
||||
waitanimation
|
||||
copybyte sBATTLER, gBattlerAttacker
|
||||
printstring STRINGID_PKMNUSEDXTOGETPUMPED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
|
||||
BattleScript_ItemRestorePP::
|
||||
call BattleScript_UseItemMessage
|
||||
itemrestorepp
|
||||
printstring STRINGID_ITEMRESTOREDSPECIESPP
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
call BattleScript_UseItemMessage
|
||||
itemrestorepp
|
||||
printstring STRINGID_ITEMRESTOREDSPECIESPP
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end
|
||||
|
||||
BattleScript_ItemIncreaseAllStats::
|
||||
call BattleScript_UseItemMessage
|
||||
call BattleScript_AllStatsUp
|
||||
end
|
||||
call BattleScript_UseItemMessage
|
||||
call BattleScript_AllStatsUp
|
||||
end
|
||||
|
||||
BattleScript_BallThrow::
|
||||
jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_WALLY_TUTORIAL, BattleScript_BallThrowByWally
|
||||
printstring STRINGID_PLAYERUSEDITEM
|
||||
handleballthrow
|
||||
jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_WALLY_TUTORIAL, BattleScript_BallThrowByWally
|
||||
printstring STRINGID_PLAYERUSEDITEM
|
||||
handleballthrow
|
||||
|
||||
BattleScript_BallThrowByWally::
|
||||
printstring STRINGID_WALLYUSEDITEM
|
||||
handleballthrow
|
||||
printstring STRINGID_WALLYUSEDITEM
|
||||
handleballthrow
|
||||
|
||||
BattleScript_SafariBallThrow::
|
||||
printstring STRINGID_PLAYERUSEDITEM
|
||||
updatestatusicon BS_ATTACKER
|
||||
handleballthrow
|
||||
printstring STRINGID_PLAYERUSEDITEM
|
||||
updatestatusicon BS_ATTACKER
|
||||
handleballthrow
|
||||
|
||||
BattleScript_SuccessBallThrow::
|
||||
setbyte sMON_CAUGHT, TRUE
|
||||
incrementgamestat GAME_STAT_POKEMON_CAPTURES
|
||||
setbyte sMON_CAUGHT, TRUE
|
||||
incrementgamestat GAME_STAT_POKEMON_CAPTURES
|
||||
BattleScript_PrintCaughtMonInfo::
|
||||
printstring STRINGID_GOTCHAPKMNCAUGHTPLAYER
|
||||
jumpifbyte CMP_NOT_EQUAL, sEXP_CATCH, TRUE, BattleScript_TryPrintCaughtMonInfo
|
||||
setbyte sGIVEEXP_STATE, 0
|
||||
getexp BS_TARGET
|
||||
sethword gBattle_BG2_X, 0
|
||||
printstring STRINGID_GOTCHAPKMNCAUGHTPLAYER
|
||||
jumpifbyte CMP_NOT_EQUAL, sEXP_CATCH, TRUE, BattleScript_TryPrintCaughtMonInfo
|
||||
setbyte sGIVEEXP_STATE, 0
|
||||
getexp BS_TARGET
|
||||
sethword gBattle_BG2_X, 0
|
||||
BattleScript_TryPrintCaughtMonInfo:
|
||||
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_GiveCaughtMonEnd
|
||||
trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon
|
||||
printstring STRINGID_PKMNDATAADDEDTODEX
|
||||
waitstate
|
||||
setbyte gBattleCommunication, 0
|
||||
displaydexinfo
|
||||
jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_GiveCaughtMonEnd
|
||||
trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon
|
||||
printstring STRINGID_PKMNDATAADDEDTODEX
|
||||
waitstate
|
||||
setbyte gBattleCommunication, 0
|
||||
displaydexinfo
|
||||
BattleScript_TryNicknameCaughtMon::
|
||||
printstring STRINGID_GIVENICKNAMECAPTURED
|
||||
waitstate
|
||||
setbyte gBattleCommunication, 0
|
||||
trygivecaughtmonnick BattleScript_GiveCaughtMonEnd
|
||||
givecaughtmon
|
||||
printfromtable gCaughtMonStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_SuccessBallThrowEnd
|
||||
printstring STRINGID_GIVENICKNAMECAPTURED
|
||||
waitstate
|
||||
setbyte gBattleCommunication, 0
|
||||
trygivecaughtmonnick BattleScript_GiveCaughtMonEnd
|
||||
givecaughtmon
|
||||
printfromtable gCaughtMonStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_SuccessBallThrowEnd
|
||||
BattleScript_GiveCaughtMonEnd::
|
||||
givecaughtmon
|
||||
givecaughtmon
|
||||
BattleScript_SuccessBallThrowEnd::
|
||||
setbyte gBattleOutcome, B_OUTCOME_CAUGHT
|
||||
finishturn
|
||||
setbyte gBattleOutcome, B_OUTCOME_CAUGHT
|
||||
finishturn
|
||||
|
||||
BattleScript_WallyBallThrow::
|
||||
printstring STRINGID_GOTCHAPKMNCAUGHTWALLY
|
||||
setbyte gBattleOutcome, B_OUTCOME_CAUGHT
|
||||
finishturn
|
||||
printstring STRINGID_GOTCHAPKMNCAUGHTWALLY
|
||||
setbyte gBattleOutcome, B_OUTCOME_CAUGHT
|
||||
finishturn
|
||||
|
||||
BattleScript_ShakeBallThrow::
|
||||
printfromtable gBallEscapeStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_ShakeBallThrowEnd
|
||||
jumpifbyte CMP_NOT_EQUAL, gNumSafariBalls, 0, BattleScript_ShakeBallThrowEnd
|
||||
printstring STRINGID_OUTOFSAFARIBALLS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
setbyte gBattleOutcome, B_OUTCOME_NO_SAFARI_BALLS
|
||||
printfromtable gBallEscapeStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifword CMP_NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_ShakeBallThrowEnd
|
||||
jumpifbyte CMP_NOT_EQUAL, gNumSafariBalls, 0, BattleScript_ShakeBallThrowEnd
|
||||
printstring STRINGID_OUTOFSAFARIBALLS
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
setbyte gBattleOutcome, B_OUTCOME_NO_SAFARI_BALLS
|
||||
BattleScript_ShakeBallThrowEnd::
|
||||
finishaction
|
||||
finishaction
|
||||
|
||||
BattleScript_TrainerBallBlock::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
printstring STRINGID_TRAINERBLOCKEDBALL
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
printstring STRINGID_DONTBEATHIEF
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
finishaction
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
printstring STRINGID_TRAINERBLOCKEDBALL
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
printstring STRINGID_DONTBEATHIEF
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
finishaction
|
||||
|
||||
BattleScript_RunByUsingItem::
|
||||
playse SE_FLEE
|
||||
setbyte gBattleOutcome, B_OUTCOME_RAN
|
||||
finishturn
|
||||
playse SE_FLEE
|
||||
setbyte gBattleOutcome, B_OUTCOME_RAN
|
||||
finishturn
|
||||
|
||||
BattleScript_ActionWatchesCarefully:
|
||||
printstring STRINGID_PKMNWATCHINGCAREFULLY
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
printstring STRINGID_PKMNWATCHINGCAREFULLY
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_ActionGetNear:
|
||||
printfromtable gSafariGetNearStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
printfromtable gSafariGetNearStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_ActionThrowPokeblock:
|
||||
printstring STRINGID_THREWPOKEBLOCKATPKMN
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
playanimation BS_ATTACKER, B_ANIM_POKEBLOCK_THROW, NULL
|
||||
printfromtable gSafariPokeblockResultStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
printstring STRINGID_THREWPOKEBLOCKATPKMN
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
playanimation BS_ATTACKER, B_ANIM_POKEBLOCK_THROW, NULL
|
||||
printfromtable gSafariPokeblockResultStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_ActionWallyThrow:
|
||||
printstring STRINGID_RETURNMON
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
returnatktoball
|
||||
waitstate
|
||||
trainerslidein BS_TARGET
|
||||
waitstate
|
||||
printstring STRINGID_YOUTHROWABALLNOWRIGHT
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
printstring STRINGID_RETURNMON
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
returnatktoball
|
||||
waitstate
|
||||
trainerslidein BS_TARGET
|
||||
waitstate
|
||||
printstring STRINGID_YOUTHROWABALLNOWRIGHT
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_TrainerASlideMsgRet::
|
||||
handletrainerslidemsg BS_SCRIPTING, 0
|
||||
trainerslidein B_POSITION_OPPONENT_LEFT
|
||||
handletrainerslidemsg BS_SCRIPTING, 1
|
||||
waitstate
|
||||
trainerslideout B_POSITION_OPPONENT_LEFT
|
||||
waitstate
|
||||
handletrainerslidemsg BS_SCRIPTING, 2
|
||||
return
|
||||
handletrainerslidemsg BS_SCRIPTING, 0
|
||||
trainerslidein B_POSITION_OPPONENT_LEFT
|
||||
handletrainerslidemsg BS_SCRIPTING, 1
|
||||
waitstate
|
||||
trainerslideout B_POSITION_OPPONENT_LEFT
|
||||
waitstate
|
||||
handletrainerslidemsg BS_SCRIPTING, 2
|
||||
return
|
||||
|
||||
BattleScript_TrainerASlideMsgEnd2::
|
||||
call BattleScript_TrainerASlideMsgRet
|
||||
end2
|
||||
call BattleScript_TrainerASlideMsgRet
|
||||
end2
|
||||
|
||||
BattleScript_TrainerBSlideMsgRet::
|
||||
handletrainerslidemsg BS_SCRIPTING, 0
|
||||
trainerslidein B_POSITION_OPPONENT_RIGHT
|
||||
handletrainerslidemsg BS_SCRIPTING, 1
|
||||
waitstate
|
||||
trainerslideout B_POSITION_OPPONENT_RIGHT
|
||||
waitstate
|
||||
handletrainerslidemsg BS_SCRIPTING, 2
|
||||
return
|
||||
handletrainerslidemsg BS_SCRIPTING, 0
|
||||
trainerslidein B_POSITION_OPPONENT_RIGHT
|
||||
handletrainerslidemsg BS_SCRIPTING, 1
|
||||
waitstate
|
||||
trainerslideout B_POSITION_OPPONENT_RIGHT
|
||||
waitstate
|
||||
handletrainerslidemsg BS_SCRIPTING, 2
|
||||
return
|
||||
|
||||
BattleScript_TrainerBSlideMsgEnd2::
|
||||
call BattleScript_TrainerBSlideMsgRet
|
||||
end2
|
||||
call BattleScript_TrainerBSlideMsgRet
|
||||
end2
|
||||
|
||||
18
graphics/pokemon/ogerpon/cornerstone/shiny.pal
Normal file
18
graphics/pokemon/ogerpon/cornerstone/shiny.pal
Normal file
@ -0,0 +1,18 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
15
|
||||
148 209 161
|
||||
42 44 41
|
||||
21 158 7
|
||||
0 0 0
|
||||
74 76 73
|
||||
25 27 24
|
||||
61 113 53
|
||||
109 99 108
|
||||
133 139 139
|
||||
53 134 168
|
||||
55 189 227
|
||||
194 139 62
|
||||
255 197 74
|
||||
212 230 247
|
||||
124 162 56
|
||||
19
graphics/pokemon/ogerpon/hearthflame/shiny.pal
Normal file
19
graphics/pokemon/ogerpon/hearthflame/shiny.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
148 210 164
|
||||
156 153 172
|
||||
131 28 24
|
||||
49 133 172
|
||||
213 230 246
|
||||
41 44 41
|
||||
255 198 74
|
||||
124 162 56
|
||||
16 157 0
|
||||
57 113 49
|
||||
49 190 230
|
||||
0 0 0
|
||||
164 52 49
|
||||
74 76 74
|
||||
189 137 90
|
||||
230 60 49
|
||||
@ -9,7 +9,7 @@ JASC-PAL
|
||||
17 106 68
|
||||
21 158 7
|
||||
74 76 73
|
||||
61 113 53
|
||||
61 97 53
|
||||
175 216 159
|
||||
251 253 250
|
||||
139 99 57
|
||||
|
||||
18
graphics/pokemon/ogerpon/shiny.pal
Normal file
18
graphics/pokemon/ogerpon/shiny.pal
Normal file
@ -0,0 +1,18 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
15
|
||||
148 209 161
|
||||
42 44 41
|
||||
0 1 0
|
||||
27 70 15
|
||||
0 164 153
|
||||
17 106 68
|
||||
21 158 7
|
||||
74 76 73
|
||||
61 97 53
|
||||
175 216 159
|
||||
251 253 250
|
||||
139 99 57
|
||||
124 162 56
|
||||
219 157 92
|
||||
83 133 90
|
||||
19
graphics/pokemon/ogerpon/wellspring/shiny.pal
Normal file
19
graphics/pokemon/ogerpon/wellspring/shiny.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
148 209 161
|
||||
42 44 41
|
||||
21 158 7
|
||||
74 76 73
|
||||
0 0 0
|
||||
61 113 53
|
||||
11 64 121
|
||||
15 90 170
|
||||
0 126 229
|
||||
53 134 168
|
||||
71 85 100
|
||||
55 189 227
|
||||
212 230 247
|
||||
124 162 56
|
||||
169 122 74
|
||||
152 155 171
|
||||
@ -4954,6 +4954,7 @@ static void TurnValuesCleanUp(bool8 var0)
|
||||
else
|
||||
{
|
||||
memset(&gProtectStructs[i], 0, sizeof(struct ProtectStruct));
|
||||
memset(&gQueuedStatBoosts[i], 0, sizeof(gQueuedStatBoosts));
|
||||
|
||||
if (gDisableStructs[i].isFirstTurn)
|
||||
gDisableStructs[i].isFirstTurn--;
|
||||
|
||||
@ -1211,6 +1211,7 @@ static bool32 NoTargetPresent(u8 battler, u32 move)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// TODO: Convert this to a proper FORM_CHANGE type.
|
||||
static bool32 TryAegiFormChange(void)
|
||||
{
|
||||
// Only Aegislash with Stance Change can transform, transformed mons cannot.
|
||||
@ -2312,6 +2313,10 @@ static void Cmd_datahpupdate(void)
|
||||
}
|
||||
else if (DoesDisguiseBlockMove(gBattlerAttacker, battler, gCurrentMove))
|
||||
{
|
||||
// TODO: Convert this to a proper FORM_CHANGE type.
|
||||
u32 side = GetBattlerSide(battler);
|
||||
if (gBattleStruct->changedSpecies[side][gBattlerPartyIndexes[battler]] == SPECIES_NONE)
|
||||
gBattleStruct->changedSpecies[side][gBattlerPartyIndexes[battler]] = gBattleMons[battler].species;
|
||||
gBattleMons[battler].species = SPECIES_MIMIKYU_BUSTED;
|
||||
BattleScriptPush(cmd->nextInstr);
|
||||
gBattlescriptCurrInstr = BattleScript_TargetFormChange;
|
||||
@ -2488,6 +2493,7 @@ static void Cmd_resultmessage(void)
|
||||
if (gBattleControllerExecFlags)
|
||||
return;
|
||||
|
||||
// TODO: Convert this to a proper FORM_CHANGE type.
|
||||
// Do Ice Face form change which was set up in Cmd_adjustdamage.
|
||||
if (gBattleResources->flags->flags[gBattlerTarget] & RESOURCE_FLAG_ICE_FACE)
|
||||
{
|
||||
@ -10241,6 +10247,7 @@ static void Cmd_various(void)
|
||||
}
|
||||
return;
|
||||
}
|
||||
// TODO: Convert this to a proper FORM_CHANGE type.
|
||||
case VARIOUS_TRY_ACTIVATE_BATTLE_BOND:
|
||||
{
|
||||
VARIOUS_ARGS();
|
||||
@ -16320,6 +16327,7 @@ void BS_SetGlaiveRush(void)
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
|
||||
// TODO: Convert this to a proper FORM_CHANGE type.
|
||||
void BS_TryRelicSong(void)
|
||||
{
|
||||
NATIVE_ARGS();
|
||||
|
||||
@ -5482,6 +5482,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
&& TARGET_TURN_DAMAGED
|
||||
&& IsBattlerAlive(battler))
|
||||
{
|
||||
// TODO: Convert this to a proper FORM_CHANGE type.
|
||||
if (gBattleMons[gBattlerTarget].species == SPECIES_CRAMORANT_GORGING)
|
||||
{
|
||||
gBattleMons[gBattlerTarget].species = SPECIES_CRAMORANT;
|
||||
@ -5923,6 +5924,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
||||
&& !(gBattleMons[battler].status2 & STATUS2_TRANSFORMED)
|
||||
&& gBattleStruct->allowedToChangeFormInWeather[gBattlerPartyIndexes[battler]][GetBattlerSide(battler)])
|
||||
{
|
||||
// TODO: Convert this to a proper FORM_CHANGE type.
|
||||
gBattleStruct->allowedToChangeFormInWeather[gBattlerPartyIndexes[battler]][GetBattlerSide(battler)] = FALSE;
|
||||
gBattleMons[battler].species = SPECIES_EISCUE_ICE_FACE;
|
||||
BattleScriptPushCursorAndCallback(BattleScript_BattlerFormChangeWithStringEnd3);
|
||||
|
||||
@ -12917,7 +12917,7 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar
|
||||
const u32 gMonFrontPic_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/front.4bpp.lz");
|
||||
const u32 gMonPalette_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/normal.gbapal.lz");
|
||||
const u32 gMonBackPic_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/back.4bpp.lz");
|
||||
// const u32 gMonShinyPalette_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/shiny.gbapal.lz");
|
||||
const u32 gMonShinyPalette_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/shiny.gbapal.lz");
|
||||
const u8 gMonIcon_OgerponTealMask[] = INCBIN_U8("graphics/pokemon/ogerpon/icon.4bpp");
|
||||
#if P_FOOTPRINTS
|
||||
// const u8 gMonFootprint_Ogerpon[] = INCBIN_U8("graphics/pokemon/ogerpon/footprint.1bpp");
|
||||
@ -12926,19 +12926,19 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar
|
||||
const u32 gMonFrontPic_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/front.4bpp.lz");
|
||||
const u32 gMonPalette_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/normal.gbapal.lz");
|
||||
const u32 gMonBackPic_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/back.4bpp.lz");
|
||||
// const u32 gMonShinyPalette_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/shiny.gbapal.lz");
|
||||
const u32 gMonShinyPalette_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/shiny.gbapal.lz");
|
||||
// const u8 gMonIcon_OgerponWellspringMask[] = INCBIN_U8("graphics/pokemon/ogerpon/wellspring/icon.4bpp");
|
||||
|
||||
const u32 gMonFrontPic_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/front.4bpp.lz");
|
||||
const u32 gMonPalette_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/normal.gbapal.lz");
|
||||
const u32 gMonBackPic_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/back.4bpp.lz");
|
||||
// const u32 gMonShinyPalette_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/shiny.gbapal.lz");
|
||||
const u32 gMonShinyPalette_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/shiny.gbapal.lz");
|
||||
// const u8 gMonIcon_OgerponHearthflameMask[] = INCBIN_U8("graphics/pokemon/ogerpon/hearthflame/icon.4bpp");
|
||||
|
||||
const u32 gMonFrontPic_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/front.4bpp.lz");
|
||||
const u32 gMonPalette_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/normal.gbapal.lz");
|
||||
const u32 gMonBackPic_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/back.4bpp.lz");
|
||||
// const u32 gMonShinyPalette_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/shiny.gbapal.lz");
|
||||
const u32 gMonShinyPalette_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/shiny.gbapal.lz");
|
||||
// const u8 gMonIcon_OgerponCornerstoneMask[] = INCBIN_U8("graphics/pokemon/ogerpon/cornerstone/icon.4bpp");
|
||||
|
||||
// const u32 gMonFrontPic_OgerponTealMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/tera/front.4bpp.lz");
|
||||
|
||||
@ -5371,7 +5371,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
||||
#endif //P_FAMILY_FEZANDIPITI
|
||||
|
||||
#if P_FAMILY_OGERPON
|
||||
#define OGERPON_SPECIES_INFO(Form, type, ability, color, tera) \
|
||||
#define OGERPON_SPECIES_INFO(Form, type, ability, color) \
|
||||
{ \
|
||||
.baseHP = 80, \
|
||||
.baseAttack = 120, \
|
||||
@ -5404,30 +5404,29 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
|
||||
FRONT_PIC(Ogerpon##Form, 64, 64), \
|
||||
.frontPicYOffset = 0, \
|
||||
.frontAnimFrames = sAnims_Ogerpon, \
|
||||
/*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ \
|
||||
BACK_PIC(Ogerpon##Form, 64, 64), \
|
||||
.backPicYOffset = 16, \
|
||||
/*.backAnimId = BACK_ANIM_NONE,*/ \
|
||||
.palette = gMonPalette_Ogerpon##Form, \
|
||||
ICON(OgerponTealMask, 1), \
|
||||
.shinyPalette = gMonShinyPalette_Ogerpon##Form, \
|
||||
ICON(OgerponTealMask, 1), /* Each form should have its own icon */ \
|
||||
/*FOOTPRINT(Ogerpon)*/ \
|
||||
LEARNSETS(Ogerpon), \
|
||||
.formSpeciesIdTable = sOgerponFormSpeciesIdTable, \
|
||||
.formChangeTable = sOgerponFormChangeTable, \
|
||||
.isLegendary = TRUE, \
|
||||
}
|
||||
//.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,
|
||||
//.backAnimId = BACK_ANIM_NONE,
|
||||
//.shinyPalette = gMonShinyPalette_OgerponTealMask,
|
||||
//ICON(Ogerpon##Form##, 1),
|
||||
//FOOTPRINT(Ogerpon)
|
||||
|
||||
[SPECIES_OGERPON_TEAL_MASK] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_DEFIANT, BODY_COLOR_GREEN, FALSE),
|
||||
[SPECIES_OGERPON_WELLSPRING_MASK] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_WATER_ABSORB, BODY_COLOR_BLUE, FALSE),
|
||||
[SPECIES_OGERPON_HEARTHFLAME_MASK] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_MOLD_BREAKER, BODY_COLOR_RED, FALSE),
|
||||
[SPECIES_OGERPON_CORNERSTONE_MASK] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_STURDY, BODY_COLOR_GRAY, FALSE),
|
||||
[SPECIES_OGERPON_TEAL_MASK] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_DEFIANT, BODY_COLOR_GREEN),
|
||||
[SPECIES_OGERPON_WELLSPRING_MASK] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_WATER_ABSORB, BODY_COLOR_BLUE),
|
||||
[SPECIES_OGERPON_HEARTHFLAME_MASK] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_MOLD_BREAKER, BODY_COLOR_RED),
|
||||
[SPECIES_OGERPON_CORNERSTONE_MASK] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_STURDY, BODY_COLOR_GRAY),
|
||||
#if P_TERA_FORMS
|
||||
[SPECIES_OGERPON_TEAL_MASK_TERA] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_EMBODY_ASPECT_TEAL, BODY_COLOR_GREEN, TRUE),
|
||||
[SPECIES_OGERPON_WELLSPRING_MASK_TERA] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_EMBODY_ASPECT_WELLSPRING, BODY_COLOR_BLUE, TRUE),
|
||||
[SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_EMBODY_ASPECT_HEARTHFLAME, BODY_COLOR_RED, TRUE),
|
||||
[SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_EMBODY_ASPECT_CORNERSTONE, BODY_COLOR_GRAY, TRUE),
|
||||
[SPECIES_OGERPON_TEAL_MASK_TERA] = OGERPON_SPECIES_INFO(TealMask, TYPE_GRASS, ABILITY_EMBODY_ASPECT_TEAL, BODY_COLOR_GREEN),
|
||||
[SPECIES_OGERPON_WELLSPRING_MASK_TERA] = OGERPON_SPECIES_INFO(WellspringMask, TYPE_WATER, ABILITY_EMBODY_ASPECT_WELLSPRING, BODY_COLOR_BLUE),
|
||||
[SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = OGERPON_SPECIES_INFO(HearthflameMask, TYPE_FIRE, ABILITY_EMBODY_ASPECT_HEARTHFLAME, BODY_COLOR_RED),
|
||||
[SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = OGERPON_SPECIES_INFO(CornerstoneMask, TYPE_ROCK, ABILITY_EMBODY_ASPECT_CORNERSTONE, BODY_COLOR_GRAY),
|
||||
#endif //P_TERA_FORMS
|
||||
|
||||
#endif //P_FAMILY_OGERPON
|
||||
|
||||
@ -106,6 +106,24 @@ DOUBLE_BATTLE_TEST("Opportunist raises Attack only once when partner has Intimid
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Opportunist does not accumulate opposing mon's stat changes")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_ESPATHRA) { Ability(ABILITY_OPPORTUNIST); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SWORDS_DANCE); }
|
||||
TURN { MOVE(player, MOVE_SWORDS_DANCE); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SWORDS_DANCE, player);
|
||||
ABILITY_POPUP(opponent, ABILITY_OPPORTUNIST);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SWORDS_DANCE, player);
|
||||
ABILITY_POPUP(opponent, ABILITY_OPPORTUNIST);
|
||||
} THEN {
|
||||
EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 4);
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Opportunist doesn't copy ally stat increases");
|
||||
TO_DO_BATTLE_TEST("Opportunist doesn't copy foe stat increases gained via Opportunist");
|
||||
TO_DO_BATTLE_TEST("Opportunist copies foe stat increased gained via Swagger and Flatter");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user