ggejs
Version:
A powerful JavaScript library for interacting with the server of Goodgame Empire: Four Kingdoms
105 lines (96 loc) • 2.95 kB
JavaScript
const Crest = require("../structures/Crest");
const ConstantsColors = require("./ConstantsColors");
const ASSET_ID_PREFIX = "map_seaqueen_";
const FLIP_MODIFIER = "flipped";
const LIMITS_MODIFIER = "limit";
const ROUTE_START_MODIFIER = "start";
const ROUTE_END_MODIFIER = "end";
const ISLAND_OCCUPIED_MODIFIER = "good";
const SHIP_UNLOCKED_MODIFIER = "activ";
const SHIP_LOCKED_MODIFIER = "inactiv";
const SHIP_COOLDOWN_MODIFIER = "destroyed";
const DUNGEON_REATTACKABLE_MODIFIER = "reattackable";
const DUNGEON_COOLDOWN_MODIFIER = "cooldown";
const DUNGEON_UNDEFEATED_MODIFIER = "undefeated";
const SUBTYPE_ISLAND_BASE = "base";
const SUBTYPE_CASTLE_BIG = "2";
const TYPE_CAMP = 0;
const TYPE_ISLAND = 1;
const TYPE_CASTLE = 2;
const TYPE_SHIP = 3;
const TYPE_FOG = 4;
const TYPE_LONGISLAND = 5;
const TYPE_ROCKS = 6;
const TYPE_KRAKEN = 7;
const TYPE_ROUTE = 8;
const TYPE_CLOUD = 9;
const TYPE_KRAKEN_STAND = 10;
module.exports.assetIDs = ["tent", "island", "towers", "ship", "fog", "long_island", "rocks", "kraken", "", "cloud_big", "kraken_stand"];
module.exports.mapTypes = {
"camp": 0,
"island": 1,
"ship": 3,
"fog": 4,
"islandLong": 5,
"rocks": 6,
"kraken": 7,
"krakenStand": 10,
"route": 8,
"castle": 2,
"cloud": 9
};
const ACTIVE_CASTLE_OUTLINE_COLOR = 13369344;
const nodeEntityTypes = [0, 1, 2, 3, 4, 7];
const NPC_SYMBOL = 100005;
/** @type {Crest} */
module.exports.NPC_CREST = (function () {
const crest = new Crest(null, null);
crest.symbolPosType = 1;
crest.symbolType1 = NPC_SYMBOL;
crest.symbolColor1 = 0;
crest.backgroundType = 0;
crest.backgroundColor1 = ConstantsColors.SEA_QUEEN_BACKGROUND;
crest.fillClipColor();
return crest;
})();
const ID_SHIP_LEVEL1 = 900311;
const ID_SHIP_LEVEL2 = 900312;
const ID_SHIP_LEVEL3 = 900313;
const ID_SHIP_LEVEL4 = 900314;
const ID_SHIP_LEVEL5 = 900315;
const ID_SHIPS = {
1: ID_SHIP_LEVEL1, 2: ID_SHIP_LEVEL2, 3: ID_SHIP_LEVEL3, 4: ID_SHIP_LEVEL4, 5: ID_SHIP_LEVEL5,
}
/**
* @param {number} type
* @return {boolean}
*/
module.exports.isNodeEntityType = (type) => {
return nodeEntityTypes.indexOf(type) !== -1;
}
/**
* @param {string} nodeType
* @param {boolean} isSurroundingDungeon
* @param {boolean} isEndNode
* @return {number}
*/
module.exports.getMapObjectTypeByNode = (nodeType, isSurroundingDungeon, isEndNode) => {
switch (nodeType) {
case "DUNGEON":
if (isSurroundingDungeon) return 3;
if (isEndNode) return 7;
return 2;
case "BRIDGEDUNGEON":
return 3;
default:
console.error(`received unknown node type:${nodeType}`);
return 0;
}
}
/**
* @param {number} shipLevel
* @return {number}
*/
module.exports.getShipWodIdByLevel = (shipLevel) => {
return ID_SHIPS[shipLevel];
}