From 5498098438502c1582fc829f3e680b0317b27ca5 Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Tue, 9 Jan 2024 13:37:07 +0100 Subject: [PATCH 1/8] Syrup Bomb / Sticky Syrup addition (#3948) * Syrup Bomb / Sticky Syrup addition * Update test/battle/move_effect/syrup_bomb.c Co-authored-by: Eduardo Quezada D'Ottone * Update src/battle_script_commands.c Co-authored-by: Bassoonian --------- Co-authored-by: Eduardo Quezada D'Ottone Co-authored-by: Bassoonian --- include/battle.h | 1 + src/battle_main.c | 6 +++- src/battle_script_commands.c | 10 +++--- test/battle/move_effect/syrup_bomb.c | 48 ++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 5 deletions(-) diff --git a/include/battle.h b/include/battle.h index 4f5af755b6..ea710ed797 100644 --- a/include/battle.h +++ b/include/battle.h @@ -742,6 +742,7 @@ struct BattleStruct u8 transformZeroToHero[NUM_BATTLE_SIDES]; u8 intrepidSwordBoost[NUM_BATTLE_SIDES]; u8 dauntlessShieldBoost[NUM_BATTLE_SIDES]; + u8 stickySyrupdBy[MAX_BATTLERS_COUNT]; }; // The palaceFlags member of struct BattleStruct contains 1 flag per move to indicate which moves the AI should consider, diff --git a/src/battle_main.c b/src/battle_main.c index f647ae5569..d5608ec21b 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3124,6 +3124,8 @@ void SwitchInClearSetData(u32 battler) gBattleMons[i].status2 &= ~STATUS2_INFATUATED_WITH(battler); if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == battler) gBattleMons[i].status2 &= ~STATUS2_WRAPPED; + if ((gStatuses4[i] & STATUS4_SYRUP_BOMB) && *(gBattleStruct->stickySyrupdBy + i) == battler) + gStatuses4[i] &= ~STATUS4_SYRUP_BOMB; } gActionSelectionCursor[battler] = 0; @@ -3228,6 +3230,8 @@ const u8* FaintClearSetData(u32 battler) gBattleMons[i].status2 &= ~STATUS2_INFATUATED_WITH(battler); if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == battler) gBattleMons[i].status2 &= ~STATUS2_WRAPPED; + if ((gStatuses4[i] & STATUS4_SYRUP_BOMB) && *(gBattleStruct->stickySyrupdBy + i) == battler) + gStatuses4[i] &= ~STATUS4_SYRUP_BOMB; } gActionSelectionCursor[battler] = 0; @@ -4932,7 +4936,7 @@ static void TurnValuesCleanUp(bool8 var0) gSideStatuses[B_SIDE_OPPONENT] &= ~(SIDE_STATUS_QUICK_GUARD | SIDE_STATUS_WIDE_GUARD | SIDE_STATUS_CRAFTY_SHIELD | SIDE_STATUS_MAT_BLOCK); gSideTimers[B_SIDE_PLAYER].followmeTimer = 0; gSideTimers[B_SIDE_OPPONENT].followmeTimer = 0; - + gBattleStruct->pledgeMove = FALSE; // combined pledge move may not have been used due to a canceller } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index b9ff7f63c8..26c1ffa09a 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1586,8 +1586,8 @@ static bool32 AccuracyCalcHelper(u16 move) if (WEATHER_HAS_EFFECT) { - if (IsBattlerWeatherAffected(gBattlerTarget, B_WEATHER_RAIN) && - (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE || + if (IsBattlerWeatherAffected(gBattlerTarget, B_WEATHER_RAIN) && + (gBattleMoves[move].effect == EFFECT_THUNDER || gBattleMoves[move].effect == EFFECT_HURRICANE || move == MOVE_BLEAKWIND_STORM || move == MOVE_WILDBOLT_STORM || move == MOVE_SANDSEAR_STORM)) { // thunder/hurricane/genie moves ignore acc checks in rain unless target is holding utility umbrella @@ -3136,7 +3136,8 @@ void SetMoveEffect(bool32 primary, u32 certain) gBattlerAbility = gEffectBattler; RecordAbilityBattle(gEffectBattler, ABILITY_INNER_FOCUS); gBattlescriptCurrInstr = BattleScript_FlinchPrevention; - } else + } + else { gBattlescriptCurrInstr++; } @@ -3144,7 +3145,7 @@ void SetMoveEffect(bool32 primary, u32 certain) else if (GetBattlerTurnOrderNum(gEffectBattler) > gCurrentTurnActionNumber && !IsDynamaxed(gEffectBattler)) { - gBattleMons[gEffectBattler].status2 |= sStatusFlagsForMoveEffects[gBattleScripting.moveEffect]; + gBattleMons[gEffectBattler].status2 |= sStatusFlagsForMoveEffects[gBattleScripting.moveEffect]; gBattlescriptCurrInstr++; } break; @@ -3683,6 +3684,7 @@ void SetMoveEffect(bool32 primary, u32 certain) gStatuses4[gEffectBattler] |= STATUS4_SYRUP_BOMB; gDisableStructs[gEffectBattler].syrupBombTimer = 3; gDisableStructs[gEffectBattler].syrupBombIsShiny = IsMonShiny(&party[gBattlerPartyIndexes[gBattlerAttacker]]); + gBattleStruct->stickySyrupdBy[gEffectBattler] = gBattlerAttacker; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_SyrupBombActivates; } diff --git a/test/battle/move_effect/syrup_bomb.c b/test/battle/move_effect/syrup_bomb.c index f286049e1a..57831abb55 100644 --- a/test/battle/move_effect/syrup_bomb.c +++ b/test/battle/move_effect/syrup_bomb.c @@ -164,3 +164,51 @@ SINGLE_BATTLE_TEST("Sticky syrup will not decrease speed further then minus six" } } } + +SINGLE_BATTLE_TEST("Sticky Syrup is removed when the user switches out") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SYRUP_BOMB); } + TURN { SWITCH(player, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); + HP_BAR(opponent); + MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed fell!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed fell!"); + } + } +} + +SINGLE_BATTLE_TEST("Sticky Syrup is removed when the user faints") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SYRUP_BOMB); + MOVE(opponent, MOVE_TACKLE); + SEND_OUT(player, 1); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); + HP_BAR(opponent); + MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player); + MESSAGE("Wobbuffet fainted!"); + MESSAGE("Go! Wynaut!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed fell!"); + } + } +} From 4dc1b1dda3cd0472c2cca540a324459bdc854cba Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Wed, 10 Jan 2024 01:20:51 +0100 Subject: [PATCH 2/8] Revert "Update catch curve for pokeballs (#3685)" (#3955) This reverts commit 929ec54a3922915f9f4a0c8b822b99e70fb51d21. --- include/config/pokemon.h | 1 - src/battle_script_commands.c | 14 +++----------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/include/config/pokemon.h b/include/config/pokemon.h index abdb728ac1..e833399eac 100644 --- a/include/config/pokemon.h +++ b/include/config/pokemon.h @@ -31,7 +31,6 @@ #define P_CUSTOM_GENDER_DIFF_ICONS TRUE // If TRUE, will give more Pokémon custom icons for their female forms, i.e. Hippopotas and Hippowdon #define P_LEGENDARY_PERFECT_IVS GEN_LATEST // Since Gen 6, Legendaries, Mythicals and Ultra Beasts found in the wild or given through gifts have at least 3 perfect IVs. #define P_EV_CAP GEN_LATEST // Since Gen 6, the max EVs per stat is 252 instead of 255. -#define P_CATCH_CURVE GEN_LATEST // Since Gen 6, the capture rate curve was changed to make pokeballs more effective on lower level pokemon // Flag settings // To use the following features in scripting, replace the 0s with the flag ID you're assigning it to. diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 26c1ffa09a..a509a4c8cb 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -14969,7 +14969,7 @@ static void Cmd_handleballthrow(void) if (gBattleResults.catchAttempts[gLastUsedItem - FIRST_BALL] < 255) gBattleResults.catchAttempts[gLastUsedItem - FIRST_BALL]++; - if (odds >= 255) // mon caught + if (odds > 254) // mon caught { BtlController_EmitBallThrowAnim(gBattlerAttacker, BUFFER_A, BALL_3_SHAKES_SUCCESS); MarkBattlerForControllerExec(gBattlerAttacker); @@ -15014,16 +15014,8 @@ static void Cmd_handleballthrow(void) } else { - if (P_CATCH_CURVE >= GEN_6) - { - odds = (255 * 255 * 255) / (odds * odds * odds); - odds = 65536 / Sqrt(Sqrt(Sqrt(Sqrt(odds)))); - } - else - { - odds = Sqrt(Sqrt(16711680 / odds)); - odds = 1048560 / odds; - } + odds = Sqrt(Sqrt(16711680 / odds)); + odds = 1048560 / odds; for (shakes = 0; shakes < maxShakes && Random() < odds; shakes++); } From 6c5cf38803e84ac7a2a016b4840796884b9ea2e9 Mon Sep 17 00:00:00 2001 From: Ninjdai <65647523+Ninjdai1@users.noreply.github.com> Date: Wed, 10 Jan 2024 15:41:23 +0100 Subject: [PATCH 3/8] Fix typo in pokedex_plus_hgss.c (#3958) --- src/pokedex_plus_hgss.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokedex_plus_hgss.c b/src/pokedex_plus_hgss.c index 301836867c..905fdae97e 100644 --- a/src/pokedex_plus_hgss.c +++ b/src/pokedex_plus_hgss.c @@ -199,7 +199,7 @@ static const u8 sText_Dex_OWN[] = _("OWN"); static const u8 sText_EVO_Buttons[] = _("{DPAD_UPDOWN}EVOs {A_BUTTON}CHECK"); static const u8 sText_EVO_Buttons_Decapped[] = _("{DPAD_UPDOWN}Evos {A_BUTTON}Check"); static const u8 sText_EVO_Buttons_PE[] = _("{DPAD_UPDOWN}EVOs {A_BUTTON}CHECK {START_BUTTON}FORMs"); -static const u8 sText_EVO_Buttons_Decapped_PE[] = _("{DPAD_UPDOWN}Evos {A_BUTTON}Check {START_BUTTON}Froms"); +static const u8 sText_EVO_Buttons_Decapped_PE[] = _("{DPAD_UPDOWN}Evos {A_BUTTON}Check {START_BUTTON}Forms"); static const u8 sText_EVO_Name[] = _("{STR_VAR_3}:"); static const u8 sText_EVO_PreEvo[] = _("{STR_VAR_1} evolves from {STR_VAR_2}"); static const u8 sText_EVO_PreEvo_PE_Mega[] = _("{STR_VAR_1} Mega Evolves with {STR_VAR_2}"); From a1a79ce8dbcf8b383b14783803f9007d3d311aca Mon Sep 17 00:00:00 2001 From: Damon Murdoch Date: Thu, 11 Jan 2024 18:30:07 +1000 Subject: [PATCH 4/8] Fix clangorous soulblaze boosting itself twice in doubles (#3965) Fix clangorous soulblaze boosting itself twice in doubles --- data/battle_scripts_1.s | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 13a269dadd..d6eae41078 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -5301,6 +5301,8 @@ BattleScript_EffectSpecialAttackUpHit:: goto BattleScript_EffectHit BattleScript_EffectAllStatsUpHit:: + @ Handle clangorous soulblaze boosting itself twice in doubles + jumpifword CMP_NO_COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING | HITMARKER_NO_PPDEDUCT, BattleScript_NoMoveEffect setmoveeffect MOVE_EFFECT_ALL_STATS_UP | MOVE_EFFECT_AFFECTS_USER goto BattleScript_EffectHit From e0f672fbad61a7c5a2684c96f2eb3853e932507c Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Thu, 11 Jan 2024 10:56:19 +0100 Subject: [PATCH 5/8] Tauros forms stat fixes + Electrode-H evo item fix (#3970) * Tauros forms stat fixes + Electrode-H evo item fix * fixes misc info placement --- src/data/pokemon/species_info/gen_1.h | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/data/pokemon/species_info/gen_1.h b/src/data/pokemon/species_info/gen_1.h index af319cab9b..2f39275185 100644 --- a/src/data/pokemon/species_info/gen_1.h +++ b/src/data/pokemon/species_info/gen_1.h @@ -7659,7 +7659,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = ICON(VoltorbHisuian, 0), LEARNSETS(VoltorbHisuian), .isHisuianForm = TRUE, - .evolutions = EVOLUTION({EVO_LEVEL, ITEM_LEAF_STONE, SPECIES_ELECTRODE_HISUIAN}), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_ELECTRODE_HISUIAN}), }, [SPECIES_ELECTRODE_HISUIAN] = @@ -10161,12 +10161,6 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = #if P_FAMILY_TAUROS #define TAUROS_MISC_INFO \ - .baseHP = 75, \ - .baseAttack = 100, \ - .baseDefense = 95, \ - .baseSpeed = 110, \ - .baseSpAttack = 40, \ - .baseSpDefense = 70, \ .catchRate = 45, \ .expYield = 172, \ .genderRatio = MON_MALE, \ @@ -10189,6 +10183,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = [SPECIES_TAUROS] = { TAUROS_MISC_INFO, + .baseHP = 75, + .baseAttack = 100, + .baseDefense = 95, + .baseSpeed = 110, + .baseSpAttack = 40, + .baseSpDefense = 70, .types = { TYPE_NORMAL, TYPE_NORMAL }, .evYield_Attack = 1, .evYield_Speed = 1, @@ -10214,9 +10214,17 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = }, #if P_PALDEAN_FORMS +#define PALDEAN_TAUROS_BASE_STATS \ + .baseHP = 75, \ + .baseAttack = 110, \ + .baseDefense = 105, \ + .baseSpeed = 100, \ + .baseSpAttack = 30, \ + .baseSpDefense = 70 [SPECIES_TAUROS_PALDEAN_COMBAT_BREED] = { TAUROS_MISC_INFO, + PALDEAN_TAUROS_BASE_STATS, .types = { TYPE_FIGHTING, TYPE_FIGHTING }, .evYield_Attack = 2, .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, @@ -10243,6 +10251,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = { TAUROS_MISC_INFO, + PALDEAN_TAUROS_BASE_STATS, .types = { TYPE_FIGHTING, TYPE_FIRE }, .evYield_Attack = 2, .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, @@ -10269,6 +10278,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = { TAUROS_MISC_INFO, + PALDEAN_TAUROS_BASE_STATS, .types = { TYPE_FIGHTING, TYPE_WATER }, .evYield_Attack = 2, .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, From a8a504ef253ca816f108382a13d661a6f7db583a Mon Sep 17 00:00:00 2001 From: Bassoonian Date: Thu, 11 Jan 2024 17:35:31 +0100 Subject: [PATCH 6/8] Refactor dex completion (again) (#3937) * Refactor dex completion * Incorporate Alex's requests * rename to dexForceRequired * Revert GetPokedexRatingText argument type * Apply suggestions from code review Co-authored-by: Eduardo Quezada D'Ottone * Revert "Revert GetPokedexRatingText argument type" This reverts commit a9b0c280409196ee0e6cfe170104f45d9e0168a7. * Fix HasAllMons * Fix oops --------- Co-authored-by: Eduardo Quezada D'Ottone --- include/birch_pc.h | 2 +- include/pokemon.h | 3 ++- src/birch_pc.c | 24 +++++++++++------------- src/pokedex.c | 15 ++++++++------- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/include/birch_pc.h b/include/birch_pc.h index 5e0e8d9c16..d5b8cc7e85 100644 --- a/include/birch_pc.h +++ b/include/birch_pc.h @@ -1,6 +1,6 @@ #ifndef GUARD_BIRCH_PC_H #define GUARD_BIRCH_PC_H -const u8 *GetPokedexRatingText(u16 count); +const u8 *GetPokedexRatingText(u32 count); #endif // GUARD_BIRCH_PC_H diff --git a/include/pokemon.h b/include/pokemon.h index 4bfdd4b117..e86d710b37 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -394,7 +394,8 @@ struct SpeciesInfo /*0x8C*/ u32 isPaldeanForm:1; u32 cannotBeTraded:1; u32 allPerfectIVs:1; - u32 padding4:18; + u32 dexForceRequired:1; // This species will be taken into account for Pokédex ratings even if they have the "isMythical" flag set. + u32 padding4:17; // Move Data /* 0x80 */ const struct LevelUpMove *levelUpLearnset; /* 0x84 */ const u16 *teachableLearnset; diff --git a/src/birch_pc.c b/src/birch_pc.c index b656dd1de6..8a6af6bb44 100644 --- a/src/birch_pc.c +++ b/src/birch_pc.c @@ -20,13 +20,6 @@ bool16 ScriptGetPokedexInfo(void) return IsNationalPokedexEnabled(); } -// Species in this array are ignored in the progress towards a full regional dex -static const u16 sRegionalNotCountedList[] = { - SPECIES_JIRACHI, - SPECIES_DEOXYS, - SPECIES_NONE -}; - #define BIRCH_DEX_STRINGS 21 static const u8 *const sBirchDexRatingTexts[BIRCH_DEX_STRINGS] = @@ -55,15 +48,20 @@ static const u8 *const sBirchDexRatingTexts[BIRCH_DEX_STRINGS] = }; // This shows your Hoenn Pokedex rating and not your National Dex. -const u8 *GetPokedexRatingText(u16 count) +const u8 *GetPokedexRatingText(u32 count) { - u32 i; + u32 i, j; u16 maxDex = HOENN_DEX_COUNT - 1; - for(i = 0; sRegionalNotCountedList[i] != SPECIES_NONE; i++) + // doesNotCountForRegionalPokedex + for(i = 0; i < HOENN_DEX_COUNT; i++) { - if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(sRegionalNotCountedList[i]), FLAG_GET_CAUGHT)) - count--; - maxDex--; + j = NationalPokedexNumToSpecies(HoennToNationalOrder(i + 1)); + if (gSpeciesInfo[j].isMythical && !gSpeciesInfo[j].dexForceRequired) + { + if (GetSetPokedexFlag(j, FLAG_GET_CAUGHT)) + count--; + maxDex--; + } } return sBirchDexRatingTexts[(count * (BIRCH_DEX_STRINGS - 1)) / maxDex]; } diff --git a/src/pokedex.c b/src/pokedex.c index 33b7dd02dd..238d418817 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -4379,12 +4379,12 @@ u16 GetKantoPokedexCount(u8 caseID) bool16 HasAllHoennMons(void) { - u16 i; + u32 i, j; - // -2 excludes Jirachi and Deoxys - for (i = 0; i < HOENN_DEX_COUNT - 2; i++) + for (i = 0; i < HOENN_DEX_COUNT; i++) { - if (!GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT)) + j = HoennToNationalOrder(i + 1); + if (!(gSpeciesInfo[j].isMythical && !gSpeciesInfo[j].dexForceRequired) && !GetSetPokedexFlag(j, FLAG_GET_CAUGHT)) return FALSE; } return TRUE; @@ -4392,7 +4392,7 @@ bool16 HasAllHoennMons(void) bool8 HasAllKantoMons(void) { - u16 i; + u32 i; // -1 excludes Mew for (i = 0; i < KANTO_DEX_COUNT - 1; i++) @@ -4405,11 +4405,12 @@ bool8 HasAllKantoMons(void) bool16 HasAllMons(void) { - u16 i; + u32 i, j; for (i = 1; i < NATIONAL_DEX_COUNT + 1; i++) { - if (!(gSpeciesInfo[i].isMythical) && !GetSetPokedexFlag(i, FLAG_GET_CAUGHT)) + j = NationalPokedexNumToSpecies(i); + if (!(gSpeciesInfo[j].isMythical && !gSpeciesInfo[j].dexForceRequired) && !GetSetPokedexFlag(j, FLAG_GET_CAUGHT)) return FALSE; } From 4acaa0cab80c01c8bffc31a2eb78a48597e52ab9 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Thu, 11 Jan 2024 13:54:19 -0300 Subject: [PATCH 7/8] Expanded Paldean Tauros macro (#3971) * Expanded Paldean Tauros macro * Updated colors to December 2023 HOME changes --------- Co-authored-by: Biffalo XIII <--global> Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com> --- src/data/pokemon/species_info/gen_1.h | 49 ++++++++++----------------- src/data/pokemon/species_info/gen_8.h | 2 +- src/data/pokemon/species_info/gen_9.h | 24 ++++++------- 3 files changed, 31 insertions(+), 44 deletions(-) diff --git a/src/data/pokemon/species_info/gen_1.h b/src/data/pokemon/species_info/gen_1.h index 2f39275185..36ff575bf7 100644 --- a/src/data/pokemon/species_info/gen_1.h +++ b/src/data/pokemon/species_info/gen_1.h @@ -10214,21 +10214,26 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = }, #if P_PALDEAN_FORMS -#define PALDEAN_TAUROS_BASE_STATS \ - .baseHP = 75, \ - .baseAttack = 110, \ - .baseDefense = 105, \ - .baseSpeed = 100, \ - .baseSpAttack = 30, \ - .baseSpDefense = 70 +#define TAUROS_PALDEAN_MISC_INFO \ + .baseHP = 75, \ + .baseAttack = 110, \ + .baseDefense = 105, \ + .baseSpeed = 100, \ + .baseSpAttack = 30, \ + .baseSpDefense = 70, \ + .evYield_Attack = 2, \ + .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, \ + .bodyColor = BODY_COLOR_BLACK, \ + .frontAnimFrames = sAnims_TaurosPaldean, \ + /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ \ + .backAnimId = BACK_ANIM_V_SHAKE_LOW, \ + .isPaldeanForm = TRUE + [SPECIES_TAUROS_PALDEAN_COMBAT_BREED] = { TAUROS_MISC_INFO, - PALDEAN_TAUROS_BASE_STATS, + TAUROS_PALDEAN_MISC_INFO, .types = { TYPE_FIGHTING, TYPE_FIGHTING }, - .evYield_Attack = 2, - .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, - .bodyColor = BODY_COLOR_BROWN, .weight = 1150, .description = COMPOUND_STRING( "This Pokémon has a muscular body\n" @@ -10237,25 +10242,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = "the opponent’s weak spots."), FRONT_PIC(TaurosPaldeanCombatBreed, 64, 64), .frontPicYOffset = 5, - .frontAnimFrames = sAnims_TaurosPaldean, - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, BACK_PIC(TaurosPaldeanCombatBreed, 64, 48), .backPicYOffset = 9, - .backAnimId = BACK_ANIM_V_SHAKE_LOW, PALETTES(TaurosPaldeanCombatBreed), ICON(TaurosPaldeanCombatBreed, 0), LEARNSETS(TaurosPaldeanCombatBreed), - .isPaldeanForm = TRUE, }, [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = { TAUROS_MISC_INFO, - PALDEAN_TAUROS_BASE_STATS, + TAUROS_PALDEAN_MISC_INFO, .types = { TYPE_FIGHTING, TYPE_FIRE }, - .evYield_Attack = 2, - .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, - .bodyColor = BODY_COLOR_BROWN, .weight = 850, .description = COMPOUND_STRING( "When heated by fire energy, its horns can\n" @@ -10264,25 +10262,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = "both wounds and burns."), FRONT_PIC(TaurosPaldeanBlazeBreed, 64, 64), .frontPicYOffset = 5, - .frontAnimFrames = sAnims_TaurosPaldean, - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, BACK_PIC(TaurosPaldeanBlazeBreed, 64, 48), .backPicYOffset = 9, - .backAnimId = BACK_ANIM_V_SHAKE_LOW, PALETTES(TaurosPaldeanBlazeBreed), ICON(TaurosPaldeanBlazeBreed, 0), LEARNSETS(TaurosPaldeanBlazeBreed), - .isPaldeanForm = TRUE, }, [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = { TAUROS_MISC_INFO, - PALDEAN_TAUROS_BASE_STATS, + TAUROS_PALDEAN_MISC_INFO, .types = { TYPE_FIGHTING, TYPE_WATER }, - .evYield_Attack = 2, - .abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW }, - .bodyColor = BODY_COLOR_BROWN, .weight = 1100, .description = COMPOUND_STRING( "This Pokémon blasts water from holes on\n" @@ -10291,15 +10282,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = "Tauros’s enemies."), FRONT_PIC(TaurosPaldeanAquaBreed, 64, 64), .frontPicYOffset = 5, - .frontAnimFrames = sAnims_TaurosPaldean, - //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, BACK_PIC(TaurosPaldeanAquaBreed, 64, 48), .backPicYOffset = 9, - .backAnimId = BACK_ANIM_V_SHAKE_LOW, PALETTES(TaurosPaldeanAquaBreed), ICON(TaurosPaldeanAquaBreed, 0), LEARNSETS(TaurosPaldeanAquaBreed), - .isPaldeanForm = TRUE, }, #endif //P_PALDEAN_FORMS #endif //P_FAMILY_TAUROS diff --git a/src/data/pokemon/species_info/gen_8.h b/src/data/pokemon/species_info/gen_8.h index d3eca0b397..87855b3d46 100644 --- a/src/data/pokemon/species_info/gen_8.h +++ b/src/data/pokemon/species_info/gen_8.h @@ -3324,7 +3324,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = #if P_GIGANTAMAX_FORMS [SPECIES_ALCREMIE_GIGANTAMAX] = { - ALCREMIE_MISC_INFO(BODY_COLOR_PINK), + ALCREMIE_MISC_INFO(BODY_COLOR_YELLOW), .isGigantamax = TRUE, .speciesName = _("Alcremie"), .cryId = CRY_ALCREMIE, diff --git a/src/data/pokemon/species_info/gen_9.h b/src/data/pokemon/species_info/gen_9.h index 2f5f0ad76a..e7846ec90a 100644 --- a/src/data/pokemon/species_info/gen_9.h +++ b/src/data/pokemon/species_info/gen_9.h @@ -1622,7 +1622,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE }, .abilities = { ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_WEAK_ARMOR }, - .bodyColor = BODY_COLOR_BLUE, + .bodyColor = BODY_COLOR_PURPLE, .speciesName = _("Ceruledge"), .cryId = CRY_CERULEDGE, .natDexNum = NATIONAL_DEX_CERULEDGE, @@ -3670,7 +3670,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = [SPECIES_TATSUGIRI_CURLY] = { TATSUGIRI_MISC_INFO, - .bodyColor = BODY_COLOR_PINK, + .bodyColor = BODY_COLOR_RED, .cryId = CRY_TATSUGIRI_CURLY, .description = COMPOUND_STRING( "This is a small dragon Pokémon. It\n" @@ -3686,7 +3686,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = [SPECIES_TATSUGIRI_DROOPY] = { TATSUGIRI_MISC_INFO, - .bodyColor = BODY_COLOR_RED, + .bodyColor = BODY_COLOR_PINK, .cryId = CRY_TATSUGIRI_DROOPY, .description = COMPOUND_STRING( "This Pokémon tricks its opponents\n" @@ -3833,7 +3833,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, - .bodyColor = BODY_COLOR_GRAY, + .bodyColor = BODY_COLOR_WHITE, .isParadoxForm = TRUE, .speciesName = _("BruteBonet"), .cryId = CRY_BRUTE_BONNET, @@ -3936,7 +3936,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, - .bodyColor = BODY_COLOR_RED, + .bodyColor = BODY_COLOR_WHITE, .isParadoxForm = TRUE, .speciesName = _("SlithrWing"), .cryId = CRY_SLITHER_WING, @@ -4236,7 +4236,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, - .bodyColor = BODY_COLOR_YELLOW, + .bodyColor = BODY_COLOR_WHITE, .isParadoxForm = TRUE, .speciesName = _("Iron Moth"), .cryId = CRY_IRON_MOTH, @@ -4385,7 +4385,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL }, .abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY }, - .bodyColor = BODY_COLOR_GRAY, + .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Arctibax"), .cryId = CRY_ARCTIBAX, .natDexNum = NATIONAL_DEX_ARCTIBAX, @@ -4433,7 +4433,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL }, .abilities = { ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY }, - .bodyColor = BODY_COLOR_GRAY, + .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Baxcalibur"), .cryId = CRY_BAXCALIBUR, .natDexNum = NATIONAL_DEX_BAXCALIBUR, @@ -4495,7 +4495,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpAttack = 75, .baseSpDefense = 70, .abilities = { ABILITY_RATTLED, ABILITY_NONE }, - .bodyColor = BODY_COLOR_BROWN, + .bodyColor = BODY_COLOR_RED, .categoryName = _("Coin Chest"), .height = 3, .weight = 50, @@ -4526,7 +4526,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .baseSpAttack = 75, .baseSpDefense = 45, .abilities = { ABILITY_RUN_AWAY, ABILITY_NONE }, - .bodyColor = BODY_COLOR_BLUE, + .bodyColor = BODY_COLOR_GRAY, .categoryName = _("Coin Hunter"), .height = 1, .weight = 1, @@ -4815,7 +4815,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, - .bodyColor = BODY_COLOR_GREEN, + .bodyColor = BODY_COLOR_BLUE, .isParadoxForm = TRUE, .speciesName = _("RoarngMoon"), .cryId = CRY_ROARING_MOON, @@ -4966,7 +4966,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, .abilities = { ABILITY_HADRON_ENGINE, ABILITY_NONE, ABILITY_NONE }, - .bodyColor = BODY_COLOR_BLUE, + .bodyColor = BODY_COLOR_PURPLE, .isLegendary = TRUE, .isParadoxForm = TRUE, .speciesName = _("Miraidon"), From a1071aaf42fdf0a97ea2282b8de07f257959f436 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Thu, 11 Jan 2024 14:39:51 -0300 Subject: [PATCH 8/8] Added missing form dex entries. (#3972) Co-authored-by: Biffalo XIII <--global> Co-authored-by: Bassoonian --- src/data/pokemon/species_info/gen_5.h | 4 +++- src/data/pokemon/species_info/gen_6.h | 10 ++++++++-- src/data/pokemon/species_info/gen_8.h | 6 ++++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/data/pokemon/species_info/gen_5.h b/src/data/pokemon/species_info/gen_5.h index 7553f1c17a..15ff00fcf1 100644 --- a/src/data/pokemon/species_info/gen_5.h +++ b/src/data/pokemon/species_info/gen_5.h @@ -8733,7 +8733,9 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .evYield_Attack = 1, .evYield_Defense = 1, .description = COMPOUND_STRING( - ""), + "Meloetta's melodies are sung with\n" + "a special vocalization method that can\n" + "control the feelings of those who hear it."), FRONT_PIC(MeloettaPirouette, 40, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_MeloettaPirouette, diff --git a/src/data/pokemon/species_info/gen_6.h b/src/data/pokemon/species_info/gen_6.h index 00e2d20a4e..93261648d0 100644 --- a/src/data/pokemon/species_info/gen_6.h +++ b/src/data/pokemon/species_info/gen_6.h @@ -4332,7 +4332,10 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .height = 11, .weight = 278, .description = COMPOUND_STRING( - ""), + "The impurities upon its body's surface\n" + "have fallen away, sparkling so brilliantly\n" + "that cannot be observed directly.\n" + "It is known as “the Royal Pink Princess”."), .pokemonScale = 365, .pokemonOffset = 12, .trainerScale = 256, @@ -4422,7 +4425,10 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .height = 65, .weight = 490, .description = COMPOUND_STRING( - ""), + "It is the true form of Hoopa, which has had\n" + "its power sealed away. The rings it carries\n" + "have the power to bend dimensions and are\n" + "able to seize anything in the world."), .pokemonScale = 432, .pokemonOffset = 13, .trainerScale = 256, diff --git a/src/data/pokemon/species_info/gen_8.h b/src/data/pokemon/species_info/gen_8.h index 87855b3d46..47b578eae2 100644 --- a/src/data/pokemon/species_info/gen_8.h +++ b/src/data/pokemon/species_info/gen_8.h @@ -2049,8 +2049,10 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .height = 220, .weight = 0, .description = COMPOUND_STRING( - "") -, + "Its sand pouch has grown to tremendous\n" + "proportions. More than 1,000,000 tons of\n" + "sand now swirl around its body with enough\n" + "speed and power to pulverize a skyscraper."), .pokemonScale = 256, .pokemonOffset = 0, .trainerScale = 610,