#include "constants/battle/side_effects.h" #include "consts/generated/c/battle.h" #include "consts/generated/c/battle_subscripts.h" static const int sSideEffectSubscripts[] = { [MOVE_SUBSCRIPT_PTR_NONE] = NULL, [MOVE_SUBSCRIPT_PTR_SLEEP] = BATTLE_SUBSCRIPT_FALL_ASLEEP, [MOVE_SUBSCRIPT_PTR_POISON] = BATTLE_SUBSCRIPT_POISON, [MOVE_SUBSCRIPT_PTR_BURN] = BATTLE_SUBSCRIPT_BURN, [MOVE_SUBSCRIPT_PTR_FREEZE] = BATTLE_SUBSCRIPT_FREEZE, [MOVE_SUBSCRIPT_PTR_PARALYZE] = BATTLE_SUBSCRIPT_PARALYZE, [MOVE_SUBSCRIPT_PTR_BADLY_POISON] = BATTLE_SUBSCRIPT_BADLY_POISON, [MOVE_SUBSCRIPT_PTR_CONFUSE] = BATTLE_SUBSCRIPT_CONFUSE, [MOVE_SUBSCRIPT_PTR_FLINCH] = BATTLE_SUBSCRIPT_FLINCH_MON, [MOVE_SUBSCRIPT_PTR_REST] = BATTLE_SUBSCRIPT_REST, [MOVE_SUBSCRIPT_PTR_UPROAR] = BATTLE_SUBSCRIPT_UPROAR, [MOVE_SUBSCRIPT_PTR_PAY_DAY] = BATTLE_SUBSCRIPT_PAY_DAY, [MOVE_SUBSCRIPT_PTR_VANISH_CHARGE_TURN] = BATTLE_SUBSCRIPT_VANISH_ON_CHARGE_TURN, [MOVE_SUBSCRIPT_PTR_BIND_TARGET] = BATTLE_SUBSCRIPT_BIND_START, [MOVE_SUBSCRIPT_PTR_QUARTER_RECOIL] = BATTLE_SUBSCRIPT_RECOIL_1_4, [MOVE_SUBSCRIPT_PTR_ATTACK_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_DEFENSE_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_SPEED_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_SP_ATTACK_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_SP_DEFENSE_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_ACCURACY_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_EVASION_UP_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_DEFENSE_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_SPEED_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_SP_ATTACK_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_SP_DEFENSE_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_ACCURACY_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_EVASION_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_RECHARGE_TURN] = BATTLE_SUBSCRIPT_RECHARGE_TURN, [MOVE_SUBSCRIPT_PTR_SET_RAGE_FLAG] = BATTLE_SUBSCRIPT_SET_RAGE_FLAG, [MOVE_SUBSCRIPT_PTR_STEAL_ITEM] = BATTLE_SUBSCRIPT_STEAL_ITEM, [MOVE_SUBSCRIPT_PTR_MEAN_LOOK] = BATTLE_SUBSCRIPT_MEAN_LOOK, [MOVE_SUBSCRIPT_PTR_NIGHTMARE_START] = BATTLE_SUBSCRIPT_NIGHTMARE_START, [MOVE_SUBSCRIPT_PTR_BOOST_ALL_STATS] = BATTLE_SUBSCRIPT_BOOST_ALL_STATS, [MOVE_SUBSCRIPT_PTR_RAPID_SPIN] = BATTLE_SUBSCRIPT_RAPID_SPIN, [MOVE_SUBSCRIPT_PTR_HEAL_TARGET_PARALYSIS] = BATTLE_SUBSCRIPT_HEAL_TARGET_PARALYSIS, [MOVE_SUBSCRIPT_PTR_USER_ATK_AND_DEF_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_USER_ATK_AND_DEF_DOWN_1_STAGE, [MOVE_SUBSCRIPT_PTR_RECOIL_1_3] = BATTLE_SUBSCRIPT_RECOIL_1_3, [MOVE_SUBSCRIPT_PTR_ATTACK_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_DEFENSE_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_SPEED_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_SP_ATTACK_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_SP_DEFENSE_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_ACCURACY_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_EVASION_UP_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_DEFENSE_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_SPEED_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_SP_ATTACK_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_SP_DEFENSE_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_ACCURACY_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_EVASION_DOWN_2_STAGES] = BATTLE_SUBSCRIPT_UPDATE_STAT_STAGE, [MOVE_SUBSCRIPT_PTR_THRASH] = BATTLE_SUBSCRIPT_THRASH, [MOVE_SUBSCRIPT_PTR_KNOCK_OFF] = BATTLE_SUBSCRIPT_KNOCK_OFF, [MOVE_SUBSCRIPT_PTR_USER_DEF_AND_SPDEF_UP_1_STAGE] = BATTLE_SUBSCRIPT_USER_DEF_AND_SPDEF_UP_1_STAGE, [MOVE_SUBSCRIPT_PTR_USER_ATK_AND_DEF_UP_1_STAGE] = BATTLE_SUBSCRIPT_USER_ATK_AND_DEF_UP_1_STAGE, [MOVE_SUBSCRIPT_PTR_TARGET_ATK_AND_DEF_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_TARGET_ATK_AND_DEF_DOWN_1_STAGE, [MOVE_SUBSCRIPT_PTR_USER_SPATK_AND_SPDEF_UP_1_STAGE] = BATTLE_SUBSCRIPT_USER_SPATK_AND_SPDEF_UP_1_STAGE, [MOVE_SUBSCRIPT_PTR_USER_ATK_AND_SPEED_UP_1_STAGE] = BATTLE_SUBSCRIPT_USER_ATK_AND_SPEED_UP_1_STAGE, [MOVE_SUBSCRIPT_PTR_DRAIN_HALF_DAMAGE_DEALT] = BATTLE_SUBSCRIPT_DRAIN_HALF_DAMAGE_DEALT, [MOVE_SUBSCRIPT_PTR_DREAM_EATER] = BATTLE_SUBSCRIPT_DREAM_EATER, [MOVE_SUBSCRIPT_PTR_RESET_ALL_STAT_STAGES] = BATTLE_SUBSCRIPT_RESET_ALL_STAT_STAGES, [MOVE_SUBSCRIPT_PTR_BIDE_START] = BATTLE_SUBSCRIPT_BIDE_START, [MOVE_SUBSCRIPT_PTR_STRUGGLE] = BATTLE_SUBSCRIPT_STRUGGLE, [MOVE_SUBSCRIPT_PTR_CONVERSION] = BATTLE_SUBSCRIPT_CONVERSION, [MOVE_SUBSCRIPT_PTR_RECOVER_HALF_MAX_HP] = BATTLE_SUBSCRIPT_RECOVER_HALF_MAX_HP, [MOVE_SUBSCRIPT_PTR_LIGHT_SCREEN] = BATTLE_SUBSCRIPT_LIGHT_SCREEN, [MOVE_SUBSCRIPT_PTR_REFLECT] = BATTLE_SUBSCRIPT_REFLECT, [MOVE_SUBSCRIPT_PTR_MIST] = BATTLE_SUBSCRIPT_MIST, [MOVE_SUBSCRIPT_PTR_FOCUS_ENERGY] = BATTLE_SUBSCRIPT_FOCUS_ENERGY, [MOVE_SUBSCRIPT_PTR_MIMIC] = BATTLE_SUBSCRIPT_MIMIC, [MOVE_SUBSCRIPT_PTR_LEECH_SEED_START] = BATTLE_SUBSCRIPT_LEECH_SEED_START, [MOVE_SUBSCRIPT_PTR_DISABLE_START] = BATTLE_SUBSCRIPT_DISABLE_START, [MOVE_SUBSCRIPT_PTR_ENCORE_START] = BATTLE_SUBSCRIPT_ENCORE_START, [MOVE_SUBSCRIPT_PTR_PAIN_SPLIT] = BATTLE_SUBSCRIPT_PAIN_SPLIT, [MOVE_SUBSCRIPT_PTR_CONVERSION_2] = BATTLE_SUBSCRIPT_CONVERSION_2, [MOVE_SUBSCRIPT_PTR_LOCK_ON] = BATTLE_SUBSCRIPT_LOCK_ON, [MOVE_SUBSCRIPT_PTR_SKETCH] = BATTLE_SUBSCRIPT_SKETCH, [MOVE_SUBSCRIPT_PTR_FEINT] = BATTLE_SUBSCRIPT_FEINT, [MOVE_SUBSCRIPT_PTR_DESTINY_BOND] = BATTLE_SUBSCRIPT_DESTINY_BOND, [MOVE_SUBSCRIPT_PTR_REDUCE_TARGET_PP] = BATTLE_SUBSCRIPT_REDUCE_TARGET_PP, [MOVE_SUBSCRIPT_PTR_PROTECT] = BATTLE_SUBSCRIPT_PROTECT, [MOVE_SUBSCRIPT_PTR_HEAL_BELL] = BATTLE_SUBSCRIPT_HEAL_BELL, [MOVE_SUBSCRIPT_PTR_TRY_SUBSTITUTE] = BATTLE_SUBSCRIPT_TRY_SUBSTITUTE, [MOVE_SUBSCRIPT_PTR_FORCE_TARGET_TO_SWITCH_OR_FLEE] = BATTLE_SUBSCRIPT_FORCE_TARGET_TO_SWITCH_OR_FLEE, [MOVE_SUBSCRIPT_PTR_TRANSFORM_INTO_TARGET] = BATTLE_SUBSCRIPT_TRANSFORM_INTO_TARGET, [MOVE_SUBSCRIPT_PTR_MINIMIZE] = BATTLE_SUBSCRIPT_MINIMIZE, [MOVE_SUBSCRIPT_PTR_CURSE_NORMAL] = BATTLE_SUBSCRIPT_CURSE_NORMAL, [MOVE_SUBSCRIPT_PTR_CURSE_GHOST] = BATTLE_SUBSCRIPT_CURSE_GHOST, [MOVE_SUBSCRIPT_PTR_PRINT_MESSAGE_AND_PLAY_ANIMATION] = BATTLE_SUBSCRIPT_PRINT_MESSAGE_AND_PLAY_ANIMATION, [MOVE_SUBSCRIPT_PTR_FORESIGHT] = BATTLE_SUBSCRIPT_FORESIGHT, [MOVE_SUBSCRIPT_PTR_PERISH_SONG_START] = BATTLE_SUBSCRIPT_PERISH_SONG_START, [MOVE_SUBSCRIPT_PTR_WEATHER_START] = BATTLE_SUBSCRIPT_WEATHER_START, [MOVE_SUBSCRIPT_PTR_SWAGGER] = BATTLE_SUBSCRIPT_SWAGGER, [MOVE_SUBSCRIPT_PTR_INFATUATE] = BATTLE_SUBSCRIPT_INFATUATE, [MOVE_SUBSCRIPT_PTR_SAFEGUARD_START] = BATTLE_SUBSCRIPT_SAFEGUARD_START, [MOVE_SUBSCRIPT_PTR_PRESENT_HEAL] = BATTLE_SUBSCRIPT_PRESENT_HEAL, [MOVE_SUBSCRIPT_PTR_MAGNITUDE] = BATTLE_SUBSCRIPT_MAGNITUDE, [MOVE_SUBSCRIPT_PTR_BATON_PASS] = BATTLE_SUBSCRIPT_BATON_PASS, [MOVE_SUBSCRIPT_PTR_BELLY_DRUM] = BATTLE_SUBSCRIPT_BELLY_DRUM, [MOVE_SUBSCRIPT_PTR_TELEPORT] = BATTLE_SUBSCRIPT_TELEPORT, [MOVE_SUBSCRIPT_PTR_FUTURE_SIGHT_START] = BATTLE_SUBSCRIPT_FUTURE_SIGHT_START, [MOVE_SUBSCRIPT_PTR_STOCKPILE] = BATTLE_SUBSCRIPT_STOCKPILE, [MOVE_SUBSCRIPT_PTR_SWALLOW] = BATTLE_SUBSCRIPT_SWALLOW, [MOVE_SUBSCRIPT_PTR_TORMENT_START] = BATTLE_SUBSCRIPT_TORMENT_START, [MOVE_SUBSCRIPT_PTR_FLATTER] = BATTLE_SUBSCRIPT_FLATTER, [MOVE_SUBSCRIPT_PTR_MEMENTO] = BATTLE_SUBSCRIPT_MEMENTO, [MOVE_SUBSCRIPT_PTR_CHARGE] = BATTLE_SUBSCRIPT_CHARGE, [MOVE_SUBSCRIPT_PTR_TAUNT_START] = BATTLE_SUBSCRIPT_TAUNT_START, [MOVE_SUBSCRIPT_PTR_EXCHANGE_ITEMS] = BATTLE_SUBSCRIPT_EXCHANGE_ITEMS, [MOVE_SUBSCRIPT_PTR_COPY_ABILITY] = BATTLE_SUBSCRIPT_COPY_ABILITY, [MOVE_SUBSCRIPT_PTR_BREAK_SCREENS] = BATTLE_SUBSCRIPT_BREAK_SCREENS, [MOVE_SUBSCRIPT_PTR_YAWN] = BATTLE_SUBSCRIPT_YAWN, [MOVE_SUBSCRIPT_PTR_EXCHANGE_ABILITIES] = BATTLE_SUBSCRIPT_EXCHANGE_ABILITIES, [MOVE_SUBSCRIPT_PTR_RECOVER_PSN_PRZ_BRN] = BATTLE_SUBSCRIPT_RECOVER_PSN_PRZ_BRN, [MOVE_SUBSCRIPT_PTR_ROOST] = BATTLE_SUBSCRIPT_ROOST, [MOVE_SUBSCRIPT_PTR_HEAL_TARGET_SLEEP] = BATTLE_SUBSCRIPT_HEAL_TARGET_SLEEP, [MOVE_SUBSCRIPT_PTR_GRAVITY_START] = BATTLE_SUBSCRIPT_GRAVITY_START, [MOVE_SUBSCRIPT_PTR_MIRACLE_EYE] = BATTLE_SUBSCRIPT_MIRACLE_EYE, [MOVE_SUBSCRIPT_PTR_HEALING_WISH] = BATTLE_SUBSCRIPT_HEALING_WISH, [MOVE_SUBSCRIPT_PTR_TAILWIND_START] = BATTLE_SUBSCRIPT_TAILWIND_START, [MOVE_SUBSCRIPT_PTR_USER_DEF_AND_SPDEF_DOWN_1_STAGE] = BATTLE_SUBSCRIPT_USER_DEF_AND_SPDEF_DOWN_1_STAGE, [MOVE_SUBSCRIPT_PTR_USER_SWAP_ATK_AND_DEF] = BATTLE_SUBSCRIPT_USER_SWAP_ATK_AND_DEF, [MOVE_SUBSCRIPT_PTR_SUPPRESS_TARGET_ABILITY] = BATTLE_SUBSCRIPT_SUPPRESS_TARGET_ABILITY, [MOVE_SUBSCRIPT_PTR_LUCKY_CHANT_START] = BATTLE_SUBSCRIPT_LUCKY_CHANT_START, [MOVE_SUBSCRIPT_PTR_EXCHANGE_ATK_AND_SPATK_STAGES] = BATTLE_SUBSCRIPT_EXCHANGE_ATK_AND_SPATK_STAGES, [MOVE_SUBSCRIPT_PTR_EXCHANGE_DEF_AND_SPDEF_STAGES] = BATTLE_SUBSCRIPT_EXCHANGE_DEF_AND_SPDEF_STAGES, [MOVE_SUBSCRIPT_PTR_GIVE_TARGET_INSOMNIA] = BATTLE_SUBSCRIPT_GIVE_TARGET_INSOMNIA, [MOVE_SUBSCRIPT_PTR_EXCHANGE_ALL_STAT_STAGES] = BATTLE_SUBSCRIPT_EXCHANGE_ALL_STAT_STAGES, [MOVE_SUBSCRIPT_PTR_RECOIL_1_3_CHANCE_TO_BURN] = BATTLE_SUBSCRIPT_RECOIL_1_3_CHANCE_TO_BURN, [MOVE_SUBSCRIPT_PTR_DEFOG] = BATTLE_SUBSCRIPT_DEFOG, [MOVE_SUBSCRIPT_PTR_HEAL_BLOCK_START] = BATTLE_SUBSCRIPT_HEAL_BLOCK_START, [MOVE_SUBSCRIPT_PTR_ATTACK_THEN_SWITCH_OUT] = BATTLE_SUBSCRIPT_ATTACK_THEN_SWITCH_OUT, [MOVE_SUBSCRIPT_PTR_EMBARGO_START] = BATTLE_SUBSCRIPT_EMBARGO_START, [MOVE_SUBSCRIPT_PTR_PLUCK] = BATTLE_SUBSCRIPT_PLUCK, [MOVE_SUBSCRIPT_PTR_FLING] = BATTLE_SUBSCRIPT_FLING, [MOVE_SUBSCRIPT_PTR_RECOIL_1_3_CHANCE_TO_PARALYZE] = BATTLE_SUBSCRIPT_RECOIL_1_3_CHANCE_TO_PARALYZE, [MOVE_SUBSCRIPT_PTR_RECOIL_1_2] = BATTLE_SUBSCRIPT_RECOIL_1_2, [MOVE_SUBSCRIPT_PTR_BURN_OR_FLINCH] = BATTLE_SUBSCRIPT_BURN_OR_FLINCH, [MOVE_SUBSCRIPT_PTR_FREEZE_OR_FLINCH] = BATTLE_SUBSCRIPT_FREEZE_OR_FLINCH, [MOVE_SUBSCRIPT_PTR_PARALYZE_OR_FLINCH] = BATTLE_SUBSCRIPT_PARALYZE_OR_FLINCH, [MOVE_SUBSCRIPT_PTR_CHATTER] = BATTLE_SUBSCRIPT_CHATTER, [MOVE_SUBSCRIPT_PTR_LUNAR_DANCE] = BATTLE_SUBSCRIPT_LUNAR_DANCE, [MOVE_SUBSCRIPT_PTR_GIVE_TARGET_OWN_STATUS] = BATTLE_SUBSCRIPT_GIVE_TARGET_OWN_STATUS, };