- went back to store true-ini in HTML data attribute via .attr(); .data() did not update the HTML attribute value reliably

This commit is contained in:
Tobias 2023-02-10 10:45:16 +01:00
parent 615a67cc5f
commit 26a9c216ab

View File

@ -93,7 +93,7 @@ function getEffectiveIni(tr) {
} }
// otherwise compute effective ini (true ini minus wound penalties) // otherwise compute effective ini (true ini minus wound penalties)
let effectiveIni = parseInt($(tr).data("true-ini")) - DAMAGE_PENALTY[parseInt($(tr).data("damage-stun")) || 0] - DAMAGE_PENALTY[parseInt($(tr).data("damage-physical")) || 0]; let effectiveIni = parseInt($(tr).attr("data-true-ini")) - DAMAGE_PENALTY[parseInt($(tr).attr("data-damage-stun")) || 0] - DAMAGE_PENALTY[parseInt($(tr).attr("data-damage-physical")) || 0];
return Math.max(effectiveIni, 0); return Math.max(effectiveIni, 0);
} }
@ -120,10 +120,10 @@ function addTestCombatant() {
function handleActButtonClick (e) { function handleActButtonClick (e) {
// reduce ini by 10 but not lower than 0 // reduce ini by 10 but not lower than 0
let ini = Math.max(parseInt($(e.target).parents(".combatantRow").data("true-ini")) - 10, 0); let ini = Math.max(parseInt($(e.target).parents(".combatantRow").attr("data-true-ini")) - 10, 0);
// set new ini value // set new ini value
$(e.target).parents(".combatantRow").data("true-ini", ini); $(e.target).parents(".combatantRow").attr("data-true-ini", ini);
// resort table // resort table
sortTable(); sortTable();
@ -182,14 +182,14 @@ function handleEditButtonClick (e) {
$("#combatantModalName").val($tr.find(".combatantName").text()); $("#combatantModalName").val($tr.find(".combatantName").text());
$("#combatantModalDice").val($tr.find(".combatantDice").text()); $("#combatantModalDice").val($tr.find(".combatantDice").text());
$("#combatantModalRea").val($tr.find(".combatantRea").text()); $("#combatantModalRea").val($tr.find(".combatantRea").text());
$("#combatantModalIni").val($tr.data("true-ini")); $("#combatantModalIni").val($tr.attr("data-true-ini"));
// show effective ini in modal // show effective ini in modal
$("#penalty-stun").text(DAMAGE_PENALTY[parseInt($tr.data("damage-stun")) || 0]); $("#penalty-stun").text(DAMAGE_PENALTY[parseInt($tr.attr("data-damage-stun")) || 0]);
$("#penalty-physical").text(DAMAGE_PENALTY[parseInt($tr.data("damage-physical")) || 0]); $("#penalty-physical").text(DAMAGE_PENALTY[parseInt($tr.attr("data-damage-physical")) || 0]);
// mark which row is being edited // mark which row is being edited
$("#combatantModal").data("row", $(".combatantRow").index($tr)); $("#combatantModal").data("row", $(".combatantRow").index($tr)); // here it's okay to use .data() b/c HTML/CSS does not care about this value
// add handler for enter key // add handler for enter key
$("#combatantModal input[id*='combatantModal']").off("keydown"); $("#combatantModal input[id*='combatantModal']").off("keydown");
@ -223,7 +223,7 @@ function handleRemoveButtonClick (e) {
$("#confirmModalNewRoundOkButton").addClass("d-none"); $("#confirmModalNewRoundOkButton").addClass("d-none");
// mark which row is being removed // mark which row is being removed
$("#confirmModal").data("row", $(".combatantRow").index($(e.target).parents(".combatantRow"))); $("#confirmModal").data("row", $(".combatantRow").index($(e.target).parents(".combatantRow"))); // here it's okay to use .data() b/c HTML/CSS does not care about this value
// show modal // show modal
$("#comfirmModal").modal("show"); $("#comfirmModal").modal("show");
@ -257,7 +257,7 @@ function addCombatant (e) {
$tr.find(".damage-dropdown").append($.parseHTML(DAMAGE_MONITOR_HTML)); $tr.find(".damage-dropdown").append($.parseHTML(DAMAGE_MONITOR_HTML));
// populate table row with values from modal // populate table row with values from modal
$tr.data("true-ini", ini); $tr.attr("data-true-ini", ini);
$tr.find(".combatantName").text($("#combatantModalName").val().trim()); $tr.find(".combatantName").text($("#combatantModalName").val().trim());
$tr.find(".combatantDice").text($("#combatantModalDice").val().trim()); $tr.find(".combatantDice").text($("#combatantModalDice").val().trim());
$tr.find(".combatantRea").text($("#combatantModalRea").val().trim()); $tr.find(".combatantRea").text($("#combatantModalRea").val().trim());
@ -294,7 +294,7 @@ function applyDamage (e) {
}).toString().substr(7); }).toString().substr(7);
// add damage level to table row as as data attribute // add damage level to table row as as data attribute
$btn.parents("tr.combatantRow").data("damage-" + damageType, damageLevel); $btn.parents("tr.combatantRow").attr("data-damage-" + damageType, damageLevel);
// select/unselect damage buttons above/below // select/unselect damage buttons above/below
$btn.addClass("active"); $btn.addClass("active");
@ -335,7 +335,7 @@ function editCombatant (e) {
$tr.find(".combatantName").text(name); $tr.find(".combatantName").text(name);
$tr.find(".combatantDice").text(dice); $tr.find(".combatantDice").text(dice);
$tr.find(".combatantRea").text(rea); $tr.find(".combatantRea").text(rea);
$tr.data("true-ini", ini); $tr.attr("data-true-ini", ini);
// sort table // sort table
sortTable(); sortTable();
@ -375,9 +375,9 @@ function startNewRound (e) {
// reset ini values // reset ini values
$(".combatantRow").each( function() { $(".combatantRow").each( function() {
if ( $(this).find(".combatantDice").text() == "" ) { if ( $(this).find(".combatantDice").text() == "" ) {
$(this).data("true-ini", 1); $(this).attr("data-true-ini", 1);
} else { } else {
$(this).data("true-ini", rollForInitiative(parseInt($(this).find(".combatantDice").text()), parseInt($(this).find(".combatantRea").text()))); $(this).attr("data-true-ini", rollForInitiative(parseInt($(this).find(".combatantDice").text()), parseInt($(this).find(".combatantRea").text())));
} }
}); });
@ -395,7 +395,7 @@ function sortTable() {
// mark KO or death with class // mark KO or death with class
$(".combatantRow").each(function() { $(".combatantRow").each(function() {
if ( parseInt($(this).data("damage-stun")) == 10 || parseInt($(this).data("damage-physical")) == 10 ) { if ( parseInt($(this).attr("data-damage-stun")) == 10 || parseInt($(this).attr("data-damage-physical")) == 10 ) {
$(this).addClass(CONTEXTUAL_CLASSES["KO_OR_DEAD"]); $(this).addClass(CONTEXTUAL_CLASSES["KO_OR_DEAD"]);
} }
}); });
@ -410,13 +410,13 @@ function sortTable() {
// add damage badges and contextual classes // add damage badges and contextual classes
$(".combatantRow").each(function() { $(".combatantRow").each(function() {
// damage badges // damage badges
if ( $(this).data("damage-stun") && $(this).data("damage-stun") != "0" ) { if ( $(this).attr("data-damage-stun") && $(this).attr("data-damage-stun") != "0" ) {
$(this).find(".combatantIni").append($.parseHTML(STUN_BADGE_HTML)); $(this).find(".combatantIni").append($.parseHTML(STUN_BADGE_HTML));
$(this).find(".stun-badge").append(DAMAGE_NIVEAU[DAMAGE_PENALTY[$(this).data("damage-stun")]]); $(this).find(".stun-badge").append(DAMAGE_NIVEAU[DAMAGE_PENALTY[$(this).attr("data-damage-stun")]]);
} }
if ( $(this).data("damage-physical") && $(this).data("damage-physical") != "0" ) { if ( $(this).attr("data-damage-physical") && $(this).attr("data-damage-physical") != "0" ) {
$(this).find(".combatantIni").append($.parseHTML(PHYSICAL_BADGE_HTML)); $(this).find(".combatantIni").append($.parseHTML(PHYSICAL_BADGE_HTML));
$(this).find(".physical-badge").append(DAMAGE_NIVEAU[DAMAGE_PENALTY[$(this).data("damage-physical")]]); $(this).find(".physical-badge").append(DAMAGE_NIVEAU[DAMAGE_PENALTY[$(this).attr("data-damage-physical")]]);
} }
// K.O./dead -> don't add anything // K.O./dead -> don't add anything