Add overflow and stun damage tracks and include it functionality.

This commit is contained in:
Sebastian Fischlmayr 2022-10-26 15:16:33 +02:00
parent 05a0feab52
commit f600faf50e
Signed by: Maverick
GPG key ID: 6379E413924A4E77
6 changed files with 258 additions and 45 deletions

View file

@ -2,14 +2,38 @@ 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()
let tempObject = {}
tempObject[`repeating_physicaltracker_${newRowId}_boxNum`] = j
tempObject[`repeating_physicaltracker_${newRowId}_woundMod`] = Math.trunc(j / 3) * -1
tempObject[`repeating_physicaltracker_${newRowId}_isCrossed`] = 'false'
setAttrs(tempObject)
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 = () => {
@ -18,6 +42,25 @@ const clearAllHealthBoxes = () => {
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) => {
@ -46,7 +89,6 @@ const setTrackerTo = (tracker, toId) => {
}
if (values[`repeating_${tracker}tracker_${id}_boxNum`] == toId) {
tempObject[`${tracker}Wounds`] = toId + 1
console.log(tempObject)
setAttrs(tempObject)
}
})
@ -54,15 +96,15 @@ const setTrackerTo = (tracker, toId) => {
})
}
on('clicked:testBox', function() {
on('clicked:testBox', function () {
renderHealthBoxes()
})
on('clicked:clearBoxes', function() {
on('clicked:clearBoxes', function () {
clearAllHealthBoxes()
})
on('clicked:repeating_physicaltracker:check-phys', function (ev) {
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
@ -74,4 +116,35 @@ on('clicked:repeating_physicaltracker:check-phys', function (ev) {
} 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)
}
})
})