Merge branch 'battle_engine' of https://github.com/rh-hideout/pokeemerald-expansion into pastel_veil
@ -1585,6 +1585,10 @@
|
||||
.macro showabilitypopup battler:req
|
||||
various \battler, VARIOUS_ABILITY_POPUP
|
||||
.endm
|
||||
|
||||
.macro updateabilitypopup battler:req
|
||||
various \battler, VARIOUS_UPDATE_ABILITY_POPUP
|
||||
.endm
|
||||
|
||||
.macro defogclear battler:req, clear:req, ptr:req
|
||||
various \battler, VARIOUS_DEFOG
|
||||
@ -1857,6 +1861,12 @@
|
||||
.macro applyplasmafists
|
||||
various BS_ATTACKER, VARIOUS_APPLY_PLASMA_FISTS
|
||||
.endm
|
||||
|
||||
.macro jumpifweatheraffected battler:req, weather:req, ptr:req
|
||||
various \battler, VARIOUS_JUMP_IF_WEATHER_AFFECTED
|
||||
.4byte \weather
|
||||
.4byte \ptr
|
||||
.endm
|
||||
|
||||
.macro jumpifspecies battler:req, species:req, ptr:req
|
||||
various \battler, VARIOUS_JUMP_IF_SPECIES
|
||||
@ -1983,10 +1993,9 @@
|
||||
goto \jumpptr
|
||||
.endm
|
||||
|
||||
.macro jumpifleafguard jumpptr:req
|
||||
jumpifhalfword CMP_NO_COMMON_BITS, gBattleWeather, WEATHER_SUN_ANY, 1f
|
||||
jumpifability BS_TARGET, ABILITY_LEAF_GUARD, \jumpptr
|
||||
1:
|
||||
.macro jumpifleafguardprotected battler:req, jumpptr:req
|
||||
various \battler, VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED
|
||||
.4byte \jumpptr
|
||||
.endm
|
||||
|
||||
.macro jumpifsafeguard jumpptr:req
|
||||
|
@ -478,7 +478,7 @@ gBattleAnims_Moves::
|
||||
.4byte Move_HEAD_SMASH
|
||||
.4byte Move_DOUBLE_HIT
|
||||
.4byte Move_ROAR_OF_TIME
|
||||
.4byte Move_SPECIAL_REND
|
||||
.4byte Move_SPACIAL_REND
|
||||
.4byte Move_LUNAR_DANCE
|
||||
.4byte Move_CRUSH_GRIP
|
||||
.4byte Move_MAGMA_STORM
|
||||
@ -4166,7 +4166,7 @@ Move_ROAR_OF_TIME:
|
||||
waitforvisualfinish
|
||||
end
|
||||
|
||||
Move_SPECIAL_REND:
|
||||
Move_SPACIAL_REND:
|
||||
loadspritegfx ANIM_TAG_PUNISHMENT_BLADES
|
||||
loadspritegfx ANIM_TAG_PINK_HEART_2 @ANIM_TAG_BERRY_EATEN
|
||||
monbg ANIM_ATK_PARTNER
|
||||
@ -6636,7 +6636,7 @@ Move_HURRICANE:
|
||||
monbg ANIM_DEF_PARTNER
|
||||
monbgprio_28 ANIM_TARGET
|
||||
setalpha 12, 8
|
||||
fadetobg BG_HIGH_SPEED
|
||||
fadetobg BG_HURRICANE
|
||||
waitbgfadeout
|
||||
launchtask AnimTask_StartSlidingBg 0x5 0x4 0x1000 0x0 0x1 0xffff
|
||||
waitbgfadein
|
||||
@ -13940,47 +13940,64 @@ Move_ETERNA_BEAM::
|
||||
goto Move_HYPER_BEAM
|
||||
|
||||
Move_STEEL_BEAM::
|
||||
loadspritegfx ANIM_TAG_CLAW_SLASH
|
||||
loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2
|
||||
createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0
|
||||
delay 48
|
||||
loadspritegfx ANIM_TAG_ELECTRIC_ORBS
|
||||
loadspritegfx ANIM_TAG_GUST
|
||||
loadspritegfx ANIM_TAG_SPIKES
|
||||
launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x0 0x0 0x10 0x6B59 @To gray
|
||||
launchtask AnimTask_ElectricChargingParticles 0x2 0x4 0x0 0x14 0x0 0x2
|
||||
playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER
|
||||
delay 0x14
|
||||
loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 0x9, 15
|
||||
launchtask AnimTask_ShakeMon 0x2 0x5 ANIM_ATTACKER 0x0 0x4 72 0x1
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
launchtemplate gSlideMonToOffsetSpriteTemplate 0x2 0x5 ANIM_TARGET, -30, 0x0 TRUE 145
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
call SteelBeamShards
|
||||
waitforvisualfinish
|
||||
launchtemplate gSlideMonToOriginalPosSpriteTemplate 0x2 0x3 ANIM_TARGET 0x0 0x6
|
||||
launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0xE 0x0 0x6B59 @From gray
|
||||
delay 20
|
||||
loadspritegfx ANIM_TAG_STEEL_BEAM
|
||||
call SetSteelBeamBackground
|
||||
panse_1B SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0
|
||||
createvisualtask AnimTask_CreateSmallSteelBeamOrbs, 5
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0
|
||||
delay 4
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 1
|
||||
delay 4
|
||||
createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 1, 0, 10, RGB(24, 24, 48)
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 2
|
||||
delay 4
|
||||
createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 65, 1
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 3
|
||||
delay 4
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 4
|
||||
delay 4
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 5
|
||||
delay 4
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 6
|
||||
delay 4
|
||||
call SteelBeam_Continuity
|
||||
call SteelBeam_Continuity
|
||||
waitforvisualfinish
|
||||
createvisualtask AnimTask_BlendBattleAnimPal, 10, 4, 1, 10, 0, RGB(24, 24, 48)
|
||||
call UnsetHighSpeedBg
|
||||
end
|
||||
SteelBeamShards:
|
||||
launchtemplate gSteelBeamSpikeShardTemplate 0x80, 0x5 0xf 0xf 0x14 0x0 0x0
|
||||
launchtemplate gSteelBeamSpikeShardTemplate 0x80, 0x5 0xf 0xf 0x14 0xa 0x5
|
||||
launchtemplate gSteelBeamSpikeShardTemplate 0x80, 0x5 0xf 0xf 0x14 0xfff6 0xfffb
|
||||
delay 0x2
|
||||
launchtemplate gSteelBeamSpikeShardTemplate 0x80, 0x5 0xf 0xf 0x14 0x14 0xa
|
||||
launchtemplate gSteelBeamSpikeShardTemplate 0x80, 0x5 0xf 0xf 0x14 0xffec 0xfff6
|
||||
delay 0x2
|
||||
SteelBeam_Continuity:
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0
|
||||
delay 4
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 1
|
||||
delay 4
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 2
|
||||
delay 4
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 3
|
||||
delay 4
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 4
|
||||
delay 4
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 5
|
||||
delay 4
|
||||
createsprite gSteelBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 6
|
||||
delay 4
|
||||
return
|
||||
SetSteelBeamBackground:
|
||||
createvisualtask AnimTask_GetAttackerSide, 2
|
||||
jumprettrue SetSteelBeamBgPlayer
|
||||
fadetobg BG_STEEL_BEAM_OPPONENT
|
||||
goto SetHighSpeedBgFade
|
||||
SetSteelBeamBgPlayer:
|
||||
fadetobg BG_STEEL_BEAM_PLAYER
|
||||
|
||||
Move_EXPANDING_FORCE::
|
||||
end @to do:
|
||||
|
@ -1672,7 +1672,7 @@ BattleScript_GrowthDoMoveAnim::
|
||||
waitanimation
|
||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
||||
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPATK, 0
|
||||
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, WEATHER_SUN_ANY, BattleScript_GrowthAtk2
|
||||
jumpifweatheraffected BS_ATTACKER, WEATHER_SUN_ANY, BattleScript_GrowthAtk2
|
||||
setstatchanger STAT_ATK, 1, FALSE
|
||||
goto BattleScript_GrowthAtk
|
||||
BattleScript_GrowthAtk2:
|
||||
@ -1683,7 +1683,7 @@ BattleScript_GrowthAtk:
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_GrowthTrySpAtk::
|
||||
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, WEATHER_SUN_ANY, BattleScript_GrowthSpAtk2
|
||||
jumpifweatheraffected BS_ATTACKER, WEATHER_SUN_ANY, BattleScript_GrowthSpAtk2
|
||||
setstatchanger STAT_SPATK, 1, FALSE
|
||||
goto BattleScript_GrowthSpAtk
|
||||
BattleScript_GrowthSpAtk2:
|
||||
@ -2512,7 +2512,7 @@ BattleScript_EffectSleep::
|
||||
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
|
||||
jumpifflowerveil BattleScript_FlowerVeilProtects
|
||||
jumpifability BS_TARGET_SIDE, ABILITY_SWEET_VEIL, BattleScript_SweetVeilProtects
|
||||
jumpifleafguard BattleScript_LeafGuardProtects
|
||||
jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects
|
||||
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
||||
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
||||
jumpifterrainaffected BS_TARGET, STATUS_FIELD_ELECTRIC_TERRAIN, BattleScript_ElectricTerrainPrevents
|
||||
@ -3067,7 +3067,7 @@ BattleScript_EffectToxic::
|
||||
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
|
||||
jumpifability BS_TARGET_SIDE, ABILITY_PASTEL_VEIL, BattleScript_PastelVeilProtects
|
||||
jumpifflowerveil BattleScript_FlowerVeilProtects
|
||||
jumpifleafguard BattleScript_LeafGuardProtects
|
||||
jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects
|
||||
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
||||
jumpifsubstituteblocks BattleScript_ButItFailed
|
||||
jumpifstatus BS_TARGET, STATUS1_POISON | STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
|
||||
@ -3424,7 +3424,7 @@ BattleScript_EffectPoison::
|
||||
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
|
||||
jumpifability BS_TARGET_SIDE, ABILITY_PASTEL_VEIL, BattleScript_PastelVeilProtects
|
||||
jumpifflowerveil BattleScript_FlowerVeilProtects
|
||||
jumpifleafguard BattleScript_LeafGuardProtects
|
||||
jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects
|
||||
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
||||
jumpifsubstituteblocks BattleScript_ButItFailed
|
||||
jumpifstatus BS_TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
|
||||
@ -3449,7 +3449,7 @@ BattleScript_EffectParalyze:
|
||||
jumpifability BS_TARGET, ABILITY_LIMBER, BattleScript_LimberProtected
|
||||
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
|
||||
jumpifflowerveil BattleScript_FlowerVeilProtects
|
||||
jumpifleafguard BattleScript_LeafGuardProtects
|
||||
jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects
|
||||
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
||||
jumpifsubstituteblocks BattleScript_ButItFailed
|
||||
.if B_GLARE_GHOST >= GEN_4
|
||||
@ -4572,9 +4572,7 @@ BattleScript_EffectGust::
|
||||
goto BattleScript_EffectHit
|
||||
|
||||
BattleScript_EffectSolarbeam::
|
||||
jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_SolarbeamDecideTurn
|
||||
jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_SolarbeamDecideTurn
|
||||
jumpifhalfword CMP_COMMON_BITS, gBattleWeather, WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT, BattleScript_SolarbeamOnFirstTurn
|
||||
jumpifweatheraffected BS_ATTACKER, WEATHER_SUN_ANY, BattleScript_SolarbeamOnFirstTurn
|
||||
BattleScript_SolarbeamDecideTurn::
|
||||
jumpifstatus2 BS_ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn
|
||||
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn
|
||||
@ -4891,7 +4889,7 @@ BattleScript_EffectWillOWisp::
|
||||
jumpifability BS_TARGET, ABILITY_WATER_BUBBLE, BattleScript_WaterVeilPrevents
|
||||
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_LeafGuardProtects
|
||||
jumpifflowerveil BattleScript_FlowerVeilProtects
|
||||
jumpifleafguard BattleScript_LeafGuardProtects
|
||||
jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects
|
||||
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
||||
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
||||
jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents
|
||||
@ -5169,7 +5167,7 @@ BattleScript_EffectYawn::
|
||||
jumpifability BS_TARGET, ABILITY_INSOMNIA, BattleScript_PrintBankAbilityMadeIneffective
|
||||
jumpifability BS_TARGET, ABILITY_COMATOSE, BattleScript_PrintBankAbilityMadeIneffective
|
||||
jumpifflowerveil BattleScript_FlowerVeilProtects
|
||||
jumpifleafguard BattleScript_LeafGuardProtects
|
||||
jumpifleafguardprotected BS_TARGET, BattleScript_LeafGuardProtects
|
||||
jumpifshieldsdown BS_TARGET, BattleScript_LeafGuardProtects
|
||||
jumpifsubstituteblocks BattleScript_ButItFailed
|
||||
jumpifsafeguard BattleScript_SafeguardProtected
|
||||
@ -7992,6 +7990,34 @@ BattleScript_MummyActivates::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
return
|
||||
|
||||
BattleScript_WanderingSpiritActivates::
|
||||
.if B_ABILITY_POP_UP == TRUE
|
||||
setbyte sFIXED_ABILITY_POPUP, TRUE
|
||||
sethword sABILITY_OVERWRITE, ABILITY_WANDERING_SPIRIT
|
||||
showabilitypopup BS_TARGET
|
||||
pause 60
|
||||
sethword sABILITY_OVERWRITE, 0
|
||||
updateabilitypopup BS_TARGET
|
||||
pause 20
|
||||
destroyabilitypopup
|
||||
pause 40
|
||||
|
||||
setbyte sFIXED_ABILITY_POPUP, TRUE
|
||||
copyhword sABILITY_OVERWRITE, gLastUsedAbility
|
||||
showabilitypopup BS_ATTACKER
|
||||
pause 60
|
||||
sethword sABILITY_OVERWRITE, 0
|
||||
updateabilitypopup BS_ATTACKER
|
||||
pause 20
|
||||
destroyabilitypopup
|
||||
pause 40
|
||||
.endif
|
||||
printstring STRINGID_SWAPPEDABILITIES
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
switchinabilities BS_ATTACKER
|
||||
switchinabilities BS_TARGET
|
||||
return
|
||||
|
||||
BattleScript_TargetsStatWasMaxedOut::
|
||||
call BattleScript_AbilityPopUp
|
||||
statbuffchange STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL
|
||||
@ -8517,6 +8543,10 @@ BattleScript_SelectingNotAllowedMoveChoiceItem::
|
||||
printselectionstring STRINGID_ITEMALLOWSONLYYMOVE
|
||||
endselectionscript
|
||||
|
||||
BattleScript_SelectingNotAllowedMoveGorillaTactics::
|
||||
printselectionstring STRINGID_ABILITYALLOWSONLYMOVE
|
||||
endselectionscript
|
||||
|
||||
BattleScript_SelectingNotAllowedMoveAssaultVest::
|
||||
printselectionstring STRINGID_ASSAULTVESTDOESNTALLOW
|
||||
endselectionscript
|
||||
|
@ -1,2 +0,0 @@
|
||||
|
||||
! " # $ % & ' ( ) * + , - . / 0 1 2 3 3 3 3 3 3 4 5 6 7 7 8 9 : ; < = > ? @ A A A A B C D E F G D H A A A A A A I J K A A L M N O M M P M M Q Q R S T U V W S S S S S S S S S S S S S X Y Z [ [ [ [ [ [ [ [ \ \ \ \ ] ^ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ _ _ _ _ ` a b c _ d d d d e f e d d g h i j k l m n o p q r s t j$u v w x y z w${ | | | | | | } ~ € <20> ‚ ƒ „ … „$† } ‡ ˆ ‰ Š ‹ ˆ Œ <20> ‹ Ž <20> <20> ‹$<24> ‘ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ((((((“ ” • – — ˜ –$™ ”$˜ š › •$œ <20> ž Ÿ ¡ ¢ £ ¤ ¥ ¦ § ¨
|
Before Width: | Height: | Size: 855 B |
BIN
graphics/battle_anims/backgrounds/new/hurricane.png
Normal file
After Width: | Height: | Size: 519 B |
@ -1,2 +0,0 @@
|
||||
|
||||
$ ! " # $ % & ' ( ) * + + , - . / 0 1 2 2 3 4 4 4 4 4 4 5 6 6 7 8 9 : ; < = = > ? @ A B C D E F F G H I I J K L M N N N O P P P P P Q R S S S S S T Q U V S W X X Y Z [ \ ] ] ] ] ] ^ _ ` a a b c d e f g g g g g h i i i i j k k l m n o p p p p p q m m m m r s t u v w x y z { { | } ~ ~ € € € <20> ~ ~ ‚ ƒ ƒ „ … … … † ‡ ˆ ‰ ‰ ‰ Š Š ‹ Œ <20> <20> <20> <20> Ž <20> <20> <20> <20> <20> ‘ ’ “ “ ” <20> • – — ˜ ™ š › œ œ œ œ <20> ž ž Ÿ ¡ ž ž ¢ £ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¥ ¦ ¦ § ¨ ¨ ¨ ¨ © ª « ¬ ® ¯ ¯ ° ± ± ± ± ± ± ± ² ³ ´ µ ¶ ¶ · ‰,‰,‰,‰,¸ ¹ ¹ ¹ ¹ ¹ ¹ º » ¼ ½ ¾ ¾ ¾ ¾ ¾ ¿ À Á Â Â Ã Ä Ä Å Â Â Æ Ç Ç Ç È s,t(É Ê Ê Ê Ë m,Ì Í Î Î Î Ï Ì Ð Ñ Ñ Ñ Ñ Ò Ó Ô Õ d,d,d,d,d,Ö × Ø Ù d,Ú Û Û Ü Ý Þ ß à á á á â ã ã ã ã ã ã ã ã ã ã ã ä å æ æ ç P,P,P,è é ê ê é$ë P,ì ì ì í î ï ð ð ð ð ð ð ñ ò ò ò ó ô õ õ õ õ õ õ õ ö 4,4,4,4,4,4,
|
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 0 0
|
||||
255 246 0
|
||||
255 238 0
|
||||
255 222 0
|
||||
255 205 0
|
||||
255 189 0
|
||||
255 172 0
|
||||
255 156 8
|
||||
255 139 8
|
||||
255 123 8
|
||||
255 106 8
|
||||
255 90 8
|
||||
255 74 8
|
||||
255 49 8
|
||||
255 41 8
|
||||
246 24 0
|
||||
96 192 24
|
||||
248 248 216
|
||||
248 248 176
|
||||
248 240 144
|
||||
248 232 120
|
||||
248 232 112
|
||||
248 216 96
|
||||
240 200 88
|
||||
232 192 72
|
||||
232 184 64
|
||||
232 176 56
|
||||
224 160 32
|
||||
216 152 32
|
||||
208 136 40
|
||||
192 120 40
|
||||
176 88 40
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
19
graphics/battle_anims/backgrounds/new/spacial_rend.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 0 0
|
||||
208 112 200
|
||||
216 184 249
|
||||
216 160 232
|
||||
211 107 195
|
||||
208 104 192
|
||||
217 129 209
|
||||
216 135 215
|
||||
209 120 208
|
||||
218 153 226
|
||||
216 168 232
|
||||
217 176 241
|
||||
220 188 252
|
||||
203 115 203
|
||||
223 182 246
|
||||
216 192 248
|
BIN
graphics/battle_anims/backgrounds/new/spacial_rend.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
@ -1,19 +0,0 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
255 0 0
|
||||
222 156 230
|
||||
222 180 246
|
||||
213 123 205
|
||||
213 189 246
|
||||
205 115 205
|
||||
213 164 230
|
||||
213 131 213
|
||||
222 197 255
|
||||
222 189 255
|
||||
213 139 222
|
||||
213 172 238
|
||||
213 106 197
|
||||
222 131 213
|
||||
213 115 205
|
||||
205 106 197
|
Before Width: | Height: | Size: 5.7 KiB |
@ -1,19 +0,0 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
255 0 0
|
||||
213 156 230
|
||||
222 180 246
|
||||
213 123 205
|
||||
213 189 246
|
||||
213 131 213
|
||||
205 115 205
|
||||
213 164 230
|
||||
222 197 255
|
||||
213 139 222
|
||||
222 189 255
|
||||
213 172 238
|
||||
213 106 197
|
||||
213 115 205
|
||||
222 156 230
|
||||
205 106 197
|
Before Width: | Height: | Size: 6.8 KiB |
19
graphics/battle_anims/backgrounds/new/steel_beam_bg.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 0 0
|
||||
184 192 224
|
||||
168 176 208
|
||||
144 152 192
|
||||
112 120 168
|
||||
96 104 160
|
||||
88 96 144
|
||||
80 88 136
|
||||
72 80 120
|
||||
64 72 112
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
Before Width: | Height: | Size: 1.2 KiB |
@ -1,19 +0,0 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
255 0 0
|
||||
222 156 230
|
||||
222 180 246
|
||||
213 123 205
|
||||
213 189 246
|
||||
205 115 205
|
||||
213 164 230
|
||||
213 131 213
|
||||
222 197 255
|
||||
222 189 255
|
||||
213 139 222
|
||||
213 172 238
|
||||
213 106 197
|
||||
222 131 213
|
||||
213 115 205
|
||||
205 106 197
|
Before Width: | Height: | Size: 5.7 KiB |
@ -1,19 +0,0 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
255 0 0
|
||||
213 156 230
|
||||
222 180 246
|
||||
213 123 205
|
||||
213 189 246
|
||||
213 131 213
|
||||
205 115 205
|
||||
213 164 230
|
||||
222 197 255
|
||||
213 139 222
|
||||
222 189 255
|
||||
213 172 238
|
||||
213 106 197
|
||||
213 115 205
|
||||
222 156 230
|
||||
205 106 197
|
Before Width: | Height: | Size: 6.8 KiB |
19
graphics/battle_anims/sprites/new/steel_beam.pal
Normal file
@ -0,0 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 0 0
|
||||
112 120 208
|
||||
128 136 216
|
||||
144 152 224
|
||||
160 168 232
|
||||
176 184 240
|
||||
192 200 248
|
||||
208 216 248
|
||||
248 248 248
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
248 192 216
|
||||
248 248 168
|
||||
0 0 0
|
@ -101,5 +101,6 @@ bool32 CanThrowLastUsedBall(void);
|
||||
void TryHideLastUsedBall(void);
|
||||
void TryRestoreLastUsedBall(void);
|
||||
void TryAddLastUsedBallItemSprites(void);
|
||||
void UpdateAbilityPopup(u8 battlerId);
|
||||
|
||||
#endif // GUARD_BATTLE_INTERFACE_H
|
||||
|
@ -402,6 +402,8 @@ extern const u8 BattleScript_BlockedByPrimalWeatherEnd3[];
|
||||
extern const u8 BattleScript_BlockedByPrimalWeatherRet[];
|
||||
extern const u8 BattleScript_PrimalReversion[];
|
||||
extern const u8 BattleScript_HyperspaceFuryRemoveProtect[];
|
||||
extern const u8 BattleScript_SelectingNotAllowedMoveGorillaTactics[];
|
||||
extern const u8 BattleScript_WanderingSpiritActivates[];
|
||||
extern const u8 BattleScript_PastelVeilActivates[];
|
||||
|
||||
#endif // GUARD_BATTLE_SCRIPTS_H
|
||||
|
@ -156,6 +156,7 @@ void BufferStatChange(u8 battlerId, u8 statId, u8 stringId);
|
||||
void DoBurmyFormChange(u32 monId);
|
||||
bool32 BlocksPrankster(u16 move, u8 battlerPrankster, u8 battlerDef, bool32 checkTarget);
|
||||
u16 GetUsedHeldItem(u8 battler);
|
||||
bool32 IsBattlerWeatherAffected(u8 battlerId, u32 weatherFlags);
|
||||
|
||||
// ability checks
|
||||
bool32 IsRolePlayBannedAbilityAtk(u16 ability);
|
||||
|
@ -394,6 +394,7 @@
|
||||
#define ANIM_TAG_ALPHA_SYMBOL (ANIM_SPRITES_START + 382)
|
||||
#define ANIM_TAG_OMEGA_SYMBOL (ANIM_SPRITES_START + 383)
|
||||
#define ANIM_TAG_PRIMAL_PARTICLES (ANIM_SPRITES_START + 384)
|
||||
#define ANIM_TAG_STEEL_BEAM (ANIM_SPRITES_START + 385)
|
||||
|
||||
// battlers
|
||||
#define ANIM_ATTACKER 0
|
||||
@ -461,7 +462,7 @@
|
||||
#define BG_WATER_2 41
|
||||
#define BG_POISON 42
|
||||
#define BG_AEROBLAST 43
|
||||
#define BG_HIGH_SPEED 44 //hurricane, close combat
|
||||
#define BG_HURRICANE 44
|
||||
#define BG_ELECTRIC_TERRAIN 45
|
||||
#define BG_GRASSY_TERRAIN 46
|
||||
#define BG_MISTY_TERRAIN 47
|
||||
@ -495,6 +496,8 @@
|
||||
#define BG_HYPER_BEAM 75
|
||||
#define BG_DYNAMAX_CANNON 76
|
||||
#define BG_AURA_SPHERE 77
|
||||
#define BG_STEEL_BEAM_OPPONENT 78
|
||||
#define BG_STEEL_BEAM_PLAYER 79
|
||||
|
||||
// table ids for general animations (gBattleAnims_General)
|
||||
#define B_ANIM_CASTFORM_CHANGE 0
|
||||
|
@ -194,6 +194,9 @@
|
||||
#define VARIOUS_HANDLE_PRIMAL_REVERSION 121
|
||||
#define VARIOUS_APPLY_PLASMA_FISTS 122
|
||||
#define VARIOUS_JUMP_IF_SPECIES 123
|
||||
#define VARIOUS_UPDATE_ABILITY_POPUP 124
|
||||
#define VARIOUS_JUMP_IF_WEATHER_AFFECTED 125
|
||||
#define VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED 126
|
||||
|
||||
// Cmd_manipulatedamage
|
||||
#define DMG_CHANGE_SIGN 0
|
||||
|
@ -597,10 +597,12 @@
|
||||
#define STRINGID_BUTPOKEMONCANTUSETHEMOVE 594
|
||||
#define STRINGID_BUTHOOPACANTUSEIT 595
|
||||
#define STRINGID_BROKETHROUGHPROTECTION 596
|
||||
#define STRINGID_PASTELVEILPROTECTED 597
|
||||
#define STRINGID_PASTELVEILENTERS 598
|
||||
#define STRINGID_ABILITYALLOWSONLYMOVE 597
|
||||
#define STRINGID_SWAPPEDABILITIES 598
|
||||
#define STRINGID_PASTELVEILPROTECTED 599
|
||||
#define STRINGID_PASTELVEILENTERS 600
|
||||
|
||||
#define BATTLESTRINGS_COUNT 599
|
||||
#define BATTLESTRINGS_COUNT 601
|
||||
|
||||
// The below IDs are all indexes into battle message tables,
|
||||
// used to determine which of a set of messages to print.
|
||||
|
@ -238,5 +238,9 @@
|
||||
#define COMBO_STARTER_THOUSAND_WAVES 82
|
||||
#define COMBO_STARTER_HYPERSPACE_FURY 83
|
||||
#define COMBO_STARTER_SHADOW_BONE 84
|
||||
#define COMBO_STARTER_ELECTRIC_TERRAIN 85
|
||||
#define COMBO_STARTER_MISTY_TERRAIN 86
|
||||
#define COMBO_STARTER_GRASSY_TERRAIN 87
|
||||
#define COMBO_STARTER_PSYCHIC_TERRAIN 88
|
||||
|
||||
#endif // GUARD_CONSTANTS_CONTEST_H
|
||||
|
@ -4933,12 +4933,13 @@ extern const u32 gBattleAnimBgImage_InAir[];
|
||||
extern const u32 gBattleAnimBgImage_Aurora[];
|
||||
extern const u32 gBattleAnimBgImage_Fissure[];
|
||||
extern const u32 gBattleAnimBgImage_TrickRoom[];
|
||||
extern const u32 gBattleAnimBgImage_RockWrecker[];
|
||||
extern const u32 gBattleAnimBgImage_SpacialRendOpponent[];
|
||||
extern const u32 gBattleAnimBgPalette_SpacialRendOpponent[];
|
||||
extern const u32 gBattleAnimBgImage_Hurricane[];
|
||||
extern const u32 gBattleAnimBgPalette_Hurricane[];
|
||||
extern const u32 gBattleAnimBgTilemap_Hurricane[];
|
||||
extern const u32 gBattleAnimBgPalette_RockWrecker[];
|
||||
extern const u32 gBattleAnimBgImage_SpacialRend[];
|
||||
extern const u32 gBattleAnimBgPalette_SpacialRend[];
|
||||
extern const u32 gBattleAnimBgTilemap_SpacialRendOpponent[];
|
||||
extern const u32 gBattleAnimBgImage_SpacialRendPlayer[];
|
||||
extern const u32 gBattleAnimBgPalette_SpacialRendPlayer[];
|
||||
extern const u32 gBattleAnimBgTilemap_SpacialRendPlayer[];
|
||||
extern const u32 gBattleAnimBgImage_DarkVoid[];
|
||||
extern const u32 gBattleAnimBgPalette_DarkVoid[];
|
||||
@ -4962,7 +4963,6 @@ extern const u32 gBattleAnimBgPalette_Solarbeam[];
|
||||
extern const u32 gBattleAnimBgPalette_MagmaStorm[];
|
||||
extern const u32 gBattleAnimBgPalette_GigaImpact[];
|
||||
extern const u32 gBattleAnimBgPalette_TrickRoom[];
|
||||
extern const u32 gBattleAnimBgPalette_RockWrecker[];
|
||||
extern const u32 gBattleAnimBgTilemap_Dark[];
|
||||
extern const u32 gBattleAnimBgTilemap_Ghost[];
|
||||
extern const u32 gBattleAnimBgTilemap_Psychic[];
|
||||
@ -4974,7 +4974,6 @@ extern const u32 gBattleAnimBgTilemap_DrillContests[];
|
||||
extern const u32 gBattleAnimBgTilemap_HighspeedOpponent[];
|
||||
extern const u32 gBattleAnimBgTilemap_HighspeedPlayer[];
|
||||
extern const u32 gBattleAnimBgTilemap_TrickRoom[];
|
||||
extern const u32 gBattleAnimBgTilemap_RockWrecker[];
|
||||
extern const u32 gBattleAnimMaskImage_LightBeam[];
|
||||
extern const u32 gBattleAnimMaskPalette_LightBeam[];
|
||||
extern const u32 gBattleAnimMaskTilemap_LightBeam[];
|
||||
@ -5020,9 +5019,6 @@ extern const u32 gBattleAnimBgImage_GrassyTerrain[];
|
||||
extern const u32 gBattleAnimBgPalette_GrassyTerrain[];
|
||||
extern const u32 gBattleAnimBgTilemap_GrassyTerrain[];
|
||||
extern const u32 gBattleAnimBgPalette_GunkShot[];
|
||||
extern const u32 gBattleAnimBgImage_HighSpeed[];
|
||||
extern const u32 gBattleAnimBgPalette_HighSpeed[];
|
||||
extern const u32 gBattleAnimBgTilemap_HighSpeed[];
|
||||
extern const u32 gBattleAnimBgImage_HydroCannon[];
|
||||
extern const u32 gBattleAnimBgPalette_HydroCannon[];
|
||||
extern const u32 gBattleAnimBgTilemap_HydroCannon[];
|
||||
@ -5089,7 +5085,8 @@ extern const u32 gBattleAnimBgTilemap_ZMoveActivate[];
|
||||
extern const u32 gBattleAnimBgImage_ZMoveMountain[];
|
||||
extern const u32 gBattleAnimBgPalette_ZMoveMountain[];
|
||||
extern const u32 gBattleAnimBgTilemap_ZMoveMountain[];
|
||||
|
||||
extern const u32 gBattleAnimSpritePal_SteelBeam[];
|
||||
extern const u32 gBattleAnimBgPalette_SteelBeam[];
|
||||
|
||||
extern const u32 gMetalShineGfx[];
|
||||
extern const u32 gMetalShinePalette[];
|
||||
|
@ -1567,6 +1567,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] =
|
||||
{gBattleAnimSpriteGfx_AlphaSymbol, 0x0200, ANIM_TAG_ALPHA_SYMBOL},
|
||||
{gBattleAnimSpriteGfx_OmegaSymbol, 0x0200, ANIM_TAG_OMEGA_SYMBOL},
|
||||
{gBattleAnimSpriteGfx_PrimalParticles, 0x0180, ANIM_TAG_PRIMAL_PARTICLES},
|
||||
{gBattleAnimSpriteGfx_Orbs, 0x0180, ANIM_TAG_STEEL_BEAM},
|
||||
};
|
||||
|
||||
const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
|
||||
@ -2017,6 +2018,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] =
|
||||
{gBattleAnimSpritePal_AlphaSymbol, ANIM_TAG_ALPHA_SYMBOL},
|
||||
{gBattleAnimSpritePal_OmegaSymbol, ANIM_TAG_OMEGA_SYMBOL},
|
||||
{gBattleAnimSpritePal_PrimalParticles, ANIM_TAG_PRIMAL_PARTICLES},
|
||||
{gBattleAnimSpritePal_SteelBeam, ANIM_TAG_STEEL_BEAM},
|
||||
};
|
||||
|
||||
const struct BattleAnimBackground gBattleAnimBackgroundTable[] =
|
||||
@ -2054,9 +2056,9 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] =
|
||||
[BG_GIGA_IMPACT_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_GigaImpact, gBattleAnimBgTilemap_ImpactPlayer},
|
||||
[BG_GIGA_IMPACT_CONTEST] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_GigaImpact, gBattleAnimBgTilemap_ImpactContests},
|
||||
[BG_TRICK_ROOM] = {gBattleAnimBgImage_TrickRoom, gBattleAnimBgPalette_TrickRoom, gBattleAnimBgTilemap_TrickRoom},
|
||||
[BG_ROCK_WRECKER] = {gBattleAnimBgImage_RockWrecker, gBattleAnimBgPalette_RockWrecker, gBattleAnimBgTilemap_RockWrecker},
|
||||
[BG_SPACIAL_REND_ON_OPPONENT] = {gBattleAnimBgImage_SpacialRendOpponent, gBattleAnimBgPalette_SpacialRendOpponent, gBattleAnimBgTilemap_SpacialRendOpponent},
|
||||
[BG_SPACIAL_REND_ON_PLAYER] = {gBattleAnimBgImage_SpacialRendPlayer, gBattleAnimBgPalette_SpacialRendPlayer, gBattleAnimBgTilemap_SpacialRendPlayer},
|
||||
[BG_ROCK_WRECKER] = {gBattleAnimBgImage_Hurricane, gBattleAnimBgPalette_RockWrecker, gBattleAnimBgTilemap_Hurricane},
|
||||
[BG_SPACIAL_REND_ON_OPPONENT] = {gBattleAnimBgImage_SpacialRend, gBattleAnimBgPalette_SpacialRend, gBattleAnimBgTilemap_SpacialRendOpponent},
|
||||
[BG_SPACIAL_REND_ON_PLAYER] = {gBattleAnimBgImage_SpacialRend, gBattleAnimBgPalette_SpacialRend, gBattleAnimBgTilemap_SpacialRendPlayer},
|
||||
[BG_DARK_VOID] = {gBattleAnimBgImage_DarkVoid, gBattleAnimBgPalette_DarkVoid, gBattleAnimBgTilemap_DarkVoid},
|
||||
[BG_WATER] = {gBattleAnimBgImage_HydroPump, gBattleAnimBgPalette_HydroPump, gBattleAnimBgTilemap_HydroPump},
|
||||
[BG_NIGHTMARE] = {gBattleAnimBgImage_Nightmare, gBattleAnimBgPalette_Nightmare, gBattleAnimBgTilemap_Nightmare},
|
||||
@ -2066,7 +2068,7 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] =
|
||||
[BG_WATER_2] = {gBattleAnimBgImage_Waterfall, gBattleAnimBgPalette_Waterfall, gBattleAnimBgTilemap_Waterfall},
|
||||
[BG_POISON] = {gBattleAnimBgImage_Waterfall, gBattleAnimBgPalette_PoisonFalls, gBattleAnimBgTilemap_Waterfall},
|
||||
[BG_AEROBLAST] = {gBattleAnimBgImage_Aeroblast, gBattleAnimBgPalette_Aeroblast, gBattleAnimBgTilemap_Aeroblast},
|
||||
[BG_HIGH_SPEED] = {gBattleAnimBgImage_HighSpeed, gBattleAnimBgPalette_HighSpeed, gBattleAnimBgTilemap_HighSpeed},
|
||||
[BG_HURRICANE] = {gBattleAnimBgImage_Hurricane, gBattleAnimBgPalette_Hurricane, gBattleAnimBgTilemap_Hurricane},
|
||||
[BG_ELECTRIC_TERRAIN] = {gBattleAnimBgImage_ElectricTerrain, gBattleAnimBgPalette_ElectricTerrain, gBattleAnimBgTilemap_ElectricTerrain},
|
||||
[BG_GRASSY_TERRAIN] = {gBattleAnimBgImage_GrassyTerrain, gBattleAnimBgPalette_GrassyTerrain, gBattleAnimBgTilemap_GrassyTerrain},
|
||||
[BG_MISTY_TERRAIN] = {gBattleAnimBgImage_MistyTerrain, gBattleAnimBgPalette_MistyTerrain, gBattleAnimBgTilemap_MistyTerrain},
|
||||
@ -2100,6 +2102,8 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] =
|
||||
[BG_HYPER_BEAM] = {gBattleAnimBgImage_HydroCannon, gBattleAnimBgPalette_HyperBeam, gBattleAnimBgTilemap_HydroCannon},
|
||||
[BG_DYNAMAX_CANNON] = {gBattleAnimBgImage_HydroCannon, gBattleAnimBgPalette_DynamaxCannon, gBattleAnimBgTilemap_HydroCannon},
|
||||
[BG_AURA_SPHERE] = {gBattleAnimBgImage_FocusBlast, gBattleAnimBgPalette_AuraSphere, gBattleAnimBgTilemap_FocusBlast},
|
||||
[BG_STEEL_BEAM_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_SteelBeam, gBattleAnimBgTilemap_HighspeedOpponent},
|
||||
[BG_STEEL_BEAM_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_SteelBeam, gBattleAnimBgTilemap_HighspeedPlayer},
|
||||
};
|
||||
|
||||
static void (* const sScriptCmdTable[])(void) =
|
||||
|
@ -6803,3 +6803,42 @@ void AnimTask_CompressTargetHorizontally(u8 taskId)
|
||||
PrepareAffineAnimInTaskData(task, spriteId, sCompressTargetHorizontallyAffineAnimCmds);
|
||||
task->func = AnimTask_CompressTargetStep;
|
||||
}
|
||||
|
||||
const struct SpriteTemplate gSteelBeamBigOrbSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_STEEL_BEAM,
|
||||
.paletteTag = ANIM_TAG_STEEL_BEAM,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_8x8,
|
||||
.anims = gSolarbeamBigOrbAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimSolarbeamBigOrb,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gSteelBeamSmallOrbSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_STEEL_BEAM,
|
||||
.paletteTag = ANIM_TAG_STEEL_BEAM,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_8x8,
|
||||
.anims = gSolarbeamSmallOrbAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimSolarbeamSmallOrb,
|
||||
};
|
||||
|
||||
void AnimTask_CreateSmallSteelBeamOrbs(u8 taskId)
|
||||
{
|
||||
if (--gTasks[taskId].data[0] == -1)
|
||||
{
|
||||
gTasks[taskId].data[1]++;
|
||||
gTasks[taskId].data[0] = 6;
|
||||
gBattleAnimArgs[0] = 15;
|
||||
gBattleAnimArgs[1] = 0;
|
||||
gBattleAnimArgs[2] = 80;
|
||||
gBattleAnimArgs[3] = 0;
|
||||
CreateSpriteAndAnimate(&gSteelBeamSmallOrbSpriteTemplate, 0, 0, GetBattlerSpriteSubpriority(gBattleAnimTarget) + 1);
|
||||
}
|
||||
|
||||
if (gTasks[taskId].data[1] == 15)
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "constants/rgb.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/weather.h"
|
||||
#include "constants/hold_effects.h"
|
||||
|
||||
extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate;
|
||||
|
||||
@ -5526,10 +5527,12 @@ static void AnimRecycle_Step(struct Sprite *sprite)
|
||||
|
||||
void AnimTask_GetWeather(u8 taskId)
|
||||
{
|
||||
bool32 utilityUmbrellaAffected = GetBattlerHoldEffect(gBattleAnimAttacker, TRUE) == HOLD_EFFECT_UTILITY_UMBRELLA;
|
||||
|
||||
gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_NONE;
|
||||
if (gWeatherMoveAnim & WEATHER_SUN_ANY)
|
||||
if (gWeatherMoveAnim & WEATHER_SUN_ANY && !utilityUmbrellaAffected)
|
||||
gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_SUN;
|
||||
else if (gWeatherMoveAnim & WEATHER_RAIN_ANY)
|
||||
else if (gWeatherMoveAnim & WEATHER_RAIN_ANY && !utilityUmbrellaAffected)
|
||||
gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_RAIN;
|
||||
else if (gWeatherMoveAnim & WEATHER_SANDSTORM_ANY)
|
||||
gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_SANDSTORM;
|
||||
|
@ -559,7 +559,7 @@ static const struct BgTemplate sBgTemplates[] =
|
||||
},
|
||||
{
|
||||
.bg = 1,
|
||||
.charBaseIndex = 10,
|
||||
.charBaseIndex = 2,
|
||||
.mapBaseIndex = 20,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0,
|
||||
|
@ -3138,8 +3138,8 @@ void CreateAbilityPopUp(u8 battlerId, u32 ability, bool32 isDoubleBattle)
|
||||
gSprites[spriteId2].tRightToLeft = FALSE;
|
||||
}
|
||||
|
||||
gBattleStruct->abilityPopUpSpriteIds[gBattleAnimAttacker][0] = spriteId1;
|
||||
gBattleStruct->abilityPopUpSpriteIds[gBattleAnimAttacker][1] = spriteId2;
|
||||
gBattleStruct->abilityPopUpSpriteIds[battlerId][0] = spriteId1;
|
||||
gBattleStruct->abilityPopUpSpriteIds[battlerId][1] = spriteId2;
|
||||
|
||||
taskId = CreateTask(Task_FreeAbilityPopUpGfx, 5);
|
||||
gTasks[taskId].tSpriteId1 = spriteId1;
|
||||
@ -3157,6 +3157,16 @@ void CreateAbilityPopUp(u8 battlerId, u32 ability, bool32 isDoubleBattle)
|
||||
RestoreOverwrittenPixels((void*)(OBJ_VRAM0) + (gSprites[spriteId1].oam.tileNum * 32));
|
||||
}
|
||||
|
||||
void UpdateAbilityPopup(u8 battlerId)
|
||||
{
|
||||
u8 spriteId1 = gBattleStruct->abilityPopUpSpriteIds[battlerId][0];
|
||||
u8 spriteId2 = gBattleStruct->abilityPopUpSpriteIds[battlerId][1];
|
||||
u16 ability = (gBattleScripting.abilityPopupOverwrite != 0) ? gBattleScripting.abilityPopupOverwrite : gBattleMons[battlerId].ability;
|
||||
|
||||
PrintAbilityOnAbilityPopUp(ability, spriteId1, spriteId2);
|
||||
RestoreOverwrittenPixels((void*)(OBJ_VRAM0) + (gSprites[spriteId1].oam.tileNum * 32));
|
||||
}
|
||||
|
||||
#define FRAMES_TO_WAIT 48
|
||||
|
||||
static void SpriteCb_AbilityPopUp(struct Sprite *sprite)
|
||||
|
@ -4289,9 +4289,9 @@ u32 GetBattlerTotalSpeedStat(u8 battlerId)
|
||||
// weather abilities
|
||||
if (WEATHER_HAS_EFFECT)
|
||||
{
|
||||
if (ability == ABILITY_SWIFT_SWIM && gBattleWeather & WEATHER_RAIN_ANY)
|
||||
if (ability == ABILITY_SWIFT_SWIM && holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA && gBattleWeather & WEATHER_RAIN_ANY)
|
||||
speed *= 2;
|
||||
else if (ability == ABILITY_CHLOROPHYLL && gBattleWeather & WEATHER_SUN_ANY)
|
||||
else if (ability == ABILITY_CHLOROPHYLL && holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA && gBattleWeather & WEATHER_SUN_ANY)
|
||||
speed *= 2;
|
||||
else if (ability == ABILITY_SAND_RUSH && gBattleWeather & WEATHER_SANDSTORM_ANY)
|
||||
speed *= 2;
|
||||
@ -5123,6 +5123,7 @@ void RunBattleScriptCommands(void)
|
||||
void SetTypeBeforeUsingMove(u16 move, u8 battlerAtk)
|
||||
{
|
||||
u32 moveType, ateType, attackerAbility;
|
||||
u16 holdEffect = GetBattlerHoldEffect(battlerAtk, TRUE);
|
||||
|
||||
if (move == MOVE_STRUGGLE)
|
||||
return;
|
||||
@ -5135,11 +5136,11 @@ void SetTypeBeforeUsingMove(u16 move, u8 battlerAtk)
|
||||
{
|
||||
if (WEATHER_HAS_EFFECT)
|
||||
{
|
||||
if (gBattleWeather & WEATHER_RAIN_ANY)
|
||||
if (gBattleWeather & WEATHER_RAIN_ANY && holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA)
|
||||
gBattleStruct->dynamicMoveType = TYPE_WATER | 0x80;
|
||||
else if (gBattleWeather & WEATHER_SANDSTORM_ANY)
|
||||
gBattleStruct->dynamicMoveType = TYPE_ROCK | 0x80;
|
||||
else if (gBattleWeather & WEATHER_SUN_ANY)
|
||||
else if (gBattleWeather & WEATHER_SUN_ANY && holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA)
|
||||
gBattleStruct->dynamicMoveType = TYPE_FIRE | 0x80;
|
||||
else if (gBattleWeather & WEATHER_HAIL_ANY)
|
||||
gBattleStruct->dynamicMoveType = TYPE_ICE | 0x80;
|
||||
@ -5163,7 +5164,7 @@ void SetTypeBeforeUsingMove(u16 move, u8 battlerAtk)
|
||||
}
|
||||
else if (gBattleMoves[move].effect == EFFECT_CHANGE_TYPE_ON_ITEM)
|
||||
{
|
||||
if (GetBattlerHoldEffect(battlerAtk, TRUE) == gBattleMoves[move].argument)
|
||||
if (holdEffect == gBattleMoves[move].argument)
|
||||
gBattleStruct->dynamicMoveType = ItemId_GetSecondaryId(gBattleMons[battlerAtk].item) | 0x80;
|
||||
}
|
||||
else if (gBattleMoves[move].effect == EFFECT_REVELATION_DANCE)
|
||||
@ -5223,7 +5224,7 @@ void SetTypeBeforeUsingMove(u16 move, u8 battlerAtk)
|
||||
|
||||
// Check if a gem should activate.
|
||||
GET_MOVE_TYPE(move, moveType);
|
||||
if (GetBattlerHoldEffect(battlerAtk, TRUE) == HOLD_EFFECT_GEMS
|
||||
if (holdEffect == HOLD_EFFECT_GEMS
|
||||
&& moveType == ItemId_GetSecondaryId(gBattleMons[battlerAtk].item))
|
||||
{
|
||||
gSpecialStatuses[battlerAtk].gemParam = GetBattlerHoldEffectParam(battlerAtk);
|
||||
|
@ -723,6 +723,8 @@ static const u8 sText_PkmnRevertedToPrimal[] = _("{B_ATK_NAME_WITH_PREFIX}'s Pri
|
||||
static const u8 sText_ButPokemonCantUseTheMove[] = _("But {B_ATK_NAME_WITH_PREFIX} can't\nuse the move!");
|
||||
static const u8 sText_ButHoopaCantUseIt[] = _("But Hoopa can't use it\nthe way it is now!");
|
||||
static const u8 sText_BrokeThroughProtection[] = _("It broke through the\n{B_DEF_NAME_WITH_PREFIX}'s protection!");
|
||||
static const u8 sText_AbilityAllowsOnlyMove[] = _("{B_ATK_ABILITY} allows the\nuse of only {B_CURRENT_MOVE}!\p");
|
||||
static const u8 sText_SwappedAbilities[] = _("{B_DEF_NAME_WITH_PREFIX} swapped Abilities\nwith its target!");
|
||||
static const u8 sText_PastelVeilProtected[] = _("{B_DEF_NAME_WITH_PREFIX} is protected\nby a pastel veil!");
|
||||
static const u8 sText_PastelVeilEnters[] = _("{B_DEF_NAME_WITH_PREFIX} was cured\nof its poisoning!");
|
||||
|
||||
@ -730,6 +732,8 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] =
|
||||
{
|
||||
[STRINGID_PASTELVEILENTERS - 12] = sText_PastelVeilEnters,
|
||||
[STRINGID_PASTELVEILPROTECTED -12] = sText_PastelVeilProtected,
|
||||
[STRINGID_SWAPPEDABILITIES - 12] = sText_SwappedAbilities,
|
||||
[STRINGID_ABILITYALLOWSONLYMOVE - 12] = sText_AbilityAllowsOnlyMove,
|
||||
[STRINGID_BROKETHROUGHPROTECTION - 12] = sText_BrokeThroughProtection,
|
||||
[STRINGID_BUTPOKEMONCANTUSETHEMOVE - 12] = sText_ButPokemonCantUseTheMove,
|
||||
[STRINGID_BUTHOOPACANTUSEIT - 12] = sText_ButHoopaCantUseIt,
|
||||
|
@ -1598,12 +1598,13 @@ static bool32 AccuracyCalcHelper(u16 move)
|
||||
}
|
||||
|
||||
if ((WEATHER_HAS_EFFECT &&
|
||||
(((gBattleWeather & WEATHER_RAIN_ANY) && (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE))
|
||||
((IsBattlerWeatherAffected(gBattlerTarget, WEATHER_RAIN_ANY) && (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE))
|
||||
|| ((B_BLIZZARD_HAIL >= GEN_4 && (gBattleWeather & WEATHER_HAIL_ANY) && move == MOVE_BLIZZARD))))
|
||||
|| (gBattleMoves[move].effect == EFFECT_VITAL_THROW)
|
||||
|| (gBattleMoves[move].accuracy == 0)
|
||||
|| ((B_MINIMIZE_DMG_ACC >= GEN_6) && (gStatuses3[gBattlerTarget] & STATUS3_MINIMIZED) && (gBattleMoves[move].flags & FLAG_DMG_MINIMIZE)))
|
||||
{
|
||||
// thunder/hurricane ignore acc checks in rain unless target is holding utility umbrella
|
||||
JumpIfMoveFailed(7, move);
|
||||
return TRUE;
|
||||
}
|
||||
@ -1646,8 +1647,8 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move)
|
||||
|
||||
moveAcc = gBattleMoves[move].accuracy;
|
||||
// Check Thunder and Hurricane on sunny weather.
|
||||
if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY
|
||||
&& (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE))
|
||||
if (IsBattlerWeatherAffected(battlerDef, WEATHER_SUN_ANY)
|
||||
&& (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE))
|
||||
moveAcc = 50;
|
||||
// Check Wonder Skin.
|
||||
if (defAbility == ABILITY_WONDER_SKIN && gBattleMoves[move].power == 0)
|
||||
@ -4937,7 +4938,7 @@ static void Cmd_moveend(void)
|
||||
break;
|
||||
case MOVEEND_CHOICE_MOVE: // update choice band move
|
||||
if (gHitMarker & HITMARKER_OBEYS
|
||||
&& HOLD_EFFECT_CHOICE(holdEffectAtk)
|
||||
&& (HOLD_EFFECT_CHOICE(holdEffectAtk) || GetBattlerAbility(gBattlerAttacker) == ABILITY_GORILLA_TACTICS)
|
||||
&& gChosenMove != MOVE_STRUGGLE
|
||||
&& (*choicedMoveAtk == 0 || *choicedMoveAtk == 0xFFFF))
|
||||
{
|
||||
@ -7330,7 +7331,7 @@ u32 IsFlowerVeilProtected(u32 battler)
|
||||
|
||||
u32 IsLeafGuardProtected(u32 battler)
|
||||
{
|
||||
if (WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_SUN_ANY))
|
||||
if (IsBattlerWeatherAffected(battler, WEATHER_SUN_ANY))
|
||||
return GetBattlerAbility(battler) == ABILITY_LEAF_GUARD;
|
||||
else
|
||||
return 0;
|
||||
@ -8378,6 +8379,9 @@ static void Cmd_various(void)
|
||||
case VARIOUS_ABILITY_POPUP:
|
||||
CreateAbilityPopUp(gActiveBattler, gBattleMons[gActiveBattler].ability, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0);
|
||||
break;
|
||||
case VARIOUS_UPDATE_ABILITY_POPUP:
|
||||
UpdateAbilityPopup(gActiveBattler);
|
||||
break;
|
||||
case VARIOUS_DEFOG:
|
||||
if (T1_READ_8(gBattlescriptCurrInstr + 3)) // Clear
|
||||
{
|
||||
@ -8963,6 +8967,15 @@ static void Cmd_various(void)
|
||||
else
|
||||
gBattlescriptCurrInstr += 7;
|
||||
return;
|
||||
case VARIOUS_JUMP_IF_WEATHER_AFFECTED:
|
||||
{
|
||||
u32 weatherFlags = T1_READ_32(gBattlescriptCurrInstr + 3);
|
||||
if (IsBattlerWeatherAffected(gActiveBattler, weatherFlags))
|
||||
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 7);
|
||||
else
|
||||
gBattlescriptCurrInstr += 11;
|
||||
}
|
||||
return;
|
||||
}
|
||||
case VARIOUS_APPLY_PLASMA_FISTS:
|
||||
for (i = 0; i < gBattlersCount; i++)
|
||||
@ -8974,6 +8987,17 @@ static void Cmd_various(void)
|
||||
else
|
||||
gBattlescriptCurrInstr += 9;
|
||||
return;
|
||||
case VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED:
|
||||
if (IsLeafGuardProtected(gActiveBattler))
|
||||
{
|
||||
gBattlerAbility = gActiveBattler;
|
||||
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
gBattlescriptCurrInstr += 7;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
gBattlescriptCurrInstr += 3;
|
||||
@ -10835,11 +10859,12 @@ static bool8 IsTwoTurnsMove(u16 move)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// unused
|
||||
static u8 AttacksThisTurn(u8 battlerId, u16 move) // Note: returns 1 if it's a charging turn, otherwise 2
|
||||
{
|
||||
// first argument is unused
|
||||
if (gBattleMoves[move].effect == EFFECT_SOLARBEAM
|
||||
&& (gBattleWeather & WEATHER_SUN_ANY))
|
||||
&& IsBattlerWeatherAffected(battlerId, WEATHER_SUN_ANY))
|
||||
return 2;
|
||||
|
||||
if (gBattleMoves[move].effect == EFFECT_SKULL_BASH
|
||||
@ -11497,7 +11522,7 @@ static void Cmd_recoverbasedonsunlight(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!(gBattleWeather & WEATHER_ANY) || !WEATHER_HAS_EFFECT)
|
||||
if (!(gBattleWeather & WEATHER_ANY) || !WEATHER_HAS_EFFECT || GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_UTILITY_UMBRELLA)
|
||||
gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2;
|
||||
else if (gBattleWeather & WEATHER_SUN_ANY)
|
||||
gBattleMoveDamage = 20 * gBattleMons[gBattlerAttacker].maxHP / 30;
|
||||
|
@ -1776,6 +1776,21 @@ u8 TrySetCantSelectMoveBattleScript(void)
|
||||
limitations++;
|
||||
}
|
||||
}
|
||||
if ((GetBattlerAbility(gActiveBattler) == ABILITY_GORILLA_TACTICS) && *choicedMove != 0
|
||||
&& *choicedMove != 0xFFFF && *choicedMove != move)
|
||||
{
|
||||
gCurrentMove = *choicedMove;
|
||||
gLastUsedItem = gBattleMons[gActiveBattler].item;
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
|
||||
{
|
||||
gProtectStructs[gActiveBattler].palaceUnableToUseMove = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveGorillaTactics;
|
||||
limitations++;
|
||||
}
|
||||
}
|
||||
|
||||
if (gBattleMons[gActiveBattler].pp[moveId] == 0)
|
||||
{
|
||||
@ -1831,6 +1846,8 @@ u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check)
|
||||
unusableMoves |= gBitTable[i];
|
||||
else if (gBattleMons[battlerId].moves[i] == MOVE_STUFF_CHEEKS && ItemId_GetPocket(gBattleMons[gActiveBattler].item) != POCKET_BERRIES)
|
||||
unusableMoves |= gBitTable[i];
|
||||
else if (GetBattlerAbility(battlerId) == ABILITY_GORILLA_TACTICS && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != gBattleMons[battlerId].moves[i])
|
||||
unusableMoves |= gBitTable[i];
|
||||
}
|
||||
return unusableMoves;
|
||||
}
|
||||
@ -3662,7 +3679,8 @@ u8 TryWeatherFormChange(u8 battler)
|
||||
{
|
||||
u8 ret = 0;
|
||||
bool32 weatherEffect = WEATHER_HAS_EFFECT;
|
||||
|
||||
u16 holdEffect = GetBattlerHoldEffect(battler, TRUE);
|
||||
|
||||
if (gBattleMons[battler].species == SPECIES_CASTFORM)
|
||||
{
|
||||
if (gBattleMons[battler].ability != ABILITY_FORECAST || gBattleMons[battler].hp == 0)
|
||||
@ -3678,17 +3696,17 @@ u8 TryWeatherFormChange(u8 battler)
|
||||
{
|
||||
ret = 0;
|
||||
}
|
||||
else if (!(gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)) && !IS_BATTLER_OF_TYPE(battler, TYPE_NORMAL))
|
||||
else if (holdEffect == HOLD_EFFECT_UTILITY_UMBRELLA || (!(gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)) && !IS_BATTLER_OF_TYPE(battler, TYPE_NORMAL)))
|
||||
{
|
||||
SET_BATTLER_TYPE(battler, TYPE_NORMAL);
|
||||
ret = 1;
|
||||
}
|
||||
else if (gBattleWeather & WEATHER_SUN_ANY && !IS_BATTLER_OF_TYPE(battler, TYPE_FIRE))
|
||||
else if (gBattleWeather & WEATHER_SUN_ANY && holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA && !IS_BATTLER_OF_TYPE(battler, TYPE_FIRE))
|
||||
{
|
||||
SET_BATTLER_TYPE(battler, TYPE_FIRE);
|
||||
ret = 2;
|
||||
}
|
||||
else if (gBattleWeather & WEATHER_RAIN_ANY && !IS_BATTLER_OF_TYPE(battler, TYPE_WATER))
|
||||
else if (gBattleWeather & WEATHER_RAIN_ANY && holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA && !IS_BATTLER_OF_TYPE(battler, TYPE_WATER))
|
||||
{
|
||||
SET_BATTLER_TYPE(battler, TYPE_WATER);
|
||||
ret = 3;
|
||||
@ -3703,9 +3721,9 @@ u8 TryWeatherFormChange(u8 battler)
|
||||
{
|
||||
if (gBattleMons[battler].ability != ABILITY_FLOWER_GIFT || gBattleMons[battler].hp == 0)
|
||||
ret = 0;
|
||||
else if (gBattleMonForms[battler] == 0 && weatherEffect && gBattleWeather & WEATHER_SUN_ANY)
|
||||
else if (gBattleMonForms[battler] == 0 && weatherEffect && holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA && gBattleWeather & WEATHER_SUN_ANY)
|
||||
ret = 2;
|
||||
else if (gBattleMonForms[battler] != 0 && (!weatherEffect || !(gBattleWeather & WEATHER_SUN_ANY)))
|
||||
else if (gBattleMonForms[battler] != 0 && (!weatherEffect || holdEffect != HOLD_EFFECT_UTILITY_UMBRELLA || !(gBattleWeather & WEATHER_SUN_ANY)))
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
@ -4381,7 +4399,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move
|
||||
switch (gLastUsedAbility)
|
||||
{
|
||||
case ABILITY_HARVEST:
|
||||
if (((WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY) || Random() % 2 == 0)
|
||||
if ((IsBattlerWeatherAffected(battler, WEATHER_SUN_ANY) || Random() % 2 == 0)
|
||||
&& gBattleMons[battler].item == ITEM_NONE
|
||||
&& gBattleStruct->changedItems[battler] == ITEM_NONE // Will not inherit an item
|
||||
&& ItemId_GetPocket(GetUsedHeldItem(battler)) == POCKET_BERRIES)
|
||||
@ -4391,12 +4409,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move
|
||||
}
|
||||
break;
|
||||
case ABILITY_DRY_SKIN:
|
||||
if (gBattleWeather & WEATHER_SUN_ANY)
|
||||
if (IsBattlerWeatherAffected(battler, WEATHER_SUN_ANY))
|
||||
goto SOLAR_POWER_HP_DROP;
|
||||
// Dry Skin works similarly to Rain Dish in Rain
|
||||
case ABILITY_RAIN_DISH:
|
||||
if (WEATHER_HAS_EFFECT
|
||||
&& (gBattleWeather & WEATHER_RAIN_ANY)
|
||||
if (IsBattlerWeatherAffected(battler, WEATHER_RAIN_ANY)
|
||||
&& !BATTLER_MAX_HP(battler)
|
||||
&& !(gStatuses3[battler] & STATUS3_HEAL_BLOCK))
|
||||
{
|
||||
@ -4409,8 +4426,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move
|
||||
}
|
||||
break;
|
||||
case ABILITY_HYDRATION:
|
||||
if (WEATHER_HAS_EFFECT
|
||||
&& (gBattleWeather & WEATHER_RAIN_ANY)
|
||||
if (IsBattlerWeatherAffected(battler, WEATHER_RAIN_ANY)
|
||||
&& gBattleMons[battler].status1 & STATUS1_ANY)
|
||||
{
|
||||
goto ABILITY_HEAL_MON_STATUS;
|
||||
@ -4505,7 +4521,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move
|
||||
break;
|
||||
SOLAR_POWER_HP_DROP:
|
||||
case ABILITY_SOLAR_POWER:
|
||||
if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY)
|
||||
if (IsBattlerWeatherAffected(battler, WEATHER_SUN_ANY))
|
||||
{
|
||||
BattleScriptPushCursorAndCallback(BattleScript_SolarPowerActivates);
|
||||
gBattleMoveDamage = gBattleMons[battler].maxHP / 8;
|
||||
@ -4845,6 +4861,41 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ABILITY_WANDERING_SPIRIT:
|
||||
if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
|
||||
&& IsBattlerAlive(gBattlerAttacker)
|
||||
&& TARGET_TURN_DAMAGED
|
||||
&& (gBattleMoves[move].flags & FLAG_MAKES_CONTACT))
|
||||
{
|
||||
switch (gBattleMons[gBattlerAttacker].ability)
|
||||
{
|
||||
case ABILITY_DISGUISE:
|
||||
case ABILITY_FLOWER_GIFT:
|
||||
case ABILITY_GULP_MISSILE:
|
||||
case ABILITY_HUNGER_SWITCH:
|
||||
case ABILITY_ICE_FACE:
|
||||
case ABILITY_ILLUSION:
|
||||
case ABILITY_IMPOSTER:
|
||||
case ABILITY_RECEIVER:
|
||||
case ABILITY_RKS_SYSTEM:
|
||||
case ABILITY_SCHOOLING:
|
||||
case ABILITY_STANCE_CHANGE:
|
||||
case ABILITY_WONDER_GUARD:
|
||||
case ABILITY_ZEN_MODE:
|
||||
break;
|
||||
default:
|
||||
gLastUsedAbility = gBattleMons[gBattlerAttacker].ability;
|
||||
gBattleMons[gBattlerAttacker].ability = gBattleMons[gBattlerTarget].ability;
|
||||
gBattleMons[gBattlerTarget].ability = gLastUsedAbility;
|
||||
RecordAbilityBattle(gBattlerAttacker, gBattleMons[gBattlerAttacker].ability);
|
||||
RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability);
|
||||
BattleScriptPushCursor();
|
||||
gBattlescriptCurrInstr = BattleScript_WanderingSpiritActivates;
|
||||
effect++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ABILITY_ANGER_POINT:
|
||||
if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
|
||||
&& gIsCriticalHit
|
||||
@ -5650,7 +5701,7 @@ bool32 CanBeFrozen(u8 battlerId)
|
||||
{
|
||||
u16 ability = GetBattlerAbility(battlerId);
|
||||
if (IS_BATTLER_OF_TYPE(battlerId, TYPE_ICE)
|
||||
|| (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY)
|
||||
|| IsBattlerWeatherAffected(battlerId, WEATHER_SUN_ANY)
|
||||
|| gSideStatuses[GetBattlerSide(battlerId)] & SIDE_STATUS_SAFEGUARD
|
||||
|| ability == ABILITY_MAGMA_ARMOR
|
||||
|| ability == ABILITY_COMATOSE
|
||||
@ -7849,6 +7900,10 @@ static u32 CalcMoveBasePowerAfterModifiers(u16 move, u8 battlerAtk, u8 battlerDe
|
||||
if (moveType == TYPE_DRAGON)
|
||||
MulModifier(&modifier, UQ_4_12(1.5));
|
||||
break;
|
||||
case ABILITY_GORILLA_TACTICS:
|
||||
if (IS_MOVE_PHYSICAL(move))
|
||||
MulModifier(&modifier, UQ_4_12(1.5));
|
||||
break;
|
||||
}
|
||||
|
||||
// field abilities
|
||||
@ -8001,7 +8056,7 @@ static u32 CalcMoveBasePowerAfterModifiers(u16 move, u8 battlerAtk, u8 battlerDe
|
||||
MulModifier(&modifier, UQ_4_12(2.0));
|
||||
break;
|
||||
case EFFECT_SOLARBEAM:
|
||||
if (WEATHER_HAS_EFFECT && gBattleWeather & (WEATHER_HAIL_ANY | WEATHER_SANDSTORM_ANY | WEATHER_RAIN_ANY))
|
||||
if (IsBattlerWeatherAffected(battlerAtk, (WEATHER_HAIL_ANY | WEATHER_SANDSTORM_ANY | WEATHER_RAIN_ANY)))
|
||||
MulModifier(&modifier, UQ_4_12(0.5));
|
||||
break;
|
||||
case EFFECT_STOMPING_TANTRUM:
|
||||
@ -8103,7 +8158,7 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b
|
||||
MulModifier(&modifier, UQ_4_12(0.5));
|
||||
break;
|
||||
case ABILITY_SOLAR_POWER:
|
||||
if (IS_MOVE_SPECIAL(move) && WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY)
|
||||
if (IS_MOVE_SPECIAL(move) && IsBattlerWeatherAffected(battlerAtk, WEATHER_SUN_ANY))
|
||||
MulModifier(&modifier, UQ_4_12(1.5));
|
||||
break;
|
||||
case ABILITY_DEFEATIST:
|
||||
@ -8140,7 +8195,7 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b
|
||||
}
|
||||
break;
|
||||
case ABILITY_FLOWER_GIFT:
|
||||
if (gBattleMons[battlerAtk].species == SPECIES_CHERRIM && WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_SUN_ANY) && IS_MOVE_PHYSICAL(move))
|
||||
if (gBattleMons[battlerAtk].species == SPECIES_CHERRIM && IsBattlerWeatherAffected(battlerAtk, WEATHER_SUN_ANY) && IS_MOVE_PHYSICAL(move))
|
||||
MulModifier(&modifier, UQ_4_12(1.5));
|
||||
break;
|
||||
case ABILITY_HUSTLE:
|
||||
@ -8180,7 +8235,7 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b
|
||||
switch (GetBattlerAbility(BATTLE_PARTNER(battlerAtk)))
|
||||
{
|
||||
case ABILITY_FLOWER_GIFT:
|
||||
if (gBattleMons[BATTLE_PARTNER(battlerAtk)].species == SPECIES_CHERRIM && WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_SUN_ANY) && IS_MOVE_PHYSICAL(move))
|
||||
if (gBattleMons[BATTLE_PARTNER(battlerAtk)].species == SPECIES_CHERRIM && IsBattlerWeatherAffected(BATTLE_PARTNER(battlerAtk), WEATHER_SUN_ANY) && IS_MOVE_PHYSICAL(move))
|
||||
MulModifier(&modifier, UQ_4_12(1.5));
|
||||
break;
|
||||
}
|
||||
@ -8313,7 +8368,7 @@ static u32 CalcDefenseStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType,
|
||||
}
|
||||
break;
|
||||
case ABILITY_FLOWER_GIFT:
|
||||
if (gBattleMons[battlerDef].species == SPECIES_CHERRIM && WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY && !usesDefStat)
|
||||
if (gBattleMons[battlerDef].species == SPECIES_CHERRIM && IsBattlerWeatherAffected(battlerDef, WEATHER_SUN_ANY) && !usesDefStat)
|
||||
MulModifier(&modifier, UQ_4_12(1.5));
|
||||
break;
|
||||
case ABILITY_PUNK_ROCK:
|
||||
@ -8328,7 +8383,7 @@ static u32 CalcDefenseStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType,
|
||||
switch (GetBattlerAbility(BATTLE_PARTNER(battlerDef)))
|
||||
{
|
||||
case ABILITY_FLOWER_GIFT:
|
||||
if (gBattleMons[BATTLE_PARTNER(battlerDef)].species == SPECIES_CHERRIM && WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY && !usesDefStat)
|
||||
if (gBattleMons[BATTLE_PARTNER(battlerDef)].species == SPECIES_CHERRIM && IsBattlerWeatherAffected(BATTLE_PARTNER(battlerDef), WEATHER_SUN_ANY) && !usesDefStat)
|
||||
MulModifier(&modifier, UQ_4_12(1.5));
|
||||
break;
|
||||
}
|
||||
@ -8395,14 +8450,14 @@ static u32 CalcFinalDmg(u32 dmg, u16 move, u8 battlerAtk, u8 battlerDef, u8 move
|
||||
dmg = ApplyModifier(UQ_4_12(0.5), dmg);
|
||||
|
||||
// check sunny/rain weather
|
||||
if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_RAIN_ANY)
|
||||
if (IsBattlerWeatherAffected(battlerAtk, WEATHER_RAIN_ANY))
|
||||
{
|
||||
if (moveType == TYPE_FIRE)
|
||||
dmg = ApplyModifier(UQ_4_12(0.5), dmg);
|
||||
else if (moveType == TYPE_WATER)
|
||||
dmg = ApplyModifier(UQ_4_12(1.5), dmg);
|
||||
}
|
||||
else if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY)
|
||||
else if (IsBattlerWeatherAffected(battlerAtk, WEATHER_SUN_ANY))
|
||||
{
|
||||
if (moveType == TYPE_FIRE)
|
||||
dmg = ApplyModifier(UQ_4_12(1.5), dmg);
|
||||
@ -9534,3 +9589,19 @@ u16 GetUsedHeldItem(u8 battler)
|
||||
{
|
||||
return gBattleStruct->usedHeldItems[gBattlerPartyIndexes[battler]][GetBattlerSide(battler)];
|
||||
}
|
||||
|
||||
bool32 IsBattlerWeatherAffected(u8 battlerId, u32 weatherFlags)
|
||||
{
|
||||
if (!WEATHER_HAS_EFFECT)
|
||||
return FALSE;
|
||||
|
||||
if (gBattleWeather & weatherFlags)
|
||||
{
|
||||
// given weather is active -> check if its sun, rain against utility umbrella ( since only 1 weather can be active at once)
|
||||
if (gBattleWeather & (WEATHER_SUN_ANY | WEATHER_RAIN_ANY) && GetBattlerHoldEffect(battlerId, TRUE) == HOLD_EFFECT_UTILITY_UMBRELLA)
|
||||
return FALSE; // utility umbrella blocks sun, rain effects
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -10446,7 +10446,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||
.accuracy = 100,
|
||||
.pp = 15,
|
||||
.secondaryEffectChance = 0,
|
||||
.target = MOVE_TARGET_FOES_AND_ALLY,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.priority = 0,
|
||||
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_IRON_FIST_BOOST,
|
||||
.split = SPLIT_PHYSICAL,
|
||||
|
@ -1158,7 +1158,7 @@ const struct ContestMove gContestMoves[MOVES_COUNT] =
|
||||
[MOVE_BUBBLE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_STARTLE_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.contestCategory = CONTEST_CATEGORY_CUTE,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {COMBO_STARTER_RAIN_DANCE},
|
||||
},
|
||||
@ -4633,7 +4633,7 @@ const struct ContestMove gContestMoves[MOVES_COUNT] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboStarterId = COMBO_STARTER_GRASSY_TERRAIN,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
@ -4641,7 +4641,7 @@ const struct ContestMove gContestMoves[MOVES_COUNT] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
|
||||
.contestCategory = CONTEST_CATEGORY_CUTE,
|
||||
.comboStarterId = 0,
|
||||
.comboStarterId = COMBO_STARTER_MISTY_TERRAIN,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
@ -4825,7 +4825,7 @@ const struct ContestMove gContestMoves[MOVES_COUNT] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboStarterId = COMBO_STARTER_ELECTRIC_TERRAIN,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
@ -5115,7 +5115,7 @@ const struct ContestMove gContestMoves[MOVES_COUNT] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboStarterId = COMBO_STARTER_PSYCHIC_TERRAIN,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
@ -5398,6 +5398,526 @@ const struct ContestMove gContestMoves[MOVES_COUNT] =
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_DYNAMAX_CANNON] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_SNIPE_SHOT] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_JAW_LOCK] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_STUFF_CHEEKS] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
|
||||
.contestCategory = CONTEST_CATEGORY_CUTE,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_NO_RETREAT] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_TAR_SHOT] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_MAGIC_POWDER] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_CUTE,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_DRAGON_DARTS] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_REPETITION_NOT_BORING,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_TEATIME] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_OCTOLOCK] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_BOLT_BEAK] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_IF_FIRST,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_FISHIOUS_REND] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_IF_FIRST,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_COURT_CHANGE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_CLANGOROUS_SOUL] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_BODY_PRESS] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_DECORATE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
|
||||
.contestCategory = CONTEST_CATEGORY_CUTE,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_DRUM_BEATING] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_SNAP_TRAP] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_PYRO_BALL] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_BEHEMOTH_BLADE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_BEHEMOTH_BASH] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_AURA_WHEEL] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_IF_FIRST,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_BREAKING_SWIPE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_BRANCH_POKE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_HIGHLY_APPEALING,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_OVERDRIVE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_APPLE_ACID] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_STARTLE_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_GRAV_APPLE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_STARTLE_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_CUTE,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_SPIRIT_BREAK] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_CUTE,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_STRANGE_STEAM] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_LIFE_DEW] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
|
||||
.contestCategory = CONTEST_CATEGORY_CUTE,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_OBSTRUCT] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_AVOID_STARTLE,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_FALSE_SURRENDER] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_IF_FIRST,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_METEOR_ASSAULT] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_ETERNABEAM] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_STEEL_BEAM] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_EXPANDING_FORCE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_STARTLE_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {COMBO_STARTER_PSYCHIC_TERRAIN}
|
||||
},
|
||||
|
||||
[MOVE_STEEL_ROLLER] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_SCALE_SHOT] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_METEOR_BEAM] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_USER_MORE_EASILY_STARTLED,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_SHELL_SIDE_ARM] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_MISTY_EXPLOSION] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES,
|
||||
.contestCategory = CONTEST_CATEGORY_CUTE,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {COMBO_STARTER_MISTY_TERRAIN}
|
||||
},
|
||||
|
||||
[MOVE_GRASSY_GLIDE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_NEXT_APPEAL_EARLIER,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {COMBO_STARTER_GRASSY_TERRAIN}
|
||||
},
|
||||
|
||||
[MOVE_RISING_VOLTAGE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_HIGHLY_APPEALING,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {COMBO_STARTER_ELECTRIC_TERRAIN}
|
||||
},
|
||||
|
||||
[MOVE_TERRAIN_PULSE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_HIGHLY_APPEALING,
|
||||
.contestCategory = CONTEST_CATEGORY_CUTE,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {COMBO_STARTER_ELECTRIC_TERRAIN, COMBO_STARTER_MISTY_TERRAIN, COMBO_STARTER_GRASSY_TERRAIN, COMBO_STARTER_PSYCHIC_TERRAIN},
|
||||
},
|
||||
|
||||
[MOVE_SKITTER_SMACK] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_CUTE,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_BURNING_JEALOUSY] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_LASH_OUT] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_STARTLE_PREV_MON,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_POLTERGEIST] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_IF_FIRST,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_CORROSIVE_GAS] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_COACHING] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_FLIP_TURN] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_AVOID_STARTLE,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_TRIPLE_AXEL] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_IF_SAME_TYPE,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_DUAL_WINGBEAT] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_REPETITION_NOT_BORING,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_SCORCHING_SANDS] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_HIGHLY_APPEALING,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_JUNGLE_HEALING] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_WICKED_BLOW] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_SURGING_STRIKES] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_THUNDER_CAGE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_DONT_EXCITE_AUDIENCE,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_DRAGON_ENERGY] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_WHEN_LATER,
|
||||
.contestCategory = CONTEST_CATEGORY_COOL,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_FREEZING_GLARE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_HIGHLY_APPEALING,
|
||||
.contestCategory = CONTEST_CATEGORY_CUTE,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
|
||||
[MOVE_FIERY_WRATH] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_HIGHLY_APPEALING,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_THUNDEROUS_KICK] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_HIGHLY_APPEALING,
|
||||
.contestCategory = CONTEST_CATEGORY_TOUGH,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_GLACIAL_LANCE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_IF_LAST,
|
||||
.contestCategory = CONTEST_CATEGORY_BEAUTY,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_ASTRAL_BARRAGE] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_IF_FIRST,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0},
|
||||
},
|
||||
|
||||
[MOVE_EERIE_SPELL] =
|
||||
{
|
||||
.effect = CONTEST_EFFECT_BETTER_WHEN_LATER,
|
||||
.contestCategory = CONTEST_CATEGORY_SMART,
|
||||
.comboStarterId = 0,
|
||||
.comboMoves = {0}
|
||||
},
|
||||
};
|
||||
|
||||
const struct ContestEffect gContestEffects[] =
|
||||
|
100
src/graphics.c
@ -1401,94 +1401,89 @@ const u32 gBattleAnimBgPalette_GigaImpact[] = INCBIN_U32("graphics/battle_anims/
|
||||
//const u32 gBattleAnimBgPalette_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/trick_room.gbapal.lz");
|
||||
//const u32 gBattleAnimBgTilemap_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/trick_room_map.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/rock_wrecker.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/rock_wrecker.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/rock_wrecker_map.bin.lz");
|
||||
const u32 gBattleAnimBgImage_Hurricane[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hurricane.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_Hurricane[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hurricane.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_Hurricane[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hurricane.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend_opponent.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend_opponent.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend_opponent.bin");
|
||||
const u32 gBattleAnimBgPalette_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/rock_wrecker.gbapal.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend_player.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend_player.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/spacial_rend_player.bin");
|
||||
const u32 gBattleAnimBgImage_SpacialRend[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_SpacialRend[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_opponent.bin.lz");
|
||||
const u32 gBattleAnimBgTilemap_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_player.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark_void.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark_void.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark_void.bin");
|
||||
const u32 gBattleAnimBgTilemap_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/dark_void.bin.lz");
|
||||
|
||||
|
||||
const u32 gBattleAnimBgPalette_SludgeWave[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sludge_wave.gbapal.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aeroblast_tiles.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aeroblast.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aeroblast_map.bin");
|
||||
const u32 gBattleAnimBgTilemap_Aeroblast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aeroblast_map.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgPalette_AuraSphere[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/aura_sphere.gbapal.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/blackhole_eclipse.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/blackhole_eclipse.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/blackhole_eclipse.bin");
|
||||
const u32 gBattleAnimBgTilemap_BlackholeEclipse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/blackhole_eclipse.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bloom_doom.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bloom_doom.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bloom_doom.bin");
|
||||
const u32 gBattleAnimBgTilemap_BloomDoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bloom_doom.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bolt_strike.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bolt_strike.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bolt_strike.bin");
|
||||
const u32 gBattleAnimBgTilemap_BoltStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/bolt_strike.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/clangorous_soulblaze.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/clangorous_soulblaze.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/clangorous_soulblaze.bin");
|
||||
const u32 gBattleAnimBgTilemap_ClangorousSoulblaze[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/clangorous_soulblaze.bin.lz");
|
||||
|
||||
//const u32 gBattleAnimBgImage_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/dark_void.4bpp.lz");
|
||||
//const u32 gBattleAnimBgPalette_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/dark_void.gbapal.lz");
|
||||
//const u32 gBattleAnimBgTilemap_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/dark_void.bin");
|
||||
//const u32 gBattleAnimBgTilemap_DarkVoid[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/dark_void.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgPalette_DynamaxCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/dynamax_cannon.gbapal.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/electric_terrain.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/electric_terrain.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/electric_terrain.bin");
|
||||
const u32 gBattleAnimBgTilemap_ElectricTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/electric_terrain.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire1.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire1.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire1.bin");
|
||||
const u32 gBattleAnimBgTilemap_Fire1[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire1.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgPalette_Fire2[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/fire2.gbapal.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/focus_blast.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/focus_blast.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/focus_blast.bin");
|
||||
const u32 gBattleAnimBgTilemap_FocusBlast[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/focus_blast.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgPalette_GarbageFalls[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/garbage_falls.gbapal.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_GigaImpactOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_opponent.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_GigaImpactOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_opponent.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_GigaImpactOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_opponent.bin");
|
||||
const u32 gBattleAnimBgTilemap_GigaImpactOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_opponent.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_GigaImpactPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_player.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_GigaImpactPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_player.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_GigaImpactPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_player.bin");
|
||||
const u32 gBattleAnimBgTilemap_GigaImpactPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/giga_impact_player.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/grassy_terrain.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/grassy_terrain.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/grassy_terrain.bin");
|
||||
const u32 gBattleAnimBgTilemap_GrassyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/grassy_terrain.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgPalette_GunkShot[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/gunk_shot.gbapal.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_HighSpeed[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/high_speed.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_HighSpeed[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/high_speed.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_HighSpeed[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/high_speed.bin");
|
||||
|
||||
const u32 gBattleAnimBgImage_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_cannon.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_cannon.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_cannon.bin");
|
||||
const u32 gBattleAnimBgTilemap_HydroCannon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_cannon.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_pump.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_pump.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_pump.bin");
|
||||
const u32 gBattleAnimBgTilemap_HydroPump[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hydro_pump.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgPalette_HyperBeam[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/hyper_beam.gbapal.lz");
|
||||
|
||||
@ -1496,33 +1491,33 @@ const u32 gBattleAnimBgPalette_HyperspaceFury[] = INCBIN_U32("graphics/battle_an
|
||||
|
||||
const u32 gBattleAnimBgImage_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/inferno_overdrive.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/inferno_overdrive.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/inferno_overdrive.bin");
|
||||
const u32 gBattleAnimBgTilemap_InfernoOverdrive[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/inferno_overdrive.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/leaf_storm.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/leaf_storm.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/leaf_storm.bin");
|
||||
const u32 gBattleAnimBgTilemap_LeafStorm[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/leaf_storm.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgPalette_MagicRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/magic_room.gbapal.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/malicious_moonsault.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/malicious_moonsault.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/malicious_moonsault.bin");
|
||||
const u32 gBattleAnimBgTilemap_MaliciousMoonsault[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/malicious_moonsault.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/max_lightning.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/max_lightning.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/max_lightning.bin");
|
||||
const u32 gBattleAnimBgTilemap_MaxLightning[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/max_lightning.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/misty_terrain.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/misty_terrain.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/misty_terrain.bin");
|
||||
const u32 gBattleAnimBgTilemap_MistyTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/misty_terrain.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/neverending_nightmare.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/neverending_nightmare.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/neverending_nightmare.bin");
|
||||
const u32 gBattleAnimBgTilemap_NeverendingNightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/neverending_nightmare.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/nightmare.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/nightmare.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/nightmare.bin");
|
||||
const u32 gBattleAnimBgTilemap_Nightmare[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/nightmare.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgPalette_PoisonFalls[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/poison_falls.gbapal.lz");
|
||||
|
||||
@ -1530,19 +1525,15 @@ const u32 gBattleAnimBgPalette_PsychicNew[] = INCBIN_U32("graphics/battle_anims/
|
||||
|
||||
const u32 gBattleAnimBgImage_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/psychic_terrain.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/psychic_terrain.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/psychic_terrain.bin");
|
||||
|
||||
//const u32 gBattleAnimBgImage_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/rock_wrecker.4bpp.lz");
|
||||
//const u32 gBattleAnimBgPalette_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/rock_wrecker.gbapal.lz");
|
||||
//const u32 gBattleAnimBgTilemap_RockWrecker[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/rock_wrecker.bin");
|
||||
const u32 gBattleAnimBgTilemap_PsychicTerrain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/psychic_terrain.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/shattered_psyche.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/shattered_psyche.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/shattered_psyche.bin");
|
||||
const u32 gBattleAnimBgTilemap_ShatteredPsyche[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/shattered_psyche.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_day.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_day.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_day.bin");
|
||||
const u32 gBattleAnimBgTilemap_SkyDay[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_day.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgPalette_SkyAfternoon[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/sky_afternoon.gbapal.lz");
|
||||
|
||||
@ -1550,47 +1541,42 @@ const u32 gBattleAnimBgPalette_SkyNight[] = INCBIN_U32("graphics/battle_anims/ba
|
||||
|
||||
const u32 gBattleAnimBgImage_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/snuggle_forever.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/snuggle_forever.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/snuggle_forever.bin");
|
||||
const u32 gBattleAnimBgTilemap_SnuggleForever[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/snuggle_forever.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.bin");
|
||||
|
||||
//const u32 gBattleAnimBgImage_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_opponent.4bpp.lz");
|
||||
//const u32 gBattleAnimBgPalette_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_opponent.gbapal.lz");
|
||||
//const u32 gBattleAnimBgTilemap_SpacialRendOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_opponent.bin");
|
||||
//const u32 gBattleAnimBgImage_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_player.4bpp.lz");
|
||||
//const u32 gBattleAnimBgPalette_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_player.gbapal.lz");
|
||||
//const u32 gBattleAnimBgTilemap_SpacialRendPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/spacial_rend_player.bin");
|
||||
const u32 gBattleAnimBgTilemap_SoulStealing7StarStrike[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/soulstealing_7star_strike.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgPalette_TectonicRage[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/tectonic_rage.gbapal.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/trick_room.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/trick_room.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/trick_room.bin");
|
||||
const u32 gBattleAnimBgTilemap_TrickRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/trick_room.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/twinkle_tackle.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/twinkle_tackle.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/twinkle_tackle.bin");
|
||||
const u32 gBattleAnimBgTilemap_TwinkleTackle[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/twinkle_tackle.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/water_pulse.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/water_pulse.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/water_pulse.bin");
|
||||
const u32 gBattleAnimBgTilemap_WaterPulse[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/water_pulse.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/waterfall.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/waterfall.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/waterfall.bin");
|
||||
const u32 gBattleAnimBgTilemap_Waterfall[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/waterfall.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgPalette_WonderRoom[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/wonder_room.gbapal.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_activate.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_activate.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_activate.bin");
|
||||
const u32 gBattleAnimBgTilemap_ZMoveActivate[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_activate.bin.lz");
|
||||
|
||||
const u32 gBattleAnimBgImage_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_mountain.4bpp.lz");
|
||||
const u32 gBattleAnimBgPalette_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_mountain.gbapal.lz");
|
||||
const u32 gBattleAnimBgTilemap_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_mountain.bin");
|
||||
const u32 gBattleAnimBgTilemap_ZMoveMountain[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/zmove_mountain.bin.lz");
|
||||
|
||||
const u32 gBattleAnimSpritePal_SteelBeam[] = INCBIN_U32("graphics/battle_anims/sprites/new/steel_beam.gbapal.lz");
|
||||
const u32 gBattleAnimBgPalette_SteelBeam[] = INCBIN_U32("graphics/battle_anims/backgrounds/new/steel_beam_bg.gbapal.lz");
|
||||
|
||||
// misc
|
||||
const u32 gUnknown_E6BC04[] = INCBIN_U32("graphics/unknown/unknown_E6BC04.bin.lz");
|
||||
|