fixed some bugs about incorrectly transferred ini values after taking action / starting new round

This commit is contained in:
Tobias 2023-02-08 00:43:17 +01:00
parent c82a3e41d8
commit c26dd7be94
2 changed files with 13 additions and 10 deletions

View File

@ -31,7 +31,6 @@ input:invalid {
width: 20px;
}
/* Dropdown Content (Hidden by Default) */
.damage-monitor {
display: none;
position: absolute;
@ -54,14 +53,13 @@ input:invalid {
height: 24px;
}
.damage-monitor button {
font-size: smaller;
height: 24px;
width: 30px;
padding: 2px;
}
.damage-monitor button.active {
filter: brightness(91%);
}

View File

@ -21,7 +21,7 @@ const damageMonitorHTML = ['<table class="bg-light damage-monitor text-center al
const maxIniClass = "table-primary";
const zeroIniClass = "table-secondary";
const regularClass = "table-success";
/*
* helper functions
@ -64,7 +64,7 @@ console.log("Reaction values are: ", tmpA, tmpB);
function sortTable() {
// remove previous classes from rows, disable act buttons
$(".combatantRow").removeClass(maxIniClass + " " + zeroIniClass).find(".act-button").prop("disabled", true).attr("aria-disabled", "true");
$(".combatantRow").removeClass(maxIniClass + " " + zeroIniClass + " " + regularClass).find(".act-button").prop("disabled", true).attr("aria-disabled", "true");
// get ini value for every combatant; set to 0 if K.O./dead
let iniValues = $.map( $(".combatantRow"), function(tr, i) {
@ -87,11 +87,15 @@ console.log(iniValues);
// ini = zero
if ( parseInt($(this).find(".combatantIni").text()) == 0 ) {
$(this).addClass(zeroIniClass);
return true;
}
// ini = max and non-zero
else if ( parseInt($(this).find(".combatantIni").text()) == iniMax && iniMax > 0 ) {
if ( parseInt($(this).find(".combatantIni").text()) == iniMax && iniMax > 0 ) {
$(this).addClass(maxIniClass).find(".act-button").prop("disabled", false).removeAttr("aria-disabled");
return true;
}
// everything else
$(this).addClass(regularClass);
})
// sort rows and append them in new order
@ -141,8 +145,9 @@ function handleActButtonClick (e) {
ini = Math.max(parseInt(ini) - 10, 0);
// set new ini value
// can't use text() here because that would delete wound badges
$tr.attr("data-true-ini", ini);
$tr.find(".combatantIni").text(getEffectiveIni($tr));
$tr.find(".combatantIni").contents()[0].data = getEffectiveIni($tr);
// resort table
sortTable();
@ -447,6 +452,7 @@ function editCombatant (e) {
$tr.find(".combatantRea").text(rea);
$tr.attr("data-true-ini", ini);
$tr.find(".combatantIni").text(getEffectiveIni($tr));
//TODO: add badges
// sort table
sortTable();
@ -491,8 +497,7 @@ function startNewRound (e) {
} else {
$(this).attr("data-true-ini", rollForInitiative(dice, $(this).find(".combatantRea").text()));
}
$(this).find(".combatantIni").text(getEffectiveIni($(this)));
let effectiveIni = $(this).find(".combatantIni").text();
$(this).find(".combatantIni").contents()[0].data = getEffectiveIni($(this));
});
// resort table