diff --git a/js/build_utils.js b/js/build_utils.js index 7f66eb5..0e2da09 100644 --- a/js/build_utils.js +++ b/js/build_utils.js @@ -51,25 +51,27 @@ const armorTypes = [ "helmet", "chestplate", "leggings", "boots" ]; const accessoryTypes = [ "ring", "bracelet", "necklace" ]; const weaponTypes = [ "wand", "spear", "bow", "dagger", "relik" ]; const consumableTypes = [ "potion", "scroll", "food"]; +const tomeTypes = ["armorTome", "weaponTome", "guildTome", "dungeonTome", "gatheringTome", "slayingTome"] const attackSpeeds = ["SUPER_SLOW", "VERY_SLOW", "SLOW", "NORMAL", "FAST", "VERY_FAST", "SUPER_FAST"]; const baseDamageMultiplier = [ 0.51, 0.83, 1.5, 2.05, 2.5, 3.1, 4.3 ]; //0.51, 0.82, 1.50, 2.05, 2.50, 3.11, 4.27 const classes = ["Warrior", "Assassin", "Mage", "Archer", "Shaman"]; const tiers = ["Normal", "Unique", "Rare", "Legendary", "Fabled", "Mythic", "Set", "Crafted"] //I'm not sure why you would make a custom crafted but if you do you should be able to use it w/ the correct powder formula -const types = armorTypes.concat(accessoryTypes).concat(weaponTypes).concat(consumableTypes).concat(["sword"]).map(x => x.substring(0,1).toUpperCase() + x.substring(1)); -weaponTypes.push("sword"); -console.log(types) -let itemTypes = armorTypes.concat(accessoryTypes).concat(weaponTypes); +const types = armorTypes.concat(accessoryTypes).concat(weaponTypes).concat(consumableTypes).concat(tomeTypes).map(x => x.substring(0,1).toUpperCase() + x.substring(1)); +//weaponTypes.push("sword"); +//console.log(types) +let itemTypes = armorTypes.concat(accessoryTypes).concat(weaponTypes).concat(tomeTypes); let elementIcons = ["\u2724","\u2726", "\u2749", "\u2739", "\u274b" ]; let skpReqs = skp_order.map(x => x + "Req"); -let item_fields = [ "name", "displayName", "lore", "color", "tier", "set", "slots", "type", "material", "drop", "quest", "restrict", "nDam", "fDam", "wDam", "aDam", "tDam", "eDam", "atkSpd", "hp", "fDef", "wDef", "aDef", "tDef", "eDef", "lvl", "classReq", "strReq", "dexReq", "intReq", "defReq", "agiReq", "hprPct", "mr", "sdPct", "mdPct", "ls", "ms", "xpb", "lb", "ref", "str", "dex", "int", "agi", "def", "thorns", "expd", "spd", "atkTier", "poison", "hpBonus", "spRegen", "eSteal", "hprRaw", "sdRaw", "mdRaw", "fDamPct", "wDamPct", "aDamPct", "tDamPct", "eDamPct", "fDefPct", "wDefPct", "aDefPct", "tDefPct", "eDefPct", "fixID", "category", "spPct1", "spRaw1", "spPct2", "spRaw2", "spPct3", "spRaw3", "spPct4", "spRaw4", "rainbowRaw", "sprint", "sprintReg", "jh", "lq", "gXp", "gSpd", "id", "majorIds"]; +let item_fields = [ "name", "displayName", "lore", "color", "tier", "set", "slots", "type", "material", "drop", "quest", "restrict", "nDam", "fDam", "wDam", "aDam", "tDam", "eDam", "atkSpd", "hp", "fDef", "wDef", "aDef", "tDef", "eDef", "lvl", "classReq", "strReq", "dexReq", "intReq", "defReq", "agiReq", "hprPct", "mr", "sdPct", "mdPct", "ls", "ms", "xpb", "lb", "ref", "str", "dex", "int", "agi", "def", "thorns", "expd", "spd", "atkTier", "poison", "hpBonus", "spRegen", "eSteal", "hprRaw", "sdRaw", "mdRaw", "fDamPct", "wDamPct", "aDamPct", "tDamPct", "eDamPct", "fDefPct", "wDefPct", "aDefPct", "tDefPct", "eDefPct", "fixID", "category", "spPct1", "spRaw1", "spPct2", "spRaw2", "spPct3", "spRaw3", "spPct4", "spRaw4", "rainbowRaw", "sprint", "sprintReg", "jh", "lq", "gXp", "gSpd", "id", "majorIds", "dmgMobs", "defMobs"]; let str_item_fields = [ "name", "displayName", "lore", "color", "tier", "set", "type", "material", "drop", "quest", "restrict", "category", "atkSpd" ] //File reading for ID translations for JSON purposes let reversetranslations = new Map(); let translations = new Map([["name", "name"], ["displayName", "displayName"], ["tier", "tier"], ["set", "set"], ["sockets", "slots"], ["type", "type"], ["dropType", "drop"], ["quest", "quest"], ["restrictions", "restrict"], ["damage", "nDam"], ["fireDamage", "fDam"], ["waterDamage", "wDam"], ["airDamage", "aDam"], ["thunderDamage", "tDam"], ["earthDamage", "eDam"], ["attackSpeed", "atkSpd"], ["health", "hp"], ["fireDefense", "fDef"], ["waterDefense", "wDef"], ["airDefense", "aDef"], ["thunderDefense", "tDef"], ["earthDefense", "eDef"], ["level", "lvl"], ["classRequirement", "classReq"], ["strength", "strReq"], ["dexterity", "dexReq"], ["intelligence", "intReq"], ["agility", "agiReq"], ["defense", "defReq"], ["healthRegen", "hprPct"], ["manaRegen", "mr"], ["spellDamage", "sdPct"], ["damageBonus", "mdPct"], ["lifeSteal", "ls"], ["manaSteal", "ms"], ["xpBonus", "xpb"], ["lootBonus", "lb"], ["reflection", "ref"], ["strengthPoints", "str"], ["dexterityPoints", "dex"], ["intelligencePoints", "int"], ["agilityPoints", "agi"], ["defensePoints", "def"], ["thorns", "thorns"], ["exploding", "expd"], ["speed", "spd"], ["attackSpeedBonus", "atkTier"], ["poison", "poison"], ["healthBonus", "hpBonus"], ["soulPoints", "spRegen"], ["emeraldStealing", "eSteal"], ["healthRegenRaw", "hprRaw"], ["spellDamageRaw", "sdRaw"], ["damageBonusRaw", "mdRaw"], ["bonusFireDamage", "fDamPct"], ["bonusWaterDamage", "wDamPct"], ["bonusAirDamage", "aDamPct"], ["bonusThunderDamage", "tDamPct"], ["bonusEarthDamage", "eDamPct"], ["bonusFireDefense", "fDefPct"], ["bonusWaterDefense", "wDefPct"], ["bonusAirDefense", "aDefPct"], ["bonusThunderDefense", "tDefPct"], ["bonusEarthDefense", "eDefPct"], ["type", "type"], ["identified", "fixID"], ["skin", "skin"], ["category", "category"], ["spellCostPct1", "spPct1"], ["spellCostRaw1", "spRaw1"], ["spellCostPct2", "spPct2"], ["spellCostRaw2", "spRaw2"], ["spellCostPct3", "spPct3"], ["spellCostRaw3", "spRaw3"], ["spellCostPct4", "spPct4"], ["spellCostRaw4", "spRaw4"], ["rainbowSpellDamageRaw", "rainbowRaw"], ["sprint", "sprint"], ["sprintRegen", "sprintReg"], ["jumpHeight", "jh"], ["lootQuality", "lq"], ["gatherXpBonus", "gXp"], ["gatherSpeed", "gSpd"]]); +//does not include dmgMobs (wep tomes) and defMobs (armor tomes) for (const [k, v] of translations) { reversetranslations.set(v, k); } diff --git a/js/custom.js b/js/custom.js index ba34308..a70caf5 100644 --- a/js/custom.js +++ b/js/custom.js @@ -271,6 +271,8 @@ class Custom{ this.statMap.set("category","weapon"); } else if (consumableTypes.includes(this.statMap.get("type"))) { this.statMap.set("category","consumable"); + } else if (tomeTypes.includes(this.statMap.get("type"))) { + this.statMap.set("category", "tome"); } } diff --git a/tomes.json b/tomes.json index bf256fa..e234d13 100644 --- a/tomes.json +++ b/tomes.json @@ -1,12 +1,622 @@ [ { - "name": "Tome of Armour Mastery I", + "name": "Retaliating Tome of Armour Mastery I", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 60, + "thorns": 6, + "ref": 6, + "hpBonus": 120 + }, + { + "name": "Retaliating Tome of Armour Mastery II", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "thorns": 8, + "ref": 8 + }, + { + "name": "Destructive Tome of Armour Mastery I", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 60, + "exploding": 5, + "mdPct": 5, + "hpBonus": 120 + }, + { + "name": "Destructive Tome of Armour Mastery II", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "thorns": 6, + "reflection": 6 + }, + { + "name": "Sorcerer's Tome of Armour Mastery I", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 60, + "sdPct": 5, + "hpBonus": 120 + }, + { + "name": "Sorcerer's Tome of Armour Mastery II", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "sdPct": 6 + }, + { + "name": "Everlasting Tome of Armour Mastery I", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 60, + "hprRaw": 15, + "hpBonus": 120 + }, + { + "name": "Everlasting Tome of Armour Mastery II", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "hprRaw": 60 + }, + { + "name": "Vampiric Tome of Armour Mastery I", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 60, + "ls": 25, + "hpBonus": 120 + }, + { + "name": "Vampiric Tome of Armour Mastery II", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "ls": 85 + }, + { + "name": "Greedy Tome of Armour Mastery I", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 60, + "lb": 5, + "hpBonus": 120 + }, + { + "name": "Greedy Tome of Armour Mastery II", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "lb": 6 + }, + { + "name": "Weightless Tome of Armour Mastery I", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 60, + "spd": 5, + "hpBonus": 120 + }, + { + "name": "Weightless Tome of Armour Mastery II", + "tier": "Fabled", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "spd": 6 + }, + { + "name": "Blooming Tome of Armour Mastery II", + "tier": "Mythic", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "eDefPct": 10, + "hpBonus": 150 + }, + { + "name": "Pulsing Tome of Armour Mastery II", + "tier": "Mythic", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "tDefPct": 10, + "hpBonus": 150 + }, + { + "name": "Oceanic Tome of Armour Mastery II", + "tier": "Mythic", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "wDefPct": 10, + "hpBonus": 150 + }, + { + "name": "Courageous Tome of Armour Mastery II", + "tier": "Mythic", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "fDefPct": 10, + "hpBonus": 150 + }, + { + "name": "Clouded Tome of Armour Mastery II", + "tier": "Mythic", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "aDefPct": 10, + "hpBonus": 150 + }, + { + "name": "Radiant Tome of Armour Mastery II", + "tier": "Mythic", + "type": "armorTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 100, + "eDefPct": 6, + "tDefPct": 6, + "wDefPct": 6, + "fDefPct": 6, + "aDefPct": 6, + "hpBonus": 150 + }, + { + "name": "Tome of Weapon Mastery I", "tier": "Legendary", - "type": "dungeon_tome", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 60, + "dmgMobs": 6 + }, + { + "name": "Earthbound Tome of Weapon Mastery I", + "tier": "Fabled", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 7, + "str": 3 + }, + { + "name": "Earthbound Tome of Weapon Mastery II", + "tier": "Fabled", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 8, + "str": 3 + }, + { + "name": "Nimble Tome of Weapon Mastery I", + "tier": "Fabled", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 7, + "dex": 3 + }, + { + "name": "Nimble Tome of Weapon Mastery II", + "tier": "Fabled", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 8, + "dex": 3 + }, + { + "name": "Mystical Tome of Weapon Mastery I", + "tier": "Fabled", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 7, + "int": 3 + }, + { + "name": "Mystical Tome of Weapon Mastery II", + "tier": "Fabled", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 8, + "int": 3 + }, + { + "name": "Warding Tome of Weapon Mastery I", + "tier": "Fabled", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 7, + "def": 3 + }, + { + "name": "Warding Tome of Weapon Mastery II", + "tier": "Fabled", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 8, + "def": 3 + }, + { + "name": "Athletic Tome of Weapon Mastery I", + "tier": "Fabled", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 7, + "agi": 3 + }, + { + "name": "Athletic Tome of Weapon Mastery II", + "tier": "Fabled", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 8, + "agi": 3 + }, + { + "name": "Cosmic Tome of Weapon Mastery I", + "tier": "Fabled", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 7, + "str": 1, + "dex": 1, + "int": 1, + "def": 1, + "agi": 1 + }, + { + "name": "Cosmic Tome of Weapon Mastery II", + "tier": "Fabled", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 8, + "str": 1, + "dex": 1, + "int": 1, + "def": 1, + "agi": 1 + }, + { + "name": "Seismic Tome of Weapon Mastery II", + "tier": "Mythic", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 12, + "eDamPct": 7 + }, + { + "name": "Voltaic Tome of Weapon Mastery II", + "tier": "Mythic", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 12, + "tDamPct": 7 + }, + { + "name": "Abyssal Tome of Weapon Mastery II", + "tier": "Mythic", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 12, + "wDamPct": 7 + }, + { + "name": "Infernal Tome of Weapon Mastery II", + "tier": "Mythic", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 12, + "fDamPct": 7 + }, + { + "name": "Cyclonic Tome of Weapon Mastery II", + "tier": "Mythic", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 12, + "aDamPct": 7 + }, + { + "name": "Astral Tome of Weapon Mastery II", + "tier": "Mythic", + "type": "weaponTome", + "category": "tome", + "drop": "never", + "restrict": "Soulbound", + "lvl": 80, + "dmgMobs": 12, + "eDamPct": 6, + "tDamPct": 6, + "wDamPct": 6, + "fDamPct": 6, + "aDamPct": 6 + }, + { + "name": "Brute's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", "category": "tome", "drop": "never", "restrict": "Untradable", - "lvl": 60, - + "lvl": 100, + "str": 3, + "eDamPct": 2 }, + { + "name": "Sadist's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "dex": 3, + "tDamPct": 2 + }, + { + "name": "Mastermind's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "int": 3, + "wDamPct": 2 + }, + { + "name": "Arsonist's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "def": 3, + "fDamPct": 2 + }, + { + "name": "Ghost's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "agi": 3, + "aDamPct": 2 + }, + { + "name": "Psychopath's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "str": 2, + "dex": 2 + }, + { + "name": "Loner's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "str": 2, + "int": 2 + }, + { + "name": "Warlock's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "dex": 2, + "int": 2 + }, + { + "name": "Destroyer's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "str": 2, + "def": 2 + }, + { + "name": "Devil's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "dex": 2, + "def": 2 + }, + { + "name": "Alchemist's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "int": 2, + "def": 2 + }, + { + "name": "Barbarian's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "str": 2, + "agi": 2 + }, + { + "name": "Freelancer's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "dex": 2, + "agi": 2 + }, + { + "name": "Sycophant's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "int": 2, + "agi": 2 + }, + { + "name": "Fanatic's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "def": 2, + "agi": 2 + }, + { + "name": "Assimilator's Tome of Allegiance", + "tier": "Legendary", + "type": "guildTome", + "category": "tome", + "drop": "never", + "restrict": "Untradable", + "lvl": 100, + "str": 1, + "dex": 1, + "int": 1, + "def": 1, + "agi": 1 + } ] \ No newline at end of file