diff --git a/HKCheckCompletion.js b/HKCheckCompletion.js index 6577a16..8901682 100644 --- a/HKCheckCompletion.js +++ b/HKCheckCompletion.js @@ -366,38 +366,18 @@ function HKCheckCompletion(jsonObject) { let HKPlayerData = jsonObject.playerData; let HKWorldItems = jsonObject.sceneData.persistentBoolItems; + // ---------------- Time Played ----------------- // + + CheckPlayTime(DIV_ID.intro, HKPlayerData.playTime); + + // ---------------- Game Completion Status ----------------- // + + CheckCompletionPercent(DIV_ID.intro, HKPlayerData); + for (let i in HKPlayerData) { completionSymbol = SYMBOL_FALSE; currentData = DATA_UNKNOWN; - // ---------------- Game Completion Status ----------------- // - - if (i === "completionPercentage") { - if (HKPlayerData.completionPercentage >= 112) CurrentDataTrue(); - - let textFill = "Game Completion: " + HKPlayerData.completionPercentage + " % (out of 112 %)"; - document.getElementById(DIV_ID.intro.id).innerHTML += divStart + completionSymbol + textFill + divEnd; - - CurrentDataFalse(); - } - - // ---------------- Time Played ----------------- // - - if (i === "playTime") { - let icon = ""; - let seconds = Math.floor(HKPlayerData.playTime); - let minutes = Math.floor((seconds / 60) % 60); - let hours = Math.floor(seconds / 3600); - let sec = Math.floor(seconds % 60); - - if (sec <= 10) sec = "0" + sec; - if (minutes <= 10) minutes = "0" + minutes; - - let textFill = "Time Played: " + hours + " h " + minutes + " min " + sec + " sec"; - - document.getElementById(DIV_ID.intro.id).innerHTML += divStart + icon + textFill + divEnd; - } - // ---------------- Bosses (Base Game) --------------------- // if (HK_BOSSES_temp) CheckIfDataTrue(DIV_ID.bosses, HK_BOSSES_temp, HKPlayerData); @@ -571,6 +551,47 @@ function CurrentDataFalse(textData = isNotCompleted) { currentData = textData; } +/** + * Fills HTML with the playTime value of the save file + * @param {object} divId ID of the HTML element for data appending + * @param {number} playTime Number of total gameplay time in seconds + */ +function CheckPlayTime(divId, playTime) { + + let icon = ""; + let seconds = Math.floor(playTime); + let minutes = Math.floor((seconds / 60) % 60); + let hours = Math.floor(seconds / 3600); + let sec = Math.floor(seconds % 60); + + if (sec <= 10) sec = "0" + sec; + if (minutes <= 10) minutes = "0" + minutes; + + let textFill = "Time Played: " + hours + " h " + minutes + " min " + sec + " sec"; + + document.getElementById(divId.id).innerHTML += divStart + icon + textFill + divEnd; +} + +/** + * Searches for completionPercentage in playerData and fills HTML with the value of the save file + * @param {object} divId ID of the HTML element for data appending + * @param {object} playerData Reference/pointer to specific data where to search + */ +function CheckCompletionPercent(divId, playerData) { + + let textFill = ""; + CurrentDataFalse(); + + for (let i in playerData) { + if (i === "completionPercentage") { + if (playerData[i] >= 112) CurrentDataTrue(); + + textFill = "Game Completion: " + playerData[i] + " % (out of " + divId.maxPercent + " %)"; + document.getElementById(divId.id).innerHTML += divStart + completionSymbol + textFill + divEnd; + } + } +} + /** * Verifies if the data in a specific object is true or false, and appends HTML accordingly. Destructive function. * @param {string} divId ID of the HTML element for data appending diff --git a/index.html b/index.html index 65d68f1..b6a701d 100644 --- a/index.html +++ b/index.html @@ -81,7 +81,7 @@ - +