fill completion when save file not analyzed

This commit is contained in:
ReznoRMichael 2021-07-05 22:13:45 +02:00
parent 53e70f745d
commit 6dc7bda490
5 changed files with 126 additions and 127 deletions

View file

@ -85,77 +85,81 @@ function HKCheckCompletion(jsonObject) {
HKWorldItems = jsonObject.sceneData.persistentBoolItems; HKWorldItems = jsonObject.sceneData.persistentBoolItems;
} else return false; } else return false;
} else return false; // Pre-Cleaning and filling initial data (h2, id) needed for PrepareHTMLString() } else return false; // Pre-Cleaning and filling initial data (h2, id) needed for PrepareHTMLString()
// PrefillHTML(HK.SECTION); // PrefillHTML(HK.sections);
// 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(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION); // ================================================================================== // ResetCompletion(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections); // ================================================================================== //
// ---------------- Time Played ----------------- // // ---------------- Time Played ----------------- //
CheckPlayTime(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.intro, HKPlayerData.playTime); // ---------------- Game Completion Status ----------------- // CheckPlayTime(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.intro, HKPlayerData.playTime); // ---------------- Game Completion Status ----------------- //
CheckCompletionPercent(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.intro, HKPlayerData.completionPercentage); // ---------------- Game Completion Status ----------------- // CheckCompletionPercent(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.intro, HKPlayerData.completionPercentage); // ---------------- Game Completion Status ----------------- //
CheckSaveFileVersion(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.intro, HKPlayerData.version); // ---------------- Fleur Divide ----------------- // CheckSaveFileVersion(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.intro, HKPlayerData.version); // ---------------- Fleur Divide ----------------- //
// AppendHTML(HK.SECTION.intro, FLEUR_DIVIDE); // AppendHTML(HK.sections.intro, FLEUR_DIVIDE);
// ---------------- Health Masks ----------------- // // ---------------- Health Masks ----------------- //
CheckHealthMasks(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.intro, HKPlayerData.maxHealthBase, HKPlayerData.permadeathMode); // ---------------- Soul Orbs ----------------- // CheckHealthMasks(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.intro, HKPlayerData.maxHealthBase, HKPlayerData.permadeathMode); // ---------------- Soul Orbs ----------------- //
CheckSoulOrbs(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.intro, HKPlayerData.maxMP + HKPlayerData.MPReserveMax); // ---------------- Charm Notches (Slots) ----------------- // CheckSoulOrbs(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.intro, HKPlayerData.maxMP + HKPlayerData.MPReserveMax); // ---------------- Charm Notches (Slots) ----------------- //
CheckNotches(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.intro, HKPlayerData.charmSlots, HKPlayerData.charmSlotsFilled); // ---------------- Geo Amount ----------------- // CheckNotches(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.intro, HKPlayerData.charmSlots, HKPlayerData.charmSlotsFilled); // ---------------- Geo Amount ----------------- //
CheckGeo(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.intro, HKPlayerData.geo, HKPlayerData.geoPool); // ---------------- Bosses (Base Game) --------------------- // CheckGeo(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.intro, HKPlayerData.geo, HKPlayerData.geoPool); // ---------------- Bosses (Base Game) --------------------- //
CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.bosses, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.bosses.entries, HKPlayerData, HKWorldItems); // ---------------- Charms --------------------- // CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.bosses, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.bosses.entries, HKPlayerData, HKWorldItems); // ---------------- Charms --------------------- //
CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.charms, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.charms.entries, HKPlayerData); // ---------------- Colosseum of Fools --------------------- // CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.charms, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.charms.entries, HKPlayerData); // ---------------- Colosseum of Fools --------------------- //
CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.colosseum, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.colosseum.entries, HKPlayerData); // ---------------- Dreamers --------------------- // CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.colosseum, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.colosseum.entries, HKPlayerData); // ---------------- Dreamers --------------------- //
CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.dreamers, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.dreamers.entries, HKPlayerData); // ---------------- Dream Nail and Essence --------------------- // CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.dreamers, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.dreamers.entries, HKPlayerData); // ---------------- Dream Nail and Essence --------------------- //
CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.dreamNail, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.dreamNail.entries, HKPlayerData); // ---------------- Equipment --------------------- // CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.dreamNail, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.dreamNail.entries, HKPlayerData); // ---------------- Equipment --------------------- //
CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.equipment, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.equipment.entries, HKPlayerData); // ---------------- Nail Upgrades --------------------- // CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.equipment, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.equipment.entries, HKPlayerData); // ---------------- Nail Upgrades --------------------- //
CheckNailUpgrades(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.nailUpgrades, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.nailUpgrades.entries, HKPlayerData); // ---------------- Mask Shards --------------------- // CheckNailUpgrades(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.nailUpgrades, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.nailUpgrades.entries, HKPlayerData); // ---------------- Mask Shards --------------------- //
CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.maskShards, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.maskShards.entries, HKPlayerData, HKWorldItems); // ---------------- Nail Arts --------------------- // CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.maskShards, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.maskShards.entries, HKPlayerData, HKWorldItems); // ---------------- Nail Arts --------------------- //
CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.nailArts, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.nailArts.entries, HKPlayerData); // ---------------- Spells --------------------- // CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.nailArts, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.nailArts.entries, HKPlayerData); // ---------------- Spells --------------------- //
CheckSpellLevel(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.spells, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.spells.entries, HKPlayerData); // ---------------- Vessel Fragments --------------------- // CheckSpellLevel(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.spells, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.spells.entries, HKPlayerData); // ---------------- Vessel Fragments --------------------- //
CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.vesselFragments, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.vesselFragments.entries, HKPlayerData, HKWorldItems); // ---------------- Warrior Dreams --------------------- // CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.vesselFragments, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.vesselFragments.entries, HKPlayerData, HKWorldItems); // ---------------- Warrior Dreams --------------------- //
CheckWarriorDreams(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.warriorDreams, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.warriorDreams.entries, HKPlayerData); // ---------------- Grimm Troupe Content Pack --------------------- // CheckWarriorDreams(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.warriorDreams, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.warriorDreams.entries, HKPlayerData); // ---------------- Grimm Troupe Content Pack --------------------- //
CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.grimmTroupe, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.grimmTroupe.entries, HKPlayerData); // ---------------- Lifeblood Content Pack --------------------- // CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.grimmTroupe, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.grimmTroupe.entries, HKPlayerData); // ---------------- Lifeblood Content Pack --------------------- //
CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.lifeblood, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.lifeblood.entries, HKPlayerData); // ---------------- Godmaster Content Pack --------------------- // CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.lifeblood, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.lifeblood.entries, HKPlayerData); // ---------------- Godmaster Content Pack --------------------- //
CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.godmaster, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.godmaster.entries, HKPlayerData); // ---------------- Fleur Divide ----------------- // CheckIfDataTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.godmaster, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.godmaster.entries, HKPlayerData); // ---------------- Fleur Divide ----------------- //
// AppendHTML(HK.SECTION.godmaster, FLEUR_DIVIDE); // AppendHTML(HK.sections.godmaster, FLEUR_DIVIDE);
// ------------------------- Essential Things ----------------------------- // // ------------------------- Essential Things ----------------------------- //
CheckAdditionalThings(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.essential, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.essential.entries, HKPlayerData, HKWorldItems); // ---------------- Fleur Divide ----------------- // CheckAdditionalThings(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.essential, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.essential.entries, HKPlayerData, HKWorldItems); // ---------------- Fleur Divide ----------------- //
// AppendHTML(HK.SECTION.essential, FLEUR_DIVIDE); // AppendHTML(HK.sections.essential, FLEUR_DIVIDE);
// ------------------------- Achievements ----------------------------- // // ------------------------- Achievements ----------------------------- //
CheckAdditionalThings(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.achievements, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.achievements.entries, HKPlayerData, HKWorldItems); // ---------------- Fleur Divide ----------------- // CheckAdditionalThings(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.achievements, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.achievements.entries, HKPlayerData, HKWorldItems); // ---------------- Fleur Divide ----------------- //
// AppendHTML(HK.SECTION.achievements, FLEUR_DIVIDE); // AppendHTML(HK.sections.achievements, FLEUR_DIVIDE);
// ------------------------- Game Statistics ----------------------------- // // ------------------------- Game Statistics ----------------------------- //
CheckAdditionalThings(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.statistics, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.statistics.entries, HKPlayerData, HKWorldItems, HKSceneData); // ------------------------- Godhome Statistics ----------------------------- // CheckAdditionalThings(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.statistics, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.statistics.entries, HKPlayerData, HKWorldItems, HKSceneData); // ------------------------- Godhome Statistics ----------------------------- //
CheckAdditionalThings(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.godhomeStatistics, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.godhomeStatistics.entries, HKPlayerData, HKWorldItems, HKSceneData); // ------------------------- Hints ----------------------------- // CheckAdditionalThings(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.godhomeStatistics, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.godhomeStatistics.entries, HKPlayerData, HKWorldItems, HKSceneData); // ------------------------- Hints ----------------------------- //
CheckHintsTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.hints, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.hints.entries, HKPlayerData, HKWorldItems); // ------------------------- Fill completion ----------------------------- // CheckHintsTrue(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.hints, _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.hints.entries, HKPlayerData, HKWorldItems); // ------------------------- Fill completion ----------------------------- //
(0,_page_functions_js__WEBPACK_IMPORTED_MODULE_1__.CompletionHTML)(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION, HKPlayerData.completionPercentage); /* CompletionHTML(HK.sections, HKPlayerData.completionPercentage); */
(0,_page_functions_js__WEBPACK_IMPORTED_MODULE_1__.GenerateInnerHTML)(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION); // Prevents wrong checkbox behaviour (must run after everything is finished) // ------------------------- Indicate that the save file was loaded and analyzed ----------------------------- //
_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.saveAnalyzed = true; // ------------------------- Generate everything on the page with updated values ----------------------------- //
(0,_page_functions_js__WEBPACK_IMPORTED_MODULE_1__.GenerateInnerHTML)(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default); // Prevents wrong checkbox behaviour (must run after everything is finished)
(0,_page_functions_js__WEBPACK_IMPORTED_MODULE_1__.CheckboxHintsToggle)(); (0,_page_functions_js__WEBPACK_IMPORTED_MODULE_1__.CheckboxHintsToggle)();
(0,_page_functions_js__WEBPACK_IMPORTED_MODULE_1__.CheckboxSpoilersToggle)(); // finish and show benchmark (0,_page_functions_js__WEBPACK_IMPORTED_MODULE_1__.CheckboxSpoilersToggle)(); // finish and show benchmark
@ -273,7 +277,7 @@ function CheckCompletionPercent(divId, completionPercentage) {
function CheckSaveFileVersion(divId) { function CheckSaveFileVersion(divId) {
var saveVersion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION.intro.entries.saveVersion.spoiler; var saveVersion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.sections.intro.entries.saveVersion.spoiler;
CurrentDataBlank(); CurrentDataBlank();
divId.entries.saveVersion.spoiler = "".concat(saveVersion); divId.entries.saveVersion.spoiler = "".concat(saveVersion);
var textFill = "Save Version:".concat(pSpan, "<b>").concat(saveVersion, "</b>").concat(pSpan); // document.getElementById(divId.id).innerHTML += divStart + completionSymbol + textFill + divEnd; var textFill = "Save Version:".concat(pSpan, "<b>").concat(saveVersion, "</b>").concat(pSpan); // document.getElementById(divId.id).innerHTML += divStart + completionSymbol + textFill + divEnd;
@ -1258,7 +1262,7 @@ function CheckHintsTrue(divId, dataObject, playerData, worldData) {
function HKReadTextArea() { function HKReadTextArea() {
var textAreaId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; var textAreaId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
// refresh and prepare document for filling with data from the save // refresh and prepare document for filling with data from the save
InitialHTMLPopulate(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION); InitialHTMLPopulate(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default);
var contents = document.getElementById(textAreaId).value; var contents = document.getElementById(textAreaId).value;
if (contents.length) { if (contents.length) {
@ -1274,14 +1278,14 @@ function HKReadTextArea() {
} }
/** /**
* Populate all HTML with given ID and their initial data set as false (used at DOM load) * Populate all HTML with given ID and their initial data set as false (used at DOM load)
* @param {object} sections JavaScript Object containing all HTML IDs to populate * @param {object} db JavaScript Object containing all HTML IDs to populate
*/ */
function InitialHTMLPopulate(sections) { function InitialHTMLPopulate(db) {
var sFillText = ""; var sFillText = "";
CurrentDataFalse(); CurrentDataFalse();
(0,_page_functions_js__WEBPACK_IMPORTED_MODULE_1__.GenerateInnerHTML)(sections); // PrefillHTML(sections); (0,_page_functions_js__WEBPACK_IMPORTED_MODULE_1__.GenerateInnerHTML)(db); // PrefillHTML(sections);
/* /*
// Play Time // Play Time
@ -1443,7 +1447,7 @@ function FillInnerHTML(elementId, textFill) {
document.addEventListener("DOMContentLoaded", function () { document.addEventListener("DOMContentLoaded", function () {
InitialHTMLPopulate(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default.SECTION); InitialHTMLPopulate(_hk_database_js__WEBPACK_IMPORTED_MODULE_0__.default);
}); // Does an action when the save file location input text is clicked once (auto select & copy to clipboard) }); // Does an action when the save file location input text is clicked once (auto select & copy to clipboard)
document.getElementById("save-location-input").addEventListener("click", function (e) { document.getElementById("save-location-input").addEventListener("click", function (e) {
@ -2476,7 +2480,8 @@ __webpack_require__.r(__webpack_exports__);
This is the whole database for the tool, based on the .json save file data This is the whole database for the tool, based on the .json save file data
*/ */
var HK = { var HK = {
SECTION: { saveAnalyzed: false,
sections: {
/* ################ Intro ################### */ /* ################ Intro ################### */
intro: { intro: {
h2: "Game Status", h2: "Game Status",
@ -4733,7 +4738,6 @@ function TranslateMapName(mapCode) {
"use strict"; "use strict";
__webpack_require__.r(__webpack_exports__); __webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "PrefillHTML": () => (/* binding */ PrefillHTML),
/* harmony export */ "CompletionHTML": () => (/* binding */ CompletionHTML), /* harmony export */ "CompletionHTML": () => (/* binding */ CompletionHTML),
/* harmony export */ "GenerateInnerHTML": () => (/* binding */ GenerateInnerHTML), /* harmony export */ "GenerateInnerHTML": () => (/* binding */ GenerateInnerHTML),
/* harmony export */ "AppendHTML": () => (/* binding */ AppendHTML), /* harmony export */ "AppendHTML": () => (/* binding */ AppendHTML),
@ -4806,35 +4810,6 @@ function TogglePageScrollElement(root, element, ratio) {
HideElement(element); HideElement(element);
} }
} }
/**
* Cleans "generated" and fills all HTML elements of ids from a given list. Creates only div with id, and h2 with title inside it.
* @param {object} jsObj Object with HTML data to fill
*/
function PrefillHTML(jsObj) {
var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "generated";
var domElement = document.getElementById(element);
var sFillText = ""; // Clean "generated" div
// domElement.innerHTML = "";
var id = "";
var h2 = "";
var h2id = "";
var mp = ""; // max Percent
var cl = ""; // class
for (var i in jsObj) {
id = jsObj[i].id;
h2 = jsObj[i].h2;
h2id = "h2-" + jsObj[i].id;
mp = "<div class='percent-box'>".concat(i === "intro" ? 0 : jsObj[i].maxPercent, "%</div>");
if (!jsObj[i].hasOwnProperty("maxPercent")) mp = "";
sFillText += "\n <div id=\"".concat(id, "\" ").concat(cl, ">\n <h2 id='").concat(h2id, "'>").concat(h2).concat(mp, "</h2>\n </div>\n ");
} // domElement.innerHTML = sFillText;
}
/** /**
* Replaces the h2 titles with a current percent/max percent values as read from the save file * Replaces the h2 titles with a current percent/max percent values as read from the save file
* @param {object} jsObj Object with HTML data to fill * @param {object} jsObj Object with HTML data to fill
@ -4886,14 +4861,14 @@ function CompletionHTML(jsObj, hkGameCompletion) {
if (jsObj[i].id != "hk-intro") cp += "/"; if (jsObj[i].id != "hk-intro") cp += "/";
fillText = "<div class='percent-box".concat(cl, "'>").concat(i === "intro" ? cp : cp + jsObj[i].maxPercent, "%</div>"); fillText = "<div class='percent-box".concat(cl, "'>").concat(i === "intro" ? cp : cp + jsObj[i].maxPercent, "%</div>");
} // document.getElementById(h2id).innerHTML = h2 + fillText; }
} }
} }
/* ################################### Optimized Functions ###################################### */ /* ################################### Optimized Functions ###################################### */
function GenerateInnerHTML(sections) { function GenerateInnerHTML(db) {
var sections = db.sections;
console.log(sections); console.log(sections);
var finalHTMLFill = ""; var finalHTMLFill = "";
var textFill = ""; var textFill = "";
@ -4906,9 +4881,14 @@ function GenerateInnerHTML(sections) {
textFill = SectionStart(sections[section]); textFill = SectionStart(sections[section]);
/* creates a <h2> tag for the current section and fills with current%/max% */ /* creates a <h2> tag for the current section and fills with current%/max% */
if (db.saveAnalyzed === true) {
textFill += CompletionFill(sections[section]); textFill += CompletionFill(sections[section]);
} else {
textFill += CompletionFillNoSave(sections[section]);
}
/* create all main entries */ /* create all main entries */
switch (section) { switch (section) {
case "hints": case "hints":
/* display only one (current) hint */ /* display only one (current) hint */
@ -4939,6 +4919,26 @@ function GenerateInnerHTML(sections) {
function SectionStart(section) { function SectionStart(section) {
return "<div id=\"".concat(section.id, "\">\n"); return "<div id=\"".concat(section.id, "\">\n");
} }
/**
* Replaces the h2 titles with max percent values as read from the database
*/
function CompletionFillNoSave(section) {
var id = "";
var h2 = "";
var h2id = "";
var mp = ""; // max Percent
var cl = ""; // class
id = section.id;
h2 = section.h2;
h2id = "h2-" + section.id;
mp = "<div class='percent-box'>".concat(id === "hk-intro" ? 0 : section.maxPercent, "%</div>");
if (!section.hasOwnProperty("maxPercent")) mp = "";
return ["<div id=\"".concat(id, "\" ").concat(cl, ">"), "<h2 id='".concat(h2id, "'>").concat(h2).concat(mp, "</h2>"), "</div>\n"].join("");
}
/** /**
* Replaces the h2 titles with a current percent/max percent values as read from the database * Replaces the h2 titles with a current percent/max percent values as read from the database
*/ */

File diff suppressed because one or more lines are too long

View file

@ -7,7 +7,6 @@ import HK from "./hk-database.js";
/* ----------------- Helper functions --------------------------------------- */ /* ----------------- Helper functions --------------------------------------- */
import { import {
PrefillHTML,
CompletionHTML, CompletionHTML,
GenerateInnerHTML, GenerateInnerHTML,
AppendHTML, AppendHTML,
@ -224,9 +223,15 @@ function HKCheckCompletion(jsonObject) {
// ------------------------- Fill completion ----------------------------- // // ------------------------- Fill completion ----------------------------- //
CompletionHTML(HK.sections, HKPlayerData.completionPercentage); /* CompletionHTML(HK.sections, HKPlayerData.completionPercentage); */
GenerateInnerHTML(HK.sections); // ------------------------- Indicate that the save file was loaded and analyzed ----------------------------- //
HK.saveAnalyzed = true;
// ------------------------- Generate everything on the page with updated values ----------------------------- //
GenerateInnerHTML(HK);
// Prevents wrong checkbox behaviour (must run after everything is finished) // Prevents wrong checkbox behaviour (must run after everything is finished)
CheckboxHintsToggle(); CheckboxHintsToggle();
@ -1311,7 +1316,7 @@ function CheckHintsTrue(divId, dataObject, playerData, worldData) {
function HKReadTextArea(textAreaId = "") { function HKReadTextArea(textAreaId = "") {
// refresh and prepare document for filling with data from the save // refresh and prepare document for filling with data from the save
InitialHTMLPopulate(HK.sections); InitialHTMLPopulate(HK);
let contents = document.getElementById(textAreaId).value; let contents = document.getElementById(textAreaId).value;
@ -1331,15 +1336,15 @@ function HKReadTextArea(textAreaId = "") {
/** /**
* Populate all HTML with given ID and their initial data set as false (used at DOM load) * Populate all HTML with given ID and their initial data set as false (used at DOM load)
* @param {object} sections JavaScript Object containing all HTML IDs to populate * @param {object} db JavaScript Object containing all HTML IDs to populate
*/ */
function InitialHTMLPopulate(sections) { function InitialHTMLPopulate(db) {
let sFillText = ""; let sFillText = "";
CurrentDataFalse(); CurrentDataFalse();
GenerateInnerHTML(sections); GenerateInnerHTML(db);
// PrefillHTML(sections); // PrefillHTML(sections);
/* /*
@ -1517,7 +1522,7 @@ function FillInnerHTML(elementId, textFill) {
// Populate HTML at load (before img and css) // Populate HTML at load (before img and css)
document.addEventListener("DOMContentLoaded", () => { document.addEventListener("DOMContentLoaded", () => {
InitialHTMLPopulate(HK.sections); InitialHTMLPopulate(HK);
}); });
// Does an action when the save file location input text is clicked once (auto select & copy to clipboard) // Does an action when the save file location input text is clicked once (auto select & copy to clipboard)

View file

@ -5,7 +5,7 @@
const HK = { const HK = {
saveLoaded: false, saveAnalyzed: false,
sections: { sections: {

View file

@ -64,41 +64,6 @@ function TogglePageScrollElement(root, element, ratio) {
} }
} }
/**
* Cleans "generated" and fills all HTML elements of ids from a given list. Creates only div with id, and h2 with title inside it.
* @param {object} jsObj Object with HTML data to fill
*/
function PrefillHTML(jsObj, element = "generated") {
let domElement = document.getElementById(element);
let sFillText = "";
// Clean "generated" div
// domElement.innerHTML = "";
let id = "";
let h2 = "";
let h2id = "";
let mp = ""; // max Percent
let cl = ""; // class
for (let i in jsObj) {
id = jsObj[i].id;
h2 = jsObj[i].h2;
h2id = "h2-" + jsObj[i].id;
mp = `<div class='percent-box'>${(i === "intro") ? 0: jsObj[i].maxPercent}%</div>`;
if (!jsObj[i].hasOwnProperty("maxPercent")) mp = "";
sFillText += `
<div id="${id}" ${cl}>
<h2 id='${h2id}'>${h2}${mp}</h2>
</div>
`;
}
// domElement.innerHTML = sFillText;
}
/** /**
* Replaces the h2 titles with a current percent/max percent values as read from the save file * Replaces the h2 titles with a current percent/max percent values as read from the save file
* @param {object} jsObj Object with HTML data to fill * @param {object} jsObj Object with HTML data to fill
@ -155,8 +120,6 @@ function CompletionHTML(jsObj, hkGameCompletion) {
fillText = `<div class='percent-box${cl}'>${(i === "intro") ? cp: cp + jsObj[i].maxPercent}%</div>`; fillText = `<div class='percent-box${cl}'>${(i === "intro") ? cp: cp + jsObj[i].maxPercent}%</div>`;
} }
// document.getElementById(h2id).innerHTML = h2 + fillText;
} }
} }
@ -164,7 +127,9 @@ function CompletionHTML(jsObj, hkGameCompletion) {
/* ################################### Optimized Functions ###################################### */ /* ################################### Optimized Functions ###################################### */
function GenerateInnerHTML(sections) { function GenerateInnerHTML(db) {
let sections = db.sections;
console.log(sections); console.log(sections);
@ -180,8 +145,13 @@ function GenerateInnerHTML(sections) {
/* starts a new <div> with the current section id */ /* starts a new <div> with the current section id */
textFill = SectionStart(sections[section]); textFill = SectionStart(sections[section]);
/* creates a <h2> tag for the current section and fills with current%/max% */ /* creates a <h2> tag for the current section and fills with current%/max%
If the save file was not analyzed, then fill only max% on blue background*/
if (db.saveAnalyzed === true) {
textFill += CompletionFill(sections[section]); textFill += CompletionFill(sections[section]);
} else {
textFill += CompletionFillNoSave(sections[section]);
}
/* create all main entries */ /* create all main entries */
switch (section) { switch (section) {
@ -217,6 +187,31 @@ function SectionStart(section) {
return `<div id="${section.id}">\n`; return `<div id="${section.id}">\n`;
} }
/**
* Replaces the h2 titles with max percent values as read from the database
*/
function CompletionFillNoSave(section) {
let id = "";
let h2 = "";
let h2id = "";
let mp = ""; // max Percent
let cl = ""; // class
id = section.id;
h2 = section.h2;
h2id = "h2-" + section.id;
mp = `<div class='percent-box'>${(id === "hk-intro") ? 0: section.maxPercent}%</div>`;
if (!section.hasOwnProperty("maxPercent")) mp = "";
return [
`<div id="${id}" ${cl}>`,
`<h2 id='${h2id}'>${h2}${mp}</h2>`,
"</div>\n"
].join("");
}
/** /**
* Replaces the h2 titles with a current percent/max percent values as read from the database * Replaces the h2 titles with a current percent/max percent values as read from the database
*/ */
@ -579,7 +574,6 @@ document.getElementById("checkbox-spoilers").addEventListener("click", CheckboxS
/* ------------------------- Exports ------------------------------- */ /* ------------------------- Exports ------------------------------- */
export { export {
PrefillHTML,
CompletionHTML, CompletionHTML,
GenerateInnerHTML, GenerateInnerHTML,
AppendHTML, AppendHTML,