diff --git a/graphics/pokemon/melmetal/back.png b/graphics/pokemon/melmetal/back.png new file mode 100644 index 0000000000..26889e2d1d Binary files /dev/null and b/graphics/pokemon/melmetal/back.png differ diff --git a/graphics/pokemon/melmetal/front.png b/graphics/pokemon/melmetal/front.png new file mode 100644 index 0000000000..1eaf806721 Binary files /dev/null and b/graphics/pokemon/melmetal/front.png differ diff --git a/graphics/pokemon/melmetal/icon.png b/graphics/pokemon/melmetal/icon.png new file mode 100644 index 0000000000..fa70c6b6b5 Binary files /dev/null and b/graphics/pokemon/melmetal/icon.png differ diff --git a/graphics/pokemon/melmetal/normal.pal b/graphics/pokemon/melmetal/normal.pal new file mode 100644 index 0000000000..0a1e2b0031 --- /dev/null +++ b/graphics/pokemon/melmetal/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +88 80 72 +136 136 120 +224 128 32 +128 64 32 +248 184 72 +248 224 152 +56 48 48 +32 24 24 +96 96 88 +176 96 40 +16 16 16 +248 248 248 +216 216 216 +176 176 160 +192 40 40 diff --git a/graphics/pokemon/melmetal/shiny.pal b/graphics/pokemon/melmetal/shiny.pal new file mode 100644 index 0000000000..5cce306323 --- /dev/null +++ b/graphics/pokemon/melmetal/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +88 80 72 +136 136 120 +216 104 40 +128 48 32 +248 160 80 +248 224 152 +56 48 48 +32 24 24 +96 96 88 +176 72 40 +16 16 16 +248 248 248 +216 216 216 +176 176 160 +0 88 216 diff --git a/graphics/pokemon/meltan/back.png b/graphics/pokemon/meltan/back.png new file mode 100644 index 0000000000..d2785c36da Binary files /dev/null and b/graphics/pokemon/meltan/back.png differ diff --git a/graphics/pokemon/meltan/front.png b/graphics/pokemon/meltan/front.png new file mode 100644 index 0000000000..97ebff0de7 Binary files /dev/null and b/graphics/pokemon/meltan/front.png differ diff --git a/graphics/pokemon/meltan/icon.png b/graphics/pokemon/meltan/icon.png new file mode 100644 index 0000000000..17fb4f96bd Binary files /dev/null and b/graphics/pokemon/meltan/icon.png differ diff --git a/graphics/pokemon/meltan/normal.pal b/graphics/pokemon/meltan/normal.pal new file mode 100644 index 0000000000..5308c0aa08 --- /dev/null +++ b/graphics/pokemon/meltan/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +224 128 32 +176 96 40 +248 184 72 +248 224 152 +248 248 248 +128 64 32 +16 16 16 +88 80 72 +56 48 48 +96 96 88 +216 216 216 +136 136 120 +176 176 160 +112 16 16 +192 40 40 diff --git a/graphics/pokemon/meltan/shiny.pal b/graphics/pokemon/meltan/shiny.pal new file mode 100644 index 0000000000..236726a3fa --- /dev/null +++ b/graphics/pokemon/meltan/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +216 104 40 +176 72 40 +248 160 80 +248 224 152 +248 248 248 +128 48 32 +16 16 16 +88 80 72 +56 48 48 +96 96 88 +216 216 216 +136 136 120 +176 176 160 +0 48 120 +0 88 216 diff --git a/include/constants/species.h b/include/constants/species.h index 505d744087..bb5ded2690 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -809,10 +809,10 @@ #define SPECIES_STAKATAKA 805 #define SPECIES_BLACEPHALON 806 #define SPECIES_ZERAORA 807 +#define SPECIES_MELTAN 808 +#define SPECIES_MELMETAL 809 // Megas -#define SPECIES_MEGA_GENGAR 808 -#define SPECIES_MEGA_GARDEVOIR 809 #define SPECIES_MEGA_AMPHAROS 810 #define SPECIES_MEGA_VENUSAUR 811 #define SPECIES_MEGA_CHARIZARD_X 812 @@ -859,9 +859,8 @@ #define SPECIES_MEGA_LOPUNNY 853 #define SPECIES_MEGA_SALAMENCE 854 #define SPECIES_MEGA_BEEDRILL 855 - -#define SPECIES_PRIMAL_KYOGRE 856 -#define SPECIES_PRIMAL_GROUDON 857 +#define SPECIES_MEGA_GENGAR 856 +#define SPECIES_MEGA_GARDEVOIR 857 #define SPECIES_BURMY_SANDY 858 #define SPECIES_BURMY_TRASH 859 @@ -896,8 +895,10 @@ #define SPECIES_ALOLAN_MAROWAK 887 // TODO: forms +#define SPECIES_PRIMAL_KYOGRE 888 +#define SPECIES_PRIMAL_GROUDON 889 -#define SPECIES_EGG 888 +#define SPECIES_EGG 890 #define NUM_SPECIES SPECIES_EGG // Unown forms, not actual species @@ -1740,8 +1741,10 @@ #define NATIONAL_DEX_STAKATAKA 805 #define NATIONAL_DEX_BLACEPHALON 806 #define NATIONAL_DEX_ZERAORA 807 +#define NATIONAL_DEX_MELTAN 808 +#define NATIONAL_DEX_MELMETAL 809 -#define NATIONAL_DEX_COUNT 808 +#define NATIONAL_DEX_COUNT 810 // Hoenn Dex(ORAS) Index Defines #define HOENN_DEX_NONE 0 diff --git a/include/graphics.h b/include/graphics.h index 8b736f70b4..8e348b4b4a 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -882,6 +882,8 @@ extern const u32 gMonFrontPic_Naganadel[]; extern const u32 gMonFrontPic_Stakataka[]; extern const u32 gMonFrontPic_Blacephalon[]; extern const u32 gMonFrontPic_Zeraora[]; +extern const u32 gMonFrontPic_Meltan[]; +extern const u32 gMonFrontPic_Melmetal[]; extern const u32 gMonBackPic_CircledQuestionMark[]; extern const u32 gMonBackPic_Bulbasaur[]; @@ -1729,6 +1731,8 @@ extern const u32 gMonBackPic_Naganadel[]; extern const u32 gMonBackPic_Stakataka[]; extern const u32 gMonBackPic_Blacephalon[]; extern const u32 gMonBackPic_Zeraora[]; +extern const u32 gMonBackPic_Meltan[]; +extern const u32 gMonBackPic_Melmetal[]; extern const u32 gMonPalette_CircledQuestionMark[]; extern const u32 gMonPalette_Bulbasaur[]; @@ -2550,6 +2554,8 @@ extern const u32 gMonPalette_Naganadel[]; extern const u32 gMonPalette_Stakataka[]; extern const u32 gMonPalette_Blacephalon[]; extern const u32 gMonPalette_Zeraora[]; +extern const u32 gMonPalette_Meltan[]; +extern const u32 gMonPalette_Melmetal[]; extern const u32 gMonShinyPalette_CircledQuestionMark[]; extern const u32 gMonShinyPalette_Bulbasaur[]; @@ -3370,6 +3376,8 @@ extern const u32 gMonShinyPalette_Naganadel[]; extern const u32 gMonShinyPalette_Stakataka[]; extern const u32 gMonShinyPalette_Blacephalon[]; extern const u32 gMonShinyPalette_Zeraora[]; +extern const u32 gMonShinyPalette_Meltan[]; +extern const u32 gMonShinyPalette_Melmetal[]; extern const u32 gMonFrontPic_MegaVenusaur[]; extern const u32 gMonBackPic_MegaVenusaur[]; @@ -4491,6 +4499,8 @@ extern const u8 gMonIcon_Naganadel[]; extern const u8 gMonIcon_Stakataka[]; extern const u8 gMonIcon_Blacephalon[]; extern const u8 gMonIcon_Zeraora[]; +extern const u8 gMonIcon_Meltan[]; +extern const u8 gMonIcon_Melmetal[]; extern const u8 gMonIcon_MegaVenusaur[]; extern const u8 gMonIcon_MegaCharizardX[]; extern const u8 gMonIcon_MegaCharizardY[]; diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 4e28ff9156..830ca6022d 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -845,6 +845,8 @@ const u32 gMonFrontPic_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/fron const u32 gMonFrontPic_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/front.4bpp.lz"); const u32 gMonFrontPic_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/front.4bpp.lz"); const u32 gMonFrontPic_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/front.4bpp.lz"); +const u32 gMonFrontPic_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/front.4bpp.lz"); +const u32 gMonFrontPic_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/front.4bpp.lz"); const u32 gMonBackPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/back.4bpp.lz"); const u32 gMonBackPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/back.4bpp.lz"); @@ -1692,6 +1694,8 @@ const u32 gMonBackPic_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/back. const u32 gMonBackPic_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/back.4bpp.lz"); const u32 gMonBackPic_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/back.4bpp.lz"); const u32 gMonBackPic_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/back.4bpp.lz"); +const u32 gMonBackPic_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/back.4bpp.lz"); +const u32 gMonBackPic_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/back.4bpp.lz"); const u32 gMonPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/normal.gbapal.lz"); const u32 gMonPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/normal.gbapal.lz"); @@ -2513,6 +2517,8 @@ const u32 gMonPalette_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/norma const u32 gMonPalette_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/normal.gbapal.lz"); const u32 gMonPalette_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/normal.gbapal.lz"); const u32 gMonPalette_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/normal.gbapal.lz"); +const u32 gMonPalette_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/normal.gbapal.lz"); +const u32 gMonPalette_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/normal.gbapal.lz"); const u32 gMonShinyPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/circled_question_mark/shiny.gbapal.lz"); const u32 gMonShinyPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/shiny.gbapal.lz"); @@ -3333,6 +3339,8 @@ const u32 gMonShinyPalette_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/ const u32 gMonShinyPalette_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/shiny.gbapal.lz"); const u32 gMonShinyPalette_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/shiny.gbapal.lz"); const u32 gMonShinyPalette_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/shiny.gbapal.lz"); +const u32 gMonShinyPalette_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/shiny.gbapal.lz"); +const u32 gMonShinyPalette_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/shiny.gbapal.lz"); const u32 gMonFrontPic_MegaVenusaur[] = INCBIN_U32("graphics/pokemon/mega_venusaur/front.4bpp.lz"); const u32 gMonBackPic_MegaVenusaur[] = INCBIN_U32("graphics/pokemon/mega_venusaur/back.4bpp.lz"); @@ -4454,6 +4462,8 @@ const u8 gMonIcon_Naganadel[] = INCBIN_U8("graphics/pokemon/naganadel/icon.4bpp" const u8 gMonIcon_Stakataka[] = INCBIN_U8("graphics/pokemon/stakataka/icon.4bpp"); const u8 gMonIcon_Blacephalon[] = INCBIN_U8("graphics/pokemon/blacephalon/icon.4bpp"); const u8 gMonIcon_Zeraora[] = INCBIN_U8("graphics/pokemon/zeraora/icon.4bpp"); +const u8 gMonIcon_Meltan[] = INCBIN_U8("graphics/pokemon/meltan/icon.4bpp"); +const u8 gMonIcon_Melmetal[] = INCBIN_U8("graphics/pokemon/melmetal/icon.4bpp"); const u8 gMonIcon_MegaVenusaur[] = INCBIN_U8("graphics/pokemon/mega_venusaur/icon.4bpp"); const u8 gMonIcon_MegaCharizardX[] = INCBIN_U8("graphics/pokemon/mega_charizard_x/icon.4bpp"); const u8 gMonIcon_MegaCharizardY[] = INCBIN_U8("graphics/pokemon/mega_charizard_y/icon.4bpp"); diff --git a/src/data/pokemon/base_stats.h b/src/data/pokemon/base_stats.h index a544e7f75e..758d13d16f 100644 --- a/src/data/pokemon/base_stats.h +++ b/src/data/pokemon/base_stats.h @@ -20599,6 +20599,52 @@ const struct BaseStats gBaseStats[] = .bodyColor = BODY_COLOR_YELLOW, }, + [SPECIES_MELTAN] = + { + .baseHP = 46, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 34, + .baseSpAttack = 55, + .baseSpDefense = 35, + .type1 = TYPE_STEEL, + .type2 = TYPE_STEEL, + .catchRate = 3, + .expYield = 135, + .evYield_Attack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .abilities = {ABILITY_MAGNET_PULL, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + }, + + [SPECIES_MELMETAL] = + { + .baseHP = 135, + .baseAttack = 143, + .baseDefense = 143, + .baseSpeed = 34, + .baseSpAttack = 80, + .baseSpDefense = 65, + .type1 = TYPE_STEEL, + .type2 = TYPE_STEEL, + .catchRate = 3, + .expYield = 270, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroup1 = EGG_GROUP_UNDISCOVERED, + .eggGroup2 = EGG_GROUP_UNDISCOVERED, + .abilities = {ABILITY_IRON_FIST, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + }, + [SPECIES_MEGA_GENGAR] = { .baseHP = 60, diff --git a/src/data/pokemon/level_up_learnset_pointers.h b/src/data/pokemon/level_up_learnset_pointers.h index 8d5130491a..b8dcd5edd0 100644 --- a/src/data/pokemon/level_up_learnset_pointers.h +++ b/src/data/pokemon/level_up_learnset_pointers.h @@ -820,6 +820,8 @@ const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] = [SPECIES_STAKATAKA] = sStakatakaLevelUpLearnset, [SPECIES_BLACEPHALON] = sBlacephalonLevelUpLearnset, [SPECIES_ZERAORA] = sZeraoraLevelUpLearnset, + [SPECIES_MELTAN] = sMeltanLevelUpLearnset, + [SPECIES_MELMETAL] = sMelmetalLevelUpLearnset, // Megas have the same learnsets [SPECIES_MEGA_VENUSAUR] = sVenusaurLevelUpLearnset, [SPECIES_MEGA_CHARIZARD_X] = sCharizardLevelUpLearnset, diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h index c21185402a..1c225a76b5 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -7622,6 +7622,16 @@ static const struct LevelUpMove sZeraoraLevelUpLearnset[] = { LEVEL_UP_END }; +static const struct LevelUpMove sMeltanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMelmetalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + static const struct LevelUpMove sAlolanRattataLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_END diff --git a/src/data/pokemon/pokedex_entries.h b/src/data/pokemon/pokedex_entries.h index 35f1848f86..2b95380281 100644 --- a/src/data/pokemon/pokedex_entries.h +++ b/src/data/pokemon/pokedex_entries.h @@ -9695,4 +9695,28 @@ const struct PokedexEntry gPokedexEntries[] = .trainerScale = 256, .trainerOffset = 0, }, + + [NATIONAL_DEX_MELTAN] = + { + .categoryName = _("Hex Nut"), + .height = 2, + .weight = 80, + .description = gMeltanPokedexText, + .pokemonScale = 640, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + }, + + [NATIONAL_DEX_MELMETAL] = + { + .categoryName = _("Hex Nut"), + .height = 25, + .weight = 800, + .description = gMelmetalPokedexText, + .pokemonScale = 255, + .pokemonOffset = 1, + .trainerScale = 387, + .trainerOffset = 2, + }, }; diff --git a/src/data/pokemon/pokedex_text.h b/src/data/pokemon/pokedex_text.h index 9ae694dc98..0de25a5f5e 100644 --- a/src/data/pokemon/pokedex_text.h +++ b/src/data/pokemon/pokedex_text.h @@ -4824,26 +4824,36 @@ const u8 gMarshadowPokedexText[] = _( "This Pokémon is craven and cowering."); const u8 gPoipolePokedexText[] = _( - "This Ultra Beast is well enough\n" - "liked to be chosen as a\n" - "first partner in its own world."); + "This Ultra Beast is well enough\n" + "liked to be chosen as a\n" + "first partner in its own world."); const u8 gNaganadelPokedexText[] = _( - "It stores hundreds of liters of poisonous\n" - "liquid inside its body. It is one of the\n" - "organisms known as UBs."); + "It stores hundreds of liters of poisonous\n" + "liquid inside its body. It is one of the\n" + "organisms known as UBs."); const u8 gStakatakaPokedexText[] = _( - "It appeared from an Ultra Wormhole. Each\n" - "one appears to be made up of many life-\n" - "forms stacked one on top of each other."); + "It appeared from an Ultra Wormhole. Each\n" + "one appears to be made up of many life-\n" + "forms stacked one on top of each other."); const u8 gBlacephalonPokedexText[] = _( - "It slithers toward people and explode\n" - "its head without warning. It is\n" - "one kind of Ultra Beast."); + "It slithers toward people and explode\n" + "its head without warning. It is\n" + "one kind of Ultra Beast."); const u8 gZeraoraPokedexText[] = _( - "It approaches its enemies at the speed\n" - "of lightning, then tears them limb from\n" - "limb with its sharp claws."); + "It approaches its enemies at the speed\n" + "of lightning, then tears them limb from\n" + "limb with its sharp claws."); + +const u8 gMeltanPokedexText[] = _( + "It melts particles of iron and other metals\n" + "found in the subsoil, so it can absorb them\n" + "into its body of molten steel."); + +const u8 gMelmetalPokedexText[] = _( + "Revered long ago for its capacity to create\n" + "iron from nothing, for some reason it has\n" + "come back to life after 3,000 years."); diff --git a/src/data/pokemon/tmhm_learnsets.h b/src/data/pokemon/tmhm_learnsets.h index d1dee7209e..c006a10968 100644 --- a/src/data/pokemon/tmhm_learnsets.h +++ b/src/data/pokemon/tmhm_learnsets.h @@ -19182,6 +19182,10 @@ const u32 gTMHMLearnsets[][2] = | TMHM(TM25_THUNDER) | TMHM(TM24_THUNDERBOLT) | TMHM(TM06_TOXIC)), + //TMs of LGPE don't match with USUM + [SPECIES_MELTAN] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), + + [SPECIES_MELMETAL] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER)), [SPECIES_BURMY_SANDY] = TMHM_LEARNSET(TMHM(TM10_HIDDEN_POWER) | TMHM(TM17_PROTECT)), diff --git a/src/data/pokemon_graphics/back_pic_coordinates.h b/src/data/pokemon_graphics/back_pic_coordinates.h index bb96b73630..f9e51801c5 100644 --- a/src/data/pokemon_graphics/back_pic_coordinates.h +++ b/src/data/pokemon_graphics/back_pic_coordinates.h @@ -4036,6 +4036,16 @@ const struct MonCoords gMonBackPicCoords[] = .size = 0x64, .y_offset = 0x0B, }, + [SPECIES_MELTAN] = + { + .size = 0x66, + .y_offset = 0x0C, + }, + [SPECIES_MELMETAL] = + { + .size = 0x66, + .y_offset = 0x0D, + }, // Eggs + Unown [SPECIES_EGG] = { diff --git a/src/data/pokemon_graphics/back_pic_table.h b/src/data/pokemon_graphics/back_pic_table.h index a788e7e399..bf140557d6 100644 --- a/src/data/pokemon_graphics/back_pic_table.h +++ b/src/data/pokemon_graphics/back_pic_table.h @@ -818,6 +818,8 @@ const struct CompressedSpriteSheet gMonBackPicTable[] = SPECIES_SPRITE(STAKATAKA, gMonBackPic_Stakataka), SPECIES_SPRITE(BLACEPHALON, gMonBackPic_Blacephalon), SPECIES_SPRITE(ZERAORA, gMonBackPic_Zeraora), + SPECIES_SPRITE(MELTAN, gMonBackPic_Meltan), + SPECIES_SPRITE(MELMETAL, gMonBackPic_Melmetal), SPECIES_SPRITE(EGG, gMonFrontPic_Egg), SPECIES_SPRITE(MEGA_VENUSAUR, gMonBackPic_MegaVenusaur), diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h index 88d86a0472..e64738c957 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -7888,6 +7888,18 @@ static const union AnimCmd sAnim_ZERAORA_1[] = ANIMCMD_END, }; +static const union AnimCmd sAnim_MELTAN_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_MELMETAL_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + static const union AnimCmd sAnim_MEGA_VENUSAUR_1[] = { ANIMCMD_FRAME(0, 1), @@ -12566,6 +12578,16 @@ static const union AnimCmd *const sAnims_ZERAORA[] ={ sAnim_ZERAORA_1, }; +static const union AnimCmd *const sAnims_MELTAN[] ={ + sAnim_GeneralFrame0, + sAnim_MELTAN_1, +}; + +static const union AnimCmd *const sAnims_MELMETAL[] ={ + sAnim_GeneralFrame0, + sAnim_MELMETAL_1, +}; + static const union AnimCmd *const sAnims_MEGA_VENUSAUR[] ={ sAnim_GeneralFrame0, sAnim_MEGA_VENUSAUR_1, @@ -13729,6 +13751,8 @@ const union AnimCmd *const *const gMonFrontAnimsPtrTable[] = ANIM_CMD(STAKATAKA), ANIM_CMD(BLACEPHALON), ANIM_CMD(ZERAORA), + ANIM_CMD(MELTAN), + ANIM_CMD(MELMETAL), ANIM_CMD(EGG), ANIM_CMD(MEGA_VENUSAUR), ANIM_CMD(MEGA_CHARIZARD_X), diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h index 0eb6ae2675..f88feabea0 100644 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ b/src/data/pokemon_graphics/front_pic_coordinates.h @@ -4036,6 +4036,16 @@ const struct MonCoords gMonFrontPicCoords[] = .size = 0x45, .y_offset = 0x04, }, + [SPECIES_MELTAN] = + { + .size = 0x45, + .y_offset = 0x08, + }, + [SPECIES_MELMETAL] = + { + .size = 0x86, + .y_offset = 0x04, + }, [SPECIES_EGG] = { .size = 0x33, diff --git a/src/data/pokemon_graphics/front_pic_table.h b/src/data/pokemon_graphics/front_pic_table.h index 2427835c99..dbb3dc2088 100644 --- a/src/data/pokemon_graphics/front_pic_table.h +++ b/src/data/pokemon_graphics/front_pic_table.h @@ -818,6 +818,8 @@ const struct CompressedSpriteSheet gMonFrontPicTable[] = SPECIES_SPRITE(STAKATAKA, gMonFrontPic_Stakataka), SPECIES_SPRITE(BLACEPHALON, gMonFrontPic_Blacephalon), SPECIES_SPRITE(ZERAORA, gMonFrontPic_Zeraora), + SPECIES_SPRITE(MELTAN, gMonFrontPic_Meltan), + SPECIES_SPRITE(MELMETAL, gMonFrontPic_Melmetal), SPECIES_SPRITE(EGG, gMonFrontPic_Egg), SPECIES_SPRITE(MEGA_VENUSAUR, gMonFrontPic_MegaVenusaur), diff --git a/src/data/pokemon_graphics/palette_table.h b/src/data/pokemon_graphics/palette_table.h index 00368f8b50..da568e1c44 100644 --- a/src/data/pokemon_graphics/palette_table.h +++ b/src/data/pokemon_graphics/palette_table.h @@ -818,6 +818,8 @@ const struct CompressedSpritePalette gMonPaletteTable[] = SPECIES_PAL(STAKATAKA, gMonPalette_Stakataka), SPECIES_PAL(BLACEPHALON, gMonPalette_Blacephalon), SPECIES_PAL(ZERAORA, gMonPalette_Zeraora), + SPECIES_PAL(MELTAN, gMonPalette_Meltan), + SPECIES_PAL(MELMETAL, gMonPalette_Melmetal), SPECIES_PAL(EGG, gMonPalette_Egg), SPECIES_PAL(MEGA_VENUSAUR, gMonPalette_MegaVenusaur), diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h index da85d5c3ae..880d6ea4e2 100644 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ b/src/data/pokemon_graphics/shiny_palette_table.h @@ -818,6 +818,8 @@ const struct CompressedSpritePalette gMonShinyPaletteTable[] = SPECIES_SHINY_PAL(STAKATAKA, gMonShinyPalette_Stakataka), SPECIES_SHINY_PAL(BLACEPHALON, gMonShinyPalette_Blacephalon), SPECIES_SHINY_PAL(ZERAORA, gMonShinyPalette_Zeraora), + SPECIES_SHINY_PAL(MELTAN, gMonShinyPalette_Meltan), + SPECIES_SHINY_PAL(MELMETAL, gMonShinyPalette_Melmetal), SPECIES_SHINY_PAL(EGG, gMonPalette_Egg), SPECIES_SHINY_PAL(MEGA_VENUSAUR, gMonShinyPalette_MegaVenusaur), diff --git a/src/data/text/species_names.h b/src/data/text/species_names.h index 8829935869..7f98c00946 100644 --- a/src/data/text/species_names.h +++ b/src/data/text/species_names.h @@ -819,6 +819,8 @@ const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1] = { [SPECIES_STAKATAKA] = _("Stakataka"), [SPECIES_BLACEPHALON] = _("Blacefalon"), [SPECIES_ZERAORA] = _("Zeraora"), + [SPECIES_MELTAN] = _("Meltan"), + [SPECIES_MELMETAL] = _("Melmetal"), [SPECIES_MEGA_VENUSAUR] = _("Venusaur"), [SPECIES_MEGA_CHARIZARD_X] = _("Charizard"), diff --git a/src/pokemon.c b/src/pokemon.c index cb21cd6acf..26adb4a526 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1134,6 +1134,8 @@ const u16 gSpeciesToNationalPokedexNum[NUM_SPECIES] = // Assigns all species to SPECIES_TO_NATIONAL(STAKATAKA), SPECIES_TO_NATIONAL(BLACEPHALON), SPECIES_TO_NATIONAL(ZERAORA), + SPECIES_TO_NATIONAL(MELTAN), + SPECIES_TO_NATIONAL(MELMETAL), }; const u16 gHoennToNationalOrder[HOENN_DEX_COUNT] = // Assigns Hoenn Dex Pokémon (Using National Dex Index) @@ -2060,6 +2062,8 @@ static const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = [SPECIES_STAKATAKA - 1] = 0x09, [SPECIES_BLACEPHALON - 1] = 0x8f, [SPECIES_ZERAORA - 1] = 0x17, + [SPECIES_MELTAN - 1] = 0x65, + [SPECIES_MELMETAL - 1] = 0x09, // Forms [SPECIES_ROTOM_HEAT - 1] = 0, diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index b51a78b13f..bb3f8b1763 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -843,6 +843,8 @@ const u8 *const gMonIconTable[] = [SPECIES_STAKATAKA] = gMonIcon_Stakataka, [SPECIES_BLACEPHALON] = gMonIcon_Blacephalon, [SPECIES_ZERAORA] = gMonIcon_Zeraora, + [SPECIES_MELTAN] = gMonIcon_Meltan, + [SPECIES_MELMETAL] = gMonIcon_Melmetal, [SPECIES_EGG] = gMonIcon_Egg, [SPECIES_MEGA_VENUSAUR] = gMonIcon_MegaVenusaur, [SPECIES_MEGA_CHARIZARD_X] = gMonIcon_MegaCharizardX, @@ -1762,6 +1764,8 @@ const u8 gMonIconPaletteIndices[] = [SPECIES_STAKATAKA] = 0, [SPECIES_BLACEPHALON] = 0, [SPECIES_ZERAORA] = 0, + [SPECIES_MELTAN] = 2, + [SPECIES_MELMETAL] = 2, [SPECIES_MEGA_VENUSAUR] = 1, [SPECIES_MEGA_CHARIZARD_X] = 0, [SPECIES_MEGA_CHARIZARD_Y] = 0,