Merge branch 'battle_engine_v2' of https://github.com/dizzyeggg/pokeemerald into battle_engine

This commit is contained in:
Evan 2020-05-24 13:04:56 -06:00
commit ffdff9c606
6 changed files with 496 additions and 21 deletions

View File

@ -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:

View File

@ -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

View File

@ -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,

View File

@ -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)
{

View File

@ -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);

View File

@ -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: