Merge pull request #1545 from MissingNoL/PLG

Implemented PLG move effects
This commit is contained in:
Eduardo Quezada D'Ottone 2021-10-17 18:30:50 -03:00 committed by GitHub
commit e3252a68cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 166 additions and 8 deletions

View File

@ -382,6 +382,157 @@ gBattleScriptsForMoveEffects::
.4byte BattleScript_EffectRecoilHP25 @ EFFECT_RECOIL_HP_25
.4byte BattleScript_EffectStuffCheeks @ EFFECT_STUFF_CHEEKS
.4byte BattleScript_EffectDefenseDownHit @ EFFECT_GRAV_APPLE
.4byte BattleScript_EffectEvasionUpHit @ EFFECT_EVASION_UP_HIT
.4byte BattleScript_EffectDoubleIronBash @ EFFECT_DOUBLE_IRON_BASH
.4byte BattleScript_EffectGlitzyGlow @ EFFECT_GLITZY_GLOW
.4byte BattleScript_EffectBaddyBad @ EFFECT_BADDY_BAD
.4byte BattleScript_EffectSappySeed @ EFFECT_SAPPY_SEED
.4byte BattleScript_EffectFreezyFrost @ EFFECT_FREEZY_FROST
.4byte BattleScript_EffectSparklySwirl @ EFFECT_SPARKLY_SWIRL
BattleScript_EffectSparklySwirl:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
damagecalc
adjustdamage
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_TARGET, FALSE, NULL
healpartystatus
waitstate
updatestatusicon BS_ATTACKER_WITH_PARTNER
waitstate
goto BattleScript_MoveEnd
BattleScript_EffectFreezyFrost:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
damagecalc
adjustdamage
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_TARGET, FALSE, NULL
normalisebuffs
printstring STRINGID_STATCHANGESGONE
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectSappySeed:
jumpifstatus3 BS_TARGET, STATUS3_LEECHSEED, BattleScript_EffectHit
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
damagecalc
adjustdamage
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_TARGET, FALSE, NULL
jumpifhasnohp BS_TARGET, BattleScript_MoveEnd
setseeded
printfromtable gLeechSeedStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectBaddyBad:
jumpifsideaffecting BS_ATTACKER, SIDE_STATUS_REFLECT, BattleScript_EffectHit
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
damagecalc
adjustdamage
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_TARGET, FALSE, NULL
setreflect
printfromtable gReflectLightScreenSafeguardStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectGlitzyGlow:
jumpifsideaffecting BS_ATTACKER, SIDE_STATUS_LIGHTSCREEN, BattleScript_EffectHit
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
critcalc
damagecalc
adjustdamage
attackanimation
waitanimation
effectivenesssound
hitanimation BS_TARGET
waitstate
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
critmessage
waitmessage B_WAIT_TIME_LONG
resultmessage
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_TARGET, FALSE, NULL
setlightscreen
printfromtable gReflectLightScreenSafeguardStringIds
waitmessage B_WAIT_TIME_LONG
goto BattleScript_MoveEnd
BattleScript_EffectDoubleIronBash:
attackcanceler
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
setmultihitcounter 2
initmultihitstring
sethword sMULTIHIT_EFFECT, MOVE_EFFECT_FLINCH
goto BattleScript_MultiHitLoop
BattleScript_EffectEvasionUpHit:
setmoveeffect MOVE_EFFECT_EVS_PLUS_1 | MOVE_EFFECT_AFFECTS_USER
goto BattleScript_EffectHit
BattleScript_EffectStuffCheeks::
attackcanceler

View File

@ -366,7 +366,14 @@
#define EFFECT_RECOIL_HP_25 360
#define EFFECT_STUFF_CHEEKS 361
#define EFFECT_GRAV_APPLE 362
#define EFFECT_EVASION_UP_HIT 363
#define EFFECT_DOUBLE_IRON_BASH 364
#define EFFECT_GLITZY_GLOW 365
#define EFFECT_BADDY_BAD 366
#define EFFECT_SAPPY_SEED 367
#define EFFECT_FREEZY_FROST 368
#define EFFECT_SPARKLY_SWIRL 369
#define NUM_BATTLE_MOVE_EFFECTS 363
#define NUM_BATTLE_MOVE_EFFECTS 370
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H

View File

@ -10465,7 +10465,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
{
#if B_UPDATED_MOVE_DATA >= GEN_8
.power = 80,
.effect = EFFECT_PLACEHOLDER, // TODO: EFFECT_EVASION_UP_HIT
.effect = EFFECT_EVASION_UP_HIT,
.pp = 10,
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGS_ROCK_AFFECTED | FLAG_SHEER_FORCE_BOOST,
#else
@ -10608,7 +10608,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.accuracy = 100,
.flags = FLAG_PROTECT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
#endif
.effect = EFFECT_PLACEHOLDER, //TODO (Light Screen + Hit)
.effect = EFFECT_GLITZY_GLOW,
.type = TYPE_PSYCHIC,
.pp = 15,
.secondaryEffectChance = 0,
@ -10628,7 +10628,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.accuracy = 100,
.flags = FLAG_PROTECT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
#endif
.effect = EFFECT_PLACEHOLDER, //TODO (Reflect + Hit)
.effect = EFFECT_BADDY_BAD,
.type = TYPE_DARK,
.pp = 15,
.secondaryEffectChance = 0,
@ -10650,7 +10650,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.pp = 15,
.flags = FLAG_PROTECT_AFFECTED | FLAG_MAGIC_COAT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
#endif
.effect = EFFECT_PLACEHOLDER, //TODO (Leech Seed + Hit)
.effect = EFFECT_SAPPY_SEED,
.type = TYPE_GRASS,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
@ -10671,7 +10671,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.pp = 15,
.flags = FLAG_PROTECT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
#endif
.effect = EFFECT_PLACEHOLDER, //TODO (Haze + Hit)
.effect = EFFECT_FREEZY_FROST,
.type = TYPE_ICE,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
@ -10692,7 +10692,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
.pp = 15,
.flags = FLAG_PROTECT_AFFECTED | FLAG_KINGS_ROCK_AFFECTED,
#endif
.effect = EFFECT_PLACEHOLDER, //TODO (Heal Bell + Hit)
.effect = EFFECT_SPARKLY_SWIRL,
.type = TYPE_FAIRY,
.secondaryEffectChance = 0,
.target = MOVE_TARGET_SELECTED,
@ -10725,7 +10725,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] =
#else
.flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DMG_MINIMIZE | FLAG_IRON_FIST_BOOST | FLAG_SHEER_FORCE_BOOST,
#endif
.effect = EFFECT_PLACEHOLDER, //TODO (EFFECT_FLINCH_HIT + EFFECT_DOUBLE_HIT)
.effect = EFFECT_DOUBLE_IRON_BASH,
.power = 60,
.type = TYPE_STEEL,
.accuracy = 100,