#ifndef GUARD_CONSTANTS_BATTLE_END_TURN_H #define GUARD_CONSTANTS_BATTLE_END_TURN_H // General End Turn Effects based on research from smogon from vanilla games: // https://www.smogon.com/forums/threads/sword-shield-battle-mechanics-research.3655528/page-64#post-9244179 enum EndTurnResolutionOrder { ENDTURN_ORDER, ENDTURN_VARIOUS, ENDTURN_WEATHER, ENDTURN_WEATHER_DAMAGE, ENDTURN_EMERGENCY_EXIT_1, ENDTURN_AFFECTION, ENDTURN_FUTURE_SIGHT, ENDTURN_WISH, ENDTURN_FIRST_EVENT_BLOCK, ENDTURN_EMERGENCY_EXIT_2, ENDTURN_AQUA_RING, ENDTURN_INGRAIN, ENDTURN_LEECH_SEED, ENDTURN_POISON, ENDTURN_BURN, ENDTURN_FROSTBITE, ENDTURN_NIGHTMARE, ENDTURN_CURSE, ENDTURN_WRAP, ENDTURN_SALT_CURE, ENDTURN_OCTOLOCK, ENDTURN_SYRUP_BOMB, ENDTURN_TAUNT, ENDTURN_TORMENT, ENDTURN_ENCORE, ENDTURN_DISABLE, ENDTURN_MAGNET_RISE, ENDTURN_TELEKINESIS, ENDTURN_HEAL_BLOCK, ENDTURN_EMBARGO, ENDTURN_YAWN, ENDTURN_PERISH_SONG, ENDTURN_ROOST, ENDTURN_EMERGENCY_EXIT_3, ENDTURN_SECOND_EVENT_BLOCK, ENDTURN_TRICK_ROOM, ENDTURN_GRAVITY, ENDTURN_WATER_SPORT, ENDTURN_MUD_SPORT, ENDTURN_WONDER_ROOM, ENDTURN_MAGIC_ROOM, ENDTURN_TERRAIN, ENDTURN_THIRD_EVENT_BLOCK, ENDTURN_EMERGENCY_EXIT_4, ENDTURN_FORM_CHANGE_ABILITIES, ENDTURN_EJECT_PACK, ENDTURN_DYNAMAX, ENDTURN_COUNT, }; // Block that handles effects for each individual battler on the field (eg residual damage) enum FirstEventBlock { FIRST_EVENT_BLOCK_GMAX_MOVE_RESIDUAL, // Needs to be split FIRST_EVENT_BLOCK_SEA_OF_FIRE_DAMAGE, FIRST_EVENT_BLOCK_THRASH, // Thrash isn't handled here in vanilla but for now it is that best place for it. FIRST_EVENT_BLOCK_GRASSY_TERRAIN_HEAL, FIRST_EVENT_BLOCK_ABILITIES, FIRST_EVENT_BLOCK_HEAL_ITEMS, }; // Block that tries to remove side statuses enum SecondEventBlock { SECOND_EVENT_BLOCK_REFLECT, SECOND_EVENT_BLOCK_LIGHT_SCREEN, SECOND_EVENT_BLOCK_SAFEGUARD, SECOND_EVENT_BLOCK_MIST, SECOND_EVENT_BLOCK_TAILWIND, SECOND_EVENT_BLOCK_LUCKY_CHANT, SECOND_EVENT_BLOCK_RAINBOW, SECOND_EVENT_BLOCK_SEA_OF_FIRE, SECOND_EVENT_BLOCK_SWAMP, SECOND_EVENT_BLOCK_AURORA_VEIL, }; // Block that handles Uproar, items and non-form changing abilities enum ThirdEventBlock { THIRD_EVENT_BLOCK_UPROAR, THIRD_EVENT_BLOCK_ABILITIES, THIRD_EVENT_BLOCK_ITEMS, }; #endif // GUARD_CONSTANTS_BATTLE_END_TURN_H