/* MAXIMUM VALUES, DO NOT CHANGE AT ALL */ const MAX_SAFE_INTEGER = Math.pow(2, 32) - 1; const MAX_LEVEL_ELITE = 18; const MAX_GUILD_TAX_RATE_GOLD = 30; const MAX_GUILD_TAX_RATE_EMERALD = 10; /* TYPE OF ENTITES */ const ENTITY_TYPE_PLAYER = 1; const ENTITY_TYPE_NPC = 2; const ENTITY_TYPE_MONSTER = 3; const ENTITY_TYPE_TOWER = 4; const ENTITY_TYPE_COLLECTABLE = 5; /* ECONOMY */ const ECONOMY_GOLD = 1; const ECONOMY_EMERALD = 2; /* UNATTACKABLE ENTITIES */ const UNATTACKABLE_ENTITY_TYPES = [ENTITY_TYPE_COLLECTABLE]; /* EVENTS */ const EVENT_DISCONNECT = "disconnect"; const EVENT_DISCONNECT_CANCEL = "disconnectCancel" const EVENT_DISCONNECT_IDLE = "disconnectIdle" const EVENT_RESPAWN = "respawn"; const EVENT_MAP_CHANGED = "mapChanged"; const EVENT_PROPERTY_CHANGED = "propertyChanged"; const EVENT_ATTACK_STARTED = "attackStarted"; const EVENT_ATTACKING = "attacking"; const EVENT_DIE = "die"; const EVENT_LEVEL_UP = "levelUp"; const EVENT_SPEED_UPDATE = "speedUpdate"; const EVENT_ATTACK_ABORTED_BY_USER = "attackAbortedByUser"; const EVENT_STOP_MOVEMENT = "stopMovement"; const EVENT_CANCEL_STATE_CHANGE_TIMEOUT = "cancelStateChangeTimeout"; const EVENT_ABLE_TO_JUMP = "ableToJump"; const EVENT_UNABLE_TO_JUMP = "unableToJump"; const EVENT_LEVEL_IS_LOW = "levelIsLow"; const EVENT_UPDATE_VISIBILITY = "updateVisibility"; const EVENT_DESTINATION_REACHED = "destinationReached"; const EVENT_DESTINATION_NEW = "newDestination"; const EVENT_SEEK_TARGET = "seekTarget"; const EVENT_ADD_EVENTS = "addEvents"; const EVENT_READY = "ready"; const EVENT_DISTRIBUTE_REWARD = "distributeReward"; const EVENT_DAMAGE = "damage"; const EVENT_ITEM_USED = "itemUsed"; const EVENT_CANNONS_USED = "cannonsUsed"; const EVENT_HARPOONERS_USED = "harpoonersUsed"; const EVENT_QUEST_DONE = "questDone"; const EVENT_EFFECT_ADD = "effectAdd"; const EVENT_DESINATION_NEW = "newDestination"; const EVENT_ATTACK_BAR = "attackBar"; const EVENT_PATH_READY = "scheduledPathReady" const EVENT_SPAWN_ADMIRAL = "admiralSpawnNotification"; const EVENT_HEALTH_CHANGED = "healthChanged"; const EVENT_HEALTH_CHANGED_AUTHORLESS = "healthChangedAuthorless"; const EVENT_GUILD_ISLAND_CAPTURE = "guildIslandCapture"; const EVENT_GUILD_ISLAND_TOWER_BUILT = "guildDataIslandTowerBuilt"; const EVENT_GUILD_ISLAND_TOWER_HEALTH_CHANGED = "guildDataIslandTowerHealthChanged"; /* BEHAVIOUR */ const BEHAVIOUR_AGGRESSIVE = "aggressive"; const BEHAVIOUR_STOP_IF_ATTACKED = "stopIfAttacked"; /* MODE OF MAPS */ const MAP_MODE_PVE = "PvE"; const MAP_MODE_PVP = "PvP"; /* LOGOUT TIMEOUTS */ const LOGOUT_TIME_BASIC = 30 * 1000; const LOGOUT_TIME_PREMIUM = 10 * 1000; const LOGOUT_TIME_IDLE = 10 * 60 * 10000; /* BASE VALUES FOR CALCULATIONS */ const BASE_REPAIR_AMOUNT_MINIMUM = 1000; const BASE_REPAIR_AMOUNT_MAXIMUM = 2000; const BASE_SPEED_PLAYER_REPAIR = 1500; const BASE_SPEED_PLAYER = 100; /* TASKS */ const TASK_TYPE_DEAL_DAMAGE = 1; const TASK_TYPE_DESTROY = 2; /* TIMING EVENTS */ const TIMING_EVENT_CANNON_ATTACK = 1; const TIMING_EVENT_HARPOONER_ATTACK = 2; const TIMING_EVENT_REPAIR = 3; const TIMING_EVENT_DISCONNECT = 4; const TIMING_EVENT_DISCONNECT_IDLE = 5; const TIMING_EVENT_MAP_CHANGE = 6; const TIMING_EVENT_MOVE = 7; const TIMING_EVENT_RESPAWN = 8; const TIMING_EVENT_OVERTIME_DECREASE_HITPOINT = 9; const TIMING_EVENT_OVERTIME_INCREASE_HITPOINT = 10; const TIMING_EVENT_DIE = 11; const TIMING_EVENT_OVERTIME_DECREASE_HITPOINT_2 = 12; /* ACQUIRABLE ITEM CATEGORIES */ const CATEGORY_ECONOMY = 1; const CATEGORY_ITEM = 2; const CATEGORY_AMMUNITION = 3; const CATEGORY_HARPOON = 4; const CATEGORY_DESIGN = 5; const CATEGORY_STATUS = 6; const CATEGORY_CANNON = 7; const CATEGORY_HARPOONER = 8; const CATEGORY_SAIL = 9; const CATEGORY_PIRATE = 10; const CATEGORY_RANKING_POINTS = 11; /* QUEST STATUS */ const QUEST_STATE_ACTIVE = 0; const QUEST_STATE_COMPLETED = 0; /* PROPERTY ALTERING CATEGORIES */ const AFFECT_CANNON_DAMAGE = 1; const AFFECT_HARPOONER_DAMAGE = 2; const AFFECT_PROTECTION = 3; const AFFECT_SAILING_SPEED = 4; const AFFECT_HITPOINT = 5; /* GUILD PERMISSION BITS */ const GUILD_PERMISSION_KICK = 1; const GUILD_PERMISSION_ACCEPT_JOIN_REQUEST = 2; const GUILD_PERMISSION_EDIT_IDENTITY = 4; const GUILD_PERMISSION_EDIT_TAX = 8; const GUILD_PERMISSION_EDIT_ISLAND = 16; /* LEADERBOARD TYPES */ const LEADERBOARD_EXPERIENCE_POINTS = 1; const LEADERBOARD_NPC_SINK = 2; const LEADERBOARD_MONSTER_SINK = 3; const LEADERBOARD_PLAYER_SINK = 4; const LEADERBOARD_ELITE_POINTS = 5; const LEADERBOARD_FISHING_POINTS = 6; /* GUILD COOLDOWN TIMES */ const GUILD_COOLDOWN_EDIT_TAX_RATES = 60000; const GUILD_COOLDOWN_EDIT_TAG = 60000; const GUILD_COOLDOWN_EDIT_NAME = 60000; const GUILD_COOLDOWN_EDIT_DESCRIPTION = 60000; const COLLECTIBLE_CURRENCIES_BY_ID = { 1: "gold", 2: "emerald", 3: "draconicScales", 4: "corsaireCoins" }; const COLLECTIBLE_CURRENCIES_BY_NAME = { gold: 1, emerald: 2, draconicScales: 3, corsaireCoins: 4 }; const ENTITY_TYPES_BY_ID = { 1: ENTITY_TYPE_PLAYER, 2: ENTITY_TYPE_NPC, 3: ENTITY_TYPE_MONSTER, 4: ENTITY_TYPE_TOWER, 5: ENTITY_TYPE_COLLECTABLE }; const TIMING_EVENTS_BY_ID = { 1: "attackWithCannon", 2: "attackWithHarpooner", 3: "repair", 4: "disconnect", 5: "disconnect", 6: "isChangeMapAvailable", 7: "move", 8: "respawn", 9: "overtimeDecreaseCurrentHitpoint", 10: "overtimeIncreaseCurrentHitpoint", 11: "die", 12: "overtimeDecreaseCurrentHitpoint", 13: "overtimeDecreaseCurrentHitpoint", 14: "respawn", 15: "changeMap", 16: "abortAttack", 17: "effectRemove", 97: "attackWithCannon", 98: "attackWithCannon", 99: "attackWithCannon", 100: "attackWithCannon", 101: "attackWithCannon", 102: "attackWithCannon", 103: "attackWithCannon", 104: "attackWithCannon", 105: "attackWithCannon", 106: "attackWithCannon", 197: "attackWithHarpooner", 198: "attackWithHarpooner", 199: "attackWithHarpooner", 200: "attackWithHarpooner", 201: "attackWithHarpooner", 202: "attackWithHarpooner", 299: "changeSpeed", 300: "changeSpeed", 999: "refreshVisibilities" }; const EVENTS_BY_TIMING_EVENTS_ID = { 1: EVENT_ATTACKING, 2: EVENT_ATTACKING }; const EFFECTS_TERMINATE_MOVEMENT = [1]; module.exports.MAXIMUM = { MAX_SAFE_INTEGER, MAX_LEVEL_ELITE, MAX_GUILD_TAX_RATE_GOLD, MAX_GUILD_TAX_RATE_EMERALD }; module.exports.TYPES = { ENTITY_TYPE_PLAYER, ENTITY_TYPE_NPC, ENTITY_TYPE_MONSTER, ENTITY_TYPE_TOWER, ENTITY_TYPE_COLLECTABLE }; module.exports.UNATTACKABLE_ENTITY_TYPES = UNATTACKABLE_ENTITY_TYPES; module.exports.EVENTS = { EVENT_DISCONNECT, EVENT_DISCONNECT_CANCEL, EVENT_DISCONNECT_IDLE, EVENT_RESPAWN, EVENT_MAP_CHANGED, EVENT_PROPERTY_CHANGED, EVENT_ATTACK_STARTED, EVENT_ATTACKING, EVENT_DIE, EVENT_SPEED_UPDATE, EVENT_ATTACK_ABORTED_BY_USER, EVENT_STOP_MOVEMENT, EVENT_CANCEL_STATE_CHANGE_TIMEOUT, EVENT_ABLE_TO_JUMP, EVENT_UNABLE_TO_JUMP, EVENT_LEVEL_IS_LOW, EVENT_UPDATE_VISIBILITY, EVENT_DESTINATION_REACHED, EVENT_DESTINATION_NEW, EVENT_SEEK_TARGET, EVENT_LEVEL_UP, EVENT_ADD_EVENTS, EVENT_READY, EVENT_DISTRIBUTE_REWARD, EVENT_DAMAGE, EVENT_ITEM_USED, EVENT_CANNONS_USED, EVENT_HARPOONERS_USED, EVENT_QUEST_DONE, EVENT_EFFECT_ADD, EVENT_DESINATION_NEW, EVENT_ATTACK_BAR, EVENT_PATH_READY, EVENT_SPAWN_ADMIRAL, EVENT_HEALTH_CHANGED, EVENT_HEALTH_CHANGED_AUTHORLESS, EVENT_GUILD_ISLAND_CAPTURE, EVENT_GUILD_ISLAND_TOWER_BUILT, EVENT_GUILD_ISLAND_TOWER_HEALTH_CHANGED }; module.exports.BEHAVIOURS = { BEHAVIOUR_AGGRESSIVE, BEHAVIOUR_STOP_IF_ATTACKED }; module.exports.MAP_MODES = { MAP_MODE_PVE, MAP_MODE_PVP }; module.exports.LOGOUT_TIMES = { LOGOUT_TIME_BASIC, LOGOUT_TIME_PREMIUM, LOGOUT_TIME_IDLE }; module.exports.BASE = { BASE_REPAIR_AMOUNT_MINIMUM, BASE_REPAIR_AMOUNT_MAXIMUM, BASE_SPEED_PLAYER_REPAIR, BASE_SPEED_PLAYER }; module.exports.TASK_TYPES = { TASK_TYPE_DEAL_DAMAGE, TASK_TYPE_DESTROY }; module.exports.TIMING_EVENTS = { TIMING_EVENT_CANNON_ATTACK, TIMING_EVENT_HARPOONER_ATTACK, TIMING_EVENT_REPAIR, TIMING_EVENT_DISCONNECT, TIMING_EVENT_DISCONNECT_IDLE, TIMING_EVENT_MAP_CHANGE, TIMING_EVENT_MOVE, TIMING_EVENT_RESPAWN, TIMING_EVENT_OVERTIME_DECREASE_HITPOINT, TIMING_EVENT_OVERTIME_INCREASE_HITPOINT, TIMING_EVENT_OVERTIME_DECREASE_HITPOINT_2 }; module.exports.CATEGORIES = { CATEGORY_ECONOMY, CATEGORY_ITEM, CATEGORY_AMMUNITION, CATEGORY_HARPOON, CATEGORY_DESIGN, CATEGORY_STATUS, CATEGORY_CANNON, CATEGORY_HARPOONER, CATEGORY_SAIL, CATEGORY_PIRATE, CATEGORY_RANKING_POINTS }; module.exports.AFFECTS = { AFFECT_CANNON_DAMAGE, AFFECT_HARPOONER_DAMAGE, AFFECT_PROTECTION, AFFECT_SAILING_SPEED, AFFECT_HITPOINT }; module.exports.GUILD_PERMISSIONS = { GUILD_PERMISSION_KICK, GUILD_PERMISSION_ACCEPT_JOIN_REQUEST, GUILD_PERMISSION_EDIT_IDENTITY, GUILD_PERMISSION_EDIT_TAX, GUILD_PERMISSION_EDIT_ISLAND }; module.exports.GUILD_COOLDOWNS = { GUILD_COOLDOWN_EDIT_TAX_RATES, GUILD_COOLDOWN_EDIT_TAG, GUILD_COOLDOWN_EDIT_NAME, GUILD_COOLDOWN_EDIT_DESCRIPTION }; module.exports.COLLECTIBLE_CURRENCIES_BY_ID = COLLECTIBLE_CURRENCIES_BY_ID; module.exports.COLLECTIBLE_CURRENCIES_BY_NAME = COLLECTIBLE_CURRENCIES_BY_NAME; module.exports.ENTITY_TYPES_BY_ID = ENTITY_TYPES_BY_ID; module.exports.TIMING_EVENTS_BY_ID = TIMING_EVENTS_BY_ID; module.exports.EVENTS_BY_TIMING_EVENTS_ID = EVENTS_BY_TIMING_EVENTS_ID; module.exports.EFFECTS_TERMINATE_MOVEMENT = EFFECTS_TERMINATE_MOVEMENT;