Compare commits

...

25 Commits

Author SHA1 Message Date
a5c6ae8fcb Fix #35 2023-10-04 21:49:07 +02:00
5e42cfbab1 Fix sheet and weapons roll 2023-09-01 20:46:36 +02:00
86a9889359 Fix #29 2023-08-30 20:19:13 +02:00
7375fa39c5 Fix #27 2023-08-30 14:22:29 +02:00
ab587740d8 Fix #25 2023-08-30 09:46:43 +02:00
0f4fe253e0 Manage packs thru LFS 2023-08-29 11:17:16 +02:00
3b13a44d9d Manage packs thru LFS 2023-08-29 09:16:18 +02:00
0ebe0c3734 Manage packs thru LFS 2023-08-29 09:16:05 +02:00
6a00dd8583 Manage packs thru LFS 2023-08-29 09:14:57 +02:00
5064b83f2b Fix #21 : Add the missing helper 2023-08-29 09:12:34 +02:00
58275c32e6 Fix #21 : Add the missing helper 2023-08-27 20:44:20 +02:00
c22b950f7c Fix #21 : Add the missing helper 2023-08-27 20:43:02 +02:00
893ca4cfa5 Fix Killing damage information 2023-08-27 16:21:58 +02:00
94065a3755 Fix Killing damage information 2023-08-27 16:21:10 +02:00
1d4d3054c3 Fix various issues 2023-08-26 22:27:17 +02:00
e5c6d3f42f Fix various issues 2023-08-26 22:25:28 +02:00
f914b9838e #7 Fix starting round 2023-08-26 21:22:42 +02:00
8a543068d2 #8 Fix column alignement 2023-08-26 21:03:25 +02:00
379b8358ee #2 Fix skill profiency 2023-08-26 20:59:41 +02:00
40ee7c3c40 Move repo to public area 2023-08-26 09:49:13 +02:00
a07f367b0c Move repo to public area 2023-08-26 09:48:07 +02:00
09bb7fb692 Move repo to public area 2023-08-26 05:38:10 +02:00
92dc81af24 Move repo to public area 2023-08-26 05:36:15 +02:00
d2430ee482 Move repo to public area 2023-08-26 05:15:18 +02:00
86780ce8ae Move repo to public area 2023-08-26 05:14:08 +02:00
85 changed files with 382 additions and 257 deletions

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
packs/* filter=lfs diff=lfs merge=lfs -text

View File

@ -1,4 +1,47 @@
v11.0.23
- Proper display of BODY/STUN bars on tokens
v11.0.22
- Fix actor sheet (powers, characteristics)
- Fix weapons roll
v11.0.21
- Fix grid default distance in system.json
- Fix powers roll again (#29)
v11.0.20
- Enhance chat message output (cf #25)
- Enhance roll window
- Code simplification
v11.0.19
- Fix killing damage computation (again)
v11.0.18
- Fix killing damage computation
v11.0.17
- Fix tickets 1, 2, 3, 7, 8, 9, 10
- Implements effects tagging (#11)
v11.0.16
- Fix mental maneuvers rolls
- Renamed title
v11.0.15
- Fix target rolls for power
- Add maneuvers roll in the maneuver tab
- Renamed title
v11.0.14 v11.0.14
- Initial public release - Initial public release

View File

@ -166,21 +166,15 @@ export class Hero6ActorSheet extends ActorSheet {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
this.actor.rollWeapon(li.data("item-id")); this.actor.rollWeapon(li.data("item-id"));
}); });
html.find('.roll-mental-maneuver').click((event) => {
const li = $(event.currentTarget).parents(".item")
this.actor.rollMentalManeuver(li.data("item-id"));
});
html.find('.roll-power-attack').click((event) => { html.find('.roll-power-attack').click((event) => {
const li = $(event.currentTarget).parents(".item") const li = $(event.currentTarget).parents(".item")
this.actor.rollPowerAttack(li.data("item-id")); this.actor.rollPowerAttack(li.data("item-id"));
}); });
html.find('.roll-direct').click((event) => { html.find('.roll-direct').click((event) => {
const rollFormula = $(event.currentTarget).data("roll-formula") const rollFormula = $(event.currentTarget).data("roll-formula")
const rollSource = $(event.currentTarget).data("roll-source") const rollSource = $(event.currentTarget).data("roll-source")
Hero6Utility.processDirectRoll( { actorId: this.actor.id, rollFormula: rollFormula, rollSource: rollSource, mode:"directroll"} ) Hero6Utility.processDirectRoll( { actorId: this.actor.id, rollFormula: rollFormula, rollSource: rollSource, mode:"directroll"} )
}); });
html.find('.roll-item').click((event) => { html.find('.roll-item').click((event) => {
const li = $(event.currentTarget).parents(".item"); const li = $(event.currentTarget).parents(".item");
let itemId = li.data("item-id") let itemId = li.data("item-id")
@ -196,11 +190,6 @@ export class Hero6ActorSheet extends ActorSheet {
let itemId = li.data("item-id") let itemId = li.data("item-id")
this.actor.rollLiftDice(itemId); this.actor.rollLiftDice(itemId);
}); });
html.find('.roll-maneuver').click((event) => {
const li = $(event.currentTarget).parents(".item");
const maneuverId = li.data("maneuver-id")
this.actor.rollManeuver(maneuverId)
});
html.find('.hold-action').click((event) => { html.find('.hold-action').click((event) => {
this.actor.holdAction() this.actor.holdAction()

View File

@ -216,7 +216,6 @@ export class Hero6Actor extends Actor {
skill.roll = charac.roll skill.roll = charac.roll
} }
} }
console.log("SILL", skill)
if (skill.system.levels > 0) { if (skill.system.levels > 0) {
skill.roll += skill.system.levels skill.roll += skill.system.levels
} }
@ -224,13 +223,25 @@ export class Hero6Actor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareManeuver(maneuver) { prepareManeuver(maneuver) {
let subMode = "normal"
maneuver.roll = 11 + this.system.characteristics.ocv.value if (maneuver.system.maneuvertype == "mental") {
if (Number(maneuver.system.ocv)) { maneuver.roll = 11 + (Number(this.system.characteristics.omcv.value) || 0)
maneuver.roll += Number(maneuver.system.ocv) subMode = "omcv"
if (Number(maneuver.system.omcv)) {
maneuver.roll += (Number(maneuver.system.omcv) || 0)
} else {
maneuver.noOMCV = true
}
} else { } else {
maneuver.noOCV = true maneuver.roll = 11 + (Number(this.system.characteristics.ocv.value) || 0)
subMode = "ocv"
if (Number(maneuver.system.ocv)) {
maneuver.roll += (Number(maneuver.system.ocv) || 0)
} else {
maneuver.noOCV = true
}
} }
return subMode
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -630,6 +641,9 @@ export class Hero6Actor extends Actor {
rollData.actorImg = this.img rollData.actorImg = this.img
rollData.actorId = this.id rollData.actorId = this.id
rollData.img = this.img rollData.img = this.img
rollData.title = this.name
rollData.subMode = "normal"
rollData.characteristics = duplicate(this.system.characteristics)
if (chKey) { if (chKey) {
rollData.charac = duplicate(this.system.characteristics[chKey]) rollData.charac = duplicate(this.system.characteristics[chKey])
this.prepareCharacValues(rollData.charac) this.prepareCharacValues(rollData.charac)
@ -648,12 +662,10 @@ export class Hero6Actor extends Actor {
const ray = new Ray(token.object?.center || token.center, defenderToken.center) const ray = new Ray(token.object?.center || token.center, defenderToken.center)
rollData.tokensDistance = canvas.grid.measureDistances([{ ray }], { gridSpaces: false })[0] / canvas.grid.grid.options.dimensions.distance rollData.tokensDistance = canvas.grid.measureDistances([{ ray }], { gridSpaces: false })[0] / canvas.grid.grid.options.dimensions.distance
} else { } else {
ui.notifications.info("No token connected to this actor, unable to compute distance.") //ui.notifications.info("No token connected to this actor, unable to compute distance.")
return //return
} }
if (defender) { if (defender) {
rollData.forceAdvantage = defender.isAttackerAdvantage()
rollData.advantageFromTarget = true
} }
} }
console.log("ROLLDATA", rollData) console.log("ROLLDATA", rollData)
@ -664,6 +676,7 @@ export class Hero6Actor extends Actor {
rollPerception() { rollPerception() {
let rollData = this.getCommonRollData("int") let rollData = this.getCommonRollData("int")
rollData.isPerception = true rollData.isPerception = true
rollData.title = "Perception roll"
rollData.charac.roll = Number(rollData.charac.perceptionroll) rollData.charac.roll = Number(rollData.charac.perceptionroll)
rollData.mode = "perception" rollData.mode = "perception"
if (rollData.target) { if (rollData.target) {
@ -677,6 +690,7 @@ export class Hero6Actor extends Actor {
rollCharac(chKey) { rollCharac(chKey) {
let rollData = this.getCommonRollData(chKey) let rollData = this.getCommonRollData(chKey)
rollData.mode = "charac" rollData.mode = "charac"
rollData.title = "Characteristic roll"
if (rollData.target) { if (rollData.target) {
ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.") ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.")
return return
@ -688,12 +702,13 @@ export class Hero6Actor extends Actor {
let item = this.items.get(itemId) let item = this.items.get(itemId)
let rollData = this.getCommonRollData() let rollData = this.getCommonRollData()
rollData.mode = "item" rollData.mode = "item"
rollData.title = Hero6Utility.upperFirst(item.type) + " - " + item.name
rollData.item = duplicate(item) rollData.item = duplicate(item)
if (item.type == "skill") { if (item.type == "skill") {
this.prepareSkill(rollData.item) this.prepareSkill(rollData.item)
} }
if (item.type == "maneuver") { if (item.type == "maneuver") {
this.prepareManeuver(rollData.item) rollData.subMode = this.prepareManeuver(rollData.item)
} }
this.startRoll(rollData) this.startRoll(rollData)
} }
@ -706,18 +721,32 @@ export class Hero6Actor extends Actor {
rollData.title = item.name rollData.title = item.name
rollData.diceFormula = Hero6Utility.convertRollHeroSyntax(item.system.damage) rollData.diceFormula = Hero6Utility.convertRollHeroSyntax(item.system.damage)
let myRoll = new Roll(rollData.diceFormula).roll({ async: false }) let myRoll = new Roll(rollData.diceFormula).roll({ async: false })
await Hero6Utility.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")) //await Hero6Utility.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
rollData.roll = myRoll rollData.roll = myRoll
rollData.result = myRoll.total rollData.result = myRoll.total
rollData.bodyValue = Hero6Utility.computeBodyValue(myRoll) rollData.bodyValue = Hero6Utility.computeBodyValue(myRoll)
let mult
if (item.system.damageeffect == "killing") { // As per issue #11
mult = new Roll("1d3").roll({ async: false })
rollData.killingMultiplier = mult.total
rollData.stunValue = Number(myRoll.total) * (Number(mult.total) + (Number(item.system.stunx) || 0))
} else {
rollData.stunValue = myRoll.total
}
let msgFlavor = await renderTemplate(`systems/fvtt-hero-system-6/templates/chat/chat-damage-result.hbs`, rollData) let msgFlavor = await renderTemplate(`systems/fvtt-hero-system-6/templates/chat/chat-damage-result.hbs`, rollData)
let msg = await rollData.roll.toMessage({ let msg = await rollData.roll.toMessage({
user: game.user.id, user: game.user.id,
rollMode: game.settings.get("core", "rollMode"), rollMode: game.settings.get("core", "rollMode"),
flavor: msgFlavor flavor: msgFlavor
}) })
if (mult) {
await Hero6Utility.showDiceSoNice(mult, game.settings.get("core", "rollMode"))
}
rollData.roll = duplicate(rollData.roll) // Convert to object rollData.roll = duplicate(rollData.roll) // Convert to object
msg.setFlag("world", "rolldata", rollData) msg.setFlag("world", "rolldata", rollData)
console.log("Rolldata result", rollData) console.log("Rolldata result", rollData)
@ -745,28 +774,6 @@ export class Hero6Actor extends Actor {
console.log("Rolldata result", rollData) console.log("Rolldata result", rollData)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
rollManeuver(maneuverId) {
let skill = this.items.get(maneuverId)
if (skill) {
if (skill.system.islore && skill.system.level == 0) {
ui.notifications.warn("You can't use Lore Skills with a SL of 0.")
return
}
skill = duplicate(skill)
Hero6Utility.updateSkill(skill)
let abilityKey = skill.system.ability
let rollData = this.getCommonRollData(abilityKey)
rollData.mode = "skill"
rollData.skill = skill
rollData.img = skill.img
if (rollData.target) {
ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.")
return
}
this.startRoll(rollData)
}
}
/* -------------------------------------------- */
rollSkill(skillId) { rollSkill(skillId) {
let skill = this.items.get(skillId) let skill = this.items.get(skillId)
if (skill) { if (skill) {
@ -795,9 +802,10 @@ export class Hero6Actor extends Actor {
if (weapon) { if (weapon) {
weapon = duplicate(weapon) weapon = duplicate(weapon)
let rollData = this.getCommonRollData() let rollData = this.getCommonRollData()
rollData.weaponRoll = 11 + this.system.characteristics.ocv.value + (Number(weapon.system.ocv) || 0) rollData.subMode = "ocv"
rollData.mode = "weapon" rollData.mode = "weapon"
rollData.weapon = weapon rollData.item = weapon
rollData.item.roll = 11 + (Number(this.system.characteristics.ocv.value) || 0) + (Number(weapon.system.ocv) || 0)
rollData.img = weapon.img rollData.img = weapon.img
this.startRoll(rollData) this.startRoll(rollData)
} else { } else {
@ -810,9 +818,9 @@ export class Hero6Actor extends Actor {
if (maneuver) { if (maneuver) {
maneuver = duplicate(maneuver) maneuver = duplicate(maneuver)
let rollData = this.getCommonRollData() let rollData = this.getCommonRollData()
rollData.maneuverRoll = 11 + this.system.characteristics.omcv.value + (Number(maneuver.system.omcv) || 0) rollData.roll = 11 + (Number(this.system.characteristics.omcv.value) || 0) + (Number(maneuver.system.omcv) || 0)
rollData.mode = "mentalmaneuver" rollData.mode = "mentalmaneuver"
rollData.maneuver = maneuver rollData.item = maneuver
rollData.img = maneuver.img rollData.img = maneuver.img
this.startRoll(rollData) this.startRoll(rollData)
} else { } else {
@ -825,14 +833,17 @@ export class Hero6Actor extends Actor {
if (power) { if (power) {
power = duplicate(power) power = duplicate(power)
let rollData = this.getCommonRollData() let rollData = this.getCommonRollData()
if (power.system.attackvalue == "ocv") {
rollData.powerRoll = 11 + this.system.characteristics.ocv.value + (Number(power.system.ocv) || 0)
} else {
rollData.powerRoll = 11 + this.system.characteristics.omcv.value + (Number(power.system.omcv) || 0)
}
rollData.mode = "powerattack" rollData.mode = "powerattack"
rollData.power = power rollData.item = power
rollData.img = power.img rollData.img = power.img
if (power.system.attackvalue == "ocv") {
rollData.item.roll = 11 + (Number(this.system.characteristics.ocv.value) || 0) + (Number(power.system.ocv) || 0)
rollData.subMode = "ocv"
} else {
rollData.item.roll = 11 + (Number(this.system.characteristics.omcv.value) || 0) + (Number(power.system.omcv) || 0)
rollData.subMode = "omcv"
}
this.startRoll(rollData) this.startRoll(rollData)
} else { } else {
ui.notifications.warn("Unable to find power " + power.name) ui.notifications.warn("Unable to find power " + power.name)

View File

@ -54,6 +54,9 @@ export class Hero6Combat extends Combat {
/* -------------------------------------------- */ /* -------------------------------------------- */
constructor(data, context) { constructor(data, context) {
data.flags = { world: { turnData: { turnNumber: 0, segmentNumber: 12} } }
super(data, context); super(data, context);
this.turnNumber = 0; this.turnNumber = 0;
@ -280,12 +283,13 @@ export class Hero6Combat extends Combat {
/* -------------------------------------------- */ /* -------------------------------------------- */
async _onCreateEmbeddedDocuments(type, documents, result, options, userId) { async _onCreateDescendantDocuments(type, documents, result, options, userId) {
//console.log("Added...") //console.log("Added...")
await super._onCreateEmbeddedDocuments(type, documents, result, options, userId) if (game.user.isGM) {
await this.rebuildInitiative() await super._onCreateEmbeddedDocuments(type, documents, result, options, userId)
await this.rebuildInitiative()
}
} }
/* -------------------------------------------- /* --------------------------------------------
_onUpdate(changed, options, userId) { _onUpdate(changed, options, userId) {
}*/ }*/

View File

@ -22,6 +22,13 @@ export const Hero6_CONFIG = {
"pre": "Presence", "pre": "Presence",
"manual": "Manual", "manual": "Manual",
}, },
damageEffect: {
"normal": "Normal",
"killing": "Killing",
"stunonly": "Stun Only",
"bodyonly": "Body Only",
"effect": "Effect"
},
skillType: { skillType: {
"agility": "Agility", "agility": "Agility",
"interaction": "Interaction", "interaction": "Interaction",

View File

@ -147,13 +147,13 @@ export class Hero6ItemSheet extends ItemSheet {
}); });
html.find('.item-skill-profiency').click(ev => { html.find('.item-skill-profiency').click(ev => {
this.object.update( {'system.levels': 12, 'system.cost': 2} ) this.object.update( {'system.skillfamiliarity': false, 'system.cost': 2} )
} ) } )
html.find('.item-skill-familiarity').click(ev => { html.find('.item-skill-familiarity').click(ev => {
this.object.update( {'system.levels': 10, 'system.cost': 1} ) this.object.update( {'system.skillprofiency': false, 'system.cost': 1} )
} ) } )
html.find('.item-skill-everyman').click(ev => { html.find('.item-skill-everyman').click(ev => {
this.object.update( {'system.levels': 8, 'system.cost': 0} ) this.object.update( {'system.cost': 0} )
} ) } )
html.find('.view-subitem').click(ev => { html.find('.view-subitem').click(ev => {

View File

@ -5,7 +5,7 @@ export class Hero6RollDialog extends Dialog {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async create(actor, rollData) { static async create(actor, rollData) {
let options = { classes: ["Hero6Dialog"], width: 460, height: 'fit-content', 'z-index': 99999 }; let options = { classes: ["Hero6Dialog"], width: 320, height: 'fit-content', 'z-index': 99999 };
let html = await renderTemplate('systems/fvtt-hero-system-6/templates/apps/roll-dialog-generic.hbs', rollData); let html = await renderTemplate('systems/fvtt-hero-system-6/templates/apps/roll-dialog-generic.hbs', rollData);
return new Hero6RollDialog(actor, rollData, html, options); return new Hero6RollDialog(actor, rollData, html, options);
@ -14,7 +14,7 @@ export class Hero6RollDialog extends Dialog {
/* -------------------------------------------- */ /* -------------------------------------------- */
constructor(actor, rollData, html, options, close = undefined) { constructor(actor, rollData, html, options, close = undefined) {
let conf = { let conf = {
title: (rollData.mode == "skill") ? "Skill" : "Attribute", title: "Roll window",
content: html, content: html,
buttons: { buttons: {
roll: { roll: {

View File

@ -43,6 +43,9 @@ export class Hero6Utility {
Handlebars.registerHelper('mul', function (a, b) { Handlebars.registerHelper('mul', function (a, b) {
return Number(a) * Number(b); return Number(a) * Number(b);
}) })
Handlebars.registerHelper('add', function (a, b) {
return (Number(a) || 0) + (Number(b) || 0);
})
Handlebars.registerHelper('locationLabel', function (key) { Handlebars.registerHelper('locationLabel', function (key) {
return __locationNames[key] return __locationNames[key]
}) })
@ -347,12 +350,6 @@ export class Hero6Utility {
let diceFormula = "3d6" let diceFormula = "3d6"
let target = 10 let target = 10
if(rollData.weapon) {
target = rollData.weaponRoll
}
if(rollData.maneuver) {
target = rollData.maneuverRoll
}
if (rollData.charac) { if (rollData.charac) {
target = rollData.charac.roll target = rollData.charac.roll
} }
@ -362,7 +359,7 @@ export class Hero6Utility {
target += rollData.bonusMalus target += rollData.bonusMalus
// Performs roll // Performs roll
console.log("Roll formula", diceFormula) //console.log("Roll formula", diceFormula)
let myRoll = rollData.roll let myRoll = rollData.roll
if (!myRoll) { // New rolls only of no rerolls if (!myRoll) { // New rolls only of no rerolls
myRoll = new Roll(diceFormula).roll({ async: false }) myRoll = new Roll(diceFormula).roll({ async: false })
@ -377,6 +374,7 @@ export class Hero6Utility {
if (rollData.result <= target) { if (rollData.result <= target) {
rollData.isSuccess = true rollData.isSuccess = true
} }
//console.log("Roll result", rollData)
if (myRoll.terms[0].total == 3) { // Always a success if (myRoll.terms[0].total == 3) { // Always a success
rollData.isSuccess = true rollData.isSuccess = true
} }

View File

@ -1 +1 @@
MANIFEST-000104 MANIFEST-000188

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.637308 7f2dea7fc6c0 Recovering log #102 2023/10/04-21:41:44.140558 7f16d7fff6c0 Recovering log #186
2023/08/25-22:33:43.656562 7f2dea7fc6c0 Delete type=3 #100 2023/10/04-21:41:44.150660 7f16d7fff6c0 Delete type=3 #184
2023/08/25-22:33:43.656635 7f2dea7fc6c0 Delete type=0 #102 2023/10/04-21:41:44.150712 7f16d7fff6c0 Delete type=0 #186
2023/08/25-23:00:06.995735 7f2b69bff6c0 Level-0 table #107: started 2023/10/04-21:47:02.531984 7f14567ef6c0 Level-0 table #191: started
2023/08/25-23:00:06.995769 7f2b69bff6c0 Level-0 table #107: 0 bytes OK 2023/10/04-21:47:02.532010 7f14567ef6c0 Level-0 table #191: 0 bytes OK
2023/08/25-23:00:07.032420 7f2b69bff6c0 Delete type=0 #105 2023/10/04-21:47:02.538823 7f14567ef6c0 Delete type=0 #189
2023/08/25-23:00:07.148662 7f2b69bff6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.545067 7f14567ef6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
2023/08/25-23:00:07.148788 7f2b69bff6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.545092 7f14567ef6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/08/25-22:03:49.171457 7f2debfff6c0 Recovering log #99 2023/10/04-21:35:01.811691 7f16d6ffd6c0 Recovering log #182
2023/08/25-22:03:49.191726 7f2debfff6c0 Delete type=0 #99 2023/10/04-21:35:01.822017 7f16d6ffd6c0 Delete type=3 #180
2023/08/25-22:03:49.191857 7f2debfff6c0 Delete type=3 #98 2023/10/04-21:35:01.822072 7f16d6ffd6c0 Delete type=0 #182
2023/08/25-22:33:29.419721 7f2b69bff6c0 Level-0 table #103: started 2023/10/04-21:41:38.795066 7f14567ef6c0 Level-0 table #187: started
2023/08/25-22:33:29.419749 7f2b69bff6c0 Level-0 table #103: 0 bytes OK 2023/10/04-21:41:38.795089 7f14567ef6c0 Level-0 table #187: 0 bytes OK
2023/08/25-22:33:29.426232 7f2b69bff6c0 Delete type=0 #101 2023/10/04-21:41:38.801689 7f14567ef6c0 Delete type=0 #185
2023/08/25-22:33:29.435893 7f2b69bff6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.808479 7f14567ef6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
2023/08/25-22:33:29.442710 7f2b69bff6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.808530 7f14567ef6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000106 MANIFEST-000190

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.623322 7f2deb7fe6c0 Recovering log #104 2023/10/04-21:41:44.100507 7f16d6ffd6c0 Recovering log #188
2023/08/25-22:33:43.633958 7f2deb7fe6c0 Delete type=3 #102 2023/10/04-21:41:44.111147 7f16d6ffd6c0 Delete type=3 #186
2023/08/25-22:33:43.634029 7f2deb7fe6c0 Delete type=0 #104 2023/10/04-21:41:44.111281 7f16d6ffd6c0 Delete type=0 #188
2023/08/25-23:00:06.835716 7f2b69bff6c0 Level-0 table #109: started 2023/10/04-21:47:02.509785 7f14567ef6c0 Level-0 table #193: started
2023/08/25-23:00:06.835770 7f2b69bff6c0 Level-0 table #109: 0 bytes OK 2023/10/04-21:47:02.509815 7f14567ef6c0 Level-0 table #193: 0 bytes OK
2023/08/25-23:00:06.878030 7f2b69bff6c0 Delete type=0 #107 2023/10/04-21:47:02.518200 7f14567ef6c0 Delete type=0 #191
2023/08/25-23:00:06.934520 7f2b69bff6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.518694 7f14567ef6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
2023/08/25-23:00:06.995606 7f2b69bff6c0 Manual compaction at level-1 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.518773 7f14567ef6c0 Manual compaction at level-1 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/08/25-22:03:49.155681 7f2deaffd6c0 Recovering log #101 2023/10/04-21:35:01.768747 7f16d7fff6c0 Recovering log #184
2023/08/25-22:03:49.166583 7f2deaffd6c0 Delete type=0 #101 2023/10/04-21:35:01.779863 7f16d7fff6c0 Delete type=3 #182
2023/08/25-22:03:49.166702 7f2deaffd6c0 Delete type=3 #100 2023/10/04-21:35:01.779921 7f16d7fff6c0 Delete type=0 #184
2023/08/25-22:33:29.368510 7f2b69bff6c0 Level-0 table #105: started 2023/10/04-21:41:38.760705 7f14567ef6c0 Level-0 table #189: started
2023/08/25-22:33:29.368545 7f2b69bff6c0 Level-0 table #105: 0 bytes OK 2023/10/04-21:41:38.760752 7f14567ef6c0 Level-0 table #189: 0 bytes OK
2023/08/25-22:33:29.374540 7f2b69bff6c0 Delete type=0 #103 2023/10/04-21:41:38.767288 7f14567ef6c0 Delete type=0 #187
2023/08/25-22:33:29.384577 7f2b69bff6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.774856 7f14567ef6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
2023/08/25-22:33:29.395889 7f2b69bff6c0 Manual compaction at level-1 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.781126 7f14567ef6c0 Manual compaction at level-1 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000096 MANIFEST-000182

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.656478 7f2deb7fe6c0 Recovering log #94 2023/10/04-21:41:44.152237 7f16d6ffd6c0 Recovering log #180
2023/08/25-22:33:43.672940 7f2deb7fe6c0 Delete type=3 #92 2023/10/04-21:41:44.162524 7f16d6ffd6c0 Delete type=3 #178
2023/08/25-22:33:43.673310 7f2deb7fe6c0 Delete type=0 #94 2023/10/04-21:41:44.162593 7f16d6ffd6c0 Delete type=0 #180
2023/08/25-23:00:07.111419 7f2b69bff6c0 Level-0 table #99: started 2023/10/04-21:47:02.538933 7f14567ef6c0 Level-0 table #185: started
2023/08/25-23:00:07.111451 7f2b69bff6c0 Level-0 table #99: 0 bytes OK 2023/10/04-21:47:02.538963 7f14567ef6c0 Level-0 table #185: 0 bytes OK
2023/08/25-23:00:07.148478 7f2b69bff6c0 Delete type=0 #97 2023/10/04-21:47:02.544945 7f14567ef6c0 Delete type=0 #183
2023/08/25-23:00:07.148766 7f2b69bff6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.545085 7f14567ef6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
2023/08/25-23:00:07.148848 7f2b69bff6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.545108 7f14567ef6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/08/25-22:03:49.194406 7f2deb7fe6c0 Recovering log #91 2023/10/04-21:35:01.823989 7f16d7fff6c0 Recovering log #176
2023/08/25-22:03:49.208360 7f2deb7fe6c0 Delete type=0 #91 2023/10/04-21:35:01.834386 7f16d7fff6c0 Delete type=3 #174
2023/08/25-22:03:49.208425 7f2deb7fe6c0 Delete type=3 #90 2023/10/04-21:35:01.834682 7f16d7fff6c0 Delete type=0 #176
2023/08/25-22:33:29.426425 7f2b69bff6c0 Level-0 table #95: started 2023/10/04-21:41:38.788643 7f14567ef6c0 Level-0 table #181: started
2023/08/25-22:33:29.426459 7f2b69bff6c0 Level-0 table #95: 0 bytes OK 2023/10/04-21:41:38.788676 7f14567ef6c0 Level-0 table #181: 0 bytes OK
2023/08/25-22:33:29.435592 7f2b69bff6c0 Delete type=0 #93 2023/10/04-21:41:38.794955 7f14567ef6c0 Delete type=0 #179
2023/08/25-22:33:29.442698 7f2b69bff6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.808465 7f14567ef6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
2023/08/25-22:33:29.449825 7f2b69bff6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.808513 7f14567ef6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000104 MANIFEST-000188

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.658173 7f2debfff6c0 Recovering log #102 2023/10/04-21:41:44.164948 7f16ecffa6c0 Recovering log #186
2023/08/25-22:33:43.676709 7f2debfff6c0 Delete type=3 #100 2023/10/04-21:41:44.175548 7f16ecffa6c0 Delete type=3 #184
2023/08/25-22:33:43.676789 7f2debfff6c0 Delete type=0 #102 2023/10/04-21:41:44.175604 7f16ecffa6c0 Delete type=0 #186
2023/08/25-23:00:07.148917 7f2b69bff6c0 Level-0 table #107: started 2023/10/04-21:47:02.552360 7f14567ef6c0 Level-0 table #191: started
2023/08/25-23:00:07.148979 7f2b69bff6c0 Level-0 table #107: 0 bytes OK 2023/10/04-21:47:02.552386 7f14567ef6c0 Level-0 table #191: 0 bytes OK
2023/08/25-23:00:07.190254 7f2b69bff6c0 Delete type=0 #105 2023/10/04-21:47:02.560501 7f14567ef6c0 Delete type=0 #189
2023/08/25-23:00:07.227324 7f2b69bff6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.560629 7f14567ef6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
2023/08/25-23:00:07.227354 7f2b69bff6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.560655 7f14567ef6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/08/25-22:03:49.195155 7f2dea7fc6c0 Recovering log #99 2023/10/04-21:35:01.836873 7f16ecffa6c0 Recovering log #182
2023/08/25-22:03:49.211553 7f2dea7fc6c0 Delete type=0 #99 2023/10/04-21:35:01.847899 7f16ecffa6c0 Delete type=3 #180
2023/08/25-22:03:49.211615 7f2dea7fc6c0 Delete type=3 #98 2023/10/04-21:35:01.847965 7f16ecffa6c0 Delete type=0 #182
2023/08/25-22:33:29.435955 7f2b69bff6c0 Level-0 table #103: started 2023/10/04-21:41:38.781263 7f14567ef6c0 Level-0 table #187: started
2023/08/25-22:33:29.436016 7f2b69bff6c0 Level-0 table #103: 0 bytes OK 2023/10/04-21:41:38.781303 7f14567ef6c0 Level-0 table #187: 0 bytes OK
2023/08/25-22:33:29.442590 7f2b69bff6c0 Delete type=0 #101 2023/10/04-21:41:38.788512 7f14567ef6c0 Delete type=0 #185
2023/08/25-22:33:29.449794 7f2b69bff6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.808450 7f14567ef6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
2023/08/25-22:33:29.449873 7f2b69bff6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.808503 7f14567ef6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)

Binary file not shown.

BIN
packs/perks/MANIFEST-000188 Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000105 MANIFEST-000190

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.636903 7f2deaffd6c0 Recovering log #103 2023/10/04-21:41:44.127784 7f16d77fe6c0 Recovering log #188
2023/08/25-22:33:43.653604 7f2deaffd6c0 Delete type=3 #101 2023/10/04-21:41:44.137990 7f16d77fe6c0 Delete type=3 #186
2023/08/25-22:33:43.653664 7f2deaffd6c0 Delete type=0 #103 2023/10/04-21:41:44.138069 7f16d77fe6c0 Delete type=0 #188
2023/08/25-23:00:07.074697 7f2b69bff6c0 Level-0 table #108: started 2023/10/04-21:47:02.518821 7f14567ef6c0 Level-0 table #193: started
2023/08/25-23:00:07.074729 7f2b69bff6c0 Level-0 table #108: 0 bytes OK 2023/10/04-21:47:02.518901 7f14567ef6c0 Level-0 table #193: 0 bytes OK
2023/08/25-23:00:07.111279 7f2b69bff6c0 Delete type=0 #106 2023/10/04-21:47:02.525324 7f14567ef6c0 Delete type=0 #191
2023/08/25-23:00:07.148710 7f2b69bff6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.545045 7f14567ef6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
2023/08/25-23:00:07.148825 7f2b69bff6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.545077 7f14567ef6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/08/25-22:03:49.171203 7f2deb7fe6c0 Recovering log #100 2023/10/04-21:35:01.795955 7f16d77fe6c0 Recovering log #184
2023/08/25-22:03:49.188376 7f2deb7fe6c0 Delete type=0 #100 2023/10/04-21:35:01.806044 7f16d77fe6c0 Delete type=3 #182
2023/08/25-22:03:49.188518 7f2deb7fe6c0 Delete type=3 #99 2023/10/04-21:35:01.806101 7f16d77fe6c0 Delete type=0 #184
2023/08/25-22:33:29.412461 7f2b69bff6c0 Level-0 table #104: started 2023/10/04-21:41:38.774865 7f14567ef6c0 Level-0 table #189: started
2023/08/25-22:33:29.412486 7f2b69bff6c0 Level-0 table #104: 0 bytes OK 2023/10/04-21:41:38.774887 7f14567ef6c0 Level-0 table #189: 0 bytes OK
2023/08/25-22:33:29.419516 7f2b69bff6c0 Delete type=0 #102 2023/10/04-21:41:38.780982 7f14567ef6c0 Delete type=0 #187
2023/08/25-22:33:29.426395 7f2b69bff6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.781151 7f14567ef6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
2023/08/25-22:33:29.435927 7f2b69bff6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.781172 7f14567ef6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000104 MANIFEST-000190

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.623321 7f2dea7fc6c0 Recovering log #102 2023/10/04-21:41:44.114622 7f16ecffa6c0 Recovering log #188
2023/08/25-22:33:43.633958 7f2dea7fc6c0 Delete type=3 #100 2023/10/04-21:41:44.125734 7f16ecffa6c0 Delete type=3 #186
2023/08/25-22:33:43.634019 7f2dea7fc6c0 Delete type=0 #102 2023/10/04-21:41:44.125812 7f16ecffa6c0 Delete type=0 #188
2023/08/25-23:00:07.032595 7f2b69bff6c0 Level-0 table #107: started 2023/10/04-21:47:02.525443 7f14567ef6c0 Level-0 table #193: started
2023/08/25-23:00:07.032643 7f2b69bff6c0 Level-0 table #107: 0 bytes OK 2023/10/04-21:47:02.525470 7f14567ef6c0 Level-0 table #193: 0 bytes OK
2023/08/25-23:00:07.074550 7f2b69bff6c0 Delete type=0 #105 2023/10/04-21:47:02.531866 7f14567ef6c0 Delete type=0 #191
2023/08/25-23:00:07.148689 7f2b69bff6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.545057 7f14567ef6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
2023/08/25-23:00:07.148806 7f2b69bff6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.545100 7f14567ef6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/08/25-22:03:49.155679 7f2deb7fe6c0 Recovering log #99 2023/10/04-21:35:01.783254 7f16ecffa6c0 Recovering log #184
2023/08/25-22:03:49.166527 7f2deb7fe6c0 Delete type=0 #99 2023/10/04-21:35:01.792970 7f16ecffa6c0 Delete type=3 #182
2023/08/25-22:03:49.166599 7f2deb7fe6c0 Delete type=3 #98 2023/10/04-21:35:01.793080 7f16ecffa6c0 Delete type=0 #184
2023/08/25-22:33:29.406141 7f2b69bff6c0 Level-0 table #103: started 2023/10/04-21:41:38.767422 7f14567ef6c0 Level-0 table #189: started
2023/08/25-22:33:29.406187 7f2b69bff6c0 Level-0 table #103: 0 bytes OK 2023/10/04-21:41:38.767446 7f14567ef6c0 Level-0 table #189: 0 bytes OK
2023/08/25-22:33:29.412334 7f2b69bff6c0 Delete type=0 #101 2023/10/04-21:41:38.774734 7f14567ef6c0 Delete type=0 #187
2023/08/25-22:33:29.419707 7f2b69bff6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.781109 7f14567ef6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
2023/08/25-22:33:29.426413 7f2b69bff6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.781182 7f14567ef6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000104 MANIFEST-000188

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.675716 7f2deaffd6c0 Recovering log #102 2023/10/04-21:41:44.177511 7f16d77fe6c0 Recovering log #186
2023/08/25-22:33:43.687652 7f2deaffd6c0 Delete type=3 #100 2023/10/04-21:41:44.187706 7f16d77fe6c0 Delete type=3 #184
2023/08/25-22:33:43.687775 7f2deaffd6c0 Delete type=0 #102 2023/10/04-21:41:44.187791 7f16d77fe6c0 Delete type=0 #186
2023/08/25-23:00:07.190524 7f2b69bff6c0 Level-0 table #107: started 2023/10/04-21:47:02.545189 7f14567ef6c0 Level-0 table #191: started
2023/08/25-23:00:07.190606 7f2b69bff6c0 Level-0 table #107: 0 bytes OK 2023/10/04-21:47:02.545213 7f14567ef6c0 Level-0 table #191: 0 bytes OK
2023/08/25-23:00:07.227189 7f2b69bff6c0 Delete type=0 #105 2023/10/04-21:47:02.552254 7f14567ef6c0 Delete type=0 #189
2023/08/25-23:00:07.227339 7f2b69bff6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.560616 7f14567ef6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
2023/08/25-23:00:07.227364 7f2b69bff6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end) 2023/10/04-21:47:02.560646 7f14567ef6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/08/25-22:03:49.214304 7f2deb7fe6c0 Recovering log #99 2023/10/04-21:35:01.850710 7f16d77fe6c0 Recovering log #182
2023/08/25-22:03:49.224837 7f2deb7fe6c0 Delete type=0 #99 2023/10/04-21:35:01.861789 7f16d77fe6c0 Delete type=3 #180
2023/08/25-22:03:49.224905 7f2deb7fe6c0 Delete type=3 #98 2023/10/04-21:35:01.861973 7f16d77fe6c0 Delete type=0 #182
2023/08/25-22:33:29.442721 7f2b69bff6c0 Level-0 table #103: started 2023/10/04-21:41:38.801785 7f14567ef6c0 Level-0 table #187: started
2023/08/25-22:33:29.442743 7f2b69bff6c0 Level-0 table #103: 0 bytes OK 2023/10/04-21:41:38.801808 7f14567ef6c0 Level-0 table #187: 0 bytes OK
2023/08/25-22:33:29.449583 7f2b69bff6c0 Delete type=0 #101 2023/10/04-21:41:38.808336 7f14567ef6c0 Delete type=0 #185
2023/08/25-22:33:29.449849 7f2b69bff6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.808493 7f14567ef6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
2023/08/25-22:33:29.449897 7f2b69bff6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end) 2023/10/04-21:41:38.808522 7f14567ef6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -821,10 +821,13 @@ ul, li {
.roll-dialog-header { .roll-dialog-header {
height: 52px; height: 52px;
} }
.dialog-roll-title {
margin-left: 8px;
}
.actor-icon { .actor-icon {
float: left; float: left;
width: 48px; width: 48px;
max-width: 48px;
height: 48px; height: 48px;
padding: 2px 6px 2px 2px; padding: 2px 6px 2px 2px;
} }
@ -1395,6 +1398,9 @@ Focus FOC: #ff0084
.item-control-end { .item-control-end {
align-self: flex-end; align-self: flex-end;
} }
.margin-space-4 {
margin-left: 4px;
}
.margin-item-list { .margin-item-list {
margin-top: 4px; margin-top: 4px;
} }

View File

@ -5,11 +5,11 @@
"flags": {} "flags": {}
} }
], ],
"description": "Hero System v6 for FoundryVTT (Official)", "description": "Hero System 6E for FoundryVTT (Official)",
"esmodules": [ "esmodules": [
"modules/hero6-main.js" "modules/hero6-main.js"
], ],
"gridDistance": 5, "gridDistance": 2,
"gridUnits": "m", "gridUnits": "m",
"languages": [ "languages": [
{ {
@ -85,21 +85,21 @@
"flags": {} "flags": {}
} }
], ],
"primaryTokenAttribute": "secondary.hp", "primaryTokenAttribute": "characteristics.body",
"secondaryTokenAttribute": "secondary.effort", "secondaryTokenAttribute": "characteristics.end",
"socket": true, "socket": true,
"styles": [ "styles": [
"styles/simple.css" "styles/simple.css"
], ],
"version": "11.0.14", "version": "11.0.23",
"compatibility": { "compatibility": {
"minimum": "11", "minimum": "11",
"verified": "11" "verified": "11"
}, },
"title": "Hero System v6 for FoundrtVTT (Official)", "title": "Hero System 6E Basic (Official)",
"manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6/raw/branch/master/system.json", "manifest": "https://www.uberwald.me/gitea/public/fvtt-hero-system-6/raw/branch/master/system.json",
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6/archive/fvtt-hero-system-6-v11.0.14.zip", "download": "https://www.uberwald.me/gitea/public/fvtt-hero-system-6/archive/fvtt-hero-system-6-v11.0.23.zip",
"url": "https://www.uberwald.me/gitea/uberwald/", "url": "https://www.uberwald.me/public/uberwald/",
"background": "systems/fvtt-hero-system-6/images/ui/hero_foundry_cover.webp", "background": "systems/fvtt-hero-system-6/images/ui/hero_foundry_cover.webp",
"id": "fvtt-hero-system-6" "id": "fvtt-hero-system-6"
} }

View File

@ -354,7 +354,9 @@
"levels": 0, "levels": 0,
"quantity": 1, "quantity": 1,
"range": "", "range": "",
"damageeffect": "normal",
"damage": "", "damage": "",
"stunx": 0,
"endurance": 0, "endurance": 0,
"hasroll": false, "hasroll": false,
"attackvalue": "ocv", "attackvalue": "ocv",

View File

@ -149,35 +149,54 @@
</li> </li>
</ul> </ul>
{{#each maneuvers as |mlist key|}} {{#each maneuvers as |mlist mtype|}}
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-field-label-long-img"> <span class="item-field-label-long-img">
<label class="">{{upperFirst key}} Maneuver</label> <label class="">{{upperFirst mtype}} Maneuver</label>
</span> </span>
<span class="item-field-label-very-short"> <span class="item-field-label-very-short">
<label class="short-label">PHA</label> <label class="short-label">PHA</label>
</span> </span>
{{#if (eq mtype "mental")}}
<span class="item-field-label-very-short">
<label class="short-label">OMCV</label>
</span>
<span class="item-field-label-very-short">
<label class="short-label">DMCV</label>
</span>
{{else}}
<span class="item-field-label-very-short"> <span class="item-field-label-very-short">
<label class="short-label">OCV</label> <label class="short-label">OCV</label>
</span> </span>
<span class="item-field-label-very-short"> <span class="item-field-label-very-short">
<label class="short-label">DCV</label> <label class="short-label">DCV</label>
</span> </span>
{{/if}}
<span class="item-field-text-long"> <span class="item-field-text-long">
<label class="short-label">Effects</label> <label class="short-label">Effects</label>
</span> </span>
</li> </li>
{{#each mlist as |maneuver key|}} {{#each mlist as |maneuver key|}}
<li class="item flexrow list-item list-item-shadow " data-item-id="{{maneuver._id}}"> <li class="item flexrow list-item list-item-shadow " data-item-id="{{maneuver._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{maneuver.img}}" /></a> src="{{maneuver.img}}" />
<a class="roll-item"><i class="fas fa-dice"></i></a><span class="item-field-label-long">{{maneuver.name}} </a>
</span> <span class="item-field-label-long">
<a class="roll-item"><i class="fas fa-dice"></i></a>
{{maneuver.name}}
</span>
<span class="item-field-label-very-short content-center">{{maneuver.system.pha}}</span> <span class="item-field-label-very-short content-center">{{maneuver.system.pha}}</span>
{{#if (eq ../mtype "mental")}}
<span class="item-field-label-very-short content-center">{{maneuver.system.omcv}}</span>
<span class="item-field-label-very-short content-center">{{maneuver.system.dmcv}}</span>
{{else}}
<span class="item-field-label-very-short content-center">{{maneuver.system.ocv}}</span> <span class="item-field-label-very-short content-center">{{maneuver.system.ocv}}</span>
<span class="item-field-label-very-short content-center">{{maneuver.system.dcv}}</span> <span class="item-field-label-very-short content-center">{{maneuver.system.dcv}}</span>
{{/if}}
<span class="item-field-text-long">{{maneuver.system.effects}} <span class="item-field-text-long">{{maneuver.system.effects}}
{{#if maneuver.system.haseffectroll}} {{#if maneuver.system.haseffectroll}}
@ -241,9 +260,9 @@
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}"> <li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
<span class="item-field-label-long">{{char.label}}</span> <span class="item-field-label-long">{{char.label}}</span>
<input type="text" class="item-field-label-short update-field" <input type="text" class="item-field-label-short update-field"
data-field-name="system.characteristics.{{key}}.value" value="{{char.value}}" data-dtype="Number" /> data-field-name="system.characteristics.{{key}}.max" value="{{char.max}}" data-dtype="Number" />
<input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.damage" <input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.{{key}}.value"
value="{{char.damage}}" data-dtype="Number" /> value="{{char.value}}" data-dtype="Number" />
</li> </li>
{{/if}} {{/if}}
{{/each}} {{/each}}
@ -407,7 +426,7 @@
<div class="charac-item"> <div class="charac-item">
<ul> <ul>
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-field-label-medium"> <span class="item-field-label-short">
<label class="">Value</label> <label class="">Value</label>
</span> </span>
<span class="item-field-label-medium"> <span class="item-field-label-medium">
@ -561,7 +580,7 @@
<li class="item stat flexrow list-item list-item-shadow " data-item-id="{{maneuver._id}}"> <li class="item stat flexrow list-item list-item-shadow " data-item-id="{{maneuver._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{maneuver.img}}" /></a> src="{{maneuver.img}}" /></a>
<span class="item-field-label-long">{{maneuver.name}}</span> <span class="item-field-label-long"><a class="roll-item"><i class="fas fa-dice"></i>{{maneuver.name}}</a></span>
<span class="item-field-label-short">{{maneuver.system.pha}}</span> <span class="item-field-label-short">{{maneuver.system.pha}}</span>
<span class="item-field-label-short">{{maneuver.system.ocv}}</span> <span class="item-field-label-short">{{maneuver.system.ocv}}</span>
@ -604,14 +623,14 @@
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{maneuver.img}}" /></a> src="{{maneuver.img}}" /></a>
<span class="item-field-label-long"> <span class="item-field-label-long">
<a class="roll-mental-maneuver"> <a class="roll-item"><i class="fas fa-dice"></i>
<i class="fas fa-dice"></i>{{maneuver.name}} {{maneuver.name}}
</a> </a>
</span> </span>
<span class="item-field-label-short">{{maneuver.system.pha}}</span> <span class="item-field-label-short content-center">{{maneuver.system.pha}}</span>
<span class="item-field-label-short">{{maneuver.system.omcv}}</span> <span class="item-field-label-short content-center">{{maneuver.system.omcv}}</span>
<span class="item-field-label-short">{{maneuver.system.dmcv}}</span> <span class="item-field-label-short content-center">{{maneuver.system.dmcv}}</span>
<span class="item-field-label-long3">{{maneuver.system.effects}}</span> <span class="item-field-label-long3">{{maneuver.system.effects}}</span>
@ -650,8 +669,8 @@
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="item-field-label-short">Roll</label> <label class="item-field-label-short">Roll</label>
</span> </span>
<span class="item-field-label-medium"> <span class="item-field-label-short">
<label class="item-field-label-medium">END</label> <label class="item-field-label-short">END</label>
</span> </span>
</li> </li>
{{#each powers as |power key|}} {{#each powers as |power key|}}
@ -678,7 +697,7 @@
{{else}} {{else}}
<span class="item-field-label-short">&nbsp;</span> <span class="item-field-label-short">&nbsp;</span>
{{/if}} {{/if}}
<span class="item-field-label-medium">{{power.system.endurance}}</span> <span class="item-field-label-short">{{power.system.endurance}}</span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>

View File

@ -32,8 +32,6 @@
</a> </a>
{{/if}} {{/if}}
{{log combat.flags}}
{{#if combatCount}} {{#if combatCount}}
{{#if combat.round}} {{#if combat.round}}
<!--<h3 class="encounter-title noborder">Turn {{combat.turnNumber}} Segment {{combat.segmentNumber}}</h3>--> <!--<h3 class="encounter-title noborder">Turn {{combat.turnNumber}} Segment {{combat.segmentNumber}}</h3>-->

View File

@ -1,9 +1,11 @@
<form class="skill-roll-dialog"> <form class="skill-roll-dialog">
<header class="roll-dialog-header"> <header class="roll-dialog-header">
{{#if img}} <div class="flexrow">
<img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" /> {{#if img}}
{{/if}} <img class="actor-icon" src="{{img}}" data-edit="img" title="{{name}}" />
<h1 class="dialog-roll-title roll-dialog-header">{{title}}</h1> {{/if}}
<h2 class="dialog-roll-title roll-dialog-header">{{title}}</h2>
</div>
</header> </header>
<div class="flexcol"> <div class="flexcol">
@ -15,24 +17,25 @@
</div> </div>
{{/if}} {{/if}}
{{#if weapon}} {{#if (eq subMode "ocv")}}
<div class="flexrow"> <div class="flexrow">
<span class="item-field-label-long margin-item-list">{{weapon.name}} : </span> <span class="item-field-label-long margin-item-list">OCV : </span>
<span class="item-field-label-medium margin-item-list">{{weaponRoll}}-</span> <span class="item-field-label-medium margin-item-list">{{characteristics.ocv.value}}</span>
</div>
<div class="flexrow">
<span class="item-field-label-long margin-item-list">{{upperFirst item.type}} OCV : </span>
<span class="item-field-label-medium margin-item-list">{{fixNum item.system.ocv}}</span>
</div> </div>
{{/if}} {{/if}}
{{#if maneuver}} {{#if (eq subMode "omcv")}}
<div class="flexrow"> <div class="flexrow">
<span class="item-field-label-long margin-item-list">{{maneuver.name}} : </span> <span class="item-field-label-long margin-item-list">OMCV : </span>
<span class="item-field-label-medium margin-item-list">{{maneuverRoll}}-</span> <span class="item-field-label-medium margin-item-list">{{characteristics.omcv.value}}</span>
</div> </div>
{{/if}}
{{#if power}}
<div class="flexrow"> <div class="flexrow">
<span class="item-field-label-long margin-item-list">{{power.name}} : </span> <span class="item-field-label-long margin-item-list">{{upperFirst item.type}} OMCV : </span>
<span class="item-field-label-medium margin-item-list">{{powerRoll}}-</span> <span class="item-field-label-medium margin-item-list">{{fixNum item.system.omcv}}</span>
</div> </div>
{{/if}} {{/if}}

View File

@ -13,9 +13,28 @@
<div> <div>
<ul> <ul>
<li>Name : {{title}}</li> <li>Name : {{title}}</li>
<li>Damage Effect: {{upperFirst item.system.damageeffect}}</li>
<li>Damage formula : {{diceFormula}}</li> <li>Damage formula : {{diceFormula}}</li>
<li><strong>TOTAL : {{result}}</strong></li> <li><strong>Total formula : {{result}}</strong></li>
{{#if (eq item.system.damageeffect "normal")}}
<li><strong>BODY : {{bodyValue}}</strong></li> <li><strong>BODY : {{bodyValue}}</strong></li>
{{/if}}
{{#if (eq item.system.damageeffect "killing")}}
<li><strong>1d3 result + STUNx : {{killingMultiplier}} + {{item.system.stunx}} = {{add killingMultiplier item.system.stunx}}</strong></li>
<li><strong>STUN : {{stunValue}}</strong></li>
<li><strong>BODY : {{result}}</strong></li>
<li><strong>Penetrating BODY : {{bodyValue}}</strong></li>
{{/if}}
{{#if (eq item.system.damageeffect "stunonly")}}
<li><strong>STUN : {{stunValue}}</strong></li>
{{/if}}
{{#if (eq item.system.damageeffect "bodyonly")}}
<li><strong>BODY : {{bodyValue}}</strong></li>
{{/if}}
</ul> </ul>
</div> </div>

View File

@ -57,7 +57,7 @@
<li><strong>TOTAL : {{result}}</strong> <li><strong>TOTAL : {{result}}</strong>
{{#if (exists margin)}} {{#if (exists margin)}}
({{#if isSuccess}}Success!!{{else}}Failure!{{/if}}) (<strong>{{#if isSuccess}}Success!!{{else}}Failure!{{/if}}</strong>)
{{/if}} {{/if}}
</li> </li>
@ -66,7 +66,15 @@
{{/if}} {{/if}}
{{#if (exists margin)}} {{#if (exists margin)}}
<li><strong>Margin : {{margin}}</strong> {{#if (eq subMode "normal")}}
<li><strong>Margin : {{margin}}</strong>
{{/if}}
{{#if (eq subMode "ocv")}}
<li><strong>Margin (DCV Hit): {{margin}}</strong>
{{/if}}
{{#if (eq subMode "omcv")}}
<li><strong>Margin (DMCV Hit): {{margin}}</strong>
{{/if}}
{{/if}} {{/if}}
</ul> </ul>

View File

@ -52,22 +52,21 @@
data-dtype="Number"/> data-dtype="Number"/>
</li> </li>
<li class="flexrow"><label class="item-field-label-long">Familiarity only</label> <li class="flexrow"><label class="item-field-label-long">Proficency</label>
<input type="checkbox" class="item-field-label-medium item-skill-familiarity" name="system.skillfamiliarity" {{checked system.skillfamiliarity}} <input type="checkbox" class="item-field-label-medium item-skill-profiency" name="system.skillprofiency" {{checked system.skillprofiency}}
{{#if (or system.skillprofiency system.skilllevelonly)}}disabled{{/if}}
data-dtype="Number"/> data-dtype="Number"/>
</li> </li>
{{#if system.skillfamiliarity}}
{{#if (not system.skillprofiency)}}
<li class="flexrow"><label class="item-field-label-long">Familiarity only</label>
<input type="checkbox" class="item-field-label-medium item-skill-familiarity" name="system.skillfamiliarity" {{checked system.skillfamiliarity}}
data-dtype="Number"/>
</li>
<li class="flexrow"><label class="item-field-label-long">Everyman skill</label> <li class="flexrow"><label class="item-field-label-long">Everyman skill</label>
<input type="checkbox" class="item-field-label-medium item-skill-everyman" name="system.skilleveryman" {{checked system.skilleveryman}} data-dtype="Number"/> <input type="checkbox" class="item-field-label-medium item-skill-everyman" name="system.skilleveryman" {{checked system.skilleveryman}} data-dtype="Number"/>
</li> </li>
{{/if}} {{/if}}
<li class="flexrow"><label class="item-field-label-long">Proficency</label>
<input type="checkbox" class="item-field-label-medium item-skill-profiency" name="system.skillprofiency" {{checked system.skillprofiency}}
{{#if (or system.skillfamiliarity system.skilllevelonly)}}disabled{{/if}}
data-dtype="Number"/>
</li>
{{#if (ne system.skilltype "combat")}} {{#if (ne system.skilltype "combat")}}
<li class="flexrow"><label class="item-field-label-long">Levels Cost</label> <li class="flexrow"><label class="item-field-label-long">Levels Cost</label>

View File

@ -1,9 +1,9 @@
<li class="item stat flexrow list-item list-item-shadow" data-attr-key="{{key}}"> <li class="item stat flexrow list-item list-item-shadow" data-attr-key="{{key}}">
<input type="text" class="item-field-label-medium" name="system.characteristics.{{key}}.value" <input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.value"
value="{{charac.value}}" data-dtype="Number" /> value="{{charac.value}}" data-dtype="Number" />
<span class="item-field-label-medium" name="{{key}}"> <span class="item-field-label-medium margin-space-4" name="{{key}}">
<h4 class="item-field-label-medium margin-item-list">{{charac.label}}</a></h4> <h4 class="item-field-label-medium margin-item-list">{{charac.label}}</a></h4>
</span> </span>

View File

@ -38,9 +38,27 @@
<li class="flexrow"><label class="item-field-label-long">Range</label> <li class="flexrow"><label class="item-field-label-long">Range</label>
<input type="text" class="item-field-label-medium" name="system.range" value="{{system.range}}" data-dtype="String"/> <input type="text" class="item-field-label-medium" name="system.range" value="{{system.range}}" data-dtype="String"/>
</li> </li>
<li class="flexrow"><label class="item-field-label-long">Damage Effect</label>
<select class="item-field-label-long" type="text" name="system.damageeffect" value="{{system.damageeffect}}" data-dtype="String">
{{#select (lower system.damageeffect)}}
{{#each config.damageEffect as |name key|}}
<option value="{{key}}">{{name}}</option>
{{/each}}
{{/select}}
</select>
</li>
<li class="flexrow"><label class="item-field-label-long">Damage</label> <li class="flexrow"><label class="item-field-label-long">Damage</label>
<input type="text" class="item-field-label-medium" name="system.damage" value="{{system.damage}}" data-dtype="String"/> <input type="text" class="item-field-label-medium" name="system.damage" value="{{system.damage}}" data-dtype="String"/>
</li> </li>
{{#if (eq system.damageeffect "killing")}}
<li class="flexrow"><label class="item-field-label-long">STUNx</label>
<input type="text" class="item-field-label-medium" name="system.stunx" value="{{system.stunx}}" data-dtype="Number"/>
</li>
{{/if}}
{{/if}} {{/if}}
<li class="flexrow"><label class="item-field-label-long">Endurance</label> <li class="flexrow"><label class="item-field-label-long">Endurance</label>