Merge remote-tracking branch 'RHH/pokemon_expansion' into RHH_masterMerge

# Conflicts:
#	asm/macros/event.inc
#	data/specials.inc
#	include/constants/species.h
#	src/data/pokemon/base_stats.h
This commit is contained in:
Eduardo Quezada 2022-07-22 23:33:04 -04:00
commit 231727d02b
36 changed files with 794 additions and 150 deletions

View File

@ -2006,3 +2006,15 @@
.macro totemboost_evas2 battler:req .macro totemboost_evas2 battler:req
settotemboost \battler, 0, 0, 0, 0, 0, 0, 2 settotemboost \battler, 0, 0, 0, 0, 0, 0, 2
.endm .endm
@ Attempts to trigger a special evolution method in the overworld.
@ There may be other conditions required which are coded for in GetEvolutionTargetSpecies.
@ EX: tryspecialevo EVO_WATER_SCROLL, FALSE, FALSE triggers Kubfu's EVO_WATER_SCROLL evolution
@ method, cannot be cancelled in the evolution scene, and will only evolve one Kubfu if there
@ are multiple in the player's party.
.macro tryspecialevo evoMethod:req, canStopEvo=TRUE, tryMultiple=TRUE
setvar VAR_0x8000, \evoMethod
setvar VAR_0x8001, \canStopEvo
setvar VAR_0x8002, \tryMultiple
special TrySpecialOverworldEvo
.endm

View File

@ -536,3 +536,4 @@ gSpecials::
def_special CloseDeptStoreElevatorWindow def_special CloseDeptStoreElevatorWindow
def_special TrySetBattleTowerLinkType def_special TrySetBattleTowerLinkType
def_special SetTotemBoost def_special SetTotemBoost
def_special TrySpecialOverworldEvo

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

View File

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 382 B

View File

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 373 B

View File

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 862 B

View File

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 544 B

View File

Before

Width:  |  Height:  |  Size: 600 B

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

View File

@ -25,7 +25,59 @@ STARTERGFXDIR := graphics/starter_choose
types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark fairy types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark fairy
contest_types := cool beauty cute smart tough contest_types := cool beauty cute smart tough
### Cherrim ###
$(CHERRIMGFXDIR)/front.4bpp: $(CHERRIMGFXDIR)/normal/front.4bpp \
$(CHERRIMGFXDIR)/sunshine/front.4bpp
@cat $^ >$@
$(CHERRIMGFXDIR)/back.4bpp: $(CHERRIMGFXDIR)/normal/back.4bpp \
$(CHERRIMGFXDIR)/sunshine/back.4bpp
@cat $^ >$@
$(CHERRIMGFXDIR)/anim_front.4bpp: $(CHERRIMGFXDIR)/normal/anim_front.4bpp \
$(CHERRIMGFXDIR)/sunshine/anim_front.4bpp
@cat $^ >$@
$(CHERRIMGFXDIR)/normal.gbapal: $(CHERRIMGFXDIR)/normal/normal.gbapal \
$(CHERRIMGFXDIR)/sunshine/normal.gbapal
@cat $^ >$@
$(CHERRIMGFXDIR)/shiny.gbapal: $(CHERRIMGFXDIR)/normal/shiny.gbapal \
$(CHERRIMGFXDIR)/sunshine/shiny.gbapal
@cat $^ >$@
### Castform ###
$(CASTFORMGFXDIR)/front.4bpp: $(CASTFORMGFXDIR)/normal/front.4bpp \
$(CASTFORMGFXDIR)/sunny/front.4bpp \
$(CASTFORMGFXDIR)/rainy/front.4bpp \
$(CASTFORMGFXDIR)/snowy/front.4bpp
@cat $^ >$@
$(CASTFORMGFXDIR)/back.4bpp: $(CASTFORMGFXDIR)/normal/back.4bpp \
$(CASTFORMGFXDIR)/sunny/back.4bpp \
$(CASTFORMGFXDIR)/rainy/back.4bpp \
$(CASTFORMGFXDIR)/snowy/back.4bpp
@cat $^ >$@
$(CASTFORMGFXDIR)/anim_front.4bpp: $(CASTFORMGFXDIR)/normal/anim_front.4bpp \
$(CASTFORMGFXDIR)/sunny/anim_front.4bpp \
$(CASTFORMGFXDIR)/rainy/anim_front.4bpp \
$(CASTFORMGFXDIR)/snowy/anim_front.4bpp
@cat $^ >$@
$(CASTFORMGFXDIR)/normal.gbapal: $(CASTFORMGFXDIR)/normal/normal.gbapal \
$(CASTFORMGFXDIR)/sunny/normal.gbapal \
$(CASTFORMGFXDIR)/rainy/normal.gbapal \
$(CASTFORMGFXDIR)/snowy/normal.gbapal
@cat $^ >$@
$(CASTFORMGFXDIR)/shiny.gbapal: $(CASTFORMGFXDIR)/normal/shiny.gbapal \
$(CASTFORMGFXDIR)/sunny/shiny.gbapal \
$(CASTFORMGFXDIR)/rainy/shiny.gbapal \
$(CASTFORMGFXDIR)/snowy/shiny.gbapal
@cat $^ >$@
### Tilesets ### ### Tilesets ###

View File

@ -424,4 +424,14 @@
#define NUM_NORMAL_ABILITY_SLOTS 2 #define NUM_NORMAL_ABILITY_SLOTS 2
#define NUM_HIDDEN_ABILITY_SLOTS 1 #define NUM_HIDDEN_ABILITY_SLOTS 1
// Species Flags
#define FLAG_LEGENDARY (1 << 0)
#define FLAG_MYTHICAL (1 << 1)
#define FLAG_ULTRA_BEAST (1 << 2)
#define FLAG_ALOLAN_FORM (1 << 3)
#define FLAG_GALARIAN_FORM (1 << 4)
#define FLAG_GENDER_DIFFERENCE (1 << 5)
#define LEGENDARY_PERFECT_IV_COUNT 3
#endif // GUARD_CONSTANTS_POKEMON_H #endif // GUARD_CONSTANTS_POKEMON_H

View File

@ -12,11 +12,14 @@
#define GEN_8 5 #define GEN_8 5
#endif #endif
#define P_UPDATED_TYPES GEN_8 // In Gen6+, several Pokémon were changed to be partially or fully Fairy type. #define P_UPDATED_TYPES GEN_8 // Since Gen 6, several Pokémon were changed to be partially or fully Fairy type.
#define P_UPDATED_STATS GEN_8 // Since Gen 6, Pokémon stats are updated with each passing generation. #define P_UPDATED_STATS GEN_8 // Since Gen 6, Pokémon stats are updated with each passing generation.
#define P_UPDATED_ABILITIES GEN_8 // Since Gen 6, certain Pokémon have their abilities changed. Requires BATTLE_ENGINE for Gen4+ abilities. #define P_UPDATED_ABILITIES GEN_8 // Since Gen 6, certain Pokémon have their abilities changed. Requires BATTLE_ENGINE for Gen4+ abilities.
#define P_UPDATED_EGG_GROUPS GEN_8 // Since Gen 8, certain Pokémon have gained new egg groups. #define P_UPDATED_EGG_GROUPS GEN_8 // Since Gen 8, certain Pokémon have gained new egg groups.
#define P_SHEDINJA_BALL GEN_8 // Since Gen 4, Shedinja requires a Poké Ball for its evolution. In Gen 3, Shedinja inherits Nincada's Ball. #define P_SHEDINJA_BALL GEN_8 // Since Gen 4, Shedinja requires a Poké Ball for its evolution. In Gen 3, Shedinja inherits Nincada's Ball.
#define P_LEGENDARY_PERFECT_IVS GEN_8 // Since Gen 6, Legendaries, Mythicals and Ultra Beasts found in the wild or given through gifts have at least 3 perfect IVs.
#define P_KADABRA_EVERSTONE GEN_8 // Since Gen 4, Kadabra can evolve even when holding an Everstone.
#define P_NIDORAN_M_DITTO_BREED GEN_8 // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat.
#define P_ENABLE_DEBUG TRUE // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen. #define P_ENABLE_DEBUG TRUE // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen.
@ -159,17 +162,214 @@
//FORM_ITEM_USE //FORM_ITEM_USE
#define ITEM_GRACIDEA 10125 #define ITEM_GRACIDEA 10125
// #define ITEM_REVEAL_GLASS 10126 #define ITEM_REVEAL_GLASS 10126
// #define ITEM_PRISON_BOTTLE 10127 #define ITEM_PRISON_BOTTLE 10127
#define ITEM_RED_NECTAR 10128 #define ITEM_RED_NECTAR 10128
#define ITEM_YELLOW_NECTAR 10129 #define ITEM_YELLOW_NECTAR 10129
#define ITEM_PINK_NECTAR 10130 #define ITEM_PINK_NECTAR 10130
#define ITEM_PURPLE_NECTAR 10131 #define ITEM_PURPLE_NECTAR 10131
// Held Items
#define ITEM_HONEY ITEM_NONE
#endif // ITEM_EXPANSION #endif // ITEM_EXPANSION
#ifndef BATTLE_ENGINE #ifndef BATTLE_ENGINE
#define ABILITY_MULTITYPE ABILITY_NONE // Gen 4
#define ABILITY_RKS_SYSTEM ABILITY_NONE #define ABILITY_TANGLED_FEET ABILITY_NONE
#define ABILITY_MOTOR_DRIVE ABILITY_NONE
#define ABILITY_RIVALRY ABILITY_NONE
#define ABILITY_STEADFAST ABILITY_NONE
#define ABILITY_SNOW_CLOAK ABILITY_NONE
#define ABILITY_GLUTTONY ABILITY_NONE
#define ABILITY_ANGER_POINT ABILITY_NONE
#define ABILITY_UNBURDEN ABILITY_NONE
#define ABILITY_HEATPROOF ABILITY_NONE
#define ABILITY_SIMPLE ABILITY_NONE
#define ABILITY_DRY_SKIN ABILITY_NONE
#define ABILITY_DOWNLOAD ABILITY_NONE
#define ABILITY_IRON_FIST ABILITY_NONE
#define ABILITY_POISON_HEAL ABILITY_NONE
#define ABILITY_ADAPTABILITY ABILITY_NONE
#define ABILITY_SKILL_LINK ABILITY_NONE
#define ABILITY_HYDRATION ABILITY_NONE
#define ABILITY_SOLAR_POWER ABILITY_NONE
#define ABILITY_QUICK_FEET ABILITY_NONE
#define ABILITY_NORMALIZE ABILITY_NONE
#define ABILITY_SNIPER ABILITY_NONE
#define ABILITY_MAGIC_GUARD ABILITY_NONE
#define ABILITY_NO_GUARD ABILITY_NONE
#define ABILITY_STALL ABILITY_NONE
#define ABILITY_TECHNICIAN ABILITY_NONE
#define ABILITY_LEAF_GUARD ABILITY_NONE
#define ABILITY_KLUTZ ABILITY_NONE
#define ABILITY_MOLD_BREAKER ABILITY_NONE
#define ABILITY_SUPER_LUCK ABILITY_NONE
#define ABILITY_AFTERMATH ABILITY_NONE
#define ABILITY_ANTICIPATION ABILITY_NONE
#define ABILITY_FOREWARN ABILITY_NONE
#define ABILITY_UNAWARE ABILITY_NONE
#define ABILITY_TINTED_LENS ABILITY_NONE
#define ABILITY_FILTER ABILITY_NONE
#define ABILITY_SLOW_START ABILITY_NONE
#define ABILITY_SCRAPPY ABILITY_NONE
#define ABILITY_STORM_DRAIN ABILITY_NONE
#define ABILITY_ICE_BODY ABILITY_NONE
#define ABILITY_SOLID_ROCK ABILITY_NONE
#define ABILITY_SNOW_WARNING ABILITY_NONE
#define ABILITY_HONEY_GATHER ABILITY_NONE
#define ABILITY_FRISK ABILITY_NONE
#define ABILITY_RECKLESS ABILITY_NONE
#define ABILITY_MULTITYPE ABILITY_NONE
#define ABILITY_FLOWER_GIFT ABILITY_NONE
#define ABILITY_BAD_DREAMS ABILITY_NONE
// Gen 5
#define ABILITY_PICKPOCKET ABILITY_NONE
#define ABILITY_SHEER_FORCE ABILITY_NONE
#define ABILITY_CONTRARY ABILITY_NONE
#define ABILITY_UNNERVE ABILITY_NONE
#define ABILITY_DEFIANT ABILITY_NONE
#define ABILITY_DEFEATIST ABILITY_NONE
#define ABILITY_CURSED_BODY ABILITY_NONE
#define ABILITY_HEALER ABILITY_NONE
#define ABILITY_FRIEND_GUARD ABILITY_NONE
#define ABILITY_WEAK_ARMOR ABILITY_NONE
#define ABILITY_HEAVY_METAL ABILITY_NONE
#define ABILITY_LIGHT_METAL ABILITY_NONE
#define ABILITY_MULTISCALE ABILITY_NONE
#define ABILITY_TOXIC_BOOST ABILITY_NONE
#define ABILITY_FLARE_BOOST ABILITY_NONE
#define ABILITY_HARVEST ABILITY_NONE
#define ABILITY_TELEPATHY ABILITY_NONE
#define ABILITY_MOODY ABILITY_NONE
#define ABILITY_OVERCOAT ABILITY_NONE
#define ABILITY_POISON_TOUCH ABILITY_NONE
#define ABILITY_REGENERATOR ABILITY_NONE
#define ABILITY_BIG_PECKS ABILITY_NONE
#define ABILITY_SAND_RUSH ABILITY_NONE
#define ABILITY_WONDER_SKIN ABILITY_NONE
#define ABILITY_ANALYTIC ABILITY_NONE
#define ABILITY_ILLUSION ABILITY_NONE
#define ABILITY_IMPOSTER ABILITY_NONE
#define ABILITY_INFILTRATOR ABILITY_NONE
#define ABILITY_MUMMY ABILITY_NONE
#define ABILITY_MOXIE ABILITY_NONE
#define ABILITY_JUSTIFIED ABILITY_NONE
#define ABILITY_RATTLED ABILITY_NONE
#define ABILITY_MAGIC_BOUNCE ABILITY_NONE
#define ABILITY_SAP_SIPPER ABILITY_NONE
#define ABILITY_PRANKSTER ABILITY_NONE
#define ABILITY_SAND_FORCE ABILITY_NONE
#define ABILITY_IRON_BARBS ABILITY_NONE
#define ABILITY_ZEN_MODE ABILITY_NONE
#define ABILITY_VICTORY_STAR ABILITY_NONE
#define ABILITY_TURBOBLAZE ABILITY_NONE
#define ABILITY_TERAVOLT ABILITY_NONE
// Gen 6
#define ABILITY_AROMA_VEIL ABILITY_NONE
#define ABILITY_FLOWER_VEIL ABILITY_NONE
#define ABILITY_CHEEK_POUCH ABILITY_NONE
#define ABILITY_PROTEAN ABILITY_NONE
#define ABILITY_FUR_COAT ABILITY_NONE
#define ABILITY_MAGICIAN ABILITY_NONE
#define ABILITY_BULLETPROOF ABILITY_NONE
#define ABILITY_COMPETITIVE ABILITY_NONE
#define ABILITY_STRONG_JAW ABILITY_NONE
#define ABILITY_REFRIGERATE ABILITY_NONE
#define ABILITY_SWEET_VEIL ABILITY_NONE
#define ABILITY_STANCE_CHANGE ABILITY_NONE
#define ABILITY_GALE_WINGS ABILITY_NONE
#define ABILITY_MEGA_LAUNCHER ABILITY_NONE
#define ABILITY_GRASS_PELT ABILITY_NONE
#define ABILITY_SYMBIOSIS ABILITY_NONE
#define ABILITY_TOUGH_CLAWS ABILITY_NONE
#define ABILITY_PIXILATE ABILITY_NONE
#define ABILITY_GOOEY ABILITY_NONE
#define ABILITY_AERILATE ABILITY_NONE
#define ABILITY_PARENTAL_BOND ABILITY_NONE
#define ABILITY_DARK_AURA ABILITY_NONE
#define ABILITY_FAIRY_AURA ABILITY_NONE
#define ABILITY_AURA_BREAK ABILITY_NONE
#define ABILITY_PRIMORDIAL_SEA ABILITY_NONE
#define ABILITY_DESOLATE_LAND ABILITY_NONE
#define ABILITY_DELTA_STREAM ABILITY_NONE
// Gen 7
#define ABILITY_STAMINA ABILITY_NONE
#define ABILITY_WIMP_OUT ABILITY_NONE
#define ABILITY_EMERGENCY_EXIT ABILITY_NONE
#define ABILITY_WATER_COMPACTION ABILITY_NONE
#define ABILITY_MERCILESS ABILITY_NONE
#define ABILITY_SHIELDS_DOWN ABILITY_NONE
#define ABILITY_STAKEOUT ABILITY_NONE
#define ABILITY_WATER_BUBBLE ABILITY_NONE
#define ABILITY_STEELWORKER ABILITY_NONE
#define ABILITY_BERSERK ABILITY_NONE
#define ABILITY_SLUSH_RUSH ABILITY_NONE
#define ABILITY_LONG_REACH ABILITY_NONE
#define ABILITY_LIQUID_VOICE ABILITY_NONE
#define ABILITY_TRIAGE ABILITY_NONE
#define ABILITY_GALVANIZE ABILITY_NONE
#define ABILITY_SURGE_SURFER ABILITY_NONE
#define ABILITY_SCHOOLING ABILITY_NONE
#define ABILITY_DISGUISE ABILITY_NONE
#define ABILITY_BATTLE_BOND ABILITY_NONE
#define ABILITY_POWER_CONSTRUCT ABILITY_NONE
#define ABILITY_CORROSION ABILITY_NONE
#define ABILITY_COMATOSE ABILITY_NONE
#define ABILITY_QUEENLY_MAJESTY ABILITY_NONE
#define ABILITY_INNARDS_OUT ABILITY_NONE
#define ABILITY_DANCER ABILITY_NONE
#define ABILITY_BATTERY ABILITY_NONE
#define ABILITY_FLUFFY ABILITY_NONE
#define ABILITY_DAZZLING ABILITY_NONE
#define ABILITY_SOUL_HEART ABILITY_NONE
#define ABILITY_TANGLING_HAIR ABILITY_NONE
#define ABILITY_RECEIVER ABILITY_NONE
#define ABILITY_POWER_OF_ALCHEMY ABILITY_NONE
#define ABILITY_BEAST_BOOST ABILITY_NONE
#define ABILITY_RKS_SYSTEM ABILITY_NONE
#define ABILITY_ELECTRIC_SURGE ABILITY_NONE
#define ABILITY_PSYCHIC_SURGE ABILITY_NONE
#define ABILITY_MISTY_SURGE ABILITY_NONE
#define ABILITY_GRASSY_SURGE ABILITY_NONE
#define ABILITY_FULL_METAL_BODY ABILITY_NONE
#define ABILITY_SHADOW_SHIELD ABILITY_NONE
#define ABILITY_PRISM_ARMOR ABILITY_NONE
#define ABILITY_NEUROFORCE ABILITY_NONE
// Gen 8
#define ABILITY_INTREPID_SWORD ABILITY_NONE
#define ABILITY_DAUNTLESS_SHIELD ABILITY_NONE
#define ABILITY_LIBERO ABILITY_NONE
#define ABILITY_BALL_FETCH ABILITY_NONE
#define ABILITY_COTTON_DOWN ABILITY_NONE
#define ABILITY_PROPELLER_TAIL ABILITY_NONE
#define ABILITY_MIRROR_ARMOR ABILITY_NONE
#define ABILITY_GULP_MISSILE ABILITY_NONE
#define ABILITY_STALWART ABILITY_NONE
#define ABILITY_STEAM_ENGINE ABILITY_NONE
#define ABILITY_PUNK_ROCK ABILITY_NONE
#define ABILITY_SAND_SPIT ABILITY_NONE
#define ABILITY_ICE_SCALES ABILITY_NONE
#define ABILITY_RIPEN ABILITY_NONE
#define ABILITY_ICE_FACE ABILITY_NONE
#define ABILITY_POWER_SPOT ABILITY_NONE
#define ABILITY_MIMICRY ABILITY_NONE
#define ABILITY_SCREEN_CLEANER ABILITY_NONE
#define ABILITY_STEELY_SPIRIT ABILITY_NONE
#define ABILITY_PERISH_BODY ABILITY_NONE
#define ABILITY_WANDERING_SPIRIT ABILITY_NONE
#define ABILITY_GORILLA_TACTICS ABILITY_NONE
#define ABILITY_NEUTRALIZING_GAS ABILITY_NONE
#define ABILITY_PASTEL_VEIL ABILITY_NONE
#define ABILITY_HUNGER_SWITCH ABILITY_NONE
#define ABILITY_QUICK_DRAW ABILITY_NONE
#define ABILITY_UNSEEN_FIST ABILITY_NONE
#define ABILITY_CURIOUS_MEDICINE ABILITY_NONE
#define ABILITY_TRANSISTOR ABILITY_NONE
#define ABILITY_DRAGONS_MAW ABILITY_NONE
#define ABILITY_CHILLING_NEIGH ABILITY_NONE
#define ABILITY_GRIM_NEIGH ABILITY_NONE
#define ABILITY_AS_ONE_ICE_RIDER ABILITY_NONE
#define ABILITY_AS_ONE_SHADOW_RIDER ABILITY_NONE
#endif // BATTLE_ENGINE #endif // BATTLE_ENGINE
#endif // GUARD_CONSTANTS_POKEMON_CONFIG_H #endif // GUARD_CONSTANTS_POKEMON_CONFIG_H

View File

@ -1344,12 +1344,4 @@
#define SPECIES_EGG SPECIES_CALYREX_SHADOW_RIDER + 1 #define SPECIES_EGG SPECIES_CALYREX_SHADOW_RIDER + 1
#define NUM_SPECIES SPECIES_EGG #define NUM_SPECIES SPECIES_EGG
// Species Flags
#define FLAG_LEGENDARY (1 << 0)
#define FLAG_MYTHICAL (1 << 1)
#define FLAG_ULTRA_BEAST (1 << 2)
#define FLAG_ALOLAN_FORM (1 << 3)
#define FLAG_GALARIAN_FORM (1 << 4)
#define FLAG_GENDER_DIFFERENCE (1 << 5)
#endif // GUARD_CONSTANTS_SPECIES_H #endif // GUARD_CONSTANTS_SPECIES_H

View File

@ -5856,8 +5856,8 @@ extern const u8 gMonIcon_ZacianCrownedSword[];
extern const u8 gMonIcon_ZamazentaCrownedShield[]; extern const u8 gMonIcon_ZamazentaCrownedShield[];
extern const u8 gMonIcon_EternatusEternamax[]; extern const u8 gMonIcon_EternatusEternamax[];
extern const u8 gMonIcon_ZarudeDada[]; extern const u8 gMonIcon_ZarudeDada[];
//extern const u8 gMonIcon_CalyrexIceRider[]; extern const u8 gMonIcon_CalyrexIceRider[];
//extern const u8 gMonIcon_CalyrexShadowRider[]; extern const u8 gMonIcon_CalyrexShadowRider[];
extern const u8 gMonIcon_Egg[]; extern const u8 gMonIcon_Egg[];
extern const u8 gMonFootprint_QuestionMark[]; extern const u8 gMonFootprint_QuestionMark[];

View File

@ -393,7 +393,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
u8 *UseStatIncreaseItem(u16 itemId); u8 *UseStatIncreaseItem(u16 itemId);
u8 GetNature(struct Pokemon *mon); u8 GetNature(struct Pokemon *mon);
u8 GetNatureFromPersonality(u32 personality); u8 GetNatureFromPersonality(u32 personality);
u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem, u16 tradePartnerSpecies); u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem, struct Pokemon *tradePartner);
u16 HoennPokedexNumToSpecies(u16 hoennNum); u16 HoennPokedexNumToSpecies(u16 hoennNum);
u16 NationalPokedexNumToSpecies(u16 nationalNum); u16 NationalPokedexNumToSpecies(u16 nationalNum);
u16 NationalToHoennOrder(u16 nationalNum); u16 NationalToHoennOrder(u16 nationalNum);

View File

@ -5200,8 +5200,7 @@ static void TrySpecialEvolution(void) // Attempts to perform non-level related b
#ifndef POKEMON_EXPANSION #ifndef POKEMON_EXPANSION
u16 species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_BATTLE_SPECIAL, i); u16 species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_BATTLE_SPECIAL, i);
#else #else
//Temp u16 species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_BATTLE_SPECIAL, i, NULL);
u16 species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_BATTLE_SPECIAL, i, 0);
#endif #endif
if (species != SPECIES_NONE && !(sTriedEvolving & gBitTable[i])) if (species != SPECIES_NONE && !(sTriedEvolving & gBitTable[i]))
{ {
@ -5232,7 +5231,7 @@ static void TryEvolvePokemon(void)
levelUpBits &= ~(gBitTable[i]); levelUpBits &= ~(gBitTable[i]);
gLeveledUpInBattle = levelUpBits; gLeveledUpInBattle = levelUpBits;
species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_NORMAL, levelUpBits, SPECIES_NONE); species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_NORMAL, levelUpBits, NULL);
if (species != SPECIES_NONE) if (species != SPECIES_NONE)
{ {
FreeAllWindowBuffers(); FreeAllWindowBuffers();

View File

@ -5788,8 +5788,8 @@ const u8 gMonIcon_ZacianCrownedSword[] = INCBIN_U8("graphics/pokemon/zacian/crow
const u8 gMonIcon_ZamazentaCrownedShield[] = INCBIN_U8("graphics/pokemon/zamazenta/crowned_shield/icon.4bpp"); const u8 gMonIcon_ZamazentaCrownedShield[] = INCBIN_U8("graphics/pokemon/zamazenta/crowned_shield/icon.4bpp");
const u8 gMonIcon_EternatusEternamax[] = INCBIN_U8("graphics/pokemon/eternatus/eternamax/icon.4bpp"); const u8 gMonIcon_EternatusEternamax[] = INCBIN_U8("graphics/pokemon/eternatus/eternamax/icon.4bpp");
const u8 gMonIcon_ZarudeDada[] = INCBIN_U8("graphics/pokemon/zarude/dada/icon.4bpp"); const u8 gMonIcon_ZarudeDada[] = INCBIN_U8("graphics/pokemon/zarude/dada/icon.4bpp");
//const u8 gMonIcon_CalyrexIceRider[] = INCBIN_U8("graphics/pokemon/calyrex/ice_rider/icon.4bpp"); const u8 gMonIcon_CalyrexIceRider[] = INCBIN_U8("graphics/pokemon/calyrex/ice_rider/icon.4bpp");
//const u8 gMonIcon_CalyrexShadowRider[] = INCBIN_U8("graphics/pokemon/calyrex/shadow_rider/icon.4bpp"); const u8 gMonIcon_CalyrexShadowRider[] = INCBIN_U8("graphics/pokemon/calyrex/shadow_rider/icon.4bpp");
const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/egg/icon.4bpp"); const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/egg/icon.4bpp");
const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/footprint.1bpp"); const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/footprint.1bpp");

View File

@ -467,15 +467,15 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
[SPECIES_YAMPER] = {{EVO_LEVEL, 25, SPECIES_BOLTUND}}, [SPECIES_YAMPER] = {{EVO_LEVEL, 25, SPECIES_BOLTUND}},
[SPECIES_ROLYCOLY] = {{EVO_LEVEL, 18, SPECIES_CARKOL}}, [SPECIES_ROLYCOLY] = {{EVO_LEVEL, 18, SPECIES_CARKOL}},
[SPECIES_CARKOL] = {{EVO_LEVEL, 34, SPECIES_COALOSSAL}}, [SPECIES_CARKOL] = {{EVO_LEVEL, 34, SPECIES_COALOSSAL}},
[SPECIES_APPLIN] = {{EVO_ITEM, ITEM_NONE, SPECIES_FLAPPLE}, [SPECIES_APPLIN] = {{EVO_ITEM, ITEM_TART_APPLE, SPECIES_FLAPPLE},
{EVO_ITEM, ITEM_NONE, SPECIES_APPLETUN}}, {EVO_ITEM, ITEM_SWEET_APPLE, SPECIES_APPLETUN}},
[SPECIES_SILICOBRA] = {{EVO_LEVEL, 36, SPECIES_SANDACONDA}}, [SPECIES_SILICOBRA] = {{EVO_LEVEL, 36, SPECIES_SANDACONDA}},
[SPECIES_ARROKUDA] = {{EVO_LEVEL, 26, SPECIES_BARRASKEWDA}}, [SPECIES_ARROKUDA] = {{EVO_LEVEL, 26, SPECIES_BARRASKEWDA}},
[SPECIES_TOXEL] = {{EVO_LEVEL_NATURE_AMPED, 30, SPECIES_TOXTRICITY}, [SPECIES_TOXEL] = {{EVO_LEVEL_NATURE_AMPED, 30, SPECIES_TOXTRICITY},
{EVO_LEVEL_NATURE_LOW_KEY, 30, SPECIES_TOXTRICITY_LOW_KEY}}, {EVO_LEVEL_NATURE_LOW_KEY, 30, SPECIES_TOXTRICITY_LOW_KEY}},
[SPECIES_SIZZLIPEDE] = {{EVO_LEVEL, 28, SPECIES_CENTISKORCH}}, [SPECIES_SIZZLIPEDE] = {{EVO_LEVEL, 28, SPECIES_CENTISKORCH}},
[SPECIES_CLOBBOPUS] = {{EVO_MOVE, MOVE_TAUNT, SPECIES_GRAPPLOCT}}, [SPECIES_CLOBBOPUS] = {{EVO_MOVE, MOVE_TAUNT, SPECIES_GRAPPLOCT}},
[SPECIES_SINISTEA] = {{EVO_ITEM, ITEM_NONE, SPECIES_POLTEAGEIST}}, [SPECIES_SINISTEA] = {{EVO_ITEM, ITEM_CRACKED_POT, SPECIES_POLTEAGEIST}},
[SPECIES_HATENNA] = {{EVO_LEVEL, 32, SPECIES_HATTREM}}, [SPECIES_HATENNA] = {{EVO_LEVEL, 32, SPECIES_HATTREM}},
[SPECIES_HATTREM] = {{EVO_LEVEL, 42, SPECIES_HATTERENE}}, [SPECIES_HATTREM] = {{EVO_LEVEL, 42, SPECIES_HATTERENE}},
[SPECIES_IMPIDIMP] = {{EVO_LEVEL, 32, SPECIES_MORGREM}}, [SPECIES_IMPIDIMP] = {{EVO_LEVEL, 32, SPECIES_MORGREM}},
@ -493,8 +493,8 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
[SPECIES_CUFANT] = {{EVO_LEVEL, 34, SPECIES_COPPERAJAH}}, [SPECIES_CUFANT] = {{EVO_LEVEL, 34, SPECIES_COPPERAJAH}},
[SPECIES_DREEPY] = {{EVO_LEVEL, 50, SPECIES_DRAKLOAK}}, [SPECIES_DREEPY] = {{EVO_LEVEL, 50, SPECIES_DRAKLOAK}},
[SPECIES_DRAKLOAK] = {{EVO_LEVEL, 60, SPECIES_DRAGAPULT}}, [SPECIES_DRAKLOAK] = {{EVO_LEVEL, 60, SPECIES_DRAGAPULT}},
[SPECIES_KUBFU] = {{EVO_LEVEL, 0, SPECIES_URSHIFU}, [SPECIES_KUBFU] = {{EVO_DARK_SCROLL, 0, SPECIES_URSHIFU},
{EVO_LEVEL, 0, SPECIES_URSHIFU_RAPID_STRIKE_STYLE}}, {EVO_WATER_SCROLL, 0, SPECIES_URSHIFU_RAPID_STRIKE_STYLE}},
[SPECIES_RATTATA_ALOLAN] = {{EVO_LEVEL_NIGHT, 20, SPECIES_RATICATE_ALOLAN}}, [SPECIES_RATTATA_ALOLAN] = {{EVO_LEVEL_NIGHT, 20, SPECIES_RATICATE_ALOLAN}},
[SPECIES_SANDSHREW_ALOLAN] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_SANDSLASH_ALOLAN}}, [SPECIES_SANDSHREW_ALOLAN] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_SANDSLASH_ALOLAN}},
[SPECIES_VULPIX_ALOLAN] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_NINETALES_ALOLAN}}, [SPECIES_VULPIX_ALOLAN] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_NINETALES_ALOLAN}},
@ -505,15 +505,15 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
[SPECIES_GRIMER_ALOLAN] = {{EVO_LEVEL, 38, SPECIES_MUK_ALOLAN}}, [SPECIES_GRIMER_ALOLAN] = {{EVO_LEVEL, 38, SPECIES_MUK_ALOLAN}},
[SPECIES_MEOWTH_GALARIAN] = {{EVO_LEVEL, 28, SPECIES_PERRSERKER}}, [SPECIES_MEOWTH_GALARIAN] = {{EVO_LEVEL, 28, SPECIES_PERRSERKER}},
[SPECIES_PONYTA_GALARIAN] = {{EVO_LEVEL, 40, SPECIES_RAPIDASH_GALARIAN}}, [SPECIES_PONYTA_GALARIAN] = {{EVO_LEVEL, 40, SPECIES_RAPIDASH_GALARIAN}},
[SPECIES_SLOWPOKE_GALARIAN] = {{EVO_ITEM, ITEM_NONE, SPECIES_SLOWBRO_GALARIAN}, [SPECIES_SLOWPOKE_GALARIAN] = {{EVO_ITEM, ITEM_GALARICA_CUFF, SPECIES_SLOWBRO_GALARIAN},
{EVO_ITEM, ITEM_NONE, SPECIES_SLOWKING_GALARIAN}}, {EVO_ITEM, ITEM_GALARICA_WREATH, SPECIES_SLOWKING_GALARIAN}},
[SPECIES_FARFETCHD_GALARIAN] = {{EVO_LEVEL, 0, SPECIES_SIRFETCHD}}, [SPECIES_FARFETCHD_GALARIAN] = {{EVO_CRITICAL_HITS, 3, SPECIES_SIRFETCHD}},
[SPECIES_MR_MIME_GALARIAN] = {{EVO_LEVEL, 42, SPECIES_MR_RIME}}, [SPECIES_MR_MIME_GALARIAN] = {{EVO_LEVEL, 42, SPECIES_MR_RIME}},
[SPECIES_CORSOLA_GALARIAN] = {{EVO_LEVEL, 38, SPECIES_CURSOLA}}, [SPECIES_CORSOLA_GALARIAN] = {{EVO_LEVEL, 38, SPECIES_CURSOLA}},
[SPECIES_ZIGZAGOON_GALARIAN] = {{EVO_LEVEL, 20, SPECIES_LINOONE_GALARIAN}}, [SPECIES_ZIGZAGOON_GALARIAN] = {{EVO_LEVEL, 20, SPECIES_LINOONE_GALARIAN}},
[SPECIES_LINOONE_GALARIAN] = {{EVO_LEVEL_NIGHT, 35, SPECIES_OBSTAGOON}}, [SPECIES_LINOONE_GALARIAN] = {{EVO_LEVEL_NIGHT, 35, SPECIES_OBSTAGOON}},
[SPECIES_DARUMAKA_GALARIAN] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_DARMANITAN_GALARIAN}}, [SPECIES_DARUMAKA_GALARIAN] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_DARMANITAN_GALARIAN}},
[SPECIES_YAMASK_GALARIAN] = {{EVO_LEVEL, 0, SPECIES_RUNERIGUS}}, [SPECIES_YAMASK_GALARIAN] = {{EVO_SCRIPT_TRIGGER_DMG, 49, SPECIES_RUNERIGUS}},
[SPECIES_BURMY_SANDY_CLOAK] = {{EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_SANDY_CLOAK}, [SPECIES_BURMY_SANDY_CLOAK] = {{EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_SANDY_CLOAK},
{EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}}, {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}},
[SPECIES_BURMY_TRASH_CLOAK] = {{EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_TRASH_CLOAK}, [SPECIES_BURMY_TRASH_CLOAK] = {{EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_TRASH_CLOAK},
@ -534,5 +534,5 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
[SPECIES_PUMPKABOO_LARGE] = {{EVO_TRADE, 0, SPECIES_GOURGEIST_LARGE}}, [SPECIES_PUMPKABOO_LARGE] = {{EVO_TRADE, 0, SPECIES_GOURGEIST_LARGE}},
[SPECIES_PUMPKABOO_SUPER] = {{EVO_TRADE, 0, SPECIES_GOURGEIST_SUPER}}, [SPECIES_PUMPKABOO_SUPER] = {{EVO_TRADE, 0, SPECIES_GOURGEIST_SUPER}},
[SPECIES_ROCKRUFF_OWN_TEMPO] = {{EVO_LEVEL_DUSK, 25, SPECIES_LYCANROC_DUSK}}, [SPECIES_ROCKRUFF_OWN_TEMPO] = {{EVO_LEVEL_DUSK, 25, SPECIES_LYCANROC_DUSK}},
[SPECIES_SINISTEA_ANTIQUE] = {{EVO_ITEM, ITEM_NONE, SPECIES_POLTEAGEIST_ANTIQUE}}, [SPECIES_SINISTEA_ANTIQUE] = {{EVO_ITEM, ITEM_CHIPPED_POT, SPECIES_POLTEAGEIST_ANTIQUE}},
}; };

View File

@ -3,7 +3,7 @@ const struct FormChange *const gFormChangeTablePointers[NUM_SPECIES] =
[SPECIES_GIRATINA] = sGiratinaFormChangeTable, [SPECIES_GIRATINA] = sGiratinaFormChangeTable,
[SPECIES_GIRATINA_ORIGIN] = sGiratinaFormChangeTable, [SPECIES_GIRATINA_ORIGIN] = sGiratinaFormChangeTable,
[SPECIES_SHAYMIN] = sShayminFormChangeTable, [SPECIES_SHAYMIN] = sShayminFormChangeTable,
[SPECIES_SHAYMIN_SKY] = sShayminSkyFormChangeTable, [SPECIES_SHAYMIN_SKY] = sShayminFormChangeTable,
[SPECIES_ARCEUS] = sArceusFormChangeTable, [SPECIES_ARCEUS] = sArceusFormChangeTable,
[SPECIES_ARCEUS_FIGHTING] = sArceusFormChangeTable, [SPECIES_ARCEUS_FIGHTING] = sArceusFormChangeTable,
[SPECIES_ARCEUS_FLYING] = sArceusFormChangeTable, [SPECIES_ARCEUS_FLYING] = sArceusFormChangeTable,

View File

@ -1,4 +1,8 @@
/* /*
For cycling between forms with the same method and parameters but different target species (eg. Tornadus using the
Reveal Glass to change between its two forms), a separate form change table is required for each form.
Otherwise, only the last form change on the table will trigger.
FORM_ITEM_HOLD: FORM_ITEM_HOLD:
Form change activates when the item is given to or taken from the selected Pokémon. Form change activates when the item is given to or taken from the selected Pokémon.
param1 = item to hold param1 = item to hold
@ -47,10 +51,6 @@ static const struct FormChange sGiratinaFormChangeTable[] = {
static const struct FormChange sShayminFormChangeTable[] = { static const struct FormChange sShayminFormChangeTable[] = {
{FORM_ITEM_USE_TIME, SPECIES_SHAYMIN_SKY, ITEM_GRACIDEA, DAY}, {FORM_ITEM_USE_TIME, SPECIES_SHAYMIN_SKY, ITEM_GRACIDEA, DAY},
{FORM_CHANGE_END},
};
static const struct FormChange sShayminSkyFormChangeTable[] = {
{FORM_WITHDRAW, SPECIES_SHAYMIN}, {FORM_WITHDRAW, SPECIES_SHAYMIN},
{FORM_CHANGE_END}, {FORM_CHANGE_END},
}; };
@ -95,32 +95,32 @@ static const struct FormChange sArceusFormChangeTable[] = {
}; };
static const struct FormChange sTornadusFormChangeTable[] = { static const struct FormChange sTornadusFormChangeTable[] = {
// {FORM_ITEM_USE, SPECIES_TORNADUS_THERIAN, ITEM_REVEAL_GLASS}, {FORM_ITEM_USE, SPECIES_TORNADUS_THERIAN, ITEM_REVEAL_GLASS},
{FORM_CHANGE_END}, {FORM_CHANGE_END},
}; };
static const struct FormChange sTornadusTherianFormChangeTable[] = { static const struct FormChange sTornadusTherianFormChangeTable[] = {
// {FORM_ITEM_USE, SPECIES_TORNADUS, ITEM_REVEAL_GLASS}, {FORM_ITEM_USE, SPECIES_TORNADUS, ITEM_REVEAL_GLASS},
{FORM_CHANGE_END}, {FORM_CHANGE_END},
}; };
static const struct FormChange sThundurusFormChangeTable[] = { static const struct FormChange sThundurusFormChangeTable[] = {
// {FORM_ITEM_USE, SPECIES_THUNDURUS_THERIAN, ITEM_REVEAL_GLASS}, {FORM_ITEM_USE, SPECIES_THUNDURUS_THERIAN, ITEM_REVEAL_GLASS},
{FORM_CHANGE_END}, {FORM_CHANGE_END},
}; };
static const struct FormChange sThundurusTherianFormChangeTable[] = { static const struct FormChange sThundurusTherianFormChangeTable[] = {
// {FORM_ITEM_USE, SPECIES_THUNDURUS, ITEM_REVEAL_GLASS}, {FORM_ITEM_USE, SPECIES_THUNDURUS, ITEM_REVEAL_GLASS},
{FORM_CHANGE_END}, {FORM_CHANGE_END},
}; };
static const struct FormChange sLandorusFormChangeTable[] = { static const struct FormChange sLandorusFormChangeTable[] = {
// {FORM_ITEM_USE, SPECIES_LANDORUS_THERIAN, ITEM_REVEAL_GLASS}, {FORM_ITEM_USE, SPECIES_LANDORUS_THERIAN, ITEM_REVEAL_GLASS},
{FORM_CHANGE_END}, {FORM_CHANGE_END},
}; };
static const struct FormChange sLandorusTherianFormChangeTable[] = { static const struct FormChange sLandorusTherianFormChangeTable[] = {
// {FORM_ITEM_USE, SPECIES_LANDORUS, ITEM_REVEAL_GLASS}, {FORM_ITEM_USE, SPECIES_LANDORUS, ITEM_REVEAL_GLASS},
{FORM_CHANGE_END}, {FORM_CHANGE_END},
}; };

View File

@ -927,6 +927,7 @@ const u16 gPokedexOrder_Alphabetical[] =
const u16 gPokedexOrder_Weight[] = const u16 gPokedexOrder_Weight[] =
{ {
// 0.0 - 21.8 lbs / 0.0 - 9.9 kg
NATIONAL_DEX_GASTLY, NATIONAL_DEX_GASTLY,
NATIONAL_DEX_HAUNTER, NATIONAL_DEX_HAUNTER,
NATIONAL_DEX_FLABEBE, NATIONAL_DEX_FLABEBE,
@ -1195,7 +1196,7 @@ const u16 gPokedexOrder_Weight[] =
NATIONAL_DEX_VULPIX, NATIONAL_DEX_VULPIX,
//NATIONAL_DEX_VULPIX, // Alolan Form //NATIONAL_DEX_VULPIX, // Alolan Form
NATIONAL_DEX_TEPIG, NATIONAL_DEX_TEPIG,
// 22.0 - 44.1 lbs / 10.0 - 20.0 kg
NATIONAL_DEX_KAKUNA, NATIONAL_DEX_KAKUNA,
NATIONAL_DEX_MAGIKARP, NATIONAL_DEX_MAGIKARP,
NATIONAL_DEX_SILCOON, NATIONAL_DEX_SILCOON,
@ -1339,7 +1340,7 @@ const u16 gPokedexOrder_Weight[] =
NATIONAL_DEX_GEODUDE, NATIONAL_DEX_GEODUDE,
NATIONAL_DEX_BIDOOF, NATIONAL_DEX_BIDOOF,
NATIONAL_DEX_MIENFOO, NATIONAL_DEX_MIENFOO,
// 44.3 - 54.9 lbs / 20.1 - 24.9 kg
NATIONAL_DEX_REUNICLUS, NATIONAL_DEX_REUNICLUS,
NATIONAL_DEX_KIRLIA, NATIONAL_DEX_KIRLIA,
NATIONAL_DEX_RIOLU, NATIONAL_DEX_RIOLU,
@ -1392,7 +1393,7 @@ const u16 gPokedexOrder_Weight[] =
NATIONAL_DEX_DEWOTT, NATIONAL_DEX_DEWOTT,
NATIONAL_DEX_TALONFLAME, NATIONAL_DEX_TALONFLAME,
NATIONAL_DEX_STARAPTOR, NATIONAL_DEX_STARAPTOR,
// 55.1 - 110.0 lbs / 25.0 - 49.9 kg
NATIONAL_DEX_SEADRA, NATIONAL_DEX_SEADRA,
NATIONAL_DEX_FLAREON, NATIONAL_DEX_FLAREON,
NATIONAL_DEX_CROCONAW, NATIONAL_DEX_CROCONAW,
@ -1592,7 +1593,7 @@ const u16 gPokedexOrder_Weight[] =
//NATIONAL_DEX_HOUNDOOM, // Mega //NATIONAL_DEX_HOUNDOOM, // Mega
NATIONAL_DEX_HIPPOPOTAS, NATIONAL_DEX_HIPPOPOTAS,
NATIONAL_DEX_HITMONLEE, NATIONAL_DEX_HITMONLEE,
// 110.2 - 132.1 lbs / 50.0 - 59.9 kg
NATIONAL_DEX_ZWEILOUS, NATIONAL_DEX_ZWEILOUS,
NATIONAL_DEX_DRAGAPULT, NATIONAL_DEX_DRAGAPULT,
NATIONAL_DEX_HITMONCHAN, NATIONAL_DEX_HITMONCHAN,
@ -1649,7 +1650,7 @@ const u16 gPokedexOrder_Weight[] =
//NATIONAL_DEX_PINSIR, // Mega //NATIONAL_DEX_PINSIR, // Mega
NATIONAL_DEX_AERODACTYL, NATIONAL_DEX_AERODACTYL,
NATIONAL_DEX_SHIFTRY, NATIONAL_DEX_SHIFTRY,
// 132.3 - 218.0 lbs / 60.0 - 98.9 kg
NATIONAL_DEX_NIDOQUEEN, NATIONAL_DEX_NIDOQUEEN,
NATIONAL_DEX_MAGNETON, NATIONAL_DEX_MAGNETON,
NATIONAL_DEX_KINGLER, NATIONAL_DEX_KINGLER,
@ -1767,9 +1768,9 @@ const u16 gPokedexOrder_Weight[] =
NATIONAL_DEX_NOSEPASS, NATIONAL_DEX_NOSEPASS,
NATIONAL_DEX_GROTLE, NATIONAL_DEX_GROTLE,
//NATIONAL_DEX_MAROWAK, // Alolan Form, Totem-sized //NATIONAL_DEX_MAROWAK, // Alolan Form, Totem-sized
// 218.3 - 220.2 lbs / 99.0 - 99.9 kg
NATIONAL_DEX_BERGMITE, NATIONAL_DEX_BERGMITE,
// 220.5 - 225.5 lbs / 100.0 - 102.3 kg
NATIONAL_DEX_VENUSAUR, NATIONAL_DEX_VENUSAUR,
//NATIONAL_DEX_KANGASKHAN, // Mega //NATIONAL_DEX_KANGASKHAN, // Mega
NATIONAL_DEX_TROPIUS, NATIONAL_DEX_TROPIUS,
@ -1781,7 +1782,7 @@ const u16 gPokedexOrder_Weight[] =
//NATIONAL_DEX_BLASTOISE, // Mega //NATIONAL_DEX_BLASTOISE, // Mega
//NATIONAL_DEX_SWAMPERT, // Mega //NATIONAL_DEX_SWAMPERT, // Mega
NATIONAL_DEX_BOLDORE, NATIONAL_DEX_BOLDORE,
// 225.8 - 330.5 lbs / 102.4 - 149.9 kg
NATIONAL_DEX_RAMPARDOS, NATIONAL_DEX_RAMPARDOS,
NATIONAL_DEX_SALAMENCE, NATIONAL_DEX_SALAMENCE,
NATIONAL_DEX_GRAVELER, NATIONAL_DEX_GRAVELER,
@ -1838,7 +1839,7 @@ const u16 gPokedexOrder_Weight[] =
//NATIONAL_DEX_VIKAVOLT, // Totem-sized //NATIONAL_DEX_VIKAVOLT, // Totem-sized
NATIONAL_DEX_CRYOGONAL, NATIONAL_DEX_CRYOGONAL,
NATIONAL_DEX_BASTIODON, NATIONAL_DEX_BASTIODON,
// 330.7 - 440.7 lbs / 150.0 - 199.9 kg
NATIONAL_DEX_EMBOAR, NATIONAL_DEX_EMBOAR,
NATIONAL_DEX_NAGANADEL, NATIONAL_DEX_NAGANADEL,
NATIONAL_DEX_ARCTOZOLT, NATIONAL_DEX_ARCTOZOLT,
@ -1866,7 +1867,7 @@ const u16 gPokedexOrder_Weight[] =
NATIONAL_DEX_VOLCANION, NATIONAL_DEX_VOLCANION,
NATIONAL_DEX_ENTEI, NATIONAL_DEX_ENTEI,
NATIONAL_DEX_HO_OH, NATIONAL_DEX_HO_OH,
// 440.9 - 451.3 lbs / 200.0 - 204.7 kg
NATIONAL_DEX_CRUSTLE, NATIONAL_DEX_CRUSTLE,
NATIONAL_DEX_VIRIZION, NATIONAL_DEX_VIRIZION,
NATIONAL_DEX_REGIDRAGO, NATIONAL_DEX_REGIDRAGO,
@ -1874,11 +1875,10 @@ const u16 gPokedexOrder_Weight[] =
NATIONAL_DEX_TYRANITAR, NATIONAL_DEX_TYRANITAR,
NATIONAL_DEX_METANG, NATIONAL_DEX_METANG,
NATIONAL_DEX_YVELTAL, NATIONAL_DEX_YVELTAL,
// 451.5 - 661.2 lbs / 204.8 - 299.9 kg
NATIONAL_DEX_REGISTEEL, NATIONAL_DEX_REGISTEEL,
NATIONAL_DEX_RAYQUAZA, NATIONAL_DEX_RAYQUAZA,
//NATIONAL_DEX_KOMMO_O, // Totem-sized //NATIONAL_DEX_KOMMO_O, // Totem-sized
NATIONAL_DEX_ONIX, NATIONAL_DEX_ONIX,
NATIONAL_DEX_DRAGONITE, NATIONAL_DEX_DRAGONITE,
NATIONAL_DEX_DHELMISE, NATIONAL_DEX_DHELMISE,
@ -1906,15 +1906,14 @@ const u16 gPokedexOrder_Weight[] =
NATIONAL_DEX_BEARTIC, NATIONAL_DEX_BEARTIC,
NATIONAL_DEX_TERRAKION, NATIONAL_DEX_TERRAKION,
NATIONAL_DEX_TYRANTRUM, NATIONAL_DEX_TYRANTRUM,
NATIONAL_DEX_RHYPERIOR, NATIONAL_DEX_RHYPERIOR,
NATIONAL_DEX_MAMOSWINE, NATIONAL_DEX_MAMOSWINE,
// 661.4 - 667.0 lbs / 300.0 - 307.1 kg
NATIONAL_DEX_GOLEM, NATIONAL_DEX_GOLEM,
NATIONAL_DEX_HIPPOWDON, NATIONAL_DEX_HIPPOWDON,
//NATIONAL_DEX_GYARADOS, // Mega //NATIONAL_DEX_GYARADOS, // Mega
NATIONAL_DEX_ZYGARDE, // 50% Forme NATIONAL_DEX_ZYGARDE, // 50% Forme
// 677.3 - 667.0 lbs / 307.2 - 359.9 kg
NATIONAL_DEX_TORTERRA, NATIONAL_DEX_TORTERRA,
NATIONAL_DEX_COALOSSAL, NATIONAL_DEX_COALOSSAL,
//NATIONAL_DEX_GOLEM, // Alolan Form //NATIONAL_DEX_GOLEM, // Alolan Form
@ -1931,13 +1930,13 @@ const u16 gPokedexOrder_Weight[] =
//NATIONAL_DEX_GLALIE, // Mega //NATIONAL_DEX_GLALIE, // Mega
NATIONAL_DEX_KYOGRE, NATIONAL_DEX_KYOGRE,
//NATIONAL_DEX_ZACIAN, // Crowned Sword //NATIONAL_DEX_ZACIAN, // Crowned Sword
// 793.7 - 902.8 lbs / 360.0 - 409.5 kg
NATIONAL_DEX_AGGRON, NATIONAL_DEX_AGGRON,
//NATIONAL_DEX_RAYQUAZA, // Mega //NATIONAL_DEX_RAYQUAZA, // Mega
//NATIONAL_DEX_AGGRON, // Mega //NATIONAL_DEX_AGGRON, // Mega
NATIONAL_DEX_WAILORD, NATIONAL_DEX_WAILORD,
NATIONAL_DEX_STEELIX, NATIONAL_DEX_STEELIX,
// 903.0 - 2204.4 lbs / 409.6 - 999.9 kg
//NATIONAL_DEX_EXEGGUTOR, // Alolan Form //NATIONAL_DEX_EXEGGUTOR, // Alolan Form
NATIONAL_DEX_REGIGIGAS, NATIONAL_DEX_REGIGIGAS,
//NATIONAL_DEX_KYOGRE, // Primal //NATIONAL_DEX_KYOGRE, // Primal
@ -1970,12 +1969,14 @@ const u16 gPokedexOrder_Weight[] =
const u16 gPokedexOrder_Height[] = const u16 gPokedexOrder_Height[] =
{ {
// 0'04" / 0.1m
NATIONAL_DEX_JOLTIK, NATIONAL_DEX_JOLTIK,
NATIONAL_DEX_FLABEBE, NATIONAL_DEX_FLABEBE,
NATIONAL_DEX_CUTIEFLY, NATIONAL_DEX_CUTIEFLY,
NATIONAL_DEX_COMFEY, NATIONAL_DEX_COMFEY,
NATIONAL_DEX_COSMOEM, NATIONAL_DEX_COSMOEM,
NATIONAL_DEX_SINISTEA, NATIONAL_DEX_SINISTEA,
// 0'08" / 0.2m
NATIONAL_DEX_DIGLETT, NATIONAL_DEX_DIGLETT,
//NATIONAL_DEX_DIGLETT, // Alolan Form //NATIONAL_DEX_DIGLETT, // Alolan Form
NATIONAL_DEX_NATU, NATIONAL_DEX_NATU,
@ -2000,7 +2001,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_APPLIN, NATIONAL_DEX_APPLIN,
NATIONAL_DEX_POLTEAGEIST, NATIONAL_DEX_POLTEAGEIST,
NATIONAL_DEX_MILCERY, NATIONAL_DEX_MILCERY,
// 1'00" / 0.3m
NATIONAL_DEX_CATERPIE, NATIONAL_DEX_CATERPIE,
NATIONAL_DEX_WEEDLE, NATIONAL_DEX_WEEDLE,
NATIONAL_DEX_PIDGEY, NATIONAL_DEX_PIDGEY,
@ -2147,7 +2148,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_TOXEL, NATIONAL_DEX_TOXEL,
NATIONAL_DEX_HATENNA, NATIONAL_DEX_HATENNA,
NATIONAL_DEX_IMPIDIMP, NATIONAL_DEX_IMPIDIMP,
// 1'08" / 0.5m
NATIONAL_DEX_SQUIRTLE, NATIONAL_DEX_SQUIRTLE,
NATIONAL_DEX_NIDORAN_M, NATIONAL_DEX_NIDORAN_M,
NATIONAL_DEX_JIGGLYPUFF, NATIONAL_DEX_JIGGLYPUFF,
@ -2217,7 +2218,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_ELDEGOSS, NATIONAL_DEX_ELDEGOSS,
NATIONAL_DEX_ARROKUDA, NATIONAL_DEX_ARROKUDA,
NATIONAL_DEX_DREEPY, NATIONAL_DEX_DREEPY,
// 2'00" / 0.6m
NATIONAL_DEX_CHARMANDER, NATIONAL_DEX_CHARMANDER,
NATIONAL_DEX_KAKUNA, NATIONAL_DEX_KAKUNA,
NATIONAL_DEX_SANDSHREW, NATIONAL_DEX_SANDSHREW,
@ -2303,7 +2304,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_CLOBBOPUS, NATIONAL_DEX_CLOBBOPUS,
NATIONAL_DEX_HATTREM, NATIONAL_DEX_HATTREM,
NATIONAL_DEX_KUBFU, NATIONAL_DEX_KUBFU,
// 2'04" / 0.7m
NATIONAL_DEX_BULBASAUR, NATIONAL_DEX_BULBASAUR,
NATIONAL_DEX_METAPOD, NATIONAL_DEX_METAPOD,
NATIONAL_DEX_RATICATE, NATIONAL_DEX_RATICATE,
@ -2355,7 +2356,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_THWACKEY, NATIONAL_DEX_THWACKEY,
NATIONAL_DEX_DRIZZILE, NATIONAL_DEX_DRIZZILE,
NATIONAL_DEX_SIZZLIPEDE, NATIONAL_DEX_SIZZLIPEDE,
// 2'07" / 0.8m
NATIONAL_DEX_RAICHU, NATIONAL_DEX_RAICHU,
NATIONAL_DEX_NIDORINA, NATIONAL_DEX_NIDORINA,
NATIONAL_DEX_ZUBAT, NATIONAL_DEX_ZUBAT,
@ -2409,6 +2410,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_MORGREM, NATIONAL_DEX_MORGREM,
NATIONAL_DEX_PERRSERKER, NATIONAL_DEX_PERRSERKER,
NATIONAL_DEX_SIRFETCHD, NATIONAL_DEX_SIRFETCHD,
// 2'11" / 0.9m
NATIONAL_DEX_NIDORINO, NATIONAL_DEX_NIDORINO,
NATIONAL_DEX_ABRA, NATIONAL_DEX_ABRA,
NATIONAL_DEX_TENTACOOL, NATIONAL_DEX_TENTACOOL,
@ -2445,7 +2447,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_LURANTIS, NATIONAL_DEX_LURANTIS,
NATIONAL_DEX_BRUXISH, NATIONAL_DEX_BRUXISH,
NATIONAL_DEX_INDEEDEE, NATIONAL_DEX_INDEEDEE,
// 3'03" / 1.0m
NATIONAL_DEX_IVYSAUR, NATIONAL_DEX_IVYSAUR,
NATIONAL_DEX_WARTORTLE, NATIONAL_DEX_WARTORTLE,
NATIONAL_DEX_BEEDRILL, NATIONAL_DEX_BEEDRILL,
@ -2516,6 +2518,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_DREDNAW, NATIONAL_DEX_DREDNAW,
NATIONAL_DEX_BOLTUND, NATIONAL_DEX_BOLTUND,
NATIONAL_DEX_CURSOLA, NATIONAL_DEX_CURSOLA,
// 3'07" / 1.1m
NATIONAL_DEX_CHARMELEON, NATIONAL_DEX_CHARMELEON,
NATIONAL_DEX_BUTTERFREE, NATIONAL_DEX_BUTTERFREE,
NATIONAL_DEX_PIDGEOTTO, NATIONAL_DEX_PIDGEOTTO,
@ -2560,6 +2563,7 @@ const u16 gPokedexOrder_Height[] =
//NATIONAL_DEX_LYCANROC, // Midnight Form //NATIONAL_DEX_LYCANROC, // Midnight Form
NATIONAL_DEX_CARKOL, NATIONAL_DEX_CARKOL,
NATIONAL_DEX_CALYREX, NATIONAL_DEX_CALYREX,
// 3'11" / 1.2m
NATIONAL_DEX_FEAROW, NATIONAL_DEX_FEAROW,
//NATIONAL_DEX_SANDSLASH, // Alolan Form //NATIONAL_DEX_SANDSLASH, // Alolan Form
NATIONAL_DEX_VILEPLUME, NATIONAL_DEX_VILEPLUME,
@ -2619,7 +2623,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_THIEVUL, NATIONAL_DEX_THIEVUL,
NATIONAL_DEX_CUFANT, NATIONAL_DEX_CUFANT,
NATIONAL_DEX_REGIELEKI, NATIONAL_DEX_REGIELEKI,
// 4'03" / 1.3m
NATIONAL_DEX_NIDOQUEEN, NATIONAL_DEX_NIDOQUEEN,
NATIONAL_DEX_CLEFABLE, NATIONAL_DEX_CLEFABLE,
NATIONAL_DEX_POLIWRATH, NATIONAL_DEX_POLIWRATH,
@ -2656,6 +2660,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_DUBWOOL, NATIONAL_DEX_DUBWOOL,
NATIONAL_DEX_BARRASKEWDA, NATIONAL_DEX_BARRASKEWDA,
NATIONAL_DEX_FROSMOTH, NATIONAL_DEX_FROSMOTH,
// 4'07" / 1.4m
//NATIONAL_DEX_BEEDRILL, // Mega //NATIONAL_DEX_BEEDRILL, // Mega
//NATIONAL_DEX_RATICATE, // Alolan Form, Totem-sized //NATIONAL_DEX_RATICATE, // Alolan Form, Totem-sized
NATIONAL_DEX_NIDOKING, NATIONAL_DEX_NIDOKING,
@ -2695,6 +2700,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_CINDERACE, NATIONAL_DEX_CINDERACE,
NATIONAL_DEX_EISCUE, NATIONAL_DEX_EISCUE,
NATIONAL_DEX_DRAKLOAK, NATIONAL_DEX_DRAKLOAK,
// 4'11" / 1.5m
NATIONAL_DEX_PIDGEOT, NATIONAL_DEX_PIDGEOT,
NATIONAL_DEX_VENOMOTH, NATIONAL_DEX_VENOMOTH,
NATIONAL_DEX_ALAKAZAM, NATIONAL_DEX_ALAKAZAM,
@ -2747,7 +2753,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_ZERAORA, NATIONAL_DEX_ZERAORA,
NATIONAL_DEX_GRIMMSNARL, NATIONAL_DEX_GRIMMSNARL,
NATIONAL_DEX_MR_RIME, NATIONAL_DEX_MR_RIME,
// 5'03" / 1.6m
NATIONAL_DEX_BLASTOISE, NATIONAL_DEX_BLASTOISE,
//NATIONAL_DEX_BLASTOISE, // Mega //NATIONAL_DEX_BLASTOISE, // Mega
NATIONAL_DEX_GOLBAT, NATIONAL_DEX_GOLBAT,
@ -2782,6 +2788,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_GRAPPLOCT, NATIONAL_DEX_GRAPPLOCT,
NATIONAL_DEX_OBSTAGOON, NATIONAL_DEX_OBSTAGOON,
NATIONAL_DEX_RUNERIGUS, NATIONAL_DEX_RUNERIGUS,
// 5'07" / 1.7m
NATIONAL_DEX_CHARIZARD, NATIONAL_DEX_CHARIZARD,
//NATIONAL_DEX_CHARIZARD, // Mega X //NATIONAL_DEX_CHARIZARD, // Mega X
//NATIONAL_DEX_CHARIZARD, // Mega Y //NATIONAL_DEX_CHARIZARD, // Mega Y
@ -2816,6 +2823,7 @@ const u16 gPokedexOrder_Height[] =
//NATIONAL_DEX_GOURGEIST, // Super Size //NATIONAL_DEX_GOURGEIST, // Super Size
NATIONAL_DEX_VOLCANION, NATIONAL_DEX_VOLCANION,
NATIONAL_DEX_CRABOMINABLE, NATIONAL_DEX_CRABOMINABLE,
// 5'11" / 1.8m
NATIONAL_DEX_DODRIO, NATIONAL_DEX_DODRIO,
NATIONAL_DEX_AERODACTYL, NATIONAL_DEX_AERODACTYL,
NATIONAL_DEX_DRATINI, NATIONAL_DEX_DRATINI,
@ -2845,7 +2853,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_DRACOZOLT, NATIONAL_DEX_DRACOZOLT,
NATIONAL_DEX_DURALUDON, NATIONAL_DEX_DURALUDON,
NATIONAL_DEX_ZARUDE, NATIONAL_DEX_ZARUDE,
// 6'03" / 1.9m
NATIONAL_DEX_ARCANINE, NATIONAL_DEX_ARCANINE,
NATIONAL_DEX_RHYDON, NATIONAL_DEX_RHYDON,
//NATIONAL_DEX_HOUNDOOM, // Mega //NATIONAL_DEX_HOUNDOOM, // Mega
@ -2867,6 +2875,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_INTELEON, NATIONAL_DEX_INTELEON,
NATIONAL_DEX_URSHIFU, // Single Strike Style NATIONAL_DEX_URSHIFU, // Single Strike Style
//NATIONAL_DEX_URSHIFU, // Rapid Strike Style //NATIONAL_DEX_URSHIFU, // Rapid Strike Style
// 6'07" / 2.0m
NATIONAL_DEX_VENUSAUR, NATIONAL_DEX_VENUSAUR,
NATIONAL_DEX_EKANS, NATIONAL_DEX_EKANS,
//NATIONAL_DEX_SLOWBRO, // Mega //NATIONAL_DEX_SLOWBRO, // Mega
@ -2894,6 +2903,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_TURTONATOR, NATIONAL_DEX_TURTONATOR,
NATIONAL_DEX_ARCTOVISH, NATIONAL_DEX_ARCTOVISH,
NATIONAL_DEX_SPECTRIER, NATIONAL_DEX_SPECTRIER,
// 6'11" / 2.1m
//NATIONAL_DEX_AERODACTYL, // Mega //NATIONAL_DEX_AERODACTYL, // Mega
NATIONAL_DEX_SNORLAX, NATIONAL_DEX_SNORLAX,
NATIONAL_DEX_MANTINE, NATIONAL_DEX_MANTINE,
@ -2908,7 +2918,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_RILLABOOM, NATIONAL_DEX_RILLABOOM,
NATIONAL_DEX_HATTERENE, NATIONAL_DEX_HATTERENE,
NATIONAL_DEX_REGIDRAGO, NATIONAL_DEX_REGIDRAGO,
// 7'03" / 2.2m
//NATIONAL_DEX_PIDGEOT, // Mega //NATIONAL_DEX_PIDGEOT, // Mega
NATIONAL_DEX_KANGASKHAN, NATIONAL_DEX_KANGASKHAN,
//NATIONAL_DEX_KANGASKHAN, // Mega //NATIONAL_DEX_KANGASKHAN, // Mega
@ -2922,6 +2932,7 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_CORVIKNIGHT, NATIONAL_DEX_CORVIKNIGHT,
NATIONAL_DEX_SILICOBRA, NATIONAL_DEX_SILICOBRA,
NATIONAL_DEX_GLASTRIER, NATIONAL_DEX_GLASTRIER,
// 7'07" / 2.3m
//NATIONAL_DEX_MEWTWO, // Mega X //NATIONAL_DEX_MEWTWO, // Mega X
NATIONAL_DEX_FERALIGATR, NATIONAL_DEX_FERALIGATR,
NATIONAL_DEX_HARIYAMA, NATIONAL_DEX_HARIYAMA,
@ -2929,13 +2940,14 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_SILVALLY, NATIONAL_DEX_SILVALLY,
NATIONAL_DEX_ARCTOZOLT, NATIONAL_DEX_ARCTOZOLT,
NATIONAL_DEX_DRACOVISH, NATIONAL_DEX_DRACOVISH,
// 7'10" / 2.4m
//NATIONAL_DEX_VENUSAUR, // Mega //NATIONAL_DEX_VENUSAUR, // Mega
NATIONAL_DEX_RHYPERIOR, NATIONAL_DEX_RHYPERIOR,
NATIONAL_DEX_BUZZWOLE, NATIONAL_DEX_BUZZWOLE,
NATIONAL_DEX_NECROZMA, NATIONAL_DEX_NECROZMA,
//NATIONAL_DEX_CALYREX, // Ice Rider //NATIONAL_DEX_CALYREX, // Ice Rider
//NATIONAL_DEX_CALYREX, // Shadow Rider //NATIONAL_DEX_CALYREX, // Shadow Rider
// 8'02" / 2.5m
NATIONAL_DEX_LAPRAS, NATIONAL_DEX_LAPRAS,
//NATIONAL_DEX_TYRANITAR, // Mega //NATIONAL_DEX_TYRANITAR, // Mega
//NATIONAL_DEX_SHARPEDO, // Mega //NATIONAL_DEX_SHARPEDO, // Mega
@ -2947,19 +2959,23 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_MUDSDALE, NATIONAL_DEX_MUDSDALE,
NATIONAL_DEX_MELMETAL, NATIONAL_DEX_MELMETAL,
NATIONAL_DEX_STONJOURNER, NATIONAL_DEX_STONJOURNER,
// 8'06" / 2.6m
NATIONAL_DEX_BEARTIC, NATIONAL_DEX_BEARTIC,
//NATIONAL_DEX_VIKAVOLT, // Totem-sized //NATIONAL_DEX_VIKAVOLT, // Totem-sized
// 8'10" / 2.7m
NATIONAL_DEX_SEVIPER, NATIONAL_DEX_SEVIPER,
//NATIONAL_DEX_ABOMASNOW, // Mega //NATIONAL_DEX_ABOMASNOW, // Mega
NATIONAL_DEX_AURORUS, NATIONAL_DEX_AURORUS,
// 9'02" / 2.8m
NATIONAL_DEX_GOLURK, NATIONAL_DEX_GOLURK,
NATIONAL_DEX_COALOSSAL, NATIONAL_DEX_COALOSSAL,
NATIONAL_DEX_ZACIAN, // Hero of Many Battles NATIONAL_DEX_ZACIAN, // Hero of Many Battles
//NATIONAL_DEX_ZACIAN, // Crowned Sword //NATIONAL_DEX_ZACIAN, // Crowned Sword
// 9'06" / 2.9m
NATIONAL_DEX_ZEKROM, NATIONAL_DEX_ZEKROM,
NATIONAL_DEX_ZAMAZENTA, // Hero of Many Battles NATIONAL_DEX_ZAMAZENTA, // Hero of Many Battles
//NATIONAL_DEX_ZAMAZENTA, // Crowned Shield //NATIONAL_DEX_ZAMAZENTA, // Crowned Shield
// 9'10" / 3.0m
//NATIONAL_DEX_WEEZING, // Galarian Form //NATIONAL_DEX_WEEZING, // Galarian Form
//NATIONAL_DEX_THUNDURUS, // Therian Form //NATIONAL_DEX_THUNDURUS, // Therian Form
NATIONAL_DEX_KYUREM, NATIONAL_DEX_KYUREM,
@ -2969,74 +2985,84 @@ const u16 gPokedexOrder_Height[] =
NATIONAL_DEX_FALINKS, NATIONAL_DEX_FALINKS,
NATIONAL_DEX_COPPERAJAH, NATIONAL_DEX_COPPERAJAH,
NATIONAL_DEX_DRAGAPULT, NATIONAL_DEX_DRAGAPULT,
// 10'02" / 3.1m
//NATIONAL_DEX_ARAQUANID, // Totem-sized //NATIONAL_DEX_ARAQUANID, // Totem-sized
// 10'06" / 3.2m
NATIONAL_DEX_ARCEUS, NATIONAL_DEX_ARCEUS,
NATIONAL_DEX_RESHIRAM, NATIONAL_DEX_RESHIRAM,
// 10'10" / 3.3m
NATIONAL_DEX_SERPERIOR, NATIONAL_DEX_SERPERIOR,
//NATIONAL_DEX_KYUREM, // Black //NATIONAL_DEX_KYUREM, // Black
// 11'02" / 3.4m
NATIONAL_DEX_SOLGALEO, NATIONAL_DEX_SOLGALEO,
// 11'06" / 3.5m
NATIONAL_DEX_ARBOK, NATIONAL_DEX_ARBOK,
NATIONAL_DEX_GROUDON, NATIONAL_DEX_GROUDON,
// 11'10" / 3.6m
//NATIONAL_DEX_KYUREM, // White //NATIONAL_DEX_KYUREM, // White
NATIONAL_DEX_NAGANADEL, NATIONAL_DEX_NAGANADEL,
// 12'02" / 3.7m
NATIONAL_DEX_REGIGIGAS, NATIONAL_DEX_REGIGIGAS,
// 12'06" / 3.8m
NATIONAL_DEX_HO_OH, NATIONAL_DEX_HO_OH,
NATIONAL_DEX_XURKITREE, NATIONAL_DEX_XURKITREE,
//NATIONAL_DEX_NECROZMA, // Dusk Mane //NATIONAL_DEX_NECROZMA, // Dusk Mane
NATIONAL_DEX_SANDACONDA, NATIONAL_DEX_SANDACONDA,
// 12'10" / 3.9m
NATIONAL_DEX_DHELMISE, NATIONAL_DEX_DHELMISE,
// 13'01" / 4.0m
NATIONAL_DEX_DRAGONAIR, NATIONAL_DEX_DRAGONAIR,
NATIONAL_DEX_LUNALA, NATIONAL_DEX_LUNALA,
// 13'09" / 4.2m
NATIONAL_DEX_PALKIA, NATIONAL_DEX_PALKIA,
//NATIONAL_DEX_NECROZMA, // Dawn Wings //NATIONAL_DEX_NECROZMA, // Dawn Wings
// 14'09" / 4.5m
NATIONAL_DEX_KYOGRE, NATIONAL_DEX_KYOGRE,
NATIONAL_DEX_GIRATINA, // Altered Forme NATIONAL_DEX_GIRATINA, // Altered Forme
//NATIONAL_DEX_ZYGARDE, // Complete Forme //NATIONAL_DEX_ZYGARDE, // Complete Forme
// 16'05" / 5.0m
//NATIONAL_DEX_GROUDON, // Primal //NATIONAL_DEX_GROUDON, // Primal
NATIONAL_DEX_ZYGARDE, // 50% Forme NATIONAL_DEX_ZYGARDE, // 50% Forme
// 17'01" / 5.2m
NATIONAL_DEX_LUGIA, NATIONAL_DEX_LUGIA,
// 17'09" / 5.4m
NATIONAL_DEX_DIALGA, NATIONAL_DEX_DIALGA,
// 18'01" / 5.5m
NATIONAL_DEX_GUZZLORD, NATIONAL_DEX_GUZZLORD,
NATIONAL_DEX_STAKATAKA, NATIONAL_DEX_STAKATAKA,
// 19'00" / 5.8m
NATIONAL_DEX_YVELTAL, NATIONAL_DEX_YVELTAL,
// 20'04" / 6.2m
NATIONAL_DEX_MILOTIC, NATIONAL_DEX_MILOTIC,
// 21'04" / 6.5m
NATIONAL_DEX_GYARADOS, NATIONAL_DEX_GYARADOS,
//NATIONAL_DEX_GYARADOS, // Mega //NATIONAL_DEX_GYARADOS, // Mega
//NATIONAL_DEX_HOOPA, // Unbound //NATIONAL_DEX_HOOPA, // Unbound
// 22'08" / 6.9m
//NATIONAL_DEX_GIRATINA, // Origin Forme //NATIONAL_DEX_GIRATINA, // Origin Forme
// 23'00" / 7.0m
NATIONAL_DEX_RAYQUAZA, NATIONAL_DEX_RAYQUAZA,
// 24'07" / 7.5m
//NATIONAL_DEX_NECROZMA, // Ultra //NATIONAL_DEX_NECROZMA, // Ultra
// 26'11" / 8.2m
//NATIONAL_DEX_WISHIWASHI, // School Form //NATIONAL_DEX_WISHIWASHI, // School Form
// 28'10" / 8.8m
NATIONAL_DEX_ONIX, NATIONAL_DEX_ONIX,
// 30'02" / 9.2m
NATIONAL_DEX_STEELIX, NATIONAL_DEX_STEELIX,
NATIONAL_DEX_CELESTEELA, NATIONAL_DEX_CELESTEELA,
// 32'02" / 9.8m
//NATIONAL_DEX_KYOGRE, // Primal //NATIONAL_DEX_KYOGRE, // Primal
// 34'05" / 10.5m
//NATIONAL_DEX_STEELIX, // Mega //NATIONAL_DEX_STEELIX, // Mega
// 35'05" / 10.8m
//NATIONAL_DEX_RAYQUAZA, // Mega //NATIONAL_DEX_RAYQUAZA, // Mega
// 35'09" / 10.9m
//NATIONAL_DEX_EXEGGUTOR, // Alolan Form //NATIONAL_DEX_EXEGGUTOR, // Alolan Form
// 47'07" / 14.5m
NATIONAL_DEX_WAILORD, NATIONAL_DEX_WAILORD,
// 65'07" / 20m
NATIONAL_DEX_ETERNATUS, NATIONAL_DEX_ETERNATUS,
// 328'01" / 100m
//NATIONAL_DEX_ETERNATUS, // Eternamax
}; };

View File

@ -37,12 +37,7 @@ const u16 gTutorMoves[] =
static const u32 sTutorLearnsets[] = static const u32 sTutorLearnsets[] =
{ {
[SPECIES_NONE] = TUTOR_LEARNSET(TUTOR(MOVE_DOUBLE_EDGE) [SPECIES_NONE] = (0),
| TUTOR(MOVE_MEGA_KICK)
| TUTOR(MOVE_MEGA_PUNCH)
| TUTOR(MOVE_SEISMIC_TOSS)
| TUTOR(MOVE_SWORDS_DANCE)
| TUTOR(MOVE_THUNDER_WAVE)),
[SPECIES_BULBASAUR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM) [SPECIES_BULBASAUR] = TUTOR_LEARNSET(TUTOR(MOVE_BODY_SLAM)
| TUTOR(MOVE_DEFENSE_CURL) | TUTOR(MOVE_DEFENSE_CURL)

View File

@ -816,13 +816,25 @@ static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parent
eggSpecies = GetEggSpecies(species[parentSlots[0]]); eggSpecies = GetEggSpecies(species[parentSlots[0]]);
if (eggSpecies == SPECIES_NIDORAN_F && daycare->offspringPersonality & EGG_GENDER_MALE) if (eggSpecies == SPECIES_NIDORAN_F && daycare->offspringPersonality & EGG_GENDER_MALE)
{
eggSpecies = SPECIES_NIDORAN_M; eggSpecies = SPECIES_NIDORAN_M;
} else if (eggSpecies == SPECIES_ILLUMISE && daycare->offspringPersonality & EGG_GENDER_MALE)
if (eggSpecies == SPECIES_ILLUMISE && daycare->offspringPersonality & EGG_GENDER_MALE)
{
eggSpecies = SPECIES_VOLBEAT; eggSpecies = SPECIES_VOLBEAT;
} #if P_NIDORAN_M_DITTO_BREED >= GEN_5
else if (eggSpecies == SPECIES_NIDORAN_M && !(daycare->offspringPersonality & EGG_GENDER_MALE))
eggSpecies = SPECIES_NIDORAN_F;
else if (eggSpecies == SPECIES_VOLBEAT && !(daycare->offspringPersonality & EGG_GENDER_MALE))
eggSpecies = SPECIES_ILLUMISE;
#endif
else if (eggSpecies == SPECIES_MANAPHY)
eggSpecies = SPECIES_PHIONE;
else if (eggSpecies == SPECIES_SINISTEA_ANTIQUE)
eggSpecies = SPECIES_SINISTEA;
else if (GET_BASE_SPECIES_ID(eggSpecies) == SPECIES_VIVILLON)
eggSpecies = SPECIES_SCATTERBUG;
else if (GET_BASE_SPECIES_ID(eggSpecies) == SPECIES_ROTOM)
eggSpecies = SPECIES_ROTOM;
else if (GET_BASE_SPECIES_ID(eggSpecies) == SPECIES_FURFROU)
eggSpecies = SPECIES_FURFROU;
// Make Ditto the "mother" slot if the other daycare mon is male. // Make Ditto the "mother" slot if the other daycare mon is male.
if (species[parentSlots[1]] == SPECIES_DITTO && GetBoxMonGender(&daycare->mons[parentSlots[0]].mon) != MON_FEMALE) if (species[parentSlots[1]] == SPECIES_DITTO && GetBoxMonGender(&daycare->mons[parentSlots[0]].mon) != MON_FEMALE)

View File

@ -914,7 +914,7 @@ static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot)
DisplayPartyPokemonDataToTeachMove(slot, item, 0); DisplayPartyPokemonDataToTeachMove(slot, item, 0);
break; break;
case 2: // Evolution stone case 2: // Evolution stone
if (!GetMonData(currentPokemon, MON_DATA_IS_EGG) && GetEvolutionTargetSpecies(currentPokemon, EVO_MODE_ITEM_CHECK, item, SPECIES_NONE) != SPECIES_NONE) if (!GetMonData(currentPokemon, MON_DATA_IS_EGG) && GetEvolutionTargetSpecies(currentPokemon, EVO_MODE_ITEM_CHECK, item, NULL) != SPECIES_NONE)
return FALSE; return FALSE;
DisplayPartyPokemonDescriptionData(slot, PARTYBOX_DESC_NO_USE); DisplayPartyPokemonDescriptionData(slot, PARTYBOX_DESC_NO_USE);
break; break;
@ -5131,7 +5131,7 @@ static void Task_TryLearningNextMove(u8 taskId)
static void PartyMenuTryEvolution(u8 taskId) static void PartyMenuTryEvolution(u8 taskId)
{ {
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u16 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_NORMAL, ITEM_NONE, SPECIES_NONE); u16 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_NORMAL, ITEM_NONE, NULL);
if (targetSpecies != SPECIES_NONE) if (targetSpecies != SPECIES_NONE)
{ {

View File

@ -3991,10 +3991,7 @@ static void Task_DisplayCaughtMonDexPage(u8 taskId)
gTasks[taskId].tState++; gTasks[taskId].tState++;
break; break;
case 4: case 4:
if ((gBaseStats[dexNum].flags & FLAG_GENDER_DIFFERENCE)) spriteId = CreateMonPicSprite(NationalPokedexNumToSpecies(dexNum), 0, ((u16)gTasks[taskId].tPersonalityHi << 16) | (u16)gTasks[taskId].tPersonalityLo, TRUE, MON_PAGE_X, MON_PAGE_Y, 0, TAG_NONE);
spriteId = CreateMonPicSprite(dexNum, 0, ((u16)gTasks[taskId].tPersonalityHi << 16) | (u16)gTasks[taskId].tPersonalityLo, TRUE, MON_PAGE_X, MON_PAGE_Y, 0, TAG_NONE);
else
spriteId = CreateMonSpriteFromNationalDexNumber(dexNum, MON_PAGE_X, MON_PAGE_Y, 0);
gSprites[spriteId].oam.priority = 0; gSprites[spriteId].oam.priority = 0;
BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK);
SetVBlankCallback(gPokedexVBlankCB); SetVBlankCallback(gPokedexVBlankCB);

View File

@ -66,6 +66,8 @@ static void Task_PlayMapChosenOrBattleBGM(u8 taskId);
static u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move); static u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
static bool8 ShouldSkipFriendshipChange(void); static bool8 ShouldSkipFriendshipChange(void);
static u8 SendMonToPC(struct Pokemon* mon); static u8 SendMonToPC(struct Pokemon* mon);
static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv);
void TrySpecialOverworldEvo();
EWRAM_DATA static u8 sLearningMoveTableID = 0; EWRAM_DATA static u8 sLearningMoveTableID = 0;
EWRAM_DATA u8 gPlayerPartyCount = 0; EWRAM_DATA u8 gPlayerPartyCount = 0;
@ -74,6 +76,7 @@ EWRAM_DATA struct Pokemon gPlayerParty[PARTY_SIZE] = {0};
EWRAM_DATA struct Pokemon gEnemyParty[PARTY_SIZE] = {0}; EWRAM_DATA struct Pokemon gEnemyParty[PARTY_SIZE] = {0};
EWRAM_DATA struct SpriteTemplate gMultiuseSpriteTemplate = {0}; EWRAM_DATA struct SpriteTemplate gMultiuseSpriteTemplate = {0};
EWRAM_DATA static struct MonSpritesGfxManager *sMonSpritesGfxManagers[MON_SPR_GFX_MANAGERS_COUNT] = {NULL}; EWRAM_DATA static struct MonSpritesGfxManager *sMonSpritesGfxManagers[MON_SPR_GFX_MANAGERS_COUNT] = {NULL};
EWRAM_DATA static u8 sTriedEvolving = 0;
#include "data/battle_moves.h" #include "data/battle_moves.h"
@ -3190,6 +3193,9 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
u32 personality; u32 personality;
u32 value; u32 value;
u16 checksum; u16 checksum;
u8 i;
u8 availableIVs[NUM_STATS];
u8 selectedIvs[LEGENDARY_PERFECT_IV_COUNT];
ZeroBoxMonData(boxMon); ZeroBoxMonData(boxMon);
@ -3283,6 +3289,51 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv); SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv);
iv = (value & (MAX_IV_MASK << 10)) >> 10; iv = (value & (MAX_IV_MASK << 10)) >> 10;
SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv); SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv);
#if P_LEGENDARY_PERFECT_IVS >= GEN_6
if (gBaseStats[species].flags & (FLAG_LEGENDARY | FLAG_MYTHICAL | FLAG_ULTRA_BEAST))
{
iv = MAX_PER_STAT_IVS;
// Initialize a list of IV indices.
for (i = 0; i < NUM_STATS; i++)
{
availableIVs[i] = i;
}
// Select the 3 IVs that will be perfected.
for (i = 0; i < LEGENDARY_PERFECT_IV_COUNT; i++)
{
u8 index = Random() % (NUM_STATS - i);
selectedIvs[i] = availableIVs[index];
RemoveIVIndexFromList(availableIVs, index);
}
for (i = 0; i < LEGENDARY_PERFECT_IV_COUNT; i++)
{
switch (selectedIvs[i])
{
case STAT_HP:
SetBoxMonData(boxMon, MON_DATA_HP_IV, &iv);
break;
case STAT_ATK:
SetBoxMonData(boxMon, MON_DATA_ATK_IV, &iv);
break;
case STAT_DEF:
SetBoxMonData(boxMon, MON_DATA_DEF_IV, &iv);
break;
case STAT_SPEED:
SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &iv);
break;
case STAT_SPATK:
SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv);
break;
case STAT_SPDEF:
SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv);
break;
}
}
}
#endif
} }
if (gBaseStats[species].abilities[1]) if (gBaseStats[species].abilities[1])
@ -5912,7 +5963,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
case 7: // ITEM4_EVO_STONE case 7: // ITEM4_EVO_STONE
{ {
u16 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_ITEM_USE, item, SPECIES_NONE); u16 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_ITEM_USE, item, NULL);
if (targetSpecies != SPECIES_NONE) if (targetSpecies != SPECIES_NONE)
{ {
@ -6286,7 +6337,7 @@ u8 GetNatureFromPersonality(u32 personality)
return personality % NUM_NATURES; return personality % NUM_NATURES;
} }
u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, u16 tradePartnerSpecies) u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, struct Pokemon *tradePartner)
{ {
int i, j; int i, j;
u16 targetSpecies = 0; u16 targetSpecies = 0;
@ -6299,6 +6350,26 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, u
u16 upperPersonality = personality >> 16; u16 upperPersonality = personality >> 16;
u8 holdEffect; u8 holdEffect;
u16 currentMap; u16 currentMap;
u16 partnerSpecies;
u16 partnerHeldItem;
u8 partnerHoldEffect;
if (tradePartner != NULL)
{
partnerSpecies = GetMonData(tradePartner, MON_DATA_SPECIES, 0);
partnerHeldItem = GetMonData(tradePartner, MON_DATA_HELD_ITEM, 0);
if (partnerHeldItem == ITEM_ENIGMA_BERRY)
partnerHoldEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
else
partnerHoldEffect = ItemId_GetHoldEffect(partnerHeldItem);
}
else
{
partnerSpecies = SPECIES_NONE;
partnerHeldItem = ITEM_NONE;
partnerHoldEffect = HOLD_EFFECT_NONE;
}
if (heldItem == ITEM_ENIGMA_BERRY_E_READER) if (heldItem == ITEM_ENIGMA_BERRY_E_READER)
holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
@ -6306,7 +6377,9 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, u
holdEffect = ItemId_GetHoldEffect(heldItem); holdEffect = ItemId_GetHoldEffect(heldItem);
// Prevent evolution with Everstone, unless we're just viewing the party menu with an evolution item // Prevent evolution with Everstone, unless we're just viewing the party menu with an evolution item
if (holdEffect == HOLD_EFFECT_PREVENT_EVOLVE && mode != EVO_MODE_ITEM_CHECK) if (holdEffect == HOLD_EFFECT_PREVENT_EVOLVE
&& mode != EVO_MODE_ITEM_CHECK
&& (P_KADABRA_EVERSTONE < GEN_4 || species != SPECIES_KADABRA))
return SPECIES_NONE; return SPECIES_NONE;
switch (mode) switch (mode)
@ -6469,21 +6542,21 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, u
u8 nature = GetNature(mon); u8 nature = GetNature(mon);
switch (nature) switch (nature)
{ {
case NATURE_HARDY: case NATURE_HARDY:
case NATURE_BRAVE: case NATURE_BRAVE:
case NATURE_ADAMANT: case NATURE_ADAMANT:
case NATURE_NAUGHTY: case NATURE_NAUGHTY:
case NATURE_DOCILE: case NATURE_DOCILE:
case NATURE_IMPISH: case NATURE_IMPISH:
case NATURE_LAX: case NATURE_LAX:
case NATURE_HASTY: case NATURE_HASTY:
case NATURE_JOLLY: case NATURE_JOLLY:
case NATURE_NAIVE: case NATURE_NAIVE:
case NATURE_RASH: case NATURE_RASH:
case NATURE_SASSY: case NATURE_SASSY:
case NATURE_QUIRKY: case NATURE_QUIRKY:
targetSpecies = gEvolutionTable[species][i].targetSpecies; targetSpecies = gEvolutionTable[species][i].targetSpecies;
break; break;
} }
} }
break; break;
@ -6493,20 +6566,20 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, u
u8 nature = GetNature(mon); u8 nature = GetNature(mon);
switch (nature) switch (nature)
{ {
case NATURE_LONELY: case NATURE_LONELY:
case NATURE_BOLD: case NATURE_BOLD:
case NATURE_RELAXED: case NATURE_RELAXED:
case NATURE_TIMID: case NATURE_TIMID:
case NATURE_SERIOUS: case NATURE_SERIOUS:
case NATURE_MODEST: case NATURE_MODEST:
case NATURE_MILD: case NATURE_MILD:
case NATURE_QUIET: case NATURE_QUIET:
case NATURE_BASHFUL: case NATURE_BASHFUL:
case NATURE_CALM: case NATURE_CALM:
case NATURE_GENTLE: case NATURE_GENTLE:
case NATURE_CAREFUL: case NATURE_CAREFUL:
targetSpecies = gEvolutionTable[species][i].targetSpecies; targetSpecies = gEvolutionTable[species][i].targetSpecies;
break; break;
} }
} }
break; break;
@ -6530,7 +6603,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, u
} }
break; break;
case EVO_TRADE_SPECIFIC_MON: case EVO_TRADE_SPECIFIC_MON:
if (gEvolutionTable[species][i].param == tradePartnerSpecies) if (gEvolutionTable[species][i].param == partnerSpecies && partnerHoldEffect != HOLD_EFFECT_PREVENT_EVOLVE)
targetSpecies = gEvolutionTable[species][i].targetSpecies; targetSpecies = gEvolutionTable[species][i].targetSpecies;
break; break;
} }
@ -6557,6 +6630,47 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, u
} }
} }
break; break;
#ifdef BATTLE_ENGINE
// Battle evolution without leveling; party slot is being passed into the evolutionItem arg.
case EVO_MODE_BATTLE_SPECIAL:
for (i = 0; i < EVOS_PER_MON; i++)
{
switch (gEvolutionTable[species][i].method)
{
case EVO_CRITICAL_HITS:
if (gPartyCriticalHits[evolutionItem] >= gEvolutionTable[species][i].param)
targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
}
}
break;
#endif
// Overworld evolution without leveling; evolution method is being passed into the evolutionItem arg.
case EVO_MODE_OVERWORLD_SPECIAL:
for (i = 0; i < EVOS_PER_MON; i++)
{
switch (gEvolutionTable[species][i].method)
{
case EVO_SCRIPT_TRIGGER_DMG:
{
u16 currentHp = GetMonData(mon, MON_DATA_HP, NULL);
if (evolutionItem == EVO_SCRIPT_TRIGGER_DMG
&& currentHp != 0
&& (GetMonData(mon, MON_DATA_MAX_HP, NULL) - currentHp >= gEvolutionTable[species][i].param))
targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
}
case EVO_DARK_SCROLL:
if (evolutionItem == EVO_DARK_SCROLL)
targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_WATER_SCROLL:
if (evolutionItem == EVO_WATER_SCROLL)
targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
}
}
break;
} }
return targetSpecies; return targetSpecies;
@ -7938,7 +8052,10 @@ bool8 HasTwoFramesAnimation(u16 species)
return (species != SPECIES_CASTFORM return (species != SPECIES_CASTFORM
&& species != SPECIES_SPINDA && species != SPECIES_SPINDA
&& species != SPECIES_UNOWN && species != SPECIES_UNOWN
&& species != SPECIES_CHERRIM); && species != SPECIES_CHERRIM
&& species != SPECIES_CASTFORM_SUNNY
&& species != SPECIES_CASTFORM_RAINY
&& species != SPECIES_CASTFORM_SNOWY);
} }
static bool8 ShouldSkipFriendshipChange(void) static bool8 ShouldSkipFriendshipChange(void)
@ -8250,3 +8367,52 @@ u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove)
} }
return 0; return 0;
} }
static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv)
{
s32 i, j;
u8 temp[NUM_STATS];
ivs[selectedIv] = 0xFF;
for (i = 0; i < NUM_STATS; i++)
{
temp[i] = ivs[i];
}
j = 0;
for (i = 0; i < NUM_STATS; i++)
{
if (temp[i] != 0xFF)
ivs[j++] = temp[i];
}
}
// Attempts to perform non-level/item related overworld evolutions; called by tryspecialevo command.
void TrySpecialOverworldEvo(void)
{
u8 i;
u8 evoMethod = gSpecialVar_0x8000;
u16 canStopEvo = gSpecialVar_0x8001;
u16 tryMultiple = gSpecialVar_0x8002;
for (i = 0; i < PARTY_SIZE; i++)
{
u16 targetSpecies = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_OVERWORLD_SPECIAL, evoMethod, SPECIES_NONE);
if (targetSpecies != SPECIES_NONE && !(sTriedEvolving & gBitTable[i]))
{
sTriedEvolving |= gBitTable[i];
if(gMain.callback2 == TrySpecialOverworldEvo) // This fixes small graphics glitches.
EvolutionScene(&gPlayerParty[i], targetSpecies, canStopEvo, i);
else
BeginEvolutionScene(&gPlayerParty[i], targetSpecies, canStopEvo, i);
if (tryMultiple)
gCB2_AfterEvolution = TrySpecialOverworldEvo;
else
gCB2_AfterEvolution = CB2_ReturnToField;
return;
}
}
sTriedEvolving = 0;
SetMainCallback2(CB2_ReturnToField);
}

View File

@ -1235,8 +1235,8 @@ const u8 *const gMonIconTable[] =
[SPECIES_ETERNATUS_ETERNAMAX] = gMonIcon_EternatusEternamax, [SPECIES_ETERNATUS_ETERNAMAX] = gMonIcon_EternatusEternamax,
[SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = gMonIcon_Urshifu, [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = gMonIcon_Urshifu,
[SPECIES_ZARUDE_DADA] = gMonIcon_ZarudeDada, [SPECIES_ZARUDE_DADA] = gMonIcon_ZarudeDada,
[SPECIES_CALYREX_ICE_RIDER] = gMonIcon_QuestionMark,//gMonIcon_CalyrexIceRider, [SPECIES_CALYREX_ICE_RIDER] = gMonIcon_CalyrexIceRider,
[SPECIES_CALYREX_SHADOW_RIDER] = gMonIcon_QuestionMark,//gMonIcon_CalyrexShadowRider, [SPECIES_CALYREX_SHADOW_RIDER] = gMonIcon_CalyrexShadowRider,
[SPECIES_EGG] = gMonIcon_Egg, [SPECIES_EGG] = gMonIcon_Egg,
}; };

View File

@ -434,17 +434,37 @@ static const struct PokemonJumpMons sPokeJumpMons[] =
{ .species = SPECIES_WEEDLE, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_WEEDLE, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_KAKUNA, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_KAKUNA, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_RATTATA, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_RATTATA, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_RATTATA_ALOLAN, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_RATICATE, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_RATICATE, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_RATICATE_ALOLAN, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_PIKACHU, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_PIKACHU, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_COSPLAY, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_ROCK_STAR, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_BELLE, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_POP_STAR, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_PH_D, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_LIBRE, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_ORIGINAL_CAP, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_HOENN_CAP, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_SINNOH_CAP, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_UNOVA_CAP, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_KALOS_CAP, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_ALOLA_CAP, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_PARTNER_CAP, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PIKACHU_WORLD_CAP, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_SANDSHREW, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_SANDSHREW, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_SANDSHREW_ALOLAN, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_NIDORAN_F, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_NIDORAN_F, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_NIDORAN_M, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_NIDORAN_M, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_CLEFAIRY, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_CLEFAIRY, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_VULPIX, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_VULPIX, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_VULPIX_ALOLAN, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_JIGGLYPUFF, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_JIGGLYPUFF, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ODDISH, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_ODDISH, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_PARAS, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_PARAS, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_MEOWTH, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_MEOWTH, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_MEOWTH_ALOLAN, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_MEOWTH_GALARIAN, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PSYDUCK, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_PSYDUCK, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_MANKEY, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_MANKEY, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_GROWLITHE, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_GROWLITHE, .jumpType = JUMP_TYPE_FAST, },
@ -463,6 +483,7 @@ static const struct PokemonJumpMons sPokeJumpMons[] =
{ .species = SPECIES_TOTODILE, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_TOTODILE, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_SPINARAK, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_SPINARAK, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_PICHU, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_PICHU, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PICHU_SPIKY_EARED, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_CLEFFA, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_CLEFFA, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_IGGLYBUFF, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_IGGLYBUFF, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_TOGEPI, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_TOGEPI, .jumpType = JUMP_TYPE_SLOW, },
@ -491,7 +512,9 @@ static const struct PokemonJumpMons sPokeJumpMons[] =
{ .species = SPECIES_MARSHTOMP, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_MARSHTOMP, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_POOCHYENA, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_POOCHYENA, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_ZIGZAGOON, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_ZIGZAGOON, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_ZIGZAGOON_GALARIAN, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_LINOONE, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_LINOONE, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_LINOONE_GALARIAN, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_WURMPLE, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_WURMPLE, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_SILCOON, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_SILCOON, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_CASCOON, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_CASCOON, .jumpType = JUMP_TYPE_SLOW, },
@ -506,6 +529,7 @@ static const struct PokemonJumpMons sPokeJumpMons[] =
{ .species = SPECIES_AZURILL, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_AZURILL, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_SKITTY, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_SKITTY, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_SABLEYE, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_SABLEYE, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_SABLEYE_MEGA, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_MAWILE, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_MAWILE, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_ARON, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_ARON, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_MEDITITE, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_MEDITITE, .jumpType = JUMP_TYPE_SLOW, },
@ -526,6 +550,164 @@ static const struct PokemonJumpMons sPokeJumpMons[] =
{ .species = SPECIES_SNORUNT, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_SNORUNT, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_CLAMPERL, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_CLAMPERL, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_BAGON, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_BAGON, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_TURTWIG, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_CHIMCHAR, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_PIPLUP, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_BIDOOF, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_KRICKETOT, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_SHINX, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_BUDEW, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_SHIELDON, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_PACHIRISU, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_BUIZEL, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_CHERUBI, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_CHERRIM, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_CHERRIM_SUNSHINE, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_SHELLOS, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_SHELLOS_EAST_SEA, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_BUNEARY, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_GLAMEOW, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_STUNKY, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_BONSLY, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_MIME_JR, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_HAPPINY, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_GIBLE, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_MUNCHLAX, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_RIOLU, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_CROAGUNK, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_SHAYMIN, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_SNIVY, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_TEPIG, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_OSHAWOTT, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PATRAT, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_LILLIPUP, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_PURRLOIN, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_PANSAGE, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PANSEAR, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_PANPOUR, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_ROGGENROLA, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_DRILBUR, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_EXCADRILL, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_TIMBURR, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_SEWADDLE, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_SWADLOON, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_VENIPEDE, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_PETILIL, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_SANDILE, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_DARUMAKA, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_DARUMAKA_GALARIAN, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_DWEBBLE, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_SCRAGGY, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ARCHEN, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_TRUBBISH, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_ZORUA, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_MINCCINO, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_CINCCINO, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_GOTHITA, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_GOTHORITA, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_DEERLING, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_DEERLING_SUMMER, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_DEERLING_AUTUMN, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_DEERLING_WINTER, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_KARRABLAST, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_FOONGUS, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_AMOONGUSS, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_JOLTIK, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_LITWICK, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_AXEW, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_CUBCHOO, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_SHELMET, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_STUNFISK, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_STUNFISK_GALARIAN, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_PAWNIARD, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_DURANT, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_CHESPIN, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_QUILLADIN, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_FENNEKIN, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_FROAKIE, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_FROGADIER, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_BUNNELBY, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_SCATTERBUG, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_SPEWPA, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_LITLEO, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_PANCHAM, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_ESPURR, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_MEOWSTIC, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_MEOWSTIC_FEMALE, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_BINACLE, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_CLAUNCHER, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_HELIOPTILE, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_DEDENNE, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_GOOMY, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ROWLET, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_DARTRIX, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_LITTEN, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_TORRACAT, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_POPPLIO, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_BRIONNE, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_YUNGOOS, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_GUMSHOOS, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_GRUBBIN, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_CHARJABUG, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_CRABRAWLER, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ROCKRUFF, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_ROCKRUFF_OWN_TEMPO, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_MAREANIE, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_DEWPIDER, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_FOMANTIS, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_MORELULL, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_SALANDIT, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_STUFFUL, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_BOUNSWEET, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_STEENEE, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_WIMPOD, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_PYUKUMUKU, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_KOMALA, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_TOGEDEMARU, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_MIMIKYU, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_MIMIKYU_BUSTED, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_JANGMO_O, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_MARSHADOW, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_MELTAN, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_GROOKEY, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_THWACKEY, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_SCORBUNNY, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_RABOOT, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_SOBBLE, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_DRIZZILE, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_SKWOVET, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_SKWOVET, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_BLIPBUG, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_DOTTLER, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_NICKIT, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_GOSSIFLEUR, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ELDEGOSS, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_WOOLOO, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_CHEWTLE, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_YAMPER, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_ROLYCOLY, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_APPLIN, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_APPLETUN, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_TOXEL, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_SIZZLIPEDE, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_CLOBBOPUS, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_HATENNA, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_HATTREM, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_IMPIDIMP, .jumpType = JUMP_TYPE_FAST, },
{ .species = SPECIES_ALCREMIE, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ALCREMIE_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ALCREMIE_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ALCREMIE_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ALCREMIE_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ALCREMIE_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ALCREMIE_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ALCREMIE_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_ALCREMIE_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_PINCURCHIN, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_SNOM, .jumpType = JUMP_TYPE_SLOW, },
{ .species = SPECIES_MORPEKO, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_MORPEKO_HANGRY, .jumpType = JUMP_TYPE_NORMAL, },
{ .species = SPECIES_KUBFU, .jumpType = JUMP_TYPE_FAST, },
}; };
void StartPokemonJump(u16 partyId, MainCallback exitCallback) void StartPokemonJump(u16 partyId, MainCallback exitCallback)

View File

@ -3797,7 +3797,7 @@ static bool8 AnimateTradeSequenceCable(void)
case TS_STATE_TRY_EVOLUTION: // Only if in-game trade, link trades use CB2_TryLinkTradeEvolution case TS_STATE_TRY_EVOLUTION: // Only if in-game trade, link trades use CB2_TryLinkTradeEvolution
TradeMons(gSpecialVar_0x8005, 0); TradeMons(gSpecialVar_0x8005, 0);
gCB2_AfterEvolution = CB2_UpdateInGameTrade; gCB2_AfterEvolution = CB2_UpdateInGameTrade;
evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], EVO_MODE_TRADE, ITEM_NONE, GetMonData(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PARTNER]], MON_DATA_SPECIES)); evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], EVO_MODE_TRADE, ITEM_NONE, &gPlayerParty[gSelectedTradeMonPositions[TRADE_PARTNER]]);
if (evoTarget != SPECIES_NONE) if (evoTarget != SPECIES_NONE)
{ {
TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]);
@ -4297,7 +4297,7 @@ static bool8 AnimateTradeSequenceWireless(void)
case TS_STATE_TRY_EVOLUTION: // Only if in-game trade, link trades use CB2_TryLinkTradeEvolution case TS_STATE_TRY_EVOLUTION: // Only if in-game trade, link trades use CB2_TryLinkTradeEvolution
TradeMons(gSpecialVar_0x8005, 0); TradeMons(gSpecialVar_0x8005, 0);
gCB2_AfterEvolution = CB2_UpdateInGameTrade; gCB2_AfterEvolution = CB2_UpdateInGameTrade;
evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], EVO_MODE_TRADE, ITEM_NONE, GetMonData(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PARTNER]], MON_DATA_SPECIES)); evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], EVO_MODE_TRADE, ITEM_NONE, &gPlayerParty[gSelectedTradeMonPositions[TRADE_PARTNER]]);
if (evoTarget != SPECIES_NONE) if (evoTarget != SPECIES_NONE)
{ {
TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]);
@ -4342,7 +4342,7 @@ static void CB2_TryLinkTradeEvolution(void)
break; break;
case 4: case 4:
gCB2_AfterEvolution = CB2_SaveAndEndTrade; gCB2_AfterEvolution = CB2_SaveAndEndTrade;
evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], EVO_MODE_TRADE, ITEM_NONE, GetMonData(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PARTNER]], MON_DATA_SPECIES)); evoTarget = GetEvolutionTargetSpecies(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], EVO_MODE_TRADE, ITEM_NONE, &gPlayerParty[gSelectedTradeMonPositions[TRADE_PARTNER]]);
if (evoTarget != SPECIES_NONE) if (evoTarget != SPECIES_NONE)
TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]); TradeEvolutionScene(&gPlayerParty[gSelectedTradeMonPositions[TRADE_PLAYER]], evoTarget, sTradeData->monSpriteIds[TRADE_PARTNER], gSelectedTradeMonPositions[TRADE_PLAYER]);
else if (IsWirelessTrade()) else if (IsWirelessTrade())