diff --git a/graphics/summary_screen/bg.png b/graphics/summary_screen/bg.png index c7285d2bd..7160ee342 100644 Binary files a/graphics/summary_screen/bg.png and b/graphics/summary_screen/bg.png differ diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index ca21903cc..06e0c5775 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6885,7 +6885,14 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) gBattleMons[gActiveBattler].statStages[statId] = MIN_STAT_STAGE; if (gBattleMons[gActiveBattler].statStages[statId] > MAX_STAT_STAGE) gBattleMons[gActiveBattler].statStages[statId] = MAX_STAT_STAGE; - + // ADD: mirror SpAtk and SpDef stages — merged Special stat + if (statId == STAT_SPATK) + gBattleMons[gActiveBattler].statStages[STAT_SPDEF] = + gBattleMons[gActiveBattler].statStages[STAT_SPATK]; + if (statId == STAT_SPDEF) + gBattleMons[gActiveBattler].statStages[STAT_SPATK] = + gBattleMons[gActiveBattler].statStages[STAT_SPDEF]; + // END ADD if (gBattleCommunication[MULTISTRING_CHOOSER] == B_MSG_STAT_WONT_INCREASE && flags & STAT_CHANGE_ALLOW_PTR) gMoveResultFlags |= MOVE_RESULT_MISSED; @@ -6900,6 +6907,12 @@ static void Cmd_statbuffchange(void) const u8 *jumpPtr = T1_READ_PTR(gBattlescriptCurrInstr + 2); if (ChangeStatBuffs(gBattleScripting.statChanger & 0xF0, GET_STAT_BUFF_ID(gBattleScripting.statChanger), gBattlescriptCurrInstr[1], jumpPtr) == STAT_CHANGE_WORKED) gBattlescriptCurrInstr += 6; + if (statId == STAT_SPATK) + gBattleMons[gBattlerTarget].statStages[STAT_SPDEF] = + gBattleMons[gBattlerTarget].statStages[STAT_SPATK]; + if (statId == STAT_SPDEF) + gBattleMons[gBattlerTarget].statStages[STAT_SPATK] = + gBattleMons[gBattlerTarget].statStages[STAT_SPDEF]; } // Haze diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 730f77d6f..f148e0a83 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -1224,7 +1224,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_PSYCHIC] = { - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, .power = 90, .type = TYPE_PSYCHIC, .accuracy = 100, @@ -1731,7 +1731,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_AMNESIA] = { - .effect = EFFECT_SPECIAL_DEFENSE_UP_2, + .effect = EFFECT_SPECIAL_ATTACK_UP_2, .power = 0, .type = TYPE_PSYCHIC, .accuracy = 0, @@ -3213,7 +3213,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_SHADOW_BALL] = { - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_HIT, + .effect = EFFECT_SPECIAL_ATTACK_DOWN_HIT, .power = 80, .type = TYPE_GHOST, .accuracy = 100, @@ -4071,7 +4071,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_FAKE_TEARS] = { - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_2, + .effect = EFFECT_SPECIAL_ATTACK_DOWN_2, .power = 0, .type = TYPE_PSYCHIC, .accuracy = 100, @@ -4149,7 +4149,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT] = [MOVE_METAL_SOUND] = { - .effect = EFFECT_SPECIAL_DEFENSE_DOWN_2, + .effect = EFFECT_SPECIAL_ATTACK_DOWN_2, .power = 0, .type = TYPE_ELECTRIC, .accuracy = 85, diff --git a/src/data/pokemon/species_info.h b/src/data/pokemon/species_info.h index 86fd412f1..985693525 100644 --- a/src/data/pokemon/species_info.h +++ b/src/data/pokemon/species_info.h @@ -79,8 +79,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 1, - .evYield_SpDefense = 1, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), @@ -108,8 +108,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 2, - .evYield_SpDefense = 1, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), @@ -128,7 +128,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 52, .baseDefense = 43, .baseSpeed = 65, - .baseSpAttack = 60, + .baseSpAttack = 50, .baseSpDefense = 50, .types = {TYPE_FIRE, TYPE_FIRE}, .catchRate = 45, @@ -157,7 +157,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 64, .baseDefense = 58, .baseSpeed = 80, - .baseSpAttack = 80, + .baseSpAttack = 65, .baseSpDefense = 65, .types = {TYPE_FIRE, TYPE_FIRE}, .catchRate = 45, @@ -186,7 +186,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 84, .baseDefense = 78, .baseSpeed = 100, - .baseSpAttack = 109, + .baseSpAttack = 85, .baseSpDefense = 85, .types = {TYPE_FIRE, TYPE_FLYING}, .catchRate = 45, @@ -216,7 +216,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 65, .baseSpeed = 43, .baseSpAttack = 50, - .baseSpDefense = 64, + .baseSpDefense = 50, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 45, .expYield = 66, @@ -245,7 +245,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 80, .baseSpeed = 58, .baseSpAttack = 65, - .baseSpDefense = 80, + .baseSpDefense = 65, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 45, .expYield = 143, @@ -253,8 +253,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 1, .evYield_Speed = 0, - .evYield_SpAttack = 0, - .evYield_SpDefense = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), @@ -274,16 +274,16 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 100, .baseSpeed = 78, .baseSpAttack = 85, - .baseSpDefense = 105, + .baseSpDefense = 85, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 45, .expYield = 210, .evYield_HP = 0, .evYield_Attack = 0, - .evYield_Defense = 0, + .evYield_Defense = 1, .evYield_Speed = 0, - .evYield_SpAttack = 0, - .evYield_SpDefense = 3, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), @@ -369,8 +369,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 2, - .evYield_SpDefense = 1, + .evYield_SpAttack = 3, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_SILVER_POWDER, .genderRatio = PERCENT_FEMALE(50), @@ -448,7 +448,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 40, .baseSpeed = 75, .baseSpAttack = 45, - .baseSpDefense = 80, + .baseSpDefense = 45, .types = {TYPE_BUG, TYPE_POISON}, .catchRate = 45, .expYield = 159, @@ -456,8 +456,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 2, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 0, - .evYield_SpDefense = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), @@ -564,7 +564,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 35, .baseSpeed = 72, .baseSpAttack = 25, - .baseSpDefense = 35, + .baseSpDefense = 25, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 255, .expYield = 57, @@ -593,7 +593,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 60, .baseSpeed = 97, .baseSpAttack = 50, - .baseSpDefense = 70, + .baseSpDefense = 50, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 127, .expYield = 116, @@ -680,7 +680,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 44, .baseSpeed = 55, .baseSpAttack = 40, - .baseSpDefense = 54, + .baseSpDefense = 40, .types = {TYPE_POISON, TYPE_POISON}, .catchRate = 255, .expYield = 62, @@ -709,7 +709,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 69, .baseSpeed = 80, .baseSpAttack = 65, - .baseSpDefense = 79, + .baseSpDefense = 65, .types = {TYPE_POISON, TYPE_POISON}, .catchRate = 90, .expYield = 147, @@ -738,7 +738,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 30, .baseSpeed = 90, .baseSpAttack = 50, - .baseSpDefense = 40, + .baseSpDefense = 50, .types = {TYPE_ELECTRIC, TYPE_ELECTRIC}, .catchRate = 190, .expYield = 82, @@ -767,7 +767,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 55, .baseSpeed = 100, .baseSpAttack = 90, - .baseSpDefense = 80, + .baseSpDefense = 90, .types = {TYPE_ELECTRIC, TYPE_ELECTRIC}, .catchRate = 75, .expYield = 122, @@ -795,7 +795,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 75, .baseDefense = 85, .baseSpeed = 40, - .baseSpAttack = 20, + .baseSpAttack = 30, .baseSpDefense = 30, .types = {TYPE_GROUND, TYPE_GROUND}, .catchRate = 255, @@ -824,7 +824,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 100, .baseDefense = 110, .baseSpeed = 65, - .baseSpAttack = 45, + .baseSpAttack = 55, .baseSpDefense = 55, .types = {TYPE_GROUND, TYPE_GROUND}, .catchRate = 90, @@ -912,7 +912,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 87, .baseSpeed = 76, .baseSpAttack = 75, - .baseSpDefense = 85, + .baseSpDefense = 75, .types = {TYPE_POISON, TYPE_GROUND}, .catchRate = 45, .expYield = 194, @@ -998,7 +998,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 92, .baseDefense = 77, .baseSpeed = 85, - .baseSpAttack = 85, + .baseSpAttack = 75, .baseSpDefense = 75, .types = {TYPE_POISON, TYPE_GROUND}, .catchRate = 45, @@ -1028,7 +1028,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 48, .baseSpeed = 35, .baseSpAttack = 60, - .baseSpDefense = 65, + .baseSpDefense = 60, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 150, .expYield = 68, @@ -1057,7 +1057,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 73, .baseSpeed = 60, .baseSpAttack = 85, - .baseSpDefense = 90, + .baseSpDefense = 85, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 25, .expYield = 129, @@ -1085,7 +1085,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 41, .baseDefense = 40, .baseSpeed = 65, - .baseSpAttack = 50, + .baseSpAttack = 65, .baseSpDefense = 65, .types = {TYPE_FIRE, TYPE_FIRE}, .catchRate = 190, @@ -1114,7 +1114,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 76, .baseDefense = 75, .baseSpeed = 100, - .baseSpAttack = 81, + .baseSpAttack = 100, .baseSpDefense = 100, .types = {TYPE_FIRE, TYPE_FIRE}, .catchRate = 75, @@ -1123,8 +1123,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 1, - .evYield_SpAttack = 0, - .evYield_SpDefense = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, .itemCommon = ITEM_RAWST_BERRY, .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(75), @@ -1143,7 +1143,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 45, .baseDefense = 20, .baseSpeed = 20, - .baseSpAttack = 45, + .baseSpAttack = 25, .baseSpDefense = 25, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 170, @@ -1172,7 +1172,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 70, .baseDefense = 45, .baseSpeed = 45, - .baseSpAttack = 75, + .baseSpAttack = 50, .baseSpDefense = 50, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 50, @@ -1201,7 +1201,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 45, .baseDefense = 35, .baseSpeed = 55, - .baseSpAttack = 30, + .baseSpAttack = 40, .baseSpDefense = 40, .types = {TYPE_POISON, TYPE_FLYING}, .catchRate = 255, @@ -1230,7 +1230,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 80, .baseDefense = 70, .baseSpeed = 90, - .baseSpAttack = 65, + .baseSpAttack = 75, .baseSpDefense = 75, .types = {TYPE_POISON, TYPE_FLYING}, .catchRate = 90, @@ -1260,7 +1260,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 55, .baseSpeed = 30, .baseSpAttack = 75, - .baseSpDefense = 65, + .baseSpDefense = 75, .types = {TYPE_GRASS, TYPE_POISON}, .catchRate = 255, .expYield = 78, @@ -1289,7 +1289,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 70, .baseSpeed = 40, .baseSpAttack = 85, - .baseSpDefense = 75, + .baseSpDefense = 85, .types = {TYPE_GRASS, TYPE_POISON}, .catchRate = 120, .expYield = 132, @@ -1318,7 +1318,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 85, .baseSpeed = 50, .baseSpAttack = 100, - .baseSpDefense = 90, + .baseSpDefense = 100, .types = {TYPE_GRASS, TYPE_POISON}, .catchRate = 45, .expYield = 184, @@ -1346,7 +1346,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 70, .baseDefense = 55, .baseSpeed = 25, - .baseSpAttack = 45, + .baseSpAttack = 55, .baseSpDefense = 55, .types = {TYPE_BUG, TYPE_GRASS}, .catchRate = 190, @@ -1375,7 +1375,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 95, .baseDefense = 80, .baseSpeed = 30, - .baseSpAttack = 60, + .baseSpAttack = 80, .baseSpDefense = 80, .types = {TYPE_BUG, TYPE_GRASS}, .catchRate = 75, @@ -1405,7 +1405,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 50, .baseSpeed = 45, .baseSpAttack = 40, - .baseSpDefense = 55, + .baseSpDefense = 40, .types = {TYPE_BUG, TYPE_POISON}, .catchRate = 190, .expYield = 75, @@ -1413,8 +1413,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 0, - .evYield_SpDefense = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), @@ -1434,7 +1434,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 60, .baseSpeed = 90, .baseSpAttack = 90, - .baseSpDefense = 75, + .baseSpDefense = 90, .types = {TYPE_BUG, TYPE_POISON}, .catchRate = 75, .expYield = 138, @@ -1462,7 +1462,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 55, .baseDefense = 25, .baseSpeed = 95, - .baseSpAttack = 35, + .baseSpAttack = 45, .baseSpDefense = 45, .types = {TYPE_GROUND, TYPE_GROUND}, .catchRate = 255, @@ -1491,7 +1491,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 80, .baseDefense = 50, .baseSpeed = 120, - .baseSpAttack = 50, + .baseSpAttack = 70, .baseSpDefense = 70, .types = {TYPE_GROUND, TYPE_GROUND}, .catchRate = 50, @@ -1578,7 +1578,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 52, .baseDefense = 48, .baseSpeed = 55, - .baseSpAttack = 65, + .baseSpAttack = 50, .baseSpDefense = 50, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 190, @@ -1607,7 +1607,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 82, .baseDefense = 78, .baseSpeed = 85, - .baseSpAttack = 95, + .baseSpAttack = 80, .baseSpDefense = 80, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 75, @@ -1637,7 +1637,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 35, .baseSpeed = 70, .baseSpAttack = 35, - .baseSpDefense = 45, + .baseSpDefense = 35, .types = {TYPE_FIGHTING, TYPE_FIGHTING}, .catchRate = 190, .expYield = 74, @@ -1666,7 +1666,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 60, .baseSpeed = 95, .baseSpAttack = 60, - .baseSpDefense = 70, + .baseSpDefense = 60, .types = {TYPE_FIGHTING, TYPE_FIGHTING}, .catchRate = 75, .expYield = 149, @@ -1694,7 +1694,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 70, .baseDefense = 45, .baseSpeed = 60, - .baseSpAttack = 70, + .baseSpAttack = 50, .baseSpDefense = 50, .types = {TYPE_FIRE, TYPE_FIRE}, .catchRate = 190, @@ -1723,7 +1723,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 110, .baseDefense = 80, .baseSpeed = 95, - .baseSpAttack = 100, + .baseSpAttack = 80, .baseSpDefense = 80, .types = {TYPE_FIRE, TYPE_FIRE}, .catchRate = 75, @@ -1811,7 +1811,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 95, .baseSpeed = 70, .baseSpAttack = 70, - .baseSpDefense = 90, + .baseSpDefense = 70, .types = {TYPE_WATER, TYPE_FIGHTING}, .catchRate = 45, .expYield = 185, @@ -1840,7 +1840,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 15, .baseSpeed = 90, .baseSpAttack = 105, - .baseSpDefense = 55, + .baseSpDefense = 105, .types = {TYPE_PSYCHIC, TYPE_PSYCHIC}, .catchRate = 200, .expYield = 73, @@ -1869,7 +1869,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 30, .baseSpeed = 105, .baseSpAttack = 120, - .baseSpDefense = 70, + .baseSpDefense = 120, .types = {TYPE_PSYCHIC, TYPE_PSYCHIC}, .catchRate = 100, .expYield = 145, @@ -1898,7 +1898,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 45, .baseSpeed = 120, .baseSpAttack = 135, - .baseSpDefense = 85, + .baseSpDefense = 135, .types = {TYPE_PSYCHIC, TYPE_PSYCHIC}, .catchRate = 50, .expYield = 186, @@ -1956,7 +1956,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 70, .baseSpeed = 45, .baseSpAttack = 50, - .baseSpDefense = 60, + .baseSpDefense = 50, .types = {TYPE_FIGHTING, TYPE_FIGHTING}, .catchRate = 90, .expYield = 146, @@ -1985,7 +1985,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 80, .baseSpeed = 55, .baseSpAttack = 65, - .baseSpDefense = 85, + .baseSpDefense = 65, .types = {TYPE_FIGHTING, TYPE_FIGHTING}, .catchRate = 45, .expYield = 193, @@ -2014,7 +2014,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 35, .baseSpeed = 40, .baseSpAttack = 70, - .baseSpDefense = 30, + .baseSpDefense = 70, .types = {TYPE_GRASS, TYPE_POISON}, .catchRate = 255, .expYield = 84, @@ -2043,7 +2043,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 50, .baseSpeed = 55, .baseSpAttack = 85, - .baseSpDefense = 45, + .baseSpDefense = 85, .types = {TYPE_GRASS, TYPE_POISON}, .catchRate = 120, .expYield = 151, @@ -2072,7 +2072,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 65, .baseSpeed = 70, .baseSpAttack = 100, - .baseSpDefense = 60, + .baseSpDefense = 100, .types = {TYPE_GRASS, TYPE_POISON}, .catchRate = 45, .expYield = 191, @@ -2100,7 +2100,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 40, .baseDefense = 35, .baseSpeed = 70, - .baseSpAttack = 50, + .baseSpAttack = 100, .baseSpDefense = 100, .types = {TYPE_WATER, TYPE_POISON}, .catchRate = 190, @@ -2109,8 +2109,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 0, - .evYield_SpDefense = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), @@ -2129,7 +2129,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 70, .baseDefense = 65, .baseSpeed = 100, - .baseSpAttack = 80, + .baseSpAttack = 120, .baseSpDefense = 120, .types = {TYPE_WATER, TYPE_POISON}, .catchRate = 60, @@ -2138,8 +2138,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 0, - .evYield_SpDefense = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), @@ -2217,7 +2217,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 130, .baseSpeed = 45, .baseSpAttack = 55, - .baseSpDefense = 65, + .baseSpDefense = 55, .types = {TYPE_ROCK, TYPE_GROUND}, .catchRate = 45, .expYield = 177, @@ -2332,7 +2332,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 75, .baseDefense = 110, .baseSpeed = 30, - .baseSpAttack = 100, + .baseSpAttack = 80, .baseSpDefense = 80, .types = {TYPE_WATER, TYPE_PSYCHIC}, .catchRate = 75, @@ -2362,7 +2362,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 70, .baseSpeed = 45, .baseSpAttack = 95, - .baseSpDefense = 55, + .baseSpDefense = 95, .types = {TYPE_ELECTRIC, TYPE_ROCK}, .catchRate = 190, .expYield = 89, @@ -2391,7 +2391,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 95, .baseSpeed = 70, .baseSpAttack = 120, - .baseSpDefense = 70, + .baseSpDefense = 120, .types = {TYPE_ELECTRIC, TYPE_ROCK}, .catchRate = 60, .expYield = 161, @@ -2420,7 +2420,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 55, .baseSpeed = 60, .baseSpAttack = 58, - .baseSpDefense = 62, + .baseSpDefense = 58, .types = {TYPE_NORMAL, TYPE_FLYING}, .catchRate = 45, .expYield = 94, @@ -2506,7 +2506,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 45, .baseDefense = 55, .baseSpeed = 45, - .baseSpAttack = 45, + .baseSpAttack = 70, .baseSpDefense = 70, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 190, @@ -2515,8 +2515,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 0, - .evYield_SpDefense = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, .itemCommon = ITEM_ASPEAR_BERRY, .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), @@ -2535,7 +2535,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 70, .baseDefense = 80, .baseSpeed = 70, - .baseSpAttack = 70, + .baseSpAttack = 95, .baseSpDefense = 95, .types = {TYPE_WATER, TYPE_ICE}, .catchRate = 75, @@ -2544,8 +2544,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 0, - .evYield_SpDefense = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, .itemCommon = ITEM_ASPEAR_BERRY, .itemRare = ITEM_NEVER_MELT_ICE, .genderRatio = PERCENT_FEMALE(50), @@ -2565,7 +2565,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 50, .baseSpeed = 25, .baseSpAttack = 40, - .baseSpDefense = 50, + .baseSpDefense = 40, .types = {TYPE_POISON, TYPE_POISON}, .catchRate = 190, .expYield = 90, @@ -2594,7 +2594,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 75, .baseSpeed = 50, .baseSpAttack = 65, - .baseSpDefense = 100, + .baseSpDefense = 65, .types = {TYPE_POISON, TYPE_POISON}, .catchRate = 75, .expYield = 157, @@ -2623,7 +2623,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 100, .baseSpeed = 40, .baseSpAttack = 45, - .baseSpDefense = 25, + .baseSpDefense = 45, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 190, .expYield = 97, @@ -2652,7 +2652,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 180, .baseSpeed = 70, .baseSpAttack = 85, - .baseSpDefense = 45, + .baseSpDefense = 85, .types = {TYPE_WATER, TYPE_ICE}, .catchRate = 60, .expYield = 203, @@ -2681,7 +2681,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 30, .baseSpeed = 80, .baseSpAttack = 100, - .baseSpDefense = 35, + .baseSpDefense = 100, .types = {TYPE_GHOST, TYPE_POISON}, .catchRate = 190, .expYield = 95, @@ -2710,7 +2710,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 45, .baseSpeed = 95, .baseSpAttack = 115, - .baseSpDefense = 55, + .baseSpDefense = 115, .types = {TYPE_GHOST, TYPE_POISON}, .catchRate = 90, .expYield = 126, @@ -2739,7 +2739,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 60, .baseSpeed = 110, .baseSpAttack = 130, - .baseSpDefense = 75, + .baseSpDefense = 130, .types = {TYPE_GHOST, TYPE_POISON}, .catchRate = 45, .expYield = 190, @@ -2768,7 +2768,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 160, .baseSpeed = 70, .baseSpAttack = 30, - .baseSpDefense = 45, + .baseSpDefense = 30, .types = {TYPE_ROCK, TYPE_GROUND}, .catchRate = 45, .expYield = 108, @@ -2796,7 +2796,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 48, .baseDefense = 45, .baseSpeed = 42, - .baseSpAttack = 43, + .baseSpAttack = 90, .baseSpDefense = 90, .types = {TYPE_PSYCHIC, TYPE_PSYCHIC}, .catchRate = 190, @@ -2805,8 +2805,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 0, - .evYield_SpDefense = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), @@ -2825,7 +2825,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 73, .baseDefense = 70, .baseSpeed = 67, - .baseSpAttack = 73, + .baseSpAttack = 115, .baseSpDefense = 115, .types = {TYPE_PSYCHIC, TYPE_PSYCHIC}, .catchRate = 75, @@ -2834,8 +2834,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 0, - .evYield_SpDefense = 2, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(50), @@ -2971,7 +2971,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 80, .baseSpeed = 40, .baseSpAttack = 60, - .baseSpDefense = 45, + .baseSpDefense = 60, .types = {TYPE_GRASS, TYPE_PSYCHIC}, .catchRate = 90, .expYield = 98, @@ -3000,7 +3000,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 85, .baseSpeed = 55, .baseSpAttack = 125, - .baseSpDefense = 65, + .baseSpDefense = 125, .types = {TYPE_GRASS, TYPE_PSYCHIC}, .catchRate = 45, .expYield = 212, @@ -3029,7 +3029,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 95, .baseSpeed = 35, .baseSpAttack = 40, - .baseSpDefense = 50, + .baseSpDefense = 40, .types = {TYPE_GROUND, TYPE_GROUND}, .catchRate = 190, .expYield = 87, @@ -3058,7 +3058,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 110, .baseSpeed = 45, .baseSpAttack = 50, - .baseSpDefense = 80, + .baseSpDefense = 50, .types = {TYPE_GROUND, TYPE_GROUND}, .catchRate = 75, .expYield = 124, @@ -3087,7 +3087,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 53, .baseSpeed = 87, .baseSpAttack = 35, - .baseSpDefense = 110, + .baseSpDefense = 35, .types = {TYPE_FIGHTING, TYPE_FIGHTING}, .catchRate = 45, .expYield = 139, @@ -3116,7 +3116,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 79, .baseSpeed = 76, .baseSpAttack = 35, - .baseSpDefense = 110, + .baseSpDefense = 35, .types = {TYPE_FIGHTING, TYPE_FIGHTING}, .catchRate = 45, .expYield = 140, @@ -3145,7 +3145,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 75, .baseSpeed = 30, .baseSpAttack = 60, - .baseSpDefense = 75, + .baseSpDefense = 60, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 45, .expYield = 127, @@ -3174,7 +3174,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 95, .baseSpeed = 35, .baseSpAttack = 60, - .baseSpDefense = 45, + .baseSpDefense = 60, .types = {TYPE_POISON, TYPE_POISON}, .catchRate = 190, .expYield = 114, @@ -3203,7 +3203,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 120, .baseSpeed = 60, .baseSpAttack = 85, - .baseSpDefense = 70, + .baseSpDefense = 85, .types = {TYPE_POISON, TYPE_POISON}, .catchRate = 60, .expYield = 173, @@ -3289,7 +3289,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 5, .baseDefense = 5, .baseSpeed = 50, - .baseSpAttack = 35, + .baseSpAttack = 105, .baseSpDefense = 105, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 30, @@ -3319,7 +3319,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 115, .baseSpeed = 60, .baseSpAttack = 100, - .baseSpDefense = 40, + .baseSpDefense = 100, .types = {TYPE_GRASS, TYPE_GRASS}, .catchRate = 45, .expYield = 166, @@ -3348,7 +3348,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 80, .baseSpeed = 90, .baseSpAttack = 40, - .baseSpDefense = 80, + .baseSpDefense = 40, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 45, .expYield = 175, @@ -3377,7 +3377,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 70, .baseSpeed = 60, .baseSpAttack = 70, - .baseSpDefense = 25, + .baseSpDefense = 70, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 225, .expYield = 83, @@ -3406,7 +3406,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 95, .baseSpeed = 85, .baseSpAttack = 95, - .baseSpDefense = 45, + .baseSpDefense = 95, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 75, .expYield = 155, @@ -3434,7 +3434,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 67, .baseDefense = 60, .baseSpeed = 63, - .baseSpAttack = 35, + .baseSpAttack = 50, .baseSpDefense = 50, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 225, @@ -3463,7 +3463,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 92, .baseDefense = 65, .baseSpeed = 68, - .baseSpAttack = 65, + .baseSpAttack = 80, .baseSpDefense = 80, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 60, @@ -3493,7 +3493,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 55, .baseSpeed = 85, .baseSpAttack = 70, - .baseSpDefense = 55, + .baseSpDefense = 70, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 225, .expYield = 106, @@ -3522,7 +3522,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 85, .baseSpeed = 115, .baseSpAttack = 100, - .baseSpDefense = 85, + .baseSpDefense = 100, .types = {TYPE_WATER, TYPE_PSYCHIC}, .catchRate = 60, .expYield = 207, @@ -3551,7 +3551,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 65, .baseSpeed = 90, .baseSpAttack = 100, - .baseSpDefense = 120, + .baseSpDefense = 100, .types = {TYPE_PSYCHIC, TYPE_PSYCHIC}, .catchRate = 45, .expYield = 136, @@ -3580,7 +3580,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 80, .baseSpeed = 105, .baseSpAttack = 55, - .baseSpDefense = 80, + .baseSpDefense = 55, .types = {TYPE_BUG, TYPE_FLYING}, .catchRate = 45, .expYield = 187, @@ -3608,7 +3608,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 50, .baseDefense = 35, .baseSpeed = 95, - .baseSpAttack = 115, + .baseSpAttack = 95, .baseSpDefense = 95, .types = {TYPE_ICE, TYPE_PSYCHIC}, .catchRate = 45, @@ -3637,7 +3637,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 83, .baseDefense = 57, .baseSpeed = 105, - .baseSpAttack = 95, + .baseSpAttack = 85, .baseSpDefense = 85, .types = {TYPE_ELECTRIC, TYPE_ELECTRIC}, .catchRate = 45, @@ -3666,7 +3666,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 95, .baseDefense = 57, .baseSpeed = 93, - .baseSpAttack = 100, + .baseSpAttack = 85, .baseSpDefense = 85, .types = {TYPE_FIRE, TYPE_FIRE}, .catchRate = 45, @@ -3696,7 +3696,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 100, .baseSpeed = 85, .baseSpAttack = 55, - .baseSpDefense = 70, + .baseSpDefense = 55, .types = {TYPE_BUG, TYPE_BUG}, .catchRate = 45, .expYield = 200, @@ -3724,7 +3724,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 100, .baseDefense = 95, .baseSpeed = 110, - .baseSpAttack = 40, + .baseSpAttack = 70, .baseSpDefense = 70, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 45, @@ -3753,7 +3753,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 10, .baseDefense = 55, .baseSpeed = 80, - .baseSpAttack = 15, + .baseSpAttack = 20, .baseSpDefense = 20, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 255, @@ -3782,7 +3782,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 125, .baseDefense = 79, .baseSpeed = 81, - .baseSpAttack = 60, + .baseSpAttack = 100, .baseSpDefense = 100, .types = {TYPE_WATER, TYPE_FLYING}, .catchRate = 45, @@ -3811,7 +3811,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 85, .baseDefense = 80, .baseSpeed = 60, - .baseSpAttack = 85, + .baseSpAttack = 95, .baseSpDefense = 95, .types = {TYPE_WATER, TYPE_ICE}, .catchRate = 45, @@ -3869,7 +3869,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 55, .baseDefense = 50, .baseSpeed = 55, - .baseSpAttack = 45, + .baseSpAttack = 65, .baseSpDefense = 65, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 45, @@ -3878,8 +3878,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 0, - .evYield_SpDefense = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_NONE, .genderRatio = PERCENT_FEMALE(12.5), @@ -3899,7 +3899,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 60, .baseSpeed = 65, .baseSpAttack = 110, - .baseSpDefense = 95, + .baseSpDefense = 110, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 45, .expYield = 196, @@ -3928,7 +3928,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 60, .baseSpeed = 130, .baseSpAttack = 110, - .baseSpDefense = 95, + .baseSpDefense = 110, .types = {TYPE_ELECTRIC, TYPE_ELECTRIC}, .catchRate = 45, .expYield = 197, @@ -3956,7 +3956,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 130, .baseDefense = 60, .baseSpeed = 65, - .baseSpAttack = 95, + .baseSpAttack = 110, .baseSpDefense = 110, .types = {TYPE_FIRE, TYPE_FIRE}, .catchRate = 45, @@ -3985,7 +3985,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 60, .baseDefense = 70, .baseSpeed = 40, - .baseSpAttack = 85, + .baseSpAttack = 75, .baseSpDefense = 75, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 45, @@ -4015,7 +4015,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 100, .baseSpeed = 35, .baseSpAttack = 90, - .baseSpDefense = 55, + .baseSpDefense = 90, .types = {TYPE_ROCK, TYPE_WATER}, .catchRate = 45, .expYield = 120, @@ -4044,7 +4044,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 125, .baseSpeed = 55, .baseSpAttack = 115, - .baseSpDefense = 70, + .baseSpDefense = 115, .types = {TYPE_ROCK, TYPE_WATER}, .catchRate = 45, .expYield = 199, @@ -4072,7 +4072,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 80, .baseDefense = 90, .baseSpeed = 55, - .baseSpAttack = 55, + .baseSpAttack = 45, .baseSpDefense = 45, .types = {TYPE_ROCK, TYPE_WATER}, .catchRate = 45, @@ -4101,7 +4101,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 115, .baseDefense = 105, .baseSpeed = 80, - .baseSpAttack = 65, + .baseSpAttack = 70, .baseSpDefense = 70, .types = {TYPE_ROCK, TYPE_WATER}, .catchRate = 45, @@ -4131,7 +4131,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 65, .baseSpeed = 130, .baseSpAttack = 60, - .baseSpDefense = 75, + .baseSpDefense = 60, .types = {TYPE_ROCK, TYPE_FLYING}, .catchRate = 45, .expYield = 202, @@ -4160,7 +4160,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 65, .baseSpeed = 30, .baseSpAttack = 65, - .baseSpDefense = 110, + .baseSpDefense = 65, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 25, .expYield = 154, @@ -4188,7 +4188,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 85, .baseDefense = 100, .baseSpeed = 85, - .baseSpAttack = 95, + .baseSpAttack = 125, .baseSpDefense = 125, .types = {TYPE_ICE, TYPE_FLYING}, .catchRate = 3, @@ -4218,7 +4218,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 85, .baseSpeed = 100, .baseSpAttack = 125, - .baseSpDefense = 90, + .baseSpDefense = 125, .types = {TYPE_ELECTRIC, TYPE_FLYING}, .catchRate = 3, .expYield = 216, @@ -4247,7 +4247,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 90, .baseSpeed = 90, .baseSpAttack = 125, - .baseSpDefense = 85, + .baseSpDefense = 125, .types = {TYPE_FIRE, TYPE_FLYING}, .catchRate = 3, .expYield = 217, @@ -4363,7 +4363,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 90, .baseSpeed = 130, .baseSpAttack = 154, - .baseSpDefense = 90, + .baseSpDefense = 154, .types = {TYPE_PSYCHIC, TYPE_PSYCHIC}, .catchRate = 3, .expYield = 220, @@ -4913,7 +4913,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 90, .baseDefense = 80, .baseSpeed = 130, - .baseSpAttack = 70, + .baseSpAttack = 80, .baseSpDefense = 80, .types = {TYPE_POISON, TYPE_FLYING}, .catchRate = 90, @@ -5029,7 +5029,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 25, .baseDefense = 28, .baseSpeed = 15, - .baseSpAttack = 45, + .baseSpAttack = 55, .baseSpDefense = 55, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 150, @@ -5038,8 +5038,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 0, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 0, - .evYield_SpDefense = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_MOON_STONE, .genderRatio = PERCENT_FEMALE(75), @@ -5059,7 +5059,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 15, .baseSpeed = 15, .baseSpAttack = 40, - .baseSpDefense = 20, + .baseSpDefense = 40, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 170, .expYield = 39, @@ -5290,7 +5290,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 80, .baseDefense = 85, .baseSpeed = 50, - .baseSpAttack = 90, + .baseSpAttack = 100, .baseSpDefense = 100, .types = {TYPE_GRASS, TYPE_GRASS}, .catchRate = 45, @@ -5406,7 +5406,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 75, .baseDefense = 75, .baseSpeed = 70, - .baseSpAttack = 90, + .baseSpAttack = 100, .baseSpDefense = 100, .types = {TYPE_WATER, TYPE_WATER}, .catchRate = 45, @@ -5697,7 +5697,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 60, .baseSpeed = 110, .baseSpAttack = 130, - .baseSpDefense = 95, + .baseSpDefense = 130, .types = {TYPE_PSYCHIC, TYPE_PSYCHIC}, .catchRate = 45, .expYield = 197, @@ -5725,7 +5725,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 65, .baseDefense = 110, .baseSpeed = 65, - .baseSpAttack = 60, + .baseSpAttack = 130, .baseSpDefense = 130, .types = {TYPE_GHOST, TYPE_GHOST}, .catchRate = 45, @@ -5783,7 +5783,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 75, .baseDefense = 80, .baseSpeed = 30, - .baseSpAttack = 100, + .baseSpAttack = 110, .baseSpDefense = 110, .types = {TYPE_WATER, TYPE_PSYCHIC}, .catchRate = 70, @@ -6044,7 +6044,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 85, .baseDefense = 200, .baseSpeed = 30, - .baseSpAttack = 55, + .baseSpAttack = 65, .baseSpDefense = 65, .types = {TYPE_ROCK, TYPE_ROCK}, .catchRate = 25, @@ -6160,7 +6160,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 130, .baseDefense = 100, .baseSpeed = 65, - .baseSpAttack = 55, + .baseSpAttack = 80, .baseSpDefense = 80, .types = {TYPE_BUG, TYPE_ROCK}, .catchRate = 25, @@ -6691,8 +6691,8 @@ const struct SpeciesInfo gSpeciesInfo[] = .evYield_Attack = 1, .evYield_Defense = 0, .evYield_Speed = 0, - .evYield_SpAttack = 1, - .evYield_SpDefense = 1, + .evYield_SpAttack = 2, + .evYield_SpDefense = 0, .itemCommon = ITEM_NONE, .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), @@ -6769,7 +6769,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 80, .baseDefense = 90, .baseSpeed = 60, - .baseSpAttack = 105, + .baseSpAttack = 95, .baseSpDefense = 95, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 45, @@ -6886,7 +6886,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseDefense = 95, .baseSpeed = 70, .baseSpAttack = 35, - .baseSpDefense = 110, + .baseSpDefense = 35, .types = {TYPE_FIGHTING, TYPE_FIGHTING}, .catchRate = 45, .expYield = 138, @@ -6914,7 +6914,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 30, .baseDefense = 15, .baseSpeed = 65, - .baseSpAttack = 85, + .baseSpAttack = 65, .baseSpDefense = 65, .types = {TYPE_ICE, TYPE_PSYCHIC}, .catchRate = 45, @@ -6943,7 +6943,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 63, .baseDefense = 37, .baseSpeed = 95, - .baseSpAttack = 65, + .baseSpAttack = 55, .baseSpDefense = 55, .types = {TYPE_ELECTRIC, TYPE_ELECTRIC}, .catchRate = 45, @@ -6972,7 +6972,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 75, .baseDefense = 37, .baseSpeed = 83, - .baseSpAttack = 70, + .baseSpAttack = 55, .baseSpDefense = 55, .types = {TYPE_FIRE, TYPE_FIRE}, .catchRate = 45, @@ -7030,7 +7030,7 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseAttack = 10, .baseDefense = 10, .baseSpeed = 55, - .baseSpAttack = 75, + .baseSpAttack = 135, .baseSpDefense = 135, .types = {TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 30, diff --git a/src/pokemon.c b/src/pokemon.c index 1699e537b..1f708823e 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -2160,8 +2160,14 @@ void CalculateMonStats(struct Pokemon *mon) CALC_STAT(baseAttack, attackIV, attackEV, STAT_ATK, MON_DATA_ATK) CALC_STAT(baseDefense, defenseIV, defenseEV, STAT_DEF, MON_DATA_DEF) CALC_STAT(baseSpeed, speedIV, speedEV, STAT_SPEED, MON_DATA_SPEED) - CALC_STAT(baseSpAttack, spAttackIV, spAttackEV, STAT_SPATK, MON_DATA_SPATK) - CALC_STAT(baseSpDefense, spDefenseIV, spDefenseEV, STAT_SPDEF, MON_DATA_SPDEF) + { + u8 baseStat = gSpeciesInfo[species].baseSpAttack; // same value as baseSpDefense after Step 1 + s32 n = (((2 * baseStat + spAttackIV + spAttackEV / 4) * level) / 100) + 5; + u8 nature = GetNature(mon); + n = ModifyStatByNature(nature, n, STAT_SPATK); // use SpAtk column only + SetMonData(mon, MON_DATA_SPATK, &n); + SetMonData(mon, MON_DATA_SPDEF, &n); // mirror + } if (species == SPECIES_SHEDINJA) { @@ -2438,7 +2444,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de attack = attacker->attack; defense = defender->defense; spAttack = attacker->spAttack; - spDefense = defender->spDefense; + spDefense = defender->spAttack; //updated to merge // Get attacker hold item info if (attacker->item == ITEM_ENIGMA_BERRY) @@ -2625,13 +2631,13 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de if (gCritMultiplier == 2) { // Critical hit, if defender has gained sp. defense stat stages then ignore stat increase - if (defender->statStages[STAT_SPDEF] < DEFAULT_STAT_STAGE) - APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_SPDEF) + if (defender->statStages[STAT_SPATK] < DEFAULT_STAT_STAGE) + APPLY_STAT_MOD(damageHelper, defender, spAttack, STAT_SPATK) else - damageHelper = spDefense; + damageHelper = spAttack; } else - APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_SPDEF) + APPLY_STAT_MOD(damageHelper, defender, spAttack, STAT_SPATK) damage = (damage / damageHelper); damage /= 50; diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index b3e3c7763..fd60c310f 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -174,6 +174,8 @@ struct PokemonSummaryScreenData u8 ALIGNED(4) levelStrBuf[7]; u8 ALIGNED(4) curHpStrBuf[9]; u8 ALIGNED(4) statValueStrBufs[5][5]; + u8 ALIGNED(4) ivStrBufs[5][4]; // add Ivs + u8 ALIGNED(4) evStrBufs[5][5]; // add Evs u8 ALIGNED(4) moveCurPpStrBufs[5][11]; u8 ALIGNED(4) moveMaxPpStrBufs[5][11]; @@ -2171,28 +2173,8 @@ static void BufferMonSkills(void) if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary && sMonSummaryScreen->isEnemyParty == TRUE) { - statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK2); - ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - sMonSkillsPrinterXpos->atkStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK]); + // SpAtk + SpDef block and add IV/EV reads: - statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF2); - ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - sMonSkillsPrinterXpos->defStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF]); - - statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK2); - ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - sMonSkillsPrinterXpos->spAStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]); - - statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPDEF2); - ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - sMonSkillsPrinterXpos->spDStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD]); - - statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED2); - ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - sMonSkillsPrinterXpos->speStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE]); - } - else - { statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK); ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); sMonSkillsPrinterXpos->atkStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK]); @@ -2201,17 +2183,95 @@ static void BufferMonSkills(void) ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); sMonSkillsPrinterXpos->defStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF]); + // CHANGED: read SpAtk only, write to SPA slot, discard SpDef entirely statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK); ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); sMonSkillsPrinterXpos->spAStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]); - - statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPDEF); - ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); - sMonSkillsPrinterXpos->spDStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD]); + // PSS_STAT_SPD slot and spDStr are no longer populated statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED); ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); sMonSkillsPrinterXpos->speStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE]); + + // ADD: IV reads + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK_IV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[0], statValue, STR_CONV_MODE_LEFT_ALIGN, 2); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF_IV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[1], statValue, STR_CONV_MODE_LEFT_ALIGN, 2); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK_IV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[2], statValue, STR_CONV_MODE_LEFT_ALIGN, 2); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED_IV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[3], statValue, STR_CONV_MODE_LEFT_ALIGN, 2); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP_IV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[4], statValue, STR_CONV_MODE_LEFT_ALIGN, 2); + + // ADD: EV reads + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK_EV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[0], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF_EV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[1], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK_EV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[2], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED_EV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[3], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP_EV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[4], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + } + else + { + // SpAtk + SpDef block and add IV/EV reads: + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + sMonSkillsPrinterXpos->atkStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK]); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + sMonSkillsPrinterXpos->defStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF]); + + // CHANGED: read SpAtk only, write to SPA slot, discard SpDef entirely + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + sMonSkillsPrinterXpos->spAStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]); + // PSS_STAT_SPD slot and spDStr are no longer populated + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + sMonSkillsPrinterXpos->speStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE]); + + // ADD: IV reads + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK_IV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[0], statValue, STR_CONV_MODE_LEFT_ALIGN, 2); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF_IV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[1], statValue, STR_CONV_MODE_LEFT_ALIGN, 2); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK_IV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[2], statValue, STR_CONV_MODE_LEFT_ALIGN, 2); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED_IV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.ivStrBufs[3], statValue, STR_CONV_MODE_LEFT_ALIGN, 2); + + // ADD: EV reads + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK_EV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[0], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF_EV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[1], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK_EV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[2], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); + + statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED_EV); + ConvertIntToDecimalStringN(sMonSummaryScreen->summary.evStrBufs[3], statValue, STR_CONV_MODE_LEFT_ALIGN, 3); } exp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_EXP); @@ -2498,13 +2558,37 @@ static void PrintInfoPage(void) static void PrintSkillsPage(void) { + // HP — unchanged AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 14 + sMonSkillsPrinterXpos->curHpStr, 4, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.curHpStrBuf); + + // ADD: HP IV and EV on the same row + AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 56, 4, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.ivStrBufs[4]); + AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 70, 4, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.evStrBufs[4]); + + // ATK — y=22, stat value left column, IV and EV right columns AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 50 + sMonSkillsPrinterXpos->atkStr, 22, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK]); + AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 56, 22, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.ivStrBufs[0]); + AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 70, 22, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.evStrBufs[0]); + + // DEF — y=35 AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 50 + sMonSkillsPrinterXpos->defStr, 35, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF]); - AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 50 + sMonSkillsPrinterXpos->spAStr, 48, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]); - AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 50 + sMonSkillsPrinterXpos->spDStr, 61, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD]); + AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 56, 35, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.ivStrBufs[1]); + AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 70, 35, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.evStrBufs[1]); + + // SPECIAL — y=54 (centred between old y=48 and y=61, SpDef row removed) + AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 50 + sMonSkillsPrinterXpos->spAStr, 54, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]); + AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 56, 54, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.ivStrBufs[2]); + AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 70, 54, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.evStrBufs[2]); + + // SPEED — not shifted AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 50 + sMonSkillsPrinterXpos->speStr, 74, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE]); + AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 56, 74, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.ivStrBufs[3]); + AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_SMALL, 70, 74, sLevelNickTextColors[1], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.evStrBufs[3]); + + // EXP — not shifted AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 15 + sMonSkillsPrinterXpos->expStr, 87, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.expPointsStrBuf); + + // To Next — not shifted AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], FONT_NORMAL, 15 + sMonSkillsPrinterXpos->toNextLevel, 100, sLevelNickTextColors[0], TEXT_SKIP_DRAW, sMonSummaryScreen->summary.expToNextLevelStrBuf); }