317 lines
12 KiB
JavaScript
317 lines
12 KiB
JavaScript
/*
|
|
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;
|