diff --git a/include/config/species_enabled.h b/include/config/species_enabled.h index 8004abc3bb..9720f78f0e 100644 --- a/include/config/species_enabled.h +++ b/include/config/species_enabled.h @@ -594,5 +594,11 @@ #define P_FAMILY_MUNKIDORI P_GEN_9_POKEMON #define P_FAMILY_FEZANDIPITI P_GEN_9_POKEMON #define P_FAMILY_OGERPON P_GEN_9_POKEMON +#define P_FAMILY_GOUGING_FIRE P_GEN_9_POKEMON +#define P_FAMILY_RAGING_BOLT P_GEN_9_POKEMON +#define P_FAMILY_IRON_BOULDER P_GEN_9_POKEMON +#define P_FAMILY_IRON_CROWN P_GEN_9_POKEMON +#define P_FAMILY_TERAPAGOS P_GEN_9_POKEMON +#define P_FAMILY_PECHARUNT P_GEN_9_POKEMON #endif // GUARD_CONFIG_SPECIES_ENABLED_H diff --git a/include/constants/cries.h b/include/constants/cries.h index ddeee56d42..03aa9c558e 100644 --- a/include/constants/cries.h +++ b/include/constants/cries.h @@ -2025,6 +2025,7 @@ enum { CRY_APPLETUN, #if P_GEN_9_CROSS_EVOS CRY_DIPPLIN, + //CRY_HYDRAPPLE, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN #if P_FAMILY_SILICOBRA @@ -2112,6 +2113,9 @@ enum { #endif //P_FAMILY_ARCTOVISH #if P_FAMILY_DURALUDON CRY_DURALUDON, +#if P_GEN_9_CROSS_EVOS + //CRY_ARCHALUDON, +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY CRY_DREEPY, @@ -2404,6 +2408,24 @@ enum { #if P_FAMILY_OGERPON CRY_OGERPON, #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE + //CRY_GOUGING_FIRE, +#endif //P_FAMILY_GOUGING_FIRE +#if P_FAMILY_RAGING_BOLT + //CRY_RAGING_BOLT, +#endif //P_FAMILY_RAGING_BOLT +#if P_FAMILY_IRON_BOULDER + //CRY_IRON_BOULDER, +#endif //P_FAMILY_IRON_BOULDER +#if P_FAMILY_IRON_CROWN + //CRY_IRON_CROWN, +#endif //P_FAMILY_IRON_CROWN +#if P_FAMILY_TERAPAGOS + //CRY_TERAPAGOS, +#endif //P_FAMILY_TERAPAGOS +#if P_FAMILY_PECHARUNT + //CRY_PECHARUNT, +#endif //P_FAMILY_PECHARUNT CRY_COUNT, }; diff --git a/include/constants/pokedex.h b/include/constants/pokedex.h index 07e8c02fe2..c03b096f9a 100644 --- a/include/constants/pokedex.h +++ b/include/constants/pokedex.h @@ -1031,21 +1031,21 @@ enum { NATIONAL_DEX_MUNKIDORI, NATIONAL_DEX_FEZANDIPITI, NATIONAL_DEX_OGERPON, - NATIONAL_DEX_1018, - NATIONAL_DEX_1019, - NATIONAL_DEX_1020, - NATIONAL_DEX_1021, - NATIONAL_DEX_1022, - NATIONAL_DEX_1023, - NATIONAL_DEX_1024, - NATIONAL_DEX_1025, + NATIONAL_DEX_ARCHALUDON, + NATIONAL_DEX_HYDRAPPLE, + NATIONAL_DEX_GOUGING_FIRE, + NATIONAL_DEX_RAGING_BOLT, + NATIONAL_DEX_IRON_BOULDER, + NATIONAL_DEX_IRON_CROWN, + NATIONAL_DEX_TERAPAGOS, + NATIONAL_DEX_PECHARUNT, }; #define KANTO_DEX_COUNT NATIONAL_DEX_MEW #define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI #if P_GEN_9_POKEMON == TRUE - #define NATIONAL_DEX_COUNT NATIONAL_DEX_1025 + #define NATIONAL_DEX_COUNT NATIONAL_DEX_PECHARUNT #elif P_GEN_8_POKEMON == TRUE #define NATIONAL_DEX_COUNT NATIONAL_DEX_ENAMORUS #elif P_GEN_7_POKEMON == TRUE diff --git a/include/constants/species.h b/include/constants/species.h index bcac9ecbc8..4f0e86738d 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -1658,19 +1658,19 @@ #define SPECIES_OGERPON_CORNERSTONE_MASK_TERA GEN9_START + 135 #define SPECIES_URSALUNA_BLOODMOON GEN9_START + 136 // Indigo Disk -#define SPECIES_1018 GEN9_START + 137 -#define SPECIES_1019 GEN9_START + 138 -#define SPECIES_1020 GEN9_START + 139 -#define SPECIES_1021 GEN9_START + 140 -#define SPECIES_1022 GEN9_START + 141 -#define SPECIES_1023 GEN9_START + 142 -#define SPECIES_1024 SPECIES_1024_FORM_1 -#define SPECIES_1024_FORM_1 GEN9_START + 143 -#define SPECIES_1024_FORM_2 GEN9_START + 144 -#define SPECIES_1024_FORM_3 GEN9_START + 145 -#define SPECIES_1025 GEN9_START + 146 +#define SPECIES_ARCHALUDON GEN9_START + 137 +#define SPECIES_HYDRAPPLE GEN9_START + 138 +#define SPECIES_GOUGING_FIRE GEN9_START + 139 +#define SPECIES_RAGING_BOLT GEN9_START + 140 +#define SPECIES_IRON_BOULDER GEN9_START + 141 +#define SPECIES_IRON_CROWN GEN9_START + 142 +#define SPECIES_TERAPAGOS SPECIES_TERAPAGOS_NORMAL +#define SPECIES_TERAPAGOS_NORMAL GEN9_START + 143 +#define SPECIES_TERAPAGOS_TERASTAL GEN9_START + 144 +#define SPECIES_TERAPAGOS_STELLAR GEN9_START + 145 +#define SPECIES_PECHARUNT GEN9_START + 146 -#define PLACEHOLDER_START SPECIES_1025 +#define PLACEHOLDER_START SPECIES_PECHARUNT // XD: Gale of Darkness #define SPECIES_LUGIA_SHADOW PLACEHOLDER_START + 1 // Diamond & Pearl diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 68dc952952..643f65e251 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -9269,6 +9269,13 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonShinyPalette_Dipplin[] = INCBIN_U32("graphics/pokemon/dipplin/shiny.gbapal.lz"); const u8 gMonIcon_Dipplin[] = INCBIN_U8("graphics/pokemon/dipplin/icon.4bpp"); // const u8 gMonFootprint_Dipplin[] = INCBIN_U8("graphics/pokemon/dipplin/footprint.1bpp"); + + // const u32 gMonFrontPic_Hydrapple[] = INCBIN_U32("graphics/pokemon/hydrapple/front.4bpp.lz"); + // const u32 gMonPalette_Hydrapple[] = INCBIN_U32("graphics/pokemon/hydrapple/normal.gbapal.lz"); + // const u32 gMonBackPic_Hydrapple[] = INCBIN_U32("graphics/pokemon/hydrapple/back.4bpp.lz"); + // const u32 gMonShinyPalette_Hydrapple[] = INCBIN_U32("graphics/pokemon/hydrapple/shiny.gbapal.lz"); + // const u8 gMonIcon_Hydrapple[] = INCBIN_U8("graphics/pokemon/hydrapple/icon.4bpp"); + // const u8 gMonFootprint_Hydrapple[] = INCBIN_U8("graphics/pokemon/hydrapple/footprint.1bpp"); #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -9767,6 +9774,15 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar const u32 gMonShinyPalette_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/shiny.gbapal.lz"); const u8 gMonIcon_DuraludonGigantamax[] = INCBIN_U8("graphics/pokemon/duraludon/gigantamax/icon.4bpp"); #endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS + // const u32 gMonFrontPic_Archaludon[] = INCBIN_U32("graphics/pokemon/archaludon/front.4bpp.lz"); + // const u32 gMonPalette_Archaludon[] = INCBIN_U32("graphics/pokemon/archaludon/normal.gbapal.lz"); + // const u32 gMonBackPic_Archaludon[] = INCBIN_U32("graphics/pokemon/archaludon/back.4bpp.lz"); + // const u32 gMonShinyPalette_Archaludon[] = INCBIN_U32("graphics/pokemon/archaludon/shiny.gbapal.lz"); + // const u8 gMonIcon_Archaludon[] = INCBIN_U8("graphics/pokemon/archaludon/icon.4bpp"); + // const u8 gMonFootprint_Archaludon[] = INCBIN_U8("graphics/pokemon/archaludon/footprint.1bpp"); +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -10906,6 +10922,72 @@ const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mar // const u32 gMonShinyPalette_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/tera/shiny.gbapal.lz"); #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE + // const u32 gMonFrontPic_GougingFire[] = INCBIN_U32("graphics/pokemon/gouging_fire/front.4bpp.lz"); + // const u32 gMonPalette_GougingFire[] = INCBIN_U32("graphics/pokemon/gouging_fire/normal.gbapal.lz"); + // const u32 gMonBackPic_GougingFire[] = INCBIN_U32("graphics/pokemon/gouging_fire/back.4bpp.lz"); + // const u32 gMonShinyPalette_GougingFire[] = INCBIN_U32("graphics/pokemon/gouging_fire/shiny.gbapal.lz"); + // const u8 gMonIcon_GougingFire[] = INCBIN_U8("graphics/pokemon/gouging_fire/icon.4bpp"); + // const u8 gMonFootprint_GougingFire[] = INCBIN_U8("graphics/pokemon/gouging_fire/footprint.1bpp"); +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT + // const u32 gMonFrontPic_RagingBolt[] = INCBIN_U32("graphics/pokemon/raging_bolt/front.4bpp.lz"); + // const u32 gMonPalette_RagingBolt[] = INCBIN_U32("graphics/pokemon/raging_bolt/normal.gbapal.lz"); + // const u32 gMonBackPic_RagingBolt[] = INCBIN_U32("graphics/pokemon/raging_bolt/back.4bpp.lz"); + // const u32 gMonShinyPalette_RagingBolt[] = INCBIN_U32("graphics/pokemon/raging_bolt/shiny.gbapal.lz"); + // const u8 gMonIcon_RagingBolt[] = INCBIN_U8("graphics/pokemon/raging_bolt/icon.4bpp"); + // const u8 gMonFootprint_RagingBolt[] = INCBIN_U8("graphics/pokemon/raging_bolt/footprint.1bpp"); +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER + // const u32 gMonFrontPic_IronBoulder[] = INCBIN_U32("graphics/pokemon/iron_boulder/front.4bpp.lz"); + // const u32 gMonPalette_IronBoulder[] = INCBIN_U32("graphics/pokemon/iron_boulder/normal.gbapal.lz"); + // const u32 gMonBackPic_IronBoulder[] = INCBIN_U32("graphics/pokemon/iron_boulder/back.4bpp.lz"); + // const u32 gMonShinyPalette_IronBoulder[] = INCBIN_U32("graphics/pokemon/iron_boulder/shiny.gbapal.lz"); + // const u8 gMonIcon_IronBoulder[] = INCBIN_U8("graphics/pokemon/iron_boulder/icon.4bpp"); + // const u8 gMonFootprint_IronBoulder[] = INCBIN_U8("graphics/pokemon/iron_boulder/footprint.1bpp"); +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN + // const u32 gMonFrontPic_IronCrown[] = INCBIN_U32("graphics/pokemon/iron_crown/front.4bpp.lz"); + // const u32 gMonPalette_IronCrown[] = INCBIN_U32("graphics/pokemon/iron_crown/normal.gbapal.lz"); + // const u32 gMonBackPic_IronCrown[] = INCBIN_U32("graphics/pokemon/iron_crown/back.4bpp.lz"); + // const u32 gMonShinyPalette_IronCrown[] = INCBIN_U32("graphics/pokemon/iron_crown/shiny.gbapal.lz"); + // const u8 gMonIcon_IronCrown[] = INCBIN_U8("graphics/pokemon/iron_crown/icon.4bpp"); + // const u8 gMonFootprint_IronCrown[] = INCBIN_U8("graphics/pokemon/iron_crown/footprint.1bpp"); +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS + // const u32 gMonFrontPic_TerapagosNormal[] = INCBIN_U32("graphics/pokemon/terapagos/front.4bpp.lz"); + // const u32 gMonPalette_TerapagosNormal[] = INCBIN_U32("graphics/pokemon/terapagos/normal.gbapal.lz"); + // const u32 gMonBackPic_TerapagosNormal[] = INCBIN_U32("graphics/pokemon/terapagos/back.4bpp.lz"); + // const u32 gMonShinyPalette_TerapagosNormal[] = INCBIN_U32("graphics/pokemon/terapagos/shiny.gbapal.lz"); + // const u8 gMonIcon_TerapagosNormal[] = INCBIN_U8("graphics/pokemon/terapagos/icon.4bpp"); + // const u8 gMonFootprint_Terapagos[] = INCBIN_U8("graphics/pokemon/terapagos/footprint.1bpp"); + + // const u32 gMonFrontPic_TerapagosTerastal[] = INCBIN_U32("graphics/pokemon/terapagos/terastal/front.4bpp.lz"); + // const u32 gMonPalette_TerapagosTerastal[] = INCBIN_U32("graphics/pokemon/terapagos/terastal/normal.gbapal.lz"); + // const u32 gMonBackPic_TerapagosTerastal[] = INCBIN_U32("graphics/pokemon/terapagos/terastal/back.4bpp.lz"); + // const u32 gMonShinyPalette_TerapagosTerastal[] = INCBIN_U32("graphics/pokemon/terapagos/terastal/shiny.gbapal.lz"); + // const u8 gMonIcon_TerapagosTerastal[] = INCBIN_U8("graphics/pokemon/terapagos/terastal/icon.4bpp"); + + // const u32 gMonFrontPic_TerapagosStellar[] = INCBIN_U32("graphics/pokemon/terapagos/stellar/front.4bpp.lz"); + // const u32 gMonPalette_TerapagosStellar[] = INCBIN_U32("graphics/pokemon/terapagos/stellar/normal.gbapal.lz"); + // const u32 gMonBackPic_TerapagosStellar[] = INCBIN_U32("graphics/pokemon/terapagos/stellar/back.4bpp.lz"); + // const u32 gMonShinyPalette_TerapagosStellar[] = INCBIN_U32("graphics/pokemon/terapagos/stellar/shiny.gbapal.lz"); + // const u8 gMonIcon_TerapagosStellar[] = INCBIN_U8("graphics/pokemon/terapagos/stellar/icon.4bpp"); +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT + // const u32 gMonFrontPic_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/front.4bpp.lz"); + // const u32 gMonPalette_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/normal.gbapal.lz"); + // const u32 gMonBackPic_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/back.4bpp.lz"); + // const u32 gMonShinyPalette_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/shiny.gbapal.lz"); + // const u8 gMonIcon_Pecharunt[] = INCBIN_U8("graphics/pokemon/pecharunt/icon.4bpp"); + // const u8 gMonFootprint_Pecharunt[] = INCBIN_U8("graphics/pokemon/pecharunt/footprint.1bpp"); +#endif //P_FAMILY_PECHARUNT + const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/anim_front.4bpp.lz"); const u32 gMonPalette_Egg[] = INCBIN_U32("graphics/pokemon/egg/normal.gbapal.lz"); const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/egg/icon.4bpp"); diff --git a/src/data/pokemon/form_change_tables.h b/src/data/pokemon/form_change_tables.h index 2411783728..62ba52dd02 100644 --- a/src/data/pokemon/form_change_tables.h +++ b/src/data/pokemon/form_change_tables.h @@ -1092,5 +1092,14 @@ static const struct FormChange sOgerponFormChangeTable[] = { }; #endif //P_FAMILY_OGERPON +#if P_FAMILY_TERAPAGOS +static const struct FormChange sTerapagosFormChangeTable[] = { + {FORM_CHANGE_BEGIN_BATTLE, SPECIES_TERAPAGOS_TERASTAL}, //needs to be tied to the ability + //{FORM_CHANGE_TERASTALLIZATION, SPECIES_TERAPAGOS_STELLAR}, + {FORM_CHANGE_END_BATTLE, SPECIES_TERAPAGOS_NORMAL}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_TERAPAGOS + #undef WHEN_LEARNED #undef WHEN_FORGOTTEN diff --git a/src/data/pokemon/form_species_tables.h b/src/data/pokemon/form_species_tables.h index b9d2631739..3fdd6dcbf5 100644 --- a/src/data/pokemon/form_species_tables.h +++ b/src/data/pokemon/form_species_tables.h @@ -1761,3 +1761,12 @@ static const u16 sOgerponFormSpeciesIdTable[] = { FORM_SPECIES_END, }; #endif //P_FAMILY_OGERPON + +#if P_FAMILY_TERAPAGOS +static const u16 sTerapagosFormSpeciesIdTable[] = { + SPECIES_TERAPAGOS_NORMAL, + SPECIES_TERAPAGOS_TERASTAL, + SPECIES_TERAPAGOS_STELLAR, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_TERAPAGOS diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h index e129d9505a..4273610b5e 100644 --- a/src/data/pokemon/item_effects.h +++ b/src/data/pokemon/item_effects.h @@ -629,6 +629,7 @@ const u8 *const gItemEffectTable[ITEMS_COUNT] = [ITEM_SYRUPY_APPLE] = gItemEffect_EvoItem, [ITEM_UNREMARKABLE_TEACUP] = gItemEffect_EvoItem, [ITEM_MASTERPIECE_TEACUP] = gItemEffect_EvoItem, + [ITEM_METAL_ALLOY] = gItemEffect_EvoItem, // Berries [ITEM_CHERI_BERRY] = gItemEffect_CheriBerry, diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h index 3325cb2b8a..e41d0ca937 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -19855,6 +19855,26 @@ static const struct LevelUpMove sDipplinLevelUpLearnset[] = { LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), LEVEL_UP_END }; + +static const struct LevelUpMove sHydrappleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FICKLE_BEAM), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_END +}; #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -20571,6 +20591,26 @@ static const struct LevelUpMove sDuraludonLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), LEVEL_UP_END }; + +#if P_GEN_9_CROSS_EVOS +static const struct LevelUpMove sArchaludonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_SHOT), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(12, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(18, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(24, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(30, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(36, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(42, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(48, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(54, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(60, MOVE_METAL_BURST), + LEVEL_UP_MOVE(66, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -23146,4 +23186,133 @@ static const struct LevelUpMove sOgerponLevelUpLearnset[] = { LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), LEVEL_UP_END }; -#endif +#endif //P_FAMILY_OGERPON + +#if P_FAMILY_GOUGING_FIRE +static const struct LevelUpMove sGougingFireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_INCINERATE), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(14, MOVE_HOWL), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(42, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(49, MOVE_BURNING_BULWARK), + LEVEL_UP_MOVE(56, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(63, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(70, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(91, MOVE_RAGING_FURY), + LEVEL_UP_END +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const struct LevelUpMove sRagingBoltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE( 1, MOVE_STOMP), + LEVEL_UP_MOVE( 7, MOVE_CHARGE), + LEVEL_UP_MOVE(14, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(21, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE(42, MOVE_CALM_MIND), + LEVEL_UP_MOVE(49, MOVE_THUNDERCLAP), + LEVEL_UP_MOVE(56, MOVE_DRAGON_HAMMER), + LEVEL_UP_MOVE(63, MOVE_RISING_VOLTAGE), + LEVEL_UP_MOVE(70, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(77, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(84, MOVE_BODY_PRESS), + LEVEL_UP_MOVE(91, MOVE_THUNDER), + LEVEL_UP_END +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const struct LevelUpMove sIronBoulderLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(35, MOVE_COUNTER), + LEVEL_UP_MOVE(42, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_MIGHTY_CLEAVE), + LEVEL_UP_MOVE(63, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(70, MOVE_MEGAHORN), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const struct LevelUpMove sIronCrownLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 7, MOVE_SMART_STRIKE), + LEVEL_UP_MOVE(14, MOVE_SLASH), + LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(28, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(49, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(56, MOVE_TACHYON_CUTTER), + LEVEL_UP_MOVE(63, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(70, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(77, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_METAL_BURST), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const struct LevelUpMove sTerapagosLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(10, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_PROTECT), + LEVEL_UP_MOVE(40, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(50, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_TERA_STARSTORM), + LEVEL_UP_MOVE(70, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(80, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(90, MOVE_GYRO_BALL), + LEVEL_UP_END +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const struct LevelUpMove sPecharuntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WITHDRAW), + LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif //P_FAMILY_PECHARUNT diff --git a/src/data/pokemon/pokedex_orders.h b/src/data/pokemon/pokedex_orders.h index e877bbb17f..f7bd77cf12 100644 --- a/src/data/pokemon/pokedex_orders.h +++ b/src/data/pokemon/pokedex_orders.h @@ -26,6 +26,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_ARBOLIVA, NATIONAL_DEX_ARCANINE, NATIONAL_DEX_ARCEUS, + NATIONAL_DEX_ARCHALUDON, NATIONAL_DEX_ARCHEN, NATIONAL_DEX_ARCHEOPS, NATIONAL_DEX_ARCTIBAX, @@ -361,6 +362,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_GOTHITA, NATIONAL_DEX_GOTHITELLE, NATIONAL_DEX_GOTHORITA, + NATIONAL_DEX_GOUGING_FIRE, NATIONAL_DEX_GOURGEIST, NATIONAL_DEX_GRAFAIAI, NATIONAL_DEX_GRANBULL, @@ -416,6 +418,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_HOUNDOUR, NATIONAL_DEX_HOUNDSTONE, NATIONAL_DEX_HUNTAIL, + NATIONAL_DEX_HYDRAPPLE, NATIONAL_DEX_HYDREIGON, NATIONAL_DEX_HYPNO, @@ -427,7 +430,9 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_INFERNAPE, NATIONAL_DEX_INKAY, NATIONAL_DEX_INTELEON, + NATIONAL_DEX_IRON_BOULDER, NATIONAL_DEX_IRON_BUNDLE, + NATIONAL_DEX_IRON_CROWN, NATIONAL_DEX_IRON_HANDS, NATIONAL_DEX_IRON_JUGULIS, NATIONAL_DEX_IRON_LEAVES, @@ -658,6 +663,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_PAWMO, NATIONAL_DEX_PAWMOT, NATIONAL_DEX_PAWNIARD, + NATIONAL_DEX_PECHARUNT, NATIONAL_DEX_PELIPPER, NATIONAL_DEX_PERRSERKER, NATIONAL_DEX_PERSIAN, @@ -715,6 +721,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_RABOOT, NATIONAL_DEX_RABSCA, + NATIONAL_DEX_RAGING_BOLT, NATIONAL_DEX_RAICHU, NATIONAL_DEX_RAIKOU, NATIONAL_DEX_RALTS, @@ -906,6 +913,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_TENTACOOL, NATIONAL_DEX_TENTACRUEL, NATIONAL_DEX_TEPIG, + NATIONAL_DEX_TERAPAGOS, NATIONAL_DEX_TERRAKION, NATIONAL_DEX_THIEVUL, NATIONAL_DEX_THROH, @@ -1078,6 +1086,7 @@ const u16 gPokedexOrder_Weight[] = //NATIONAL_DEX_MINIOR_CORE_INDIGO, //NATIONAL_DEX_MINIOR_CORE_VIOLET, NATIONAL_DEX_MILCERY, + NATIONAL_DEX_PECHARUNT, // 0.9 lbs / 0.4 kg NATIONAL_DEX_POLTEAGEIST, NATIONAL_DEX_CURSOLA, @@ -1397,6 +1406,7 @@ const u16 gPokedexOrder_Weight[] = //NATIONAL_DEX_MELOETTA_PIROUETTE, NATIONAL_DEX_PAWMO, NATIONAL_DEX_SMOLIV, + NATIONAL_DEX_TERAPAGOS,//_NORMAL // 14.6 lbs / 6.6 kg NATIONAL_DEX_RALTS, NATIONAL_DEX_WHIMSICOTT, @@ -1662,6 +1672,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_CORVISQUIRE, NATIONAL_DEX_NACLI, NATIONAL_DEX_MASCHIFF, + //NATIONAL_DEX_TERAPAGOS_TERASTAL // 35.9 lbs / 16.3 kg NATIONAL_DEX_WHISMUR, NATIONAL_DEX_LILLIGANT, @@ -2281,6 +2292,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_LATIOS, //NATIONAL_DEX_GUMSHOOS_TOTEM_SIZED, NATIONAL_DEX_SANDY_SHOCKS, + NATIONAL_DEX_ARCHALUDON, // 132.7 lbs / 60.2 kg NATIONAL_DEX_FINIZEN, NATIONAL_DEX_PALAFIN,//_ZERO, @@ -2377,6 +2389,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_COFAGRIGUS, // 168.9 lbs / 76.6 kg NATIONAL_DEX_GOLDUCK, + //NATIONAL_DEX_TERAPAGOS_STELLAR // 170.6 lbs / 77.4 kg NATIONAL_DEX_CACTURNE, // 172.0 lbs / 78.0 kg @@ -2477,6 +2490,8 @@ const u16 gPokedexOrder_Weight[] = // 204.8 lbs / 92.9 kg NATIONAL_DEX_DARMANITAN,//_STANDARD_MODE, //NATIONAL_DEX_DARMANITAN_ZEN_MODE, + // 205.0 lbs / 93.0 kg + NATIONAL_DEX_HYDRAPPLE, // 208.6 lbs / 94.6 kg NATIONAL_DEX_BOUFFALANT, NATIONAL_DEX_SAMUROTT, @@ -2659,6 +2674,8 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_ARCANINE, // 342.8 lbs / 155.5 kg //NATIONAL_DEX_VENUSAUR_MEGA, + // 343.9 lbs / 156.0 kg + NATIONAL_DEX_IRON_CROWN, // 352.7 lbs / 160.0 kg NATIONAL_DEX_HYDREIGON, NATIONAL_DEX_FARIGIRAF, @@ -2666,6 +2683,8 @@ const u16 gPokedexOrder_Weight[] = //NATIONAL_DEX_SABLEYE_MEGA, // 357.1 lbs / 162.0 kg NATIONAL_DEX_MILOTIC, + // 358.2 lbs / 162.5 kg + NATIONAL_DEX_IRON_BOULDER, // 370.4 lbs / 168.0 kg //NATIONAL_DEX_ARCANINE_HISUIAN, NATIONAL_DEX_LUNATONE, @@ -2859,6 +2878,8 @@ const u16 gPokedexOrder_Weight[] = // 1014.1 lbs / 460.0 kg NATIONAL_DEX_SNORLAX, //NATIONAL_DEX_NECROZMA_DUSK_MANE, + // 1058.2 lbs / 480.0 kg + NATIONAL_DEX_RAGING_BOLT, // 1080.3 lbs / 490.0 kg //NATIONAL_DEX_HOOPA_UNBOUND, // 1113.3 lbs / 505.0 kg @@ -2867,6 +2888,8 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_STONJOURNER, // 1212.5 lbs / 550.0 kg NATIONAL_DEX_METAGROSS, + // 1300.7 lbs / 590.0 kg + NATIONAL_DEX_GOUGING_FIRE, // 1344.8 lbs / 610.0 kg //NATIONAL_DEX_ZYGARDE_COMPLETE, // 1433.8 lbs / 650.0 kg @@ -2965,6 +2988,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_RELLOR, NATIONAL_DEX_FLITTLE, NATIONAL_DEX_SINISTCHA, + NATIONAL_DEX_TERAPAGOS,//_NORMAL // 1'00" / 0.3m NATIONAL_DEX_CATERPIE, NATIONAL_DEX_WEEDLE, @@ -3129,6 +3153,8 @@ const u16 gPokedexOrder_Height[] = //NATIONAL_DEX_TATSUGIRI_DROOPY, //NATIONAL_DEX_TATSUGIRI_STRETCHY, NATIONAL_DEX_GIMMIGHOUL,//_CHEST, + //NATIONAL_DEX_TERAPAGOS_TERASTAL, + NATIONAL_DEX_PECHARUNT, // 0.4m NATIONAL_DEX_SPRIGATITO, NATIONAL_DEX_FUECOCO, @@ -3871,6 +3897,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_GLIMMORA, NATIONAL_DEX_WO_CHIEN, NATIONAL_DEX_IRON_LEAVES, + NATIONAL_DEX_IRON_BOULDER, // 5'03" / 1.6m NATIONAL_DEX_BLASTOISE, //NATIONAL_DEX_BLASTOISE_MEGA, @@ -3918,6 +3945,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_CYCLIZAR, NATIONAL_DEX_FLAMIGO, NATIONAL_DEX_IRON_THORNS, + NATIONAL_DEX_IRON_CROWN, // 5'07" / 1.7m NATIONAL_DEX_CHARIZARD, //NATIONAL_DEX_CHARIZARD_MEGA_X, @@ -3955,6 +3983,7 @@ const u16 gPokedexOrder_Height[] = //NATIONAL_DEX_GOURGEIST_SUPER, NATIONAL_DEX_VOLCANION, NATIONAL_DEX_CRABOMINABLE, + //NATIONAL_DEX_TERAPAGOS_STELLAR // 5'11" / 1.8m NATIONAL_DEX_DODRIO, NATIONAL_DEX_AERODACTYL, @@ -3993,6 +4022,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_CLODSIRE, NATIONAL_DEX_IRON_HANDS, NATIONAL_DEX_OKIDOGI, + NATIONAL_DEX_HYDRAPPLE, // 6'03" / 1.9m NATIONAL_DEX_ARCANINE, NATIONAL_DEX_RHYDON, @@ -4053,6 +4083,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_HOUNDSTONE, NATIONAL_DEX_KINGAMBIT, NATIONAL_DEX_ROARING_MOON, + NATIONAL_DEX_ARCHALUDON, // 6'11" / 2.1m //NATIONAL_DEX_AERODACTYL_MEGA, NATIONAL_DEX_SNORLAX, @@ -4198,6 +4229,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_GROUDON, NATIONAL_DEX_MIRAIDON, NATIONAL_DEX_WALKING_WAKE, + NATIONAL_DEX_GOUGING_FIRE, // 11'10" / 3.6m //NATIONAL_DEX_KYUREM_WHITE, NATIONAL_DEX_NAGANADEL, @@ -4229,6 +4261,7 @@ const u16 gPokedexOrder_Height[] = //NATIONAL_DEX_ZYGARDE_50_POWER_CONSTRUCT, // 17'01" / 5.2m NATIONAL_DEX_LUGIA, + NATIONAL_DEX_RAGING_BOLT, // 17'09" / 5.4m NATIONAL_DEX_DIALGA, // 18'01" / 5.5m diff --git a/src/data/pokemon/species_info/gen_8.h b/src/data/pokemon/species_info/gen_8.h index bcf77fcfa2..0bbd9b2f3a 100644 --- a/src/data/pokemon/species_info/gen_8.h +++ b/src/data/pokemon/species_info/gen_8.h @@ -1938,6 +1938,54 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = ICON(Dipplin, 1), //.footprint = gMonFootprint_Dipplin, LEARNSETS(Dipplin), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_DRAGON_CHEER, SPECIES_HYDRAPPLE}), + }, + + [SPECIES_HYDRAPPLE] = + { + .baseHP = 106, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 44, + .baseSpAttack = 120, + .baseSpDefense = 80, + .types = { TYPE_GRASS, TYPE_DRAGON }, + .catchRate = 10, + .expYield = 170, //Currently unknown + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_SUPERSWEET_SYRUP, ABILITY_REGENERATOR, ABILITY_STICKY_HOLD }, + .bodyColor = BODY_COLOR_GREEN, + .speciesName = _("Hydrapple"), + //.cryId = CRY_HYDRAPPLE, + .natDexNum = NATIONAL_DEX_HYDRAPPLE, + .categoryName = _("Apple Hydra"), + .height = 18, + .weight = 930, + .description = COMPOUND_STRING( + "These capricious syrpents have\n" + "banded together. On the rare\n" + "occasion that their moods align,\n" + "their true power is unleashed."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + //FRONT_PIC(Hydrapple, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Hydrapple, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(Hydrapple, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(Hydrapple), + //ICON(Hydrapple, 0), + //.footprint = gMonFootprint_Hydrapple, + LEARNSETS(Hydrapple), }, #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -4215,6 +4263,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = //.backAnimId = BACK_ANIM_NONE, PALETTES(Duraludon), ICON(Duraludon, 0), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_METAL_ALLOY, SPECIES_ARCHALUDON}), }, #if P_GIGANTAMAX_FORMS @@ -4244,6 +4293,55 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .isGigantamax = TRUE, }, #endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS + [SPECIES_ARCHALUDON] = + { + .baseHP = 90, + .baseAttack = 105, + .baseDefense = 130, + .baseSpeed = 85, + .baseSpAttack = 125, + .baseSpDefense = 65, + .types = { TYPE_STEEL, TYPE_DRAGON }, + .catchRate = 10, + .expYield = 187, //Currently unknown + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_DRAGON }, + .abilities = { ABILITY_STAMINA, ABILITY_STURDY, ABILITY_STALWART }, + .bodyColor = BODY_COLOR_WHITE, + .speciesName = _("Archaludon"), + //.cryId = CRY_ARCHALUDON, + .natDexNum = NATIONAL_DEX_ARCHALUDON, + .categoryName = _("Alloy"), + .height = 20, + .weight = 600, + .description = COMPOUND_STRING( + "It gathers static electricity\n" + "from its surroundings. The beams\n" + "it launches when down on all fours\n" + "are tremendously powerful."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + //FRONT_PIC(Archaludon, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Archaludon, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(Archaludon, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(Archaludon), + //ICON(Archaludon, 0), + //.footprint = gMonFootprint_Archaludon, + LEARNSETS(Archaludon), + }, +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY diff --git a/src/data/pokemon/species_info/gen_9.h b/src/data/pokemon/species_info/gen_9.h index 2f5f0ad76a..70e55ae320 100644 --- a/src/data/pokemon/species_info/gen_9.h +++ b/src/data/pokemon/species_info/gen_9.h @@ -5026,7 +5026,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .height = 35, .weight = 2800, .description = COMPOUND_STRING( - "Ecology under research."), + "This ferocious creature is shrouded in\n" + "mystery. It's named after an aquatic\n" + "monster mentioned in an old journal."), .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, @@ -5073,7 +5075,9 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .height = 15, .weight = 1250, .description = COMPOUND_STRING( - "Ecology under analysis."), + "According to the few eyewitness accounts\n" + "that exist, it used its shining blades\n" + "to julienne large trees and boulders."), .pokemonScale = 356, .pokemonOffset = 17, .trainerScale = 256, @@ -5428,6 +5432,376 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE + [SPECIES_GOUGING_FIRE] = + { + .baseHP = 105, + .baseAttack = 115, + .baseDefense = 121, + .baseSpeed = 91, + .baseSpAttack = 65, + .baseSpDefense = 93, + .types = { TYPE_FIRE, TYPE_DRAGON }, + .catchRate = 10, + .expYield = 261, //Currently unknown + .evYield_Defense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BROWN, + .isParadoxForm = TRUE, + .speciesName = _("GouginFire"), + //.cryId = CRY_GOUGING_FIRE, + .natDexNum = NATIONAL_DEX_GOUGING_FIRE, + .categoryName = _("Paradox"), + .height = 35, + .weight = 5900, + .description = COMPOUND_STRING( + "There are scant few reports of\n" + "this creature being sighted.\n" + "One short video shows it rampaging,\n" + "and spouting pillars of flame."), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + //FRONT_PIC(GougingFire, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_GougingFire, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(GougingFire, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(GougingFire), + //ICON(GougingFire, 0), + //.footprint = gMonFootprint_GougingFire, + LEARNSETS(GougingFire), + }, +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT + [SPECIES_RAGING_BOLT] = + { + .baseHP = 125, + .baseAttack = 73, + .baseDefense = 91, + .baseSpeed = 75, + .baseSpAttack = 137, + .baseSpDefense = 89, + .types = { TYPE_ELECTRIC, TYPE_DRAGON }, + .catchRate = 10, + .expYield = 261, //Currently unknown + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_PROTOSYNTHESIS, ABILITY_NONE }, + .bodyColor = BODY_COLOR_YELLOW, + .isParadoxForm = TRUE, + .speciesName = _("RagingBolt"), + //.cryId = CRY_RAGING_BOLT, + .natDexNum = NATIONAL_DEX_RAGING_BOLT, + .categoryName = _("Paradox"), + .height = 52, + .weight = 4800, + .description = COMPOUND_STRING( + "It bears resemblance to a Pokémon\n" + "that became a hot topic for a short\n" + "while after a paranomal magazine\n" + "touted it as Raikou's ancestor."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + //FRONT_PIC(RagingBolt, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_RagingBolt, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(RagingBolt, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(RagingBolt), + //ICON(RagingBolt, 0), + //.footprint = gMonFootprint_RagingBolt, + LEARNSETS(RagingBolt), + }, +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER + [SPECIES_IRON_BOULDER] = + { + .baseHP = 90, + .baseAttack = 120, + .baseDefense = 80, + .baseSpeed = 124, + .baseSpAttack = 68, + .baseSpDefense = 108, + .types = { TYPE_ROCK, TYPE_PSYCHIC }, + .catchRate = 10, + .expYield = 261, //Currently unknown + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_GRAY, + .isParadoxForm = TRUE, + .speciesName = _("IronBouldr"), + //.cryId = CRY_IRON_BOULDER, + .natDexNum = NATIONAL_DEX_IRON_BOULDER, + .categoryName = _("Paradox"), + .height = 15, + .weight = 1625, + .description = COMPOUND_STRING( + "It was named after a mysterious\n" + "object recorded in an old book.\n" + "Its body seems to be metallic."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 336, + .trainerOffset = 4, + //FRONT_PIC(IronBoulder, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_IronBoulder, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(IronBoulder, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(IronBoulder), + //ICON(IronBoulder, 0), + //.footprint = gMonFootprint_IronBoulder, + LEARNSETS(IronBoulder), + }, +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN + [SPECIES_IRON_CROWN] = + { + .baseHP = 90, + .baseAttack = 72, + .baseDefense = 100, + .baseSpeed = 98, + .baseSpAttack = 122, + .baseSpDefense = 108, + .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .catchRate = 10, + .expYield = 261, //Currently unknown + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_QUARK_DRIVE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_BLUE, + .isParadoxForm = TRUE, + .speciesName = _("Iron Crown"), + //.cryId = CRY_IRON_CROWN, + .natDexNum = NATIONAL_DEX_IRON_CROWN, + .categoryName = _("Paradox"), + .height = 16, + .weight = 1560, + .description = COMPOUND_STRING( + "It resembles a mysterious object\n" + "introduced in a paranormal magazine\n" + "as a cutting-edge weapon\n" + "shaped like Cobalion."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //FRONT_PIC(IronCrown, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_IronCrown, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(IronCrown, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(IronCrown), + //ICON(IronCrown, 0), + //.footprint = gMonFootprint_IronCrown, + LEARNSETS(IronCrown), + }, +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +#define TERAPAGOS_MISC_INFO \ + .types = { TYPE_NORMAL, TYPE_NORMAL }, \ + .catchRate = 255, \ + .expYield = 275, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, \ + .bodyColor = BODY_COLOR_BLUE, \ + .speciesName = _("Terapagos"), \ + .natDexNum = NATIONAL_DEX_TERAPAGOS, \ + .categoryName = _("Tera"), \ + LEARNSETS(Terapagos), \ + .formSpeciesIdTable = sTerapagosFormSpeciesIdTable, \ + .formChangeTable = sTerapagosFormChangeTable, \ + .isLegendary = TRUE + //.cryId = CRY_TERAPAGOS, + //.footprint = gMonFootprint_Terapagos, + + [SPECIES_TERAPAGOS_NORMAL] = + { + TERAPAGOS_MISC_INFO, + .baseHP = 90, + .baseAttack = 65, + .baseDefense = 85, + .baseSpeed = 60, + .baseSpAttack = 65, + .baseSpDefense = 85, + .evYield_Defense = 1, + .abilities = { ABILITY_TERA_SHIFT, ABILITY_NONE }, + .height = 2, + .weight = 65, + .description = COMPOUND_STRING( + "Terapagos protects itself using its\n" + "power to transform energy into hard\n" + "crystals. This Pokémon is the source\n" + "of the Terastal phenomenon."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //FRONT_PIC(TerapagosNormal, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TerapagosNormal, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(TerapagosNormal, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(TerapagosNormal), + //ICON(TerapagosNormal, 0), + }, + + [SPECIES_TERAPAGOS_TERASTAL] = + { + TERAPAGOS_MISC_INFO, + .baseHP = 95, + .baseAttack = 95, + .baseDefense = 110, + .baseSpeed = 85, + .baseSpAttack = 105, + .baseSpDefense = 110, + .evYield_Defense = 2, + .abilities = { ABILITY_TERA_SHELL, ABILITY_NONE }, + .height = 3, + .weight = 160, + .description = COMPOUND_STRING( + "The shell is made of crystallized\n" + "Terastal energy. When struck by a move,\n" + "this shell absorbs the move's energy\n" + "and transfers it to Terapagos."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //FRONT_PIC(TerapagosTerastal, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TerapagosTerastal, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(TerapagosTerastal, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(TerapagosTerastal), + //ICON(TerapagosTerastal, 0), + }, + + [SPECIES_TERAPAGOS_STELLAR] = + { + TERAPAGOS_MISC_INFO, + .baseHP = 160, + .baseAttack = 105, + .baseDefense = 110, + .baseSpeed = 85, + .baseSpAttack = 130, + .baseSpDefense = 110, + .evYield_HP = 3, + .abilities = { ABILITY_TERAFORM_ZERO, ABILITY_NONE }, + .height = 17, + .weight = 770, + .description = COMPOUND_STRING( + "An old expedition journal describes the\n" + "sight of this Pokémon buried in the,\n" + "depths of the earth as resembling a\n" + "planet floating in space."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //FRONT_PIC(TerapagosStellar, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TerapagosStellar, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(TerapagosStellar, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(TerapagosStellar), + //ICON(TerapagosStellar, 0), + }, +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT + [SPECIES_PECHARUNT] = + { + .baseHP = 88, + .baseAttack = 88, + .baseDefense = 160, + .baseSpeed = 88, + .baseSpAttack = 88, + .baseSpDefense = 88, + .types = { TYPE_POISON, TYPE_GHOST }, + .catchRate = 3, + .expYield = 261, //Currently unknown + .evYield_Defense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_NO_EGGS_DISCOVERED, EGG_GROUP_NO_EGGS_DISCOVERED }, + .abilities = { ABILITY_POISON_PUPPETEER, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, + .isMythical = TRUE, + .speciesName = _("Pecharunt"), + //.cryId = CRY_PECHARUNT, + .natDexNum = NATIONAL_DEX_PECHARUNT, + .categoryName = _("Subjugation"), + .height = 3, + .weight = 3, + .description = COMPOUND_STRING( + "It feeds others toxic mochi that\n" + "draw out desires and capabilities.\n" + "Those who eat the mochi fall under\n" + "Pecharunt's control, chained to its will."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + //FRONT_PIC(Pecharunt, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Pecharunt, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //BACK_PIC(Pecharunt, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + //PALETTES(Pecharunt), + //ICON(Pecharunt, 0), + //.footprint = gMonFootprint_Pecharunt, + LEARNSETS(Pecharunt), + }, +#endif //P_FAMILY_PECHARUNT + #ifdef __INTELLISENSE__ }; -#endif \ No newline at end of file +#endif diff --git a/src/data/pokemon/teachable_learnsets.h b/src/data/pokemon/teachable_learnsets.h index f274363f61..b8f2a39e30 100644 --- a/src/data/pokemon/teachable_learnsets.h +++ b/src/data/pokemon/teachable_learnsets.h @@ -33821,6 +33821,10 @@ static const u16 sAppletunTeachableLearnset[] = { static const u16 sDipplinTeachableLearnset[] = { MOVE_UNAVAILABLE, }; + +static const u16 sHydrappleTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -34654,6 +34658,12 @@ static const u16 sDuraludonTeachableLearnset[] = { MOVE_THUNDER_WAVE, MOVE_UNAVAILABLE, }; + +#if P_GEN_9_CROSS_EVOS +static const u16 sArchaludonTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -39114,3 +39124,39 @@ static const u16 sOgerponTeachableLearnset[] = { MOVE_UNAVAILABLE, }; #endif //P_FAMILY_OGERPON + +#if P_FAMILY_GOUGING_FIRE +static const u16 sGougingFireTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +static const u16 sRagingBoltTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +static const u16 sIronBoulderTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +static const u16 sIronCrownTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +static const u16 sTerapagosTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +static const u16 sPecharuntTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_PECHARUNT diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h index 75cb52732c..77a3ef8d69 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -9567,6 +9567,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(AppletunGigantamax); #if P_GEN_9_CROSS_EVOS PLACEHOLDER_ANIM_SINGLE_FRAME(Dipplin); +PLACEHOLDER_ANIM_SINGLE_FRAME(Hydrapple); #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN @@ -9718,6 +9719,10 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Duraludon); #if P_GIGANTAMAX_FORMS PLACEHOLDER_ANIM_SINGLE_FRAME(DuraludonGigantamax); #endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS +PLACEHOLDER_ANIM_SINGLE_FRAME(Archaludon); +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY @@ -10084,6 +10089,32 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Fezandipiti); PLACEHOLDER_ANIM_SINGLE_FRAME(Ogerpon); #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE +PLACEHOLDER_ANIM_SINGLE_FRAME(GougingFire); +#endif //P_FAMILY_GOUGING_FIRE + +#if P_FAMILY_RAGING_BOLT +PLACEHOLDER_ANIM_SINGLE_FRAME(RagingBolt); +#endif //P_FAMILY_RAGING_BOLT + +#if P_FAMILY_IRON_BOULDER +PLACEHOLDER_ANIM_SINGLE_FRAME(IronBoulder); +#endif //P_FAMILY_IRON_BOULDER + +#if P_FAMILY_IRON_CROWN +PLACEHOLDER_ANIM_SINGLE_FRAME(IronCrown); +#endif //P_FAMILY_IRON_CROWN + +#if P_FAMILY_TERAPAGOS +PLACEHOLDER_ANIM_SINGLE_FRAME(TerapagosNormal); +PLACEHOLDER_ANIM_SINGLE_FRAME(TerapagosTerastal); +PLACEHOLDER_ANIM_SINGLE_FRAME(TerapagosStellar); +#endif //P_FAMILY_TERAPAGOS + +#if P_FAMILY_PECHARUNT +PLACEHOLDER_ANIM_SINGLE_FRAME(Pecharunt); +#endif //P_FAMILY_PECHARUNT + static const union AnimCmd sAnim_Egg_1[] = { ANIMCMD_FRAME(0, 6), @@ -12341,6 +12372,7 @@ SINGLE_ANIMATION(AppletunGigantamax); #endif //P_GIGANTAMAX_FORMS #if P_GEN_9_CROSS_EVOS SINGLE_ANIMATION(Dipplin); +SINGLE_ANIMATION(Hydrapple); #endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_APPLIN #if P_FAMILY_SILICOBRA @@ -12448,6 +12480,9 @@ SINGLE_ANIMATION(Duraludon); #if P_GIGANTAMAX_FORMS SINGLE_ANIMATION(DuraludonGigantamax); #endif //P_GIGANTAMAX_FORMS +#if P_GEN_9_CROSS_EVOS +SINGLE_ANIMATION(Archaludon); +#endif //P_GEN_9_CROSS_EVOS #endif //P_FAMILY_DURALUDON #if P_FAMILY_DREEPY SINGLE_ANIMATION(Dreepy); @@ -12731,4 +12766,24 @@ SINGLE_ANIMATION(Fezandipiti); #if P_FAMILY_OGERPON SINGLE_ANIMATION(Ogerpon); #endif //P_FAMILY_OGERPON +#if P_FAMILY_GOUGING_FIRE +SINGLE_ANIMATION(GougingFire); +#endif //P_FAMILY_GOUGING_FIRE +#if P_FAMILY_RAGING_BOLT +SINGLE_ANIMATION(RagingBolt); +#endif //P_FAMILY_RAGING_BOLT +#if P_FAMILY_IRON_BOULDER +SINGLE_ANIMATION(IronBoulder); +#endif //P_FAMILY_IRON_BOULDER +#if P_FAMILY_IRON_CROWN +SINGLE_ANIMATION(IronCrown); +#endif //P_FAMILY_IRON_CROWN +#if P_FAMILY_TERAPAGOS +SINGLE_ANIMATION(TerapagosNormal); +SINGLE_ANIMATION(TerapagosTerastal); +SINGLE_ANIMATION(TerapagosStellar); +#endif //P_FAMILY_TERAPAGOS +#if P_FAMILY_PECHARUNT +SINGLE_ANIMATION(Pecharunt); +#endif //P_FAMILY_PECHARUNT SINGLE_ANIMATION(Egg);