Sonar Cleanup - Phase 4

This commit is contained in:
Ean Milligan (Bastion) 2022-05-22 16:12:05 -04:00
parent 3c64e0cb06
commit 9eff1f0835
2 changed files with 32 additions and 44 deletions

View File

@ -386,25 +386,25 @@ export const roll = (rollStr: string, maximiseRoll: boolean, nominalRoll: boolea
rollSet[i].rerolled = true; rollSet[i].rerolled = true;
// Copy the template to fill out for this iteration // Copy the template to fill out for this iteration
const newRoll = JSON.parse(JSON.stringify(templateRoll)); const newReroll = JSON.parse(JSON.stringify(templateRoll));
// If maximiseRoll is on, set the roll to the dieSize, else if nominalRoll is on, set the roll to the average roll of dieSize, else generate a new random roll // If maximiseRoll is on, set the roll to the dieSize, else if nominalRoll is on, set the roll to the average roll of dieSize, else generate a new random roll
newRoll.roll = genRoll(rollConf.dieSize, maximiseRoll, nominalRoll); newReroll.roll = genRoll(rollConf.dieSize, maximiseRoll, nominalRoll);
// If critScore arg is on, check if the roll should be a crit, if its off, check if the roll matches the die size // If critScore arg is on, check if the roll should be a crit, if its off, check if the roll matches the die size
if (rollConf.critScore.on && rollConf.critScore.range.indexOf(newRoll.roll) >= 0) { if (rollConf.critScore.on && rollConf.critScore.range.indexOf(newReroll.roll) >= 0) {
newRoll.critHit = true; newReroll.critHit = true;
} else if (!rollConf.critScore.on) { } else if (!rollConf.critScore.on) {
newRoll.critHit = newRoll.roll === rollConf.dieSize; newReroll.critHit = newReroll.roll === rollConf.dieSize;
} }
// If critFail arg is on, check if the roll should be a fail, if its off, check if the roll matches 1 // If critFail arg is on, check if the roll should be a fail, if its off, check if the roll matches 1
if (rollConf.critFail.on && rollConf.critFail.range.indexOf(newRoll.roll) >= 0) { if (rollConf.critFail.on && rollConf.critFail.range.indexOf(newReroll.roll) >= 0) {
newRoll.critFail = true; newReroll.critFail = true;
} else if (!rollConf.critFail.on) { } else if (!rollConf.critFail.on) {
newRoll.critFail = newRoll.roll === 1; newReroll.critFail = newReroll.roll === 1;
} }
// Slot this new roll in after the current iteration so it can be processed in the next loop // Slot this new roll in after the current iteration so it can be processed in the next loop
rollSet.splice(i + 1, 0, newRoll); rollSet.splice(i + 1, 0, newReroll);
} else if ( } else if (
rollConf.exploding.on && !rollSet[i].rerolled && (rollConf.exploding.nums.length ? rollConf.exploding.nums.indexOf(rollSet[i].roll) >= 0 : rollSet[i].critHit) && rollConf.exploding.on && !rollSet[i].rerolled && (rollConf.exploding.nums.length ? rollConf.exploding.nums.indexOf(rollSet[i].roll) >= 0 : rollSet[i].critHit) &&
(!rollConf.exploding.once || !rollSet[i].exploding) (!rollConf.exploding.once || !rollSet[i].exploding)
@ -413,27 +413,27 @@ export const roll = (rollStr: string, maximiseRoll: boolean, nominalRoll: boolea
// If it exploded, we keep both, so no flags need to be set // If it exploded, we keep both, so no flags need to be set
// Copy the template to fill out for this iteration // Copy the template to fill out for this iteration
const newRoll = JSON.parse(JSON.stringify(templateRoll)); const newExplodingRoll = JSON.parse(JSON.stringify(templateRoll));
// If maximiseRoll is on, set the roll to the dieSize, else if nominalRoll is on, set the roll to the average roll of dieSize, else generate a new random roll // If maximiseRoll is on, set the roll to the dieSize, else if nominalRoll is on, set the roll to the average roll of dieSize, else generate a new random roll
newRoll.roll = genRoll(rollConf.dieSize, maximiseRoll, nominalRoll); newExplodingRoll.roll = genRoll(rollConf.dieSize, maximiseRoll, nominalRoll);
// Always mark this roll as exploding // Always mark this roll as exploding
newRoll.exploding = true; newExplodingRoll.exploding = true;
// If critScore arg is on, check if the roll should be a crit, if its off, check if the roll matches the die size // If critScore arg is on, check if the roll should be a crit, if its off, check if the roll matches the die size
if (rollConf.critScore.on && rollConf.critScore.range.indexOf(newRoll.roll) >= 0) { if (rollConf.critScore.on && rollConf.critScore.range.indexOf(newExplodingRoll.roll) >= 0) {
newRoll.critHit = true; newExplodingRoll.critHit = true;
} else if (!rollConf.critScore.on) { } else if (!rollConf.critScore.on) {
newRoll.critHit = newRoll.roll === rollConf.dieSize; newExplodingRoll.critHit = newExplodingRoll.roll === rollConf.dieSize;
} }
// If critFail arg is on, check if the roll should be a fail, if its off, check if the roll matches 1 // If critFail arg is on, check if the roll should be a fail, if its off, check if the roll matches 1
if (rollConf.critFail.on && rollConf.critFail.range.indexOf(newRoll.roll) >= 0) { if (rollConf.critFail.on && rollConf.critFail.range.indexOf(newExplodingRoll.roll) >= 0) {
newRoll.critFail = true; newExplodingRoll.critFail = true;
} else if (!rollConf.critFail.on) { } else if (!rollConf.critFail.on) {
newRoll.critFail = newRoll.roll === 1; newExplodingRoll.critFail = newExplodingRoll.roll === 1;
} }
// Slot this new roll in after the current iteration so it can be processed in the next loop // Slot this new roll in after the current iteration so it can be processed in the next loop
rollSet.splice(i + 1, 0, newRoll); rollSet.splice(i + 1, 0, newExplodingRoll);
} }
loopCount++; loopCount++;

View File

@ -60,6 +60,14 @@ function validateFields() {
submitField.disabled = false; submitField.disabled = false;
} }
function setFieldClasses(showApi, showChannel, showActive, showEmail, showDelete) {
document.getElementById("api-field-group").className = showApi ? "field-group" : "hidden";
document.getElementById("channel-field-group").className = showChannel ? "field-group" : "hidden";
document.getElementById("active-field-group").className = showActive ? "field-group" : "hidden";
document.getElementById("email-field-group").className = showEmail ? "field-group" : "hidden";
document.getElementById("delete-field-group").className = showDelete ? "field-group" : "hidden";
}
// Shows appropriate fields for selected endpoint // Shows appropriate fields for selected endpoint
function showFields() { function showFields() {
document.getElementById("fields").className = ""; document.getElementById("fields").className = "";
@ -68,39 +76,19 @@ function showFields() {
switch (endpoint) { switch (endpoint) {
case "generate": case "generate":
document.getElementById("api-field-group").className = "hidden"; setFieldClasses(false, false, false, true, false);
document.getElementById("channel-field-group").className = "hidden";
document.getElementById("active-field-group").className = "hidden";
document.getElementById("email-field-group").className = "field-group";
document.getElementById("delete-field-group").className = "hidden";
break; break;
case "delete": case "delete":
document.getElementById("api-field-group").className = "field-group"; setFieldClasses(true, false, false, true, true);
document.getElementById("channel-field-group").className = "hidden";
document.getElementById("active-field-group").className = "hidden";
document.getElementById("email-field-group").className = "field-group";
document.getElementById("delete-field-group").className = "field-group";
break; break;
case "view": case "view":
document.getElementById("api-field-group").className = "field-group"; setFieldClasses(true, false, false, false, false);
document.getElementById("channel-field-group").className = "hidden";
document.getElementById("active-field-group").className = "hidden";
document.getElementById("email-field-group").className = "hidden";
document.getElementById("delete-field-group").className = "hidden";
break; break;
case "add": case "add":
document.getElementById("api-field-group").className = "field-group"; setFieldClasses(true, true, false, false, false);
document.getElementById("channel-field-group").className = "field-group";
document.getElementById("active-field-group").className = "hidden";
document.getElementById("email-field-group").className = "hidden";
document.getElementById("delete-field-group").className = "hidden";
break; break;
case "activate": case "activate":
document.getElementById("api-field-group").className = "field-group"; setFieldClasses(true, true, true, false, false);
document.getElementById("channel-field-group").className = "field-group";
document.getElementById("active-field-group").className = "field-group";
document.getElementById("email-field-group").className = "hidden";
document.getElementById("delete-field-group").className = "hidden";
break; break;
default: default:
break; break;