<?php
    /**
     * Provides constants.
     *
     * Usefull data to be used across the site.
     *
     * @category Data
     */

     /**
      * Stage difficulty constants.
      *
      * @category Data
      */
    final class DIFFICULTY_ID{

        /**
         * Difficulty EASY (Tartarus Labyrinth only).
         */
        const EASY = 0;

        /**
         * Difficulty EASY (Scenario, TOA, Labyrinth).
         */
        const NORMAL = 0;

        /**
         * Difficulty EASY (Scenario, TOA, Labyrinth).
         */
        const HARD = 0;

        /**
         * Difficulty EASY (Scenario, Labyrinth).
         */
        const HELL = 0;
    };

    /**
     * Unit source constants.
     *
     * @category Data
     */
    final class SOURCE_ID{

        /**
         * Unknown Scroll (elemental 1-3*).
         */
        const SCROLL_UNKNOWN = 1;

        /**
         * Mystical Scroll (elemental 3-5*).
         */
        const SCROLL_MYSTICAL = 2;

        /**
         * Light and Darkness Scroll (LD 3-5*).
         */
        const SCROLL_LIGHT_AND_DARK = 3;

        /**
         * Water scroll (water 3-5*)
         */
        const SCROLL_WATER = 4;

        /**
         * Fire scroll (fire 3-5*)
         */
        const SCROLL_FIRE = 5;

        /**
         * Wind scroll (wind 3-5*)
         */
        const SCROLL_WIND = 6;

        /**
         * Legendary Scroll (elemental 4-5*)
         */
        const SCROLL_LEGENDARY = 7;

        /**
         * Summon Stones (elemental 3-5*)
         */
        const SUMMON_EXCLUSIVE = 8;

        /**
         * Legendary Summoning Pieces (4-5*)
         */
        const SUMMON_LEGENDARY_PIECES = 9;

        /**
         * Light and Darkness Scroll (LD 3-5*).
         */
        const SUMMON_LIGHT_AND_DARK_PIECES = 10;

        /**
         * Transcendance Scroll (elemental 5*)
         */
        const SCROLL_TRANSCENDANCE = 11;

        /**
         * Legendary Water Scroll (water 4-5*)
         */
        const SCROLL_LEGENDARY_WATER = 12;

        /**
         * Legendary Fire Scroll (fire 4-5*)
         */
        const SCROLL_LEGENDARY_FIRE = 13;

        /**
         * Legendary Wind Scroll (wind 4-5*)
         */
        const SCROLL_LEGENDARY_WIND = 14;
    };

    /**
     * Element constants.
     *
     * @category Data
     */
    final class ELEMENT_ID{

        /**
         * Water
         */
        const WATER = 1;

        /**
         * Fire
         */
        const FIRE = 2;

        /**
         * Wind
         */
        const WIND = 3;

        /**
         * Light
         */
        const LIGHT = 4;

        /**
         * Dark
         */
        const DARK = 5;

        /**
         * Pure
         */
        const PURE = 6;
    };

    /**
     * Unit archetype constants.
     *
     * @category Data
     */
    final class ARCHETYPE_ID{

        /**
         * None
         */
        const NONE = 0;

        /**
         * Attack
         */
        const ATTACK = 1;

        /**
         * Defense
         */
        const DEFENSE = 2;

        /**
         * HP
         */
        const HP = 3;

        /**
         * Support
         */
        const SUPPORT = 4;

        /**
         * Material
         */
        const MATERIAL = 5;
    };

    /**
     * Stat constants.
     *
     * Used for unit stats, for rune stat types, see {@see RUNE_STAT_ID}
     *
     * @category Data
     */
    final class STAT_ID{

        /**
         * HP
         */
        const HP = 1;

        /**
         * ATK
         */
        const ATK = 2;

        /**
         * DEF
         */
        const DEF = 3;

        /**
         * SPD
         */
        const SPD = 4;

        /**
         * CRIT_RATE
         */
        const CRIT_RATE = 5;

        /**
         * CRIT_DMG
         */
        const CRIT_DMG = 6;

        /**
         * RESIST
         */
        const RESIST = 7;

        /**
         * ACCURACY
         */
        const ACCURACY = 8;
    };

    /**
     * Leadr skill area constants.
     *
     * @category Data
     */
    final class EFFECT_AREA_ID{

        /**
         * General (all areas).
         */
        const GENERAL = 1;

        /**
         * Arena (offense and defense).
         */
        const ARENA = 3;

        /**
         * Dungeon (Cairos, elemental Rifts, Dimensinal Hole).
         */
        const DUNGEON = 2;

        /**
         * Guild content (battle, siege, Labyrinth).
         */
        const GUILD = 5;
    };

    /**
     * Playable area group constants.
     *
     * @category Data
     */
    final class AREA_TYPE_ID{

        /**
         * Scenario.
         */
        const SCENARIO = 1;

        /**
         * Cairos Dungeon.
         */
        const CAIROS_DUNGEON = 2;

        /**
         * Elemental Rift Dungeons.
         */
        const RIFT_DUNGEON = 3;

        /**
         * Rift Raid.
         */
        const RIFT_RAID = 4;

        /**
         * Dimensional Hole.
         */
        const DIMENSIONAL_HOLE = 5;

        /**
         * Arena.
         */
        const ARENA = 6;

        /**
         * Guild War.
         */
        const GUILD_WAR = 7;

        /**
         * Guild Siege.
         */
        const GUILD_SIEGE = 8;

        /**
         * Tartarus Labyrinth.
         */
        const TARTARUS_LABYRINTH = 9;

        /**
         * Trial of Ascension.
         */
        const TRIAL_OF_ASCENSION = 10;

        /**
         * World Boss.
         */
        const WORLD_BOSS = 11;

        /**
         * Dimensional Rift.
         */
        const DIMENSIONAL_RIFT = 12;
    };

    /**
     * Scenario area constants.
     *
     * @category Data
     */
    final class SCENARIO_ID{

        /**
         * Garen Forest.
         */
        const GAREN_FOREST = 1;

        /**
         * Mt. Siz.
         */
        const MT_SIZ = 2;

        /**
         * Kabir Ruins.
         */
        const KABIR_RUINS = 3;

        /**
         * Mt. White Ragon.
         */
        const MT_WHITE_RAGON = 4;

        /**
         * Telain Forest.
         */
        const TELAIN_FOREST = 5;

        /**
         * Hydeni Ruins.
         */
        const HYDENI_RUINS = 6;

        /**
         * Tamor Desert.
         */
        const TAMOR_DESERT = 7;

        /**
         * Vrofagus Ruins.
         */
        const VROFAGUS_RUINS = 8;

        /**
         * Faimon Volcano.
         */
        const FAIMON_VOLCANO = 9;

        /**
         * Aiden Forest.
         */
        const AIDEN_FOREST = 10;

        /**
         * Ferun Castle.
         */
        const FERUN_CASTLE = 11;

        /**
         * Mt Runar.
         */
        const MT_RUNAR = 12;

        /**
         * Chiruka Remains.
         */
        const CHIRUKA_REMAINS = 13;
    };

    /**
     * Dungeon section constants.
     *
     * Includes Cairos Dungeons and Dimension Hole Dungeons.
     *
     * @category Data
     */
    final class DUNGEON_ID{

        /**
         * Hall of Dark.
         */
        const HALL_OF_DARK = 1001;

        /**
         * Sanctuary of Dreaming Fairies.
         */
        const SANCTUARY_OF_DREAMING_FAIRIES = 1101;

        /**
         * Ellunia Remains (Fairy).
         */
        const ELLUNIA_REMAINS_FAIRY = 1201;

        /**
         * Ellunia Remains (Pixie).
         */
        const ELLUNIA_REMAINS_PIXIE = 1202;

        /**
         * Hall of Fire.
         */
        const HALL_OF_FIRE = 2001;

        /**
         * Forest of Roaring Beasts.
         */
        const FOREST_OF_ROARING_BEASTS = 2101;

        /**
         * Karzhan Remains (Warbear).
         */
        const KARZHAN_REMAINS_WARBEAR = 2201;

        /**
         * Karzhan Remains (Inugami).
         */
        const KARZHAN_REMAINS_INUGAMI = 2202;

        /**
         * Cliff of Tough Beast Men.
         */
        const CLIFF_OF_TOUGH_BEASTS_MEN = 3101;

        /**
         * Lumel Remains (Werewolf).
         */
        const LUMEL_REMAINS_WEREWOLF = 3201;

        /**
         * Lumel Remains (Martial Cat).
         */
        const KARZHAN_REMAINS_MARTIAL_CAT = 3202;

        /**
         * Hall of water.
         */
        const HALL_OF_WATER = 3001;

        /**
         * Hall of Wind.
         */
        const HALL_OF_WIND = 4001;

        /**
         * Hall of Magic.
         */
        const HALL_OF_MAGIC = 5001;

        /**
         * Necropolis.
         */
        const NECROPOLIS = 6001;

        /**
         * Hall of Light.
         */
        const HALL_OF_LIGHT = 7001;

        /**
         * Giants Keep.
         */
        const GIANTS_KEEP = 8001;

        /**
         * Dragons Lair.
         */
        const DRAGONS_LAIR = 9001;
    };

    /**
     * Elemental Rift Dungeon constants.
     *
     * @category Data
     */
    final class ELEMENTAL_RIFT_DUNGEON_ID{

        /**
         * Ice Beast.
         */
        const ICE_BEAST = 1001;

        /**
         * Fire Beast.
         */
        const FIRE_BEAST = 2001;

        /**
         * Wind Beast.
         */
        const WIND_BEAST = 3001;

        /**
         * Light Beast.
         */
        const LIGHT_BEAST = 4001;

        /**
         * Dark Beast.
         */
        const DARK_BEAST = 5001;
    };

    /**
     * Rift raid level constants.
     *
     * @category Data
     */
    final class RAID_RIFT_DUNGEON_ID{

        /**
         * Level 1.
         */
        const LEVEL_1 = 1;

        /**
         * Level 2.
         */
        const LEVEL_2 = 2;

        /**
         * Level 3.
         */
        const LEVEL_3 = 3;

        /**
         * Level 4.
         */
        const LEVEL_4 = 4;

        /**
         * Level 5.
         */
        const LEVEL_5 = 5;
    };

    /**
     * Constants for all the types of stages in the Tartarus Labyrinth.
     *
     * @category Data
     */
    final class LABYRINTH_STAGES_ID{

        /**
         * Tartarus (Labyrinth Guardian).
         */
        const TARTARUS = 1;

        /**
         * Kottos (Fire Gaurdian).
         */
        const KOTTOS = 2;

        /**
         * Leos (Waer Guardian).
         */
        const LEOS = 3;

        /**
         * Aquiles (Wind Guardian).
         */
        const AQUILES = 4;

        /**
         * Normal stage.
         */
        const NORMAL = 5;

        /**
         * Rescue stage.
         */
        const RESCUE = 6;

        /**
         * Explode stage.
         */
        const EXPLODE = 7;

        /**
         * Cool Time UP stage.
         */
        const COOL_TIME = 8;

        /**
         * Speed Limit stage.
         */
        const SPEED_LIMIT = 9;

        /**
         * Time Limit stage.
         */
        const TIME_LIMIT = 10;
    };

    /**
     * Building constants.
     *
     * @category Data
     */
    final class BUILDING_ID{

        /**
         * Summoners Tower.
         */
        const SUMMONERS_TOWER = 1;

        /**
         * Summonhenge.
         */
        const SUMMONHENGE = 2;

        /**
         * Pond of Mana.
         */
        const POND_OF_MANA = 3;

        /**
         * Crystal Mine.
         */
        const CRYSTAL_MINE = 4;

        /**
         * Gateway.
         */
        const GATEWAY = 8;

        /**
         * Temple of Wishes.
         */
        const TEMPLE_OF_WISHES = 10;

        /**
         * Magic Shop.
         */
        const MAGIC_SHOP = 11;

        /**
         * Ancient Stones.
         */
        const ANCIENT_STONES = 12;

        /**
         * Arcane Tower.
         */
        const ARCANE_TOWER = 14;

        /**
         * Crystal Titan.
         */
        const CRYSTAL_TITAN = 15;

        /**
         * Fusion Hexagram.
         */
        const FUSION_HEXAGRAM = 16;

        /**
         * Fuse Center.
         */
        const FUSE_CENTER = 17;

        /**
         * Power Up Circle.
         */
        const POWER_UP_CIRCLE = 20;

        /**
         * Tranquil Forest.
         */
        const TRANQUIL_FOREST = 22;

        /**
         * Gusty Cliffs.
         */
        const GUSTY_CLIFFS = 23;

        /**
         * Deep Forest Ent.
         */
        const DEEP_FOREST_ENT = 24;

        /**
         * Monster Storage.
         */
        const MONSTER_STORAGE = 25;

        /**
         * Transmogrification Building.
         */
        const TRANSMOGRIFICATION_BUILDING = 27;
    };

    /**
     * Decoration constants.
     *
     * @category Data
     */
    final class DECORATION_ID{

        /**
         * Guardstone.
         */
        const GUARDSTONE = 4;

        /**
         * Mana Fountain.
         */
        const MANA_FOUNTAIN = 5;

        /**
         * Sky Tribe Totem.
         */
        const SKY_TRIBE_TOTEM = 6;

        /**
         * Arcane Booster Tower.
         */
        const ARCANE_BOOSTER_TOWER = 7;

        /**
         * Crystal Altar.
         */
        const CRYSTAL_ALTAR = 8;

        /**
         * Ancient Sword.
         */
        const ANCIENT_SWORD = 9;

        /**
         * Sanctum of Energy.
         */
        const SANCTUM_OF_ENERGY = 10;

        /**
         * Mysterious Plant.
         */
        const MYSTERIOUS_PLANT = 11;

        /**
         * Fire Sanctuary.
         */
        const FIRE_SANCTUARY = 15;

        /**
         * Water Sanctuary.
         */
        const WATER_SANCTUARY = 16;

        /**
         * Wind Sanctuary.
         */
        const WIND_SANCTUARY = 17;

        /**
         * Light Sanctuary.
         */
        const LIGHT_SANCTUARY = 18;

        /**
         * Dark Sanctuary.
         */
        const DARK_SANCTUARY = 19;

        /**
         * Fallen Ancient Guardian.
         */
        const FALLEN_ANCIENT_GUARDIAN = 31;

        /**
         * Crystal Rock.
         */
        const CRYSTAL_ROCK = 34;

        /**
         * Fairy Tree.
         */
        const FAIRY_TREE = 35;

        /**
         * Flag of Battle.
         */
        const FLAG_OF_BATTLE = 36;

        /**
         * Flag of Rage.
         */
        const FLAG_OF_RAGE = 37;

        /**
         * Flag of Hope.
         */
        const FLAG_OF_HOPE = 38;

        /**
         * Flag of Will.
         */
        const FLAG_OF_WILL = 39;
    };

    /**
     * Inventory categories constants.
     *
     * @category Data
     */
    final class INVENTORY_TYPE_ID{

        /**
         * Monster.
         */
        const MONSTER = 1;

        /**
         * Currency.
         */
        const CURRENCY = 6;

        /**
         * Rune.
         */
        const RUNE = 8;

        /**
         * Scroll.
         */
        const SCROLL = 9;

        /**
         * Booster.
         */
        const BOOSTER = 10;

        /**
         * Essences.
         */
        const ESSENCES = 11;

        /**
         * Monster Piece.
         */
        const MONSTER_PIECE = 12;

        // '' => 15, Unknown. Appears in inventory_info with qty 0

        /**
         * Guild Monster piece.
         */
        const GUILD_MONSTER_PIECE = 19;

        /**
         * Rainbowmon.
         */
        const RAINBOWMON = 25;   # Possibly material monsters in general. Appears when wish returns a rainbowmon.

        /**
         * Rune Craft.
         */
        const RUNE_CRAFT = 27;

        /**
         * Craft Stuff.
         */
        const CRAFT_STUFF = 29;

        /**
         * Enhancing Monster.
         */
        const ENHANCING_MONSTER = 61;
    };

    /**
     * Items constants.
     *
     * @category Data
     */
    final class INVENTORY_ID{

        /**
         * Essence of Magic (Low).
         */
        const ESSENCE_MAGIC_LOW = 11006;

        /**
         * Essence of Magic (Mid).
         */
        const ESSENCE_MAGIC_MID = 12006;

        /**
         * Essence of Magic (High).
         */
        const ESSENCE_MAGIC_HIGH = 13006;

        /**
         * Essence of Water (Low).
         */
        const ESSENCE_WATER_LOW = 11001;

        /**
         * Essence of Water (Mid).
         */
        const ESSENCE_WATER_MID = 12001;

        /**
         * Essence of Water (High).
         */
        const ESSENCE_WATER_HIGH = 13001;

        /**
         * Essence of Fire (Low).
         */
        const ESSENCE_FIRE_LOW = 11002;

        /**
         * Essence of Fire (Mid).
         */
        const ESSENCE_FIRE_MID = 12002;

        /**
         * Essence of Fire (High).
         */
        const ESSENCE_FIRE_HIGH = 13002;

        /**
         * Essence of Wind (Low).
         */
        const ESSENCE_WIND_LOW = 11003;

        /**
         * Essence of Wind (Mid).
         */
        const ESSENCE_WIND_MID = 12003;

        /**
         * Essence of Wind (High).
         */
        const ESSENCE_WIND_HIGH = 13003;

        /**
         * Essence of Light (Low).
         */
        const ESSENCE_LIGHT_LOW = 11004;

        /**
         * Essence of Light (Mid).
         */
        const ESSENCE_LIGHT_MID = 12004;

        /**
         * Essence of Light (High).
         */
        const ESSENCE_LIGHT_HIGH = 13004;

        /**
         * Essence of Dark (Low).
         */
        const ESSENCE_DARK_LOW = 11005;

        /**
         * Essence of Dark (Mid).
         */
        const ESSENCE_DARK_MID = 12005;

        /**
         * Essence of Dark (High).
         */
        const ESSENCE_DARK_HIGH = 13005;

        /**
         * Wood.
         */
        const WOOD = 1001;

        /**
         * Leather.
         */
        const LEATHER = 1002;

        /**
         * Rock.
         */
        const ROCK = 1003;

        /**
         * Ore.
         */
        const ORE = 1004;

        /**
         * Mithril.
         */
        const MITHRIL = 1005;

        /**
         * Cloth.
         */
        const CLOTH = 1006;

        /**
         * Rune Piece.
         */
        const RUNE_PIECE = 2001;

        /**
         * Powder.
         */
        const POWDER = 3001;

        /**
         * Symbol of Harmony.
         */
        const SYMBOL_HARMONY = 4001;

        /**
         * Symbol of Transcendance.
         */
        const SYMBOL_TRANSCENDANCE = 4002;

        /**
         * Symbol of Chaos.
         */
        const SYMBOL_CHAOS = 4003;

        /**
         * Frozen Water Crystal.
         */
        const CRYSTAL_WATER = 5001;

        /**
         * Flaming Fire Crystal.
         */
        const CRYSTAL_FIRE = 5002;

        /**
         * Whirling Wind Crystal.
         */
        const CRYSTAL_WIND = 5003;

        /**
         * Shiny Light Crystal.
         */
        const CRYSTAL_LIGHT = 5004;

        /**
         * Pitch-Black Dark Crystal.
         */
        const CRYSTAL_DARK = 5005;

        /**
         * Condensed Magic Crystal.
         */
        const CRYSTAL_MAGIC = 6001;

        /**
         * Pure Crystal.
         */
        const CRYSTAL_PURE = 7001;
    };

    /**
     * Storage-able enhance monster constants.
     *
     * @category Data
     */
    final class ENHANCE_MONSTER_ID{

        /**
         * Water Angelmon.
         */
        const WATER_ANGELMON = 142110115;

        /**
         * Fire Angelmon.
         */
        const FIRE_ANGELMON = 142120115;

        /**
         * Wind Angelmon.
         */
        const WIND_ANGELMON = 142130115;

        /**
         * Light Angelmon.
         */
        const LIGHT_ANGELMON = 142140115;

        /**
         * Dark Angelmon.
         */
        const DARK_ANGELMON = 142150115;

        /**
         * Water King Angelmon.
         */
        const WATER_KING_ANGELMON = 182110115;

        /**
         * Fire King Angelmon.
         */
        const FIRE_KING_ANGELMON = 182120115;

        /**
         * Wind King Angelmon.
         */
        const WIND_KING_ANGELMON = 182130115;

        /**
         * Light King Angelmon.
         */
        const LIGHT_KING_ANGELMON = 182140115;

        /**
         * Dark King Angelmon.
         */
        const DARK_KING_ANGELMON = 182150115;

        /**
         * 2* Rainbowmon (Lv. 20).
         */
        const RAINBOWMON_2_20 = 143140220;

        /**
         * 3* Rainbowmon (Lv. 1).
         */
        const RAINBOWMON_3_1 = 143140301;

        /**
         * 3* Rainbowmon (Lv. 25).
         */
        const RAINBOWMON_3_25 = 143140325;

        /**
         * 4* Rainbowmon (Lv. 1).
         */
        const RAINBOWMON_4_1 = 143140401;

        /**
         * 4* Rainbowmon (Lv. 30).
         */
        const RAINBOWMON_4_30 = 143140430;

        /**
         * 5* Rainbowmon (Lv. 1).
         */
        const RAINBOWMON_5_1 = 143140501;

        /**
         * Devilmon.
         */
        const DEVILMON = 151050101;
        
        /**
         * Super Angelmon.
         */
        const SUPER_ANGELMON = 217140115;
    };

    /**
     * Rune set constants.
     *
     * @category Data
     */
    final class RUNE_SET_ID{

        /**
         * Energy.
         */
        const ENERGY = 1;

        /**
         * Guard.
         */
        const GUARD = 2;

        /**
         * Swift.
         */
        const SWIFT = 3;

        /**
         * Blade.
         */
        const BLADE = 4;

        /**
         * Rage.
         */
        const RAGE = 5;

        /**
         * Focus.
         */
        const FOCUS = 6;

        /**
         * Endure.
         */
        const ENDURE = 7;

        /**
         * Fatal.
         */
        const FATAL = 8;

        /**
         * Despair.
         */
        const DESPAIR = 10;

        /**
         * Vampire.
         */
        const VAMPIRE = 11;

        /**
         * Violent.
         */
        const VIOLENT = 13;

        /**
         * Nemesis.
         */
        const NEMESIS = 14;

        /**
         * Will.
         */
        const WILL = 15;

        /**
         * Shield.
         */
        const SHIELD = 16;

        /**
         * Revenge.
         */
        const REVENGE = 17;

        /**
         * Destroy.
         */
        const DESTROY = 18;

        /**
         * Fight.
         */
        const FIGHT = 19;

        /**
         * Determination.
         */
        const DETERMINATION = 20;

        /**
         * Enhance.
         */
        const ENHANCE = 21;

        /**
         * Accuracy.
         */
        const ACCURACY = 22;

        /**
         * Tolerance.
         */
        const TOLERANCE = 23;
    };

    /**
     * Rune stat constants.
     *
     * Includes all stats a rune can have. For unit stats, see{@see $STAT_ID}.
     *
     * @category Data
     */
    final class RUNE_STAT_ID{

        /**
         * HP (flat).
         */
        const HP = 1;

        /**
         * HP (percent).
         */
        const HP_P = 2;

        /**
         * Attack  (flat).
         */
        const ATK = 3;

        /**
         * Attack (percent).
         */
        const ATK_P = 4;

        /**
         * Defense  (flat).
         */
        const DEF = 5;

        /**
         * Defense (percent).
         */
        const DEF_P = 6;

        /**
         * Speed.
         */
        const SPD = 8;

        /**
         * Critical Rate.
         */
        const CRR = 9;

        /**
         * Critical Damage.
         */
        const CRD = 10;

        /**
         * Resistance.
         */
        const RES = 11;

        /**
         * Accuracy.
         */
        const ACC = 12;
    };

    /**
     * Rune (and other items) quality constants.
     *
     * @category Data
     */
    final class QUALITY_ID{

        /**
         * Normal.
         */
        const NORMAL = 1;

        /**
         * Magic.
         */
        const MAGIC = 2;

        /**
         * Rare.
         */
        const RARE = 3;

        /**
         * Hero.
         */
        const HERO = 4;

        /**
         * Legend.
         */
        const LEGEND = 5;
    };

    /**
     * Craft items constants.
     *
     * @category Data
     */
    final class CRAFT_ID{

        /**
         * Enchant Gem.
         */
        const ENCHANT_GEM = 1;

        /**
         * Grindstone.
         */
        const GRINDSTONE = 2;

        /**
         * Immemorial Gem.
         */
        const IMMEMORIAL_GEM = 3;

        /**
         * Immemorial Grindstone.
         */
        const IMMEMORIAL_GRINDSTONE = 4;
    };

    /**
     * Guild member rank constants.
     *
     * @category Data
     */
    final class GUILD_MEMBER_GRADE_ID{

        /**
         * Leader.
         */
        const LEADER = 1;

        /**
         * Viceleader.
         */
        const VICELEADER = 3;

        /**
         * Normal member.
         */
        const NORMAL = 2;
    };

    /**
     * Arena ranking constant.
     *
     * Each element contains the minimum points for a rank. To calculate rank,
     * @{see ARENA_RANKING_RANK} is neeeded too.
     *
     * @category Data
     */
    final class ARENA_RANKING_POINTS{

        /**
         * Beginer.
         */
        const BEGINER = 0;

        /**
         * Challenger 1.
         */
        const CHALLENGER_1 = 900;

        /**
         * Challenger 2.
         */
        const CHALLENGER_2 = 1000;

        /**
         * Challenger 3.
         */
        const CHALLENGER_3 = 1100;

        /**
         * Fighter 1.
         */
        const FIGHTER_1 = 1200;

        /**
         * Fighter 2.
         */
        const FIGHTER_2 = 1300;

        /**
         * Fighter 3.
         */
        const FIGHTER_3 = 1400;

        /**
         * Conqueror 1.
         */
        const CONQUEROR_1 = 1500;

        /**
         * Conqueror 2.
         */
        const CONQUEROR_2 = 1600;

        /**
         * Conqueror 3.
         */
        const CONQUEROR_3 = 1700;

        /**
         * Guardian 1.
         */
        const GUARDIAN_1 = 1700;

        /**
         * Guardian 2.
         */
        const GUARDIAN_2 = 1700;

        /**
         * Guardian 3.
         */
        const GUARDIAN_3 = 1700;

        /**
         * Legend.
         */
        const LEGEND = 1700;
    };

    /**
     * Arena ranking constant.
     *
     * Each element contains the minimum top needed for a rank. A null value
     * indicates that there is no top requeriment.To calculate rank,
     * @{see ARENA_RANKING_POINTS} is neeeded too.
     *
     * @category Data
     */
    final class ARENA_RANKING_RANK{

        /**
         * Beginer.
         */
        const BEGINER = null;

        /**
         * Challenger 1.
         */
        const CHALLENGER_1 = null;

        /**
         * Challenger 2.
         */
        const CHALLENGER_2 = null;

        /**
         * Challenger 3.
         */
        const CHALLENGER_3 = null;

        /**
         * Fighter 1.
         */
        const FIGHTER_1 = null;

        /**
         * Fighter 2.
         */
        const FIGHTER_2 = null;

        /**
         * Fighter 3.
         */
        const FIGHTER_3 = null;

        /**
         * Conqueror 1.
         */
        const CONQUEROR_1 = 10000;

        /**
         * Conqueror 2.
         */
        const CONQUEROR_2 = 3000;

        /**
         * Conqueror 3.
         */
        const CONQUEROR_3 = 1000;

        /**
         * Guardian 1.
         */
        const GUARDIAN_1 = 300;

        /**
         * Guardian 2.
         */
        const GUARDIAN_2 = 100;

        /**
         * Guardian 3.
         */
        const GUARDIAN_3 = 30;

        /**
         * Legend.
         */
        const LEGEND = 1;
    };

    /**
     * Default filter values;
     * 
     * @category Data
     */
    final class FILTER{

        /**
         * Default values for the catalog filters.
         */
        const CATALOG = [
            "ELEMENT" => 0,
            "NAME" => "",
            "MIN_STARS" => 1,
            "MAX_STARS" => 5
        ];

        /**
         * Default values for the fusion filters.
         */
        const FUSION = [
            "PRODUCT" => 0
        ];

        /**
         * Default values for the monster filters.
         */
        const MONSTER = [
            "ELEMENT" => 0,
            "NAME" => "",
            "MIN_STARS" => 1,
            "MAX_STARS" => 6,
            "IN_STORAGE" => false,
            "WITHOUT_RUNES" => false
        ];

        /**
         * Default values for the rune craft report filters.
         */
        const RUNECRAFT = [
            "MONSTER_NAME" => "",
            "MONSTER_MIN_STARS" => 5,
            "MONSTER_MAX_STARS" => 6,
            "MONSTER_IN_STORAGE" => false,
            "RUNE_MIN_STARS" => 5,
            "RUNE_MAX_STARS" => 6,
            "RUNE_MIN_LEVEL" => 0,
            "RUNE_MAX_LEVEL" => 15,
            "RUNE_MIN_QUALITY" => QUALITY_ID::HERO,
            "RUNE_MAX_QUALITY" => QUALITY_ID::LEGEND,
            "RUNE_MIN_ORIGINAL_QUALITY" => QUALITY_ID::HERO,
            "RUNE_MAX_ORIGINAL_QUALITY" => QUALITY_ID::LEGEND,
            "RUNE_MIN_EFFICIENCY" => 0,
            "RUNE_MAX_EFFICIENCY" => 100,
            "RUNE_MIN_MAX_EFFICIENCY" => 0,
            "RUNE_MAX_MAX_EFFICIENCY" => 100,
            "RUNE_SLOT" => [],
            "GRIND" => 1,
            "GRIND_MIN_QUALITY" => QUALITY_ID::RARE,
            "GRIND_STAT" => [
                RUNE_STAT_ID::HP_P,
                RUNE_STAT_ID::ATK_P,
                RUNE_STAT_ID::DEF_P,
                RUNE_STAT_ID::SPD,
                RUNE_STAT_ID::CRD,
                RUNE_STAT_ID::CRR,
                RUNE_STAT_ID::ACC
            ],
            "GEM" => 1,
            "GEM_MIN_QUALITY" => QUALITY_ID::RARE,
            "GEM_STAT_FROM" => [
                RUNE_STAT_ID::HP,
                RUNE_STAT_ID::ATK,
                RUNE_STAT_ID::DEF,
                RUNE_STAT_ID::RES
            ],
            "GEM_STAT_TO" => [
                RUNE_STAT_ID::HP_P,
                RUNE_STAT_ID::ATK_P,
                RUNE_STAT_ID::DEF_P,
                RUNE_STAT_ID::SPD,
                RUNE_STAT_ID::CRD,
                RUNE_STAT_ID::CRR,
                RUNE_STAT_ID::ACC
            ]
        ];

        /**
         * Default values for the rune upgrade report filters.
         */
        const RUNEUPGRADE = [
            "MONSTER_MIN_STARS" => 5,
            "MONSTER_MAX_STARS" => 6,
            "MONSTER_NAME" => "",
            "MONSTER_IN_STORAGE" => false,
            "RUNE_MIN_STARS" => 5,
            "RUNE_MAX_STARS" => 6,
            "RUNE_MIN_LEVEL" => 0,
            "RUNE_MAX_LEVEL" => 15,
            "RUNE_MIN_QUALITY" => QUALITY_ID::NORMAL,
            "RUNE_MAX_QUALITY" => QUALITY_ID::LEGEND,
            "RUNE_MIN_ORIGINAL_QUALITY" => QUALITY_ID::NORMAL,
            "RUNE_MAX_ORIGINAL_QUALITY" => QUALITY_ID::LEGEND,
            "RUNE_MIN_EFFICIENCY" => 0,
            "RUNE_MAX_EFFICIENCY" => 100,
            "RUNE_MIN_MAX_EFFICIENCY" => 0,
            "RUNE_MAX_MAX_EFFICIENCY" => 100,
            "RUNE_SLOT" => [],
            "ALTERNATIVE_MIN_STARS" => 5,
            "ALTERNATIVE_MIN_ORIGINAL_QUALITY" => 0,
            "ALTERNATIVE_MIN_LEVEL" => 0,
            "ALTERNATIVE_CONDITION" => 3,
            "ALTERNATIVE_SOURCE" => 0
        ];

        /**
         * Default values for the skill-up report filters.
         */
        const SKILLUP = [
            "MIN_STARS" => 5,
            "MAX_STARS" => 6,
            "MIN_NATURAL_STARS" => 5,
            "MAX_NATURAL_STARS" => 5,
            "IN_STORAGE" => false,
            "WITHOUT_RUNES" => false,
            "FAMILY" => false,
            "MAXED" => false,
            "2A" => false,
            "HOMUNCULUS" => false
        ];

        /**
         * Default values for the rune filters.
         */
        const RUNE = [
            "TYPE" => [],
            "MAIN" => [],
            "SUB" => [],
            "SLOT" => [],
            "MIN_QUALITY" => QUALITY_ID::NORMAL,
            "MAX_QUALITY" => QUALITY_ID::LEGEND,
            "MIN_ORIGINAL_QUALITY" => QUALITY_ID::NORMAL,
            "MAX_ORIGINAL_QUALITY" => QUALITY_ID::LEGEND,
            "MIN_STARS" => 1,
            "MAX_STARS" => 6,
            "MIN_LEVEL" => 0,
            "MAX_LEVEL" => 15,
            "MIN_EFFICIENCY" => 0,
            "MAX_EFFICIENCY" => 100,
            "MIN_MAX_EFFICIENCY" => 0,
            "MAX_MAX_EFFICIENCY" => 100,
            "ASSIGNED" => 1,
            "GROUP" => "SLOT"
        ];

        /**
         * Default values for the run filters.
         */
        const RUN = [
            "AREA_TYPE" => 0,
            "AREA" => 0,
            "STAGE" => 0,
            "DIFFICULTY" => 0,
            "DATE_MIN" => null,
            "DATE_MAX" => null,
            "DEFEAT" => false,
            "HELPER" => false,
            "NUMBER" => 20,
        ];

        /**
         * Default values for the rune team filters.
         */
        const TEAM = [
            "NAME" => "",
            "AREA" => null
        ];
    };

?>
