Fixed some bugs regarding pro codes saving/loading
parent
157e1e1bf4
commit
378de24dd1
|
|
@ -31,16 +31,18 @@ document.addEventListener("DOMContentLoaded", (event) => {
|
||||||
const merit =
|
const merit =
|
||||||
Number(localStorage.getItem(MERIT_STORAGE_NAME + source)) ?? 0;
|
Number(localStorage.getItem(MERIT_STORAGE_NAME + source)) ?? 0;
|
||||||
if (merit > 0) {
|
if (merit > 0) {
|
||||||
markFight(fight);
|
markFight(fight, merit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function markFight(data) {
|
function markFight(data, loadedMerit = 0) {
|
||||||
const source = data.dataset["meritSource"];
|
const source = data.dataset["meritSource"];
|
||||||
|
const enemyName = data.dataset["enemy"];
|
||||||
const baseMerit = data.dataset["baseMerit"];
|
const baseMerit = data.dataset["baseMerit"];
|
||||||
const isMarked = data.dataset["marked"] === "true" ? true : false;
|
const isMarked = data.dataset["marked"] === "true" ? true : false;
|
||||||
const fightLabel = data.parentNode.querySelector("span");
|
const fightLabel = data.parentNode.querySelector("span");
|
||||||
|
const isLoading = loadedMerit > 0;
|
||||||
|
|
||||||
if (isMarked) {
|
if (isMarked) {
|
||||||
data.dataset["marked"] = false;
|
data.dataset["marked"] = false;
|
||||||
|
|
@ -52,9 +54,11 @@ function markFight(data) {
|
||||||
|
|
||||||
data.innerText = "Mark";
|
data.innerText = "Mark";
|
||||||
data.classList.remove("danger");
|
data.classList.remove("danger");
|
||||||
fightLabel.innerText = source;
|
fightLabel.innerText = enemyName;
|
||||||
} else {
|
} else {
|
||||||
let merit = baseMerit * (stars * STAR_MULTIPLIER);
|
let merit = isLoading
|
||||||
|
? loadedMerit
|
||||||
|
: baseMerit * (stars * STAR_MULTIPLIER);
|
||||||
data.dataset["marked"] = true;
|
data.dataset["marked"] = true;
|
||||||
totalMerit += merit;
|
totalMerit += merit;
|
||||||
updateMeritCounter();
|
updateMeritCounter();
|
||||||
|
|
@ -64,7 +68,7 @@ function markFight(data) {
|
||||||
|
|
||||||
data.innerText = "Unmark";
|
data.innerText = "Unmark";
|
||||||
data.classList.add("danger");
|
data.classList.add("danger");
|
||||||
fightLabel.innerText = source + " | " + merit + " Merit";
|
fightLabel.innerText = enemyName + " | " + merit + " Merit";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,3 +28,11 @@ pub struct ProCodeFight {
|
||||||
pub enemy: String,
|
pub enemy: String,
|
||||||
pub merit: u16,
|
pub merit: u16,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl ProCodeFight {
|
||||||
|
pub fn source(&self) -> String {
|
||||||
|
let world = self.world.replace(" ", "_").to_lowercase();
|
||||||
|
let enemy = self.enemy.replace(" ", "_").to_lowercase();
|
||||||
|
format!("{world}/{enemy}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
<div class="scrollable">
|
<div class="scrollable">
|
||||||
{% for fight in fights %}
|
{% for fight in fights %}
|
||||||
<div class="slot">
|
<div class="slot">
|
||||||
<button onclick="markFight(this)" data-merit-source="{{fight.enemy}}" data-base-merit="{{fight.merit}}">Mark</button>
|
<button onclick="markFight(this)" data-enemy="{{fight.enemy}}" data-merit-source="{{fight.source()}}" data-base-merit="{{fight.merit}}">Mark</button>
|
||||||
<span>{{fight.enemy}}</span>
|
<span>{{fight.enemy}}</span>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue