mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-19 09:54:19 +01:00
Merge branch 'battle_engine_v2' of https://github.com/dizzyeggg/pokeemerald into battle_engine
This commit is contained in:
commit
ffdff9c606
@ -67,6 +67,7 @@ AI_CBM_CheckIfNegatesType:
|
||||
if_equal ABILITY_LIGHTNING_ROD, CheckIfVoltAbsorbCancelsElectric
|
||||
if_equal ABILITY_MOTOR_DRIVE, CheckIfVoltAbsorbCancelsElectric
|
||||
if_equal ABILITY_WATER_ABSORB, CheckIfWaterAbsorbCancelsWater
|
||||
if_equal ABILITY_STORM_DRAIN, CheckIfWaterAbsorbCancelsWater
|
||||
if_equal ABILITY_DRY_SKIN, CheckIfWaterAbsorbCancelsWater
|
||||
if_equal ABILITY_FLASH_FIRE, CheckIfFlashFireCancelsFire
|
||||
if_equal ABILITY_WONDER_GUARD, CheckIfWonderGuardCancelsMove
|
||||
@ -264,6 +265,21 @@ AI_CheckBadMove_CheckEffect: @ 82DC045
|
||||
if_effect EFFECT_GEOMANCY, AI_CBM_QuiverDance
|
||||
if_effect EFFECT_FAIRY_LOCK, AI_CBM_FairyLock
|
||||
if_effect EFFECT_ALLY_SWITCH, AI_CBM_HelpingHand
|
||||
if_effect EFFECT_TRICK_ROOM, AI_CBM_TrickRoom
|
||||
if_effect EFFECT_WONDER_ROOM, AI_CBM_WonderRoom
|
||||
if_effect EFFECT_MAGIC_ROOM, AI_CBM_MagicRoom
|
||||
end
|
||||
|
||||
AI_CBM_TrickRoom:
|
||||
if_field_status STATUS_FIELD_TRICK_ROOM, Score_Minus10
|
||||
end
|
||||
|
||||
AI_CBM_WonderRoom:
|
||||
if_field_status STATUS_FIELD_WONDER_ROOM, Score_Minus10
|
||||
end
|
||||
|
||||
AI_CBM_MagicRoom:
|
||||
if_field_status STATUS_FIELD_MAGIC_ROOM, Score_Minus10
|
||||
end
|
||||
|
||||
AI_CBM_FairyLock:
|
||||
|
@ -2220,22 +2220,18 @@ Move_DRAIN_PUNCH:
|
||||
Move_VACUUM_WAVE:
|
||||
loadspritegfx ANIM_TAG_IMPACT
|
||||
loadspritegfx ANIM_TAG_HANDS_AND_FEET
|
||||
monbg ANIM_ATK_PARTNER
|
||||
createvisualtask AnimTask_GetAttackerSide, 2, 0
|
||||
waitbgfadein
|
||||
delay 0
|
||||
setalpha 9, 8
|
||||
createvisualtask AnimTask_AttackerPunchWithTrace, 2, 2, RGB(8, 9, 24), 17
|
||||
playsewithpan SE_W026, SOUND_PAN_ATTACKER
|
||||
delay 6
|
||||
createsprite gBasicHitSplatSpriteTemplate 131, 4, 0, 0, 1, 1
|
||||
createsprite gFistFootSpriteTemplate 132, 5, 0, 0, 8, 1, 0
|
||||
playsewithpan SE_W004, SOUND_PAN_TARGET
|
||||
createvisualtask AnimTask_ShakeMon 2, 5, ANIM_TARGET, 3, 0, 6, 1
|
||||
waitforvisualfinish
|
||||
clearmonbg ANIM_ATK_PARTNER
|
||||
blendoff
|
||||
end
|
||||
loadspritegfx ANIM_TAG_THIN_RING
|
||||
monbg ANIM_TARGET
|
||||
setalpha 12, 8
|
||||
createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, -8, 1, 2
|
||||
createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 8, 0, 8, 1, 0
|
||||
createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0, 0x7FFF, 3
|
||||
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1
|
||||
playsewithpan SE_W004, SOUND_PAN_TARGET
|
||||
waitforvisualfinish
|
||||
clearmonbg ANIM_TARGET
|
||||
blendoff
|
||||
end
|
||||
|
||||
Move_FOCUS_BLAST:
|
||||
loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT
|
||||
@ -4705,7 +4701,50 @@ Move_ALLY_SWITCH:
|
||||
end
|
||||
|
||||
Move_SCALD:
|
||||
loadspritegfx ANIM_TAG_WATER_ORB
|
||||
loadspritegfx ANIM_TAG_WATER_IMPACT
|
||||
monbg ANIM_DEF_PARTNER
|
||||
monbgprio_28 ANIM_TARGET
|
||||
setalpha 12, 8
|
||||
createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1
|
||||
delay 6
|
||||
panse_1B SE_W056, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0
|
||||
createvisualtask AnimTask_StartSinAnimTimer, 5, 100
|
||||
call ScaldBeams
|
||||
call ScaldBeams
|
||||
call ScaldBeams
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 11, RGB_RED
|
||||
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 37, 1
|
||||
call ScaldHitSplats
|
||||
call ScaldBeams
|
||||
call ScaldBeams
|
||||
call ScaldHitSplats
|
||||
call ScaldBeams
|
||||
call ScaldBeams
|
||||
call ScaldHitSplats
|
||||
call ScaldBeams
|
||||
call ScaldBeams
|
||||
call ScaldHitSplats
|
||||
call ScaldBeams
|
||||
call ScaldBeams
|
||||
call ScaldHitSplats
|
||||
delay 2
|
||||
call ScaldHitSplats
|
||||
waitforvisualfinish
|
||||
clearmonbg ANIM_DEF_PARTNER
|
||||
blendoff
|
||||
end
|
||||
|
||||
ScaldBeams:
|
||||
createsprite gHydroPumpOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 0
|
||||
delay 1
|
||||
createsprite gHydroPumpOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 0
|
||||
delay 1
|
||||
return
|
||||
|
||||
ScaldHitSplats:
|
||||
createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 1
|
||||
return
|
||||
|
||||
Move_SHELL_SMASH:
|
||||
end
|
||||
@ -4872,12 +4911,325 @@ InfernoAnim:
|
||||
return
|
||||
|
||||
Move_WATER_PLEDGE:
|
||||
loadspritegfx ANIM_TAG_WATER_ORB
|
||||
loadspritegfx ANIM_TAG_WATER_IMPACT
|
||||
monbg ANIM_DEF_PARTNER
|
||||
monbgprio_28 ANIM_TARGET
|
||||
|
||||
@left fountain
|
||||
|
||||
createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1
|
||||
delay 6
|
||||
panse_1B SE_W056, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0
|
||||
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
|
||||
createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, ANIM_TARGET, 1
|
||||
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
|
||||
createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, ANIM_TARGET, 1
|
||||
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
|
||||
@middle fountain (also continues left fountain)
|
||||
|
||||
panse_1B SE_W056, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0
|
||||
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 11, RGB_BLUE
|
||||
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 37, 1
|
||||
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
|
||||
createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1
|
||||
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
|
||||
createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1
|
||||
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
|
||||
@right fountain (also continues middle and left fountains)
|
||||
|
||||
panse_1B SE_W056, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0
|
||||
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
|
||||
createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, ANIM_TARGET, 1
|
||||
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
|
||||
createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, ANIM_TARGET, 1
|
||||
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gWaterPledgeOrbSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
|
||||
waitforvisualfinish
|
||||
clearmonbg ANIM_DEF_PARTNER
|
||||
blendoff
|
||||
end
|
||||
|
||||
Move_FIRE_PLEDGE:
|
||||
loadspritegfx ANIM_TAG_SMALL_EMBER
|
||||
monbg ANIM_DEF_PARTNER
|
||||
monbgprio_28 ANIM_TARGET
|
||||
|
||||
@left fountain
|
||||
|
||||
createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1
|
||||
delay 6
|
||||
panse_1B SE_W053, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0
|
||||
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
|
||||
@middle fountain (also continues left fountain)
|
||||
|
||||
panse_1B SE_W053, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0
|
||||
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 11, RGB_RED
|
||||
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 37, 1
|
||||
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
|
||||
@right fountain (also continues middle and left fountains)
|
||||
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gFirePledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
|
||||
waitforvisualfinish
|
||||
clearmonbg ANIM_DEF_PARTNER
|
||||
blendoff
|
||||
end
|
||||
|
||||
Move_GRASS_PLEDGE:
|
||||
loadspritegfx ANIM_TAG_LEAF
|
||||
loadspritegfx ANIM_TAG_WHIP_HIT
|
||||
monbg ANIM_DEF_PARTNER
|
||||
monbgprio_28 ANIM_TARGET
|
||||
|
||||
createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1
|
||||
delay 6
|
||||
playsewithpan SE_W010, SOUND_PAN_TARGET
|
||||
createsprite gVineWhipSpriteTemplate, ANIM_TARGET, 2, -16, 0
|
||||
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
|
||||
@middle fountain (also continues left fountain)
|
||||
|
||||
playsewithpan SE_W010, SOUND_PAN_TARGET
|
||||
createsprite gVineWhipSpriteTemplate, ANIM_TARGET, 2, 0, 0
|
||||
|
||||
createvisualtask AnimTask_BlendColorCycle, 2, 4, 2, 2, 0, 11, RGB_GREEN
|
||||
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 37, 1
|
||||
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
|
||||
@right fountain (also continues middle and left fountains)
|
||||
|
||||
playsewithpan SE_W010, SOUND_PAN_TARGET
|
||||
createsprite gVineWhipSpriteTemplate, ANIM_TARGET, 2, 16, 0
|
||||
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 24, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, 0, 10, -40, 2
|
||||
createsprite gGrassPledgeSpriteTemplate, ANIM_TARGET, 3, -24, 10, -40, 2
|
||||
delay 4
|
||||
|
||||
waitforvisualfinish
|
||||
clearmonbg ANIM_DEF_PARTNER
|
||||
blendoff
|
||||
end
|
||||
|
||||
Move_VOLT_SWITCH:
|
||||
@ -5175,6 +5527,24 @@ Move_STICKY_WEB:
|
||||
end
|
||||
|
||||
Move_FELL_STINGER:
|
||||
loadspritegfx ANIM_TAG_NEEDLE
|
||||
loadspritegfx ANIM_TAG_IMPACT
|
||||
monbg ANIM_TARGET
|
||||
monbgprio_28 ANIM_TARGET
|
||||
fadetobg BG_DARK
|
||||
waitbgfadein
|
||||
delay 0
|
||||
playsewithpan SE_W013B, SOUND_PAN_ATTACKER
|
||||
createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 20, 0, -8, 0, 20
|
||||
waitforvisualfinish
|
||||
createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2
|
||||
createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 5, 1
|
||||
playsewithpan SE_W030, SOUND_PAN_TARGET
|
||||
waitforvisualfinish
|
||||
delay 1
|
||||
restorebg
|
||||
waitbgfadein
|
||||
clearmonbg ANIM_TARGET
|
||||
end
|
||||
|
||||
Move_PHANTOM_FORCE:
|
||||
@ -5318,6 +5688,33 @@ Move_TOPSY_TURVY:
|
||||
end
|
||||
|
||||
Move_DRAINING_KISS:
|
||||
loadspritegfx ANIM_TAG_ORBS
|
||||
loadspritegfx ANIM_TAG_BLUE_STAR
|
||||
loadspritegfx ANIM_TAG_IMPACT
|
||||
loadspritegfx ANIM_TAG_RED_HEART
|
||||
loopsewithpan SE_W204, SOUND_PAN_ATTACKER, 12, 3
|
||||
createvisualtask AnimTask_SwayMon, 5, 0, 12, 4096, 4, ANIM_ATTACKER
|
||||
delay 15
|
||||
createsprite gRedHeartProjectileSpriteTemplate, ANIM_TARGET, 3, 20, -8
|
||||
waitforvisualfinish
|
||||
playsewithpan SE_W213, SOUND_PAN_TARGET
|
||||
createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 160, -32
|
||||
createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -256, -40
|
||||
createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 128, -16
|
||||
createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 416, -38
|
||||
createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -128, -22
|
||||
createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -384, -31
|
||||
waitforvisualfinish
|
||||
createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2
|
||||
delay 5
|
||||
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1
|
||||
waitforvisualfinish
|
||||
delay 3
|
||||
call AbsorbEffect
|
||||
waitforvisualfinish
|
||||
delay 15
|
||||
call HealingEffect
|
||||
waitforvisualfinish
|
||||
end
|
||||
|
||||
Move_CRAFTY_SHIELD:
|
||||
@ -5398,7 +5795,7 @@ Move_FAIRY_LOCK:
|
||||
end
|
||||
|
||||
Move_KINGS_SHIELD:
|
||||
end
|
||||
goto Move_PROTECT
|
||||
|
||||
Move_PLAY_NICE:
|
||||
end
|
||||
|
@ -776,6 +776,8 @@ const union AnimCmd *const gRazorLeafParticleAnimTable[] =
|
||||
gRazorLeafParticleAnimCmds2,
|
||||
};
|
||||
|
||||
void AnimFlyUpTarget(struct Sprite *sprite);
|
||||
|
||||
const struct SpriteTemplate gRazorLeafParticleSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_LEAF,
|
||||
@ -787,6 +789,17 @@ const struct SpriteTemplate gRazorLeafParticleSpriteTemplate =
|
||||
.callback = AnimRazorLeafParticle,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gGrassPledgeSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_LEAF,
|
||||
.paletteTag = ANIM_TAG_LEAF,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_16x16,
|
||||
.anims = gRazorLeafParticleAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimFlyUpTarget,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gTwisterLeafSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_LEAF,
|
||||
|
@ -21,6 +21,8 @@ static void AnimWaterBubbleProjectile_Step2(struct Sprite *);
|
||||
static void AnimWaterBubbleProjectile_Step3(struct Sprite *);
|
||||
static void AnimAuroraBeamRings(struct Sprite *);
|
||||
static void AnimAuroraBeamRings_Step(struct Sprite *);
|
||||
void AnimFlyUpTarget(struct Sprite *);
|
||||
static void AnimFlyUpTarget_Step(struct Sprite *);
|
||||
static void AnimToTargetInSinWave(struct Sprite *);
|
||||
static void AnimToTargetInSinWave_Step(struct Sprite *);
|
||||
static void AnimHydroCannonCharge(struct Sprite *);
|
||||
@ -191,6 +193,17 @@ const struct SpriteTemplate gHydroPumpOrbSpriteTemplate =
|
||||
.callback = AnimToTargetInSinWave,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gWaterPledgeOrbSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_WATER_ORB,
|
||||
.paletteTag = ANIM_TAG_WATER_ORB,
|
||||
.oam = &gOamData_AffineOff_ObjBlend_16x16,
|
||||
.anims = gAnims_WaterMudOrb,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimFlyUpTarget,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gMudShotOrbSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_BROWN_ORB,
|
||||
@ -248,6 +261,17 @@ const struct SpriteTemplate gFlamethrowerFlameSpriteTemplate =
|
||||
.callback = AnimToTargetInSinWave,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gFirePledgeSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_SMALL_EMBER,
|
||||
.paletteTag = ANIM_TAG_SMALL_EMBER,
|
||||
.oam = &gOamData_AffineOff_ObjNormal_32x32,
|
||||
.anims = sAnims_FlamethrowerFlame,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimFlyUpTarget,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gPsywaveRingSpriteTemplate =
|
||||
{
|
||||
.tileTag = ANIM_TAG_BLUE_RING,
|
||||
@ -854,6 +878,27 @@ _081075DE:\n\
|
||||
}
|
||||
#endif
|
||||
|
||||
void AnimFlyUpTarget(struct Sprite *sprite)
|
||||
{
|
||||
InitSpritePosToAnimTarget(sprite, TRUE);
|
||||
sprite->pos2.y += GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_HEIGHT) / 2;
|
||||
sprite->pos2.y += gBattleAnimArgs[1];
|
||||
sprite->data[0] = gBattleAnimArgs[2]; //max y offset
|
||||
sprite->data[1] = gBattleAnimArgs[3]; //speed
|
||||
sprite->callback = AnimFlyUpTarget_Step;
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
static void AnimFlyUpTarget_Step(struct Sprite *sprite)
|
||||
{
|
||||
if(sprite->pos2.y <= sprite->data[0])
|
||||
{
|
||||
DestroyAnimSprite(sprite);
|
||||
return;
|
||||
}
|
||||
sprite->pos2.y -= sprite->data[1];
|
||||
}
|
||||
|
||||
// For animating undulating beam attacks (e.g. Flamethrower, Hydro Pump, Signal Beam)
|
||||
static void AnimToTargetInSinWave(struct Sprite *sprite)
|
||||
{
|
||||
|
@ -1678,7 +1678,11 @@ static void Cmd_attackanimation(void)
|
||||
if (gBattleControllerExecFlags)
|
||||
return;
|
||||
|
||||
if ((gHitMarker & HITMARKER_NO_ANIMATIONS) && (gCurrentMove != MOVE_TRANSFORM && gCurrentMove != MOVE_SUBSTITUTE))
|
||||
if ((gHitMarker & HITMARKER_NO_ANIMATIONS)
|
||||
&& gCurrentMove != MOVE_TRANSFORM
|
||||
&& gCurrentMove != MOVE_SUBSTITUTE
|
||||
// In a wild double battle gotta use the teleport animation if two wild pokemon are alive.
|
||||
&& !(gCurrentMove == MOVE_TELEPORT && WILD_DOUBLE_BATTLE && GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT && IsBattlerAlive(BATTLE_PARTNER(gBattlerAttacker))))
|
||||
{
|
||||
BattleScriptPush(gBattlescriptCurrInstr + 1);
|
||||
gBattlescriptCurrInstr = BattleScript_Pausex20;
|
||||
@ -7001,7 +7005,7 @@ static void Cmd_various(void)
|
||||
u32 statId;
|
||||
do
|
||||
{
|
||||
statId = (Random() % NUM_BATTLE_STATS) + 1;
|
||||
statId = (Random() % (NUM_BATTLE_STATS - 1)) + 1;
|
||||
} while (!(bits & gBitTable[statId]));
|
||||
|
||||
SET_STATCHANGER(statId, 2, FALSE);
|
||||
|
@ -2311,7 +2311,7 @@ u8 AtkCanceller_UnableToUseMove(void)
|
||||
gBattleMons[gBattlerAttacker].status2--;
|
||||
if (gBattleMons[gBattlerAttacker].status2 & STATUS2_CONFUSION)
|
||||
{
|
||||
if (Random() % ((B_CONFUSION_SELF_DMG_CHANCE >= GEN_7) ? 3 : 2 == 0)) // confusion dmg
|
||||
if (Random() % ((B_CONFUSION_SELF_DMG_CHANCE >= GEN_7) ? 3 : 2) == 0) // confusion dmg
|
||||
{
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
|
||||
gBattlerTarget = gBattlerAttacker;
|
||||
@ -5882,7 +5882,7 @@ static u32 CalcMoveBasePowerAfterModifiers(u16 move, u8 battlerAtk, u8 battlerDe
|
||||
MulModifier(&modifier, UQ_4_12(2.0));
|
||||
break;
|
||||
case EFFECT_BRINE:
|
||||
if (gBattleMons[battlerAtk].hp <= (gBattleMons[battlerAtk].maxHP / 2))
|
||||
if (gBattleMons[battlerDef].hp <= (gBattleMons[battlerDef].maxHP / 2))
|
||||
MulModifier(&modifier, UQ_4_12(2.0));
|
||||
break;
|
||||
case EFFECT_VENOSHOCK:
|
||||
|
Loading…
x
Reference in New Issue
Block a user