#include "constants/battle.h"

#include "res/battle/scripts/sub_seq.naix.h"

// clang-format off
static const int sSideEffectSubscripts[] = {
    [MOVE_SUBSCRIPT_PTR_NONE]                             = NULL,
    [MOVE_SUBSCRIPT_PTR_SLEEP]                            = subscript_fall_asleep,
    [MOVE_SUBSCRIPT_PTR_POISON]                           = subscript_poison,
    [MOVE_SUBSCRIPT_PTR_BURN]                             = subscript_burn,
    [MOVE_SUBSCRIPT_PTR_FREEZE]                           = subscript_freeze,
    [MOVE_SUBSCRIPT_PTR_PARALYZE]                         = subscript_paralyze,
    [MOVE_SUBSCRIPT_PTR_BADLY_POISON]                     = subscript_badly_poison,
    [MOVE_SUBSCRIPT_PTR_CONFUSE]                          = subscript_confuse,
    [MOVE_SUBSCRIPT_PTR_FLINCH]                           = subscript_flinch_mon,
    [MOVE_SUBSCRIPT_PTR_REST]                             = subscript_rest,
    [MOVE_SUBSCRIPT_PTR_UPROAR]                           = subscript_uproar,
    [MOVE_SUBSCRIPT_PTR_PAY_DAY]                          = subscript_pay_day,
    [MOVE_SUBSCRIPT_PTR_VANISH_CHARGE_TURN]               = subscript_vanish_on_charge_turn,
    [MOVE_SUBSCRIPT_PTR_BIND_TARGET]                      = subscript_bind_start,
    [MOVE_SUBSCRIPT_PTR_QUARTER_RECOIL]                   = subscript_recoil_1_4,
    [MOVE_SUBSCRIPT_PTR_ATTACK_UP_1_STAGE]                = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_DEFENSE_UP_1_STAGE]               = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_SPEED_UP_1_STAGE]                 = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_SP_ATTACK_UP_1_STAGE]             = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_SP_DEFENSE_UP_1_STAGE]            = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_ACCURACY_UP_1_STAGE]              = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_EVASION_UP_1_STAGE]               = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_1_STAGE]              = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_DEFENSE_DOWN_1_STAGE]             = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_SPEED_DOWN_1_STAGE]               = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_SP_ATTACK_DOWN_1_STAGE]           = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_SP_DEFENSE_DOWN_1_STAGE]          = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_ACCURACY_DOWN_1_STAGE]            = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_EVASION_DOWN_1_STAGE]             = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_RECHARGE_TURN]                    = subscript_recharge_turn,
    [MOVE_SUBSCRIPT_PTR_SET_RAGE_FLAG]                    = subscript_set_rage_flag,
    [MOVE_SUBSCRIPT_PTR_STEAL_ITEM]                       = subscript_steal_item,
    [MOVE_SUBSCRIPT_PTR_MEAN_LOOK]                        = subscript_mean_look,
    [MOVE_SUBSCRIPT_PTR_NIGHTMARE_START]                  = subscript_nightmare_start,
    [MOVE_SUBSCRIPT_PTR_BOOST_ALL_STATS]                  = subscript_boost_all_stats,
    [MOVE_SUBSCRIPT_PTR_RAPID_SPIN]                       = subscript_rapid_spin,
    [MOVE_SUBSCRIPT_PTR_HEAL_TARGET_PARALYSIS]            = subscript_heal_target_paralysis,
    [MOVE_SUBSCRIPT_PTR_USER_ATK_AND_DEF_DOWN_1_STAGE]    = subscript_user_atk_and_def_down_1_stage,
    [MOVE_SUBSCRIPT_PTR_RECOIL_1_3]                       = subscript_recoil_1_3,
    [MOVE_SUBSCRIPT_PTR_ATTACK_UP_2_STAGES]               = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_DEFENSE_UP_2_STAGES]              = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_SPEED_UP_2_STAGES]                = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_SP_ATTACK_UP_2_STAGES]            = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_SP_DEFENSE_UP_2_STAGES]           = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_ACCURACY_UP_2_STAGES]             = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_EVASION_UP_2_STAGES]              = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_2_STAGES]             = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_DEFENSE_DOWN_2_STAGES]            = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_SPEED_DOWN_2_STAGES]              = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_SP_ATTACK_DOWN_2_STAGES]          = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_SP_DEFENSE_DOWN_2_STAGES]         = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_ACCURACY_DOWN_2_STAGES]           = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_EVASION_DOWN_2_STAGES]            = subscript_update_stat_stage,
    [MOVE_SUBSCRIPT_PTR_THRASH]                           = subscript_thrash,
    [MOVE_SUBSCRIPT_PTR_KNOCK_OFF]                        = subscript_knock_off,
    [MOVE_SUBSCRIPT_PTR_USER_DEF_AND_SPDEF_UP_1_STAGE]    = subscript_user_def_and_spdef_up_1_stage,
    [MOVE_SUBSCRIPT_PTR_USER_ATK_AND_DEF_UP_1_STAGE]      = subscript_user_atk_and_def_up_1_stage,
    [MOVE_SUBSCRIPT_PTR_TARGET_ATK_AND_DEF_DOWN_1_STAGE]  = subscript_target_atk_and_def_down_1_stage,
    [MOVE_SUBSCRIPT_PTR_USER_SPATK_AND_SPDEF_UP_1_STAGE]  = subscript_user_spatk_and_spdef_up_1_stage,
    [MOVE_SUBSCRIPT_PTR_USER_ATK_AND_SPEED_UP_1_STAGE]    = subscript_user_atk_and_speed_up_1_stage,
    [MOVE_SUBSCRIPT_PTR_DRAIN_HALF_DAMAGE_DEALT]          = subscript_drain_half_damage_dealt,
    [MOVE_SUBSCRIPT_PTR_DREAM_EATER]                      = subscript_dream_eater,
    [MOVE_SUBSCRIPT_PTR_RESET_ALL_STAT_STAGES]            = subscript_reset_all_stat_stages,
    [MOVE_SUBSCRIPT_PTR_BIDE_START]                       = subscript_bide_start,
    [MOVE_SUBSCRIPT_PTR_STRUGGLE]                         = subscript_struggle,
    [MOVE_SUBSCRIPT_PTR_CONVERSION]                       = subscript_conversion,
    [MOVE_SUBSCRIPT_PTR_RECOVER_HALF_MAX_HP]              = subscript_recover_half_max_hp,
    [MOVE_SUBSCRIPT_PTR_LIGHT_SCREEN]                     = subscript_light_screen,
    [MOVE_SUBSCRIPT_PTR_REFLECT]                          = subscript_reflect,
    [MOVE_SUBSCRIPT_PTR_MIST]                             = subscript_mist,
    [MOVE_SUBSCRIPT_PTR_FOCUS_ENERGY]                     = subscript_focus_energy,
    [MOVE_SUBSCRIPT_PTR_MIMIC]                            = subscript_mimic,
    [MOVE_SUBSCRIPT_PTR_LEECH_SEED_START]                 = subscript_leech_seed_start,
    [MOVE_SUBSCRIPT_PTR_DISABLE_START]                    = subscript_disable_start,
    [MOVE_SUBSCRIPT_PTR_ENCORE_START]                     = subscript_encore_start,
    [MOVE_SUBSCRIPT_PTR_PAIN_SPLIT]                       = subscript_pain_split,
    [MOVE_SUBSCRIPT_PTR_CONVERSION_2]                     = subscript_conversion_2,
    [MOVE_SUBSCRIPT_PTR_LOCK_ON]                          = subscript_lock_on,
    [MOVE_SUBSCRIPT_PTR_SKETCH]                           = subscript_sketch,
    [MOVE_SUBSCRIPT_PTR_FEINT]                            = subscript_feint,
    [MOVE_SUBSCRIPT_PTR_DESTINY_BOND]                     = subscript_destiny_bond,
    [MOVE_SUBSCRIPT_PTR_REDUCE_TARGET_PP]                 = subscript_reduce_target_pp,
    [MOVE_SUBSCRIPT_PTR_PROTECT]                          = subscript_protect,
    [MOVE_SUBSCRIPT_PTR_HEAL_BELL]                        = subscript_heal_bell,
    [MOVE_SUBSCRIPT_PTR_TRY_SUBSTITUTE]                   = subscript_try_substitute,
    [MOVE_SUBSCRIPT_PTR_FORCE_TARGET_TO_SWITCH_OR_FLEE]   = subscript_force_target_to_switch_or_flee,
    [MOVE_SUBSCRIPT_PTR_TRANSFORM_INTO_TARGET]            = subscript_transform_into_target,
    [MOVE_SUBSCRIPT_PTR_MINIMIZE]                         = subscript_minimize,
    [MOVE_SUBSCRIPT_PTR_CURSE_NORMAL]                     = subscript_curse_normal,
    [MOVE_SUBSCRIPT_PTR_CURSE_GHOST]                      = subscript_curse_ghost,
    [MOVE_SUBSCRIPT_PTR_PRINT_MESSAGE_AND_PLAY_ANIMATION] = subscript_print_message_and_play_animation,
    [MOVE_SUBSCRIPT_PTR_FORESIGHT]                        = subscript_foresight,
    [MOVE_SUBSCRIPT_PTR_PERISH_SONG_START]                = subscript_perish_song_start,
    [MOVE_SUBSCRIPT_PTR_WEATHER_START]                    = subscript_weather_start,
    [MOVE_SUBSCRIPT_PTR_SWAGGER]                          = subscript_swagger,
    [MOVE_SUBSCRIPT_PTR_INFATUATE]                        = subscript_infatuate,
    [MOVE_SUBSCRIPT_PTR_SAFEGUARD_START]                  = subscript_safeguard_start,
    [MOVE_SUBSCRIPT_PTR_PRESENT_HEAL]                     = subscript_present_heal,
    [MOVE_SUBSCRIPT_PTR_MAGNITUDE]                        = subscript_magnitude,
    [MOVE_SUBSCRIPT_PTR_BATON_PASS]                       = subscript_baton_pass,
    [MOVE_SUBSCRIPT_PTR_BELLY_DRUM]                       = subscript_belly_drum,
    [MOVE_SUBSCRIPT_PTR_TELEPORT]                         = subscript_teleport,
    [MOVE_SUBSCRIPT_PTR_FUTURE_SIGHT_START]               = subscript_future_sight_start,
    [MOVE_SUBSCRIPT_PTR_STOCKPILE]                        = subscript_stockpile,
    [MOVE_SUBSCRIPT_PTR_SWALLOW]                          = subscript_swallow,
    [MOVE_SUBSCRIPT_PTR_TORMENT_START]                    = subscript_torment_start,
    [MOVE_SUBSCRIPT_PTR_FLATTER]                          = subscript_flatter,
    [MOVE_SUBSCRIPT_PTR_MEMENTO]                          = subscript_memento,
    [MOVE_SUBSCRIPT_PTR_CHARGE]                           = subscript_charge,
    [MOVE_SUBSCRIPT_PTR_TAUNT_START]                      = subscript_taunt_start,
    [MOVE_SUBSCRIPT_PTR_EXCHANGE_ITEMS]                   = subscript_exchange_items,
    [MOVE_SUBSCRIPT_PTR_COPY_ABILITY]                     = subscript_copy_ability,
    [MOVE_SUBSCRIPT_PTR_BREAK_SCREENS]                    = subscript_break_screens,
    [MOVE_SUBSCRIPT_PTR_YAWN]                             = subscript_yawn,
    [MOVE_SUBSCRIPT_PTR_EXCHANGE_ABILITIES]               = subscript_exchange_abilities,
    [MOVE_SUBSCRIPT_PTR_RECOVER_PSN_PRZ_BRN]              = subscript_recover_psn_prz_brn,
    [MOVE_SUBSCRIPT_PTR_ROOST]                            = subscript_roost,
    [MOVE_SUBSCRIPT_PTR_HEAL_TARGET_SLEEP]                = subscript_heal_target_sleep,
    [MOVE_SUBSCRIPT_PTR_GRAVITY_START]                    = subscript_gravity_start,
    [MOVE_SUBSCRIPT_PTR_MIRACLE_EYE]                      = subscript_miracle_eye,
    [MOVE_SUBSCRIPT_PTR_HEALING_WISH]                     = subscript_healing_wish,
    [MOVE_SUBSCRIPT_PTR_TAILWIND_START]                   = subscript_tailwind_start,
    [MOVE_SUBSCRIPT_PTR_USER_DEF_AND_SPDEF_DOWN_1_STAGE]  = subscript_user_def_and_spdef_down_1_stage,
    [MOVE_SUBSCRIPT_PTR_USER_SWAP_ATK_AND_DEF]            = subscript_user_swap_atk_and_def,
    [MOVE_SUBSCRIPT_PTR_SUPPRESS_TARGET_ABILITY]          = subscript_suppress_target_ability,
    [MOVE_SUBSCRIPT_PTR_LUCKY_CHANT_START]                = subscript_lucky_chant_start,
    [MOVE_SUBSCRIPT_PTR_EXCHANGE_ATK_AND_SPATK_STAGES]    = subscript_exchange_atk_and_spatk_stages,
    [MOVE_SUBSCRIPT_PTR_EXCHANGE_DEF_AND_SPDEF_STAGES]    = subscript_exchange_def_and_spdef_stages,
    [MOVE_SUBSCRIPT_PTR_GIVE_TARGET_INSOMNIA]             = subscript_give_target_insomnia,
    [MOVE_SUBSCRIPT_PTR_EXCHANGE_ALL_STAT_STAGES]         = subscript_exchange_all_stat_stages,
    [MOVE_SUBSCRIPT_PTR_RECOIL_1_3_CHANCE_TO_BURN]        = subscript_recoil_1_3_chance_to_burn,
    [MOVE_SUBSCRIPT_PTR_DEFOG]                            = subscript_defog,
    [MOVE_SUBSCRIPT_PTR_HEAL_BLOCK_START]                 = subscript_heal_block_start,
    [MOVE_SUBSCRIPT_PTR_ATTACK_THEN_SWITCH_OUT]           = subscript_attack_then_switch_out,
    [MOVE_SUBSCRIPT_PTR_EMBARGO_START]                    = subscript_embargo_start,
    [MOVE_SUBSCRIPT_PTR_PLUCK]                            = subscript_pluck,
    [MOVE_SUBSCRIPT_PTR_FLING]                            = subscript_fling,
    [MOVE_SUBSCRIPT_PTR_RECOIL_1_3_CHANCE_TO_PARALYZE]    = subscript_recoil_1_3_chance_to_paralyze,
    [MOVE_SUBSCRIPT_PTR_RECOIL_1_2]                       = subscript_recoil_1_2,
    [MOVE_SUBSCRIPT_PTR_BURN_OR_FLINCH]                   = subscript_burn_or_flinch,
    [MOVE_SUBSCRIPT_PTR_FREEZE_OR_FLINCH]                 = subscript_freeze_or_flinch,
    [MOVE_SUBSCRIPT_PTR_PARALYZE_OR_FLINCH]               = subscript_paralyze_or_flinch,
    [MOVE_SUBSCRIPT_PTR_CHATTER]                          = subscript_chatter,
    [MOVE_SUBSCRIPT_PTR_LUNAR_DANCE]                      = subscript_lunar_dance,
    [MOVE_SUBSCRIPT_PTR_GIVE_TARGET_OWN_STATUS]           = subscript_give_target_own_status,
};
// clang-format on
