From 1b9aa1f023398b875b785b51463046bfc3197c93 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Thu, 20 Aug 2020 15:40:11 -0300 Subject: [PATCH 01/27] Updated many moves' data to Gen. 8 standards --- data/battle_scripts_1.s | 31 ++++++++++++++++++++++- src/data/battle_moves.h | 56 ++++++++++++++++++++--------------------- 2 files changed, 58 insertions(+), 29 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 6780e8e22..7e1bbd33d 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -3823,8 +3823,37 @@ BattleScript_EffectBatonPass:: goto BattleScript_MoveEnd BattleScript_EffectRapidSpin:: + 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 0x40 + resultmessage + waitmessage 0x40 setmoveeffect MOVE_EFFECT_RAPIDSPIN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN - goto BattleScript_EffectHit + seteffectwithchance + setstatchanger STAT_SPEED, 1, FALSE + statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_EffectRapidSpinEnd + jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_EffectRapidSpinEnd + setgraphicalstatchangevalues + playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_EffectRapidSpinEnd:: + tryfaintmon BS_TARGET, FALSE, NULL + moveendall + end BattleScript_EffectSonicboom:: attackcanceler diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 2582272bb..a76feb849 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -202,7 +202,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 0, .type = TYPE_NORMAL, .accuracy = 0, - .pp = 30, + .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -262,7 +262,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -6, - .flags = FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -495,7 +495,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_TRAP, .power = 15, .type = TYPE_NORMAL, - .accuracy = 85, + .accuracy = 90, .pp = 20, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -1409,7 +1409,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 0, + .priority = -6, .flags = 0, .split = SPLIT_STATUS, }, @@ -1725,10 +1725,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SMOG] = { .effect = EFFECT_POISON_HIT, - .power = 20, + .power = 30, .type = TYPE_POISON, .accuracy = 70, - .pp = 30, + .pp = 20, .secondaryEffectChance = 40, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -1954,7 +1954,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .accuracy = 90, .pp = 40, .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, + .target = MOVE_TARGET_BOTH, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, @@ -2321,7 +2321,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -2501,7 +2501,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .accuracy = 100, .pp = 40, .secondaryEffectChance = 0, - .target = MOVE_TARGET_SELECTED, + .target = MOVE_TARGET_BOTH, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_POWDER, .split = SPLIT_STATUS, @@ -2558,7 +2558,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 3, + .priority = 4, .flags = FLAG_PROTECTION_MOVE, .split = SPLIT_STATUS, }, @@ -2601,7 +2601,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -2768,7 +2768,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 3, + .priority = 4, .flags = FLAG_PROTECTION_MOVE, .split = SPLIT_STATUS, }, @@ -2852,7 +2852,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 3, + .priority = 4, .flags = FLAG_PROTECTION_MOVE, .split = SPLIT_STATUS, }, @@ -3210,7 +3210,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_RAPID_SPIN] = { .effect = EFFECT_RAPID_SPIN, - .power = 20, + .power = 50, .type = TYPE_NORMAL, .accuracy = 100, .pp = 40, @@ -3413,7 +3413,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = -5, - .flags = FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED, .split = SPLIT_SPECIAL, }, @@ -3427,7 +3427,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, + .flags = 0, .split = SPLIT_STATUS, }, @@ -3455,7 +3455,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, }, @@ -3538,7 +3538,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, - .priority = 1, + .priority = 3, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -3735,7 +3735,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 3, + .priority = 2, .flags = 0, .split = SPLIT_STATUS, }, @@ -3778,7 +3778,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -4184,7 +4184,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_DANCE, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DANCE, .split = SPLIT_STATUS, }, @@ -4279,7 +4279,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .type = TYPE_POISON, .accuracy = 100, .pp = 15, - .secondaryEffectChance = 30, + .secondaryEffectChance = 50, .target = MOVE_TARGET_SELECTED, .priority = 0, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST, @@ -4422,7 +4422,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_SPECIAL, }, @@ -4815,7 +4815,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -5167,7 +5167,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 0, - .flags = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -6806,7 +6806,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 120, .type = TYPE_PSYCHIC, .accuracy = 100, - .pp = 15, + .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, @@ -9433,7 +9433,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MULTI_ATTACK] = { .effect = EFFECT_PLACEHOLDER, - .power = 90, + .power = 120, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -9496,7 +9496,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DMG_MINIMIZE, .split = SPLIT_PHYSICAL, }, From c90c146d0d199f0f6d2200757cdad16e6338f9e9 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Fri, 4 Sep 2020 16:34:14 -0300 Subject: [PATCH 02/27] Updated a few more moves' data to Gen. 8 standards --- src/data/battle_moves.h | 8 ++++---- src/data/text/move_names.h | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index a76feb849..38f939227 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -6557,7 +6557,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_DMG_MINIMIZE, + .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -6796,7 +6796,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_DMG_MINIMIZE, .split = SPLIT_PHYSICAL, }, @@ -7048,7 +7048,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 1, + .priority = 2, .flags = 0, .split = SPLIT_STATUS, }, @@ -7949,7 +7949,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_DMG_MINIMIZE, + .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, .argument = MOVE_EFFECT_FEINT, }, diff --git a/src/data/text/move_names.h b/src/data/text/move_names.h index 2b56c0641..a2b6d336d 100644 --- a/src/data/text/move_names.h +++ b/src/data/text/move_names.h @@ -11,7 +11,7 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_ICE_PUNCH] = _("Ice Punch"), [MOVE_THUNDER_PUNCH] = _("ThunderPunch"), [MOVE_SCRATCH] = _("Scratch"), - [MOVE_VICE_GRIP] = _("Vice Grip"), + [MOVE_VICE_GRIP] = _("Vise Grip"), [MOVE_GUILLOTINE] = _("Guillotine"), [MOVE_RAZOR_WIND] = _("Razor Wind"), [MOVE_SWORDS_DANCE] = _("Swords Dance"), @@ -28,7 +28,7 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_MEGA_KICK] = _("Mega Kick"), [MOVE_JUMP_KICK] = _("Jump Kick"), [MOVE_ROLLING_KICK] = _("Rolling Kick"), - [MOVE_SAND_ATTACK] = _("Sand-Attack"), + [MOVE_SAND_ATTACK] = _("Sand Attack"), [MOVE_HEADBUTT] = _("Headbutt"), [MOVE_HORN_ATTACK] = _("Horn Attack"), [MOVE_FURY_ATTACK] = _("Fury Attack"), @@ -108,7 +108,7 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_RECOVER] = _("Recover"), [MOVE_HARDEN] = _("Harden"), [MOVE_MINIMIZE] = _("Minimize"), - [MOVE_SMOKESCREEN] = _("SmokeScreen"), + [MOVE_SMOKESCREEN] = _("Smokescreen"), [MOVE_CONFUSE_RAY] = _("Confuse Ray"), [MOVE_WITHDRAW] = _("Withdraw"), [MOVE_DEFENSE_CURL] = _("Defense Curl"), @@ -120,7 +120,7 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_BIDE] = _("Bide"), [MOVE_METRONOME] = _("Metronome"), [MOVE_MIRROR_MOVE] = _("Mirror Move"), - [MOVE_SELF_DESTRUCT] = _("Selfdestruct"), + [MOVE_SELF_DESTRUCT] = _("SelfDestruct"), [MOVE_EGG_BOMB] = _("Egg Bomb"), [MOVE_LICK] = _("Lick"), [MOVE_SMOG] = _("Smog"), @@ -135,7 +135,7 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_CONSTRICT] = _("Constrict"), [MOVE_AMNESIA] = _("Amnesia"), [MOVE_KINESIS] = _("Kinesis"), - [MOVE_SOFT_BOILED] = _("Softboiled"), + [MOVE_SOFT_BOILED] = _("Soft-Boiled"), [MOVE_HI_JUMP_KICK] = _("Hi Jump Kick"), [MOVE_GLARE] = _("Glare"), [MOVE_DREAM_EATER] = _("Dream Eater"), @@ -358,7 +358,7 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_ROOST] = _("Roost"), [MOVE_GRAVITY] = _("Gravity"), [MOVE_MIRACLE_EYE] = _("Miracle Eye"), - [MOVE_WAKE_UP_SLAP] = _("Wake Up Slap"), + [MOVE_WAKE_UP_SLAP] = _("Wake-Up Slap"), [MOVE_HAMMER_ARM] = _("Hammer Arm"), [MOVE_GYRO_BALL] = _("Gyro Ball"), [MOVE_HEALING_WISH] = _("Healing Wish"), @@ -369,7 +369,7 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_TAILWIND] = _("Tailwind"), [MOVE_ACUPRESSURE] = _("Acupressure"), [MOVE_METAL_BURST] = _("Metal Burst"), - [MOVE_U_TURN] = _("U-Turn"), + [MOVE_U_TURN] = _("U-turn"), [MOVE_CLOSE_COMBAT] = _("Close Combat"), [MOVE_PAYBACK] = _("Payback"), [MOVE_ASSURANCE] = _("Assurance"), @@ -404,7 +404,7 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_AQUA_TAIL] = _("Aqua Tail"), [MOVE_SEED_BOMB] = _("Seed Bomb"), [MOVE_AIR_SLASH] = _("Air Slash"), - [MOVE_X_SCISSOR] = _("X Scissor"), + [MOVE_X_SCISSOR] = _("X-Scissor"), [MOVE_BUG_BUZZ] = _("Bug Buzz"), [MOVE_DRAGON_PULSE] = _("Dragon Pulse"), [MOVE_DRAGON_RUSH] = _("Dragon Rush"), @@ -459,7 +459,7 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_HEAL_ORDER] = _("Heal Order"), [MOVE_HEAD_SMASH] = _("Head Smash"), [MOVE_DOUBLE_HIT] = _("Double Hit"), - [MOVE_ROAR_OF_TIME] = _("Roar Of Time"), + [MOVE_ROAR_OF_TIME] = _("Roar of Time"), [MOVE_SPACIAL_REND] = _("Spacial Rend"), [MOVE_LUNAR_DANCE] = _("Lunar Dance"), [MOVE_CRUSH_GRIP] = _("Crush Grip"), @@ -576,7 +576,7 @@ const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1] = [MOVE_FREEZE_DRY] = _("Freeze-Dry"), [MOVE_DISARMING_VOICE] = _("Disarming Vo"), [MOVE_PARTING_SHOT] = _("Parting Shot"), - [MOVE_TOPSY_TURVY] = _("Topsy Turvy"), + [MOVE_TOPSY_TURVY] = _("Topsy-Turvy"), [MOVE_DRAINING_KISS] = _("DrainingKiss"), [MOVE_CRAFTY_SHIELD] = _("CraftyShield"), [MOVE_FLOWER_SHIELD] = _("FlowerShield"), From 9e6ae57f9fc850e9ab6d2bb67d919e32e5c4f3c8 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Mon, 7 Sep 2020 15:28:15 -0300 Subject: [PATCH 03/27] Updated some more moves' data to Gen. 8 standards --- src/data/battle_moves.h | 46 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 38f939227..b9b745f59 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -257,7 +257,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_ROAR, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, + .accuracy = 0, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -649,7 +649,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_ROAR, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, + .accuracy = 0, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -1433,7 +1433,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_MIMIC, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, + .accuracy = 0, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2372,7 +2372,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_MEAN_LOOK, .power = 0, .type = TYPE_BUG, - .accuracy = 100, + .accuracy = 0, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2974,7 +2974,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_MEAN_LOOK, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, + .accuracy = 0, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -3268,7 +3268,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_VITAL_THROW, .power = 70, .type = TYPE_FIGHTING, - .accuracy = 100, + .accuracy = 0, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -3371,7 +3371,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_DANCE, + .flags = 0, .split = SPLIT_STATUS, }, @@ -3815,7 +3815,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_ROLE_PLAY, .power = 0, .type = TYPE_PSYCHIC, - .accuracy = 100, + .accuracy = 0, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -3941,7 +3941,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_YAWN, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, + .accuracy = 0, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -3997,7 +3997,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_SKILL_SWAP, .power = 0, .type = TYPE_PSYCHIC, - .accuracy = 100, + .accuracy = 0, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -4697,7 +4697,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .effect = EFFECT_MEAN_LOOK, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, + .accuracy = 0, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -4716,7 +4716,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, + .flags = FLAG_SNATCH_AFFECTED | FLAG_SOUND, .split = SPLIT_STATUS, }, @@ -5644,7 +5644,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_BALLISTIC, .split = SPLIT_PHYSICAL, }, @@ -8824,7 +8824,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_IRON_FIST_BOOST, .split = SPLIT_PHYSICAL, }, @@ -8978,7 +8978,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_BALLISTIC, .split = SPLIT_SPECIAL, }, @@ -9174,7 +9174,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -3, - .flags = FLAG_PROTECT_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_BALLISTIC, .split = SPLIT_PHYSICAL, }, @@ -9272,7 +9272,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_STRONG_JAW_BOOST, .split = SPLIT_PHYSICAL, }, @@ -9468,7 +9468,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_IRON_FIST_BOOST, .split = SPLIT_PHYSICAL, }, @@ -9496,7 +9496,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 30, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DMG_MINIMIZE, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DMG_MINIMIZE | FLAG_IRON_FIST_BOOST, .split = SPLIT_PHYSICAL, }, @@ -9538,7 +9538,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_STRONG_JAW_BOOST, .split = SPLIT_PHYSICAL, }, @@ -9594,7 +9594,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_POWDER, .split = SPLIT_STATUS, .argument = TYPE_PSYCHIC, }, @@ -9665,7 +9665,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_STRONG_JAW_BOOST, .split = SPLIT_PHYSICAL, }, @@ -9763,7 +9763,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_BALLISTIC, .split = SPLIT_PHYSICAL, }, From c4d83f0640b3cdae7698bdf14800f61b80a8ef34 Mon Sep 17 00:00:00 2001 From: Aaron B-D Date: Fri, 25 Sep 2020 17:40:38 -0400 Subject: [PATCH 04/27] Fixed 2v1 Multi battles stalling indefinitely at the battle's intro Fixes Issue #492 --- src/battle_controller_opponent.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index f244377aa..78765a386 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -299,7 +299,7 @@ static void sub_805F560(void) TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) - && !(gBattleTypeFlags & BATTLE_TYPE_MULTI) + && (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) || BATTLE_TWO_VS_ONE_OPPONENT) && IsDoubleBattle() && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive From 1635585e685e15bc2ffcbc15a6c1492e042cacf4 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Thu, 15 Oct 2020 02:59:48 -0300 Subject: [PATCH 05/27] Removed duplicate inclusion of battle_config.h ## Description I think the title is self-explanatory, but the header file that is `include/constants/battle_config.h` is included twice unnecessarily. ## **Discord contact info** Lunos#4026 As usual, if there's anything wrong please let me know. --- src/battle_util.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/battle_util.c b/src/battle_util.c index 5cabacb69..c31c2c9d9 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -19,7 +19,6 @@ #include "berry.h" #include "pokedex.h" #include "mail.h" -#include "constants/battle_config.h" #include "field_weather.h" #include "constants/abilities.h" #include "constants/battle_anim.h" From fcc3c6c6ba9b28886cb005113c6c8ffe85b0e6c7 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Thu, 15 Oct 2020 04:21:40 -0300 Subject: [PATCH 06/27] Added a way to quickly switch Rapid Spin's move effect from Gen. 3 to 8 --- data/battle_scripts_1.s | 6 ++++++ include/constants/battle_config.h | 1 + 2 files changed, 7 insertions(+) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 7e1bbd33d..83506a361 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -8,6 +8,7 @@ #include "constants/moves.h" #include "constants/songs.h" #include "constants/game_stat.h" +#include "constants/battle_config.h" .include "asm/macros.inc" .include "asm/macros/battle_script.inc" .include "constants/constants.inc" @@ -3823,6 +3824,7 @@ BattleScript_EffectBatonPass:: goto BattleScript_MoveEnd BattleScript_EffectRapidSpin:: +.if B_SPEED_BUFFING_RAPID_SPIN == GEN_8 attackcanceler accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring @@ -3854,6 +3856,10 @@ BattleScript_EffectRapidSpinEnd:: tryfaintmon BS_TARGET, FALSE, NULL moveendall end +.else + setmoveeffect MOVE_EFFECT_RAPIDSPIN | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN +.endif + goto BattleScript_EffectHit BattleScript_EffectSonicboom:: attackcanceler diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index 73f528b2d..b90606bdd 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -82,6 +82,7 @@ #define B_DISABLE_TURNS GEN_6 // Disable's turns. See Cmd_disablelastusedattack. #define B_INCINERATE_GEMS GEN_6 // In Gen6+, Incinerate can destroy Gems. #define B_MINIMIZE_DMG_ACC GEN_6 // In Gen6+, moves that causes double damage to minimized Pokémon will also skip accuracy checks. +#define B_SPEED_BUFFING_RAPID_SPIN GEN_3 // In Gen8, Rapid Spin raises the user's Speed by 1 stage. // Ability settings #define B_ABILITY_POP_UP GEN_6 // In Gen5+, the Pokémon abilities are displayed in a pop-up, when they activate in battle. From 5257ef70df75246a753e543b82bd776c07400cb6 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Thu, 15 Oct 2020 04:31:44 -0300 Subject: [PATCH 07/27] Oopsie, the Gen. 8 effect should be the default one --- include/constants/battle_config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index b90606bdd..dd2fd4186 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -82,7 +82,7 @@ #define B_DISABLE_TURNS GEN_6 // Disable's turns. See Cmd_disablelastusedattack. #define B_INCINERATE_GEMS GEN_6 // In Gen6+, Incinerate can destroy Gems. #define B_MINIMIZE_DMG_ACC GEN_6 // In Gen6+, moves that causes double damage to minimized Pokémon will also skip accuracy checks. -#define B_SPEED_BUFFING_RAPID_SPIN GEN_3 // In Gen8, Rapid Spin raises the user's Speed by 1 stage. +#define B_SPEED_BUFFING_RAPID_SPIN GEN_8 // In Gen8, Rapid Spin raises the user's Speed by 1 stage. // Ability settings #define B_ABILITY_POP_UP GEN_6 // In Gen5+, the Pokémon abilities are displayed in a pop-up, when they activate in battle. From e4635525e71d9ec1fdf001f82d2ffec8ba02f274 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Thu, 15 Oct 2020 04:52:03 -0300 Subject: [PATCH 08/27] Renamed the HOLD_EFFECT_EV_BOOST label --- include/constants/hold_effects.h | 2 +- src/battle_main.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/constants/hold_effects.h b/include/constants/hold_effects.h index bdf042d63..669d7c0b8 100644 --- a/include/constants/hold_effects.h +++ b/include/constants/hold_effects.h @@ -102,7 +102,7 @@ #define HOLD_EFFECT_GRISEOUS_ORB 96 #define HOLD_EFFECT_GRACIDEA 97 #define HOLD_EFFECT_RESIST_BERRY 98 -#define HOLD_EFFECT_EV_BOOST 99 +#define HOLD_EFFECT_POWER_ITEM 99 #define HOLD_EFFECT_RESTORE_PCT_HP 100 // Gen5 hold effects diff --git a/src/battle_main.c b/src/battle_main.c index 17375b24c..3617978ef 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4242,7 +4242,7 @@ u32 GetBattlerTotalSpeedStat(u8 battlerId) } // item effects - if (GetBattlerHoldEffect(battlerId, FALSE) == HOLD_EFFECT_MACHO_BRACE || GetBattlerHoldEffect(battlerId, FALSE) == HOLD_EFFECT_EV_BOOST) + if (GetBattlerHoldEffect(battlerId, FALSE) == HOLD_EFFECT_MACHO_BRACE || GetBattlerHoldEffect(battlerId, FALSE) == HOLD_EFFECT_POWER_ITEM) speed /= 2; else if (holdEffect == HOLD_EFFECT_IRON_BALL) speed /= 2; From 2578a440a1062e67cf27f7f1bddd48fff140eb90 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Thu, 15 Oct 2020 05:21:28 -0300 Subject: [PATCH 09/27] Implemented the effects of the Power Items For more info: https://bulbapedia.bulbagarden.net/wiki/Power_item --- src/pokemon.c | 61 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 19 deletions(-) diff --git a/src/pokemon.c b/src/pokemon.c index e38befa4a..ed890c7df 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5560,6 +5560,24 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies) u16 heldItem; u8 holdEffect; int i, multiplier; + u8 stat; + u8 bonus; + + heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, 0); + if (heldItem == ITEM_ENIGMA_BERRY) + { + if (gMain.inBattle) + holdEffect = gEnigmaBerries[0].holdEffect; + else + holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; + } + else + { + holdEffect = ItemId_GetHoldEffect(heldItem); + } + + stat = ItemId_GetSecondaryId(heldItem); + bonus = ItemId_GetHoldEffectParam(heldItem); for (i = 0; i < NUM_STATS; i++) { @@ -5580,36 +5598,41 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies) switch (i) { case STAT_HP: - evIncrease = gBaseStats[defeatedSpecies].evYield_HP * multiplier; + if (holdEffect == HOLD_EFFECT_POWER_ITEM && stat == STAT_HP) + evIncrease = (gBaseStats[defeatedSpecies].evYield_HP + bonus) * multiplier; + else + evIncrease = gBaseStats[defeatedSpecies].evYield_HP * multiplier; break; case STAT_ATK: - evIncrease = gBaseStats[defeatedSpecies].evYield_Attack * multiplier; + if (holdEffect == HOLD_EFFECT_POWER_ITEM && stat == STAT_ATK) + evIncrease = (gBaseStats[defeatedSpecies].evYield_Attack + bonus) * multiplier; + else + evIncrease = gBaseStats[defeatedSpecies].evYield_Attack * multiplier; break; case STAT_DEF: - evIncrease = gBaseStats[defeatedSpecies].evYield_Defense * multiplier; + if (holdEffect == HOLD_EFFECT_POWER_ITEM && stat == STAT_DEF) + evIncrease = (gBaseStats[defeatedSpecies].evYield_Defense + bonus) * multiplier; + else + evIncrease = gBaseStats[defeatedSpecies].evYield_Defense * multiplier; break; case STAT_SPEED: - evIncrease = gBaseStats[defeatedSpecies].evYield_Speed * multiplier; + if (holdEffect == HOLD_EFFECT_POWER_ITEM && stat == STAT_SPEED) + evIncrease = (gBaseStats[defeatedSpecies].evYield_Speed + bonus) * multiplier; + else + evIncrease = gBaseStats[defeatedSpecies].evYield_Speed * multiplier; break; case STAT_SPATK: - evIncrease = gBaseStats[defeatedSpecies].evYield_SpAttack * multiplier; + if (holdEffect == HOLD_EFFECT_POWER_ITEM && stat == STAT_SPATK) + evIncrease = (gBaseStats[defeatedSpecies].evYield_SpAttack + bonus) * multiplier; + else + evIncrease = gBaseStats[defeatedSpecies].evYield_SpAttack * multiplier; break; case STAT_SPDEF: - evIncrease = gBaseStats[defeatedSpecies].evYield_SpDefense * multiplier; - break; - } - - heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, 0); - if (heldItem == ITEM_ENIGMA_BERRY) - { - if (gMain.inBattle) - holdEffect = gEnigmaBerries[0].holdEffect; + if (holdEffect == HOLD_EFFECT_POWER_ITEM && stat == STAT_SPDEF) + evIncrease = (gBaseStats[defeatedSpecies].evYield_SpDefense + bonus) * multiplier; else - holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; - } - else - { - holdEffect = ItemId_GetHoldEffect(heldItem); + evIncrease = gBaseStats[defeatedSpecies].evYield_SpDefense * multiplier; + break; } if (holdEffect == HOLD_EFFECT_MACHO_BRACE) From 6c9f8646519dbe177b97416f5663c54838679bd2 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sat, 17 Oct 2020 10:52:44 -0300 Subject: [PATCH 10/27] Tweaking battle_config to accomodate pokemon_config and item_config --- include/constants/battle_config.h | 144 ++++++++++++++++-------------- 1 file changed, 76 insertions(+), 68 deletions(-) diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index dd2fd4186..d392d9362 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -1,61 +1,69 @@ #ifndef GUARD_CONSTANTS_BATTLE_CONFIG_H #define GUARD_CONSTANTS_BATTLE_CONFIG_H -// Species with peculiar battle effects. Remove them if they're properly placed in constant/species.h -#define SPECIES_DIALGA 0 -#define SPECIES_PALKIA 0 -#define SPECIES_GIRATINA 0 -#define SPECIES_CHERRIM 0 -#define SPECIES_ARCEUS 0 -#define SPECIES_SILVALLY 0 -#define SPECIES_GENESECT 0 -#define SPECIES_AEGISLASH 0 -#define SPECIES_AEGISLASH_BLADE 10000 -#define SPECIES_MIMIKYU 0 -#define SPECIES_MIMIKYU_BUSTED 10001 -#define SPECIES_DARMANITAN 0 -#define SPECIES_DARMANITAN_ZEN 10002 -#define SPECIES_MINIOR_CORE 0 -#define SPECIES_MINIOR 10003 -#define SPECIES_WISHIWASHI 0 -#define SPECIES_WISHIWASHI_SCHOOL 10004 -#define SPECIES_ZYGARDE 0 // 50% -#define SPECIES_ZYGARDE_10 10005 // 10 % -#define SPECIES_ZYGARDE_COMPLETE 10006 // 100 % +#define BATTLE_ENGINE -// Items with peculiar battle effects. Remove them if they're properly placed in constant/items.h -#define ITEM_GRISEOUS_ORB 0 -#define ITEM_OCCA_BERRY 204 -#define ITEM_PASSHO_BERRY 205 -#define ITEM_WACAN_BERRY 206 -#define ITEM_RINDO_BERRY 207 -#define ITEM_YACHE_BERRY 208 -#define ITEM_CHOPLE_BERRY 177 -#define ITEM_KEBIA_BERRY 178 -#define ITEM_SHUCA_BERRY 179 -#define ITEM_COBA_BERRY 180 -#define ITEM_PAYAPA_BERRY 181 -#define ITEM_TANGA_BERRY 182 -#define ITEM_CHARTI_BERRY 183 -#define ITEM_KASIB_BERRY 184 -#define ITEM_HABAN_BERRY 185 -#define ITEM_COLBUR_BERRY 186 -#define ITEM_BABIRI_BERRY 187 -#define ITEM_CHILAN_BERRY 188 -#define ITEM_ROSELI_BERRY 189 -#define ITEM_MICLE_BERRY 197 -#define ITEM_CUSTAP_BERRY 199 -#define ITEM_JABOCA_BERRY 200 -#define ITEM_ROWAP_BERRY 201 -#define ITEM_KEE_BERRY 202 -#define ITEM_MARANGA_BERRY 203 +// Species with peculiar battle effects. +#ifndef POKEMON_EXPANSION + #define SPECIES_DIALGA 0 + #define SPECIES_PALKIA 0 + #define SPECIES_GIRATINA 0 + #define SPECIES_CHERRIM 0 + #define SPECIES_ARCEUS 0 + #define SPECIES_SILVALLY 0 + #define SPECIES_GENESECT 0 + #define SPECIES_AEGISLASH 0 + #define SPECIES_AEGISLASH_BLADE 10000 + #define SPECIES_MIMIKYU 0 + #define SPECIES_MIMIKYU_BUSTED 10001 + #define SPECIES_DARMANITAN 0 + #define SPECIES_DARMANITAN_ZEN 10002 + #define SPECIES_MINIOR_CORE 0 + #define SPECIES_MINIOR 10003 + #define SPECIES_WISHIWASHI 0 + #define SPECIES_WISHIWASHI_SCHOOL 10004 + #define SPECIES_ZYGARDE 0 // 50% + #define SPECIES_ZYGARDE_10 10005 // 10 % + #define SPECIES_ZYGARDE_COMPLETE 10006 // 100 % +#endif -#define GEN_3 0 -#define GEN_4 1 -#define GEN_5 2 -#define GEN_6 3 -#define GEN_7 4 -#define GEN_8 5 +// Items with peculiar battle effects. +#ifndef ITEM_EXPANSION + #define ITEM_CHOPLE_BERRY 177 + #define ITEM_KEBIA_BERRY 178 + #define ITEM_SHUCA_BERRY 179 + #define ITEM_COBA_BERRY 180 + #define ITEM_PAYAPA_BERRY 181 + #define ITEM_TANGA_BERRY 182 + #define ITEM_CHARTI_BERRY 183 + #define ITEM_KASIB_BERRY 184 + #define ITEM_HABAN_BERRY 185 + #define ITEM_COLBUR_BERRY 186 + #define ITEM_BABIRI_BERRY 187 + #define ITEM_CHILAN_BERRY 188 + #define ITEM_ROSELI_BERRY 189 + #define ITEM_MICLE_BERRY 197 + #define ITEM_CUSTAP_BERRY 199 + #define ITEM_JABOCA_BERRY 200 + #define ITEM_ROWAP_BERRY 201 + #define ITEM_KEE_BERRY 202 + #define ITEM_MARANGA_BERRY 203 + #define ITEM_OCCA_BERRY 204 + #define ITEM_PASSHO_BERRY 205 + #define ITEM_WACAN_BERRY 206 + #define ITEM_RINDO_BERRY 207 + #define ITEM_YACHE_BERRY 208 + #define ITEM_GRISEOUS_ORB 369 +#endif + +#ifndef GEN_3 + #define GEN_3 0 + #define GEN_4 1 + #define GEN_5 2 + #define GEN_6 3 + #define GEN_7 4 + #define GEN_8 5 +#endif // Calculation settings #define B_CRIT_CHANCE GEN_6 // Chances of a critical hit landing. See CalcCritChanceStage. @@ -107,20 +115,20 @@ #define B_POWDER_GRASS GEN_6 // In Gen6+, Grass type Pokémon are immune to powder and spore moves. // Animation Settings -#define NEW_SWORD_PARTICLE TRUE // update swords dance particle -#define NEW_LEECH_SEED_PARTICLE TRUE //update leech seed's animation particle -#define NEW_HORN_ATTACK_PARTICLE TRUE //update horn attack's horn -#define NEW_LEAF_PARTICLE TRUE // update leaf particle -#define NEW_EMBER_PARTICLES TRUE //updates ember fire particle -#define NEW_MEAN_LOOK_PARTICLE TRUE //update mean look eye -#define NEW_TEETH_PARTICLE TRUE //update bite/crunch teeth particle -#define NEW_HANDS_FEET_PARTICLE TRUE //update chop/kick/punch particles -#define NEW_SPIKES_PARTICLE TRUE //update spikes particle -#define NEW_FLY_BUBBLE_PARTICLE TRUE //update fly 'bubble' particle -#define NEW_CURSE_NAIL_PARTICLE TRUE //updates curse nail -#define NEW_BATON_PASS_BALL_PARTICLE TRUE //update baton pass pokeball sprite -#define NEW_MORNING_SUN_STAR_PARTICLE TRUE //updates morning sun star particles -#define NEW_IMPACT_PALETTE TRUE //updates the basic 'hit' particle -#define NEW_SURF_PARTICLE_PALETTE TRUE //updates the surf wave palette +#define B_NEW_SWORD_PARTICLE TRUE // update swords dance particle +#define B_NEW_LEECH_SEED_PARTICLE TRUE //update leech seed's animation particle +#define B_NEW_HORN_ATTACK_PARTICLE TRUE //update horn attack's horn +#define B_NEW_LEAF_PARTICLE TRUE // update leaf particle +#define B_NEW_EMBER_PARTICLES TRUE //updates ember fire particle +#define B_NEW_MEAN_LOOK_PARTICLE TRUE //update mean look eye +#define B_NEW_TEETH_PARTICLE TRUE //update bite/crunch teeth particle +#define B_NEW_HANDS_FEET_PARTICLE TRUE //update chop/kick/punch particles +#define B_NEW_SPIKES_PARTICLE TRUE //update spikes particle +#define B_NEW_FLY_BUBBLE_PARTICLE TRUE //update fly 'bubble' particle +#define B_NEW_CURSE_NAIL_PARTICLE TRUE //updates curse nail +#define B_NEW_BATON_PASS_BALL_PARTICLE TRUE //update baton pass pokeball sprite +#define B_NEW_MORNING_SUN_STAR_PARTICLE TRUE //updates morning sun star particles +#define B_NEW_IMPACT_PALETTE TRUE //updates the basic 'hit' particle +#define B_NEW_SURF_PARTICLE_PALETTE TRUE //updates the surf wave palette #endif // GUARD_CONSTANTS_BATTLE_CONFIG_H From 815b525855c2e473baca9480464d01f9499cada0 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sat, 17 Oct 2020 11:44:33 -0300 Subject: [PATCH 11/27] Configurable double wild battle chance, surfing double battles and flag for forcing them. --- include/constants/battle_config.h | 6 +++++- include/wild_encounter.h | 1 + src/wild_encounter.c | 27 +++++++++++++++++++++++++-- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index d392d9362..f6077d358 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -106,8 +106,12 @@ #define B_HP_BERRIES GEN_6 // In Gen4+, berries which restore hp activate immediately after hp drops to half. In gen3, the effect occurs at the end of the turn. #define B_BERRIES_INSTANT GEN_6 // In Gen4+, most berries activate on battle start/switch-in if applicable. In gen3, they only activate either at the move end or turn end. +// Flag settings. Replace the 0s with defined flags to be able to toggle the following features using those flags. +#define B_FLAG_INVERSE_BATTLE 0 // If the flag is set, the battle's type effectiveness are inversed. For example, fire is super effective against water. +#define B_FLAG_FORCE_DOUBLE_WILD 0 // If the flag is set, all wild battles will be double battles. + // Other -#define B_FLAG_INVERSE_BATTLE 0 // If this flag is set, the battle's type effectiveness are inversed. For example, fire is super effective against water. 0 disables the feature. +#define B_DOUBLE_WILD_CHANCE 0 // % chance of encountering two Pokémon in a Wild Encounter. #define B_FAST_INTRO TRUE // If set to TRUE, battle intro texts print at the same time as animation of a Pokémon, as opposing to waiting for the animation to end. #define B_SHOW_TARGETS TRUE // If set to TRUE, all available targets, for moves hitting 2 or 3 Pokémon, will be shown before selecting a move. #define B_SLEEP_TURNS GEN_6 // In Gen5+, sleep lasts for 1-3 turns instead of 2-5 turns. diff --git a/include/wild_encounter.h b/include/wild_encounter.h index 55bbaa7dd..200243170 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -40,5 +40,6 @@ void FishingWildEncounter(u8 rod); u16 GetLocalWildMon(bool8 *isWaterMon); u16 GetLocalWaterMon(void); bool8 UpdateRepelCounter(void); +bool8 TryDoDoubleWildBattle(void); #endif // GUARD_WILD_ENCOUNTER_H diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 0ff3e08ab..0f2b44e3e 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -610,7 +610,7 @@ bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavi // try a regular wild land encounter if (TryGenerateWildMon(gWildMonHeaders[headerId].landMonsInfo, WILD_AREA_LAND, WILD_CHECK_REPEL | WILD_CHECK_KEEN_EYE) == TRUE) { - if (USE_BATTLE_DEBUG && !GetSafariZoneFlag() && GetMonsStateToDoubles() == PLAYER_HAS_TWO_USABLE_MONS) + if (TryDoDoubleWildBattle()) { struct Pokemon mon1 = gEnemyParty[0]; TryGenerateWildMon(gWildMonHeaders[headerId].landMonsInfo, WILD_AREA_LAND, WILD_CHECK_KEEN_EYE); @@ -652,7 +652,17 @@ bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavi { if (TryGenerateWildMon(gWildMonHeaders[headerId].waterMonsInfo, WILD_AREA_WATER, WILD_CHECK_REPEL | WILD_CHECK_KEEN_EYE) == TRUE) { - BattleSetup_StartWildBattle(); + if (TryDoDoubleWildBattle()) + { + struct Pokemon mon1 = gEnemyParty[0]; + TryGenerateWildMon(gWildMonHeaders[headerId].waterMonsInfo, WILD_AREA_WATER, WILD_CHECK_KEEN_EYE); + gEnemyParty[1] = mon1; + BattleSetup_StartDoubleWildBattle(); + } + else + { + BattleSetup_StartWildBattle(); + } return TRUE; } @@ -957,3 +967,16 @@ static void ApplyCleanseTagEncounterRateMod(u32 *encRate) if (GetMonData(&gPlayerParty[0], MON_DATA_HELD_ITEM) == ITEM_CLEANSE_TAG) *encRate = *encRate * 2 / 3; } + +bool8 TryDoDoubleWildBattle(void) +{ + if (GetSafariZoneFlag() || GetMonsStateToDoubles() != PLAYER_HAS_TWO_USABLE_MONS) + return FALSE; + else if (B_FLAG_FORCE_DOUBLE_WILD != 0 && FlagGet(B_FLAG_FORCE_DOUBLE_WILD)) + return TRUE; + #if B_DOUBLE_WILD_CHANCE != 0 + else if ((Random() % 100) + 1 < B_DOUBLE_WILD_CHANCE) + return TRUE; + #endif + return FALSE; +} From faca6c4867f363c8c788567a26fa745e8b1b2024 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sat, 17 Oct 2020 14:31:58 -0300 Subject: [PATCH 12/27] Organized interface settings into their own category. --- include/constants/battle_config.h | 12 +++++++----- src/battle_interface.c | 2 +- src/battle_script_commands.c | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index f6077d358..a02e3c3e3 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -93,7 +93,6 @@ #define B_SPEED_BUFFING_RAPID_SPIN GEN_8 // In Gen8, Rapid Spin raises the user's Speed by 1 stage. // Ability settings -#define B_ABILITY_POP_UP GEN_6 // In Gen5+, the Pokémon abilities are displayed in a pop-up, when they activate in battle. #define B_ABILITY_WEATHER GEN_6 // In Gen5+, weather caused by abilities lasts the same amount of turns as induced from a move. Before, they lasted till the battle's end or weather change by a move. #define B_GALE_WINGS GEN_6 // In Gen7+ requires full HP to trigger. #define B_STANCE_CHANGE_FAIL GEN_7 // In Gen7+, Aegislash's form change does not happen, if the Pokémon cannot use a move, because of confusion, paralysis, etc. In gen6, the form change occurs despite not being able to move. @@ -107,13 +106,16 @@ #define B_BERRIES_INSTANT GEN_6 // In Gen4+, most berries activate on battle start/switch-in if applicable. In gen3, they only activate either at the move end or turn end. // Flag settings. Replace the 0s with defined flags to be able to toggle the following features using those flags. -#define B_FLAG_INVERSE_BATTLE 0 // If the flag is set, the battle's type effectiveness are inversed. For example, fire is super effective against water. -#define B_FLAG_FORCE_DOUBLE_WILD 0 // If the flag is set, all wild battles will be double battles. +#define B_FLAG_INVERSE_BATTLE 0 // If the flag is set, the battle's type effectiveness are inversed. For example, fire is super effective against water. +#define B_FLAG_FORCE_DOUBLE_WILD 0 // If the flag is set, all land and surfing wild battles will be double battles. + +// Interface settings +#define B_ABILITY_POP_UP TRUE // In Gen5+, the Pokémon abilities are displayed in a pop-up, when they activate in battle. +#define B_FAST_INTRO TRUE // If set to TRUE, battle intro texts print at the same time as animation of a Pokémon, as opposing to waiting for the animation to end. +#define B_SHOW_TARGETS TRUE // If set to TRUE, all available targets, for moves hitting 2 or 3 Pokémon, will be shown before selecting a move. // Other #define B_DOUBLE_WILD_CHANCE 0 // % chance of encountering two Pokémon in a Wild Encounter. -#define B_FAST_INTRO TRUE // If set to TRUE, battle intro texts print at the same time as animation of a Pokémon, as opposing to waiting for the animation to end. -#define B_SHOW_TARGETS TRUE // If set to TRUE, all available targets, for moves hitting 2 or 3 Pokémon, will be shown before selecting a move. #define B_SLEEP_TURNS GEN_6 // In Gen5+, sleep lasts for 1-3 turns instead of 2-5 turns. #define B_PARALYZE_ELECTRIC GEN_6 // In Gen6+, Electric type Pokémon can't be paralyzed. #define B_POWDER_GRASS GEN_6 // In Gen6+, Grass type Pokémon are immune to powder and spore moves. diff --git a/src/battle_interface.c b/src/battle_interface.c index e7cf26cff..3df20066f 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -2956,7 +2956,7 @@ void CreateAbilityPopUp(u8 battlerId, u32 ability, bool32 isDoubleBattle) const s16 (*coords)[2]; u8 spriteId1, spriteId2, battlerPosition, taskId; - if (B_ABILITY_POP_UP < GEN_5) + if (!B_ABILITY_POP_UP) return; if (!gBattleStruct->activeAbilityPopUps) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 28f38b9e6..18e319925 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4828,14 +4828,14 @@ static void Cmd_moveend(void) BattleScriptPushCursor(); if (gBattleTypeFlags & BATTLE_TYPE_TRAINER || GetBattlerSide(i) == B_SIDE_PLAYER) { - if (B_ABILITY_POP_UP >= GEN_6) + if (B_ABILITY_POP_UP) gBattlescriptCurrInstr = BattleScript_EmergencyExit; else gBattlescriptCurrInstr = BattleScript_EmergencyExitNoPopUp; } else { - if (B_ABILITY_POP_UP >= GEN_6) + if (B_ABILITY_POP_UP) gBattlescriptCurrInstr = BattleScript_EmergencyExitWild; else gBattlescriptCurrInstr = BattleScript_EmergencyExitWildNoPopUp; From b1903af8c110d47bba0bea3e6684b3c60699f3c9 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sat, 17 Oct 2020 23:08:39 -0300 Subject: [PATCH 13/27] Adapting move changes (part 1) --- include/constants/battle_config.h | 2 + include/pokemon.h | 1 + src/data/battle_moves.h | 613 ++++++++++++++++++++++++------ 3 files changed, 509 insertions(+), 107 deletions(-) diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index a02e3c3e3..b5dfc5479 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -80,6 +80,8 @@ #define B_PSYWAVE_DMG GEN_6 // Psywave's damage formula. See Cmd_psywavedamageeffect. // Move settings +#define B_UPDATED_MOVE_VALUES GEN_7 // Power, Accuracy and Power of moves vary between generations. + #define B_FELL_STINGER_STAT_RAISE GEN_6 // In Gen7+, it raises Atk by 3 stages instead of 2 if it causes the target to faint. #define B_SOUND_SUBSTITUTE GEN_6 // In Gen6+, sound moves bypass Substitute. #define B_TOXIC_NEVER_MISS GEN_6 // In Gen6+, if Toxic is used by a Poison type, it will never miss. diff --git a/include/pokemon.h b/include/pokemon.h index d7dd3d9c5..d681b9744 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -204,6 +204,7 @@ struct BaseStats u8 noFlip : 1; }; +#include "constants/battle_config.h" struct BattleMove { u16 effect; diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index b9b745f59..00309b7d0 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -269,7 +269,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLY] = { .effect = EFFECT_SEMI_INVULNERABLE, - .power = 90, + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .power = 90, + #else + .power = 70, + #endif .type = TYPE_FLYING, .accuracy = 95, .pp = 15, @@ -311,10 +315,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_VINE_WHIP] = { .effect = EFFECT_HIT, - .power = 45, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 45, + .pp = 25, + #elif B_UPDATED_MOVE_VALUES >= GEN_4 + .power = 35, + .pp = 15, + #else + .power = 35, + .pp = 10, + #endif .type = TYPE_GRASS, .accuracy = 100, - .pp = 25, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -367,10 +379,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_JUMP_KICK] = { .effect = EFFECT_RECOIL_IF_MISS, - .power = 100, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 100, + .pp = 10, + #elif B_UPDATED_MOVE_VALUES == GEN_4 + .power = 85, + .pp = 25, + #else + .power = 70, + .pp = 25, + #endif .type = TYPE_FIGHTING, .accuracy = 95, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -465,9 +485,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TACKLE] = { .effect = EFFECT_HIT, - .power = 40, + #if B_UPDATED_MOVE_VALUES >= GEN_7 + .power = 40, + .accuracy = 100, + #elif B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 50, + .accuracy = 100, + #else + .power = 35, + .accuracy = 95, + #endif .type = TYPE_NORMAL, - .accuracy = 100, .pp = 35, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -521,10 +549,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THRASH] = { .effect = EFFECT_RAMPAGE, - .power = 120, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 120, + .pp = 10, + #else + .power = 90, + .pp = 20, + #endif .type = TYPE_NORMAL, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_RANDOM, .priority = 0, @@ -591,9 +624,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PIN_MISSILE] = { .effect = EFFECT_MULTI_HIT, - .power = 25, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 25, + .accuracy = 95, + #else + .power = 14, + .accuracy = 85, + #endif .type = TYPE_BUG, - .accuracy = 95, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -745,7 +783,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLAMETHROWER] = { .effect = EFFECT_BURN_HIT, - .power = 90, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 90, + #else + .power = 95, + #endif .type = TYPE_FIRE, .accuracy = 100, .pp = 15, @@ -787,7 +829,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HYDRO_PUMP] = { .effect = EFFECT_HIT, - .power = 110, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 110, + #else + .power = 120, + #endif .type = TYPE_WATER, .accuracy = 80, .pp = 5, @@ -801,7 +847,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SURF] = { .effect = EFFECT_HIT, - .power = 90, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 90, + #else + .power = 95, + #endif .type = TYPE_WATER, .accuracy = 100, .pp = 15, @@ -815,7 +865,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ICE_BEAM] = { .effect = EFFECT_FREEZE_HIT, - .power = 90, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 90, + #else + .power = 95, + #endif .type = TYPE_ICE, .accuracy = 100, .pp = 10, @@ -829,7 +883,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BLIZZARD] = { .effect = EFFECT_FREEZE_HIT, - .power = 110, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 110, + #else + .power = 120, + #endif .type = TYPE_ICE, .accuracy = 70, .pp = 5, @@ -1000,7 +1058,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 20, .type = TYPE_GRASS, .accuracy = 100, - .pp = 25, + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .pp = 25, + #else + .pp = 20, + #endif .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -1014,7 +1076,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 40, .type = TYPE_GRASS, .accuracy = 100, - .pp = 15, + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .pp = 15, + #else + .pp = 10, + #endif .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -1123,10 +1189,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PETAL_DANCE] = { .effect = EFFECT_RAMPAGE, - .power = 120, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 120, + .pp = 10, + #elif B_UPDATED_MOVE_VALUES == GEN_4 + .power = 90, + .pp = 20, + #else + .power = 70, + .pp = 20, + #endif .type = TYPE_GRASS, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_RANDOM, .priority = 0, @@ -1165,9 +1239,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FIRE_SPIN] = { .effect = EFFECT_TRAP, - .power = 35, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 35, + .accuracy = 85, + #else + .power = 15, + .accuracy = 70, + #endif .type = TYPE_FIRE, - .accuracy = 85, .pp = 15, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -1193,7 +1272,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THUNDERBOLT] = { .effect = EFFECT_PARALYZE_HIT, - .power = 90, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 90, + #else + .power = 95, + #endif .type = TYPE_ELECTRIC, .accuracy = 100, .pp = 15, @@ -1221,7 +1304,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THUNDER] = { .effect = EFFECT_THUNDER, - .power = 110, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 110, + #else + .power = 120, + #endif .type = TYPE_ELECTRIC, .accuracy = 70, .pp = 10, @@ -1277,7 +1364,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DIG] = { .effect = EFFECT_SEMI_INVULNERABLE, - .power = 80, + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .power = 80, + #else + .power = 60, + #endif .type = TYPE_GROUND, .accuracy = 100, .pp = 10, @@ -1711,7 +1802,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LICK] = { .effect = EFFECT_PARALYZE_HIT, - .power = 30, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 30, + #else + .power = 20, + #endif .type = TYPE_GHOST, .accuracy = 100, .pp = 30, @@ -1725,7 +1820,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SMOG] = { .effect = EFFECT_POISON_HIT, - .power = 30, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 30, + #else + .power = 20, + #endif .type = TYPE_POISON, .accuracy = 70, .pp = 20, @@ -1767,7 +1866,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FIRE_BLAST] = { .effect = EFFECT_BURN_HIT, - .power = 110, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 120, + #else + .power = 110, + #endif .type = TYPE_FIRE, .accuracy = 85, .pp = 5, @@ -1823,10 +1926,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SKULL_BASH] = { .effect = EFFECT_SKULL_BASH, - .power = 130, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 130, + .pp = 10, + #else + .power = 100, + .pp = 15, + #endif .type = TYPE_NORMAL, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -1907,10 +2015,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HI_JUMP_KICK] = { .effect = EFFECT_RECOIL_IF_MISS, - .power = 130, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 130, + .pp = 10, + #elif B_UPDATED_MOVE_VALUES == GEN_4 + .power = 100, + .pp = 20, + #else + .power = 85, + .pp = 20, + #endif .type = TYPE_FIGHTING, .accuracy = 90, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -1977,10 +2093,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LEECH_LIFE] = { .effect = EFFECT_ABSORB, - .power = 80, + #if B_UPDATED_MOVE_VALUES >= GEN_7 + .power = 80, + .pp = 10, + #else + .power = 20, + .pp = 15, + #endif .type = TYPE_BUG, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -2034,7 +2155,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BUBBLE] = { .effect = EFFECT_SPEED_DOWN_HIT, - .power = 40, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 40, + #else + .power = 20, + #endif .type = TYPE_WATER, .accuracy = 100, .pp = 30, @@ -2132,9 +2257,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CRABHAMMER] = { .effect = EFFECT_HIT, - .power = 100, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 100, + .accuracy = 90, + #elif B_UPDATED_MOVE_VALUES == GEN_5 + .power = 90, + .accuracy = 90, + #else + .power = 90, + .accuracy = 85, + #endif .type = TYPE_WATER, - .accuracy = 90, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2426,7 +2559,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SNORE] = { .effect = EFFECT_SNORE, - .power = 50, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 50, + #else + .power = 40, + #endif .type = TYPE_NORMAL, .accuracy = 100, .pp = 15, @@ -2692,7 +2829,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ZAP_CANNON] = { .effect = EFFECT_PARALYZE_HIT, - .power = 120, + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .power = 120, + #else + .power = 100, + #endif .type = TYPE_ELECTRIC, .accuracy = 50, .pp = 5, @@ -2804,10 +2945,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_OUTRAGE] = { .effect = EFFECT_RAMPAGE, - .power = 120, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 120, + .pp = 10, + #elif B_UPDATED_MOVE_VALUES == GEN_4 + .power = 120, + .pp = 15, + #else + .power = 90, + .pp = 15, + #endif .type = TYPE_DRAGON, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_RANDOM, .priority = 0, @@ -2832,10 +2981,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_GIGA_DRAIN] = { .effect = EFFECT_ABSORB, - .power = 75, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 75, + .pp = 10, + #elif B_UPDATED_MOVE_VALUES == GEN_4 + .power = 60, + .pp = 10, + #else + .power = 60, + .pp = 5, + #endif .type = TYPE_GRASS, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -2944,7 +3101,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FURY_CUTTER] = { .effect = EFFECT_FURY_CUTTER, - .power = 40, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 40, + #elif B_UPDATED_MOVE_VALUES == GEN_5 + .power = 20, + #else + .power = 10, + #endif .type = TYPE_BUG, .accuracy = 95, .pp = 20, @@ -3210,7 +3373,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_RAPID_SPIN] = { .effect = EFFECT_RAPID_SPIN, - .power = 50, + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .power = 50, + #else + .power = 20, + #endif .type = TYPE_NORMAL, .accuracy = 100, .pp = 40, @@ -3476,10 +3643,20 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FUTURE_SIGHT] = { .effect = EFFECT_FUTURE_SIGHT, - .power = 120, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 120, + .accuracy = 100, + .pp = 10, + #elif B_UPDATED_MOVE_VALUES == GEN_5 + .power = 100, + .accuracy = 100, + .pp = 10, + #else + .power = 80, + .accuracy = 90, + .pp = 15, + #endif .type = TYPE_PSYCHIC, - .accuracy = 100, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -3490,7 +3667,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ROCK_SMASH] = { .effect = EFFECT_DEFENSE_DOWN_HIT, - .power = 40, + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .power = 40, + #else + .power = 20, + #endif .type = TYPE_FIGHTING, .accuracy = 100, .pp = 15, @@ -3504,9 +3685,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WHIRLPOOL] = { .effect = EFFECT_TRAP, - .power = 35, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 35, + .accuracy = 85, + #else + .power = 15, + .accuracy = 70, + #endif .type = TYPE_WATER, - .accuracy = 85, .pp = 15, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -3518,7 +3704,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BEAT_UP] = { .effect = EFFECT_BEAT_UP, - .power = 10, + #if B_BEAT_UP_DMG >= GEN_5 + .power = 1, + #else + .power = 10, + #endif .type = TYPE_DARK, .accuracy = 100, .pp = 10, @@ -3546,7 +3736,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_UPROAR] = { .effect = EFFECT_UPROAR, - .power = 90, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 90, + #else + .power = 50, + #endif .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -3574,7 +3768,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SPIT_UP] = { .effect = EFFECT_SPIT_UP, - .power = 100, + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .power = 1, + #else + .power = 100, + #endif .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -3602,7 +3800,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HEAT_WAVE] = { .effect = EFFECT_BURN_HIT, - .power = 95, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 95, + #else + .power = 100, + #endif .type = TYPE_FIRE, .accuracy = 90, .pp = 10, @@ -3714,7 +3916,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SMELLING_SALT] = { .effect = EFFECT_SMELLINGSALT, - .power = 70, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 70, + #else + .power = 60, + #endif .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -3953,7 +4159,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_KNOCK_OFF] = { .effect = EFFECT_KNOCK_OFF, - .power = 65, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 65, + #else + .power = 20, + #endif .type = TYPE_DARK, .accuracy = 100, .pp = 20, @@ -4079,7 +4289,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DIVE] = { .effect = EFFECT_SEMI_INVULNERABLE, - .power = 80, + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .power = 80, + #else + .power = 60, + #endif .type = TYPE_WATER, .accuracy = 100, .pp = 10, @@ -4331,7 +4545,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_METEOR_MASH] = { .effect = EFFECT_ATTACK_UP_HIT, - .power = 90, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 90, + .accuracy = 90, + #else + .power = 100, + .accuracy = 85, + #endif .type = TYPE_STEEL, .accuracy = 90, .pp = 10, @@ -4401,7 +4621,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_AIR_CUTTER] = { .effect = EFFECT_HIT, - .power = 60, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 60, + #else + .power = 55, + #endif .type = TYPE_FLYING, .accuracy = 95, .pp = 25, @@ -4415,7 +4639,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_OVERHEAT] = { .effect = EFFECT_OVERHEAT, - .power = 130, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 130, + #else + .power = 140, + #endif .type = TYPE_FIRE, .accuracy = 90, .pp = 5, @@ -4443,10 +4671,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ROCK_TOMB] = { .effect = EFFECT_SPEED_DOWN_HIT, - .power = 60, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 60, + .accuracy = 95, + .pp = 15, + #else + .power = 50, + .accuracy = 80, + .pp = 10, + #endif .type = TYPE_ROCK, - .accuracy = 95, - .pp = 15, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -4597,9 +4831,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SAND_TOMB] = { .effect = EFFECT_TRAP, - .power = 35, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 35, + .accuracy = 85, + #else + .power = 15, + .accuracy = 70, + #endif .type = TYPE_GROUND, - .accuracy = 85, .pp = 15, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -4625,7 +4864,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MUDDY_WATER] = { .effect = EFFECT_ACCURACY_DOWN_HIT, - .power = 90, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 90, + #else + .power = 95, + #endif .type = TYPE_WATER, .accuracy = 85, .pp = 10, @@ -4639,7 +4882,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BULLET_SEED] = { .effect = EFFECT_MULTI_HIT, - .power = 25, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 25, + #else + .power = 10, + #endif .type = TYPE_GRASS, .accuracy = 100, .pp = 30, @@ -4667,7 +4914,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ICICLE_SPEAR] = { .effect = EFFECT_MULTI_HIT, - .power = 25, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 25, + #else + .power = 10, + #endif .type = TYPE_ICE, .accuracy = 100, .pp = 30, @@ -4808,10 +5059,18 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_COVET] = { .effect = EFFECT_THIEF, - .power = 60, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 60, + .pp = 25, + #elif B_UPDATED_MOVE_VALUES == GEN_5 + .power = 60, + .pp = 40, + #else + .power = 40, + .pp = 40, + #endif .type = TYPE_NORMAL, .accuracy = 100, - .pp = 25, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -4879,7 +5138,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LEAF_BLADE] = { .effect = EFFECT_HIT, - .power = 90, + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .power = 90, + #else + .power = 70, + #endif .type = TYPE_GRASS, .accuracy = 100, .pp = 15, @@ -4949,10 +5212,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DOOM_DESIRE] = { .effect = EFFECT_FUTURE_SIGHT, - .power = 140, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 140, + .pp = 100, + #else + .power = 120, + .pp = 85, + #endif .type = TYPE_STEEL, .accuracy = 100, - .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -5019,7 +5287,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WAKE_UP_SLAP] = { .effect = EFFECT_WAKE_UP_SLAP, - .power = 70, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 70, + #else + .power = 60, + #endif .type = TYPE_FIGHTING, .accuracy = 100, .pp = 10, @@ -5104,7 +5376,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FEINT] = { .effect = EFFECT_FEINT, - .power = 30, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 30, + #else + .power = 50, + #endif .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -5216,7 +5492,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ASSURANCE] = { .effect = EFFECT_ASSURANCE, - .power = 60, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 60, + #else + .power = 50, + #endif .type = TYPE_DARK, .accuracy = 100, .pp = 10, @@ -5426,7 +5706,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LAST_RESORT] = { .effect = EFFECT_LAST_RESORT, - .power = 140, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 140, + #else + .power = 130, + #endif .type = TYPE_NORMAL, .accuracy = 100, .pp = 5, @@ -5454,7 +5738,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SUCKER_PUNCH] = { .effect = EFFECT_SUCKER_PUNCH, - .power = 70, + #if B_UPDATED_MOVE_VALUES >= GEN_7 + .power = 70, + #else + .power = 80, + #endif .type = TYPE_DARK, .accuracy = 100, .pp = 5, @@ -5553,7 +5841,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_AURA_SPHERE] = { .effect = EFFECT_HIT, - .power = 80, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 80, + #else + .power = 90, + #endif .type = TYPE_FIGHTING, .accuracy = 0, .pp = 20, @@ -5693,7 +5985,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DRAGON_PULSE] = { .effect = EFFECT_HIT, - .power = 85, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 85, + #else + .power = 90, + #endif .type = TYPE_DRAGON, .accuracy = 100, .pp = 10, @@ -5721,7 +6017,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_POWER_GEM] = { .effect = EFFECT_HIT, - .power = 80, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 80, + #else + .power = 70, + #endif .type = TYPE_ROCK, .accuracy = 100, .pp = 20, @@ -5735,10 +6035,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DRAIN_PUNCH] = { .effect = EFFECT_ABSORB, - .power = 75, + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .power = 75, + .pp = 10, + #else + .power = 60, + .pp = 5, + #endif .type = TYPE_FIGHTING, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -5777,7 +6082,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ENERGY_BALL] = { .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, - .power = 90, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 90, + #else + .power = 80, + #endif .type = TYPE_GRASS, .accuracy = 100, .pp = 10, @@ -6088,7 +6397,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DRACO_METEOR] = { .effect = EFFECT_OVERHEAT, - .power = 130, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 130, + #else + .power = 140, + #endif .type = TYPE_DRAGON, .accuracy = 90, .pp = 5, @@ -6130,7 +6443,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LEAF_STORM] = { .effect = EFFECT_OVERHEAT, - .power = 130, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 130, + #else + .power = 140, + #endif .type = TYPE_GRASS, .accuracy = 90, .pp = 5, @@ -6284,7 +6601,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CHATTER] = { .effect = EFFECT_CONFUSE_HIT, - .power = 65, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 65, + #else + .power = 60, + #endif .type = TYPE_FLYING, .accuracy = 100, .pp = 20, @@ -6494,9 +6815,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MAGMA_STORM] = { .effect = EFFECT_TRAP, - .power = 100, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 100, + .accuracy = 75, + #elif B_UPDATED_MOVE_VALUES == GEN_5 + .power = 120, + .accuracy = 75, + #else + .power = 120, + .accuracy = 70, + #endif .type = TYPE_FIRE, - .accuracy = 75, .pp = 5, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -6733,7 +7062,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STORM_THROW] = { .effect = EFFECT_ALWAYS_CRIT, - .power = 60, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 60, + #else + .power = 40, + #endif .type = TYPE_FIGHTING, .accuracy = 100, .pp = 10, @@ -6803,10 +7136,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SYNCHRONOISE] = { .effect = EFFECT_SYNCHRONOISE, - .power = 120, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 120, + .pp = 10, + #else + .power = 70, + .pp = 15, + #endif .type = TYPE_PSYCHIC, .accuracy = 100, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, @@ -6873,7 +7211,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LOW_SWEEP] = { .effect = EFFECT_SPEED_DOWN_HIT, - .power = 65, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 65, + #else + .power = 60, + #endif .type = TYPE_FIGHTING, .accuracy = 100, .pp = 20, @@ -7098,7 +7440,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HEX] = { .effect = EFFECT_HEX, - .power = 65, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 65, + #else + .power = 50, + #endif .type = TYPE_GHOST, .accuracy = 100, .pp = 10, @@ -7154,6 +7500,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_INCINERATE] = { .effect = EFFECT_INCINERATE, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 60, + #else + .power = 30, + #endif .power = 60, .type = TYPE_FIRE, .accuracy = 100, @@ -7266,7 +7617,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WATER_PLEDGE] = { .effect = EFFECT_PLEDGE, - .power = 80, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 80, + #else + .power = 50, + #endif .type = TYPE_WATER, .accuracy = 100, .pp = 10, @@ -7280,7 +7635,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FIRE_PLEDGE] = { .effect = EFFECT_PLEDGE, - .power = 80, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 80, + #else + .power = 50, + #endif .type = TYPE_FIRE, .accuracy = 100, .pp = 10, @@ -7294,7 +7653,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_GRASS_PLEDGE] = { .effect = EFFECT_PLEDGE, - .power = 80, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 80, + #else + .power = 50, + #endif .type = TYPE_GRASS, .accuracy = 100, .pp = 10, @@ -7322,7 +7685,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STRUGGLE_BUG] = { .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, - .power = 50, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 50, + #else + .power = 30, + #endif .type = TYPE_BUG, .accuracy = 100, .pp = 20, @@ -7350,7 +7717,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FROST_BREATH] = { .effect = EFFECT_ALWAYS_CRIT, - .power = 60, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 60, + #else + .power = 40, + #endif .type = TYPE_ICE, .accuracy = 90, .pp = 10, @@ -7602,7 +7973,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HURRICANE] = { .effect = EFFECT_HURRICANE, - .power = 110, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 110, + #else + .power = 120, + #endif .type = TYPE_FLYING, .accuracy = 70, .pp = 10, @@ -7658,7 +8033,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TECHNO_BLAST] = { .effect = EFFECT_TECHNO_BLAST, - .power = 120, + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 120, + #else + .power = 85, + #endif .type = TYPE_NORMAL, .accuracy = 100, .pp = 5, @@ -7856,7 +8235,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLYING_PRESS] = { .effect = EFFECT_TWO_TYPED_MOVE, - .power = 100, + #if B_UPDATED_MOVE_VALUES >= GEN_7 + .power = 100, + #else + .power = 80, + #endif .type = TYPE_FIGHTING, .accuracy = 95, .pp = 10, @@ -7928,7 +8311,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FELL_STINGER] = { .effect = EFFECT_FELL_STINGER, - .power = 50, + #if B_UPDATED_MOVE_VALUES >= GEN_7 + .power = 50, + #else + .power = 30, + #endif .type = TYPE_BUG, .accuracy = 100, .pp = 25, @@ -8000,7 +8387,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PARABOLIC_CHARGE] = { .effect = EFFECT_ABSORB, - .power = 65, + #if B_UPDATED_MOVE_VALUES >= GEN_7 + .power = 65, + #else + .power = 50, + #endif .type = TYPE_ELECTRIC, .accuracy = 100, .pp = 20, @@ -8353,7 +8744,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MYSTICAL_FIRE] = { .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, - .power = 75, + #if B_UPDATED_MOVE_VALUES >= GEN_7 + .power = 75, + #else + .power = 65, + #endif .type = TYPE_FIRE, .accuracy = 100, .pp = 10, @@ -9433,7 +9828,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MULTI_ATTACK] = { .effect = EFFECT_PLACEHOLDER, - .power = 120, + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .power = 120, + #else + .power = 90, + #endif .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, From 09401f0620d72cfe1d44091735912ede2e4ce494 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sat, 17 Oct 2020 23:27:55 -0300 Subject: [PATCH 14/27] Fixed repeated fields. --- src/data/battle_moves.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 00309b7d0..1f3128aee 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -4553,7 +4553,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .accuracy = 85, #endif .type = TYPE_STEEL, - .accuracy = 90, .pp = 10, .secondaryEffectChance = 20, .target = MOVE_TARGET_SELECTED, @@ -7505,7 +7504,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = #else .power = 30, #endif - .power = 60, .type = TYPE_FIRE, .accuracy = 100, .pp = 15, From 2ba2751049c4e0814013c24b832a1d203cf08e5c Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 18 Oct 2020 10:26:07 -0300 Subject: [PATCH 15/27] Moved if-else to the top. --- src/data/battle_moves.h | 180 ++++++++++++++++++++-------------------- 1 file changed, 90 insertions(+), 90 deletions(-) diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 1f3128aee..7a720eaa8 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -268,12 +268,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLY] = { - .effect = EFFECT_SEMI_INVULNERABLE, #if B_UPDATED_MOVE_VALUES >= GEN_4 .power = 90, #else .power = 70, #endif + .effect = EFFECT_SEMI_INVULNERABLE, .type = TYPE_FLYING, .accuracy = 95, .pp = 15, @@ -314,7 +314,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_VINE_WHIP] = { - .effect = EFFECT_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 45, .pp = 25, @@ -325,6 +324,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 35, .pp = 10, #endif + .effect = EFFECT_HIT, .type = TYPE_GRASS, .accuracy = 100, .secondaryEffectChance = 0, @@ -378,7 +378,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_JUMP_KICK] = { - .effect = EFFECT_RECOIL_IF_MISS, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 100, .pp = 10, @@ -389,6 +388,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 70, .pp = 25, #endif + .effect = EFFECT_RECOIL_IF_MISS, .type = TYPE_FIGHTING, .accuracy = 95, .secondaryEffectChance = 0, @@ -484,7 +484,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TACKLE] = { - .effect = EFFECT_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_7 .power = 40, .accuracy = 100, @@ -495,6 +494,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 35, .accuracy = 95, #endif + .effect = EFFECT_HIT, .type = TYPE_NORMAL, .pp = 35, .secondaryEffectChance = 0, @@ -548,7 +548,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THRASH] = { - .effect = EFFECT_RAMPAGE, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 120, .pp = 10, @@ -556,6 +555,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 90, .pp = 20, #endif + .effect = EFFECT_RAMPAGE, .type = TYPE_NORMAL, .accuracy = 100, .secondaryEffectChance = 100, @@ -623,7 +623,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PIN_MISSILE] = { - .effect = EFFECT_MULTI_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 25, .accuracy = 95, @@ -631,6 +630,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 14, .accuracy = 85, #endif + .effect = EFFECT_MULTI_HIT, .type = TYPE_BUG, .pp = 20, .secondaryEffectChance = 0, @@ -782,12 +782,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLAMETHROWER] = { - .effect = EFFECT_BURN_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 90, #else .power = 95, #endif + .effect = EFFECT_BURN_HIT, .type = TYPE_FIRE, .accuracy = 100, .pp = 15, @@ -828,12 +828,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HYDRO_PUMP] = { - .effect = EFFECT_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 110, #else .power = 120, #endif + .effect = EFFECT_HIT, .type = TYPE_WATER, .accuracy = 80, .pp = 5, @@ -846,12 +846,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SURF] = { - .effect = EFFECT_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 90, #else .power = 95, #endif + .effect = EFFECT_HIT, .type = TYPE_WATER, .accuracy = 100, .pp = 15, @@ -864,12 +864,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ICE_BEAM] = { - .effect = EFFECT_FREEZE_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 90, #else .power = 95, #endif + .effect = EFFECT_FREEZE_HIT, .type = TYPE_ICE, .accuracy = 100, .pp = 10, @@ -882,12 +882,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BLIZZARD] = { - .effect = EFFECT_FREEZE_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 110, #else .power = 120, #endif + .effect = EFFECT_FREEZE_HIT, .type = TYPE_ICE, .accuracy = 70, .pp = 5, @@ -1054,15 +1054,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ABSORB] = { - .effect = EFFECT_ABSORB, - .power = 20, - .type = TYPE_GRASS, - .accuracy = 100, #if B_UPDATED_MOVE_VALUES >= GEN_4 .pp = 25, #else .pp = 20, #endif + .effect = EFFECT_ABSORB, + .power = 20, + .type = TYPE_GRASS, + .accuracy = 100, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -1072,15 +1072,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MEGA_DRAIN] = { - .effect = EFFECT_ABSORB, - .power = 40, - .type = TYPE_GRASS, - .accuracy = 100, #if B_UPDATED_MOVE_VALUES >= GEN_4 .pp = 15, #else .pp = 10, #endif + .effect = EFFECT_ABSORB, + .power = 40, + .type = TYPE_GRASS, + .accuracy = 100, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -1188,7 +1188,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PETAL_DANCE] = { - .effect = EFFECT_RAMPAGE, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 120, .pp = 10, @@ -1199,6 +1198,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 70, .pp = 20, #endif + .effect = EFFECT_RAMPAGE, .type = TYPE_GRASS, .accuracy = 100, .secondaryEffectChance = 100, @@ -1238,7 +1238,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FIRE_SPIN] = { - .effect = EFFECT_TRAP, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 35, .accuracy = 85, @@ -1246,6 +1245,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 15, .accuracy = 70, #endif + .effect = EFFECT_TRAP, .type = TYPE_FIRE, .pp = 15, .secondaryEffectChance = 100, @@ -1271,12 +1271,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THUNDERBOLT] = { - .effect = EFFECT_PARALYZE_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 90, #else .power = 95, #endif + .effect = EFFECT_PARALYZE_HIT, .type = TYPE_ELECTRIC, .accuracy = 100, .pp = 15, @@ -1303,12 +1303,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THUNDER] = { - .effect = EFFECT_THUNDER, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 110, #else .power = 120, #endif + .effect = EFFECT_THUNDER, .type = TYPE_ELECTRIC, .accuracy = 70, .pp = 10, @@ -1363,12 +1363,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DIG] = { - .effect = EFFECT_SEMI_INVULNERABLE, #if B_UPDATED_MOVE_VALUES >= GEN_4 .power = 80, #else .power = 60, #endif + .effect = EFFECT_SEMI_INVULNERABLE, .type = TYPE_GROUND, .accuracy = 100, .pp = 10, @@ -1801,12 +1801,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LICK] = { - .effect = EFFECT_PARALYZE_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 30, #else .power = 20, #endif + .effect = EFFECT_PARALYZE_HIT, .type = TYPE_GHOST, .accuracy = 100, .pp = 30, @@ -1819,12 +1819,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SMOG] = { - .effect = EFFECT_POISON_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 30, #else .power = 20, #endif + .effect = EFFECT_POISON_HIT, .type = TYPE_POISON, .accuracy = 70, .pp = 20, @@ -1865,12 +1865,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FIRE_BLAST] = { - .effect = EFFECT_BURN_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 120, #else .power = 110, #endif + .effect = EFFECT_BURN_HIT, .type = TYPE_FIRE, .accuracy = 85, .pp = 5, @@ -1925,7 +1925,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SKULL_BASH] = { - .effect = EFFECT_SKULL_BASH, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 130, .pp = 10, @@ -1933,6 +1932,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 100, .pp = 15, #endif + .effect = EFFECT_SKULL_BASH, .type = TYPE_NORMAL, .accuracy = 100, .secondaryEffectChance = 0, @@ -2014,7 +2014,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HI_JUMP_KICK] = { - .effect = EFFECT_RECOIL_IF_MISS, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 130, .pp = 10, @@ -2025,6 +2024,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 85, .pp = 20, #endif + .effect = EFFECT_RECOIL_IF_MISS, .type = TYPE_FIGHTING, .accuracy = 90, .secondaryEffectChance = 0, @@ -2092,7 +2092,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LEECH_LIFE] = { - .effect = EFFECT_ABSORB, #if B_UPDATED_MOVE_VALUES >= GEN_7 .power = 80, .pp = 10, @@ -2100,6 +2099,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 20, .pp = 15, #endif + .effect = EFFECT_ABSORB, .type = TYPE_BUG, .accuracy = 100, .secondaryEffectChance = 0, @@ -2154,12 +2154,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BUBBLE] = { - .effect = EFFECT_SPEED_DOWN_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 40, #else .power = 20, #endif + .effect = EFFECT_SPEED_DOWN_HIT, .type = TYPE_WATER, .accuracy = 100, .pp = 30, @@ -2256,7 +2256,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CRABHAMMER] = { - .effect = EFFECT_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 100, .accuracy = 90, @@ -2267,6 +2266,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 90, .accuracy = 85, #endif + .effect = EFFECT_HIT, .type = TYPE_WATER, .pp = 10, .secondaryEffectChance = 0, @@ -2558,12 +2558,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SNORE] = { - .effect = EFFECT_SNORE, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 50, #else .power = 40, #endif + .effect = EFFECT_SNORE, .type = TYPE_NORMAL, .accuracy = 100, .pp = 15, @@ -2828,12 +2828,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ZAP_CANNON] = { - .effect = EFFECT_PARALYZE_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_4 .power = 120, #else .power = 100, #endif + .effect = EFFECT_PARALYZE_HIT, .type = TYPE_ELECTRIC, .accuracy = 50, .pp = 5, @@ -2944,7 +2944,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_OUTRAGE] = { - .effect = EFFECT_RAMPAGE, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 120, .pp = 10, @@ -2955,6 +2954,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 90, .pp = 15, #endif + .effect = EFFECT_RAMPAGE, .type = TYPE_DRAGON, .accuracy = 100, .secondaryEffectChance = 100, @@ -2980,7 +2980,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_GIGA_DRAIN] = { - .effect = EFFECT_ABSORB, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 75, .pp = 10, @@ -2991,6 +2990,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 60, .pp = 5, #endif + .effect = EFFECT_ABSORB, .type = TYPE_GRASS, .accuracy = 100, .secondaryEffectChance = 0, @@ -3100,7 +3100,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FURY_CUTTER] = { - .effect = EFFECT_FURY_CUTTER, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 40, #elif B_UPDATED_MOVE_VALUES == GEN_5 @@ -3108,6 +3107,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = #else .power = 10, #endif + .effect = EFFECT_FURY_CUTTER, .type = TYPE_BUG, .accuracy = 95, .pp = 20, @@ -3372,12 +3372,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_RAPID_SPIN] = { - .effect = EFFECT_RAPID_SPIN, #if B_UPDATED_MOVE_VALUES >= GEN_4 .power = 50, #else .power = 20, #endif + .effect = EFFECT_RAPID_SPIN, .type = TYPE_NORMAL, .accuracy = 100, .pp = 40, @@ -3642,7 +3642,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FUTURE_SIGHT] = { - .effect = EFFECT_FUTURE_SIGHT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 120, .accuracy = 100, @@ -3656,6 +3655,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .accuracy = 90, .pp = 15, #endif + .effect = EFFECT_FUTURE_SIGHT, .type = TYPE_PSYCHIC, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -3666,12 +3666,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ROCK_SMASH] = { - .effect = EFFECT_DEFENSE_DOWN_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_4 .power = 40, #else .power = 20, #endif + .effect = EFFECT_DEFENSE_DOWN_HIT, .type = TYPE_FIGHTING, .accuracy = 100, .pp = 15, @@ -3684,7 +3684,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WHIRLPOOL] = { - .effect = EFFECT_TRAP, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 35, .accuracy = 85, @@ -3692,6 +3691,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 15, .accuracy = 70, #endif + .effect = EFFECT_TRAP, .type = TYPE_WATER, .pp = 15, .secondaryEffectChance = 100, @@ -3735,12 +3735,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_UPROAR] = { - .effect = EFFECT_UPROAR, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 90, #else .power = 50, #endif + .effect = EFFECT_UPROAR, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -3767,12 +3767,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SPIT_UP] = { - .effect = EFFECT_SPIT_UP, #if B_UPDATED_MOVE_VALUES >= GEN_4 .power = 1, #else .power = 100, #endif + .effect = EFFECT_SPIT_UP, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -3799,12 +3799,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HEAT_WAVE] = { - .effect = EFFECT_BURN_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 95, #else .power = 100, #endif + .effect = EFFECT_BURN_HIT, .type = TYPE_FIRE, .accuracy = 90, .pp = 10, @@ -3915,12 +3915,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SMELLING_SALT] = { - .effect = EFFECT_SMELLINGSALT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 70, #else .power = 60, #endif + .effect = EFFECT_SMELLINGSALT, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -4158,12 +4158,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_KNOCK_OFF] = { - .effect = EFFECT_KNOCK_OFF, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 65, #else .power = 20, #endif + .effect = EFFECT_KNOCK_OFF, .type = TYPE_DARK, .accuracy = 100, .pp = 20, @@ -4288,12 +4288,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DIVE] = { - .effect = EFFECT_SEMI_INVULNERABLE, #if B_UPDATED_MOVE_VALUES >= GEN_4 .power = 80, #else .power = 60, #endif + .effect = EFFECT_SEMI_INVULNERABLE, .type = TYPE_WATER, .accuracy = 100, .pp = 10, @@ -4544,7 +4544,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_METEOR_MASH] = { - .effect = EFFECT_ATTACK_UP_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 90, .accuracy = 90, @@ -4552,6 +4551,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 100, .accuracy = 85, #endif + .effect = EFFECT_ATTACK_UP_HIT, .type = TYPE_STEEL, .pp = 10, .secondaryEffectChance = 20, @@ -4619,12 +4619,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_AIR_CUTTER] = { - .effect = EFFECT_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 60, #else .power = 55, #endif + .effect = EFFECT_HIT, .type = TYPE_FLYING, .accuracy = 95, .pp = 25, @@ -4637,12 +4637,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_OVERHEAT] = { - .effect = EFFECT_OVERHEAT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 130, #else .power = 140, #endif + .effect = EFFECT_OVERHEAT, .type = TYPE_FIRE, .accuracy = 90, .pp = 5, @@ -4669,7 +4669,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ROCK_TOMB] = { - .effect = EFFECT_SPEED_DOWN_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 60, .accuracy = 95, @@ -4679,6 +4678,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .accuracy = 80, .pp = 10, #endif + .effect = EFFECT_SPEED_DOWN_HIT, .type = TYPE_ROCK, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -4829,7 +4829,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SAND_TOMB] = { - .effect = EFFECT_TRAP, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 35, .accuracy = 85, @@ -4837,6 +4836,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 15, .accuracy = 70, #endif + .effect = EFFECT_TRAP, .type = TYPE_GROUND, .pp = 15, .secondaryEffectChance = 100, @@ -4862,12 +4862,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MUDDY_WATER] = { - .effect = EFFECT_ACCURACY_DOWN_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 90, #else .power = 95, #endif + .effect = EFFECT_ACCURACY_DOWN_HIT, .type = TYPE_WATER, .accuracy = 85, .pp = 10, @@ -4880,12 +4880,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BULLET_SEED] = { - .effect = EFFECT_MULTI_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 25, #else .power = 10, #endif + .effect = EFFECT_MULTI_HIT, .type = TYPE_GRASS, .accuracy = 100, .pp = 30, @@ -4912,12 +4912,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ICICLE_SPEAR] = { - .effect = EFFECT_MULTI_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 25, #else .power = 10, #endif + .effect = EFFECT_MULTI_HIT, .type = TYPE_ICE, .accuracy = 100, .pp = 30, @@ -5057,7 +5057,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_COVET] = { - .effect = EFFECT_THIEF, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 60, .pp = 25, @@ -5068,6 +5067,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 40, .pp = 40, #endif + .effect = EFFECT_THIEF, .type = TYPE_NORMAL, .accuracy = 100, .secondaryEffectChance = 100, @@ -5136,12 +5136,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LEAF_BLADE] = { - .effect = EFFECT_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_4 .power = 90, #else .power = 70, #endif + .effect = EFFECT_HIT, .type = TYPE_GRASS, .accuracy = 100, .pp = 15, @@ -5210,7 +5210,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DOOM_DESIRE] = { - .effect = EFFECT_FUTURE_SIGHT, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 140, .pp = 100, @@ -5218,6 +5217,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 120, .pp = 85, #endif + .effect = EFFECT_FUTURE_SIGHT, .type = TYPE_STEEL, .accuracy = 100, .secondaryEffectChance = 0, @@ -5285,12 +5285,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WAKE_UP_SLAP] = { - .effect = EFFECT_WAKE_UP_SLAP, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 70, #else .power = 60, #endif + .effect = EFFECT_WAKE_UP_SLAP, .type = TYPE_FIGHTING, .accuracy = 100, .pp = 10, @@ -5374,12 +5374,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FEINT] = { - .effect = EFFECT_FEINT, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 30, #else .power = 50, #endif + .effect = EFFECT_FEINT, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -5490,12 +5490,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ASSURANCE] = { - .effect = EFFECT_ASSURANCE, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 60, #else .power = 50, #endif + .effect = EFFECT_ASSURANCE, .type = TYPE_DARK, .accuracy = 100, .pp = 10, @@ -5704,12 +5704,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LAST_RESORT] = { - .effect = EFFECT_LAST_RESORT, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 140, #else .power = 130, #endif + .effect = EFFECT_LAST_RESORT, .type = TYPE_NORMAL, .accuracy = 100, .pp = 5, @@ -5736,12 +5736,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SUCKER_PUNCH] = { - .effect = EFFECT_SUCKER_PUNCH, #if B_UPDATED_MOVE_VALUES >= GEN_7 .power = 70, #else .power = 80, #endif + .effect = EFFECT_SUCKER_PUNCH, .type = TYPE_DARK, .accuracy = 100, .pp = 5, @@ -5839,12 +5839,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_AURA_SPHERE] = { - .effect = EFFECT_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 80, #else .power = 90, #endif + .effect = EFFECT_HIT, .type = TYPE_FIGHTING, .accuracy = 0, .pp = 20, @@ -5983,12 +5983,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DRAGON_PULSE] = { - .effect = EFFECT_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 85, #else .power = 90, #endif + .effect = EFFECT_HIT, .type = TYPE_DRAGON, .accuracy = 100, .pp = 10, @@ -6015,12 +6015,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_POWER_GEM] = { - .effect = EFFECT_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 80, #else .power = 70, #endif + .effect = EFFECT_HIT, .type = TYPE_ROCK, .accuracy = 100, .pp = 20, @@ -6033,7 +6033,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DRAIN_PUNCH] = { - .effect = EFFECT_ABSORB, #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 75, .pp = 10, @@ -6041,6 +6040,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 60, .pp = 5, #endif + .effect = EFFECT_ABSORB, .type = TYPE_FIGHTING, .accuracy = 100, .secondaryEffectChance = 0, @@ -6080,12 +6080,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ENERGY_BALL] = { - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 90, #else .power = 80, #endif + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, .type = TYPE_GRASS, .accuracy = 100, .pp = 10, @@ -6395,12 +6395,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DRACO_METEOR] = { - .effect = EFFECT_OVERHEAT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 130, #else .power = 140, #endif + .effect = EFFECT_OVERHEAT, .type = TYPE_DRAGON, .accuracy = 90, .pp = 5, @@ -6441,12 +6441,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LEAF_STORM] = { - .effect = EFFECT_OVERHEAT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 130, #else .power = 140, #endif + .effect = EFFECT_OVERHEAT, .type = TYPE_GRASS, .accuracy = 90, .pp = 5, @@ -6599,12 +6599,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CHATTER] = { - .effect = EFFECT_CONFUSE_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 65, #else .power = 60, #endif + .effect = EFFECT_CONFUSE_HIT, .type = TYPE_FLYING, .accuracy = 100, .pp = 20, @@ -6813,7 +6813,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MAGMA_STORM] = { - .effect = EFFECT_TRAP, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 100, .accuracy = 75, @@ -6824,6 +6823,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 120, .accuracy = 70, #endif + .effect = EFFECT_TRAP, .type = TYPE_FIRE, .pp = 5, .secondaryEffectChance = 100, @@ -7060,12 +7060,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STORM_THROW] = { - .effect = EFFECT_ALWAYS_CRIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 60, #else .power = 40, #endif + .effect = EFFECT_ALWAYS_CRIT, .type = TYPE_FIGHTING, .accuracy = 100, .pp = 10, @@ -7134,7 +7134,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SYNCHRONOISE] = { - .effect = EFFECT_SYNCHRONOISE, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 120, .pp = 10, @@ -7142,6 +7141,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .power = 70, .pp = 15, #endif + .effect = EFFECT_SYNCHRONOISE, .type = TYPE_PSYCHIC, .accuracy = 100, .secondaryEffectChance = 0, @@ -7209,12 +7209,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LOW_SWEEP] = { - .effect = EFFECT_SPEED_DOWN_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 65, #else .power = 60, #endif + .effect = EFFECT_SPEED_DOWN_HIT, .type = TYPE_FIGHTING, .accuracy = 100, .pp = 20, @@ -7438,12 +7438,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HEX] = { - .effect = EFFECT_HEX, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 65, #else .power = 50, #endif + .effect = EFFECT_HEX, .type = TYPE_GHOST, .accuracy = 100, .pp = 10, @@ -7498,12 +7498,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_INCINERATE] = { - .effect = EFFECT_INCINERATE, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 60, #else .power = 30, #endif + .effect = EFFECT_INCINERATE, .type = TYPE_FIRE, .accuracy = 100, .pp = 15, @@ -7614,12 +7614,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WATER_PLEDGE] = { - .effect = EFFECT_PLEDGE, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 80, #else .power = 50, #endif + .effect = EFFECT_PLEDGE, .type = TYPE_WATER, .accuracy = 100, .pp = 10, @@ -7632,12 +7632,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FIRE_PLEDGE] = { - .effect = EFFECT_PLEDGE, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 80, #else .power = 50, #endif + .effect = EFFECT_PLEDGE, .type = TYPE_FIRE, .accuracy = 100, .pp = 10, @@ -7650,12 +7650,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_GRASS_PLEDGE] = { - .effect = EFFECT_PLEDGE, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 80, #else .power = 50, #endif + .effect = EFFECT_PLEDGE, .type = TYPE_GRASS, .accuracy = 100, .pp = 10, @@ -7682,12 +7682,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STRUGGLE_BUG] = { - .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 50, #else .power = 30, #endif + .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, .type = TYPE_BUG, .accuracy = 100, .pp = 20, @@ -7714,12 +7714,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FROST_BREATH] = { - .effect = EFFECT_ALWAYS_CRIT, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 60, #else .power = 40, #endif + .effect = EFFECT_ALWAYS_CRIT, .type = TYPE_ICE, .accuracy = 90, .pp = 10, @@ -7970,12 +7970,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HURRICANE] = { - .effect = EFFECT_HURRICANE, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 110, #else .power = 120, #endif + .effect = EFFECT_HURRICANE, .type = TYPE_FLYING, .accuracy = 70, .pp = 10, @@ -8030,12 +8030,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TECHNO_BLAST] = { - .effect = EFFECT_TECHNO_BLAST, #if B_UPDATED_MOVE_VALUES >= GEN_6 .power = 120, #else .power = 85, #endif + .effect = EFFECT_TECHNO_BLAST, .type = TYPE_NORMAL, .accuracy = 100, .pp = 5, @@ -8232,12 +8232,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLYING_PRESS] = { - .effect = EFFECT_TWO_TYPED_MOVE, #if B_UPDATED_MOVE_VALUES >= GEN_7 .power = 100, #else .power = 80, #endif + .effect = EFFECT_TWO_TYPED_MOVE, .type = TYPE_FIGHTING, .accuracy = 95, .pp = 10, @@ -8308,12 +8308,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FELL_STINGER] = { - .effect = EFFECT_FELL_STINGER, #if B_UPDATED_MOVE_VALUES >= GEN_7 .power = 50, #else .power = 30, #endif + .effect = EFFECT_FELL_STINGER, .type = TYPE_BUG, .accuracy = 100, .pp = 25, @@ -8384,12 +8384,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PARABOLIC_CHARGE] = { - .effect = EFFECT_ABSORB, #if B_UPDATED_MOVE_VALUES >= GEN_7 .power = 65, #else .power = 50, #endif + .effect = EFFECT_ABSORB, .type = TYPE_ELECTRIC, .accuracy = 100, .pp = 20, @@ -8741,12 +8741,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MYSTICAL_FIRE] = { - .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, #if B_UPDATED_MOVE_VALUES >= GEN_7 .power = 75, #else .power = 65, #endif + .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, .type = TYPE_FIRE, .accuracy = 100, .pp = 10, @@ -9825,12 +9825,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MULTI_ATTACK] = { - .effect = EFFECT_PLACEHOLDER, - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_VALUES >= GEN_8 .power = 120, #else .power = 90, #endif + .effect = EFFECT_PLACEHOLDER, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, From 30d999bb6fc17558ba197c59b518d764fc80e3dd Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 18 Oct 2020 11:15:42 -0300 Subject: [PATCH 16/27] Adapting move changes (part 2) --- src/data/battle_moves.h | 273 +++++++++++++++++++++++++++++++++------- 1 file changed, 225 insertions(+), 48 deletions(-) diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 7a720eaa8..66f64eb01 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -198,11 +198,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SWORDS_DANCE] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .pp = 20, + #else + .pp = 30, + #endif .effect = EFFECT_ATTACK_UP_2, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, - .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -254,10 +258,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WHIRLWIND] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .accuracy = 0, + #else + .accuracy = 100, + #endif .effect = EFFECT_ROAR, .power = 0, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -286,10 +294,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BIND] = { + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .accuracy = 85, + #else + .accuracy = 75, + #endif .effect = EFFECT_TRAP, .power = 15, .type = TYPE_NORMAL, - .accuracy = 85, .pp = 20, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -520,10 +532,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WRAP] = { + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .accuracy = 90, + #else + .accuracy = 85, + #endif .effect = EFFECT_TRAP, .power = 15, .type = TYPE_NORMAL, - .accuracy = 90, .pp = 20, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -684,10 +700,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ROAR] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .accuracy = 0, + #else + .accuracy = 100, + #endif .effect = EFFECT_ROAR, .power = 0, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -740,10 +760,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DISABLE] = { + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .accuracy = 100, + #elif B_UPDATED_MOVE_VALUES == GEN_4 + .accuracy = 80, + #else + .accuracy = 55, + #endif .effect = EFFECT_DISABLE, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -984,11 +1010,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SUBMISSION] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .pp = 20, + #else + .pp = 25, + #endif .effect = EFFECT_RECOIL_25, .power = 80, .type = TYPE_FIGHTING, .accuracy = 80, - .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -1104,11 +1134,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_GROWTH] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .pp = 20, + #else + .pp = 40, + #endif .effect = EFFECT_GROWTH, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, - .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -1289,10 +1323,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THUNDER_WAVE] = { + #if B_UPDATED_MOVE_VALUES >= GEN_7 + .accuracy = 90, + #else + .accuracy = 100, + #endif .effect = EFFECT_PARALYZE, .power = 0, .type = TYPE_ELECTRIC, - .accuracy = 90, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -1381,10 +1419,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TOXIC] = { + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .accuracy = 90, + #else + .accuracy = 85, + #endif .effect = EFFECT_TOXIC, .power = 0, .type = TYPE_POISON, - .accuracy = 90, .pp = 10, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -1563,11 +1605,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_RECOVER] = { + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .pp = 10, + #else + .pp = 20, + #endif .effect = EFFECT_RESTORE_HP, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -1591,11 +1637,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MINIMIZE] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .pp = 10, + #else + .pp = 20, + #endif .effect = EFFECT_MINIMIZE, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, - .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -1661,11 +1711,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BARRIER] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .pp = 20, + #else + .pp = 30, + #endif .effect = EFFECT_DEFENSE_UP_2, .power = 0, .type = TYPE_PSYCHIC, .accuracy = 0, - .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -1731,14 +1785,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BIDE] = { + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .accuracy = 0, + .priority = 1, + #else + .accuracy = 100, + .priority = 0, + #endif .effect = EFFECT_BIDE, .power = 1, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 1, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -1897,11 +1956,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CLAMP] = { + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .accuracy = 85, + .pp = 15, + #else + .accuracy = 75, + .pp = 10, + #endif .effect = EFFECT_TRAP, .power = 35, .type = TYPE_WATER, - .accuracy = 85, - .pp = 15, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -2036,10 +2100,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_GLARE] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .accuracy = 100, + #elif B_UPDATED_MOVE_VALUES == GEN_5 + .accuracy = 90, + #else + .accuracy = 75, + #endif .effect = EFFECT_PARALYZE, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, .pp = 30, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2064,10 +2134,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_POISON_GAS] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .accuracy = 90, + #elif B_UPDATED_MOVE_VALUES == GEN_5 + .accuracy = 80, + #else + .accuracy = 55, + #endif .effect = EFFECT_POISON, .power = 0, .type = TYPE_POISON, - .accuracy = 90, .pp = 40, .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, @@ -2200,10 +2276,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLASH] = { + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .accuracy = 100, + #else + .accuracy = 70, + #endif .effect = EFFECT_ACCURACY_DOWN, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2214,10 +2294,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PSYWAVE] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .accuracy = 100, + #else + .accuracy = 80, + #endif .effect = EFFECT_PSYWAVE, .power = 1, .type = TYPE_PSYCHIC, - .accuracy = 100, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2242,11 +2326,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ACID_ARMOR] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .pp = 20, + #else + .pp = 40, + #endif .effect = EFFECT_DEFENSE_UP_2, .power = 0, .type = TYPE_POISON, .accuracy = 0, - .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -2446,10 +2534,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STRUGGLE] = { + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .accuracy = 0, + #else + .accuracy = 100, + #endif .effect = EFFECT_RECOIL_25, .power = 50, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 1, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2488,11 +2580,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THIEF] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .power = 60, + .pp = 25, + #else + .power = 40, + .pp = 10, + #endif .effect = EFFECT_THIEF, - .power = 60, .type = TYPE_DARK, .accuracy = 100, - .pp = 25, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -2516,10 +2613,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MIND_READER] = { + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .accuracy = 0, + #else + .accuracy = 100, + #endif .effect = EFFECT_LOCK_ON, .power = 0, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2530,10 +2631,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_NIGHTMARE] = { + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .accuracy = 100, + #else + .accuracy = 0, + #endif .effect = EFFECT_NIGHTMARE, .power = 0, .type = TYPE_GHOST, - .accuracy = 100, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2632,10 +2737,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_COTTON_SPORE] = { + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .accuracy = 100, + #else + .accuracy = 85, + #endif .effect = EFFECT_SPEED_DOWN_2, .power = 0, .type = TYPE_GRASS, - .accuracy = 100, .pp = 40, .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, @@ -2716,10 +2825,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SCARY_FACE] = { + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .accuracy = 100, + #else + .accuracy = 90, + #endif .effect = EFFECT_SPEED_DOWN_2, .power = 0, .type = TYPE_NORMAL, - .accuracy = 100, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2846,10 +2959,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FORESIGHT] = { + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .accuracy = 0, + #else + .accuracy = 100, + #endif .effect = EFFECT_FORESIGHT, .power = 0, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 40, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2916,10 +3033,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BONE_RUSH] = { + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .accuracy = 90, + #else + .accuracy = 80, + #endif .effect = EFFECT_MULTI_HIT, .power = 25, .type = TYPE_GROUND, - .accuracy = 90, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -2930,10 +3051,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LOCK_ON] = { + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .accuracy = 100, + #else + .accuracy = 0, + #endif .effect = EFFECT_LOCK_ON, .power = 0, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -3058,10 +3183,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SWAGGER] = { + #if B_UPDATED_MOVE_VALUES >= GEN_7 + .accuracy = 85, + #else + .accuracy = 90, + #endif .effect = EFFECT_SWAGGER, .power = 0, .type = TYPE_NORMAL, - .accuracy = 85, .pp = 15, .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, @@ -3753,11 +3882,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STOCKPILE] = { + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .pp = 20, + #else + .pp = 10, + #endif .effect = EFFECT_STOCKPILE, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, - .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -3859,10 +3992,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WILL_O_WISP] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .accuracy = 85, + #else + .accuracy = 75, + #endif .effect = EFFECT_WILL_O_WISP, .power = 0, .type = TYPE_FIRE, - .accuracy = 85, .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -4655,10 +4792,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ODOR_SLEUTH] = { + #if B_UPDATED_MOVE_VALUES >= GEN_4 + .accuracy = 0, + #else + .accuracy = 100, + #endif .effect = EFFECT_FORESIGHT, .power = 0, .type = TYPE_NORMAL, - .accuracy = 0, .pp = 40, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -4801,11 +4942,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_EXTRASENSORY] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .pp = 20, + #else + .pp = 30, + #endif .effect = EFFECT_FLINCH_MINIMIZE_HIT, .power = 80, .type = TYPE_PSYCHIC, .accuracy = 100, - .pp = 20, .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -5168,10 +5313,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ROCK_BLAST] = { + #if B_UPDATED_MOVE_VALUES >= GEN_5 + .accuracy = 90, + #else + .accuracy = 80, + #endif .effect = EFFECT_MULTI_HIT, .power = 25, .type = TYPE_ROCK, - .accuracy = 90, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -5212,14 +5361,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_VALUES >= GEN_5 .power = 140, - .pp = 100, + .accuracy = 100, #else .power = 120, - .pp = 85, + .accuracy = 85, #endif .effect = EFFECT_FUTURE_SIGHT, .type = TYPE_STEEL, - .accuracy = 100, + .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -5406,11 +5555,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TAILWIND] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .pp = 15, + #else + .pp = 30, + #endif .effect = EFFECT_TAILWIND, .power = 0, .type = TYPE_FLYING, .accuracy = 0, - .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, @@ -5536,10 +5689,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PSYCHO_SHIFT] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .accuracy = 100, + #else + .accuracy = 90, + #endif .effect = EFFECT_PSYCHO_SHIFT, .power = 0, .type = TYPE_PSYCHIC, - .accuracy = 100, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, @@ -5941,11 +6098,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_AIR_SLASH] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .pp = 15, + #else + .pp = 20, + #endif .effect = EFFECT_FLINCH_HIT, .power = 75, .type = TYPE_FLYING, .accuracy = 95, - .pp = 15, .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -6501,10 +6662,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_GUNK_SHOT] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .accuracy = 80, + #else + .accuracy = 70, + #endif .effect = EFFECT_POISON_HIT, .power = 120, .type = TYPE_POISON, - .accuracy = 80, .pp = 5, .secondaryEffectChance = 30, .target = MOVE_TARGET_SELECTED, @@ -6835,10 +7000,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DARK_VOID] = { + #if B_UPDATED_MOVE_VALUES >= GEN_7 + .accuracy = 50, + #else + .accuracy = 80, + #endif .effect = EFFECT_SLEEP, .power = 0, .type = TYPE_DARK, - .accuracy = 50, .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, @@ -7844,11 +8013,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SACRED_SWORD] = { + #if B_UPDATED_MOVE_VALUES >= GEN_6 + .pp = 15, + #else + .pp = 20, + #endif .effect = EFFECT_HIT, .power = 90, .type = TYPE_FIGHTING, .accuracy = 100, - .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, @@ -8473,10 +8646,14 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TOPSY_TURVY] = { + #if B_UPDATED_MOVE_VALUES >= GEN_7 + .accuracy = 0, + #else + .accuracy = 100, + #endif .effect = EFFECT_TOPSY_TURVY, .power = 0, .type = TYPE_DARK, - .accuracy = 0, .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, From 334257388145e65404ac4f1cdc1f78eda40aaac6 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 18 Oct 2020 11:19:39 -0300 Subject: [PATCH 17/27] Updated name of setting. --- include/constants/battle_config.h | 3 +- src/data/battle_moves.h | 280 +++++++++++++++--------------- 2 files changed, 141 insertions(+), 142 deletions(-) diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index b5dfc5479..2dc0c786a 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -80,8 +80,7 @@ #define B_PSYWAVE_DMG GEN_6 // Psywave's damage formula. See Cmd_psywavedamageeffect. // Move settings -#define B_UPDATED_MOVE_VALUES GEN_7 // Power, Accuracy and Power of moves vary between generations. - +#define B_UPDATED_MOVE_DATA GEN_7 // Move data varies between generations. #define B_FELL_STINGER_STAT_RAISE GEN_6 // In Gen7+, it raises Atk by 3 stages instead of 2 if it causes the target to faint. #define B_SOUND_SUBSTITUTE GEN_6 // In Gen6+, sound moves bypass Substitute. #define B_TOXIC_NEVER_MISS GEN_6 // In Gen6+, if Toxic is used by a Poison type, it will never miss. diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 66f64eb01..dfff64e5b 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -198,7 +198,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SWORDS_DANCE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .pp = 20, #else .pp = 30, @@ -258,7 +258,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WHIRLWIND] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 0, #else .accuracy = 100, @@ -276,7 +276,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLY] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .power = 90, #else .power = 70, @@ -294,7 +294,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BIND] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 85, #else .accuracy = 75, @@ -326,10 +326,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_VINE_WHIP] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 45, .pp = 25, - #elif B_UPDATED_MOVE_VALUES >= GEN_4 + #elif B_UPDATED_MOVE_DATA >= GEN_4 .power = 35, .pp = 15, #else @@ -390,10 +390,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_JUMP_KICK] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 100, .pp = 10, - #elif B_UPDATED_MOVE_VALUES == GEN_4 + #elif B_UPDATED_MOVE_DATA == GEN_4 .power = 85, .pp = 25, #else @@ -496,10 +496,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TACKLE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_7 + #if B_UPDATED_MOVE_DATA >= GEN_7 .power = 40, .accuracy = 100, - #elif B_UPDATED_MOVE_VALUES >= GEN_5 + #elif B_UPDATED_MOVE_DATA >= GEN_5 .power = 50, .accuracy = 100, #else @@ -532,7 +532,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WRAP] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 90, #else .accuracy = 85, @@ -564,7 +564,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THRASH] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 120, .pp = 10, #else @@ -639,7 +639,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PIN_MISSILE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 25, .accuracy = 95, #else @@ -700,7 +700,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ROAR] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 0, #else .accuracy = 100, @@ -760,9 +760,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DISABLE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 100, - #elif B_UPDATED_MOVE_VALUES == GEN_4 + #elif B_UPDATED_MOVE_DATA == GEN_4 .accuracy = 80, #else .accuracy = 55, @@ -808,7 +808,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLAMETHROWER] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 90, #else .power = 95, @@ -854,7 +854,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HYDRO_PUMP] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 110, #else .power = 120, @@ -872,7 +872,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SURF] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 90, #else .power = 95, @@ -890,7 +890,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ICE_BEAM] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 90, #else .power = 95, @@ -908,7 +908,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BLIZZARD] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 110, #else .power = 120, @@ -1010,7 +1010,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SUBMISSION] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .pp = 20, #else .pp = 25, @@ -1084,7 +1084,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ABSORB] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .pp = 25, #else .pp = 20, @@ -1102,7 +1102,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MEGA_DRAIN] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .pp = 15, #else .pp = 10, @@ -1134,7 +1134,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_GROWTH] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .pp = 20, #else .pp = 40, @@ -1222,10 +1222,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PETAL_DANCE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 120, .pp = 10, - #elif B_UPDATED_MOVE_VALUES == GEN_4 + #elif B_UPDATED_MOVE_DATA == GEN_4 .power = 90, .pp = 20, #else @@ -1272,7 +1272,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FIRE_SPIN] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 35, .accuracy = 85, #else @@ -1305,7 +1305,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THUNDERBOLT] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 90, #else .power = 95, @@ -1323,7 +1323,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THUNDER_WAVE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_7 + #if B_UPDATED_MOVE_DATA >= GEN_7 .accuracy = 90, #else .accuracy = 100, @@ -1341,7 +1341,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THUNDER] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 110, #else .power = 120, @@ -1401,7 +1401,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DIG] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .power = 80, #else .power = 60, @@ -1419,7 +1419,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TOXIC] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 90, #else .accuracy = 85, @@ -1605,7 +1605,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_RECOVER] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .pp = 10, #else .pp = 20, @@ -1637,7 +1637,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MINIMIZE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .pp = 10, #else .pp = 20, @@ -1711,7 +1711,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BARRIER] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .pp = 20, #else .pp = 30, @@ -1785,7 +1785,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BIDE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .accuracy = 0, .priority = 1, #else @@ -1860,7 +1860,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LICK] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 30, #else .power = 20, @@ -1878,7 +1878,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SMOG] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 30, #else .power = 20, @@ -1924,7 +1924,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FIRE_BLAST] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 120, #else .power = 110, @@ -1956,7 +1956,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CLAMP] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 85, .pp = 15, #else @@ -1989,7 +1989,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SKULL_BASH] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 130, .pp = 10, #else @@ -2078,10 +2078,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HI_JUMP_KICK] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 130, .pp = 10, - #elif B_UPDATED_MOVE_VALUES == GEN_4 + #elif B_UPDATED_MOVE_DATA == GEN_4 .power = 100, .pp = 20, #else @@ -2100,9 +2100,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_GLARE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 100, - #elif B_UPDATED_MOVE_VALUES == GEN_5 + #elif B_UPDATED_MOVE_DATA == GEN_5 .accuracy = 90, #else .accuracy = 75, @@ -2134,9 +2134,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_POISON_GAS] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 90, - #elif B_UPDATED_MOVE_VALUES == GEN_5 + #elif B_UPDATED_MOVE_DATA == GEN_5 .accuracy = 80, #else .accuracy = 55, @@ -2168,7 +2168,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LEECH_LIFE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_7 + #if B_UPDATED_MOVE_DATA >= GEN_7 .power = 80, .pp = 10, #else @@ -2230,7 +2230,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BUBBLE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 40, #else .power = 20, @@ -2276,7 +2276,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLASH] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .accuracy = 100, #else .accuracy = 70, @@ -2294,7 +2294,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PSYWAVE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 100, #else .accuracy = 80, @@ -2326,7 +2326,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ACID_ARMOR] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .pp = 20, #else .pp = 40, @@ -2344,10 +2344,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CRABHAMMER] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 100, .accuracy = 90, - #elif B_UPDATED_MOVE_VALUES == GEN_5 + #elif B_UPDATED_MOVE_DATA == GEN_5 .power = 90, .accuracy = 90, #else @@ -2534,7 +2534,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STRUGGLE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .accuracy = 0, #else .accuracy = 100, @@ -2580,7 +2580,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_THIEF] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 60, .pp = 25, #else @@ -2613,7 +2613,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MIND_READER] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .accuracy = 0, #else .accuracy = 100, @@ -2631,7 +2631,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_NIGHTMARE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .accuracy = 100, #else .accuracy = 0, @@ -2663,7 +2663,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SNORE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 50, #else .power = 40, @@ -2737,7 +2737,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_COTTON_SPORE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 100, #else .accuracy = 85, @@ -2825,7 +2825,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SCARY_FACE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 100, #else .accuracy = 90, @@ -2941,7 +2941,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ZAP_CANNON] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .power = 120, #else .power = 100, @@ -2959,7 +2959,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FORESIGHT] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .accuracy = 0, #else .accuracy = 100, @@ -3033,7 +3033,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BONE_RUSH] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 90, #else .accuracy = 80, @@ -3051,7 +3051,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LOCK_ON] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .accuracy = 100, #else .accuracy = 0, @@ -3069,10 +3069,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_OUTRAGE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 120, .pp = 10, - #elif B_UPDATED_MOVE_VALUES == GEN_4 + #elif B_UPDATED_MOVE_DATA == GEN_4 .power = 120, .pp = 15, #else @@ -3105,10 +3105,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_GIGA_DRAIN] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 75, .pp = 10, - #elif B_UPDATED_MOVE_VALUES == GEN_4 + #elif B_UPDATED_MOVE_DATA == GEN_4 .power = 60, .pp = 10, #else @@ -3183,7 +3183,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SWAGGER] = { - #if B_UPDATED_MOVE_VALUES >= GEN_7 + #if B_UPDATED_MOVE_DATA >= GEN_7 .accuracy = 85, #else .accuracy = 90, @@ -3229,9 +3229,9 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FURY_CUTTER] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 40, - #elif B_UPDATED_MOVE_VALUES == GEN_5 + #elif B_UPDATED_MOVE_DATA == GEN_5 .power = 20, #else .power = 10, @@ -3501,7 +3501,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_RAPID_SPIN] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .power = 50, #else .power = 20, @@ -3771,11 +3771,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FUTURE_SIGHT] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 120, .accuracy = 100, .pp = 10, - #elif B_UPDATED_MOVE_VALUES == GEN_5 + #elif B_UPDATED_MOVE_DATA == GEN_5 .power = 100, .accuracy = 100, .pp = 10, @@ -3795,7 +3795,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ROCK_SMASH] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .power = 40, #else .power = 20, @@ -3813,7 +3813,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WHIRLPOOL] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 35, .accuracy = 85, #else @@ -3864,7 +3864,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_UPROAR] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 90, #else .power = 50, @@ -3882,7 +3882,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STOCKPILE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .pp = 20, #else .pp = 10, @@ -3900,7 +3900,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SPIT_UP] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .power = 1, #else .power = 100, @@ -3932,7 +3932,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HEAT_WAVE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 95, #else .power = 100, @@ -3992,7 +3992,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WILL_O_WISP] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 85, #else .accuracy = 75, @@ -4052,7 +4052,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SMELLING_SALT] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 70, #else .power = 60, @@ -4295,7 +4295,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_KNOCK_OFF] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 65, #else .power = 20, @@ -4425,7 +4425,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DIVE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .power = 80, #else .power = 60, @@ -4681,7 +4681,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_METEOR_MASH] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 90, .accuracy = 90, #else @@ -4756,7 +4756,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_AIR_CUTTER] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 60, #else .power = 55, @@ -4774,7 +4774,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_OVERHEAT] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 130, #else .power = 140, @@ -4792,7 +4792,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ODOR_SLEUTH] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .accuracy = 0, #else .accuracy = 100, @@ -4810,7 +4810,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ROCK_TOMB] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 60, .accuracy = 95, .pp = 15, @@ -4942,7 +4942,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_EXTRASENSORY] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .pp = 20, #else .pp = 30, @@ -4974,7 +4974,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SAND_TOMB] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 35, .accuracy = 85, #else @@ -5007,7 +5007,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MUDDY_WATER] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 90, #else .power = 95, @@ -5025,7 +5025,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BULLET_SEED] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 25, #else .power = 10, @@ -5057,7 +5057,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ICICLE_SPEAR] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 25, #else .power = 10, @@ -5202,10 +5202,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_COVET] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 60, .pp = 25, - #elif B_UPDATED_MOVE_VALUES == GEN_5 + #elif B_UPDATED_MOVE_DATA == GEN_5 .power = 60, .pp = 40, #else @@ -5281,7 +5281,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LEAF_BLADE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_4 .power = 90, #else .power = 70, @@ -5313,7 +5313,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ROCK_BLAST] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 90, #else .accuracy = 80, @@ -5359,7 +5359,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DOOM_DESIRE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 140, .accuracy = 100, #else @@ -5434,7 +5434,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WAKE_UP_SLAP] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 70, #else .power = 60, @@ -5523,7 +5523,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FEINT] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 30, #else .power = 50, @@ -5555,7 +5555,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TAILWIND] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .pp = 15, #else .pp = 30, @@ -5643,7 +5643,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ASSURANCE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 60, #else .power = 50, @@ -5689,7 +5689,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PSYCHO_SHIFT] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 100, #else .accuracy = 90, @@ -5861,7 +5861,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LAST_RESORT] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 140, #else .power = 130, @@ -5893,7 +5893,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SUCKER_PUNCH] = { - #if B_UPDATED_MOVE_VALUES >= GEN_7 + #if B_UPDATED_MOVE_DATA >= GEN_7 .power = 70, #else .power = 80, @@ -5996,7 +5996,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_AURA_SPHERE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 80, #else .power = 90, @@ -6098,7 +6098,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_AIR_SLASH] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .pp = 15, #else .pp = 20, @@ -6144,7 +6144,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DRAGON_PULSE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 85, #else .power = 90, @@ -6176,7 +6176,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_POWER_GEM] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 80, #else .power = 70, @@ -6194,7 +6194,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DRAIN_PUNCH] = { - #if B_UPDATED_MOVE_VALUES >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_5 .power = 75, .pp = 10, #else @@ -6241,7 +6241,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ENERGY_BALL] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 90, #else .power = 80, @@ -6556,7 +6556,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DRACO_METEOR] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 130, #else .power = 140, @@ -6602,7 +6602,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LEAF_STORM] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 130, #else .power = 140, @@ -6662,7 +6662,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_GUNK_SHOT] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 80, #else .accuracy = 70, @@ -6764,7 +6764,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CHATTER] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 65, #else .power = 60, @@ -6978,10 +6978,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MAGMA_STORM] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 100, .accuracy = 75, - #elif B_UPDATED_MOVE_VALUES == GEN_5 + #elif B_UPDATED_MOVE_DATA == GEN_5 .power = 120, .accuracy = 75, #else @@ -7000,7 +7000,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DARK_VOID] = { - #if B_UPDATED_MOVE_VALUES >= GEN_7 + #if B_UPDATED_MOVE_DATA >= GEN_7 .accuracy = 50, #else .accuracy = 80, @@ -7229,7 +7229,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STORM_THROW] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 60, #else .power = 40, @@ -7303,7 +7303,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SYNCHRONOISE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 120, .pp = 10, #else @@ -7378,7 +7378,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LOW_SWEEP] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 65, #else .power = 60, @@ -7607,7 +7607,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HEX] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 65, #else .power = 50, @@ -7667,7 +7667,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_INCINERATE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 60, #else .power = 30, @@ -7783,7 +7783,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WATER_PLEDGE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 80, #else .power = 50, @@ -7801,7 +7801,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FIRE_PLEDGE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 80, #else .power = 50, @@ -7819,7 +7819,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_GRASS_PLEDGE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 80, #else .power = 50, @@ -7851,7 +7851,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STRUGGLE_BUG] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 50, #else .power = 30, @@ -7883,7 +7883,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FROST_BREATH] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 60, #else .power = 40, @@ -8013,7 +8013,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SACRED_SWORD] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .pp = 15, #else .pp = 20, @@ -8143,7 +8143,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HURRICANE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 110, #else .power = 120, @@ -8203,7 +8203,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TECHNO_BLAST] = { - #if B_UPDATED_MOVE_VALUES >= GEN_6 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 120, #else .power = 85, @@ -8405,7 +8405,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FLYING_PRESS] = { - #if B_UPDATED_MOVE_VALUES >= GEN_7 + #if B_UPDATED_MOVE_DATA >= GEN_7 .power = 100, #else .power = 80, @@ -8481,7 +8481,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FELL_STINGER] = { - #if B_UPDATED_MOVE_VALUES >= GEN_7 + #if B_UPDATED_MOVE_DATA >= GEN_7 .power = 50, #else .power = 30, @@ -8557,7 +8557,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PARABOLIC_CHARGE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_7 + #if B_UPDATED_MOVE_DATA >= GEN_7 .power = 65, #else .power = 50, @@ -8646,7 +8646,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TOPSY_TURVY] = { - #if B_UPDATED_MOVE_VALUES >= GEN_7 + #if B_UPDATED_MOVE_DATA >= GEN_7 .accuracy = 0, #else .accuracy = 100, @@ -8918,7 +8918,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MYSTICAL_FIRE] = { - #if B_UPDATED_MOVE_VALUES >= GEN_7 + #if B_UPDATED_MOVE_DATA >= GEN_7 .power = 75, #else .power = 65, @@ -10002,7 +10002,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MULTI_ATTACK] = { - #if B_UPDATED_MOVE_VALUES >= GEN_8 + #if B_UPDATED_MOVE_DATA >= GEN_8 .power = 120, #else .power = 90, From a23e9a8a3755fcc5292c130c11e59db055e9827e Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 18 Oct 2020 12:07:11 -0300 Subject: [PATCH 18/27] Adapting move changes (part 2) + Hyperspace Fury type. --- include/constants/battle_config.h | 11 +++-- src/data/battle_moves.h | 76 +++++++++++++++++++++++++------ 2 files changed, 69 insertions(+), 18 deletions(-) diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index 2dc0c786a..552272808 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -79,19 +79,22 @@ #define B_RECOIL_IF_MISS_DMG GEN_6 // In Gen5+, Jump Kick and Hi Jump Kick will always do half of the user's max HP when missing. #define B_PSYWAVE_DMG GEN_6 // Psywave's damage formula. See Cmd_psywavedamageeffect. -// Move settings -#define B_UPDATED_MOVE_DATA GEN_7 // Move data varies between generations. +// Move data settings +#define B_UPDATED_MOVE_DATA GEN_7 // Updates move data in gBattleMoves, including Power, Accuracy, PP, stat changes, targets, chances of secondary effects, etc. #define B_FELL_STINGER_STAT_RAISE GEN_6 // In Gen7+, it raises Atk by 3 stages instead of 2 if it causes the target to faint. +#define B_KINGS_SHIELD_LOWER_ATK GEN_6 // In Gen7+, it lowers Atk by 1 stage instead of 2 of oponents that hit it. +#define B_SPEED_BUFFING_RAPID_SPIN GEN_8 // In Gen8, Rapid Spin raises the user's Speed by 1 stage. +#define B_WATER_SHURIKEN_SPLIT GEN_8 // In Gen7, Water Shuriken was changed from Physical to Special. + +// Other move settings #define B_SOUND_SUBSTITUTE GEN_6 // In Gen6+, sound moves bypass Substitute. #define B_TOXIC_NEVER_MISS GEN_6 // In Gen6+, if Toxic is used by a Poison type, it will never miss. #define B_PAYBACK_SWITCH_BOOST GEN_6 // In Gen5+, if the opponent switches out, Payback's damage will no longer be doubled. -#define B_KINGS_SHIELD_LOWER_ATK GEN_6 // In Gen7+, it lowers Atk by 1 stage instead of 2 of oponents that hit it. #define B_BINDING_TURNS GEN_6 // In Gen5+, binding moves last for 4-5 turns instead of 2-5 turns. (With Grip Claw, 7 and 5 turns respectively.) #define B_UPROAR_TURNS GEN_6 // In Gen5+, Uproar lasts for 3 turns instead of 2-5 turns. #define B_DISABLE_TURNS GEN_6 // Disable's turns. See Cmd_disablelastusedattack. #define B_INCINERATE_GEMS GEN_6 // In Gen6+, Incinerate can destroy Gems. #define B_MINIMIZE_DMG_ACC GEN_6 // In Gen6+, moves that causes double damage to minimized Pokémon will also skip accuracy checks. -#define B_SPEED_BUFFING_RAPID_SPIN GEN_8 // In Gen8, Rapid Spin raises the user's Speed by 1 stage. // Ability settings #define B_ABILITY_WEATHER GEN_6 // In Gen5+, weather caused by abilities lasts the same amount of turns as induced from a move. Before, they lasted till the battle's end or weather change by a move. diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index dfff64e5b..d16956962 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -184,6 +184,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_RAZOR_WIND] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_HIGH_CRIT, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif .effect = EFFECT_TWO_TURNS_ATTACK, .power = 80, .type = TYPE_NORMAL, @@ -192,7 +197,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_BOTH, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_HIGH_CRIT, .split = SPLIT_SPECIAL, }, @@ -780,7 +784,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ACID] = { - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + #if B_UPDATED_MOVE_DATA >= GEN_4 + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + #else + .effect = EFFECT_DEFENSE_DOWN_HIT, + #endif .power = 40, .type = TYPE_POISON, .accuracy = 100, @@ -1942,7 +1950,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WATERFALL] = { - .effect = EFFECT_FLINCH_HIT, + #if B_UPDATED_MOVE_DATA >= GEN_4 + .effect = EFFECT_FLINCH_HIT, + #else + .effect = EFFECT_HIT, + #endif .power = 80, .type = TYPE_WATER, .accuracy = 100, @@ -2681,9 +2693,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CURSE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .type = TYPE_GHOST, + #else + .type = TYPE_MYSTERY, + #endif .effect = EFFECT_CURSE, .power = 0, - .type = TYPE_GHOST, .accuracy = 0, .pp = 10, .secondaryEffectChance = 0, @@ -2857,9 +2873,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SWEET_KISS] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .type = TYPE_FAIRY, + #else + .type = TYPE_NORMAL, + #endif .effect = EFFECT_CONFUSE, .power = 0, - .type = TYPE_FAIRY, .accuracy = 75, .pp = 10, .secondaryEffectChance = 0, @@ -3141,9 +3161,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CHARM] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .type = TYPE_FAIRY, + #else + .type = TYPE_NORMAL, + #endif .effect = EFFECT_ATTACK_DOWN_2, .power = 0, - .type = TYPE_FAIRY, .accuracy = 100, .pp = 20, .secondaryEffectChance = 0, @@ -3603,9 +3627,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MOONLIGHT] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .type = TYPE_FAIRY, + #else + .type = TYPE_NORMAL, + #endif .effect = EFFECT_MOONLIGHT, .power = 0, - .type = TYPE_FAIRY, .accuracy = 0, .pp = 5, .secondaryEffectChance = 0, @@ -3687,7 +3715,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CRUNCH] = { - .effect = EFFECT_DEFENSE_DOWN_HIT, + #if B_UPDATED_MOVE_DATA >= GEN_4 + .effect = EFFECT_DEFENSE_DOWN_HIT, + #else + .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + #endif .power = 80, .type = TYPE_DARK, .accuracy = 100, @@ -4625,12 +4657,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_POISON_FANG] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .secondaryEffectChance = 50, + #else + .secondaryEffectChance = 30, + #endif .effect = EFFECT_POISON_FANG, .power = 50, .type = TYPE_POISON, .accuracy = 100, .pp = 15, - .secondaryEffectChance = 50, .target = MOVE_TARGET_SELECTED, .priority = 0, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST | FLAG_STRONG_JAW_BOOST, @@ -5224,7 +5260,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_VOLT_TACKLE] = { - .effect = EFFECT_RECOIL_33_STATUS, + #if B_UPDATED_MOVE_DATA >= GEN_4 + .effect = EFFECT_RECOIL_33_STATUS, + .argument = STATUS1_PARALYSIS, + #else + .effect = EFFECT_RECOIL_33, + #endif .power = 120, .type = TYPE_ELECTRIC, .accuracy = 100, @@ -5234,7 +5275,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .priority = 0, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_RECKLESS_BOOST | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, - .argument = STATUS1_PARALYSIS, }, [MOVE_MAGICAL_LEAF] = @@ -8862,7 +8902,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DIAMOND_STORM] = { - .effect = EFFECT_DEFENSE_UP2_HIT, + #if B_UPDATED_MOVE_DATA >= GEN_4 + .effect = EFFECT_DEFENSE_UP2_HIT, + #else + .effect = EFFECT_DEFENSE_UP_HIT, + #endif .power = 100, .type = TYPE_ROCK, .accuracy = 95, @@ -8904,6 +8948,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WATER_SHURIKEN] = { + #if B_WATER_SHURIKEN_SPLIT >= GEN_7 + .split = SPLIT_SPECIAL, + #else + .split = SPLIT_PHYSICAL, + #endif .effect = EFFECT_MULTI_HIT, .power = 15, .type = TYPE_WATER, @@ -8913,7 +8962,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .target = MOVE_TARGET_SELECTED, .priority = 1, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, - .split = SPLIT_SPECIAL, }, [MOVE_MYSTICAL_FIRE] = @@ -9289,7 +9337,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { .effect = EFFECT_PLACEHOLDER, .power = 0, - .type = TYPE_MYSTERY, + .type = TYPE_DARK, .accuracy = 0, .pp = 0, .secondaryEffectChance = 0, From e42a565a84cc9c00f66d81bc31e23b2b04a35345 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 18 Oct 2020 17:53:27 -0300 Subject: [PATCH 19/27] Adapting move changes (part 3) + fixed Wish being affected by Protect. --- src/data/battle_moves.h | 322 +++++++++++++++++++++++++++++++++------- 1 file changed, 265 insertions(+), 57 deletions(-) diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index d16956962..b290b2a5b 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -264,8 +264,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 0, + .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #elif B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 100, + .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #else .accuracy = 100, + .flags = FLAG_MIRROR_MOVE_AFFECTED, #endif .effect = EFFECT_ROAR, .power = 0, @@ -274,7 +279,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -6, - .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -706,8 +710,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 0, + .flags = FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND | FLAG_MAGICCOAT_AFFECTED, + #elif B_UPDATED_MOVE_DATA >= GEN_5 + .accuracy = 100, + .flags = FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND | FLAG_MAGICCOAT_AFFECTED, #else .accuracy = 100, + .flags = FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND, #endif .effect = EFFECT_ROAR, .power = 0, @@ -716,7 +725,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = -6, - .flags = FLAG_MIRROR_MOVE_AFFECTED | FLAG_SOUND | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, }, @@ -766,10 +774,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 100, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, #elif B_UPDATED_MOVE_DATA == GEN_4 .accuracy = 80, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #else .accuracy = 55, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #endif .effect = EFFECT_DISABLE, .power = 0, @@ -778,7 +789,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, }, @@ -882,15 +892,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 90, + .target = MOVE_TARGET_FOES_AND_ALLY, + #elif B_UPDATED_MOVE_DATA >= GEN_4 + .power = 95, + .target = MOVE_TARGET_FOES_AND_ALLY, #else .power = 95, + .target = MOVE_TARGET_BOTH, #endif .effect = EFFECT_HIT, .type = TYPE_WATER, .accuracy = 100, .pp = 15, .secondaryEffectChance = 0, - .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED | FLAG_DMG_UNDERWATER, .split = SPLIT_SPECIAL, @@ -1050,6 +1064,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_COUNTER] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_COUNTER, .power = 1, .type = TYPE_FIGHTING, @@ -1058,7 +1077,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = -5, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -2062,6 +2080,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_KINESIS] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_ACCURACY_DOWN, .power = 0, .type = TYPE_PSYCHIC, @@ -2070,7 +2093,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, }, @@ -2148,17 +2170,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 90, + .target = MOVE_TARGET_FOES_AND_ALLY, #elif B_UPDATED_MOVE_DATA == GEN_5 .accuracy = 80, + .target = MOVE_TARGET_FOES_AND_ALLY, #else .accuracy = 55, + .target = MOVE_TARGET_BOTH, #endif .effect = EFFECT_POISON, .power = 0, .type = TYPE_POISON, .pp = 40, .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, @@ -2476,6 +2500,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CONVERSION] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_CONVERSION, .power = 0, .type = TYPE_NORMAL, @@ -2484,7 +2513,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, }, @@ -2548,8 +2576,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_4 .accuracy = 0, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, #else .accuracy = 100, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, #endif .effect = EFFECT_RECOIL_25, .power = 50, @@ -2558,7 +2588,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -2611,6 +2640,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SPIDER_WEB] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_MEAN_LOOK, .power = 0, .type = TYPE_BUG, @@ -2619,7 +2653,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -2725,13 +2758,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_CONVERSION_2] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .target = MOVE_TARGET_USER, + #else + .target = MOVE_TARGET_FOES_AND_ALLY, + #endif .effect = EFFECT_CONVERSION_2, .power = 0, .type = TYPE_NORMAL, .accuracy = 100, .pp = 30, .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, .priority = 0, .flags = 0, .split = SPLIT_STATUS, @@ -2753,17 +2790,21 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_COTTON_SPORE] = { - #if B_UPDATED_MOVE_DATA >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_6 .accuracy = 100, + .target = MOVE_TARGET_BOTH, + #elif B_UPDATED_MOVE_DATA == GEN_5 + .accuracy = 100, + .target = MOVE_TARGET_FOES_AND_ALLY, #else .accuracy = 85, + .target = MOVE_TARGET_FOES_AND_ALLY, #endif .effect = EFFECT_SPEED_DOWN_2, .power = 0, .type = TYPE_GRASS, .pp = 40, .secondaryEffectChance = 0, - .target = MOVE_TARGET_BOTH, .priority = 0, .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_POWDER, .split = SPLIT_STATUS, @@ -2785,6 +2826,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SPITE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_SPITE, .power = 0, .type = TYPE_GHOST, @@ -2793,7 +2839,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, }, @@ -2859,6 +2904,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FAINT_ATTACK] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #endif .effect = EFFECT_HIT, .power = 60, .type = TYPE_DARK, @@ -2867,7 +2917,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -2947,6 +2996,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SPIKES] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_MAGICCOAT_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_SPIKES, .power = 0, .type = TYPE_GROUND, @@ -2955,7 +3009,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_OPPONENTS_FIELD, .priority = 0, - .flags = FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, }, @@ -2979,10 +3032,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FORESIGHT] = { - #if B_UPDATED_MOVE_DATA >= GEN_4 + #if B_UPDATED_MOVE_DATA >= GEN_5 .accuracy = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + #elif B_UPDATED_MOVE_DATA >= GEN_4 + .accuracy = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #else .accuracy = 100, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #endif .effect = EFFECT_FORESIGHT, .power = 0, @@ -2991,7 +3049,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, }, @@ -3287,6 +3344,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MEAN_LOOK] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_MEAN_LOOK, .power = 0, .type = TYPE_NORMAL, @@ -3295,7 +3357,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -3497,6 +3558,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ENCORE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_ENCORE, .power = 0, .type = TYPE_NORMAL, @@ -3505,7 +3571,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, }, @@ -3733,6 +3798,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MIRROR_COAT] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_PROTECT_AFFECTED, + #else + .flags = FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_MIRROR_COAT, .power = 1, .type = TYPE_PSYCHIC, @@ -3741,12 +3811,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = -5, - .flags = FLAG_PROTECT_AFFECTED, .split = SPLIT_SPECIAL, }, [MOVE_PSYCH_UP] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_PSYCH_UP, .power = 0, .type = TYPE_NORMAL, @@ -3755,12 +3829,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = 0, .split = SPLIT_STATUS, }, [MOVE_EXTREME_SPEED] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .priority = 2, + #else + .priority = 1, + #endif .effect = EFFECT_HIT, .power = 80, .type = TYPE_NORMAL, @@ -3768,13 +3846,17 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 5, .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, - .priority = 2, .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_PHYSICAL, }, [MOVE_ANCIENT_POWER] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #else + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #endif .effect = EFFECT_ALL_STATS_UP_HIT, .power = 60, .type = TYPE_ROCK, @@ -3783,7 +3865,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_SPECIAL, }, @@ -3882,6 +3963,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FAKE_OUT] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, + #endif .effect = EFFECT_FAKE_OUT, .power = 40, .type = TYPE_NORMAL, @@ -3890,7 +3976,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 3, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_SHEER_FORCE_BOOST, .split = SPLIT_PHYSICAL, }, @@ -3996,6 +4081,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TORMENT] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_TORMENT, .power = 0, .type = TYPE_DARK, @@ -4004,7 +4094,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, }, @@ -4145,6 +4234,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TAUNT] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED, + #endif .effect = EFFECT_TAUNT, .power = 0, .type = TYPE_DARK, @@ -4153,19 +4247,22 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, [MOVE_HELPING_HAND] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .target = MOVE_TARGET_ALLY, + #else + .target = MOVE_TARGET_USER, + #endif .effect = EFFECT_HELPING_HAND, .power = 0, .type = TYPE_NORMAL, .accuracy = 100, .pp = 20, .secondaryEffectChance = 0, - .target = MOVE_TARGET_USER, .priority = 5, .flags = 0, .split = SPLIT_STATUS, @@ -4201,6 +4298,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WISH] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_WISH, .power = 0, .type = TYPE_NORMAL, @@ -4209,7 +4311,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, }, @@ -4271,6 +4372,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_RECYCLE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_RECYCLE, .power = 0, .type = TYPE_NORMAL, @@ -4279,7 +4385,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, }, @@ -4387,6 +4492,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_IMPRISON] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_SNATCH_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED, + #endif .effect = EFFECT_IMPRISON, .power = 0, .type = TYPE_PSYCHIC, @@ -4395,7 +4505,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, }, @@ -4559,6 +4668,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TEETER_DANCE] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DANCE, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_DANCE, + #endif .effect = EFFECT_TEETER_DANCE, .power = 0, .type = TYPE_NORMAL, @@ -4567,7 +4681,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_DANCE, .split = SPLIT_STATUS, }, @@ -4812,8 +4925,13 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 130, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, + #elif B_UPDATED_MOVE_DATA >= GEN_4 + .power = 130, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, #else .power = 140, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, #endif .effect = EFFECT_OVERHEAT, .type = TYPE_FIRE, @@ -4822,7 +4940,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_KINGSROCK_AFFECTED, .split = SPLIT_SPECIAL, }, @@ -4830,8 +4947,10 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = { #if B_UPDATED_MOVE_DATA >= GEN_4 .accuracy = 0, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, #else .accuracy = 100, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #endif .effect = EFFECT_FORESIGHT, .power = 0, @@ -4840,7 +4959,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED | FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, }, @@ -5125,6 +5243,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BLOCK] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_MEAN_LOOK, .power = 0, .type = TYPE_NORMAL, @@ -5133,7 +5256,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -5241,12 +5363,19 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 60, .pp = 25, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #elif B_UPDATED_MOVE_DATA == GEN_5 .power = 60, .pp = 40, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #elif B_UPDATED_MOVE_DATA == GEN_4 + .power = 40, + .pp = 40, + .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #else .power = 40, .pp = 40, + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, #endif .effect = EFFECT_THIEF, .type = TYPE_NORMAL, @@ -5254,7 +5383,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MAKES_CONTACT | FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -5460,6 +5588,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MIRACLE_EYE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_MIRACLE_EYE, .power = 0, .type = TYPE_PSYCHIC, @@ -5468,7 +5601,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -5521,6 +5653,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HEALING_WISH] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_HEALING_WISH, .power = 0, .type = TYPE_PSYCHIC, @@ -5529,7 +5666,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, }, @@ -5563,10 +5699,15 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FEINT] = { - #if B_UPDATED_MOVE_DATA >= GEN_5 + #if B_UPDATED_MOVE_DATA >= GEN_6 .power = 30, + .flags = FLAG_MIRROR_MOVE_AFFECTED, + #elif B_UPDATED_MOVE_DATA >= GEN_5 + .power = 30, + .flags = 0, #else .power = 50, + .flags = 0, #endif .effect = EFFECT_FEINT, .type = TYPE_NORMAL, @@ -5575,7 +5716,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 100, .target = MOVE_TARGET_SELECTED, .priority = 2, - .flags = FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -5613,6 +5753,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ACUPRESSURE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = 0, + #else + .flags = FLAG_SNATCH_AFFECTED, + #endif .effect = EFFECT_ACUPRESSURE, .power = 0, .type = TYPE_NORMAL, @@ -5621,12 +5766,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER | MOVE_TARGET_ALLY, .priority = 0, - .flags = 0, .split = SPLIT_STATUS, }, [MOVE_METAL_BURST] = { + #if B_UPDATED_MOVE_DATA >= GEN_4 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_METAL_BURST, .power = 0, .type = TYPE_STEEL, @@ -5635,7 +5784,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_DEPENDS, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_PHYSICAL, }, @@ -5701,6 +5849,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_EMBARGO] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_EMBARGO, .power = 0, .type = TYPE_DARK, @@ -5709,7 +5862,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -5761,6 +5913,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_HEAL_BLOCK] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_HEAL_BLOCK, .power = 0, .type = TYPE_PSYCHIC, @@ -5769,7 +5926,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -5789,6 +5945,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_POWER_TRICK] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_POWER_TRICK, .power = 0, .type = TYPE_PSYCHIC, @@ -5797,7 +5958,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, }, @@ -5817,6 +5977,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LUCKY_CHANT] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_LUCKY_CHANT, .power = 0, .type = TYPE_NORMAL, @@ -5825,7 +5990,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, }, @@ -5951,6 +6115,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_TOXIC_SPIKES] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_MAGICCOAT_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_TOXIC_SPIKES, .power = 0, .type = TYPE_POISON, @@ -5959,7 +6128,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_OPPONENTS_FIELD, .priority = 0, - .flags = FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, }, @@ -5979,6 +6147,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_AQUA_RING] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_AQUA_RING, .power = 0, .type = TYPE_WATER, @@ -5987,12 +6160,16 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, }, [MOVE_MAGNET_RISE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_SNATCH_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_MAGNET_RISE, .power = 0, .type = TYPE_ELECTRIC, @@ -6001,7 +6178,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, }, @@ -6568,6 +6744,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_DEFOG] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_DEFOG, .power = 0, .type = TYPE_FLYING, @@ -6576,7 +6757,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_PROTECT_AFFECTED | FLAG_MAGICCOAT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, @@ -6776,6 +6956,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_STEALTH_ROCK] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_MAGICCOAT_AFFECTED, + #else + .flags = 0, + #endif .effect = EFFECT_STEALTH_ROCK, .power = 0, .type = TYPE_ROCK, @@ -6784,7 +6969,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_OPPONENTS_FIELD, .priority = 0, - .flags = FLAG_MAGICCOAT_AFFECTED, .split = SPLIT_STATUS, }, @@ -6990,6 +7174,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_LUNAR_DANCE] = { + #if B_UPDATED_MOVE_DATA >= GEN_5 + .flags = FLAG_DANCE | FLAG_SNATCH_AFFECTED, + #else + .flags = FLAG_DANCE, + #endif .effect = EFFECT_HEALING_WISH, .power = 0, .type = TYPE_PSYCHIC, @@ -6998,7 +7187,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, .priority = 0, - .flags = FLAG_DANCE | FLAG_SNATCH_AFFECTED, .split = SPLIT_STATUS, }, @@ -7157,6 +7345,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_WONDER_ROOM] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .priority = 0, + #else + .priority = -7, + #endif .effect = EFFECT_WONDER_ROOM, .power = 0, .type = TYPE_PSYCHIC, @@ -7164,7 +7357,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 0, .flags = 0, .split = SPLIT_STATUS, }, @@ -7213,6 +7405,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_RAGE_POWDER] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .priority = 2, + #else + .priority = 3, + #endif .effect = EFFECT_FOLLOW_ME, .power = 0, .type = TYPE_BUG, @@ -7220,7 +7417,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 20, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 2, .flags = FLAG_POWDER, .split = SPLIT_STATUS, }, @@ -7241,6 +7437,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_MAGIC_ROOM] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .priority = 0, + #else + .priority = -7, + #endif .effect = EFFECT_MAGIC_ROOM, .power = 0, .type = TYPE_PSYCHIC, @@ -7248,7 +7449,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 10, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 0, .flags = 0, .split = SPLIT_STATUS, }, @@ -7591,6 +7791,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_ALLY_SWITCH] = { + #if B_UPDATED_MOVE_DATA >= GEN_7 + .priority = 2, + #else + .priority = 1, + #endif .effect = EFFECT_ALLY_SWITCH, .power = 0, .type = TYPE_PSYCHIC, @@ -7598,7 +7803,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .pp = 15, .secondaryEffectChance = 0, .target = MOVE_TARGET_USER, - .priority = 2, .flags = 0, .split = SPLIT_STATUS, }, @@ -7795,6 +7999,11 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_BESTOW] = { + #if B_UPDATED_MOVE_DATA >= GEN_6 + .flags = FLAG_MIRROR_MOVE_AFFECTED, + #else + .flags = FLAG_PROTECT_AFFECTED | FLAG_MIRROR_MOVE_AFFECTED, + #endif .effect = EFFECT_BESTOW, .power = 0, .type = TYPE_NORMAL, @@ -7803,7 +8012,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = .secondaryEffectChance = 0, .target = MOVE_TARGET_SELECTED, .priority = 0, - .flags = FLAG_MIRROR_MOVE_AFFECTED, .split = SPLIT_STATUS, }, From 1bc38feca51d237d556b94525235411b303345a0 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Mon, 19 Oct 2020 18:01:19 -0300 Subject: [PATCH 20/27] Fixed indentation for various files. --- src/battle_script_commands.c | 512 ++++++------- src/battle_util.c | 168 ++-- src/data/text/move_descriptions.h | 1186 ++++++++++++++--------------- 3 files changed, 933 insertions(+), 933 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 28f38b9e6..933d01ed4 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -337,262 +337,262 @@ static void Cmd_metalburstdamagecalculator(void); void (* const gBattleScriptingCommandsTable[])(void) = { - Cmd_attackcanceler, // 0x0 - Cmd_accuracycheck, // 0x1 - Cmd_attackstring, // 0x2 - Cmd_ppreduce, // 0x3 - Cmd_critcalc, // 0x4 - Cmd_damagecalc, // 0x5 - Cmd_typecalc, // 0x6 - Cmd_adjustdamage, // 0x7 - Cmd_multihitresultmessage, // 0x8 - Cmd_attackanimation, // 0x9 - Cmd_waitanimation, // 0xA - Cmd_healthbarupdate, // 0xB - Cmd_datahpupdate, // 0xC - Cmd_critmessage, // 0xD - Cmd_effectivenesssound, // 0xE - Cmd_resultmessage, // 0xF - Cmd_printstring, // 0x10 - Cmd_printselectionstring, // 0x11 - Cmd_waitmessage, // 0x12 - Cmd_printfromtable, // 0x13 - Cmd_printselectionstringfromtable, // 0x14 - Cmd_seteffectwithchance, // 0x15 - Cmd_seteffectprimary, // 0x16 - Cmd_seteffectsecondary, // 0x17 - Cmd_clearstatusfromeffect, // 0x18 - Cmd_tryfaintmon, // 0x19 - Cmd_dofaintanimation, // 0x1A - Cmd_cleareffectsonfaint, // 0x1B - Cmd_jumpifstatus, // 0x1C - Cmd_jumpifstatus2, // 0x1D - Cmd_jumpifability, // 0x1E - Cmd_jumpifsideaffecting, // 0x1F - Cmd_jumpifstat, // 0x20 - Cmd_jumpifstatus3condition, // 0x21 - Cmd_jumpbasedontype, // 0x22 - Cmd_getexp, // 0x23 - atk24, // 0x24 - Cmd_movevaluescleanup, // 0x25 - Cmd_setmultihit, // 0x26 - Cmd_decrementmultihit, // 0x27 - Cmd_goto, // 0x28 - Cmd_jumpifbyte, // 0x29 - Cmd_jumpifhalfword, // 0x2A - Cmd_jumpifword, // 0x2B - Cmd_jumpifarrayequal, // 0x2C - Cmd_jumpifarraynotequal, // 0x2D - Cmd_setbyte, // 0x2E - Cmd_addbyte, // 0x2F - Cmd_subbyte, // 0x30 - Cmd_copyarray, // 0x31 - Cmd_copyarraywithindex, // 0x32 - Cmd_orbyte, // 0x33 - Cmd_orhalfword, // 0x34 - Cmd_orword, // 0x35 - Cmd_bicbyte, // 0x36 - Cmd_bichalfword, // 0x37 - Cmd_bicword, // 0x38 - Cmd_pause, // 0x39 - Cmd_waitstate, // 0x3A - Cmd_update, // 0x3B - Cmd_return, // 0x3C - Cmd_end, // 0x3D - Cmd_end2, // 0x3E - Cmd_end3, // 0x3F - Cmd_jumpifaffectedbyprotect, // 0x40 - Cmd_call, // 0x41 - Cmd_setroost, // 0x42 - Cmd_jumpifabilitypresent, // 0x43 - Cmd_endselectionscript, // 0x44 - Cmd_playanimation, // 0x45 - Cmd_playanimation2, // 0x46 - Cmd_setgraphicalstatchangevalues, // 0x47 - Cmd_playstatchangeanimation, // 0x48 - Cmd_moveend, // 0x49 - Cmd_sethealblock, // 0x4A - Cmd_returnatktoball, // 0x4B - Cmd_getswitchedmondata, // 0x4C - Cmd_switchindataupdate, // 0x4D - Cmd_switchinanim, // 0x4E - Cmd_jumpifcantswitch, // 0x4F - Cmd_openpartyscreen, // 0x50 - Cmd_switchhandleorder, // 0x51 - Cmd_switchineffects, // 0x52 - Cmd_trainerslidein, // 0x53 - Cmd_playse, // 0x54 - Cmd_fanfare, // 0x55 - Cmd_playfaintcry, // 0x56 - atk57, // 0x57 - Cmd_returntoball, // 0x58 - Cmd_handlelearnnewmove, // 0x59 - Cmd_yesnoboxlearnmove, // 0x5A - Cmd_yesnoboxstoplearningmove, // 0x5B - Cmd_hitanimation, // 0x5C - Cmd_getmoneyreward, // 0x5D - atk5E, // 0x5E - Cmd_swapattackerwithtarget, // 0x5F - Cmd_incrementgamestat, // 0x60 - Cmd_drawpartystatussummary, // 0x61 - Cmd_hidepartystatussummary, // 0x62 - Cmd_jumptocalledmove, // 0x63 - Cmd_statusanimation, // 0x64 - Cmd_status2animation, // 0x65 - Cmd_chosenstatusanimation, // 0x66 - Cmd_yesnobox, // 0x67 - Cmd_cancelallactions, // 0x68 - Cmd_setgravity, // 0x69 - Cmd_removeitem, // 0x6A - Cmd_atknameinbuff1, // 0x6B - Cmd_drawlvlupbox, // 0x6C - Cmd_resetsentmonsvalue, // 0x6D - Cmd_setatktoplayer0, // 0x6E - Cmd_makevisible, // 0x6F - Cmd_recordability, // 0x70 - Cmd_buffermovetolearn, // 0x71 - Cmd_jumpifplayerran, // 0x72 - Cmd_hpthresholds, // 0x73 - Cmd_hpthresholds2, // 0x74 - Cmd_useitemonopponent, // 0x75 - Cmd_various, // 0x76 - Cmd_setprotectlike, // 0x77 - Cmd_faintifabilitynotdamp, // 0x78 - Cmd_setatkhptozero, // 0x79 - Cmd_jumpifnexttargetvalid, // 0x7A - Cmd_tryhealhalfhealth, // 0x7B - Cmd_trymirrormove, // 0x7C - Cmd_setrain, // 0x7D - Cmd_setreflect, // 0x7E - Cmd_setseeded, // 0x7F - Cmd_manipulatedamage, // 0x80 - Cmd_trysetrest, // 0x81 - Cmd_jumpifnotfirstturn, // 0x82 - Cmd_setmiracleeye, // 0x83 - Cmd_jumpifcantmakeasleep, // 0x84 - Cmd_stockpile, // 0x85 - Cmd_stockpiletobasedamage, // 0x86 - Cmd_stockpiletohpheal, // 0x87 - Cmd_setdrainedhp, // 0x88 - Cmd_statbuffchange, // 0x89 - Cmd_normalisebuffs, // 0x8A - Cmd_setbide, // 0x8B - Cmd_confuseifrepeatingattackends, // 0x8C - Cmd_setmultihitcounter, // 0x8D - Cmd_initmultihitstring, // 0x8E - Cmd_forcerandomswitch, // 0x8F - Cmd_tryconversiontypechange, // 0x90 - Cmd_givepaydaymoney, // 0x91 - Cmd_setlightscreen, // 0x92 - Cmd_tryKO, // 0x93 - Cmd_damagetohalftargethp, // 0x94 - Cmd_setsandstorm, // 0x95 - Cmd_weatherdamage, // 0x96 - Cmd_tryinfatuating, // 0x97 - Cmd_updatestatusicon, // 0x98 - Cmd_setmist, // 0x99 - Cmd_setfocusenergy, // 0x9A - Cmd_transformdataexecution, // 0x9B - Cmd_setsubstitute, // 0x9C - Cmd_mimicattackcopy, // 0x9D - Cmd_metronome, // 0x9E - Cmd_dmgtolevel, // 0x9F - Cmd_psywavedamageeffect, // 0xA0 - Cmd_counterdamagecalculator, // 0xA1 - Cmd_mirrorcoatdamagecalculator, // 0xA2 - Cmd_disablelastusedattack, // 0xA3 - Cmd_trysetencore, // 0xA4 - Cmd_painsplitdmgcalc, // 0xA5 - Cmd_settypetorandomresistance, // 0xA6 - Cmd_setalwayshitflag, // 0xA7 - Cmd_copymovepermanently, // 0xA8 - Cmd_trychoosesleeptalkmove, // 0xA9 - Cmd_setdestinybond, // 0xAA - Cmd_trysetdestinybondtohappen, // 0xAB - Cmd_settailwind, // 0xAC - Cmd_tryspiteppreduce, // 0xAD - Cmd_healpartystatus, // 0xAE - Cmd_cursetarget, // 0xAF - Cmd_trysetspikes, // 0xB0 - Cmd_setforesight, // 0xB1 - Cmd_trysetperishsong, // 0xB2 - Cmd_handlerollout, // 0xB3 - Cmd_jumpifconfusedandstatmaxed, // 0xB4 - Cmd_handlefurycutter, // 0xB5 - Cmd_setembargo, // 0xB6 - Cmd_presentdamagecalculation, // 0xB7 - Cmd_setsafeguard, // 0xB8 - Cmd_magnitudedamagecalculation, // 0xB9 - Cmd_jumpifnopursuitswitchdmg, // 0xBA - Cmd_setsunny, // 0xBB - Cmd_maxattackhalvehp, // 0xBC - Cmd_copyfoestats, // 0xBD - Cmd_rapidspinfree, // 0xBE - Cmd_setdefensecurlbit, // 0xBF - Cmd_recoverbasedonsunlight, // 0xC0 - Cmd_setstickyweb, // 0xC1 - Cmd_selectfirstvalidtarget, // 0xC2 - Cmd_trysetfutureattack, // 0xC3 - Cmd_trydobeatup, // 0xC4 - Cmd_setsemiinvulnerablebit, // 0xC5 - Cmd_clearsemiinvulnerablebit, // 0xC6 - Cmd_setminimize, // 0xC7 - Cmd_sethail, // 0xC8 - Cmd_jumpifattackandspecialattackcannotfall, // 0xC9 - Cmd_setforcedtarget, // 0xCA - Cmd_setcharge, // 0xCB - Cmd_callterrainattack, // 0xCC - Cmd_cureifburnedparalysedorpoisoned, // 0xCD - Cmd_settorment, // 0xCE - Cmd_jumpifnodamage, // 0xCF - Cmd_settaunt, // 0xD0 - Cmd_trysethelpinghand, // 0xD1 - Cmd_tryswapitems, // 0xD2 - Cmd_trycopyability, // 0xD3 - Cmd_trywish, // 0xD4 - Cmd_settoxicspikes, // 0xD5 - Cmd_setgastroacid, // 0xD6 - Cmd_setyawn, // 0xD7 - Cmd_setdamagetohealthdifference, // 0xD8 - Cmd_setroom, // 0xD9 - Cmd_tryswapabilities, // 0xDA - Cmd_tryimprison, // 0xDB - Cmd_setstealthrock, // 0xDC - Cmd_setuserstatus3, // 0xDD - Cmd_assistattackselect, // 0xDE - Cmd_trysetmagiccoat, // 0xDF - Cmd_trysetsnatch, // 0xE0 - Cmd_trygetintimidatetarget, // 0xE1 - Cmd_switchoutabilities, // 0xE2 - Cmd_jumpifhasnohp, // 0xE3 - Cmd_getsecretpowereffect, // 0xE4 - Cmd_pickup, // 0xE5 - Cmd_docastformchangeanimation, // 0xE6 - Cmd_trycastformdatachange, // 0xE7 - Cmd_settypebasedhalvers, // 0xE8 - Cmd_jumpifsubstituteblocks, // 0xE9 - Cmd_tryrecycleitem, // 0xEA - Cmd_settypetoterrain, // 0xEB - Cmd_pursuitrelated, // 0xEC - Cmd_snatchsetbattlers, // 0xED - Cmd_removelightscreenreflect, // 0xEE - Cmd_handleballthrow, // 0xEF - Cmd_givecaughtmon, // 0xF0 - Cmd_trysetcaughtmondexflags, // 0xF1 - Cmd_displaydexinfo, // 0xF2 - Cmd_trygivecaughtmonnick, // 0xF3 - Cmd_subattackerhpbydmg, // 0xF4 - Cmd_removeattackerstatus1, // 0xF5 - Cmd_finishaction, // 0xF6 - Cmd_finishturn, // 0xF7 - Cmd_trainerslideout, // 0xF8 - Cmd_settelekinesis, // 0xF9 - Cmd_swapstatstages, // 0xFA - Cmd_averagestats, // 0xFB - Cmd_jumpifoppositegenders, // 0xFC - Cmd_trygetbaddreamstarget, // 0xFD - Cmd_tryworryseed, // 0xFE - Cmd_metalburstdamagecalculator, // 0xFF + Cmd_attackcanceler, // 0x0 + Cmd_accuracycheck, // 0x1 + Cmd_attackstring, // 0x2 + Cmd_ppreduce, // 0x3 + Cmd_critcalc, // 0x4 + Cmd_damagecalc, // 0x5 + Cmd_typecalc, // 0x6 + Cmd_adjustdamage, // 0x7 + Cmd_multihitresultmessage, // 0x8 + Cmd_attackanimation, // 0x9 + Cmd_waitanimation, // 0xA + Cmd_healthbarupdate, // 0xB + Cmd_datahpupdate, // 0xC + Cmd_critmessage, // 0xD + Cmd_effectivenesssound, // 0xE + Cmd_resultmessage, // 0xF + Cmd_printstring, // 0x10 + Cmd_printselectionstring, // 0x11 + Cmd_waitmessage, // 0x12 + Cmd_printfromtable, // 0x13 + Cmd_printselectionstringfromtable, // 0x14 + Cmd_seteffectwithchance, // 0x15 + Cmd_seteffectprimary, // 0x16 + Cmd_seteffectsecondary, // 0x17 + Cmd_clearstatusfromeffect, // 0x18 + Cmd_tryfaintmon, // 0x19 + Cmd_dofaintanimation, // 0x1A + Cmd_cleareffectsonfaint, // 0x1B + Cmd_jumpifstatus, // 0x1C + Cmd_jumpifstatus2, // 0x1D + Cmd_jumpifability, // 0x1E + Cmd_jumpifsideaffecting, // 0x1F + Cmd_jumpifstat, // 0x20 + Cmd_jumpifstatus3condition, // 0x21 + Cmd_jumpbasedontype, // 0x22 + Cmd_getexp, // 0x23 + atk24, // 0x24 + Cmd_movevaluescleanup, // 0x25 + Cmd_setmultihit, // 0x26 + Cmd_decrementmultihit, // 0x27 + Cmd_goto, // 0x28 + Cmd_jumpifbyte, // 0x29 + Cmd_jumpifhalfword, // 0x2A + Cmd_jumpifword, // 0x2B + Cmd_jumpifarrayequal, // 0x2C + Cmd_jumpifarraynotequal, // 0x2D + Cmd_setbyte, // 0x2E + Cmd_addbyte, // 0x2F + Cmd_subbyte, // 0x30 + Cmd_copyarray, // 0x31 + Cmd_copyarraywithindex, // 0x32 + Cmd_orbyte, // 0x33 + Cmd_orhalfword, // 0x34 + Cmd_orword, // 0x35 + Cmd_bicbyte, // 0x36 + Cmd_bichalfword, // 0x37 + Cmd_bicword, // 0x38 + Cmd_pause, // 0x39 + Cmd_waitstate, // 0x3A + Cmd_update, // 0x3B + Cmd_return, // 0x3C + Cmd_end, // 0x3D + Cmd_end2, // 0x3E + Cmd_end3, // 0x3F + Cmd_jumpifaffectedbyprotect, // 0x40 + Cmd_call, // 0x41 + Cmd_setroost, // 0x42 + Cmd_jumpifabilitypresent, // 0x43 + Cmd_endselectionscript, // 0x44 + Cmd_playanimation, // 0x45 + Cmd_playanimation2, // 0x46 + Cmd_setgraphicalstatchangevalues, // 0x47 + Cmd_playstatchangeanimation, // 0x48 + Cmd_moveend, // 0x49 + Cmd_sethealblock, // 0x4A + Cmd_returnatktoball, // 0x4B + Cmd_getswitchedmondata, // 0x4C + Cmd_switchindataupdate, // 0x4D + Cmd_switchinanim, // 0x4E + Cmd_jumpifcantswitch, // 0x4F + Cmd_openpartyscreen, // 0x50 + Cmd_switchhandleorder, // 0x51 + Cmd_switchineffects, // 0x52 + Cmd_trainerslidein, // 0x53 + Cmd_playse, // 0x54 + Cmd_fanfare, // 0x55 + Cmd_playfaintcry, // 0x56 + atk57, // 0x57 + Cmd_returntoball, // 0x58 + Cmd_handlelearnnewmove, // 0x59 + Cmd_yesnoboxlearnmove, // 0x5A + Cmd_yesnoboxstoplearningmove, // 0x5B + Cmd_hitanimation, // 0x5C + Cmd_getmoneyreward, // 0x5D + atk5E, // 0x5E + Cmd_swapattackerwithtarget, // 0x5F + Cmd_incrementgamestat, // 0x60 + Cmd_drawpartystatussummary, // 0x61 + Cmd_hidepartystatussummary, // 0x62 + Cmd_jumptocalledmove, // 0x63 + Cmd_statusanimation, // 0x64 + Cmd_status2animation, // 0x65 + Cmd_chosenstatusanimation, // 0x66 + Cmd_yesnobox, // 0x67 + Cmd_cancelallactions, // 0x68 + Cmd_setgravity, // 0x69 + Cmd_removeitem, // 0x6A + Cmd_atknameinbuff1, // 0x6B + Cmd_drawlvlupbox, // 0x6C + Cmd_resetsentmonsvalue, // 0x6D + Cmd_setatktoplayer0, // 0x6E + Cmd_makevisible, // 0x6F + Cmd_recordability, // 0x70 + Cmd_buffermovetolearn, // 0x71 + Cmd_jumpifplayerran, // 0x72 + Cmd_hpthresholds, // 0x73 + Cmd_hpthresholds2, // 0x74 + Cmd_useitemonopponent, // 0x75 + Cmd_various, // 0x76 + Cmd_setprotectlike, // 0x77 + Cmd_faintifabilitynotdamp, // 0x78 + Cmd_setatkhptozero, // 0x79 + Cmd_jumpifnexttargetvalid, // 0x7A + Cmd_tryhealhalfhealth, // 0x7B + Cmd_trymirrormove, // 0x7C + Cmd_setrain, // 0x7D + Cmd_setreflect, // 0x7E + Cmd_setseeded, // 0x7F + Cmd_manipulatedamage, // 0x80 + Cmd_trysetrest, // 0x81 + Cmd_jumpifnotfirstturn, // 0x82 + Cmd_setmiracleeye, // 0x83 + Cmd_jumpifcantmakeasleep, // 0x84 + Cmd_stockpile, // 0x85 + Cmd_stockpiletobasedamage, // 0x86 + Cmd_stockpiletohpheal, // 0x87 + Cmd_setdrainedhp, // 0x88 + Cmd_statbuffchange, // 0x89 + Cmd_normalisebuffs, // 0x8A + Cmd_setbide, // 0x8B + Cmd_confuseifrepeatingattackends, // 0x8C + Cmd_setmultihitcounter, // 0x8D + Cmd_initmultihitstring, // 0x8E + Cmd_forcerandomswitch, // 0x8F + Cmd_tryconversiontypechange, // 0x90 + Cmd_givepaydaymoney, // 0x91 + Cmd_setlightscreen, // 0x92 + Cmd_tryKO, // 0x93 + Cmd_damagetohalftargethp, // 0x94 + Cmd_setsandstorm, // 0x95 + Cmd_weatherdamage, // 0x96 + Cmd_tryinfatuating, // 0x97 + Cmd_updatestatusicon, // 0x98 + Cmd_setmist, // 0x99 + Cmd_setfocusenergy, // 0x9A + Cmd_transformdataexecution, // 0x9B + Cmd_setsubstitute, // 0x9C + Cmd_mimicattackcopy, // 0x9D + Cmd_metronome, // 0x9E + Cmd_dmgtolevel, // 0x9F + Cmd_psywavedamageeffect, // 0xA0 + Cmd_counterdamagecalculator, // 0xA1 + Cmd_mirrorcoatdamagecalculator, // 0xA2 + Cmd_disablelastusedattack, // 0xA3 + Cmd_trysetencore, // 0xA4 + Cmd_painsplitdmgcalc, // 0xA5 + Cmd_settypetorandomresistance, // 0xA6 + Cmd_setalwayshitflag, // 0xA7 + Cmd_copymovepermanently, // 0xA8 + Cmd_trychoosesleeptalkmove, // 0xA9 + Cmd_setdestinybond, // 0xAA + Cmd_trysetdestinybondtohappen, // 0xAB + Cmd_settailwind, // 0xAC + Cmd_tryspiteppreduce, // 0xAD + Cmd_healpartystatus, // 0xAE + Cmd_cursetarget, // 0xAF + Cmd_trysetspikes, // 0xB0 + Cmd_setforesight, // 0xB1 + Cmd_trysetperishsong, // 0xB2 + Cmd_handlerollout, // 0xB3 + Cmd_jumpifconfusedandstatmaxed, // 0xB4 + Cmd_handlefurycutter, // 0xB5 + Cmd_setembargo, // 0xB6 + Cmd_presentdamagecalculation, // 0xB7 + Cmd_setsafeguard, // 0xB8 + Cmd_magnitudedamagecalculation, // 0xB9 + Cmd_jumpifnopursuitswitchdmg, // 0xBA + Cmd_setsunny, // 0xBB + Cmd_maxattackhalvehp, // 0xBC + Cmd_copyfoestats, // 0xBD + Cmd_rapidspinfree, // 0xBE + Cmd_setdefensecurlbit, // 0xBF + Cmd_recoverbasedonsunlight, // 0xC0 + Cmd_setstickyweb, // 0xC1 + Cmd_selectfirstvalidtarget, // 0xC2 + Cmd_trysetfutureattack, // 0xC3 + Cmd_trydobeatup, // 0xC4 + Cmd_setsemiinvulnerablebit, // 0xC5 + Cmd_clearsemiinvulnerablebit, // 0xC6 + Cmd_setminimize, // 0xC7 + Cmd_sethail, // 0xC8 + Cmd_jumpifattackandspecialattackcannotfall, // 0xC9 + Cmd_setforcedtarget, // 0xCA + Cmd_setcharge, // 0xCB + Cmd_callterrainattack, // 0xCC + Cmd_cureifburnedparalysedorpoisoned, // 0xCD + Cmd_settorment, // 0xCE + Cmd_jumpifnodamage, // 0xCF + Cmd_settaunt, // 0xD0 + Cmd_trysethelpinghand, // 0xD1 + Cmd_tryswapitems, // 0xD2 + Cmd_trycopyability, // 0xD3 + Cmd_trywish, // 0xD4 + Cmd_settoxicspikes, // 0xD5 + Cmd_setgastroacid, // 0xD6 + Cmd_setyawn, // 0xD7 + Cmd_setdamagetohealthdifference, // 0xD8 + Cmd_setroom, // 0xD9 + Cmd_tryswapabilities, // 0xDA + Cmd_tryimprison, // 0xDB + Cmd_setstealthrock, // 0xDC + Cmd_setuserstatus3, // 0xDD + Cmd_assistattackselect, // 0xDE + Cmd_trysetmagiccoat, // 0xDF + Cmd_trysetsnatch, // 0xE0 + Cmd_trygetintimidatetarget, // 0xE1 + Cmd_switchoutabilities, // 0xE2 + Cmd_jumpifhasnohp, // 0xE3 + Cmd_getsecretpowereffect, // 0xE4 + Cmd_pickup, // 0xE5 + Cmd_docastformchangeanimation, // 0xE6 + Cmd_trycastformdatachange, // 0xE7 + Cmd_settypebasedhalvers, // 0xE8 + Cmd_jumpifsubstituteblocks, // 0xE9 + Cmd_tryrecycleitem, // 0xEA + Cmd_settypetoterrain, // 0xEB + Cmd_pursuitrelated, // 0xEC + Cmd_snatchsetbattlers, // 0xED + Cmd_removelightscreenreflect, // 0xEE + Cmd_handleballthrow, // 0xEF + Cmd_givecaughtmon, // 0xF0 + Cmd_trysetcaughtmondexflags, // 0xF1 + Cmd_displaydexinfo, // 0xF2 + Cmd_trygivecaughtmonnick, // 0xF3 + Cmd_subattackerhpbydmg, // 0xF4 + Cmd_removeattackerstatus1, // 0xF5 + Cmd_finishaction, // 0xF6 + Cmd_finishturn, // 0xF7 + Cmd_trainerslideout, // 0xF8 + Cmd_settelekinesis, // 0xF9 + Cmd_swapstatstages, // 0xFA + Cmd_averagestats, // 0xFB + Cmd_jumpifoppositegenders, // 0xFC + Cmd_trygetbaddreamstarget, // 0xFD + Cmd_tryworryseed, // 0xFE + Cmd_metalburstdamagecalculator, // 0xFF }; struct StatFractions diff --git a/src/battle_util.c b/src/battle_util.c index c31c2c9d9..0c12318d5 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -908,25 +908,25 @@ static const u16 sPercentToModifier[] = static const u16 sTypeEffectivenessTable[NUMBER_OF_MON_TYPES][NUMBER_OF_MON_TYPES] = { // normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark fairy - {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(0.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0)}, // normal - {X(2.0), X(1.0), X(0.5), X(0.5), X(1.0), X(2.0), X(0.5), X(0.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(2.0), X(1.0), X(2.0), X(0.5)}, // fight - {X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(0.5), X(2.0), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(2.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0)}, // flying - {X(1.0), X(1.0), X(1.0), X(0.5), X(0.5), X(0.5), X(1.0), X(0.5), X(0.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0)}, // poison - {X(1.0), X(1.0), X(0.0), X(2.0), X(1.0), X(2.0), X(0.5), X(1.0), X(2.0), X(1.0), X(2.0), X(1.0), X(0.5), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0)}, // ground - {X(1.0), X(0.5), X(2.0), X(1.0), X(0.5), X(1.0), X(2.0), X(1.0), X(0.5), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0)}, // rock - {X(1.0), X(0.5), X(0.5), X(0.5), X(1.0), X(1.0), X(1.0), X(0.5), X(0.5), X(1.0), X(0.5), X(1.0), X(2.0), X(1.0), X(2.0), X(1.0), X(1.0), X(2.0), X(0.5)}, // bug - {X(0.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(0.5), X(1.0)}, // ghost - {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(0.5), X(1.0), X(0.5), X(0.5), X(1.0), X(0.5), X(1.0), X(2.0), X(1.0), X(1.0), X(2.0)}, // steel - {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0)}, // mystery - {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(2.0), X(1.0), X(2.0), X(1.0), X(0.5), X(0.5), X(2.0), X(1.0), X(1.0), X(2.0), X(0.5), X(1.0), X(1.0)}, // fire - {X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(0.5), X(0.5), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0)}, // water - {X(1.0), X(1.0), X(0.5), X(0.5), X(2.0), X(2.0), X(0.5), X(1.0), X(0.5), X(1.0), X(0.5), X(2.0), X(0.5), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0)}, // grass - {X(1.0), X(1.0), X(2.0), X(1.0), X(0.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(0.5), X(0.5), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0)}, // electric - {X(1.0), X(2.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0), X(0.0), X(1.0)}, // psychic - {X(1.0), X(1.0), X(2.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(0.5), X(0.5), X(2.0), X(1.0), X(1.0), X(0.5), X(2.0), X(1.0), X(1.0)}, // ice - {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(0.0)}, // dragon - {X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(0.5), X(0.5)}, // dark - {X(1.0), X(2.0), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(2.0), X(1.0)}, // fairy + {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(0.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0)}, // normal + {X(2.0), X(1.0), X(0.5), X(0.5), X(1.0), X(2.0), X(0.5), X(0.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(2.0), X(1.0), X(2.0), X(0.5)}, // fight + {X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(0.5), X(2.0), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(2.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0)}, // flying + {X(1.0), X(1.0), X(1.0), X(0.5), X(0.5), X(0.5), X(1.0), X(0.5), X(0.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0)}, // poison + {X(1.0), X(1.0), X(0.0), X(2.0), X(1.0), X(2.0), X(0.5), X(1.0), X(2.0), X(1.0), X(2.0), X(1.0), X(0.5), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0)}, // ground + {X(1.0), X(0.5), X(2.0), X(1.0), X(0.5), X(1.0), X(2.0), X(1.0), X(0.5), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0)}, // rock + {X(1.0), X(0.5), X(0.5), X(0.5), X(1.0), X(1.0), X(1.0), X(0.5), X(0.5), X(1.0), X(0.5), X(1.0), X(2.0), X(1.0), X(2.0), X(1.0), X(1.0), X(2.0), X(0.5)}, // bug + {X(0.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(0.5), X(1.0)}, // ghost + {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(0.5), X(1.0), X(0.5), X(0.5), X(1.0), X(0.5), X(1.0), X(2.0), X(1.0), X(1.0), X(2.0)}, // steel + {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0)}, // mystery + {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(2.0), X(1.0), X(2.0), X(1.0), X(0.5), X(0.5), X(2.0), X(1.0), X(1.0), X(2.0), X(0.5), X(1.0), X(1.0)}, // fire + {X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(0.5), X(0.5), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0)}, // water + {X(1.0), X(1.0), X(0.5), X(0.5), X(2.0), X(2.0), X(0.5), X(1.0), X(0.5), X(1.0), X(0.5), X(2.0), X(0.5), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0)}, // grass + {X(1.0), X(1.0), X(2.0), X(1.0), X(0.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(0.5), X(0.5), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0)}, // electric + {X(1.0), X(2.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0), X(0.0), X(1.0)}, // psychic + {X(1.0), X(1.0), X(2.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(0.5), X(0.5), X(2.0), X(1.0), X(1.0), X(0.5), X(2.0), X(1.0), X(1.0)}, // ice + {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(0.0)}, // dragon + {X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(0.5), X(0.5)}, // dark + {X(1.0), X(2.0), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(2.0), X(1.0)}, // fairy }; static const u16 sInverseTypeEffectivenessTable[NUMBER_OF_MON_TYPES][NUMBER_OF_MON_TYPES] = @@ -1330,7 +1330,7 @@ static bool32 IsBelchPreventingMove(u32 battler, u32 move) u8 TrySetCantSelectMoveBattleScript(void) { u32 limitations = 0; - u8 moveId = gBattleResources->bufferB[gActiveBattler][2] & ~(RET_MEGA_EVOLUTION); + u8 moveId = gBattleResources->bufferB[gActiveBattler][2] & ~(RET_MEGA_EVOLUTION); u32 move = gBattleMons[gActiveBattler].moves[moveId]; u32 holdEffect = GetBattlerHoldEffect(gActiveBattler, TRUE); u16 *choicedMove = &gBattleStruct->choicedMove[gActiveBattler]; @@ -1586,32 +1586,32 @@ u8 GetImprisonedMovesCount(u8 battlerId, u16 move) enum { - ENDTURN_ORDER, - ENDTURN_REFLECT, - ENDTURN_LIGHT_SCREEN, - ENDTURN_AURORA_VEIL, - ENDTURN_MIST, - ENDTURN_LUCKY_CHANT, - ENDTURN_SAFEGUARD, - ENDTURN_TAILWIND, - ENDTURN_WISH, - ENDTURN_RAIN, - ENDTURN_SANDSTORM, - ENDTURN_SUN, - ENDTURN_HAIL, - ENDTURN_GRAVITY, - ENDTURN_WATER_SPORT, - ENDTURN_MUD_SPORT, - ENDTURN_TRICK_ROOM, - ENDTURN_WONDER_ROOM, - ENDTURN_MAGIC_ROOM, - ENDTURN_ELECTRIC_TERRAIN, - ENDTURN_MISTY_TERRAIN, - ENDTURN_GRASSY_TERRAIN, - ENDTURN_PSYCHIC_TERRAIN, - ENDTURN_ION_DELUGE, - ENDTURN_FAIRY_LOCK, - ENDTURN_FIELD_COUNT, + ENDTURN_ORDER, + ENDTURN_REFLECT, + ENDTURN_LIGHT_SCREEN, + ENDTURN_AURORA_VEIL, + ENDTURN_MIST, + ENDTURN_LUCKY_CHANT, + ENDTURN_SAFEGUARD, + ENDTURN_TAILWIND, + ENDTURN_WISH, + ENDTURN_RAIN, + ENDTURN_SANDSTORM, + ENDTURN_SUN, + ENDTURN_HAIL, + ENDTURN_GRAVITY, + ENDTURN_WATER_SPORT, + ENDTURN_MUD_SPORT, + ENDTURN_TRICK_ROOM, + ENDTURN_WONDER_ROOM, + ENDTURN_MAGIC_ROOM, + ENDTURN_ELECTRIC_TERRAIN, + ENDTURN_MISTY_TERRAIN, + ENDTURN_GRASSY_TERRAIN, + ENDTURN_PSYCHIC_TERRAIN, + ENDTURN_ION_DELUGE, + ENDTURN_FAIRY_LOCK, + ENDTURN_FIELD_COUNT, }; u8 DoFieldEndTurnEffects(void) @@ -2048,36 +2048,36 @@ enum ENDTURN_INGRAIN, ENDTURN_AQUA_RING, ENDTURN_ABILITIES, - ENDTURN_ITEMS1, - ENDTURN_LEECH_SEED, - ENDTURN_POISON, - ENDTURN_BAD_POISON, - ENDTURN_BURN, - ENDTURN_NIGHTMARES, - ENDTURN_CURSE, - ENDTURN_WRAP, - ENDTURN_UPROAR, - ENDTURN_THRASH, - ENDTURN_FLINCH, - ENDTURN_DISABLE, - ENDTURN_ENCORE, - ENDTURN_MAGNET_RISE, - ENDTURN_TELEKINESIS, - ENDTURN_HEALBLOCK, - ENDTURN_EMBARGO, - ENDTURN_LOCK_ON, - ENDTURN_CHARGE, - ENDTURN_LASER_FOCUS, - ENDTURN_TAUNT, - ENDTURN_YAWN, - ENDTURN_ITEMS2, - ENDTURN_ORBS, - ENDTURN_ROOST, - ENDTURN_ELECTRIFY, - ENDTURN_POWDER, - ENDTURN_THROAT_CHOP, - ENDTURN_SLOW_START, - ENDTURN_BATTLER_COUNT + ENDTURN_ITEMS1, + ENDTURN_LEECH_SEED, + ENDTURN_POISON, + ENDTURN_BAD_POISON, + ENDTURN_BURN, + ENDTURN_NIGHTMARES, + ENDTURN_CURSE, + ENDTURN_WRAP, + ENDTURN_UPROAR, + ENDTURN_THRASH, + ENDTURN_FLINCH, + ENDTURN_DISABLE, + ENDTURN_ENCORE, + ENDTURN_MAGNET_RISE, + ENDTURN_TELEKINESIS, + ENDTURN_HEALBLOCK, + ENDTURN_EMBARGO, + ENDTURN_LOCK_ON, + ENDTURN_CHARGE, + ENDTURN_LASER_FOCUS, + ENDTURN_TAUNT, + ENDTURN_YAWN, + ENDTURN_ITEMS2, + ENDTURN_ORBS, + ENDTURN_ROOST, + ENDTURN_ELECTRIFY, + ENDTURN_POWDER, + ENDTURN_THROAT_CHOP, + ENDTURN_SLOW_START, + ENDTURN_BATTLER_COUNT }; // Ingrain, Leech Seed, Strength Sap and Aqua Ring @@ -4546,7 +4546,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA // Set bit and save Dancer mon's original target gSpecialStatuses[battler].dancerUsedMove = 1; gSpecialStatuses[battler].dancerOriginalTarget = *(gBattleStruct->moveTarget + battler) | 0x4; - gBattleStruct->atkCancellerTracker = 0; + gBattleStruct->atkCancellerTracker = 0; gBattlerAttacker = gBattlerAbility = battler; gCalledMove = gCurrentMove; @@ -4797,8 +4797,8 @@ u32 GetBattlerAbility(u8 battlerId) && gActionsByTurnOrder[gBattlerByTurnOrder[gBattlerAttacker]] == B_ACTION_USE_MOVE && gCurrentTurnActionNumber < gBattlersCount) return ABILITY_NONE; - else - return gBattleMons[battlerId].ability; + else + return gBattleMons[battlerId].ability; } u32 IsAbilityOnSide(u32 battlerId, u32 ability) @@ -6096,8 +6096,8 @@ bool32 IsMoveMakingContact(u16 move, u8 battlerAtk) return FALSE; else if (GetBattlerHoldEffect(battlerAtk, TRUE) == HOLD_EFFECT_PROTECTIVE_PADS) return FALSE; - else - return TRUE; + else + return TRUE; } bool32 IsBattlerGrounded(u8 battlerId) @@ -6123,7 +6123,7 @@ bool32 IsBattlerGrounded(u8 battlerId) return FALSE; else - return TRUE; + return TRUE; } bool32 IsBattlerAlive(u8 battlerId) @@ -6134,8 +6134,8 @@ bool32 IsBattlerAlive(u8 battlerId) return FALSE; else if (gAbsentBattlerFlags & gBitTable[battlerId]) return FALSE; - else - return TRUE; + else + return TRUE; } u8 GetBattleMonMoveSlot(struct BattlePokemon *battleMon, u16 move) diff --git a/src/data/text/move_descriptions.h b/src/data/text/move_descriptions.h index 573c8785f..44f61ffe0 100644 --- a/src/data/text/move_descriptions.h +++ b/src/data/text/move_descriptions.h @@ -1422,360 +1422,360 @@ static const u8 sROOSTDescription[] = _( "half of its max HP."); static const u8 sGRAVITYDescription[] = _( - "Gravity is intensified\n" - "negating levitation."); + "Gravity is intensified\n" + "negating levitation."); static const u8 sMIRACLE_EYEDescription[] = _( - "Makes GHOSTS and evasive\n" - "foes easier to hit."); + "Makes GHOSTS and evasive\n" + "foes easier to hit."); static const u8 sWAKE_UP_SLAPDescription[] = _( - "Powerful against sleeping\n" - "foes, but also heals them."); + "Powerful against sleeping\n" + "foes, but also heals them."); static const u8 sHAMMER_ARMDescription[] = _( - "A swinging fist attack\n" - "that also lowers Speed."); + "A swinging fist attack\n" + "that also lowers Speed."); static const u8 sGYRO_BALLDescription[] = _( - "A high-speed spin that does\n" - "more damage to faster foes."); + "A high-speed spin that does\n" + "more damage to faster foes."); static const u8 sHEALING_WISHDescription[] = _( - "The user faints to heal up\n" - "the recipient."); + "The user faints to heal up\n" + "the recipient."); static const u8 sBRINEDescription[] = _( - "Does double damage to foes\n" - "with half HP."); + "Does double damage to foes\n" + "with half HP."); static const u8 sNATURAL_GIFTDescription[] = _( - "The effectiveness varies\n" - "with the held Berry."); + "The effectiveness varies\n" + "with the held Berry."); static const u8 sFEINTDescription[] = _( - "An attack that hits foes\n" - "using moves like Protect."); + "An attack that hits foes\n" + "using moves like Protect."); static const u8 sPLUCKDescription[] = _( - "Eats the foe's held Berry\n" - "gaining its effect."); + "Eats the foe's held Berry\n" + "gaining its effect."); static const u8 sTAILWINDDescription[] = _( - "Whips up a turbulent breeze\n" - "that raises Speed."); + "Whips up a turbulent breeze\n" + "that raises Speed."); static const u8 sACUPRESSUREDescription[] = _( - "The user sharply raises\n" - "one of its stats."); + "The user sharply raises\n" + "one of its stats."); static const u8 sMETAL_BURSTDescription[] = _( - "Retaliates any hit with\n" - "greater power."); + "Retaliates any hit with\n" + "greater power."); static const u8 sU_TURNDescription[] = _( - "Does damage then switches\n" - "out the user."); + "Does damage then switches\n" + "out the user."); static const u8 sCLOSE_COMBATDescription[] = _( - "A strong attack but lowers\n" - "the defensive stats."); + "A strong attack but lowers\n" + "the defensive stats."); static const u8 sPAYBACKDescription[] = _( - "An attack that gains power\n" - "if the user moves last."); + "An attack that gains power\n" + "if the user moves last."); static const u8 sASSURANCEDescription[] = _( - "An attack that gains power\n" - "if the foe has been hurt."); + "An attack that gains power\n" + "if the foe has been hurt."); static const u8 sEMBARGODescription[] = _( - "Prevents the foe from\n" - "using any items."); + "Prevents the foe from\n" + "using any items."); static const u8 sFLINGDescription[] = _( - "The effectiveness varies\n" - "with the held item."); + "The effectiveness varies\n" + "with the held item."); static const u8 sPSYCHO_SHIFTDescription[] = _( - "Transfers status problems\n" - "to the foe."); + "Transfers status problems\n" + "to the foe."); static const u8 sTRUMP_CARDDescription[] = _( - "The less PP the move has\n" - "the more damage it does."); + "The less PP the move has\n" + "the more damage it does."); static const u8 sHEAL_BLOCKDescription[] = _( - "Prevents the foe from\n" - "recovering any HP."); + "Prevents the foe from\n" + "recovering any HP."); static const u8 sWRING_OUTDescription[] = _( - "The higher the foe's HP\n" - "the more damage caused."); + "The higher the foe's HP\n" + "the more damage caused."); static const u8 sPOWER_TRICKDescription[] = _( - "The user swaps its Attack\n" - "and Defense stats."); + "The user swaps its Attack\n" + "and Defense stats."); static const u8 sGASTRO_ACIDDescription[] = _( - "Stomach acid suppresses\n" - "the foe's ability."); + "Stomach acid suppresses\n" + "the foe's ability."); static const u8 sLUCKY_CHANTDescription[] = _( - "Prevents the foe from\n" - "landing critical hits."); + "Prevents the foe from\n" + "landing critical hits."); static const u8 sME_FIRSTDescription[] = _( - "Executes the foe's attack\n" - "with greater power."); + "Executes the foe's attack\n" + "with greater power."); static const u8 sCOPYCATDescription[] = _( - "The user mimics the last\n" - "move used by a foe."); + "The user mimics the last\n" + "move used by a foe."); static const u8 sPOWER_SWAPDescription[] = _( - "Swaps changes to Attack\n" - "and Sp. Atk with the foe."); + "Swaps changes to Attack\n" + "and Sp. Atk with the foe."); static const u8 sGUARD_SWAPDescription[] = _( - "Swaps changes to Defense\n" - "and Sp. Def with the foe."); + "Swaps changes to Defense\n" + "and Sp. Def with the foe."); static const u8 sPUNISHMENTDescription[] = _( - "Does more damage if the\n" - "foe has powered up."); + "Does more damage if the\n" + "foe has powered up."); static const u8 sLAST_RESORTDescription[] = _( - "Can only be used if every\n" - "other move has been used."); + "Can only be used if every\n" + "other move has been used."); static const u8 sWORRY_SEEDDescription[] = _( - "Plants a seed on the foe\n" - "giving it Insomnia."); + "Plants a seed on the foe\n" + "giving it Insomnia."); static const u8 sSUCKER_PUNCHDescription[] = _( - "Strikes first if the foe\n" - "is preparing an attack."); + "Strikes first if the foe\n" + "is preparing an attack."); static const u8 sTOXIC_SPIKESDescription[] = _( - "Sets spikes that poison a\n" - "foe switching in."); + "Sets spikes that poison a\n" + "foe switching in."); static const u8 sHEART_SWAPDescription[] = _( - "Swaps any stat changes\n" - "with the foe."); + "Swaps any stat changes\n" + "with the foe."); static const u8 sAQUA_RINGDescription[] = _( - "Forms a veil of water\n" - "that restores HP."); + "Forms a veil of water\n" + "that restores HP."); static const u8 sMAGNET_RISEDescription[] = _( - "The user levitates with\n" - "electromagnetism."); + "The user levitates with\n" + "electromagnetism."); static const u8 sFLARE_BLITZDescription[] = _( - "A charge that may burn the\n" - "foe. Also hurts the user."); + "A charge that may burn the\n" + "foe. Also hurts the user."); static const u8 sFORCE_PALMDescription[] = _( - "A shock wave attack that\n" - "may paralyze the foe."); + "A shock wave attack that\n" + "may paralyze the foe."); static const u8 sAURA_SPHEREDescription[] = _( - "Attacks with an aura blast\n" - "that cannot be evaded."); + "Attacks with an aura blast\n" + "that cannot be evaded."); static const u8 sROCK_POLISHDescription[] = _( - "Polishes the body to\n" - "sharply raise Speed."); + "Polishes the body to\n" + "sharply raise Speed."); static const u8 sPOISON_JABDescription[] = _( - "A stabbing attack that\n" - "may poison the foe."); + "A stabbing attack that\n" + "may poison the foe."); static const u8 sDARK_PULSEDescription[] = _( - "Attacks with a horrible\n" - "aura. May cause flinching."); + "Attacks with a horrible\n" + "aura. May cause flinching."); static const u8 sNIGHT_SLASHDescription[] = _( - "Hits as soon as possible.\n" - "High critical-hit ratio."); + "Hits as soon as possible.\n" + "High critical-hit ratio."); static const u8 sAQUA_TAILDescription[] = _( - "The user swings its tail\n" - "like a wave to attack."); + "The user swings its tail\n" + "like a wave to attack."); static const u8 sSEED_BOMBDescription[] = _( - "A barrage of hard seeds\n" - "is fired at the foe."); + "A barrage of hard seeds\n" + "is fired at the foe."); static const u8 sAIR_SLASHDescription[] = _( - "Attacks with a blade of\n" - "air. May cause flinching."); + "Attacks with a blade of\n" + "air. May cause flinching."); static const u8 sX_SCISSORDescription[] = _( - "Slashes the foe with crossed\n" - "scythes, claws, etc."); + "Slashes the foe with crossed\n" + "scythes, claws, etc."); static const u8 sBUG_BUZZDescription[] = _( - "A damaging sound wave that\n" - "may lower Sp. Def."); + "A damaging sound wave that\n" + "may lower Sp. Def."); static const u8 sDRAGON_PULSEDescription[] = _( - "Generates a shock wave to\n" - "damage the foe."); + "Generates a shock wave to\n" + "damage the foe."); static const u8 sDRAGON_RUSHDescription[] = _( - "Tackles the foe with menace.\n" - "May cause flinching."); + "Tackles the foe with menace.\n" + "May cause flinching."); static const u8 sPOWER_GEMDescription[] = _( - "Attacks with rays of light\n" - "that sparkle like diamonds."); + "Attacks with rays of light\n" + "that sparkle like diamonds."); static const u8 sVACUUM_WAVEDescription[] = _( - "Whirls its fists to send\n" - "a wave that strikes first."); + "Whirls its fists to send\n" + "a wave that strikes first."); static const u8 sFOCUS_BLASTDescription[] = _( - "Attacks at full power.\n" - "May lower Sp. Def."); + "Attacks at full power.\n" + "May lower Sp. Def."); static const u8 sENERGY_BALLDescription[] = _( - "Draws power from nature to\n" - "attack. May lower Sp. Def."); + "Draws power from nature to\n" + "attack. May lower Sp. Def."); static const u8 sBRAVE_BIRDDescription[] = _( - "A low altitude charge that\n" - "also hurts the user."); + "A low altitude charge that\n" + "also hurts the user."); static const u8 sEARTH_POWERDescription[] = _( - "Makes the ground erupt with\n" - "power. May lower Sp. Def."); + "Makes the ground erupt with\n" + "power. May lower Sp. Def."); static const u8 sSWITCHEROODescription[] = _( - "Swaps items with the foe\n" - "faster than the eye can see."); + "Swaps items with the foe\n" + "faster than the eye can see."); static const u8 sNASTY_PLOTDescription[] = _( - "Thinks bad thoughts to\n" - "sharply boost Sp. Atk."); + "Thinks bad thoughts to\n" + "sharply boost Sp. Atk."); static const u8 sBULLET_PUNCHDescription[] = _( - "Punches as fast as a bul-\n" - "let. It always hits first."); + "Punches as fast as a bul-\n" + "let. It always hits first."); static const u8 sICE_SHARDDescription[] = _( - "Hurls a chunk of ice that\n" - "always strike first."); + "Hurls a chunk of ice that\n" + "always strike first."); static const u8 sSHADOW_CLAWDescription[] = _( - "Strikes with a shadow claw.\n" - "High critical-hit ratio."); + "Strikes with a shadow claw.\n" + "High critical-hit ratio."); static const u8 sTHUNDER_FANGDescription[] = _( - "May cause flinching or\n" - "leave the foe paralyzed."); + "May cause flinching or\n" + "leave the foe paralyzed."); static const u8 sICE_FANGDescription[] = _( - "May cause flinching or\n" - "leave the foe frozen."); + "May cause flinching or\n" + "leave the foe frozen."); static const u8 sFIRE_FANGDescription[] = _( - "May cause flinching or\n" - "leave the foe with a burn."); + "May cause flinching or\n" + "leave the foe with a burn."); static const u8 sSHADOW_SNEAKDescription[] = _( - "Extends the user's shadow\n" - "to strike first."); + "Extends the user's shadow\n" + "to strike first."); static const u8 sMUD_BOMBDescription[] = _( - "Throws a blob of mud to\n" - "damage and cut accuracy."); + "Throws a blob of mud to\n" + "damage and cut accuracy."); static const u8 sPSYCHO_CUTDescription[] = _( - "Tears with psychic blades.\n" - "High critical-hit ratio."); + "Tears with psychic blades.\n" + "High critical-hit ratio."); static const u8 sZEN_HEADBUTTDescription[] = _( - "Hits with a strong head-\n" - "butt. May cause flinching."); + "Hits with a strong head-\n" + "butt. May cause flinching."); static const u8 sMIRROR_SHOTDescription[] = _( - "Emits a flash of energy to\n" - "damage and cut accuracy."); + "Emits a flash of energy to\n" + "damage and cut accuracy."); static const u8 sFLASH_CANNONDescription[] = _( - "Releases a blast of light\n" - "that may lower Sp. Def."); + "Releases a blast of light\n" + "that may lower Sp. Def."); static const u8 sROCK_CLIMBDescription[] = _( - "A charging attack that may\n" - "confuse the foe."); + "A charging attack that may\n" + "confuse the foe."); static const u8 sDEFOGDescription[] = _( - "Removes obstacles and\n" - "lowers evasion."); + "Removes obstacles and\n" + "lowers evasion."); static const u8 sTRICK_ROOMDescription[] = _( - "Slower POKéMON get to move\n" - "first for 5 turns."); + "Slower POKéMON get to move\n" + "first for 5 turns."); static const u8 sDRACO_METEORDescription[] = _( - "Casts comets onto the foe.\n" - "Harshly lowers the Sp. Atk."); + "Casts comets onto the foe.\n" + "Harshly lowers the Sp. Atk."); static const u8 sDISCHARGEDescription[] = _( - "Zaps the foes with electri-\n" - "city. May paralyze them."); + "Zaps the foes with electri-\n" + "city. May paralyze them."); static const u8 sPOWER_WHIPDescription[] = _( - "Violently lashes the foe\n" - "with vines or tentacles."); + "Violently lashes the foe\n" + "with vines or tentacles."); static const u8 sCROSS_POISONDescription[] = _( - "A slash that may poison a\n" - "foe and do critical damage."); + "A slash that may poison a\n" + "foe and do critical damage."); static const u8 sGUNK_SHOTDescription[] = _( - "Shoots filthy garbage at\n" - "the foe. May also poison."); + "Shoots filthy garbage at\n" + "the foe. May also poison."); static const u8 sIRON_HEADDescription[] = _( - "Slams the foe with a hard\n" - "head. May cause flinching."); + "Slams the foe with a hard\n" + "head. May cause flinching."); static const u8 sMAGNET_BOMBDescription[] = _( - "Launches a magnet that\n" - "strikes without fail."); + "Launches a magnet that\n" + "strikes without fail."); static const u8 sSTONE_EDGEDescription[] = _( - "Stabs the foe with stones.\n" - "High critical-hit ratio."); + "Stabs the foe with stones.\n" + "High critical-hit ratio."); static const u8 sCAPTIVATEDescription[] = _( - "Makes the opposite gender\n" - "sharply reduce its Sp. Atk."); + "Makes the opposite gender\n" + "sharply reduce its Sp. Atk."); static const u8 sSTEALTH_ROCKDescription[] = _( - "Sets floating stones that\n" - "hurt a foe switching in."); + "Sets floating stones that\n" + "hurt a foe switching in."); static const u8 sGRASS_KNOTDescription[] = _( - "A snare attack that does\n" - "more damage to heavier foes."); + "A snare attack that does\n" + "more damage to heavier foes."); static const u8 sCHATTERDescription[] = _( - "Attacks with a sound wave\n" - "that causes confusion."); + "Attacks with a sound wave\n" + "that causes confusion."); static const u8 sJUDGMENTDescription[] = _( - "The type varies with the\n" - "kind of Plate held."); + "The type varies with the\n" + "kind of Plate held."); static const u8 sCHARGE_BEAMDescription[] = _( - "Fires a beam of electricity.\n" - "May raise Sp. Atk."); + "Fires a beam of electricity.\n" + "May raise Sp. Atk."); static const u8 sWOOD_HAMMERDescription[] = _( "Slams the body into a foe\n" @@ -1786,840 +1786,840 @@ static const u8 sAQUA_JETDescription[] = _( "at the foe at a high speed."); static const u8 sATTACK_ORDERDescription[] = _( - "Underlings pummel the foe.\n" - "High critical-hit ratio."); + "Underlings pummel the foe.\n" + "High critical-hit ratio."); static const u8 sDEFEND_ORDERDescription[] = _( - "Raises Defense and Sp. Def\n" - "with a living shield."); + "Raises Defense and Sp. Def\n" + "with a living shield."); static const u8 sHEAL_ORDERDescription[] = _( - "The user's underlings show\n" - "up to heal half its max HP."); + "The user's underlings show\n" + "up to heal half its max HP."); static const u8 sHEAD_SMASHDescription[] = _( - "A life-risking headbutt that\n" - "seriously hurts the user."); + "A life-risking headbutt that\n" + "seriously hurts the user."); static const u8 sDOUBLE_HITDescription[] = _( - "Slams the foe with a tail\n" - "etc. Strikes twice."); + "Slams the foe with a tail\n" + "etc. Strikes twice."); static const u8 sROAR_OF_TIMEDescription[] = _( - "Powerful, but leaves the\n" - "user immobile the next turn."); + "Powerful, but leaves the\n" + "user immobile the next turn."); static const u8 sSPACIAL_RENDDescription[] = _( - "Tears the foe, and space.\n" - "High critical-hit ratio."); + "Tears the foe, and space.\n" + "High critical-hit ratio."); static const u8 sMAGMA_STORMDescription[] = _( - "Traps the foe in a vortex\n" - "of fire for 2 to 5 turns."); + "Traps the foe in a vortex\n" + "of fire for 2 to 5 turns."); static const u8 sDARK_VOIDDescription[] = _( - "Drags the foe into total\n" - "darkness, inducing Sleep."); + "Drags the foe into total\n" + "darkness, inducing Sleep."); static const u8 sSEED_FLAREDescription[] = _( - "Generates a shock wave that\n" - "sharply reduces Sp. Def."); + "Generates a shock wave that\n" + "sharply reduces Sp. Def."); static const u8 sOMINOUS_WINDDescription[] = _( - "A repulsive attack that may\n" - "raise all stats."); + "A repulsive attack that may\n" + "raise all stats."); static const u8 sSHADOW_FORCEDescription[] = _( - "Vanishes on the first turn\n" - "then strikes the next turn."); + "Vanishes on the first turn\n" + "then strikes the next turn."); static const u8 sHONE_CLAWSDescription[] = _( - "Sharpens its claws to raise\n" - "Attack and Accuracy."); + "Sharpens its claws to raise\n" + "Attack and Accuracy."); static const u8 sWIDE_GUARDDescription[] = _( - "Evades wide-ranging attacks\n" - "for one turn."); + "Evades wide-ranging attacks\n" + "for one turn."); static const u8 sGUARD_SPLITDescription[] = _( - "Averages changes to Defense\n" - "and Sp. Def with the foe."); + "Averages changes to Defense\n" + "and Sp. Def with the foe."); static const u8 sPOWER_SPLITDescription[] = _( - "Averages changes to Attack\n" - "and Sp. Atk with the foe."); + "Averages changes to Attack\n" + "and Sp. Atk with the foe."); static const u8 sWONDER_ROOMDescription[] = _( - "Defense and Sp. Def stats\n" - "are swapped for 5 turns."); + "Defense and Sp. Def stats\n" + "are swapped for 5 turns."); static const u8 sPSYSHOCKDescription[] = _( - "Attacks with a psychic wave\n" - "that does physical damage."); + "Attacks with a psychic wave\n" + "that does physical damage."); static const u8 sTAIL_SLAPDescription[] = _( "Strikes the foe with its\n" "tail 2 to 5 times."); static const u8 sVENOSHOCKDescription[] = _( - "Does double damage if the\n" - "foe is poisoned."); + "Does double damage if the\n" + "foe is poisoned."); static const u8 sAUTOTOMIZEDescription[] = _( - "Sheds additional weight to\n" - "sharply boost Speed."); + "Sheds additional weight to\n" + "sharply boost Speed."); static const u8 sRAGE_POWDERDescription[] = _( - "Scatters powder to make\n" - "foes attack only the user."); + "Scatters powder to make\n" + "foes attack only the user."); static const u8 sTELEKINESISDescription[] = _( - "Makes the foe float. It is\n" - "easier to hit for 3 turns."); + "Makes the foe float. It is\n" + "easier to hit for 3 turns."); static const u8 sMAGIC_ROOMDescription[] = _( - "Hold items lose their\n" - "effects for 5 turns."); + "Hold items lose their\n" + "effects for 5 turns."); static const u8 sSMACK_DOWNDescription[] = _( - "Throws a rock to knock the\n" - "foe down to the ground."); + "Throws a rock to knock the\n" + "foe down to the ground."); static const u8 sSTORM_THROWDescription[] = _( - "This attack always results\n" - "in a critical hit."); + "This attack always results\n" + "in a critical hit."); static const u8 sFLAME_BURSTDescription[] = _( - "A bursting flame that does\n" - "damage to all foes."); + "A bursting flame that does\n" + "damage to all foes."); static const u8 sSLUDGE_WAVEDescription[] = _( - "Swamps the foe with a wave\n" - "of sludge. May also poison."); + "Swamps the foe with a wave\n" + "of sludge. May also poison."); static const u8 sQUIVER_DANCEDescription[] = _( - "Dances to raise Sp. Atk\n" - "Sp. Def and Speed."); + "Dances to raise Sp. Atk\n" + "Sp. Def and Speed."); static const u8 sHEAVY_SLAMDescription[] = _( - "Does more damage if the\n" - "user outweighs the foe."); + "Does more damage if the\n" + "user outweighs the foe."); static const u8 sSYNCHRONOISEDescription[] = _( - "An odd shock wave that only\n" - "damages same-type foes."); + "An odd shock wave that only\n" + "damages same-type foes."); static const u8 sELECTRO_BALLDescription[] = _( - "Hurls an orb that does more\n" - "damage to slower foes."); + "Hurls an orb that does more\n" + "damage to slower foes."); static const u8 sSOAKDescription[] = _( - "Sprays water at the foe\n" - "making it Water-type."); + "Sprays water at the foe\n" + "making it Water-type."); static const u8 sFLAME_CHARGEDescription[] = _( - "Attacks in a cloak of\n" - "flames. Raises Speed."); + "Attacks in a cloak of\n" + "flames. Raises Speed."); static const u8 sCOILDescription[] = _( - "Coils up to raise Attack\n" - "Defense and Accuracy."); + "Coils up to raise Attack\n" + "Defense and Accuracy."); static const u8 sLOW_SWEEPDescription[] = _( - "Attacks the foe's legs\n" - "lowering its Speed."); + "Attacks the foe's legs\n" + "lowering its Speed."); static const u8 sACID_SPRAYDescription[] = _( - "Sprays a hide-melting acid.\n" - "Sharply reduces Sp. Def."); + "Sprays a hide-melting acid.\n" + "Sharply reduces Sp. Def."); static const u8 sFOUL_PLAYDescription[] = _( - "The higher the foe's Attack\n" - "the more damage caused."); + "The higher the foe's Attack\n" + "the more damage caused."); static const u8 sSIMPLE_BEAMDescription[] = _( - "A beam that changes the\n" - "foe's ability to Simple."); + "A beam that changes the\n" + "foe's ability to Simple."); static const u8 sENTRAINMENTDescription[] = _( - "Makes the foe mimic the\n" - "user, gaining its ability."); + "Makes the foe mimic the\n" + "user, gaining its ability."); static const u8 sAFTER_YOUDescription[] = _( - "Helps out the foe, letting\n" - "it move next."); + "Helps out the foe, letting\n" + "it move next."); static const u8 sROUNDDescription[] = _( - "A song that inflicts damage.\n" - "Others can join in too."); + "A song that inflicts damage.\n" + "Others can join in too."); static const u8 sECHOED_VOICEDescription[] = _( - "Does more damage every turn\n" - "it is used."); + "Does more damage every turn\n" + "it is used."); static const u8 sCHIP_AWAYDescription[] = _( - "Strikes through the foe's\n" - "stat changes."); + "Strikes through the foe's\n" + "stat changes."); static const u8 sCLEAR_SMOGDescription[] = _( - "Attacks with white haze that\n" - "eliminates all stat changes."); + "Attacks with white haze that\n" + "eliminates all stat changes."); static const u8 sSTORED_POWERDescription[] = _( - "The higher the user's stats\n" - "the more damage caused."); + "The higher the user's stats\n" + "the more damage caused."); static const u8 sQUICK_GUARDDescription[] = _( - "Evades priority attacks\n" - "for one turn."); + "Evades priority attacks\n" + "for one turn."); static const u8 sALLY_SWITCHDescription[] = _( - "The user switches places\n" - "with its partner."); + "The user switches places\n" + "with its partner."); static const u8 sSCALDDescription[] = _( - "Shoots boiling water at the\n" - "foe. May inflict a burn."); + "Shoots boiling water at the\n" + "foe. May inflict a burn."); static const u8 sSHELL_SMASHDescription[] = _( - "Raises offensive stats, but\n" - "lowers defensive stats."); + "Raises offensive stats, but\n" + "lowers defensive stats."); static const u8 sHEAL_PULSEDescription[] = _( - "Recovers up to half the\n" - "target's maximum HP."); + "Recovers up to half the\n" + "target's maximum HP."); static const u8 sHEXDescription[] = _( - "Does double damage if the\n" - "foe has a status problem."); + "Does double damage if the\n" + "foe has a status problem."); static const u8 sSKY_DROPDescription[] = _( - "Takes the foe into the sky\n" - "then drops it the next turn."); + "Takes the foe into the sky\n" + "then drops it the next turn."); static const u8 sSHIFT_GEARDescription[] = _( - "Rotates its gears to raise\n" - "Attack and Speed."); + "Rotates its gears to raise\n" + "Attack and Speed."); static const u8 sCIRCLE_THROWDescription[] = _( - "Knocks the foe away to end\n" - "the battle."); + "Knocks the foe away to end\n" + "the battle."); static const u8 sINCINERATEDescription[] = _( - "Burns up Berries and Gems\n" - "preventing their use."); + "Burns up Berries and Gems\n" + "preventing their use."); static const u8 sQUASHDescription[] = _( - "Suppresses the foe, making\n" - "it move last."); + "Suppresses the foe, making\n" + "it move last."); static const u8 sACROBATICSDescription[] = _( - "Does double damage if the\n" - "user has no item."); + "Does double damage if the\n" + "user has no item."); static const u8 sREFLECT_TYPEDescription[] = _( - "The user reflects the foe's\n" - "type, copying it."); + "The user reflects the foe's\n" + "type, copying it."); static const u8 sRETALIATEDescription[] = _( - "An attack that does more\n" - "damage if an ally fainted."); + "An attack that does more\n" + "damage if an ally fainted."); static const u8 sFINAL_GAMBITDescription[] = _( - "The user faints to damage\n" - "the foe equal to its HP."); + "The user faints to damage\n" + "the foe equal to its HP."); static const u8 sBESTOWDescription[] = _( - "The user gives its held\n" - "item to the foe."); + "The user gives its held\n" + "item to the foe."); static const u8 sINFERNODescription[] = _( - "Powerful and sure to inflict\n" - "a burn, but inaccurate."); + "Powerful and sure to inflict\n" + "a burn, but inaccurate."); static const u8 sWATER_PLEDGEDescription[] = _( - "Attacks with a column of\n" - "water. May make a rainbow."); + "Attacks with a column of\n" + "water. May make a rainbow."); static const u8 sFIRE_PLEDGEDescription[] = _( - "Attacks with a column of\n" - "fire. May burn the grass."); + "Attacks with a column of\n" + "fire. May burn the grass."); static const u8 sGRASS_PLEDGEDescription[] = _( - "Attacks with a column of\n" - "grass. May create a swamp."); + "Attacks with a column of\n" + "grass. May create a swamp."); static const u8 sSTRUGGLE_BUGDescription[] = _( - "Resisting, the user attacks\n" - "the foe. Lowers Sp. Atk."); + "Resisting, the user attacks\n" + "the foe. Lowers Sp. Atk."); static const u8 sBULLDOZEDescription[] = _( - "Stomps down on the ground.\n" - "Lowers Speed."); + "Stomps down on the ground.\n" + "Lowers Speed."); static const u8 sWORK_UPDescription[] = _( - "The user is roused.\n" - "Ups Attack and Sp. Atk."); + "The user is roused.\n" + "Ups Attack and Sp. Atk."); static const u8 sELECTROWEBDescription[] = _( - "Snares the foe with an\n" - "electric net. Lowers Speed."); + "Snares the foe with an\n" + "electric net. Lowers Speed."); static const u8 sWILD_CHARGEDescription[] = _( "An electrical tackle that\n" "also hurts the user."); static const u8 sDRILL_RUNDescription[] = _( - "Spins its body like a drill.\n" - "High critical-hit ratio."); + "Spins its body like a drill.\n" + "High critical-hit ratio."); static const u8 sDUAL_CHOPDescription[] = _( - "Attacks with brutal hits\n" - "that strike twice."); + "Attacks with brutal hits\n" + "that strike twice."); static const u8 sHEART_STAMPDescription[] = _( - "A sudden blow after a cute\n" - "act. May cause flinching."); + "A sudden blow after a cute\n" + "act. May cause flinching."); static const u8 sRAZOR_SHELLDescription[] = _( - "Tears at the foe with sharp\n" - "shells. May lower Defense."); + "Tears at the foe with sharp\n" + "shells. May lower Defense."); static const u8 sLEAF_TORNADODescription[] = _( - "Circles the foe with leaves\n" - "to damage and cut accuracy."); + "Circles the foe with leaves\n" + "to damage and cut accuracy."); static const u8 sSTEAMROLLERDescription[] = _( - "Crushes the foe with its\n" - "body. May cause flinching."); + "Crushes the foe with its\n" + "body. May cause flinching."); static const u8 sCOTTON_GUARDDescription[] = _( - "Wraps its body in cotton.\n" - "Drastically raises Defense."); + "Wraps its body in cotton.\n" + "Drastically raises Defense."); static const u8 sNIGHT_DAZEDescription[] = _( - "Looses a pitch-black shock\n" - "wave. May lower accuracy."); + "Looses a pitch-black shock\n" + "wave. May lower accuracy."); static const u8 sHURRICANEDescription[] = _( - "Traps the foe in a fierce\n" - "wind. May cause confusion."); + "Traps the foe in a fierce\n" + "wind. May cause confusion."); static const u8 sHEAD_CHARGEDescription[] = _( - "A charge using guard hair.\n" - "It hurts the user a little."); + "A charge using guard hair.\n" + "It hurts the user a little."); static const u8 sGEAR_GRINDDescription[] = _( - "Throws two steel gears\n" - "that strike twice."); + "Throws two steel gears\n" + "that strike twice."); static const u8 sTECHNO_BLASTDescription[] = _( - "The type varies with the\n" - "kind of Drive held."); + "The type varies with the\n" + "kind of Drive held."); static const u8 sRELIC_SONGDescription[] = _( - "Attacks with an ancient\n" - "song. May induce sleep."); + "Attacks with an ancient\n" + "song. May induce sleep."); static const u8 sSECRET_SWORDDescription[] = _( - "Cuts with a long horn that\n" - "does physical damage."); + "Cuts with a long horn that\n" + "does physical damage."); static const u8 sGLACIATEDescription[] = _( - "Blows very cold air at the\n" - "foe. It lowers their Speed."); + "Blows very cold air at the\n" + "foe. It lowers their Speed."); static const u8 sBOLT_STRIKEDescription[] = _( - "Strikes with a great amount\n" - "of lightning. May paralyze."); + "Strikes with a great amount\n" + "of lightning. May paralyze."); static const u8 sBLUE_FLAREDescription[] = _( - "Engulfs the foe in a blue\n" - "flame. May inflict a burn."); + "Engulfs the foe in a blue\n" + "flame. May inflict a burn."); static const u8 sFIERY_DANCEDescription[] = _( - "Dances cloaked in flames.\n" - "May raise Sp. Atk."); + "Dances cloaked in flames.\n" + "May raise Sp. Atk."); static const u8 sFREEZE_SHOCKDescription[] = _( - "A powerful 2-turn move that\n" - "may paralyze the foe."); + "A powerful 2-turn move that\n" + "may paralyze the foe."); static const u8 sICE_BURNDescription[] = _( - "A powerful 2-turn move that\n" - "may inflict a burn."); + "A powerful 2-turn move that\n" + "may inflict a burn."); static const u8 sSNARLDescription[] = _( - "Yells and rants at the foe\n" - "lowering its Sp. Atk."); + "Yells and rants at the foe\n" + "lowering its Sp. Atk."); static const u8 sICICLE_CRASHDescription[] = _( - "Drops large icicles on the\n" - "foe. May cause flinching."); + "Drops large icicles on the\n" + "foe. May cause flinching."); static const u8 sV_CREATEDescription[] = _( - "Very powerful, but lowers\n" - "Defense, Sp. Def and Speed."); + "Very powerful, but lowers\n" + "Defense, Sp. Def and Speed."); static const u8 sFUSION_FLAREDescription[] = _( - "Summons a fireball. Works\n" - "well with a thunderbolt."); + "Summons a fireball. Works\n" + "well with a thunderbolt."); static const u8 sFUSION_BOLTDescription[] = _( - "Summons a thunderbolt.\n" - "Works well with a fireball."); + "Summons a thunderbolt.\n" + "Works well with a fireball."); static const u8 sFLYING_PRESSDescription[] = _( - "This attack does FightingDash\n" - "and Flying-type damage."); + "This attack does FightingDash\n" + "and Flying-type damage."); static const u8 sMAT_BLOCKDescription[] = _( - "Evades damaging moves\n" - "for one turn."); + "Evades damaging moves\n" + "for one turn."); static const u8 sBELCHDescription[] = _( - "Lets out a loud belch.\n" - "Must eat a Berry to use it."); + "Lets out a loud belch.\n" + "Must eat a Berry to use it."); static const u8 sROTOTILLERDescription[] = _( - "Ups the Attack and Sp. Atk\n" - "of Grass-type POKéMON."); + "Ups the Attack and Sp. Atk\n" + "of Grass-type POKéMON."); static const u8 sSTICKY_WEBDescription[] = _( - "Weaves a sticky net that\n" - "slows foes switching in."); + "Weaves a sticky net that\n" + "slows foes switching in."); static const u8 sFELL_STINGERDescription[] = _( - "If it knocks out a foe\n" - "the Attack stat is raised."); + "If it knocks out a foe\n" + "the Attack stat is raised."); static const u8 sTRICK_OR_TREATDescription[] = _( - "Goes trick-or-treating\n" - "making the foe Ghost-type."); + "Goes trick-or-treating\n" + "making the foe Ghost-type."); static const u8 sNOBLE_ROARDescription[] = _( - "Intimidates the foe, to cut\n" - "Attack and Sp. Atk."); + "Intimidates the foe, to cut\n" + "Attack and Sp. Atk."); static const u8 sION_DELUGEDescription[] = _( - "Electrifies Normal-type\n" - "moves with charged atoms."); + "Electrifies Normal-type\n" + "moves with charged atoms."); static const u8 sPARABOLIC_CHARGEDescription[] = _( - "Damages adjacent Pokémon and\n" - "heals up by half of it."); + "Damages adjacent Pokémon and\n" + "heals up by half of it."); static const u8 sFORESTS_CURSEDescription[] = _( - "Puts a curse on the foe\n" - "making the foe Grass-type."); + "Puts a curse on the foe\n" + "making the foe Grass-type."); static const u8 sPETAL_BLIZZARDDescription[] = _( - "Stirs up a violent storm\n" - "of petals to attack."); + "Stirs up a violent storm\n" + "of petals to attack."); static const u8 sFREEZE_DRYDescription[] = _( - "Super effective on WaterDash\n" - "types. May cause freezing."); + "Super effective on WaterDash\n" + "types. May cause freezing."); static const u8 sDISARMING_VOICEDescription[] = _( - "Lets out a charming cry\n" - "that cannot be evaded."); + "Lets out a charming cry\n" + "that cannot be evaded."); static const u8 sPARTING_SHOTDescription[] = _( - "Lowers the foe's Attack and\n" - "Sp. Atk, then switches out."); + "Lowers the foe's Attack and\n" + "Sp. Atk, then switches out."); static const u8 sTOPSY_TURVYDescription[] = _( - "Swaps all stat changes that\n" - "affect the target."); + "Swaps all stat changes that\n" + "affect the target."); static const u8 sDRAINING_KISSDescription[] = _( - "An attack that absorbs over\n" - "half the damage inflicted."); + "An attack that absorbs over\n" + "half the damage inflicted."); static const u8 sCRAFTY_SHIELDDescription[] = _( - "Evades status moves for\n" - "one turn."); + "Evades status moves for\n" + "one turn."); static const u8 sFLOWER_SHIELDDescription[] = _( - "Raises the Defense of\n" - "Grass-type POKéMON."); + "Raises the Defense of\n" + "Grass-type POKéMON."); static const u8 sGRASSY_TERRAINDescription[] = _( - "The ground turns to grass\n" - "for 5 turns. Restores HP."); + "The ground turns to grass\n" + "for 5 turns. Restores HP."); static const u8 sMISTY_TERRAINDescription[] = _( - "Covers the ground with mist\n" - "for 5 turns. Blocks status."); + "Covers the ground with mist\n" + "for 5 turns. Blocks status."); static const u8 sELECTRIFYDescription[] = _( - "Electrifies the foe, making\n" - "its next move Electric-type."); + "Electrifies the foe, making\n" + "its next move Electric-type."); static const u8 sPLAY_ROUGHDescription[] = _( - "Plays rough with the foe.\n" - "May lower Attack."); + "Plays rough with the foe.\n" + "May lower Attack."); static const u8 sFAIRY_WINDDescription[] = _( - "Stirs up a fairy wind to\n" - "strike the foe."); + "Stirs up a fairy wind to\n" + "strike the foe."); static const u8 sMOONBLASTDescription[] = _( - "Attacks with the power of\n" - "the moon. May lower Sp. Atk."); + "Attacks with the power of\n" + "the moon. May lower Sp. Atk."); static const u8 sBOOMBURSTDescription[] = _( - "Attacks everything with a\n" - "destructive sound wave."); + "Attacks everything with a\n" + "destructive sound wave."); static const u8 sFAIRY_LOCKDescription[] = _( - "Locks down the battlefield\n" - "preventing escape next turn."); + "Locks down the battlefield\n" + "preventing escape next turn."); static const u8 sKINGS_SHIELDDescription[] = _( - "Evades damage, and sharply\n" - "reduces Attack if struck."); + "Evades damage, and sharply\n" + "reduces Attack if struck."); static const u8 sPLAY_NICEDescription[] = _( - "Befriend the foe, lowering\n" - "its Attack without fail."); + "Befriend the foe, lowering\n" + "its Attack without fail."); static const u8 sCONFIDEDescription[] = _( - "Shares a secret with the\n" - "foe, lowering Sp. Atk."); + "Shares a secret with the\n" + "foe, lowering Sp. Atk."); static const u8 sDIAMOND_STORMDescription[] = _( - "Whips up a storm of\n" - "diamonds. May up Defense."); + "Whips up a storm of\n" + "diamonds. May up Defense."); static const u8 sSTEAM_ERUPTIONDescription[] = _( - "Immerses the foe in heated\n" - "steam. May inflict a burn."); + "Immerses the foe in heated\n" + "steam. May inflict a burn."); static const u8 sHYPERSPACE_HOLEDescription[] = _( - "Uses a warp hole to attack.\n" - "Can't be evaded."); + "Uses a warp hole to attack.\n" + "Can't be evaded."); static const u8 sWATER_SHURIKENDescription[] = _( - "Throws 2 to 5 stars that\n" - "are sure to strike first."); + "Throws 2 to 5 stars that\n" + "are sure to strike first."); static const u8 sMYSTICAL_FIREDescription[] = _( - "Breathes a special, hot\n" - "fire. May lower Sp. Atk."); + "Breathes a special, hot\n" + "fire. May lower Sp. Atk."); static const u8 sSPIKY_SHIELDDescription[] = _( - "Evades attack, and damages\n" - "the foe if struck."); + "Evades attack, and damages\n" + "the foe if struck."); static const u8 sAROMATIC_MISTDescription[] = _( - "Raises the Sp. Def of a\n" - "partner POKéMON."); + "Raises the Sp. Def of a\n" + "partner POKéMON."); static const u8 sEERIE_IMPULSEDescription[] = _( - "Exposes the foe to a pulse\n" - "that sharply cuts Sp. Atk."); + "Exposes the foe to a pulse\n" + "that sharply cuts Sp. Atk."); static const u8 sVENOM_DRENCHDescription[] = _( - "Lowers the Attack, Sp. Atk\n" - "and Speed of a poisoned foe."); + "Lowers the Attack, Sp. Atk\n" + "and Speed of a poisoned foe."); static const u8 sPOWDERDescription[] = _( - "Damages the foe if it uses\n" - "a Fire-type move."); + "Damages the foe if it uses\n" + "a Fire-type move."); static const u8 sGEOMANCYDescription[] = _( - "Raises Sp. Atk, Sp. Def and\n" - "Speed on the 2nd turn."); + "Raises Sp. Atk, Sp. Def and\n" + "Speed on the 2nd turn."); static const u8 sMAGNETIC_FLUXDescription[] = _( - "Boosts the defenses of\n" - "those with Plus or Minus."); + "Boosts the defenses of\n" + "those with Plus or Minus."); static const u8 sHAPPY_HOURDescription[] = _( - "Doubles the amount of\n" - "Prize Money received."); + "Doubles the amount of\n" + "Prize Money received."); static const u8 sELECTRIC_TERRAINDescription[] = _( - "Electrifies the ground for\n" - "5 turns. Prevents sleep."); + "Electrifies the ground for\n" + "5 turns. Prevents sleep."); static const u8 sDAZZLING_GLEAMDescription[] = _( - "Damages foes by emitting\n" - "a bright flash."); + "Damages foes by emitting\n" + "a bright flash."); static const u8 sCELEBRATEDescription[] = _( - "Congratulates you on your\n" - "special day."); + "Congratulates you on your\n" + "special day."); static const u8 sHOLD_HANDSDescription[] = _( - "The user and ally hold hands\n" - "making them happy."); + "The user and ally hold hands\n" + "making them happy."); static const u8 sBABYDOLL_EYESDescription[] = _( - "Lowers the foe's Attack\n" - "before it can move."); + "Lowers the foe's Attack\n" + "before it can move."); static const u8 sNUZZLEDescription[] = _( - "Rubs its cheecks against\n" - "the foe, paralyzing it."); + "Rubs its cheecks against\n" + "the foe, paralyzing it."); static const u8 sINFESTATIONDescription[] = _( - "The foe is infested and\n" - "attacked for 2 to 5 turns."); + "The foe is infested and\n" + "attacked for 2 to 5 turns."); static const u8 sPOWER_UP_PUNCHDescription[] = _( - "A hard punch that raises\n" - "the user's Attack."); + "A hard punch that raises\n" + "the user's Attack."); static const u8 sTHOUSAND_ARROWSDescription[] = _( - "Can hit Flying foes, then\n" - "knocks them to the ground."); + "Can hit Flying foes, then\n" + "knocks them to the ground."); static const u8 sTHOUSAND_WAVESDescription[] = _( - "Those hit by the wave can\n" - "no longer escape."); + "Those hit by the wave can\n" + "no longer escape."); static const u8 sLANDS_WRATHDescription[] = _( - "Gathers the energy of the\n" - "land to attack every foe."); + "Gathers the energy of the\n" + "land to attack every foe."); static const u8 sLIGHT_OF_RUINDescription[] = _( - "Fires a great beam of light\n" - "that also hurts the user."); + "Fires a great beam of light\n" + "that also hurts the user."); static const u8 sORIGIN_PULSEDescription[] = _( - "Beams of glowing blue light\n" - "blast both foes."); + "Beams of glowing blue light\n" + "blast both foes."); static const u8 sPRECIPICE_BLADESDescription[] = _( - "Fearsome blades of stone\n" - "attack both foes."); + "Fearsome blades of stone\n" + "attack both foes."); static const u8 sLAVA_PLUMEDescription[] = _( - "Scarlet flames torch\n" - "everything around the user."); + "Scarlet flames torch\n" + "everything around the user."); static const u8 sLEAF_STORMDescription[] = _( - "Whips up a storm of leaves.\n" - "Harshly lowers the Sp. Atk."); + "Whips up a storm of leaves.\n" + "Harshly lowers the Sp. Atk."); static const u8 sSHORE_UPDescription[] = _( - "Restores the user's HP.\n" - "More HP in a sandstorm."); + "Restores the user's HP.\n" + "More HP in a sandstorm."); static const u8 sFIRST_IMPRESSIONDescription[] = _( - "Hits hard and first.\n" - "Only works first turn."); + "Hits hard and first.\n" + "Only works first turn."); static const u8 sBANEFUL_BUNKERDescription[] = _( - "Protects user and poisons\n" - "foes on contact."); + "Protects user and poisons\n" + "foes on contact."); static const u8 sSPIRIT_SHACKLEDescription[] = _( - "After being hit, foes can\n" - "no longer escape."); + "After being hit, foes can\n" + "no longer escape."); static const u8 sDARKEST_LARIATDescription[] = _( - "Swings the arms to strike\n" - "It ignores stat changes."); + "Swings the arms to strike\n" + "It ignores stat changes."); static const u8 sSPARKLING_ARIADescription[] = _( - "Sings with bubbles. Cures\n" - "burns on contact."); + "Sings with bubbles. Cures\n" + "burns on contact."); static const u8 sICE_HAMMERDescription[] = _( - "Swings the fist to strike.\n" - "Lowers the user's SPEED."); + "Swings the fist to strike.\n" + "Lowers the user's SPEED."); static const u8 sFLORAL_HEALINGDescription[] = _( - "Restores an ally's HP.\n" - "Heals more on grass."); + "Restores an ally's HP.\n" + "Heals more on grass."); static const u8 sHIGH_HORSEPOWERDescription[] = _( - "Slams hard into the foe with\n" - "its entire body."); + "Slams hard into the foe with\n" + "its entire body."); static const u8 sSTRENGTH_SAPDescription[] = _( - "Saps the foe's Attack to\n" - "heal HP, then drops Attack."); + "Saps the foe's Attack to\n" + "heal HP, then drops Attack."); static const u8 sSOLAR_BLADEDescription[] = _( - "Charges first turn, then\n" - "chops with a blade of light."); + "Charges first turn, then\n" + "chops with a blade of light."); static const u8 sLEAFAGEDescription[] = _( - "Attacks with a flurry of\n" - "small leaves."); + "Attacks with a flurry of\n" + "small leaves."); static const u8 sSPOTLIGHTDescription[] = _( - "Makes the foe attack the\n" - "spotlighted POKéMON."); + "Makes the foe attack the\n" + "spotlighted POKéMON."); static const u8 sTOXIC_THREADDescription[] = _( - "Attacks with a thread that\n" - "poisons and drops Speed."); + "Attacks with a thread that\n" + "poisons and drops Speed."); static const u8 sLASER_FOCUSDescription[] = _( - "Guarantees the next move\n" - "will be a critical hit."); + "Guarantees the next move\n" + "will be a critical hit."); static const u8 sGEAR_UPDescription[] = _( - "Boosts the attacks of\n" - "those with Plus or Minus."); + "Boosts the attacks of\n" + "those with Plus or Minus."); static const u8 sTHROAT_CHOPDescription[] = _( - "Chops the throat to disable\n" - "sound moves for a while."); + "Chops the throat to disable\n" + "sound moves for a while."); static const u8 sPOLLEN_PUFFDescription[] = _( - "Explodes on foes, but\n" - "restores ally's HP."); + "Explodes on foes, but\n" + "restores ally's HP."); static const u8 sANCHOR_SHOTDescription[] = _( - "Strangles the foe with a\n" - "chain. The foe can't flinch."); + "Strangles the foe with a\n" + "chain. The foe can't flinch."); static const u8 sPSYCHIC_TERRAINDescription[] = _( - "The ground turns weird for\n" - "5 turns. Blocks priority."); + "The ground turns weird for\n" + "5 turns. Blocks priority."); static const u8 sLUNGEDescription[] = _( - "Lunges at the foe to lower\n" - "its Attack stat."); + "Lunges at the foe to lower\n" + "its Attack stat."); static const u8 sFIRE_LASHDescription[] = _( - "Whips the foe with fire\n" - "lowering its Defense."); + "Whips the foe with fire\n" + "lowering its Defense."); static const u8 sPOWER_TRIPDescription[] = _( - "It hits harder the more\n" - "stat boosts the user has."); + "It hits harder the more\n" + "stat boosts the user has."); static const u8 sBURN_UPDescription[] = _( - "Burns out the user fully\n" - "removing the Fire type."); + "Burns out the user fully\n" + "removing the Fire type."); static const u8 sSPEED_SWAPDescription[] = _( - "Swaps user's Speed with\n" - "the target's."); + "Swaps user's Speed with\n" + "the target's."); static const u8 sSMART_STRIKEDescription[] = _( - "Hits with an accurate\n" - "horn that never misses."); + "Hits with an accurate\n" + "horn that never misses."); static const u8 sPURIFYDescription[] = _( - "Cures the foe's status\n" - "to restore HP."); + "Cures the foe's status\n" + "to restore HP."); static const u8 sREVELATION_DANCEDescription[] = _( - "Dances with mystical power.\n" - "Matches user's first type."); + "Dances with mystical power.\n" + "Matches user's first type."); static const u8 sCORE_ENFORCERDescription[] = _( - "Hits with a ray that\n" - "nullifies the foe's ability."); + "Hits with a ray that\n" + "nullifies the foe's ability."); static const u8 sTROP_KICKDescription[] = _( - "An intense kick from the\n" - "tropics. Lowers Attack."); + "An intense kick from the\n" + "tropics. Lowers Attack."); static const u8 sINSTRUCTDescription[] = _( - "Orders the target to use\n" - "its last move again."); + "Orders the target to use\n" + "its last move again."); static const u8 sBEAK_BLASTDescription[] = _( - "Heats up beak to attack.\n" - "Burns foe on contact."); + "Heats up beak to attack.\n" + "Burns foe on contact."); static const u8 sCLANGING_SCALESDescription[] = _( - "Makes a big noise with\n" - "its scales. Drops Defense."); + "Makes a big noise with\n" + "its scales. Drops Defense."); static const u8 sDRAGON_HAMMERDescription[] = _( - "Swings its whole body\n" - "like a hammer to damage."); + "Swings its whole body\n" + "like a hammer to damage."); static const u8 sBRUTAL_SWINGDescription[] = _( - "Violently swings around\n" - "to hurt everyone nearby."); + "Violently swings around\n" + "to hurt everyone nearby."); static const u8 sAURORA_VEILDescription[] = _( - "Weakens all attacks, but\n" - "only usable with hail."); + "Weakens all attacks, but\n" + "only usable with hail."); static const u8 sSHELL_TRAPDescription[] = _( - "Sets a shell trap that\n" - "damages on contact."); + "Sets a shell trap that\n" + "damages on contact."); static const u8 sFLEUR_CANNONDescription[] = _( - "A strong ray that harshly\n" - "lowers Sp. Attack."); + "A strong ray that harshly\n" + "lowers Sp. Attack."); static const u8 sPSYCHIC_FANGSDescription[] = _( - "Chomps with psychic fangs.\n" - "Destroys any barriers."); + "Chomps with psychic fangs.\n" + "Destroys any barriers."); static const u8 sSTOMPING_TANTRUMDescription[] = _( - "Stomps around angrily.\n" - "Stronger after a failure."); + "Stomps around angrily.\n" + "Stronger after a failure."); static const u8 sSHADOW_BONEDescription[] = _( - "Strikes with a haunted\n" - "bone. Might drop Defense."); + "Strikes with a haunted\n" + "bone. Might drop Defense."); static const u8 sACCELEROCKDescription[] = _( - "Hits with a high-speed\n" - "rock that always goes first."); + "Hits with a high-speed\n" + "rock that always goes first."); static const u8 sLIQUIDATIONDescription[] = _( - "Slams the foe with water.\n" - "Can lower Defense."); + "Slams the foe with water.\n" + "Can lower Defense."); static const u8 sPRISMATIC_LASERDescription[] = _( - "A high power laser that\n" - "forces recharge next turn."); + "A high power laser that\n" + "forces recharge next turn."); static const u8 sSPECTRAL_THIEFDescription[] = _( - "Steals the target's stat\n" - "boosts, then attacks."); + "Steals the target's stat\n" + "boosts, then attacks."); static const u8 sSUNSTEEL_STRIKEDescription[] = _( - "A sun-fueled strike that\n" - "ignores abilities."); + "A sun-fueled strike that\n" + "ignores abilities."); static const u8 sMOONGEIST_BEAMDescription[] = _( - "A moon-powered beam that\n" - "ignores abilities."); + "A moon-powered beam that\n" + "ignores abilities."); static const u8 sTEARFUL_LOOKDescription[] = _( - "The user tears up, dropping\n" - "Attack and Sp. Attack."); + "The user tears up, dropping\n" + "Attack and Sp. Attack."); static const u8 sZING_ZAPDescription[] = _( - "An electrified impact that\n" - "can cause flinching."); + "An electrified impact that\n" + "can cause flinching."); static const u8 sNATURES_MADNESSDescription[] = _( - "Halves the foe's HP with\n" - "the power of nature."); + "Halves the foe's HP with\n" + "the power of nature."); static const u8 sMULTI_ATTACKDescription[] = _( - "An attack that changes\n" - "with Memories."); + "An attack that changes\n" + "with Memories."); static const u8 sMIND_BLOWNDescription[] = _( - "It explodes the user's head\n" - "to damage everything around."); + "It explodes the user's head\n" + "to damage everything around."); static const u8 sPLASMA_FISTSDescription[] = _( - "Hits with electrical fists.\n" - "Normal moves become Electric."); + "Hits with electrical fists.\n" + "Normal moves become Electric."); static const u8 sPHOTON_GEYSERDescription[] = _( - "The foe's highest offensive\n" - "determines its category."); + "The foe's highest offensive\n" + "determines its category."); static const u8 sDOUBLE_IRON_BASHDescription[] = _( "The user spins and hits with\n" @@ -2767,7 +2767,7 @@ static const u8 sSTEEL_BEAMDescription[] = _( "its body. It hurts the user."); static const u8 sNotDoneYetDescription[] = _( - "Not done yet."); + "Not done yet."); // MOVE_NONE is ignored in this table. Make sure to always subtract 1 before getting the right pointer. From ea54afbdc7917afffb8b906c7361793f34a92bfc Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Tue, 20 Oct 2020 10:15:49 -0300 Subject: [PATCH 21/27] Fixed Eerie Impulse's animation again For more details, see: https://github.com/DizzyEggg/pokeemerald/pull/425#issuecomment-672012634 --- data/battle_anim_scripts.s | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index d7353fe6e..a605a8f5d 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -9104,20 +9104,20 @@ Move_EERIE_IMPULSE:: waitforvisualfinish playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER launchtemplate gEerieImpulseImpactTemplate 0x2 0x6 0x0 0xfffb 0x1 0x0 0x20 0x10 - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x5 0x0 0x5 0x0, ANIM_TARGET - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfffb 0xa 0x5 0x1, ANIM_TARGET + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x5 0x0 0x5 0x0 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfffb 0xa 0x5 0x1 delay 0x7 launchtemplate gEerieImpulseImpactTemplate 0x2 0x6 0xfff1 0xa 0x1 0x0 0x20 0x10 - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xf 0x14 0x5 0x2, ANIM_TARGET - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff1 0xfff6 0x5 0x0, ANIM_TARGET + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xf 0x14 0x5 0x2 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff1 0xfff6 0x5 0x0 delay 0x7 launchtemplate gEerieImpulseImpactTemplate 0x2 0x6 0xfff1 0xfff1 0x1 0x0 0x20 0x10 - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x19 0x0 0x5 0x1, ANIM_TARGET - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff8 0x8 0x5 0x2, ANIM_TARGET + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x19 0x0 0x5 0x1 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff8 0x8 0x5 0x2 delay 0x7 launchtemplate gEerieImpulseImpactTemplate 0x2 0x6 0xa 0xfffb 0x1 0x0 0x20 0x10 - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x2 0xfff8 0x5 0x0, ANIM_TARGET - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xffec 0xf 0x5 0x1, ANIM_TARGET + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x2 0xfff8 0x5 0x0 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xffec 0xf 0x5 0x1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end From 22093e75fcd377fc91a7e465a33de14824ea8cfa Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Tue, 20 Oct 2020 10:30:32 -0300 Subject: [PATCH 22/27] Fixed Electrify's animation again For more details, see: https://github.com/DizzyEggg/pokeemerald/pull/425#issuecomment-672012634 --- data/battle_anim_scripts.s | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index d7353fe6e..438162547 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -8570,23 +8570,23 @@ Move_ELECTRIFY:: playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET launchtemplate gElectrifyYellowRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1f 0x8 launchtask AnimTask_ShakeMon 0x5 0x5 ANIM_TARGET 0x4 0x0 0x6 0x1 - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x5 0x0 0x5 0x0, ANIM_TARGET + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x5 0x0 0x5 0x0 delay 0x1 launchtemplate gElectrifyYellowRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1f 0x8 delay 0x1 - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfffb 0xa 0x5 0x1, ANIM_TARGET + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfffb 0xa 0x5 0x1 launchtemplate gElectrifyYellowRingTemplate 0x3 0x6 0x0 0x0 0x1 0x0 0x1f 0x8 delay 0x1 - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xf 0x14 0x5 0x2, ANIM_TARGET - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff1 0xfff6 0x5 0x0, ANIM_TARGET + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xf 0x14 0x5 0x2 + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff1 0xfff6 0x5 0x0 delay 0x2 - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x19 0x0 0x5 0x1, ANIM_TARGET + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x19 0x0 0x5 0x1 delay 0x2 - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff8 0x8 0x5 0x2, ANIM_TARGET + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xfff8 0x8 0x5 0x2 delay 0x2 - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x2 0xfff8 0x5 0x0, ANIM_TARGET + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0x2 0xfff8 0x5 0x0 delay 0x2 - launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xffec 0xf 0x5 0x1, ANIM_TARGET + launchtemplate gElectricitySpriteTemplate 0x82, 0x4, 0xffec 0xf 0x5 0x1 waitforvisualfinish launchtask AnimTask_BlendBattleAnimPal 0xA 0x5 ANIM_PAL_DEF 0x2 0xB 0x0 0x039B launchtask AnimTask_BlendBattleAnimPal 0xa 0x5 ANIM_PAL_BG 0x1 0x3 0x0 0x039B From 4794c63066dd6318827eb95e954137c98910d0e2 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Wed, 21 Oct 2020 11:44:03 -0300 Subject: [PATCH 23/27] Reincorporated badge based stat boosts --- include/battle_util.h | 1 + include/constants/battle_config.h | 1 + src/battle_main.c | 3 ++- src/battle_util.c | 33 +++++++++++++++++++++++++++++++ src/pokemon.c | 15 -------------- 5 files changed, 37 insertions(+), 16 deletions(-) diff --git a/include/battle_util.h b/include/battle_util.h index 2bd6c8cb1..330c0bfb9 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -127,5 +127,6 @@ bool32 CanBattlerGetOrLoseItem(u8 battlerId, u16 itemId); struct Pokemon *GetIllusionMonPtr(u32 battlerId); void ClearIllusionMon(u32 battlerId); bool32 SetIllusionMon(struct Pokemon *mon, u32 battlerId); +static bool8 ShouldGetStatBadgeBoost(u16 flagId, u8 battlerId); #endif // GUARD_BATTLE_UTIL_H diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index dd2fd4186..74e5f24fc 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -70,6 +70,7 @@ #define B_MULTI_HIT_CHANCE GEN_6 // In Gen5+, multi-hit moves have different %. See Cmd_setmultihitcounter for values. #define B_RECOIL_IF_MISS_DMG GEN_6 // In Gen5+, Jump Kick and Hi Jump Kick will always do half of the user's max HP when missing. #define B_PSYWAVE_DMG GEN_6 // Psywave's damage formula. See Cmd_psywavedamageeffect. +#define B_BADGE_BOOST GEN_4 // In Gen4+, Gym Badges no longer boost a Pokémon's stats // Move settings #define B_FELL_STINGER_STAT_RAISE GEN_6 // In Gen7+, it raises Atk by 3 stages instead of 2 if it causes the target to faint. diff --git a/src/battle_main.c b/src/battle_main.c index 3617978ef..830ea0c7a 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4236,7 +4236,8 @@ u32 GetBattlerTotalSpeedStat(u8 battlerId) // player's badge boost if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) && FlagGet(FLAG_BADGE03_GET) - && GetBattlerSide(battlerId) == B_SIDE_PLAYER) + && GetBattlerSide(battlerId) == B_SIDE_PLAYER + && B_BADGE_BOOST == GEN_3) { speed = (speed * 110) / 100; } diff --git a/src/battle_util.c b/src/battle_util.c index c31c2c9d9..c5aae0db8 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -40,6 +40,7 @@ #include "trig.h" #include "window.h" #include "constants/songs.h" +#include "constants/trainers.h" extern const u8 *const gBattleScriptsForMoveEffects[]; extern const u8 *const gBattlescriptsForBallThrow[]; @@ -6936,6 +6937,15 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b break; } + // The attack stat of a Player's Pokémon is boosted by x1.1 (+10%) if they have the 1st and 7th Badges + if (B_BADGE_BOOST == GEN_3) + { + if (ShouldGetStatBadgeBoost(FLAG_BADGE01_GET, battlerAtk) && !(IS_MOVE_SPECIAL(move))) + MulModifier(&modifier, UQ_4_12(1.1)); + if (ShouldGetStatBadgeBoost(FLAG_BADGE07_GET, battlerAtk) && IS_MOVE_SPECIAL(move)) + MulModifier(&modifier, UQ_4_12(1.1)); + } + return ApplyModifier(modifier, atkStat); } @@ -7068,6 +7078,15 @@ static u32 CalcDefenseStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_ROCK) && WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SANDSTORM_ANY && !usesDefStat) MulModifier(&modifier, UQ_4_12(1.5)); + // The defense stat of a Player's Pokémon is boosted by x1.1 (+10%) if they have the 5th and 7th Badges + if (B_BADGE_BOOST == GEN_3) + { + if (ShouldGetStatBadgeBoost(FLAG_BADGE05_GET, battlerDef) && IS_MOVE_PHYSICAL(move)) + MulModifier(&modifier, UQ_4_12(1.1)); + if (ShouldGetStatBadgeBoost(FLAG_BADGE07_GET, battlerDef) && !(IS_MOVE_PHYSICAL(move))) + MulModifier(&modifier, UQ_4_12(1.1)); + } + return ApplyModifier(modifier, defStat); } @@ -7664,3 +7683,17 @@ bool32 SetIllusionMon(struct Pokemon *mon, u32 battlerId) return FALSE; } + +static bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 battlerId) +{ + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) + return FALSE; + else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) + return FALSE; + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) + return FALSE; + else if (FlagGet(badgeFlag)) + return TRUE; + else + return FALSE; +} diff --git a/src/pokemon.c b/src/pokemon.c index ed890c7df..79310e1b2 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -58,7 +58,6 @@ static union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 perso static void EncryptBoxMon(struct BoxPokemon *boxMon); static void DecryptBoxMon(struct BoxPokemon *boxMon); static void sub_806E6CC(u8 taskId); -static bool8 ShouldGetStatBadgeBoost(u16 flagId, u8 battlerId); static u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move); static bool8 ShouldSkipFriendshipChange(void); @@ -3076,20 +3075,6 @@ u8 CountAliveMonsInBattle(u8 caseId) return retVal; } -static bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 battlerId) -{ - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) - return FALSE; - else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) - return FALSE; - else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) - return FALSE; - else if (FlagGet(badgeFlag)) - return TRUE; - else - return FALSE; -} - u8 GetDefaultMoveTarget(u8 battlerId) { u8 opposing = BATTLE_OPPOSITE(GetBattlerPosition(battlerId) & BIT_SIDE); From 503134167ab6646b3498110bc7b2316bd2afd628 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Wed, 21 Oct 2020 15:01:53 -0300 Subject: [PATCH 24/27] Review corrections --- include/constants/battle_config.h | 2 +- src/battle_main.c | 2 +- src/battle_util.c | 13 +++++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/include/constants/battle_config.h b/include/constants/battle_config.h index 74e5f24fc..60673db1d 100644 --- a/include/constants/battle_config.h +++ b/include/constants/battle_config.h @@ -70,7 +70,7 @@ #define B_MULTI_HIT_CHANCE GEN_6 // In Gen5+, multi-hit moves have different %. See Cmd_setmultihitcounter for values. #define B_RECOIL_IF_MISS_DMG GEN_6 // In Gen5+, Jump Kick and Hi Jump Kick will always do half of the user's max HP when missing. #define B_PSYWAVE_DMG GEN_6 // Psywave's damage formula. See Cmd_psywavedamageeffect. -#define B_BADGE_BOOST GEN_4 // In Gen4+, Gym Badges no longer boost a Pokémon's stats +#define B_BADGE_BOOST GEN_6 // In Gen4+, Gym Badges no longer boost a Pokémon's stats // Move settings #define B_FELL_STINGER_STAT_RAISE GEN_6 // In Gen7+, it raises Atk by 3 stages instead of 2 if it causes the target to faint. diff --git a/src/battle_main.c b/src/battle_main.c index 830ea0c7a..d0c46892e 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4235,7 +4235,7 @@ u32 GetBattlerTotalSpeedStat(u8 battlerId) // player's badge boost if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) - && FlagGet(FLAG_BADGE03_GET) + && ShouldGetStatBadgeBoost(FLAG_BADGE03_GET, battlerId) && GetBattlerSide(battlerId) == B_SIDE_PLAYER && B_BADGE_BOOST == GEN_3) { diff --git a/src/battle_util.c b/src/battle_util.c index c5aae0db8..9b1c3a303 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -6937,10 +6937,11 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b break; } - // The attack stat of a Player's Pokémon is boosted by x1.1 (+10%) if they have the 1st and 7th Badges + // The offensive stats of a Player's Pokémon are boosted by x1.1 (+10%) if they have the 1st badge and 7th badges. + // Having the 1st badge boosts physical attack while having the 7th badge boosts special attack. if (B_BADGE_BOOST == GEN_3) { - if (ShouldGetStatBadgeBoost(FLAG_BADGE01_GET, battlerAtk) && !(IS_MOVE_SPECIAL(move))) + if (ShouldGetStatBadgeBoost(FLAG_BADGE01_GET, battlerAtk) && IS_MOVE_PHYSICAL(move)) MulModifier(&modifier, UQ_4_12(1.1)); if (ShouldGetStatBadgeBoost(FLAG_BADGE07_GET, battlerAtk) && IS_MOVE_SPECIAL(move)) MulModifier(&modifier, UQ_4_12(1.1)); @@ -7078,12 +7079,13 @@ static u32 CalcDefenseStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_ROCK) && WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SANDSTORM_ANY && !usesDefStat) MulModifier(&modifier, UQ_4_12(1.5)); - // The defense stat of a Player's Pokémon is boosted by x1.1 (+10%) if they have the 5th and 7th Badges + // The defensive stats of a Player's Pokémon are boosted by x1.1 (+10%) if they have the 5th badge and 7th badges. + // Having the 5th badge boosts physical defense while having the 7th badge boosts special defense. if (B_BADGE_BOOST == GEN_3) { if (ShouldGetStatBadgeBoost(FLAG_BADGE05_GET, battlerDef) && IS_MOVE_PHYSICAL(move)) MulModifier(&modifier, UQ_4_12(1.1)); - if (ShouldGetStatBadgeBoost(FLAG_BADGE07_GET, battlerDef) && !(IS_MOVE_PHYSICAL(move))) + if (ShouldGetStatBadgeBoost(FLAG_BADGE07_GET, battlerDef) && IS_MOVE_SPECIAL(move)) MulModifier(&modifier, UQ_4_12(1.1)); } @@ -7686,6 +7688,9 @@ bool32 SetIllusionMon(struct Pokemon *mon, u32 battlerId) static bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 battlerId) { + if (B_BADGE_BOOST != GEN_3) + return FALSE; + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) return FALSE; else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) From 682d29b088aea6b7a966fcd094d528e1cff2ce38 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Wed, 21 Oct 2020 15:30:20 -0300 Subject: [PATCH 25/27] Removed the static variable from the ShouldGetStatBadgeBoost function --- include/battle_util.h | 2 +- src/battle_util.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/battle_util.h b/include/battle_util.h index 330c0bfb9..bbd33e291 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -127,6 +127,6 @@ bool32 CanBattlerGetOrLoseItem(u8 battlerId, u16 itemId); struct Pokemon *GetIllusionMonPtr(u32 battlerId); void ClearIllusionMon(u32 battlerId); bool32 SetIllusionMon(struct Pokemon *mon, u32 battlerId); -static bool8 ShouldGetStatBadgeBoost(u16 flagId, u8 battlerId); +bool8 ShouldGetStatBadgeBoost(u16 flagId, u8 battlerId); #endif // GUARD_BATTLE_UTIL_H diff --git a/src/battle_util.c b/src/battle_util.c index 9b1c3a303..e31fb0dd7 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -7686,7 +7686,7 @@ bool32 SetIllusionMon(struct Pokemon *mon, u32 battlerId) return FALSE; } -static bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 battlerId) +bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 battlerId) { if (B_BADGE_BOOST != GEN_3) return FALSE; From 00bc6ab96bf1567284dc35498badf527799ad2ac Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Wed, 21 Oct 2020 16:39:06 -0300 Subject: [PATCH 26/27] More review corrections --- src/battle_main.c | 3 +-- src/battle_util.c | 25 +++++++++---------------- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/battle_main.c b/src/battle_main.c index d0c46892e..93819aed2 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4236,8 +4236,7 @@ u32 GetBattlerTotalSpeedStat(u8 battlerId) // player's badge boost if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) && ShouldGetStatBadgeBoost(FLAG_BADGE03_GET, battlerId) - && GetBattlerSide(battlerId) == B_SIDE_PLAYER - && B_BADGE_BOOST == GEN_3) + && GetBattlerSide(battlerId) == B_SIDE_PLAYER) { speed = (speed * 110) / 100; } diff --git a/src/battle_util.c b/src/battle_util.c index e31fb0dd7..6d82b0d81 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -6939,13 +6939,10 @@ static u32 CalcAttackStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, b // The offensive stats of a Player's Pokémon are boosted by x1.1 (+10%) if they have the 1st badge and 7th badges. // Having the 1st badge boosts physical attack while having the 7th badge boosts special attack. - if (B_BADGE_BOOST == GEN_3) - { - if (ShouldGetStatBadgeBoost(FLAG_BADGE01_GET, battlerAtk) && IS_MOVE_PHYSICAL(move)) - MulModifier(&modifier, UQ_4_12(1.1)); - if (ShouldGetStatBadgeBoost(FLAG_BADGE07_GET, battlerAtk) && IS_MOVE_SPECIAL(move)) - MulModifier(&modifier, UQ_4_12(1.1)); - } + if (ShouldGetStatBadgeBoost(FLAG_BADGE01_GET, battlerAtk) && IS_MOVE_PHYSICAL(move)) + MulModifier(&modifier, UQ_4_12(1.1)); + if (ShouldGetStatBadgeBoost(FLAG_BADGE07_GET, battlerAtk) && IS_MOVE_SPECIAL(move)) + MulModifier(&modifier, UQ_4_12(1.1)); return ApplyModifier(modifier, atkStat); } @@ -7081,13 +7078,10 @@ static u32 CalcDefenseStat(u16 move, u8 battlerAtk, u8 battlerDef, u8 moveType, // The defensive stats of a Player's Pokémon are boosted by x1.1 (+10%) if they have the 5th badge and 7th badges. // Having the 5th badge boosts physical defense while having the 7th badge boosts special defense. - if (B_BADGE_BOOST == GEN_3) - { - if (ShouldGetStatBadgeBoost(FLAG_BADGE05_GET, battlerDef) && IS_MOVE_PHYSICAL(move)) - MulModifier(&modifier, UQ_4_12(1.1)); - if (ShouldGetStatBadgeBoost(FLAG_BADGE07_GET, battlerDef) && IS_MOVE_SPECIAL(move)) - MulModifier(&modifier, UQ_4_12(1.1)); - } + if (ShouldGetStatBadgeBoost(FLAG_BADGE05_GET, battlerDef) && IS_MOVE_PHYSICAL(move)) + MulModifier(&modifier, UQ_4_12(1.1)); + if (ShouldGetStatBadgeBoost(FLAG_BADGE07_GET, battlerDef) && IS_MOVE_SPECIAL(move)) + MulModifier(&modifier, UQ_4_12(1.1)); return ApplyModifier(modifier, defStat); } @@ -7690,8 +7684,7 @@ bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 battlerId) { if (B_BADGE_BOOST != GEN_3) return FALSE; - - if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) + else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER)) return FALSE; else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) return FALSE; From d7c5ce3602bd1690e3e1d202370b108554a60ca5 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 22 Oct 2020 09:33:46 -0300 Subject: [PATCH 27/27] Idented battle_script_commands.c comments --- src/battle_script_commands.c | 510 +++++++++++++++++------------------ 1 file changed, 255 insertions(+), 255 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 933d01ed4..ec66e0b34 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -337,262 +337,262 @@ static void Cmd_metalburstdamagecalculator(void); void (* const gBattleScriptingCommandsTable[])(void) = { - Cmd_attackcanceler, // 0x0 - Cmd_accuracycheck, // 0x1 - Cmd_attackstring, // 0x2 - Cmd_ppreduce, // 0x3 - Cmd_critcalc, // 0x4 - Cmd_damagecalc, // 0x5 - Cmd_typecalc, // 0x6 - Cmd_adjustdamage, // 0x7 - Cmd_multihitresultmessage, // 0x8 - Cmd_attackanimation, // 0x9 - Cmd_waitanimation, // 0xA - Cmd_healthbarupdate, // 0xB - Cmd_datahpupdate, // 0xC - Cmd_critmessage, // 0xD - Cmd_effectivenesssound, // 0xE - Cmd_resultmessage, // 0xF - Cmd_printstring, // 0x10 - Cmd_printselectionstring, // 0x11 - Cmd_waitmessage, // 0x12 - Cmd_printfromtable, // 0x13 - Cmd_printselectionstringfromtable, // 0x14 - Cmd_seteffectwithchance, // 0x15 - Cmd_seteffectprimary, // 0x16 - Cmd_seteffectsecondary, // 0x17 - Cmd_clearstatusfromeffect, // 0x18 - Cmd_tryfaintmon, // 0x19 - Cmd_dofaintanimation, // 0x1A - Cmd_cleareffectsonfaint, // 0x1B - Cmd_jumpifstatus, // 0x1C - Cmd_jumpifstatus2, // 0x1D - Cmd_jumpifability, // 0x1E - Cmd_jumpifsideaffecting, // 0x1F - Cmd_jumpifstat, // 0x20 - Cmd_jumpifstatus3condition, // 0x21 - Cmd_jumpbasedontype, // 0x22 - Cmd_getexp, // 0x23 - atk24, // 0x24 - Cmd_movevaluescleanup, // 0x25 - Cmd_setmultihit, // 0x26 - Cmd_decrementmultihit, // 0x27 - Cmd_goto, // 0x28 - Cmd_jumpifbyte, // 0x29 - Cmd_jumpifhalfword, // 0x2A - Cmd_jumpifword, // 0x2B - Cmd_jumpifarrayequal, // 0x2C - Cmd_jumpifarraynotequal, // 0x2D - Cmd_setbyte, // 0x2E - Cmd_addbyte, // 0x2F - Cmd_subbyte, // 0x30 - Cmd_copyarray, // 0x31 - Cmd_copyarraywithindex, // 0x32 - Cmd_orbyte, // 0x33 - Cmd_orhalfword, // 0x34 - Cmd_orword, // 0x35 - Cmd_bicbyte, // 0x36 - Cmd_bichalfword, // 0x37 - Cmd_bicword, // 0x38 - Cmd_pause, // 0x39 - Cmd_waitstate, // 0x3A - Cmd_update, // 0x3B - Cmd_return, // 0x3C - Cmd_end, // 0x3D - Cmd_end2, // 0x3E - Cmd_end3, // 0x3F - Cmd_jumpifaffectedbyprotect, // 0x40 - Cmd_call, // 0x41 - Cmd_setroost, // 0x42 - Cmd_jumpifabilitypresent, // 0x43 - Cmd_endselectionscript, // 0x44 - Cmd_playanimation, // 0x45 - Cmd_playanimation2, // 0x46 - Cmd_setgraphicalstatchangevalues, // 0x47 - Cmd_playstatchangeanimation, // 0x48 - Cmd_moveend, // 0x49 - Cmd_sethealblock, // 0x4A - Cmd_returnatktoball, // 0x4B - Cmd_getswitchedmondata, // 0x4C - Cmd_switchindataupdate, // 0x4D - Cmd_switchinanim, // 0x4E - Cmd_jumpifcantswitch, // 0x4F - Cmd_openpartyscreen, // 0x50 - Cmd_switchhandleorder, // 0x51 - Cmd_switchineffects, // 0x52 - Cmd_trainerslidein, // 0x53 - Cmd_playse, // 0x54 - Cmd_fanfare, // 0x55 - Cmd_playfaintcry, // 0x56 - atk57, // 0x57 - Cmd_returntoball, // 0x58 - Cmd_handlelearnnewmove, // 0x59 - Cmd_yesnoboxlearnmove, // 0x5A - Cmd_yesnoboxstoplearningmove, // 0x5B - Cmd_hitanimation, // 0x5C - Cmd_getmoneyreward, // 0x5D - atk5E, // 0x5E - Cmd_swapattackerwithtarget, // 0x5F - Cmd_incrementgamestat, // 0x60 - Cmd_drawpartystatussummary, // 0x61 - Cmd_hidepartystatussummary, // 0x62 - Cmd_jumptocalledmove, // 0x63 - Cmd_statusanimation, // 0x64 - Cmd_status2animation, // 0x65 - Cmd_chosenstatusanimation, // 0x66 - Cmd_yesnobox, // 0x67 - Cmd_cancelallactions, // 0x68 - Cmd_setgravity, // 0x69 - Cmd_removeitem, // 0x6A - Cmd_atknameinbuff1, // 0x6B - Cmd_drawlvlupbox, // 0x6C - Cmd_resetsentmonsvalue, // 0x6D - Cmd_setatktoplayer0, // 0x6E - Cmd_makevisible, // 0x6F - Cmd_recordability, // 0x70 - Cmd_buffermovetolearn, // 0x71 - Cmd_jumpifplayerran, // 0x72 - Cmd_hpthresholds, // 0x73 - Cmd_hpthresholds2, // 0x74 - Cmd_useitemonopponent, // 0x75 - Cmd_various, // 0x76 - Cmd_setprotectlike, // 0x77 - Cmd_faintifabilitynotdamp, // 0x78 - Cmd_setatkhptozero, // 0x79 - Cmd_jumpifnexttargetvalid, // 0x7A - Cmd_tryhealhalfhealth, // 0x7B - Cmd_trymirrormove, // 0x7C - Cmd_setrain, // 0x7D - Cmd_setreflect, // 0x7E - Cmd_setseeded, // 0x7F - Cmd_manipulatedamage, // 0x80 - Cmd_trysetrest, // 0x81 - Cmd_jumpifnotfirstturn, // 0x82 - Cmd_setmiracleeye, // 0x83 - Cmd_jumpifcantmakeasleep, // 0x84 - Cmd_stockpile, // 0x85 - Cmd_stockpiletobasedamage, // 0x86 - Cmd_stockpiletohpheal, // 0x87 - Cmd_setdrainedhp, // 0x88 - Cmd_statbuffchange, // 0x89 - Cmd_normalisebuffs, // 0x8A - Cmd_setbide, // 0x8B - Cmd_confuseifrepeatingattackends, // 0x8C - Cmd_setmultihitcounter, // 0x8D - Cmd_initmultihitstring, // 0x8E - Cmd_forcerandomswitch, // 0x8F - Cmd_tryconversiontypechange, // 0x90 - Cmd_givepaydaymoney, // 0x91 - Cmd_setlightscreen, // 0x92 - Cmd_tryKO, // 0x93 - Cmd_damagetohalftargethp, // 0x94 - Cmd_setsandstorm, // 0x95 - Cmd_weatherdamage, // 0x96 - Cmd_tryinfatuating, // 0x97 - Cmd_updatestatusicon, // 0x98 - Cmd_setmist, // 0x99 - Cmd_setfocusenergy, // 0x9A - Cmd_transformdataexecution, // 0x9B - Cmd_setsubstitute, // 0x9C - Cmd_mimicattackcopy, // 0x9D - Cmd_metronome, // 0x9E - Cmd_dmgtolevel, // 0x9F - Cmd_psywavedamageeffect, // 0xA0 - Cmd_counterdamagecalculator, // 0xA1 - Cmd_mirrorcoatdamagecalculator, // 0xA2 - Cmd_disablelastusedattack, // 0xA3 - Cmd_trysetencore, // 0xA4 - Cmd_painsplitdmgcalc, // 0xA5 - Cmd_settypetorandomresistance, // 0xA6 - Cmd_setalwayshitflag, // 0xA7 - Cmd_copymovepermanently, // 0xA8 - Cmd_trychoosesleeptalkmove, // 0xA9 - Cmd_setdestinybond, // 0xAA - Cmd_trysetdestinybondtohappen, // 0xAB - Cmd_settailwind, // 0xAC - Cmd_tryspiteppreduce, // 0xAD - Cmd_healpartystatus, // 0xAE - Cmd_cursetarget, // 0xAF - Cmd_trysetspikes, // 0xB0 - Cmd_setforesight, // 0xB1 - Cmd_trysetperishsong, // 0xB2 - Cmd_handlerollout, // 0xB3 - Cmd_jumpifconfusedandstatmaxed, // 0xB4 - Cmd_handlefurycutter, // 0xB5 - Cmd_setembargo, // 0xB6 - Cmd_presentdamagecalculation, // 0xB7 - Cmd_setsafeguard, // 0xB8 - Cmd_magnitudedamagecalculation, // 0xB9 - Cmd_jumpifnopursuitswitchdmg, // 0xBA - Cmd_setsunny, // 0xBB - Cmd_maxattackhalvehp, // 0xBC - Cmd_copyfoestats, // 0xBD - Cmd_rapidspinfree, // 0xBE - Cmd_setdefensecurlbit, // 0xBF - Cmd_recoverbasedonsunlight, // 0xC0 - Cmd_setstickyweb, // 0xC1 - Cmd_selectfirstvalidtarget, // 0xC2 - Cmd_trysetfutureattack, // 0xC3 - Cmd_trydobeatup, // 0xC4 - Cmd_setsemiinvulnerablebit, // 0xC5 - Cmd_clearsemiinvulnerablebit, // 0xC6 - Cmd_setminimize, // 0xC7 - Cmd_sethail, // 0xC8 + Cmd_attackcanceler, // 0x0 + Cmd_accuracycheck, // 0x1 + Cmd_attackstring, // 0x2 + Cmd_ppreduce, // 0x3 + Cmd_critcalc, // 0x4 + Cmd_damagecalc, // 0x5 + Cmd_typecalc, // 0x6 + Cmd_adjustdamage, // 0x7 + Cmd_multihitresultmessage, // 0x8 + Cmd_attackanimation, // 0x9 + Cmd_waitanimation, // 0xA + Cmd_healthbarupdate, // 0xB + Cmd_datahpupdate, // 0xC + Cmd_critmessage, // 0xD + Cmd_effectivenesssound, // 0xE + Cmd_resultmessage, // 0xF + Cmd_printstring, // 0x10 + Cmd_printselectionstring, // 0x11 + Cmd_waitmessage, // 0x12 + Cmd_printfromtable, // 0x13 + Cmd_printselectionstringfromtable, // 0x14 + Cmd_seteffectwithchance, // 0x15 + Cmd_seteffectprimary, // 0x16 + Cmd_seteffectsecondary, // 0x17 + Cmd_clearstatusfromeffect, // 0x18 + Cmd_tryfaintmon, // 0x19 + Cmd_dofaintanimation, // 0x1A + Cmd_cleareffectsonfaint, // 0x1B + Cmd_jumpifstatus, // 0x1C + Cmd_jumpifstatus2, // 0x1D + Cmd_jumpifability, // 0x1E + Cmd_jumpifsideaffecting, // 0x1F + Cmd_jumpifstat, // 0x20 + Cmd_jumpifstatus3condition, // 0x21 + Cmd_jumpbasedontype, // 0x22 + Cmd_getexp, // 0x23 + atk24, // 0x24 + Cmd_movevaluescleanup, // 0x25 + Cmd_setmultihit, // 0x26 + Cmd_decrementmultihit, // 0x27 + Cmd_goto, // 0x28 + Cmd_jumpifbyte, // 0x29 + Cmd_jumpifhalfword, // 0x2A + Cmd_jumpifword, // 0x2B + Cmd_jumpifarrayequal, // 0x2C + Cmd_jumpifarraynotequal, // 0x2D + Cmd_setbyte, // 0x2E + Cmd_addbyte, // 0x2F + Cmd_subbyte, // 0x30 + Cmd_copyarray, // 0x31 + Cmd_copyarraywithindex, // 0x32 + Cmd_orbyte, // 0x33 + Cmd_orhalfword, // 0x34 + Cmd_orword, // 0x35 + Cmd_bicbyte, // 0x36 + Cmd_bichalfword, // 0x37 + Cmd_bicword, // 0x38 + Cmd_pause, // 0x39 + Cmd_waitstate, // 0x3A + Cmd_update, // 0x3B + Cmd_return, // 0x3C + Cmd_end, // 0x3D + Cmd_end2, // 0x3E + Cmd_end3, // 0x3F + Cmd_jumpifaffectedbyprotect, // 0x40 + Cmd_call, // 0x41 + Cmd_setroost, // 0x42 + Cmd_jumpifabilitypresent, // 0x43 + Cmd_endselectionscript, // 0x44 + Cmd_playanimation, // 0x45 + Cmd_playanimation2, // 0x46 + Cmd_setgraphicalstatchangevalues, // 0x47 + Cmd_playstatchangeanimation, // 0x48 + Cmd_moveend, // 0x49 + Cmd_sethealblock, // 0x4A + Cmd_returnatktoball, // 0x4B + Cmd_getswitchedmondata, // 0x4C + Cmd_switchindataupdate, // 0x4D + Cmd_switchinanim, // 0x4E + Cmd_jumpifcantswitch, // 0x4F + Cmd_openpartyscreen, // 0x50 + Cmd_switchhandleorder, // 0x51 + Cmd_switchineffects, // 0x52 + Cmd_trainerslidein, // 0x53 + Cmd_playse, // 0x54 + Cmd_fanfare, // 0x55 + Cmd_playfaintcry, // 0x56 + atk57, // 0x57 + Cmd_returntoball, // 0x58 + Cmd_handlelearnnewmove, // 0x59 + Cmd_yesnoboxlearnmove, // 0x5A + Cmd_yesnoboxstoplearningmove, // 0x5B + Cmd_hitanimation, // 0x5C + Cmd_getmoneyreward, // 0x5D + atk5E, // 0x5E + Cmd_swapattackerwithtarget, // 0x5F + Cmd_incrementgamestat, // 0x60 + Cmd_drawpartystatussummary, // 0x61 + Cmd_hidepartystatussummary, // 0x62 + Cmd_jumptocalledmove, // 0x63 + Cmd_statusanimation, // 0x64 + Cmd_status2animation, // 0x65 + Cmd_chosenstatusanimation, // 0x66 + Cmd_yesnobox, // 0x67 + Cmd_cancelallactions, // 0x68 + Cmd_setgravity, // 0x69 + Cmd_removeitem, // 0x6A + Cmd_atknameinbuff1, // 0x6B + Cmd_drawlvlupbox, // 0x6C + Cmd_resetsentmonsvalue, // 0x6D + Cmd_setatktoplayer0, // 0x6E + Cmd_makevisible, // 0x6F + Cmd_recordability, // 0x70 + Cmd_buffermovetolearn, // 0x71 + Cmd_jumpifplayerran, // 0x72 + Cmd_hpthresholds, // 0x73 + Cmd_hpthresholds2, // 0x74 + Cmd_useitemonopponent, // 0x75 + Cmd_various, // 0x76 + Cmd_setprotectlike, // 0x77 + Cmd_faintifabilitynotdamp, // 0x78 + Cmd_setatkhptozero, // 0x79 + Cmd_jumpifnexttargetvalid, // 0x7A + Cmd_tryhealhalfhealth, // 0x7B + Cmd_trymirrormove, // 0x7C + Cmd_setrain, // 0x7D + Cmd_setreflect, // 0x7E + Cmd_setseeded, // 0x7F + Cmd_manipulatedamage, // 0x80 + Cmd_trysetrest, // 0x81 + Cmd_jumpifnotfirstturn, // 0x82 + Cmd_setmiracleeye, // 0x83 + Cmd_jumpifcantmakeasleep, // 0x84 + Cmd_stockpile, // 0x85 + Cmd_stockpiletobasedamage, // 0x86 + Cmd_stockpiletohpheal, // 0x87 + Cmd_setdrainedhp, // 0x88 + Cmd_statbuffchange, // 0x89 + Cmd_normalisebuffs, // 0x8A + Cmd_setbide, // 0x8B + Cmd_confuseifrepeatingattackends, // 0x8C + Cmd_setmultihitcounter, // 0x8D + Cmd_initmultihitstring, // 0x8E + Cmd_forcerandomswitch, // 0x8F + Cmd_tryconversiontypechange, // 0x90 + Cmd_givepaydaymoney, // 0x91 + Cmd_setlightscreen, // 0x92 + Cmd_tryKO, // 0x93 + Cmd_damagetohalftargethp, // 0x94 + Cmd_setsandstorm, // 0x95 + Cmd_weatherdamage, // 0x96 + Cmd_tryinfatuating, // 0x97 + Cmd_updatestatusicon, // 0x98 + Cmd_setmist, // 0x99 + Cmd_setfocusenergy, // 0x9A + Cmd_transformdataexecution, // 0x9B + Cmd_setsubstitute, // 0x9C + Cmd_mimicattackcopy, // 0x9D + Cmd_metronome, // 0x9E + Cmd_dmgtolevel, // 0x9F + Cmd_psywavedamageeffect, // 0xA0 + Cmd_counterdamagecalculator, // 0xA1 + Cmd_mirrorcoatdamagecalculator, // 0xA2 + Cmd_disablelastusedattack, // 0xA3 + Cmd_trysetencore, // 0xA4 + Cmd_painsplitdmgcalc, // 0xA5 + Cmd_settypetorandomresistance, // 0xA6 + Cmd_setalwayshitflag, // 0xA7 + Cmd_copymovepermanently, // 0xA8 + Cmd_trychoosesleeptalkmove, // 0xA9 + Cmd_setdestinybond, // 0xAA + Cmd_trysetdestinybondtohappen, // 0xAB + Cmd_settailwind, // 0xAC + Cmd_tryspiteppreduce, // 0xAD + Cmd_healpartystatus, // 0xAE + Cmd_cursetarget, // 0xAF + Cmd_trysetspikes, // 0xB0 + Cmd_setforesight, // 0xB1 + Cmd_trysetperishsong, // 0xB2 + Cmd_handlerollout, // 0xB3 + Cmd_jumpifconfusedandstatmaxed, // 0xB4 + Cmd_handlefurycutter, // 0xB5 + Cmd_setembargo, // 0xB6 + Cmd_presentdamagecalculation, // 0xB7 + Cmd_setsafeguard, // 0xB8 + Cmd_magnitudedamagecalculation, // 0xB9 + Cmd_jumpifnopursuitswitchdmg, // 0xBA + Cmd_setsunny, // 0xBB + Cmd_maxattackhalvehp, // 0xBC + Cmd_copyfoestats, // 0xBD + Cmd_rapidspinfree, // 0xBE + Cmd_setdefensecurlbit, // 0xBF + Cmd_recoverbasedonsunlight, // 0xC0 + Cmd_setstickyweb, // 0xC1 + Cmd_selectfirstvalidtarget, // 0xC2 + Cmd_trysetfutureattack, // 0xC3 + Cmd_trydobeatup, // 0xC4 + Cmd_setsemiinvulnerablebit, // 0xC5 + Cmd_clearsemiinvulnerablebit, // 0xC6 + Cmd_setminimize, // 0xC7 + Cmd_sethail, // 0xC8 Cmd_jumpifattackandspecialattackcannotfall, // 0xC9 - Cmd_setforcedtarget, // 0xCA - Cmd_setcharge, // 0xCB - Cmd_callterrainattack, // 0xCC - Cmd_cureifburnedparalysedorpoisoned, // 0xCD - Cmd_settorment, // 0xCE - Cmd_jumpifnodamage, // 0xCF - Cmd_settaunt, // 0xD0 - Cmd_trysethelpinghand, // 0xD1 - Cmd_tryswapitems, // 0xD2 - Cmd_trycopyability, // 0xD3 - Cmd_trywish, // 0xD4 - Cmd_settoxicspikes, // 0xD5 - Cmd_setgastroacid, // 0xD6 - Cmd_setyawn, // 0xD7 - Cmd_setdamagetohealthdifference, // 0xD8 - Cmd_setroom, // 0xD9 - Cmd_tryswapabilities, // 0xDA - Cmd_tryimprison, // 0xDB - Cmd_setstealthrock, // 0xDC - Cmd_setuserstatus3, // 0xDD - Cmd_assistattackselect, // 0xDE - Cmd_trysetmagiccoat, // 0xDF - Cmd_trysetsnatch, // 0xE0 - Cmd_trygetintimidatetarget, // 0xE1 - Cmd_switchoutabilities, // 0xE2 - Cmd_jumpifhasnohp, // 0xE3 - Cmd_getsecretpowereffect, // 0xE4 - Cmd_pickup, // 0xE5 - Cmd_docastformchangeanimation, // 0xE6 - Cmd_trycastformdatachange, // 0xE7 - Cmd_settypebasedhalvers, // 0xE8 - Cmd_jumpifsubstituteblocks, // 0xE9 - Cmd_tryrecycleitem, // 0xEA - Cmd_settypetoterrain, // 0xEB - Cmd_pursuitrelated, // 0xEC - Cmd_snatchsetbattlers, // 0xED - Cmd_removelightscreenreflect, // 0xEE - Cmd_handleballthrow, // 0xEF - Cmd_givecaughtmon, // 0xF0 - Cmd_trysetcaughtmondexflags, // 0xF1 - Cmd_displaydexinfo, // 0xF2 - Cmd_trygivecaughtmonnick, // 0xF3 - Cmd_subattackerhpbydmg, // 0xF4 - Cmd_removeattackerstatus1, // 0xF5 - Cmd_finishaction, // 0xF6 - Cmd_finishturn, // 0xF7 - Cmd_trainerslideout, // 0xF8 - Cmd_settelekinesis, // 0xF9 - Cmd_swapstatstages, // 0xFA - Cmd_averagestats, // 0xFB - Cmd_jumpifoppositegenders, // 0xFC - Cmd_trygetbaddreamstarget, // 0xFD - Cmd_tryworryseed, // 0xFE - Cmd_metalburstdamagecalculator, // 0xFF + Cmd_setforcedtarget, // 0xCA + Cmd_setcharge, // 0xCB + Cmd_callterrainattack, // 0xCC + Cmd_cureifburnedparalysedorpoisoned, // 0xCD + Cmd_settorment, // 0xCE + Cmd_jumpifnodamage, // 0xCF + Cmd_settaunt, // 0xD0 + Cmd_trysethelpinghand, // 0xD1 + Cmd_tryswapitems, // 0xD2 + Cmd_trycopyability, // 0xD3 + Cmd_trywish, // 0xD4 + Cmd_settoxicspikes, // 0xD5 + Cmd_setgastroacid, // 0xD6 + Cmd_setyawn, // 0xD7 + Cmd_setdamagetohealthdifference, // 0xD8 + Cmd_setroom, // 0xD9 + Cmd_tryswapabilities, // 0xDA + Cmd_tryimprison, // 0xDB + Cmd_setstealthrock, // 0xDC + Cmd_setuserstatus3, // 0xDD + Cmd_assistattackselect, // 0xDE + Cmd_trysetmagiccoat, // 0xDF + Cmd_trysetsnatch, // 0xE0 + Cmd_trygetintimidatetarget, // 0xE1 + Cmd_switchoutabilities, // 0xE2 + Cmd_jumpifhasnohp, // 0xE3 + Cmd_getsecretpowereffect, // 0xE4 + Cmd_pickup, // 0xE5 + Cmd_docastformchangeanimation, // 0xE6 + Cmd_trycastformdatachange, // 0xE7 + Cmd_settypebasedhalvers, // 0xE8 + Cmd_jumpifsubstituteblocks, // 0xE9 + Cmd_tryrecycleitem, // 0xEA + Cmd_settypetoterrain, // 0xEB + Cmd_pursuitrelated, // 0xEC + Cmd_snatchsetbattlers, // 0xED + Cmd_removelightscreenreflect, // 0xEE + Cmd_handleballthrow, // 0xEF + Cmd_givecaughtmon, // 0xF0 + Cmd_trysetcaughtmondexflags, // 0xF1 + Cmd_displaydexinfo, // 0xF2 + Cmd_trygivecaughtmonnick, // 0xF3 + Cmd_subattackerhpbydmg, // 0xF4 + Cmd_removeattackerstatus1, // 0xF5 + Cmd_finishaction, // 0xF6 + Cmd_finishturn, // 0xF7 + Cmd_trainerslideout, // 0xF8 + Cmd_settelekinesis, // 0xF9 + Cmd_swapstatstages, // 0xFA + Cmd_averagestats, // 0xFB + Cmd_jumpifoppositegenders, // 0xFC + Cmd_trygetbaddreamstarget, // 0xFD + Cmd_tryworryseed, // 0xFE + Cmd_metalburstdamagecalculator, // 0xFF }; struct StatFractions