Dynamic-Pokemon-Expansion/include/evolution.h
2021-07-04 16:06:31 -04:00

69 lines
2.4 KiB
C

#pragma once
#define MON_MALE 0x00
#define MON_FEMALE 0xFE
struct Evolution
{
u16 method;
u16 param;
u16 targetSpecies;
u16 unknown; // used for mega evo, Dawn Stone, level in EVO_TYPE_IN_PARTY, or time range in EVO_LEVEL_SPECIFIC_TIME_RANGE
};
enum EvolutionMethods
{
EVO_NONE = 0,
EVO_FRIENDSHIP,
EVO_FRIENDSHIP_DAY,
EVO_FRIENDSHIP_NIGHT,
EVO_LEVEL,
EVO_TRADE,
EVO_TRADE_ITEM,
EVO_ITEM, // for dawn stone, add MON_MALE(0x0) or MON_FEMALE(0xFF) to .unknown in evo table entry
EVO_LEVEL_ATK_GT_DEF,
EVO_LEVEL_ATK_EQ_DEF,
EVO_LEVEL_ATK_LT_DEF,
EVO_LEVEL_SILCOON,
EVO_LEVEL_CASCOON,
EVO_LEVEL_NINJASK,
EVO_LEVEL_SHEDINJA,
EVO_BEAUTY,
// new evolutions
EVO_RAINY_FOGGY_OW, // raining or foggy in overworld
EVO_MOVE_TYPE, // knows a move with a specific type (eg. sylveon: fairy type move). Param is the move type
EVO_TYPE_IN_PARTY, //specific type (param) in party after given level (unknown).
EVO_MAP, // specific map evolution. bank in param, map in unknown
EVO_MALE_LEVEL, // above given level if male
EVO_FEMALE_LEVEL, // above given level if female
EVO_LEVEL_NIGHT, // above given level at night
EVO_LEVEL_DAY, // above given level during day
EVO_HOLD_ITEM_NIGHT, // level up holding item at night (eg. sneasel)
EVO_HOLD_ITEM_DAY, // level up while holding a specific item during the day (eg. happiny)
EVO_MOVE, // knows a given move
EVO_OTHER_PARTY_MON, //another poke in the party, arg is a specific species
EVO_LEVEL_SPECIFIC_TIME_RANGE, // above given level with a range (unknown is [start][end]. eg lycanroc -> 1700-1800 hrs -> 0x1112)
EVO_FLAG_SET, //If a certain flag is set. Can be used for touching the Mossy/Icy Rock for Leafeon/Glaceon evolutions
EVO_CRITICAL_HIT, // successfully land 3 critical hits in one battle
EVO_NATURE_HIGH, // evolution based on high key nature at a certain level
EVO_NATURE_LOW, // evolution based on low key nature at a certain level
EVO_DAMAGE_LOCATION // recieve 49+ damage in battle without fainting, walk to specific tile
};
#define EVO_GIGANTAMAX 0xFD
#define EVO_MEGA 0xFE
enum MegaEvoVariants
{
MEGA_VARIANT_STANDARD,
MEGA_VARIANT_PRIMAL,
MEGA_VARIANT_WISH, //Rayquaza
MEGA_VARIANT_ULTRA_BURST, //Necrozma
};
#define MAPSEC_FROST_MOUNTAIN 0x82
#define MAPSEC_ROUTE_8 0x6C
#define MAPSEC_BLIZZARD_CITY 0x5C
#define MAPSEC_FROZEN_FOREST 0x99
#define MAPSEC_THUNDERCAP_MOUNTAIN 0x8A