from enum import IntEnum


class AccessoryPreviewErrorEnum(IntEnum):
    PREVIEW_ERROR = 0
    PREVIEW_COOLDOWN = 1
    PREVIEW_BAD_ITEM = 2


class AggressableStatusEnum(IntEnum):
    NON_AGGRESSABLE = 0
    PvP_ENABLED_AGGRESSABLE = 10
    PvP_ENABLED_NON_AGGRESSABLE = 11
    AvA_ENABLED_AGGRESSABLE = 20
    AvA_ENABLED_NON_AGGRESSABLE = 21
    AvA_DISQUALIFIED = 22
    AvA_PREQUALIFIED_AGGRESSABLE = 23


class AlignmentSideEnum(IntEnum):
    ALIGNMENT_NEUTRAL = 0
    ALIGNMENT_ANGEL = 1
    ALIGNMENT_EVIL = 2
    ALIGNMENT_MERCENARY = 3


class AllianceRightsBitEnum(IntEnum):
    ALLIANCE_RIGHT_NONE = 0
    ALLIANCE_RIGHT_BOSS = 1
    ALLIANCE_RIGHT_MANAGE_PRISMS = 2
    ALLIANCE_RIGHT_TALK_IN_CHAN = 4
    ALLIANCE_RIGHT_RECRUIT_GUILDS = 8
    ALLIANCE_RIGHT_KICK_GUILDS = 16
    ALLIANCE_RIGHT_MANAGE_RIGHTS = 32


class BoostableCharacteristicEnum(IntEnum):
    BOOSTABLE_CHARAC_STRENGTH = 10
    BOOSTABLE_CHARAC_VITALITY = 11
    BOOSTABLE_CHARAC_WISDOM = 12
    BOOSTABLE_CHARAC_CHANCE = 13
    BOOSTABLE_CHARAC_AGILITY = 14
    BOOSTABLE_CHARAC_INTELLIGENCE = 15


class BreedEnum(IntEnum):
    UNDEFINED = 0
    Feca = 1
    Osamodas = 2
    Enutrof = 3
    Sram = 4
    Xelor = 5
    Ecaflip = 6
    Eniripsa = 7
    Iop = 8
    Cra = 9
    Sadida = 10
    Sacrieur = 11
    Pandawa = 12
    Roublard = 13
    Zobal = 14
    Steamer = 15
    Eliotrope = 16
    Huppermage = 17
    Ouginak = 18


class BuildTypeEnum(IntEnum):
    RELEASE = 0
    BETA = 1
    ALPHA = 2
    TESTING = 3
    INTERNAL = 4
    DEBUG = 5
    EXPERIMENTAL = 6


class CharacterCreationResultEnum(IntEnum):
    OK = 0
    ERR_NO_REASON = 1
    ERR_INVALID_NAME = 2
    ERR_NAME_ALREADY_EXISTS = 3
    ERR_TOO_MANY_CHARACTERS = 4
    ERR_NOT_ALLOWED = 5
    ERR_NEW_PLAYER_NOT_ALLOWED = 6
    ERR_RESTRICED_ZONE = 7
    ERR_INCONSISTENT_COMMUNITY = 8


class CharacterDeletionErrorEnum(IntEnum):
    DEL_ERR_NO_REASON = 1
    DEL_ERR_TOO_MANY_CHAR_DELETION = 2
    DEL_ERR_BAD_SECRET_ANSWER = 3
    DEL_ERR_RESTRICED_ZONE = 4


class CharacterInventoryPositionEnum(IntEnum):
    ACCESSORY_POSITION_HAT = 6
    ACCESSORY_POSITION_CAPE = 7
    ACCESSORY_POSITION_BELT = 3
    ACCESSORY_POSITION_BOOTS = 5
    ACCESSORY_POSITION_AMULET = 0
    ACCESSORY_POSITION_SHIELD = 15
    ACCESSORY_POSITION_WEAPON = 1
    ACCESSORY_POSITION_PETS = 8
    ACCESSORY_POSITION_RIDE_HARNESS = 29
    INVENTORY_POSITION_RING_LEFT = 2
    INVENTORY_POSITION_RING_RIGHT = 4
    INVENTORY_POSITION_DOFUS_1 = 9
    INVENTORY_POSITION_DOFUS_2 = 10
    INVENTORY_POSITION_DOFUS_3 = 11
    INVENTORY_POSITION_DOFUS_4 = 12
    INVENTORY_POSITION_DOFUS_5 = 13
    INVENTORY_POSITION_DOFUS_6 = 14
    INVENTORY_POSITION_MOUNT = 16
    INVENTORY_POSITION_MUTATION = 20
    INVENTORY_POSITION_BOOST_FOOD = 21
    INVENTORY_POSITION_FIRST_BONUS = 22
    INVENTORY_POSITION_SECOND_BONUS = 23
    INVENTORY_POSITION_FIRST_MALUS = 24
    INVENTORY_POSITION_SECOND_MALUS = 25
    INVENTORY_POSITION_ROLEPLAY_BUFFER = 26
    INVENTORY_POSITION_FOLLOWER = 27
    INVENTORY_POSITION_COMPANION = 28
    INVENTORY_POSITION_COSTUME = 30
    INVENTORY_POSITION_NOT_EQUIPED = 63


class CharacterRemodelingEnum(IntEnum):
    CHARACTER_REMODELING_NOT_APPLICABLE = 0
    CHARACTER_REMODELING_NAME = 1
    CHARACTER_REMODELING_COLORS = 2
    CHARACTER_REMODELING_COSMETIC = 4
    CHARACTER_REMODELING_BREED = 8
    CHARACTER_REMODELING_GENDER = 16
    CHARACTER_OPT_REMODELING_NAME = 32


class CharacterSpellModificationTypeEnum(IntEnum):
    INVALID_MODIFICATION = 0
    RANGEABLE = 1
    DAMAGE = 2
    BASE_DAMAGE = 3
    HEAL_BONUS = 4
    AP_COST = 5
    CAST_INTERVAL = 6
    CAST_INTERVAL_SET = 7
    CRITICAL_HIT_BONUS = 8
    CAST_LINE = 9
    LOS = 10
    MAX_CAST_PER_TURN = 11
    MAX_CAST_PER_TARGET = 12
    RANGE = 13


class ChatActivableChannelsEnum(IntEnum):
    CHANNEL_GLOBAL = 0
    CHANNEL_TEAM = 1
    CHANNEL_GUILD = 2
    CHANNEL_ALLIANCE = 3
    CHANNEL_PARTY = 4
    CHANNEL_SALES = 5
    CHANNEL_SEEK = 6
    CHANNEL_NOOB = 7
    CHANNEL_ADMIN = 8
    CHANNEL_ADS = 12
    CHANNEL_ARENA = 13
    CHANNEL_COMMUNITY = 14
    PSEUDO_CHANNEL_PRIVATE = 9
    PSEUDO_CHANNEL_INFO = 10
    PSEUDO_CHANNEL_FIGHT_LOG = 11


class ChatChannelsMultiEnum(IntEnum):
    CHANNEL_GLOBAL = 0
    CHANNEL_TEAM = 1
    CHANNEL_GUILD = 2
    CHANNEL_ALLIANCE = 3
    CHANNEL_PARTY = 4
    CHANNEL_SALES = 5
    CHANNEL_SEEK = 6
    CHANNEL_NOOB = 7
    CHANNEL_ADMIN = 8
    CHANNEL_ADS = 12
    CHANNEL_ARENA = 13
    CHANNEL_COMMUNITY = 14


class ChatErrorEnum(IntEnum):
    CHAT_ERROR_UNKNOWN = 0
    CHAT_ERROR_RECEIVER_NOT_FOUND = 1
    CHAT_ERROR_INTERIOR_MONOLOGUE = 2
    CHAT_ERROR_NO_GUILD = 3
    CHAT_ERROR_NO_PARTY = 4
    CHAT_ERROR_ALLIANCE = 5
    CHAT_ERROR_INVALID_MAP = 6
    CHAT_ERROR_NO_PARTY_ARENA = 7
    CHAT_ERROR_NO_TEAM = 8
    CHAT_ERROR_MALFORMED_CONTENT = 9
    CHAT_ERROR_NO_CHANNEL_COMMUNITY = 10


class ClientInstallTypeEnum(IntEnum):
    CLIENT_INSTALL_UNKNOWN = 0
    CLIENT_BUNDLE = 1
    CLIENT_STREAMING = 2


class ClientTechnologyEnum(IntEnum):
    CLIENT_TECHNOLOGY_UNKNOWN = 0
    CLIENT_AIR = 1
    CLIENT_FLASH = 2


class CompassTypeEnum(IntEnum):
    COMPASS_TYPE_SIMPLE = 0
    COMPASS_TYPE_SPOUSE = 1
    COMPASS_TYPE_PARTY = 2
    COMPASS_TYPE_PVP_SEEK = 3
    COMPASS_TYPE_QUEST = 4


class ConsoleMessageTypeEnum(IntEnum):
    CONSOLE_TEXT_MESSAGE = 0
    CONSOLE_INFO_MESSAGE = 1
    CONSOLE_ERR_MESSAGE = 2


class CraftResultEnum(IntEnum):
    CRAFT_IMPOSSIBLE = 0
    CRAFT_FAILED = 1
    CRAFT_SUCCESS = 2
    CRAFT_NEUTRAL = 3


class DareCriteriaTypeEnum(IntEnum):
    MONSTER_ID = 0
    CHALLENGE_ID = 1
    IDOLS = 2
    IDOLS_SCORE = 3
    MAX_CHAR_LVL = 4
    MAX_FIGHT_TURNS = 5
    MAX_COUNT_CHAR = 6
    MIN_COUNT_CHAR = 7
    FORBIDDEN_BREEDS = 8
    MANDATORY_BREEDS = 9
    MIN_COUNT_MONSTERS = 10


class DareErrorEnum(IntEnum):
    UKNOWN_ERROR = 0
    DARE_CREATION_FAILED = 1
    DARE_UNKNOWN = 2
    DARE_CANT_CANCEL = 3
    DARE_REWARD_UNKNOWN = 4


class DebugLevelEnum(IntEnum):
    LEVEL_TRACE = 0
    LEVEL_DEBUG = 1
    LEVEL_INFO = 2
    LEVEL_WARN = 3
    LEVEL_ERROR = 4
    LEVEL_FATAL = 5


class DelayedActionTypeEnum(IntEnum):
    DELAYED_ACTION_DISCONNECT = 0
    DELAYED_ACTION_OBJECT_USE = 1
    DELAYED_ACTION_JOIN_CHARACTER = 2
    DELAYED_ACTION_AGGRESSION_IMMUNE = 3


class DialogTypeEnum(IntEnum):
    DIALOG_BOOK = 0
    DIALOG_DIALOG = 1
    DIALOG_LOCKABLE = 2
    DIALOG_PURCHASABLE = 3
    DIALOG_GUILD_INVITATION = 4
    DIALOG_GUILD_CREATE = 5
    DIALOG_GUILD_RENAME = 6
    DIALOG_MARRIAGE = 7
    DIALOG_DUNGEON_MEETING = 8
    DIALOG_SPELL_FORGET = 9
    DIALOG_TELEPORTER = 10
    DIALOG_EXCHANGE = 11
    DIALOG_ALLIANCE_INVITATION = 12
    DIALOG_ALLIANCE_CREATE = 13
    DIALOG_ALLIANCE_RENAME = 14
    DIALOG_HAVENBAG_MEETING = 15


class DirectionsEnum(IntEnum):
    DIRECTION_EAST = 0
    DIRECTION_SOUTH_EAST = 1
    DIRECTION_SOUTH = 2
    DIRECTION_SOUTH_WEST = 3
    DIRECTION_WEST = 4
    DIRECTION_NORTH_WEST = 5
    DIRECTION_NORTH = 6
    DIRECTION_NORTH_EAST = 7


class ExchangeErrorEnum(IntEnum):
    REQUEST_IMPOSSIBLE = 1
    REQUEST_CHARACTER_OCCUPIED = 2
    REQUEST_CHARACTER_JOB_NOT_EQUIPED = 3
    REQUEST_CHARACTER_TOOL_TOO_FAR = 4
    REQUEST_CHARACTER_OVERLOADED = 5
    REQUEST_CHARACTER_NOT_SUSCRIBER = 6
    REQUEST_CHARACTER_RESTRICTED = 7
    REQUEST_CHARACTER_GUEST = 8
    SELL_ERROR = 63
    BUY_ERROR = 64
    MOUNT_PADDOCK_ERROR = 10
    BID_SEARCH_ERROR = 11


class ExchangeReplayStopReasonEnum(IntEnum):
    STOPPED_REASON_OK = 1
    STOPPED_REASON_USER = 2
    STOPPED_REASON_MISSING_RESSOURCE = 3
    STOPPED_REASON_IMPOSSIBLE_MODIFICATION = 4


class ExchangeTypeEnum(IntEnum):
    NPC_SHOP = 0
    PLAYER_TRADE = 1
    NPC_TRADE = 2
    CRAFT = 3
    DISCONNECTED_VENDOR = 4
    STORAGE = 5
    SHOP_STOCK = 6
    TAXCOLLECTOR = 8
    NPC_MODIFY_TRADE = 9
    BIDHOUSE_SELL = 10
    BIDHOUSE_BUY = 11
    MULTICRAFT_CRAFTER = 12
    MULTICRAFT_CUSTOMER = 13
    JOB_INDEX = 14
    MOUNT = 15
    MOUNT_STABLE = 16
    NPC_RESURECT_PET = 17
    NPC_TRADE_RIDE = 18
    REALESTATE_HOUSE = 19
    REALESTATE_FARM = 20
    RUNES_TRADE = 21
    RECYCLE_TRADE = 22
    BANK = 23
    TRASHBIN = 24
    ALLIANCE_PRISM = 25
    HAVENBAG = 26
    NPC_TRADE_MULDO = 27


class FightDispellableEnum(IntEnum):
    DISPELLABLE = 1
    DISPELLABLE_BY_DEATH = 2
    DISPELLABLE_BY_STRONG_DISPEL = 3
    REALLY_NOT_DISPELLABLE = 4


class FighterRefusedReasonEnum(IntEnum):
    FIGHTER_ACCEPTED = 0
    CHALLENGE_FULL = 1
    TEAM_FULL = 2
    WRONG_ALIGNMENT = 3
    WRONG_GUILD = 4
    TOO_LATE = 5
    MUTANT_REFUSED = 6
    WRONG_MAP = 7
    JUST_RESPAWNED = 8
    IM_OCCUPIED = 9
    OPPONENT_OCCUPIED = 10
    FIGHT_MYSELF = 11
    INSUFFICIENT_RIGHTS = 12
    MEMBER_ACCOUNT_NEEDED = 13
    OPPONENT_NOT_MEMBER = 14
    TEAM_LIMITED_BY_MAINCHARACTER = 15
    MULTIACCOUNT_NOT_ALLOWED = 16
    GHOST_REFUSED = 17
    RESTRICTED_ACCOUNT = 19
    WRONG_ALLIANCE = 20
    AVA_ZONE = 21
    COMPANION_REFUSED = 22
    NOT_ENOUGH_ROOM = 23
    GUEST_ACCOUNT = 24


class FightOptionsEnum(IntEnum):
    FIGHT_OPTION_SET_SECRET = 0
    FIGHT_OPTION_SET_TO_PARTY_ONLY = 1
    FIGHT_OPTION_SET_CLOSED = 2
    FIGHT_OPTION_ASK_FOR_HELP = 3


class FightOutcomeEnum(IntEnum):
    RESULT_LOST = 0
    RESULT_DRAW = 1
    RESULT_VICTORY = 2
    RESULT_TAX = 5
    RESULT_DEFENDER_GROUP = 6


class FightSpellCastCriticalEnum(IntEnum):
    NORMAL = 1
    CRITICAL_HIT = 2
    CRITICAL_FAIL = 3


class FightTypeEnum(IntEnum):
    FIGHT_TYPE_CHALLENGE = 0
    FIGHT_TYPE_AGRESSION = 1
    FIGHT_TYPE_PvMA = 2
    FIGHT_TYPE_MXvM = 3
    FIGHT_TYPE_PvM = 4
    FIGHT_TYPE_PvT = 5
    FIGHT_TYPE_PvMU = 6
    FIGHT_TYPE_PVP_ARENA = 7
    FIGHT_TYPE_Koh = 8
    FIGHT_TYPE_PvPr = 9


class GameActionFightInvisibilityStateEnum(IntEnum):
    INVISIBLE = 1
    DETECTED = 2
    VISIBLE = 3


class GameActionMarkCellsTypeEnum(IntEnum):
    CELLS_CIRCLE = 0
    CELLS_CROSS = 1
    CELLS_SQUARE = 2


class GameActionMarkTypeEnum(IntEnum):
    GLYPH = 1
    TRAP = 2
    WALL = 3
    PORTAL = 4
    RUNE = 5


class GameContextEnum(IntEnum):
    ROLE_PLAY = 1
    FIGHT = 2


class GameHierarchyEnum(IntEnum):
    PLAYER = 0
    MODERATOR = 10
    GAMEMASTER_PADAWAN = 20
    GAMEMASTER = 30
    ADMIN = 40


class GuestLimitationEnum(IntEnum):
    LIMITED_TO_REGISTERED = 0
    GUEST_LIMIT_ON_JOB_XP = 1
    GUEST_LIMIT_ON_JOB_USE = 2
    GUEST_LIMIT_ON_MAP = 3
    GUEST_LIMIT_ON_ITEM = 4
    GUEST_LIMIT_ON_VENDOR = 5
    GUEST_LIMIT_ON_CHAT = 6
    GUEST_LIMIT_ON_GUILD = 7


class GuildInformationsTypeEnum(IntEnum):
    INFO_GENERAL = 1
    INFO_MEMBERS = 2
    INFO_BOOSTS = 3
    INFO_PADDOCKS = 4
    INFO_HOUSES = 5
    INFO_TAX_COLLECTOR_GUILD_ONLY = 6
    INFO_TAX_COLLECTOR_ALLIANCE = 7
    INFO_TAX_COLLECTOR_LEAVE = 8


class GuildRightsBitEnum(IntEnum):
    GUILD_RIGHT_NONE = 0
    GUILD_RIGHT_BOSS = 1
    GUILD_RIGHT_MANAGE_GUILD_BOOSTS = 2
    GUILD_RIGHT_MANAGE_RIGHTS = 4
    GUILD_RIGHT_INVITE_NEW_MEMBERS = 8
    GUILD_RIGHT_BAN_MEMBERS = 16
    GUILD_RIGHT_MANAGE_XP_CONTRIBUTION = 32
    GUILD_RIGHT_MANAGE_RANKS = 64
    GUILD_RIGHT_HIRE_TAX_COLLECTOR = 128
    GUILD_RIGHT_MANAGE_MY_XP_CONTRIBUTION = 256
    GUILD_RIGHT_COLLECT = 512
    GUILD_RIGHT_USE_PADDOCKS = 4096
    GUILD_RIGHT_ORGANIZE_PADDOCKS = 8192
    GUILD_RIGHT_TAKE_OTHERS_MOUNTS_IN_PADDOCKS = 16384
    GUILD_RIGHT_DEFENSE_PRIORITY = 32768
    GUILD_RIGHT_COLLECT_MY_TAX_COLLECTOR = 65536
    GUILD_RIGHT_SET_ALLIANCE_PRISM = 131072
    GUILD_RIGHT_TALK_IN_ALLIANCE_CHAN = 262144


class HaapiTokenTypeEnum(IntEnum):
    HAAPI_APIKEY_GENERIC = 0
    HAAPI_APIKEY_SHOP = 1


class HardcoreOrEpicDeathStateEnum(IntEnum):
    DEATH_STATE_ALIVE = 0
    DEATH_STATE_DEAD = 1
    DEATH_STATE_WAITING_CONFIRMATION = 2


class HavenBagDailyLoteryErrorEnum(IntEnum):
    HAVENBAG_DAILY_LOTERY_OK = 0
    HAVENBAG_DAILY_LOTERY_ALREADYUSED = 1
    HAVENBAG_DAILY_LOTERY_ERROR = 2


class IdentificationFailureReasonEnum(IntEnum):
    BAD_VERSION = 1
    WRONG_CREDENTIALS = 2
    BANNED = 3
    KICKED = 4
    IN_MAINTENANCE = 5
    TOO_MANY_ON_IP = 6
    TIME_OUT = 7
    BAD_IPRANGE = 8
    CREDENTIALS_RESET = 9
    EMAIL_UNVALIDATED = 10
    OTP_TIMEOUT = 11
    LOCKED = 12
    SERVICE_UNAVAILABLE = 53
    EXTERNAL_ACCOUNT_LINK_REFUSED = 61
    EXTERNAL_ACCOUNT_ALREADY_LINKED = 62
    UNKNOWN_AUTH_ERROR = 99
    SPARE = 100


class ListAddFailureEnum(IntEnum):
    LIST_ADD_FAILURE_UNKNOWN = 0
    LIST_ADD_FAILURE_OVER_QUOTA = 1
    LIST_ADD_FAILURE_NOT_FOUND = 2
    LIST_ADD_FAILURE_EGOCENTRIC = 3
    LIST_ADD_FAILURE_IS_DOUBLE = 4


class MapObstacleStateEnum(IntEnum):
    OBSTACLE_OPENED = 1
    OBSTACLE_CLOSED = 2


class MountEquipedErrorEnum(IntEnum):
    UNSET = 0
    SET = 1
    RIDING = 2


class NicknameErrorEnum(IntEnum):
    ALREADY_USED = 1
    SAME_AS_LOGIN = 2
    TOO_SIMILAR_TO_LOGIN = 3
    INVALID_NICK = 4
    UNKNOWN_NICK_ERROR = 99


class NicknameGeneratingFailureEnum(IntEnum):
    NICKNAME_GENERATOR_RETRY_TOO_SHORT = 1
    NICKNAME_GENERATOR_UNAVAILABLE = 2


class ObjectErrorEnum(IntEnum):
    INVENTORY_FULL = 1
    CANNOT_EQUIP_TWICE = 2
    NOT_TRADABLE = 3
    CANNOT_DROP = 4
    CANNOT_DROP_NO_PLACE = 5
    CANNOT_DESTROY = 6
    LEVEL_TOO_LOW = 7
    LIVING_OBJECT_REFUSED_FOOD = 8
    CANNOT_UNEQUIP = 9
    CANNOT_EQUIP_HERE = 10
    CRITERIONS = 11
    SYMBIOTIC_OBJECT_ERROR = 12


class PartStateEnum(IntEnum):
    PART_NOT_INSTALLED = 0
    PART_BEING_UPDATER = 1
    PART_UP_TO_DATE = 2


class PartyJoinErrorEnum(IntEnum):
    PARTY_JOIN_ERROR_UNKNOWN = 0
    PARTY_JOIN_ERROR_PLAYER_NOT_FOUND = 1
    PARTY_JOIN_ERROR_PARTY_NOT_FOUND = 2
    PARTY_JOIN_ERROR_PARTY_FULL = 3
    PARTY_JOIN_ERROR_PLAYER_BUSY = 4
    PARTY_JOIN_ERROR_PLAYER_ALREADY_INVITED = 6
    PARTY_JOIN_ERROR_PLAYER_TOO_SOLLICITED = 7
    PARTY_JOIN_ERROR_PLAYER_LOYAL = 8
    PARTY_JOIN_ERROR_UNMODIFIABLE = 9
    PARTY_JOIN_ERROR_UNMET_CRITERION = 10
    PARTY_JOIN_ERROR_NOT_ENOUGH_ROOM = 11
    PARTY_JOIN_ERROR_COMPOSITION_CHANGED = 12
    PARTY_JOIN_ERROR_PLAYER_IN_TUTORIAL = 13


class PartyNameErrorEnum(IntEnum):
    PARTY_NAME_UNDEFINED_ERROR = 0
    PARTY_NAME_INVALID = 1
    PARTY_NAME_ALREADY_USED = 2
    PARTY_NAME_UNALLOWED_RIGHTS = 3
    PARTY_NAME_UNALLOWED_NOW = 4


class PartyTypeEnum(IntEnum):
    PARTY_TYPE_UNDEFINED = 0
    PARTY_TYPE_CLASSICAL = 1
    PARTY_TYPE_DUNGEON = 2
    PARTY_TYPE_ARENA = 3


class PlayableBreedEnum(IntEnum):
    UNDEFINED = 0
    Feca = 1
    Osamodas = 2
    Enutrof = 3
    Sram = 4
    Xelor = 5
    Ecaflip = 6
    Eniripsa = 7
    Iop = 8
    Cra = 9
    Sadida = 10
    Sacrieur = 11
    Pandawa = 12
    Roublard = 13
    Zobal = 14
    Steamer = 15
    Eliotrope = 16
    Huppermage = 17
    Ouginak = 18


class PlayerLifeStatusEnum(IntEnum):
    STATUS_ALIVE_AND_KICKING = 0
    STATUS_TOMBSTONE = 1
    STATUS_PHANTOM = 2


class PlayerStateEnum(IntEnum):
    NOT_CONNECTED = 0
    GAME_TYPE_ROLEPLAY = 1
    GAME_TYPE_FIGHT = 2
    UNKNOWN_STATE = 99


class PlayerStatusEnum(IntEnum):
    PLAYER_STATUS_OFFLINE = 0
    PLAYER_STATUS_UNKNOWN = 1
    PLAYER_STATUS_AVAILABLE = 10
    PLAYER_STATUS_IDLE = 20
    PLAYER_STATUS_AFK = 21
    PLAYER_STATUS_PRIVATE = 30
    PLAYER_STATUS_SOLO = 40


class PresetDeleteResultEnum(IntEnum):
    PRESET_DEL_OK = 1
    PRESET_DEL_ERR_UNKNOWN = 2
    PRESET_DEL_ERR_BAD_PRESET_ID = 3


class PresetSaveResultEnum(IntEnum):
    PRESET_SAVE_OK = 1
    PRESET_SAVE_ERR_UNKNOWN = 2
    PRESET_SAVE_ERR_TOO_MANY = 3


class PresetSaveUpdateErrorEnum(IntEnum):
    PRESET_UPDATE_ERR_UNKNOWN = 1
    PRESET_UPDATE_ERR_BAD_PRESET_ID = 2
    PRESET_UPDATE_ERR_BAD_POSITION = 3
    PRESET_UPDATE_ERR_BAD_OBJECT_ID = 4


class PresetUseResultEnum(IntEnum):
    PRESET_USE_OK = 1
    PRESET_USE_OK_PARTIAL = 2
    PRESET_USE_ERR_UNKNOWN = 3
    PRESET_USE_ERR_CRITERION = 4
    PRESET_USE_ERR_BAD_PRESET_ID = 5
    PRESET_USE_ERR_COOLDOWN = 6


class PrismListenEnum(IntEnum):
    PRISM_LISTEN_NONE = 0
    PRISM_LISTEN_MINE = 1
    PRISM_LISTEN_ALL = 2


class PrismSetSabotagedRefusedReasonEnum(IntEnum):
    SABOTAGE_INSUFFICIENT_RIGHTS = 0
    SABOTAGE_MEMBER_ACCOUNT_NEEDED = 1
    SABOTAGE_RESTRICTED_ACCOUNT = 2
    SABOTAGE_WRONG_ALLIANCE = 3
    SABOTAGE_NO_PRISM = 4
    SABOTAGE_WRONG_STATE = 5


class PrismStateEnum(IntEnum):
    PRISM_STATE_INVULNERABLE = 0
    PRISM_STATE_NORMAL = 1
    PRISM_STATE_ATTACKED = 2
    PRISM_STATE_FIGHTING = 3
    PRISM_STATE_WEAKENED = 4
    PRISM_STATE_VULNERABLE = 5
    PRISM_STATE_DEFEATED = 6
    PRISM_STATE_SABOTAGED = 7


class PvpArenaStepEnum(IntEnum):
    ARENA_STEP_REGISTRED = 0
    ARENA_STEP_WAITING_FIGHT = 1
    ARENA_STEP_STARTING_FIGHT = 2
    ARENA_STEP_UNREGISTER = 3


class PvpArenaTypeEnum(IntEnum):
    ARENA_TYPE_1VS1 = 1
    ARENA_TYPE_3VS3 = 3


class SequenceTypeEnum(IntEnum):
    SEQUENCE_SPELL = 1
    SEQUENCE_WEAPON = 2
    SEQUENCE_GLYPH_TRAP = 3
    SEQUENCE_TRIGGERED = 4
    SEQUENCE_MOVE = 5
    SEQUENCE_CHARACTER_DEATH = 6
    SEQUENCE_TURN_START = 7
    SEQUENCE_TURN_END = 8
    SEQUENCE_FIGHT_START = 9


class ServerCompletionEnum(IntEnum):
    COMPLETION_RECOMANDATED = 0
    COMPLETION_AVERAGE = 1
    COMPLETION_HIGH = 2
    COMPLETION_COMING_SOON = 3
    COMPLETION_FULL = 4


class ServerConnectionErrorEnum(IntEnum):
    SERVER_CONNECTION_ERROR_DUE_TO_STATUS = 0
    SERVER_CONNECTION_ERROR_NO_REASON = 1
    SERVER_CONNECTION_ERROR_ACCOUNT_RESTRICTED = 2
    SERVER_CONNECTION_ERROR_COMMUNITY_RESTRICTED = 3
    SERVER_CONNECTION_ERROR_LOCATION_RESTRICTED = 4
    SERVER_CONNECTION_ERROR_SUBSCRIBERS_ONLY = 5
    SERVER_CONNECTION_ERROR_REGULAR_PLAYERS_ONLY = 6


class ServerStatusEnum(IntEnum):
    STATUS_UNKNOWN = 0
    OFFLINE = 1
    STARTING = 2
    ONLINE = 3
    NOJOIN = 4
    SAVING = 5
    STOPING = 6
    FULL = 7


class ShortcutBarEnum(IntEnum):
    GENERAL_SHORTCUT_BAR = 0
    SPELL_SHORTCUT_BAR = 1


class SocialContactCategoryEnum(IntEnum):
    SOCIAL_CONTACT_FRIEND = 0
    SOCIAL_CONTACT_SPOUSE = 1
    SOCIAL_CONTACT_PARTY = 2
    SOCIAL_CONTACT_GUILD = 3
    SOCIAL_CONTACT_ALLIANCE = 4
    SOCIAL_CONTACT_CRAFTER = 5
    SOCIAL_CONTACT_INTERLOCUTOR = 6
    SOCIAL_CONTACT_FIGHT = 7


class SocialGroupCreationResultEnum(IntEnum):
    SOCIAL_GROUP_CREATE_OK = 1
    SOCIAL_GROUP_CREATE_ERROR_NAME_INVALID = 2
    SOCIAL_GROUP_CREATE_ERROR_ALREADY_IN_GROUP = 3
    SOCIAL_GROUP_CREATE_ERROR_NAME_ALREADY_EXISTS = 4
    SOCIAL_GROUP_CREATE_ERROR_EMBLEM_ALREADY_EXISTS = 5
    SOCIAL_GROUP_CREATE_ERROR_LEAVE = 6
    SOCIAL_GROUP_CREATE_ERROR_CANCEL = 7
    SOCIAL_GROUP_CREATE_ERROR_REQUIREMENT_UNMET = 8
    SOCIAL_GROUP_CREATE_ERROR_EMBLEM_INVALID = 9
    SOCIAL_GROUP_CREATE_ERROR_TAG_INVALID = 10
    SOCIAL_GROUP_CREATE_ERROR_TAG_ALREADY_EXISTS = 11
    SOCIAL_GROUP_CREATE_ERROR_NEEDS_SUBGROUP = 12
    SOCIAL_GROUP_CREATE_ERROR_UNKNOWN = 99


class SocialGroupInvitationStateEnum(IntEnum):
    SOCIAL_GROUP_INVITATION_FAILED = 0
    SOCIAL_GROUP_INVITATION_SENT = 1
    SOCIAL_GROUP_INVITATION_CANCELED = 2
    SOCIAL_GROUP_INVITATION_OK = 3


class SocialNoticeErrorEnum(IntEnum):
    SOCIAL_NOTICE_UNKNOWN_ERROR = 0
    SOCIAL_NOTICE_INVALID_RIGHTS = 1
    SOCIAL_NOTICE_COOLDOWN = 2


class StatisticTypeEnum(IntEnum):
    STEP0000_CHOSE_NICKNAME = 78
    STEP0100_CHOSE_SERVER = 79
    STEP0200_CREATE_FIRST_CHARACTER = 80
    STEP0300_LOADING_SCREEN = 81
    STEP0400_DOFUS_TRAILER = 82
    STEP0500_ARRIVES_ON_TUTORIAL = 83
    STEP0550_QUITS_TUTORIAL = 84
    STEP0600_TUTO1_MOVE_MAP = 85
    STEP0700_TUTO2_TALK_TO_YAKASI = 86
    STEP0800_TUTO3_EQUIP_RING = 87
    STEP0820_CLIC_BAG = 88
    STEP0840_CLIC_RING = 89
    STEP0860_EQUIP_RING = 90
    STEP0860_EXIT_BAG = 91
    STEP0900_TUTO4_CHANGE_MAP = 92
    STEP1000_TUTO5_START_FIRST_FIGHT = 93
    STEP1100_TUTO6_CHOSE_START_POSITION = 94
    STEP1130_CHOSE_POSITION = 95
    STEP1160_CLIC_READY = 96
    STEP1200_TUTO7_MOVE_IN_FIGHT = 97
    STEP1900_TUTO8_USE_SPELL = 98
    STEP1930_CHOSE_SPELL = 99
    STEP1960_USE_SPELL = 100
    STEP2000_TUTO9_END_TURN = 101
    STEP2100_TUTO10_WIN_FIGHT = 102
    STEP2050_TUTO10_LOSE_FIGHT = 103
    STEP2200_TUTO11_START_FIRST_QUEST = 104
    STEP2220_CLIC_YAKASI = 105
    STEP2240_TALK_YAKASI = 106
    STEP2260_ACCEPT_MISSION = 107
    STEP2300_TUTO12_EQUIP_SET = 108
    STEP2350_EXIT_BAG = 109
    STEP2400_TUTO13_LETS_KILL_MONSTER = 110
    STEP2430_GO_TO_NEXT_MAP = 111
    STEP2460_CLIC_MONSTER = 112
    STEP2500_TUTO14_END_SECOND_FIGHT = 113
    STEP2600_TUTO15_END_TUTO = 114
    STEP2620_CLIC_YAKASI = 115
    STEP2640_END_DIALOG = 116
    CLICK_ON_BUTTON = 151
    DISPLAY_MENU = 152
    CATEGORY_MAP_OPENED = 544
    CATEGORY_MAP_PERSONALIZED_LANDMARK_PLACED = 546
    CATEGORY_MAP_QUEST_LANDMARK_ACTIVATED = 547
    CATEGORY_MAP_MOVED = 549
    CATEGORY_MAP_ZOOM = 550
    CATEGORY_MINIMAP_MOVED = 545
    CATEGORY_MINIMAP_ZOOM = 548


class StatsUpgradeResultEnum(IntEnum):
    SUCCESS = 0
    RESTRICTED = 1
    GUEST = 2
    IN_FIGHT = 3
    NOT_ENOUGH_POINT = 4


class SubEntityBindingPointCategoryEnum(IntEnum):
    HOOK_POINT_CATEGORY_UNUSED = 0
    HOOK_POINT_CATEGORY_PET = 1
    HOOK_POINT_CATEGORY_MOUNT_DRIVER = 2
    HOOK_POINT_CATEGORY_LIFTED_ENTITY = 3
    HOOK_POINT_CATEGORY_BASE_BACKGROUND = 4
    HOOK_POINT_CATEGORY_MERCHANT_BAG = 5
    HOOK_POINT_CATEGORY_BASE_FOREGROUND = 6
    HOOK_POINT_CATEGORY_PET_FOLLOWER = 7
    HOOK_POINT_CATEGORY_UNDERWATER_BUBBLES = 8


class SubscriptionRequiredEnum(IntEnum):
    LIMITED_TO_SUBSCRIBER = 0
    LIMIT_ON_JOB_XP = 1
    LIMIT_ON_JOB_USE = 2
    LIMIT_ON_MAP = 3
    LIMIT_ON_ITEM = 4
    LIMIT_ON_VENDOR = 5


class TaxCollectorErrorReasonEnum(IntEnum):
    TAX_COLLECTOR_ERROR_UNKNOWN = 0
    TAX_COLLECTOR_NOT_FOUND = 1
    TAX_COLLECTOR_NOT_OWNED = 2
    TAX_COLLECTOR_NO_RIGHTS = 3
    TAX_COLLECTOR_MAX_REACHED = 4
    TAX_COLLECTOR_ALREADY_ONE = 5
    TAX_COLLECTOR_CANT_HIRE_YET = 6
    TAX_COLLECTOR_CANT_HIRE_HERE = 7
    TAX_COLLECTOR_NOT_ENOUGH_KAMAS = 8


class TaxCollectorMovementTypeEnum(IntEnum):
    TAX_COLLECTOR_UNKNOWN_ACTION = 0
    TAX_COLLECTOR_HIRED = 1
    TAX_COLLECTOR_HARVESTED = 2
    TAX_COLLECTOR_DEFEATED = 3
    TAX_COLLECTOR_DESTROYED = 4


class TaxCollectorStateEnum(IntEnum):
    STATE_COLLECTING = 0
    STATE_WAITING_FOR_HELP = 1
    STATE_FIGHTING = 2


class TeamEnum(IntEnum):
    TEAM_CHALLENGER = 0
    TEAM_DEFENDER = 1
    TEAM_SPECTATOR = 2


class TeamTypeEnum(IntEnum):
    TEAM_TYPE_PLAYER = 0
    TEAM_TYPE_MONSTER = 1
    TEAM_TYPE_MUTANT = 2
    TEAM_TYPE_TAXCOLLECTOR = 3
    TEAM_TYPE_BAD_PLAYER = 4
    TEAM_TYPE_PRISM = 5


class TeleporterTypeEnum(IntEnum):
    TELEPORTER_ZAAP = 0
    TELEPORTER_SUBWAY = 1
    TELEPORTER_PRISM = 2
    TELEPORTER_HAVENBAG = 3


class TextInformationTypeEnum(IntEnum):
    TEXT_INFORMATION_MESSAGE = 0
    TEXT_INFORMATION_ERROR = 1
    TEXT_INFORMATION_PVP = 2
    TEXT_INFORMATION_FIGHT_LOG = 3
    TEXT_INFORMATION_POPUP = 4
    TEXT_LIVING_OBJECT = 5
    TEXT_ENTITY_TALK = 6
    TEXT_INFORMATION_FIGHT = 7


class TreasureHuntDigRequestEnum(IntEnum):
    TREASURE_HUNT_DIG_ERROR_UNDEFINED = 0
    TREASURE_HUNT_DIG_NEW_HINT = 1
    TREASURE_HUNT_DIG_FINISHED = 2
    TREASURE_HUNT_DIG_WRONG = 3
    TREASURE_HUNT_DIG_LOST = 4
    TREASURE_HUNT_DIG_ERROR_IMPOSSIBLE = 5
    TREASURE_HUNT_DIG_WRONG_AND_YOU_KNOW_IT = 6


class TreasureHuntFlagRequestEnum(IntEnum):
    TREASURE_HUNT_FLAG_ERROR_UNDEFINED = 0
    TREASURE_HUNT_FLAG_OK = 1
    TREASURE_HUNT_FLAG_WRONG = 2
    TREASURE_HUNT_FLAG_TOO_MANY = 3
    TREASURE_HUNT_FLAG_ERROR_IMPOSSIBLE = 4
    TREASURE_HUNT_FLAG_WRONG_INDEX = 5
    TREASURE_HUNT_FLAG_SAME_MAP = 6


class TreasureHuntFlagStateEnum(IntEnum):
    TREASURE_HUNT_FLAG_STATE_UNKNOWN = 0
    TREASURE_HUNT_FLAG_STATE_OK = 1
    TREASURE_HUNT_FLAG_STATE_WRONG = 2


class TreasureHuntRequestEnum(IntEnum):
    TREASURE_HUNT_ERROR_UNDEFINED = 0
    TREASURE_HUNT_ERROR_NO_QUEST_FOUND = 2
    TREASURE_HUNT_ERROR_ALREADY_HAVE_QUEST = 3
    TREASURE_HUNT_ERROR_NOT_AVAILABLE = 4
    TREASURE_HUNT_ERROR_DAILY_LIMIT_EXCEEDED = 5
    TREASURE_HUNT_OK = 1


class TreasureHuntTypeEnum(IntEnum):
    TREASURE_HUNT_CLASSIC = 0
    TREASURE_HUNT_PORTAL = 1
    TREASURE_HUNT_LEGENDARY = 2


class UpdatableMountBoostEnum(IntEnum):
    STAMINA = 3
    MATURITY = 5
    ENERGY = 1
    SERENITY = 2
    LOVE = 4
    TIREDNESS = 6
    RIDEABLE = 7


class Metadata(IntEnum):
    PROTOCOL_BUILD = 1780
    PROTOCOL_REQUIRED_BUILD = 1780


