mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-26 21:33:53 +01:00
Magnetic Flux + Gear Up
Both have the same effect so they're in one commit. Uses custom script to check both user and partner for stats and abilities. Magnetic Flux uses Charge animation.
This commit is contained in:
parent
8ce919594c
commit
3cde800bd0
@ -1749,3 +1749,12 @@
|
||||
1:
|
||||
.endm
|
||||
|
||||
.macro setallytonexttarget jumpptr:req
|
||||
jumpifbyte CMP_GREATER_THAN, gBattlerTarget, 0x1, 1f
|
||||
addbyte gBattlerTarget, 0x2
|
||||
goto \jumpptr
|
||||
1:
|
||||
subbyte gBattlerTarget, 0x2
|
||||
goto \jumpptr
|
||||
.endm
|
||||
|
||||
|
@ -2825,9 +2825,6 @@ Move_POWDER:
|
||||
Move_GEOMANCY:
|
||||
end
|
||||
|
||||
Move_MAGNETIC_FLUX:
|
||||
end
|
||||
|
||||
Move_HAPPY_HOUR:
|
||||
end
|
||||
|
||||
@ -6035,6 +6032,7 @@ Move_FOLLOW_ME:
|
||||
loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 22, 3
|
||||
end
|
||||
|
||||
Move_MAGNETIC_FLUX:
|
||||
Move_CHARGE:
|
||||
loadspritegfx ANIM_TAG_ELECTRIC_ORBS
|
||||
loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT
|
||||
|
@ -351,6 +351,8 @@ gBattleScriptsForMoveEffects:: @ 82D86A8
|
||||
.4byte BattleScript_EffectInstruct
|
||||
.4byte BattleScript_EffectThroatChop
|
||||
.4byte BattleScript_EffectLaserFocus
|
||||
.4byte BattleScript_EffectMagneticFlux
|
||||
.4byte BattleScript_EffectGearUp
|
||||
|
||||
BattleScript_EffectCoreEnforcer:
|
||||
setmoveeffect MOVE_EFFECT_CORE_ENFORCER | MOVE_EFFECT_CERTAIN
|
||||
@ -500,6 +502,84 @@ BattleScript_AromaticMistAnim:
|
||||
BattleScript_EffectAromaticMistEnd:
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectMagneticFlux::
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
setbyte gBattleCommunication, 0x0
|
||||
BattleScript_EffectMagneticFluxStart:
|
||||
jumpifability BS_TARGET, ABILITY_MINUS, BattleScript_EffectMagneticFluxCheckStats
|
||||
jumpifability BS_TARGET, ABILITY_PLUS, BattleScript_EffectMagneticFluxCheckStats
|
||||
goto BattleScript_EffectMagneticFluxLoop
|
||||
BattleScript_EffectMagneticFluxCheckStats:
|
||||
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_DEF, 0xC, BattleScript_EffectMagneticFluxTryDef
|
||||
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPDEF, 0xC, BattleScript_EffectMagneticFluxLoop
|
||||
BattleScript_EffectMagneticFluxTryDef:
|
||||
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_EffectMagneticFluxSkipAnim
|
||||
attackanimation
|
||||
waitanimation
|
||||
BattleScript_EffectMagneticFluxSkipAnim:
|
||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
||||
playstatchangeanimation BS_TARGET, BIT_DEF | BIT_SPDEF, 0x0
|
||||
setstatchanger STAT_DEF, 1, FALSE
|
||||
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_EffectMagneticFluxTrySpDef
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectMagneticFluxTrySpDef
|
||||
addbyte gBattleCommunication, 0x1
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage 0x40
|
||||
BattleScript_EffectMagneticFluxTrySpDef:
|
||||
setstatchanger STAT_SPDEF, 1, FALSE
|
||||
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_EffectMagneticFluxLoop
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectMagneticFluxLoop
|
||||
addbyte gBattleCommunication, 0x1
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage 0x40
|
||||
BattleScript_EffectMagneticFluxLoop:
|
||||
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectMagneticFluxEnd
|
||||
setallytonexttarget BattleScript_EffectMagneticFluxStart
|
||||
BattleScript_EffectMagneticFluxEnd:
|
||||
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_MoveEnd
|
||||
goto BattleScript_ButItFailed
|
||||
|
||||
BattleScript_EffectGearUp::
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
setbyte gBattleCommunication, 0x0
|
||||
BattleScript_EffectGearUpStart:
|
||||
jumpifability BS_TARGET, ABILITY_MINUS, BattleScript_EffectGearUpCheckStats
|
||||
jumpifability BS_TARGET, ABILITY_PLUS, BattleScript_EffectGearUpCheckStats
|
||||
goto BattleScript_EffectGearUpLoop
|
||||
BattleScript_EffectGearUpCheckStats:
|
||||
jumpifstat BS_TARGET, CMP_LESS_THAN, STAT_ATK, 0xC, BattleScript_EffectGearUpTryAtk
|
||||
jumpifstat BS_TARGET, CMP_EQUAL, STAT_SPATK, 0xC, BattleScript_EffectGearUpLoop
|
||||
BattleScript_EffectGearUpTryAtk:
|
||||
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_EffectGearUpSkipAnim
|
||||
attackanimation
|
||||
waitanimation
|
||||
BattleScript_EffectGearUpSkipAnim:
|
||||
setbyte sSTAT_ANIM_PLAYED, FALSE
|
||||
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, 0x0
|
||||
setstatchanger STAT_ATK, 1, FALSE
|
||||
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_EffectGearUpTrySpAtk
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectGearUpTrySpAtk
|
||||
addbyte gBattleCommunication, 0x1
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage 0x40
|
||||
BattleScript_EffectGearUpTrySpAtk:
|
||||
setstatchanger STAT_SPATK, 1, FALSE
|
||||
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_EffectGearUpLoop
|
||||
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectGearUpLoop
|
||||
addbyte gBattleCommunication, 0x1
|
||||
printfromtable gStatUpStringIds
|
||||
waitmessage 0x40
|
||||
BattleScript_EffectGearUpLoop:
|
||||
jumpifbytenotequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectGearUpEnd
|
||||
setallytonexttarget BattleScript_EffectGearUpStart
|
||||
BattleScript_EffectGearUpEnd:
|
||||
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_MoveEnd
|
||||
goto BattleScript_ButItFailed
|
||||
|
||||
BattleScript_EffectAcupressure:
|
||||
attackcanceler
|
||||
jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_EffectAcupressureTry
|
||||
|
@ -339,5 +339,7 @@
|
||||
#define EFFECT_INSTRUCT 333
|
||||
#define EFFECT_THROAT_CHOP 334
|
||||
#define EFFECT_LASER_FOCUS 335
|
||||
#define EFFECT_MAGNETIC_FLUX 336
|
||||
#define EFFECT_GEAR_UP 337
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
|
||||
|
@ -8450,7 +8450,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||
|
||||
[MOVE_MAGNETIC_FLUX] =
|
||||
{
|
||||
.effect = EFFECT_PLACEHOLDER, // Needs a custom move effect
|
||||
.effect = EFFECT_MAGNETIC_FLUX,
|
||||
.power = 0,
|
||||
.type = TYPE_ELECTRIC,
|
||||
.accuracy = 0,
|
||||
@ -8942,13 +8942,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
|
||||
|
||||
[MOVE_GEAR_UP] =
|
||||
{
|
||||
.effect = EFFECT_PLACEHOLDER,
|
||||
.effect = EFFECT_GEAR_UP,
|
||||
.power = 0,
|
||||
.type = TYPE_STEEL,
|
||||
.accuracy = 0,
|
||||
.pp = 20,
|
||||
.secondaryEffectChance = 0,
|
||||
.target = MOVE_TARGET_SELECTED,
|
||||
.target = MOVE_TARGET_USER,
|
||||
.priority = 0,
|
||||
.flags = FLAG_SNATCH_AFFECTED,
|
||||
.split = SPLIT_STATUS,
|
||||
|
Loading…
x
Reference in New Issue
Block a user