diff --git a/HKCheckCompletion.js b/HKCheckCompletion.js index 122b85c..337c082 100644 --- a/HKCheckCompletion.js +++ b/HKCheckCompletion.js @@ -381,6 +381,8 @@ function HKCheckCompletion(jsonObject) { } + // Outside playerData checks + // ---------------- Mask Shards (World Map) --------------------- // CheckWorldDataTrue(DIV_ID.maskShards, "Heart Piece", HK_MASKSHARDS_WORLD_temp, HKWorldItems); @@ -518,14 +520,16 @@ function CheckWorldDataTrue(divId, idText, dataObject, worldData) { * 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() { - CleanHTML(DIV_ID); + InitialHTMLPopulate(DIV_ID); let textAreaId = "save-area"; let contents = document.getElementById(textAreaId).value; if (contents.length) { + let jsonObject = JSON.parse(contents); - HKCheckCompletion(jsonObject); + // console.log(jsonObject); + if (jsonObject.hasOwnProperty("playerData")) HKCheckCompletion(jsonObject); // console.log(jsonObject); } } @@ -543,4 +547,109 @@ function ObjectLength(object) { } } return length; +} + +/** + * Populate all HTML with given ID and their initial data set as false (used at DOM load) + * @param {object} divIdObj JavaScript Object containing all HTML IDs to populate + */ +function InitialHTMLPopulate(divIdObj) { + CleanHTML(divIdObj); + CurrentDataFalse(); + + // Play Time + let icon = ""; + let textFill = "Time Played: 0 h 00 min 00 sec"; + document.getElementById(divIdObj.intro).innerHTML += divStart + icon + textFill + divEnd; + + // Game Completion + textFill = "Game Completion: 0 % (out of 112 %)"; + document.getElementById(divIdObj.intro).innerHTML += divStart + completionSymbol + textFill + divEnd; + + // Bosses + for (let i in HK_BOSSES) { + FillHTML(divIdObj.bosses, HK_BOSSES[i][0], HK_BOSSES[i][1]); + } + + // Charms + for (let i in HK_CHARMS) { + FillHTML(divIdObj.charms, HK_CHARMS[i][0], HK_CHARMS[i][1]); + } + + // Equipment + for (let i in HK_EQUIPMENT) { + FillHTML(divIdObj.equipment, HK_EQUIPMENT[i][0], HK_EQUIPMENT[i][1]); + } + + // Nail Upgrades + for (let i = 0; i < HK_NAILUPGRADES.length; i++) { + FillHTML(divIdObj.nailUpgrades, HK_NAILUPGRADES[i][0], HK_NAILUPGRADES[i][1]); + } + + // Nail Arts + for (let i in HK_NAILARTS) { + FillHTML(divIdObj.nailArts, HK_NAILARTS[i][0], HK_NAILARTS[i][1]); + } + + // Spells + for (let i in HK_SPELLS) { + for (let j = 1; j <= 2; j++) { + FillHTML(divIdObj.spells, HK_SPELLS[i][j][0], HK_SPELLS[i][j][1]); + } + } + + // Mask Shards + for (let i in HK_MASKSHARDS) { + FillHTML(divIdObj.maskShards, HK_MASKSHARDS[i][0], HK_MASKSHARDS[i][1]); + } + for (let i in HK_MASKSHARDS_WORLD) { + FillHTML(divIdObj.maskShards, HK_MASKSHARDS_WORLD[i][0], HK_MASKSHARDS_WORLD[i][1]); + } + + // Vessel Fragments + for (let i in HK_VESSELFRAGMENTS) { + FillHTML(divIdObj.vesselFragments, HK_VESSELFRAGMENTS[i][0], HK_VESSELFRAGMENTS[i][1]); + } + for (let i in HK_VESSELFRAGMENTS_WORLD) { + FillHTML(divIdObj.vesselFragments, HK_VESSELFRAGMENTS_WORLD[i][0], HK_VESSELFRAGMENTS_WORLD[i][1]); + } + + // Dreamers + for (let i in HK_DREAMERS) { + FillHTML(divIdObj.dreamers, HK_DREAMERS[i][0], HK_DREAMERS[i][1]); + } + + // Colosseum of Fools + for (let i in HK_COLOSSEUM) { + FillHTML(divIdObj.colosseum, HK_COLOSSEUM[i][0], HK_COLOSSEUM[i][1]); + } + + // Dream Nail + for (let i in HK_DREAMNAIL) { + FillHTML(divIdObj.dreamNail, HK_DREAMNAIL[i][0], HK_DREAMNAIL[i][1]); + } + + // Warrior Dreams + for (let i in HK_WARRIORDREAMS) { + FillHTML(divIdObj.warriorDreams, HK_WARRIORDREAMS[i][0], HK_WARRIORDREAMS[i][1]); + } + + // Grimm Troupe + for (let i in HK_GRIMMTROUPE) { + FillHTML(divIdObj.grimmTroupe, HK_GRIMMTROUPE[i][0], HK_GRIMMTROUPE[i][1]); + } + FillHTML(divIdObj.grimmTroupe, "Nightmare King Grimm / Banishment", "Dirtmouth or Howling Cliffs"); + + // Lifeblood + for (let i in HK_LIFEBLOOD) { + FillHTML(divIdObj.lifeblood, HK_LIFEBLOOD[i][0], HK_LIFEBLOOD[i][1]); + } + + // Godmaster + for (let i in HK_GODMASTER) { + FillHTML(divIdObj.godmaster, HK_GODMASTER[i][0], HK_GODMASTER[i][1]); + } + for (let i = 0; i < ObjectLength(HK_GODMASTER_DOORS); i++) { + FillHTML(divIdObj.godmaster, HK_GODMASTER_DOORS[i][0], HK_GODMASTER_DOORS[i][1]); + } } \ No newline at end of file diff --git a/index.html b/index.html index a797dd4..584bce5 100644 --- a/index.html +++ b/index.html @@ -109,6 +109,7 @@ + @@ -116,6 +117,11 @@ + + + - -