150 lines
No EOL
5 KiB
JavaScript
150 lines
No EOL
5 KiB
JavaScript
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)
|
|
}
|
|
})
|
|
}) |