database remove HK_ and redundancy

This commit is contained in:
ReznoRMichael 2021-01-28 20:09:41 +01:00
parent be05a80f81
commit 5eca956326
3 changed files with 121 additions and 146 deletions

File diff suppressed because one or more lines are too long

View file

@ -1,32 +1,7 @@
/* eslint-disable no-unused-vars */ /* eslint-disable no-unused-vars */
/* eslint-disable no-prototype-builtins */ /* eslint-disable no-prototype-builtins */
import { import * as HK from "./hk-database.js";
DIV_ID,
HK_HINTS,
HK_BOSSES,
HK_BOSSES_WORLD,
HK_CHARMS,
HK_EQUIPMENT,
HK_NAILARTS,
HK_NAILUPGRADES,
HK_SPELLS,
HK_MASKSHARDS,
HK_MASKSHARDS_WORLD,
HK_VESSELFRAGMENTS,
HK_VESSELFRAGMENTS_WORLD,
HK_DREAMERS,
HK_COLOSSEUM,
HK_DREAMNAIL,
HK_WARRIORDREAMS,
HK_GRIMMTROUPE,
HK_LIFEBLOOD,
HK_GODMASTER,
HK_GODMASTER_DOORS,
HK_ESSENTIAL,
HK_ACHIEVEMENTS,
HK_STATISTICS
} from "./hk-database.js";
import healthMaskImage from "../img/health-mask.png"; import healthMaskImage from "../img/health-mask.png";
import healthMaskSteelImage from "../img/health-mask-steel.png"; import healthMaskSteelImage from "../img/health-mask-steel.png";
import soulOrbImage from "../img/soul-orb.png"; import soulOrbImage from "../img/soul-orb.png";
@ -88,182 +63,182 @@ function HKCheckCompletion(jsonObject) {
} else return false; } else return false;
// Pre-Cleaning and filling initial data (h2, id) needed for FillHTML() // Pre-Cleaning and filling initial data (h2, id) needed for FillHTML()
PrefillHTML(DIV_ID); PrefillHTML(HK.DIV_ID);
// Prevents adding current percent data after each function call (each click of Analyze button) // Prevents adding current percent data after each function call (each click of Analyze button)
ResetCompletion(DIV_ID); ResetCompletion(HK.DIV_ID);
// Shallow Clone const objects (used for destructive functions) // Shallow Clone const objects (used for destructive functions)
let HK_HINTS_temp = Object.assign({}, HK_HINTS); let HK_HINTS_temp = Object.assign({}, HK.HINTS);
let HK_BOSSES_temp = Object.assign({}, HK_BOSSES); let HK_BOSSES_temp = Object.assign({}, HK.BOSSES);
let HK_BOSSES_WORLD_temp = Object.assign({}, HK_BOSSES_WORLD); let HK_BOSSES_WORLD_temp = Object.assign({}, HK.BOSSES_WORLD);
let HK_CHARMS_temp = Object.assign({}, HK_CHARMS); let HK_CHARMS_temp = Object.assign({}, HK.CHARMS);
let HK_COLOSSEUM_temp = Object.assign({}, HK_COLOSSEUM); let HK_COLOSSEUM_temp = Object.assign({}, HK.COLOSSEUM);
let HK_DREAMERS_temp = Object.assign({}, HK_DREAMERS); let HK_DREAMERS_temp = Object.assign({}, HK.DREAMERS);
let HK_DREAMNAIL_temp = Object.assign({}, HK_DREAMNAIL); let HK_DREAMNAIL_temp = Object.assign({}, HK.DREAMNAIL);
let HK_EQUIPMENT_temp = Object.assign({}, HK_EQUIPMENT); let HK_EQUIPMENT_temp = Object.assign({}, HK.EQUIPMENT);
let HK_MASKSHARDS_temp = Object.assign({}, HK_MASKSHARDS); let HK_MASKSHARDS_temp = Object.assign({}, HK.MASKSHARDS);
let HK_MASKSHARDS_WORLD_temp = Object.assign({}, HK_MASKSHARDS_WORLD); let HK_MASKSHARDS_WORLD_temp = Object.assign({}, HK.MASKSHARDS_WORLD);
let HK_NAILARTS_temp = Object.assign({}, HK_NAILARTS); let HK_NAILARTS_temp = Object.assign({}, HK.NAILARTS);
let HK_VESSELFRAGMENTS_temp = Object.assign({}, HK_VESSELFRAGMENTS); let HK_VESSELFRAGMENTS_temp = Object.assign({}, HK.VESSELFRAGMENTS);
let HK_VESSELFRAGMENTS_WORLD_temp = Object.assign({}, HK_VESSELFRAGMENTS_WORLD); let HK_VESSELFRAGMENTS_WORLD_temp = Object.assign({}, HK.VESSELFRAGMENTS_WORLD);
let HK_WARRIORDREAMS_temp = Object.assign({}, HK_WARRIORDREAMS); let HK_WARRIORDREAMS_temp = Object.assign({}, HK.WARRIORDREAMS);
let HK_GRIMMTROUPE_temp = Object.assign({}, HK_GRIMMTROUPE); let HK_GRIMMTROUPE_temp = Object.assign({}, HK.GRIMMTROUPE);
let HK_LIFEBLOOD_temp = Object.assign({}, HK_LIFEBLOOD); let HK_LIFEBLOOD_temp = Object.assign({}, HK.LIFEBLOOD);
let HK_GODMASTER_temp = Object.assign({}, HK_GODMASTER); let HK_GODMASTER_temp = Object.assign({}, HK.GODMASTER);
// Shallow Clone const arrays (used for destructive functions) // Shallow Clone const arrays (used for destructive functions)
let HK_GODMASTER_DOORS_temp = Array.from(HK_GODMASTER_DOORS); let HK_GODMASTER_DOORS_temp = Array.from(HK.GODMASTER_DOORS);
let HK_NAILUPGRADES_temp = Array.from(HK_NAILUPGRADES); let HK_NAILUPGRADES_temp = Array.from(HK.NAILUPGRADES);
// Deep Clone const spells multi-layer object (used for destructive functions) // Deep Clone const spells multi-layer object (used for destructive functions)
let HK_SPELLS_temp = JSON.parse(JSON.stringify(HK_SPELLS)); let HK_SPELLS_temp = JSON.parse(JSON.stringify(HK.SPELLS));
// ================================================================================== // // ================================================================================== //
// ---------------- Time Played ----------------- // // ---------------- Time Played ----------------- //
CheckPlayTime(DIV_ID.intro, HKPlayerData.playTime); CheckPlayTime(HK.DIV_ID.intro, HKPlayerData.playTime);
// ---------------- Game Completion Status ----------------- // // ---------------- Game Completion Status ----------------- //
CheckCompletionPercent(DIV_ID.intro, HKPlayerData.completionPercentage); CheckCompletionPercent(HK.DIV_ID.intro, HKPlayerData.completionPercentage);
// ---------------- Fleur Divide ----------------- // // ---------------- Fleur Divide ----------------- //
AppendHTML(DIV_ID.intro, FLEUR_DIVIDE); AppendHTML(HK.DIV_ID.intro, FLEUR_DIVIDE);
// ---------------- Health Masks ----------------- // // ---------------- Health Masks ----------------- //
CheckHealthMasks(DIV_ID.intro, HKPlayerData.maxHealthBase, HKPlayerData.permadeathMode); CheckHealthMasks(HK.DIV_ID.intro, HKPlayerData.maxHealthBase, HKPlayerData.permadeathMode);
// ---------------- Soul Orbs ----------------- // // ---------------- Soul Orbs ----------------- //
CheckSoulOrbs(DIV_ID.intro, HKPlayerData.maxMP + HKPlayerData.MPReserveMax); CheckSoulOrbs(HK.DIV_ID.intro, HKPlayerData.maxMP + HKPlayerData.MPReserveMax);
// ---------------- Charm Notches (Slots) ----------------- // // ---------------- Charm Notches (Slots) ----------------- //
CheckNotches(DIV_ID.intro, HKPlayerData.charmSlots); CheckNotches(HK.DIV_ID.intro, HKPlayerData.charmSlots);
// ---------------- Geo Amount ----------------- // // ---------------- Geo Amount ----------------- //
CheckGeo(DIV_ID.intro, HKPlayerData.geo); CheckGeo(HK.DIV_ID.intro, HKPlayerData.geo);
// ---------------- Bosses (Base Game) --------------------- // // ---------------- Bosses (Base Game) --------------------- //
CheckIfDataTrue(DIV_ID.bosses, HK_BOSSES_temp, HKPlayerData); CheckIfDataTrue(HK.DIV_ID.bosses, HK_BOSSES_temp, HKPlayerData);
// ---------------- Gruz Mother and Mawlek (World Map) --------------------- // // ---------------- Gruz Mother and Mawlek (World Map) --------------------- //
if (HKWorldItems) CheckWorldDataTrue(DIV_ID.bosses, "Battle Scene", HK_BOSSES_WORLD_temp, HKWorldItems); if (HKWorldItems) CheckWorldDataTrue(HK.DIV_ID.bosses, "Battle Scene", HK_BOSSES_WORLD_temp, HKWorldItems);
// ---------------- Charms --------------------- // // ---------------- Charms --------------------- //
CheckIfDataTrue(DIV_ID.charms, HK_CHARMS_temp, HKPlayerData); CheckIfDataTrue(HK.DIV_ID.charms, HK_CHARMS_temp, HKPlayerData);
// ---------------- Colosseum of Fools --------------------- // // ---------------- Colosseum of Fools --------------------- //
CheckIfDataTrue(DIV_ID.colosseum, HK_COLOSSEUM_temp, HKPlayerData); CheckIfDataTrue(HK.DIV_ID.colosseum, HK_COLOSSEUM_temp, HKPlayerData);
// ---------------- Dreamers --------------------- // // ---------------- Dreamers --------------------- //
CheckIfDataTrue(DIV_ID.dreamers, HK_DREAMERS_temp, HKPlayerData); CheckIfDataTrue(HK.DIV_ID.dreamers, HK_DREAMERS_temp, HKPlayerData);
// ---------------- Dream Nail and Essence --------------------- // // ---------------- Dream Nail and Essence --------------------- //
CheckIfDataTrue(DIV_ID.dreamNail, HK_DREAMNAIL_temp, HKPlayerData); CheckIfDataTrue(HK.DIV_ID.dreamNail, HK_DREAMNAIL_temp, HKPlayerData);
// ---------------- Equipment --------------------- // // ---------------- Equipment --------------------- //
CheckIfDataTrue(DIV_ID.equipment, HK_EQUIPMENT_temp, HKPlayerData); CheckIfDataTrue(HK.DIV_ID.equipment, HK_EQUIPMENT_temp, HKPlayerData);
// ---------------- Nail Upgrades --------------------- // // ---------------- Nail Upgrades --------------------- //
for (let i = 0, length = HK_NAILUPGRADES_temp.length; i < length; i++) { for (let i = 0, length = HK_NAILUPGRADES_temp.length; i < length; i++) {
(HKPlayerData.nailSmithUpgrades >= i) ? CurrentDataTrue(DIV_ID.nailUpgrades): CurrentDataFalse(); (HKPlayerData.nailSmithUpgrades >= i) ? CurrentDataTrue(HK.DIV_ID.nailUpgrades): CurrentDataFalse();
FillHTML(DIV_ID.nailUpgrades, HK_NAILUPGRADES_temp[i][0], HK_NAILUPGRADES_temp[i][1]); FillHTML(HK.DIV_ID.nailUpgrades, HK_NAILUPGRADES_temp[i][0], HK_NAILUPGRADES_temp[i][1]);
} }
if (DIV_ID.nailUpgrades.percent) DIV_ID.nailUpgrades.percent--; // subject one for the Old Nail if (HK.DIV_ID.nailUpgrades.percent) HK.DIV_ID.nailUpgrades.percent--; // subject one for the Old Nail
// ---------------- Mask Shards --------------------- // // ---------------- Mask Shards --------------------- //
CheckIfDataTrue(DIV_ID.maskShards, HK_MASKSHARDS_temp, HKPlayerData); CheckIfDataTrue(HK.DIV_ID.maskShards, HK_MASKSHARDS_temp, HKPlayerData);
// ---------------- Mask Shards (World Map) --------------------- // // ---------------- Mask Shards (World Map) --------------------- //
CheckWorldDataTrue(DIV_ID.maskShards, "Heart Piece", HK_MASKSHARDS_WORLD_temp, HKWorldItems); CheckWorldDataTrue(HK.DIV_ID.maskShards, "Heart Piece", HK_MASKSHARDS_WORLD_temp, HKWorldItems);
// ---------------- Nail Arts --------------------- // // ---------------- Nail Arts --------------------- //
CheckIfDataTrue(DIV_ID.nailArts, HK_NAILARTS_temp, HKPlayerData); CheckIfDataTrue(HK.DIV_ID.nailArts, HK_NAILARTS_temp, HKPlayerData);
// ---------------- Spells --------------------- // // ---------------- Spells --------------------- //
CheckSpellLevel(DIV_ID.spells, HK_SPELLS_temp, HKPlayerData); CheckSpellLevel(HK.DIV_ID.spells, HK_SPELLS_temp, HKPlayerData);
// ---------------- Vessel Fragments --------------------- // // ---------------- Vessel Fragments --------------------- //
CheckIfDataTrue(DIV_ID.vesselFragments, HK_VESSELFRAGMENTS_temp, HKPlayerData); CheckIfDataTrue(HK.DIV_ID.vesselFragments, HK_VESSELFRAGMENTS_temp, HKPlayerData);
// ---------------- Vessel Fragments (World Map) --------------------- // // ---------------- Vessel Fragments (World Map) --------------------- //
CheckWorldDataTrue(DIV_ID.vesselFragments, "Vessel Fragment", HK_VESSELFRAGMENTS_WORLD_temp, HKWorldItems); CheckWorldDataTrue(HK.DIV_ID.vesselFragments, "Vessel Fragment", HK_VESSELFRAGMENTS_WORLD_temp, HKWorldItems);
// ---------------- Warrior Dreams --------------------- // // ---------------- Warrior Dreams --------------------- //
CheckWarriorDreams(DIV_ID.warriorDreams, HK_WARRIORDREAMS_temp, HKPlayerData); CheckWarriorDreams(HK.DIV_ID.warriorDreams, HK_WARRIORDREAMS_temp, HKPlayerData);
// ---------------- Grimm Troupe Content Pack --------------------- // // ---------------- Grimm Troupe Content Pack --------------------- //
CheckIfDataTrue(DIV_ID.grimmTroupe, HK_GRIMMTROUPE_temp, HKPlayerData); CheckIfDataTrue(HK.DIV_ID.grimmTroupe, HK_GRIMMTROUPE_temp, HKPlayerData);
(HKPlayerData.grimmChildLevel >= 4) ? CurrentDataTrue(DIV_ID.grimmTroupe): CurrentDataFalse(); (HKPlayerData.grimmChildLevel >= 4) ? CurrentDataTrue(HK.DIV_ID.grimmTroupe): CurrentDataFalse();
FillHTML(DIV_ID.grimmTroupe, "Nightmare King Grimm / Banishment", "Dirtmouth or Howling Cliffs"); FillHTML(HK.DIV_ID.grimmTroupe, "Nightmare King Grimm / Banishment", "Dirtmouth or Howling Cliffs");
// ---------------- Lifeblood Content Pack --------------------- // // ---------------- Lifeblood Content Pack --------------------- //
CheckIfDataTrue(DIV_ID.lifeblood, HK_LIFEBLOOD_temp, HKPlayerData); CheckIfDataTrue(HK.DIV_ID.lifeblood, HK_LIFEBLOOD_temp, HKPlayerData);
// ---------------- Godmaster Content Pack --------------------- // // ---------------- Godmaster Content Pack --------------------- //
CheckIfDataTrue(DIV_ID.godmaster, HK_GODMASTER_temp, HKPlayerData); CheckIfDataTrue(HK.DIV_ID.godmaster, HK_GODMASTER_temp, HKPlayerData);
for (let i = 1; i <= 4; i++) { for (let i = 1; i <= 4; i++) {
(HKPlayerData["bossDoorStateTier" + i].completed === true) ? CurrentDataTrue(DIV_ID.godmaster): CurrentDataFalse(); (HKPlayerData["bossDoorStateTier" + i].completed === true) ? CurrentDataTrue(HK.DIV_ID.godmaster): CurrentDataFalse();
FillHTML(DIV_ID.godmaster, HK_GODMASTER_DOORS_temp[i - 1][0], HK_GODMASTER_DOORS_temp[i - 1][1]); FillHTML(HK.DIV_ID.godmaster, HK_GODMASTER_DOORS_temp[i - 1][0], HK_GODMASTER_DOORS_temp[i - 1][1]);
} }
// ---------------- Fleur Divide ----------------- // // ---------------- Fleur Divide ----------------- //
AppendHTML(DIV_ID.godmaster, FLEUR_DIVIDE); AppendHTML(HK.DIV_ID.godmaster, FLEUR_DIVIDE);
// ------------------------- Essential Things ----------------------------- // // ------------------------- Essential Things ----------------------------- //
CheckAdditionalThings(DIV_ID.essential, HK_ESSENTIAL, HKPlayerData, HKWorldItems); CheckAdditionalThings(HK.DIV_ID.essential, HK.ESSENTIAL, HKPlayerData, HKWorldItems);
// ---------------- Fleur Divide ----------------- // // ---------------- Fleur Divide ----------------- //
AppendHTML(DIV_ID.essential, FLEUR_DIVIDE); AppendHTML(HK.DIV_ID.essential, FLEUR_DIVIDE);
// ------------------------- Achievements ----------------------------- // // ------------------------- Achievements ----------------------------- //
CheckAdditionalThings(DIV_ID.achievements, HK_ACHIEVEMENTS, HKPlayerData, HKWorldItems); CheckAdditionalThings(HK.DIV_ID.achievements, HK.ACHIEVEMENTS, HKPlayerData, HKWorldItems);
// ---------------- Fleur Divide ----------------- // // ---------------- Fleur Divide ----------------- //
AppendHTML(DIV_ID.achievements, FLEUR_DIVIDE); AppendHTML(HK.DIV_ID.achievements, FLEUR_DIVIDE);
// ------------------------- Game Statistics ----------------------------- // // ------------------------- Game Statistics ----------------------------- //
CheckAdditionalThings(DIV_ID.statistics, HK_STATISTICS, HKPlayerData, HKWorldItems); CheckAdditionalThings(HK.DIV_ID.statistics, HK.STATISTICS, HKPlayerData, HKWorldItems);
// ------------------------- Hints ----------------------------- // // ------------------------- Hints ----------------------------- //
CheckHintsTrue(DIV_ID.hints, HK_HINTS_temp, HKPlayerData, HKWorldItems); CheckHintsTrue(HK.DIV_ID.hints, HK_HINTS_temp, HKPlayerData, HKWorldItems);
// ------------------------- Fill completion ----------------------------- // // ------------------------- Fill completion ----------------------------- //
CompletionHTML(DIV_ID); CompletionHTML(HK.DIV_ID);
// Prevents wrong checkbox behaviour (must run after everything is finished) // Prevents wrong checkbox behaviour (must run after everything is finished)
CheckboxHintsToggle(); CheckboxHintsToggle();
@ -354,7 +329,7 @@ function FillHTML(divId, textPrefix = "Unknown Completion Element: ", textSuffix
let span = ["<span class='flex-row location hidden'>", "</span>"]; let span = ["<span class='flex-row location hidden'>", "</span>"];
let spoilerSpan = ["<span class='spoiler-text'>", "</span>"]; let spoilerSpan = ["<span class='spoiler-text'>", "</span>"];
if (divId === DIV_ID.hints) { if (divId === HK.DIV_ID.hints) {
span[0] = "<span>"; span[0] = "<span>";
icon = ""; icon = "";
} }
@ -842,7 +817,7 @@ function CheckHintsTrue(divId, dataObject, playerData, worldData) {
* Pre-Cleans HTML. Reads contents inside text area and parses it to a JavaScript object. If not empty, runs HKCheckCompletion() to check data. * Pre-Cleans HTML. Reads contents inside text area and parses it to a JavaScript object. If not empty, runs HKCheckCompletion() to check data.
*/ */
function HKReadTextArea() { function HKReadTextArea() {
InitialHTMLPopulate(DIV_ID); InitialHTMLPopulate(HK.DIV_ID);
let textAreaId = "save-area"; let textAreaId = "save-area";
let contents = document.getElementById(textAreaId).value; let contents = document.getElementById(textAreaId).value;
@ -902,10 +877,10 @@ function InitialHTMLPopulate(divIdObj) {
CheckGeo(divIdObj.intro, 0); CheckGeo(divIdObj.intro, 0);
// First Hint Only // First Hint Only
FillHTML(divIdObj.hints, HK_HINTS.fireballLevel[0], HK_HINTS.fireballLevel[1]); FillHTML(divIdObj.hints, HK.HINTS.fireballLevel[0], HK.HINTS.fireballLevel[1]);
// Temp arrays storing references (addresses) to objects for looping through them (duplicates important) // Temp arrays storing references (addresses) to objects for looping through them (duplicates important)
let hkObjArray = [HK_BOSSES, HK_BOSSES_WORLD, HK_CHARMS, HK_EQUIPMENT, HK_NAILARTS, HK_MASKSHARDS, HK_MASKSHARDS_WORLD, HK_VESSELFRAGMENTS, HK_VESSELFRAGMENTS_WORLD, HK_DREAMERS, HK_COLOSSEUM, HK_DREAMNAIL, HK_WARRIORDREAMS, HK_GRIMMTROUPE, HK_LIFEBLOOD, HK_GODMASTER, HK_ESSENTIAL, HK_ACHIEVEMENTS, HK_STATISTICS]; let hkObjArray = [HK.BOSSES, HK.BOSSES_WORLD, HK.CHARMS, HK.EQUIPMENT, HK.NAILARTS, HK.MASKSHARDS, HK.MASKSHARDS_WORLD, HK.VESSELFRAGMENTS, HK.VESSELFRAGMENTS_WORLD, HK.DREAMERS, HK.COLOSSEUM, HK.DREAMNAIL, HK.WARRIORDREAMS, HK.GRIMMTROUPE, HK.LIFEBLOOD, HK.GODMASTER, HK.ESSENTIAL, HK.ACHIEVEMENTS, HK.STATISTICS];
// duplicates and order important - must be the same as in hkObjArray[] // duplicates and order important - must be the same as in hkObjArray[]
let divObjArray = [divIdObj.bosses, divIdObj.bosses, divIdObj.charms, divIdObj.equipment, divIdObj.nailArts, divIdObj.maskShards, divIdObj.maskShards, divIdObj.vesselFragments, divIdObj.vesselFragments, divIdObj.dreamers, divIdObj.colosseum, divIdObj.dreamNail, divIdObj.warriorDreams, divIdObj.grimmTroupe, divIdObj.lifeblood, divIdObj.godmaster, divIdObj.essential, divIdObj.achievements, divIdObj.statistics]; let divObjArray = [divIdObj.bosses, divIdObj.bosses, divIdObj.charms, divIdObj.equipment, divIdObj.nailArts, divIdObj.maskShards, divIdObj.maskShards, divIdObj.vesselFragments, divIdObj.vesselFragments, divIdObj.dreamers, divIdObj.colosseum, divIdObj.dreamNail, divIdObj.warriorDreams, divIdObj.grimmTroupe, divIdObj.lifeblood, divIdObj.godmaster, divIdObj.essential, divIdObj.achievements, divIdObj.statistics];
@ -919,14 +894,14 @@ function InitialHTMLPopulate(divIdObj) {
} while (hkObjArray.shift()); } while (hkObjArray.shift());
// Nail Upgrades Misc // Nail Upgrades Misc
for (let i = 0; i < HK_NAILUPGRADES.length; i++) { for (let i = 0; i < HK.NAILUPGRADES.length; i++) {
FillHTML(divIdObj.nailUpgrades, HK_NAILUPGRADES[i][0], HK_NAILUPGRADES[i][1]); FillHTML(divIdObj.nailUpgrades, HK.NAILUPGRADES[i][0], HK.NAILUPGRADES[i][1]);
} }
// Spells Misc // Spells Misc
for (let i in HK_SPELLS) { for (let i in HK.SPELLS) {
for (let j = 1; j <= 2; j++) { for (let j = 1; j <= 2; j++) {
FillHTML(divIdObj.spells, HK_SPELLS[i][j][0], HK_SPELLS[i][j][1]); FillHTML(divIdObj.spells, HK.SPELLS[i][j][0], HK.SPELLS[i][j][1]);
} }
} }
@ -934,8 +909,8 @@ function InitialHTMLPopulate(divIdObj) {
FillHTML(divIdObj.grimmTroupe, "Nightmare King Grimm / Banishment", "Dirtmouth or Howling Cliffs"); FillHTML(divIdObj.grimmTroupe, "Nightmare King Grimm / Banishment", "Dirtmouth or Howling Cliffs");
// Godmaster Doors Misc // Godmaster Doors Misc
for (let i = 0; i < ObjectLength(HK_GODMASTER_DOORS); i++) { for (let i = 0; i < ObjectLength(HK.GODMASTER_DOORS); i++) {
FillHTML(divIdObj.godmaster, HK_GODMASTER_DOORS[i][0], HK_GODMASTER_DOORS[i][1]); FillHTML(divIdObj.godmaster, HK.GODMASTER_DOORS[i][0], HK.GODMASTER_DOORS[i][1]);
} }
// Fleur Dividers // Fleur Dividers
@ -1024,7 +999,7 @@ function ResetCompletion(jsObj) {
} }
// Populate HTML at load (before img and css) // Populate HTML at load (before img and css)
document.addEventListener("DOMContentLoaded", InitialHTMLPopulate(DIV_ID)); document.addEventListener("DOMContentLoaded", InitialHTMLPopulate(HK.DIV_ID));
// Make functions global so they can be used on click and change events (for Webpack) // Make functions global so they can be used on click and change events (for Webpack)
window.HKReadTextArea = HKReadTextArea; window.HKReadTextArea = HKReadTextArea;

View file

@ -117,7 +117,7 @@ const DIV_ID = {
} }
}; };
const HK_HINTS = { const HINTS = {
fireballLevel: ["", "...a mysterious shaman living in a dwelling below the town of Dirtmouth"], fireballLevel: ["", "...a mysterious shaman living in a dwelling below the town of Dirtmouth"],
hornet1Defeated: ["", "...a skilled protector guarding ruins in a lush green forest"], hornet1Defeated: ["", "...a skilled protector guarding ruins in a lush green forest"],
hasDash: ["", "...an old cloak lying on a green path by a broken shell"], hasDash: ["", "...an old cloak lying on a green path by a broken shell"],
@ -139,7 +139,7 @@ const HK_HINTS = {
killedHollowKnight: ["", "...a disturbance inside a black temple"], killedHollowKnight: ["", "...a disturbance inside a black temple"],
}; };
const HK_BOSSES = { const BOSSES = {
falseKnightDefeated: ["False Knight", "Forgotten Crossroads"], // "Battle Scene" - "Crossroads_10" ? falseKnightDefeated: ["False Knight", "Forgotten Crossroads"], // "Battle Scene" - "Crossroads_10" ?
hornet1Defeated: ["Hornet Protector", "Greenpath"], hornet1Defeated: ["Hornet Protector", "Greenpath"],
defeatedDungDefender: ["Dung Defender", "Royal Waterways"], defeatedDungDefender: ["Dung Defender", "Royal Waterways"],
@ -155,13 +155,13 @@ const HK_BOSSES = {
}; };
// "Battle Scene" sceneData.persistentBoolItems.id // "Battle Scene" sceneData.persistentBoolItems.id
const HK_BOSSES_WORLD = { const BOSSES_WORLD = {
Crossroads_04: ["Gruz Mother", "Forgotten Crossroads"], // killedBigFly Crossroads_04: ["Gruz Mother", "Forgotten Crossroads"], // killedBigFly
Crossroads_09: ["Brooding Mawlek", "Forgotten Crossroads"] // killedMawlek Crossroads_09: ["Brooding Mawlek", "Forgotten Crossroads"] // killedMawlek
}; };
// reference: https://radiance.host/apidocs/Charms.html // reference: https://radiance.host/apidocs/Charms.html
const HK_CHARMS = { const CHARMS = {
gotCharm_1: ["#1 Gathering Swarm", "Sly: 300 Geo"], // 1 gotCharm_1: ["#1 Gathering Swarm", "Sly: 300 Geo"], // 1
gotCharm_2: ["#2 Wayward Compass", "Iselda: 220 Geo"], // 1 gotCharm_2: ["#2 Wayward Compass", "Iselda: 220 Geo"], // 1
gotCharm_3: ["#3 Grubsong", "Grubfather: 10 Grubs rescued"], // 1 gotCharm_3: ["#3 Grubsong", "Grubfather: 10 Grubs rescued"], // 1
@ -200,25 +200,25 @@ const HK_CHARMS = {
gotCharm_36: ["#36 Kingsoul", "Queen's Gardens + Ancient Basin"], // 5 gotCharm_36: ["#36 Kingsoul", "Queen's Gardens + Ancient Basin"], // 5
}; };
const HK_COLOSSEUM = { const COLOSSEUM = {
colosseumBronzeCompleted: ["Trial of the Warrior", "Little Fool: 100 Geo"], colosseumBronzeCompleted: ["Trial of the Warrior", "Little Fool: 100 Geo"],
colosseumSilverCompleted: ["Trial of the Conqueror", "Little Fool: 450 Geo + Warrior completed"], colosseumSilverCompleted: ["Trial of the Conqueror", "Little Fool: 450 Geo + Warrior completed"],
colosseumGoldCompleted: ["Trial of the Fool", "Little Fool: 800 Geo + Conqueror completed"], colosseumGoldCompleted: ["Trial of the Fool", "Little Fool: 800 Geo + Conqueror completed"],
}; };
const HK_DREAMERS = { const DREAMERS = {
lurienDefeated: ["Lurien the Watcher", "City of Tears: Watcher's Spire"], lurienDefeated: ["Lurien the Watcher", "City of Tears: Watcher's Spire"],
monomonDefeated: ["Monomon the Teacher", "Fog Canyon: Teacher's Archives"], monomonDefeated: ["Monomon the Teacher", "Fog Canyon: Teacher's Archives"],
hegemolDefeated: ["Herrah the Beast", "Deepnest: Distant Village"] hegemolDefeated: ["Herrah the Beast", "Deepnest: Distant Village"]
}; };
const HK_DREAMNAIL = { const DREAMNAIL = {
hasDreamNail: ["Dream Nail acquired", "Resting Grounds"], hasDreamNail: ["Dream Nail acquired", "Resting Grounds"],
dreamNailUpgraded: ["Awoken Dream Nail", "Seer: 1800 Essence"], dreamNailUpgraded: ["Awoken Dream Nail", "Seer: 1800 Essence"],
mothDeparted: ["Hear the Seer's final words", "Seer: 2400 Essence"] mothDeparted: ["Hear the Seer's final words", "Seer: 2400 Essence"]
}; };
const HK_EQUIPMENT = { const EQUIPMENT = {
hasDash: ["Mothwing Cloak", "Greenpath: Dash ability"], hasDash: ["Mothwing Cloak", "Greenpath: Dash ability"],
hasWalljump: ["Mantis Claw", "Mantis Village: Wall Jump ability"], hasWalljump: ["Mantis Claw", "Mantis Village: Wall Jump ability"],
hasSuperDash: ["Crystal Heart", "Crystal Peak: Super Dash ability"], hasSuperDash: ["Crystal Heart", "Crystal Peak: Super Dash ability"],
@ -228,7 +228,7 @@ const HK_EQUIPMENT = {
hasShadowDash: ["Shade Cloak", "The Abyss: Shadow Dash ability"] hasShadowDash: ["Shade Cloak", "The Abyss: Shadow Dash ability"]
}; };
const HK_MASKSHARDS = { const MASKSHARDS = {
slyShellFrag1: ["Mask Shard #1", "Sly: 150 Geo"], slyShellFrag1: ["Mask Shard #1", "Sly: 150 Geo"],
slyShellFrag2: ["Mask Shard #2", "Sly: 500 Geo"], slyShellFrag2: ["Mask Shard #2", "Sly: 500 Geo"],
slyShellFrag3: ["Mask Shard #3", "Sly: 800 Geo + Shopkeeper's Key"], slyShellFrag3: ["Mask Shard #3", "Sly: 800 Geo + Shopkeeper's Key"],
@ -237,7 +237,7 @@ const HK_MASKSHARDS = {
}; };
// "Heart Piece" sceneData.persistentBoolItems.id // "Heart Piece" sceneData.persistentBoolItems.id
const HK_MASKSHARDS_WORLD = { const MASKSHARDS_WORLD = {
Crossroads_13: ["Mask Shard #6", "Forgotten Crossroads: below Hot Springs"], Crossroads_13: ["Mask Shard #6", "Forgotten Crossroads: below Hot Springs"],
Crossroads_09: ["Mask Shard #7", "Forgotten Crossroads: Brooding Mawlek"], Crossroads_09: ["Mask Shard #7", "Forgotten Crossroads: Brooding Mawlek"],
Crossroads_38: ["Mask Shard #8", "Grubfather: 5 Grubs rescued"], Crossroads_38: ["Mask Shard #8", "Grubfather: 5 Grubs rescued"],
@ -251,7 +251,7 @@ const HK_MASKSHARDS_WORLD = {
Room_Mansion: ["Mask Shard #16", "Resting Grounds: Delicate Flower"] Room_Mansion: ["Mask Shard #16", "Resting Grounds: Delicate Flower"]
}; };
const HK_VESSELFRAGMENTS = { const VESSELFRAGMENTS = {
slyVesselFrag1: ["Vessel Fragment #1", "Sly: 550 Geo"], slyVesselFrag1: ["Vessel Fragment #1", "Sly: 550 Geo"],
slyVesselFrag2: ["Vessel Fragment #2", "Sly: 900 Geo + Shopkeeper's Key"], slyVesselFrag2: ["Vessel Fragment #2", "Sly: 900 Geo + Shopkeeper's Key"],
dreamReward5: ["Vessel Fragment #3", "Seer: 700 Essence"], dreamReward5: ["Vessel Fragment #3", "Seer: 700 Essence"],
@ -259,7 +259,7 @@ const HK_VESSELFRAGMENTS = {
}; };
// "Vessel Fragment" sceneData.persistentBoolItems.id // "Vessel Fragment" sceneData.persistentBoolItems.id
const HK_VESSELFRAGMENTS_WORLD = { const VESSELFRAGMENTS_WORLD = {
Fungus1_13: ["Vessel Fragment #5", "Greenpath: near Queen's Gardens exit"], Fungus1_13: ["Vessel Fragment #5", "Greenpath: near Queen's Gardens exit"],
Crossroads_37: ["Vessel Fragment #6", "Forgotten Crossroads: unlock City of Tears lift"], Crossroads_37: ["Vessel Fragment #6", "Forgotten Crossroads: unlock City of Tears lift"],
Ruins2_09: ["Vessel Fragment #7", "Above King's Station"], Ruins2_09: ["Vessel Fragment #7", "Above King's Station"],
@ -267,13 +267,13 @@ const HK_VESSELFRAGMENTS_WORLD = {
Abyss_04: ["Vessel Fragment #9", "Ancient Basin Fountain: 3000 Geo"] Abyss_04: ["Vessel Fragment #9", "Ancient Basin Fountain: 3000 Geo"]
}; };
const HK_NAILARTS = { const NAILARTS = {
hasDashSlash: ["Great Slash", "Nailmaster Sheo: Greenpath"], // this is correct hasDashSlash: ["Great Slash", "Nailmaster Sheo: Greenpath"], // this is correct
hasUpwardSlash: ["Dash Slash", "Nailmaster Oro: Kingdom's Edge, 800 Geo"], // this is correct hasUpwardSlash: ["Dash Slash", "Nailmaster Oro: Kingdom's Edge, 800 Geo"], // this is correct
hasCyclone: ["Cyclone Slash", " Nailmaster Mato: Howling Cliffs"], hasCyclone: ["Cyclone Slash", " Nailmaster Mato: Howling Cliffs"],
}; };
const HK_NAILUPGRADES = [ const NAILUPGRADES = [
["#0 Old Nail", "Starting Weapon"], ["#0 Old Nail", "Starting Weapon"],
["#1 Sharpened Nail", "Nailsmith: 250 Geo"], ["#1 Sharpened Nail", "Nailsmith: 250 Geo"],
["#2 Channeled Nail", "Nailsmith: 800 Geo + 1 Pale Ore"], ["#2 Channeled Nail", "Nailsmith: 800 Geo + 1 Pale Ore"],
@ -281,7 +281,7 @@ const HK_NAILUPGRADES = [
["#4 Pure Nail", "Nailsmith: 4000 Geo + 3 Pale Ore"] ["#4 Pure Nail", "Nailsmith: 4000 Geo + 3 Pale Ore"]
]; ];
const HK_SPELLS = { const SPELLS = {
fireballLevel: { fireballLevel: {
1: ["Vengeful Spirit", "Forgotten Crossroads: Ancestral Mound"], 1: ["Vengeful Spirit", "Forgotten Crossroads: Ancestral Mound"],
2: ["Shade Soul", "City of Tears: Soul Sanctum + Elegant Key"], 2: ["Shade Soul", "City of Tears: Soul Sanctum + Elegant Key"],
@ -296,7 +296,7 @@ const HK_SPELLS = {
} }
}; };
const HK_WARRIORDREAMS = { const WARRIORDREAMS = {
xeroDefeated: ["Xero", "Resting Grounds"], xeroDefeated: ["Xero", "Resting Grounds"],
noEyesDefeated: ["No Eyes", "Greenpath: Stone Sanctuary"], noEyesDefeated: ["No Eyes", "Greenpath: Stone Sanctuary"],
elderHuDefeated: ["Elder Hu", "Fungal Wastes"], elderHuDefeated: ["Elder Hu", "Fungal Wastes"],
@ -306,7 +306,7 @@ const HK_WARRIORDREAMS = {
markothDefeated: ["Markoth", "Kingdom's Edge"], markothDefeated: ["Markoth", "Kingdom's Edge"],
}; };
const HK_GRIMMTROUPE = { const GRIMMTROUPE = {
gotCharm_37: ["Charm #37 Sprintmaster", "Sly: 400 Geo + Shopkeeper's Key"], gotCharm_37: ["Charm #37 Sprintmaster", "Sly: 400 Geo + Shopkeeper's Key"],
gotCharm_38: ["Charm #38 Dreamshield", "Resting Grounds"], gotCharm_38: ["Charm #38 Dreamshield", "Resting Grounds"],
gotCharm_39: ["Charm #39 Weaversong", "Deepnest: Weaver's Den"], gotCharm_39: ["Charm #39 Weaversong", "Deepnest: Weaver's Den"],
@ -314,22 +314,22 @@ const HK_GRIMMTROUPE = {
killedGrimm: ["Troupe Leader Grimm", "Dirtmouth"] killedGrimm: ["Troupe Leader Grimm", "Dirtmouth"]
}; };
const HK_LIFEBLOOD = { const LIFEBLOOD = {
killedHiveKnight: ["Hive Knight", "The Hive"] killedHiveKnight: ["Hive Knight", "The Hive"]
}; };
const HK_GODMASTER = { const GODMASTER = {
hasGodfinder: ["Godtuner", "Junk Pit"] hasGodfinder: ["Godtuner", "Junk Pit"]
}; };
const HK_GODMASTER_DOORS = [ const GODMASTER_DOORS = [
["#1 Pantheon of the Master", "Godhome"], ["#1 Pantheon of the Master", "Godhome"],
["#2 Pantheon of the Artist", "Godhome"], ["#2 Pantheon of the Artist", "Godhome"],
["#3 Pantheon of the Sage", "Godhome"], ["#3 Pantheon of the Sage", "Godhome"],
["#4 Pantheon of the Knight", "Godhome"] ["#4 Pantheon of the Knight", "Godhome"]
]; ];
const HK_ESSENTIAL = { const ESSENTIAL = {
grubsCollected: ["Grubs Rescued", "out of 46 total", 46], grubsCollected: ["Grubs Rescued", "out of 46 total", 46],
dreamOrbs: ["Essence Collected", "Dream Nail (2400 for completion)", 2400], dreamOrbs: ["Essence Collected", "Dream Nail (2400 for completion)", 2400],
stationsOpened: ["Stag Stations opened", "out of 10 total", 10], stationsOpened: ["Stag Stations opened", "out of 10 total", 10],
@ -354,7 +354,7 @@ const HK_ESSENTIAL = {
nightmareLanternLit: ["Nightmare Lantern Lit", "Howling Cliffs"] nightmareLanternLit: ["Nightmare Lantern Lit", "Howling Cliffs"]
}; };
const HK_ACHIEVEMENTS = { const ACHIEVEMENTS = {
areaMaps: ["Area Maps", "Cornifer and Iselda (out of 13)", 13, [ areaMaps: ["Area Maps", "Cornifer and Iselda (out of 13)", 13, [
"mapCrossroads", "mapGreenpath", "mapFogCanyon", "mapRoyalGardens", "mapFungalWastes", "mapCity", "mapWaterways", "mapMines", "mapDeepnest", "mapCliffs", "mapOutskirts", "mapRestingGrounds", "mapAbyss" "mapCrossroads", "mapGreenpath", "mapFogCanyon", "mapRoyalGardens", "mapFungalWastes", "mapCity", "mapWaterways", "mapMines", "mapDeepnest", "mapCliffs", "mapOutskirts", "mapRestingGrounds", "mapAbyss"
]], ]],
@ -391,7 +391,7 @@ const HK_ACHIEVEMENTS = {
nailsmithSpared: ["Optimal Nailsmith", "Happy Couple"], nailsmithSpared: ["Optimal Nailsmith", "Happy Couple"],
}; };
const HK_STATISTICS = { const STATISTICS = {
nailDamage: ["Nail Damage", "Nailsmith upgrades", 21], nailDamage: ["Nail Damage", "Nailsmith upgrades", 21],
charmSlots: ["Charm Notches", "out of 11 total", 11], charmSlots: ["Charm Notches", "out of 11 total", 11],
notchShroomOgres: ["Charm Notch #1", "Fungal Wastes: Shroom Ogres room"], notchShroomOgres: ["Charm Notch #1", "Fungal Wastes: Shroom Ogres room"],
@ -428,27 +428,27 @@ const HK_STATISTICS = {
export { export {
DIV_ID, DIV_ID,
HK_HINTS, HINTS,
HK_BOSSES, BOSSES,
HK_BOSSES_WORLD, BOSSES_WORLD,
HK_CHARMS, CHARMS,
HK_EQUIPMENT, EQUIPMENT,
HK_NAILARTS, NAILARTS,
HK_NAILUPGRADES, NAILUPGRADES,
HK_SPELLS, SPELLS,
HK_MASKSHARDS, MASKSHARDS,
HK_MASKSHARDS_WORLD, MASKSHARDS_WORLD,
HK_VESSELFRAGMENTS, VESSELFRAGMENTS,
HK_VESSELFRAGMENTS_WORLD, VESSELFRAGMENTS_WORLD,
HK_DREAMERS, DREAMERS,
HK_COLOSSEUM, COLOSSEUM,
HK_DREAMNAIL, DREAMNAIL,
HK_WARRIORDREAMS, WARRIORDREAMS,
HK_GRIMMTROUPE, GRIMMTROUPE,
HK_LIFEBLOOD, LIFEBLOOD,
HK_GODMASTER, GODMASTER,
HK_GODMASTER_DOORS, GODMASTER_DOORS,
HK_ESSENTIAL, ESSENTIAL,
HK_ACHIEVEMENTS, ACHIEVEMENTS,
HK_STATISTICS STATISTICS
}; };