const renderHealthBoxes = () => { //let physicalBoxes = calculateBoxes('physical') //let stunBoxes = calculateBoxes('stun') //let overflowBoxes = calculateBoxes('overflow') let tempObject = {} for (let j = 0; j < 12; j++) { let newRowId = generateRowID() console.log(`Generating Physical Row Number: ${j}`) while (tempObject[`repeating_physicaltracker_${newRowId}_boxNum`] != j) { tempObject[`repeating_physicaltracker_${newRowId}_boxNum`] = j tempObject[`repeating_physicaltracker_${newRowId}_woundMod`] = Math.trunc(j / 3) * -1 tempObject[`repeating_physicaltracker_${newRowId}_isCrossed`] = 'false' } } for (let j = 0; j < 12; j++) { let newRowId = generateRowID() console.log(`Generating Stun Row Number: ${j}`) while (tempObject[`repeating_stuntracker_${newRowId}_boxNum`] != j) { tempObject[`repeating_stuntracker_${newRowId}_boxNum`] = j tempObject[`repeating_stuntracker_${newRowId}_woundMod`] = Math.trunc(j / 3) * -1 tempObject[`repeating_stuntracker_${newRowId}_isCrossed`] = 'false' } } for (let j = 0; j < 12; j++) { let newRowId = generateRowID() console.log(`Generating Overflow Row Number: ${j}`) while (tempObject[`repeating_overflowtracker_${newRowId}_boxNum`] != j) { tempObject[`repeating_overflowtracker_${newRowId}_boxNum`] = j tempObject[`repeating_overflowtracker_${newRowId}_woundMod`] = Math.trunc(j / 3) * -1 tempObject[`repeating_overflowtracker_${newRowId}_isCrossed`] = 'false' } } console.log(tempObject) setAttrs(tempObject) } const clearAllHealthBoxes = () => { getSectionIDs('physicaltracker', function (ids) { ids.forEach(id => { removeRepeatingRow(`repeating_physicaltracker_${id}`) }); }) getSectionIDs('stuntracker', function (ids) { ids.forEach(id => { removeRepeatingRow(`repeating_stuntracker_${id}`) }); }) getSectionIDs('overflowtracker', function (ids) { ids.forEach(id => { removeRepeatingRow(`repeating_overflowtracker_${id}`) }); }) } const calculateBoxes = (tracker, stat, freeBoxes, woundReduction) => { let trackerInfo = {} trackerInfo.tracker = tracker trackerInfo.startWoundCalc = freeBoxes trackerInfo.normalBoxes = Math.trunc(stat / 2) + 8 + freeBoxes } const clearTracker = (tracker, resetWounds) => { getSectionIDs(`${tracker}tracker`, function (ids) { let tempObject = {} ids.forEach(id => { tempObject[`repeating_${tracker}tracker_${id}_isCrossed`] = 'false' }); if (resetWounds) { tempObject[`${tracker}Wounds`] = 0 } setAttrs(tempObject) }) } const setTrackerTo = (tracker, toId) => { clearTracker(tracker, false) getSectionIDs(`${tracker}tracker`, function (ids) { let tempObject = {} ids.forEach(id => { getAttrs([`repeating_${tracker}tracker_${id}_boxNum`], function (values) { if (values[`repeating_${tracker}tracker_${id}_boxNum`] <= toId) { tempObject[`repeating_${tracker}tracker_${id}_isCrossed`] = 'true' } else { tempObject[`repeating_${tracker}tracker_${id}_isCrossed`] = 'false' } if (values[`repeating_${tracker}tracker_${id}_boxNum`] == toId) { tempObject[`${tracker}Wounds`] = toId + 1 setAttrs(tempObject) } }) }) }) } on('clicked:testBox', function () { renderHealthBoxes() }) on('clicked:clearBoxes', function () { clearAllHealthBoxes() }) on('clicked:repeating_physicaltracker:check-tracker', function (ev) { getAttrs(['repeating_physicaltracker_boxNum', 'repeating_physicaltracker_isCrossed', 'physicalWounds'], function (values) { let _isCrossed = values.repeating_physicaltracker_isCrossed let _boxId = values.repeating_physicaltracker_boxNum let _physicalWounds = values.physicalWounds if (_isCrossed === 'false') { setTrackerTo('physical', _boxId) } else if (_physicalWounds - 1 != _boxId) { setTrackerTo('physical', _boxId) } else { clearTracker('physical', true) } }) }) on('clicked:repeating_stuntracker:check-tracker', function (ev) { getAttrs(['repeating_stuntracker_boxNum', 'repeating_stuntracker_isCrossed', 'stunWounds'], function (values) { let _isCrossed = values.repeating_stuntracker_isCrossed let _boxId = values.repeating_stuntracker_boxNum let _wounds = values.stunWounds if (_isCrossed === 'false') { setTrackerTo('stun', _boxId) } else if (_wounds - 1 != _boxId) { setTrackerTo('stun', _boxId) } else { clearTracker('stun', true) } }) }) on('clicked:repeating_overflowtracker:check-tracker', function (ev) { getAttrs(['repeating_overflowtracker_boxNum', 'repeating_overflowtracker_isCrossed', 'overflowWounds'], function (values) { let _isCrossed = values.repeating_overflowtracker_isCrossed let _boxId = values.repeating_overflowtracker_boxNum let _wounds = values.overflowWounds if (_isCrossed === 'false') { setTrackerTo('overflow', _boxId) } else if (_wounds - 1 != _boxId) { setTrackerTo('overflow', _boxId) } else { clearTracker('overflow', true) } }) })