Compare commits

..

24 Commits

Author SHA1 Message Date
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
84 changed files with 373 additions and 250 deletions

1
.gitattributes vendored Normal file
View File

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

View File

@ -1,4 +1,43 @@
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
- Initial public release

View File

@ -166,21 +166,15 @@ export class Hero6ActorSheet extends ActorSheet {
const li = $(event.currentTarget).parents(".item")
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) => {
const li = $(event.currentTarget).parents(".item")
this.actor.rollPowerAttack(li.data("item-id"));
});
});
html.find('.roll-direct').click((event) => {
const rollFormula = $(event.currentTarget).data("roll-formula")
const rollSource = $(event.currentTarget).data("roll-source")
Hero6Utility.processDirectRoll( { actorId: this.actor.id, rollFormula: rollFormula, rollSource: rollSource, mode:"directroll"} )
});
});
html.find('.roll-item').click((event) => {
const li = $(event.currentTarget).parents(".item");
let itemId = li.data("item-id")
@ -196,11 +190,6 @@ export class Hero6ActorSheet extends ActorSheet {
let itemId = li.data("item-id")
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) => {
this.actor.holdAction()

View File

@ -216,7 +216,6 @@ export class Hero6Actor extends Actor {
skill.roll = charac.roll
}
}
console.log("SILL", skill)
if (skill.system.levels > 0) {
skill.roll += skill.system.levels
}
@ -224,13 +223,25 @@ export class Hero6Actor extends Actor {
/* -------------------------------------------- */
prepareManeuver(maneuver) {
maneuver.roll = 11 + this.system.characteristics.ocv.value
if (Number(maneuver.system.ocv)) {
maneuver.roll += Number(maneuver.system.ocv)
let subMode = "normal"
if (maneuver.system.maneuvertype == "mental") {
maneuver.roll = 11 + (Number(this.system.characteristics.omcv.value) || 0)
subMode = "omcv"
if (Number(maneuver.system.omcv)) {
maneuver.roll += (Number(maneuver.system.omcv) || 0)
} else {
maneuver.noOMCV = true
}
} 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.actorId = this.id
rollData.img = this.img
rollData.title = this.name
rollData.subMode = "normal"
rollData.characteristics = duplicate(this.system.characteristics)
if (chKey) {
rollData.charac = duplicate(this.system.characteristics[chKey])
this.prepareCharacValues(rollData.charac)
@ -648,12 +662,10 @@ export class Hero6Actor extends Actor {
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
} else {
ui.notifications.info("No token connected to this actor, unable to compute distance.")
return
//ui.notifications.info("No token connected to this actor, unable to compute distance.")
//return
}
if (defender) {
rollData.forceAdvantage = defender.isAttackerAdvantage()
rollData.advantageFromTarget = true
}
}
console.log("ROLLDATA", rollData)
@ -664,6 +676,7 @@ export class Hero6Actor extends Actor {
rollPerception() {
let rollData = this.getCommonRollData("int")
rollData.isPerception = true
rollData.title = "Perception roll"
rollData.charac.roll = Number(rollData.charac.perceptionroll)
rollData.mode = "perception"
if (rollData.target) {
@ -677,6 +690,7 @@ export class Hero6Actor extends Actor {
rollCharac(chKey) {
let rollData = this.getCommonRollData(chKey)
rollData.mode = "charac"
rollData.title = "Characteristic roll"
if (rollData.target) {
ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.")
return
@ -688,12 +702,13 @@ export class Hero6Actor extends Actor {
let item = this.items.get(itemId)
let rollData = this.getCommonRollData()
rollData.mode = "item"
rollData.title = Hero6Utility.upperFirst(item.type) + " - " + item.name
rollData.item = duplicate(item)
if (item.type == "skill") {
this.prepareSkill(rollData.item)
}
if (item.type == "maneuver") {
this.prepareManeuver(rollData.item)
rollData.subMode = this.prepareManeuver(rollData.item)
}
this.startRoll(rollData)
}
@ -706,11 +721,20 @@ export class Hero6Actor extends Actor {
rollData.title = item.name
rollData.diceFormula = Hero6Utility.convertRollHeroSyntax(item.system.damage)
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.result = myRoll.total
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 msg = await rollData.roll.toMessage({
@ -718,6 +742,11 @@ export class Hero6Actor extends Actor {
rollMode: game.settings.get("core", "rollMode"),
flavor: msgFlavor
})
if (mult) {
await Hero6Utility.showDiceSoNice(mult, game.settings.get("core", "rollMode"))
}
rollData.roll = duplicate(rollData.roll) // Convert to object
msg.setFlag("world", "rolldata", rollData)
console.log("Rolldata result", rollData)
@ -745,28 +774,6 @@ export class Hero6Actor extends Actor {
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) {
let skill = this.items.get(skillId)
if (skill) {
@ -795,9 +802,10 @@ export class Hero6Actor extends Actor {
if (weapon) {
weapon = duplicate(weapon)
let rollData = this.getCommonRollData()
rollData.weaponRoll = 11 + this.system.characteristics.ocv.value + (Number(weapon.system.ocv) || 0)
rollData.subMode = "ocv"
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
this.startRoll(rollData)
} else {
@ -810,9 +818,9 @@ export class Hero6Actor extends Actor {
if (maneuver) {
maneuver = duplicate(maneuver)
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.maneuver = maneuver
rollData.item = maneuver
rollData.img = maneuver.img
this.startRoll(rollData)
} else {
@ -823,16 +831,19 @@ export class Hero6Actor extends Actor {
rollPowerAttack(powerId ) {
let power = this.items.get(powerId)
if (power) {
power = duplicate(power)
power = duplicate(power)
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.power = power
rollData.item = power
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)
} else {
ui.notifications.warn("Unable to find power " + power.name)

View File

@ -54,6 +54,9 @@ export class Hero6Combat extends Combat {
/* -------------------------------------------- */
constructor(data, context) {
data.flags = { world: { turnData: { turnNumber: 0, segmentNumber: 12} } }
super(data, context);
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...")
await super._onCreateEmbeddedDocuments(type, documents, result, options, userId)
await this.rebuildInitiative()
if (game.user.isGM) {
await super._onCreateEmbeddedDocuments(type, documents, result, options, userId)
await this.rebuildInitiative()
}
}
/* --------------------------------------------
_onUpdate(changed, options, userId) {
}*/

View File

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

View File

@ -147,13 +147,13 @@ export class Hero6ItemSheet extends ItemSheet {
});
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 => {
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 => {
this.object.update( {'system.levels': 8, 'system.cost': 0} )
this.object.update( {'system.cost': 0} )
} )
html.find('.view-subitem').click(ev => {

View File

@ -5,7 +5,7 @@ export class Hero6RollDialog extends Dialog {
/* -------------------------------------------- */
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);
return new Hero6RollDialog(actor, rollData, html, options);
@ -14,7 +14,7 @@ export class Hero6RollDialog extends Dialog {
/* -------------------------------------------- */
constructor(actor, rollData, html, options, close = undefined) {
let conf = {
title: (rollData.mode == "skill") ? "Skill" : "Attribute",
title: "Roll window",
content: html,
buttons: {
roll: {

View File

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

View File

@ -1 +1 @@
MANIFEST-000104
MANIFEST-000168

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.637308 7f2dea7fc6c0 Recovering log #102
2023/08/25-22:33:43.656562 7f2dea7fc6c0 Delete type=3 #100
2023/08/25-22:33:43.656635 7f2dea7fc6c0 Delete type=0 #102
2023/08/25-23:00:06.995735 7f2b69bff6c0 Level-0 table #107: started
2023/08/25-23:00:06.995769 7f2b69bff6c0 Level-0 table #107: 0 bytes OK
2023/08/25-23:00:07.032420 7f2b69bff6c0 Delete type=0 #105
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/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/09/01-20:34:49.006564 7fc3c77fe6c0 Recovering log #166
2023/09/01-20:34:49.017049 7fc3c77fe6c0 Delete type=3 #164
2023/09/01-20:34:49.017109 7fc3c77fe6c0 Delete type=0 #166
2023/09/01-20:46:07.499525 7fc1463ff6c0 Level-0 table #171: started
2023/09/01-20:46:07.499548 7fc1463ff6c0 Level-0 table #171: 0 bytes OK
2023/09/01-20:46:07.507013 7fc1463ff6c0 Delete type=0 #169
2023/09/01-20:46:07.524943 7fc1463ff6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
2023/09/01-20:46:07.525029 7fc1463ff6c0 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/08/25-22:03:49.191726 7f2debfff6c0 Delete type=0 #99
2023/08/25-22:03:49.191857 7f2debfff6c0 Delete type=3 #98
2023/08/25-22:33:29.419721 7f2b69bff6c0 Level-0 table #103: started
2023/08/25-22:33:29.419749 7f2b69bff6c0 Level-0 table #103: 0 bytes OK
2023/08/25-22:33:29.426232 7f2b69bff6c0 Delete type=0 #101
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/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/08/30-20:10:47.117841 7fa55e7fc6c0 Recovering log #162
2023/08/30-20:10:47.323059 7fa55e7fc6c0 Delete type=3 #160
2023/08/30-20:10:47.323156 7fa55e7fc6c0 Delete type=0 #162
2023/08/30-20:19:02.780276 7fa55d3ff6c0 Level-0 table #167: started
2023/08/30-20:19:02.780299 7fa55d3ff6c0 Level-0 table #167: 0 bytes OK
2023/08/30-20:19:02.786823 7fa55d3ff6c0 Delete type=0 #165
2023/08/30-20:19:02.807165 7fa55d3ff6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
2023/08/30-20:19:02.807232 7fa55d3ff6c0 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-000170

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.623322 7f2deb7fe6c0 Recovering log #104
2023/08/25-22:33:43.633958 7f2deb7fe6c0 Delete type=3 #102
2023/08/25-22:33:43.634029 7f2deb7fe6c0 Delete type=0 #104
2023/08/25-23:00:06.835716 7f2b69bff6c0 Level-0 table #109: started
2023/08/25-23:00:06.835770 7f2b69bff6c0 Level-0 table #109: 0 bytes OK
2023/08/25-23:00:06.878030 7f2b69bff6c0 Delete type=0 #107
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/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/09/01-20:34:48.990689 7fc3c7fff6c0 Recovering log #168
2023/09/01-20:34:49.001225 7fc3c7fff6c0 Delete type=3 #166
2023/09/01-20:34:49.001331 7fc3c7fff6c0 Delete type=0 #168
2023/09/01-20:46:07.461246 7fc1463ff6c0 Level-0 table #173: started
2023/09/01-20:46:07.461298 7fc1463ff6c0 Level-0 table #173: 0 bytes OK
2023/09/01-20:46:07.467444 7fc1463ff6c0 Delete type=0 #171
2023/09/01-20:46:07.467589 7fc1463ff6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
2023/09/01-20:46:07.491206 7fc1463ff6c0 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/08/25-22:03:49.166583 7f2deaffd6c0 Delete type=0 #101
2023/08/25-22:03:49.166702 7f2deaffd6c0 Delete type=3 #100
2023/08/25-22:33:29.368510 7f2b69bff6c0 Level-0 table #105: started
2023/08/25-22:33:29.368545 7f2b69bff6c0 Level-0 table #105: 0 bytes OK
2023/08/25-22:33:29.374540 7f2b69bff6c0 Delete type=0 #103
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/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/08/30-20:10:46.913567 7fa55effd6c0 Recovering log #164
2023/08/30-20:10:47.085816 7fa55effd6c0 Delete type=3 #162
2023/08/30-20:10:47.085887 7fa55effd6c0 Delete type=0 #164
2023/08/30-20:19:02.772964 7fa55d3ff6c0 Level-0 table #169: started
2023/08/30-20:19:02.773053 7fa55d3ff6c0 Level-0 table #169: 0 bytes OK
2023/08/30-20:19:02.779629 7fa55d3ff6c0 Delete type=0 #167
2023/08/30-20:19:02.780116 7fa55d3ff6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
2023/08/30-20:19:02.780129 7fa55d3ff6c0 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-000162

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.656478 7f2deb7fe6c0 Recovering log #94
2023/08/25-22:33:43.672940 7f2deb7fe6c0 Delete type=3 #92
2023/08/25-22:33:43.673310 7f2deb7fe6c0 Delete type=0 #94
2023/08/25-23:00:07.111419 7f2b69bff6c0 Level-0 table #99: started
2023/08/25-23:00:07.111451 7f2b69bff6c0 Level-0 table #99: 0 bytes OK
2023/08/25-23:00:07.148478 7f2b69bff6c0 Delete type=0 #97
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/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/09/01-20:34:49.019182 7fc3dcdfa6c0 Recovering log #160
2023/09/01-20:34:49.041348 7fc3dcdfa6c0 Delete type=3 #158
2023/09/01-20:34:49.041405 7fc3dcdfa6c0 Delete type=0 #160
2023/09/01-20:46:07.491542 7fc1463ff6c0 Level-0 table #165: started
2023/09/01-20:46:07.491644 7fc1463ff6c0 Level-0 table #165: 0 bytes OK
2023/09/01-20:46:07.499417 7fc1463ff6c0 Delete type=0 #163
2023/09/01-20:46:07.524909 7fc1463ff6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
2023/09/01-20:46:07.525011 7fc1463ff6c0 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/08/25-22:03:49.208360 7f2deb7fe6c0 Delete type=0 #91
2023/08/25-22:03:49.208425 7f2deb7fe6c0 Delete type=3 #90
2023/08/25-22:33:29.426425 7f2b69bff6c0 Level-0 table #95: started
2023/08/25-22:33:29.426459 7f2b69bff6c0 Level-0 table #95: 0 bytes OK
2023/08/25-22:33:29.435592 7f2b69bff6c0 Delete type=0 #93
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/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/08/30-20:10:47.287095 7fa55f7fe6c0 Recovering log #156
2023/08/30-20:10:47.496255 7fa55f7fe6c0 Delete type=3 #154
2023/08/30-20:10:47.496306 7fa55f7fe6c0 Delete type=0 #156
2023/08/30-20:19:02.786933 7fa55d3ff6c0 Level-0 table #161: started
2023/08/30-20:19:02.786958 7fa55d3ff6c0 Level-0 table #161: 0 bytes OK
2023/08/30-20:19:02.793209 7fa55d3ff6c0 Delete type=0 #159
2023/08/30-20:19:02.807175 7fa55d3ff6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
2023/08/30-20:19:02.807218 7fa55d3ff6c0 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-000168

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.658173 7f2debfff6c0 Recovering log #102
2023/08/25-22:33:43.676709 7f2debfff6c0 Delete type=3 #100
2023/08/25-22:33:43.676789 7f2debfff6c0 Delete type=0 #102
2023/08/25-23:00:07.148917 7f2b69bff6c0 Level-0 table #107: started
2023/08/25-23:00:07.148979 7f2b69bff6c0 Level-0 table #107: 0 bytes OK
2023/08/25-23:00:07.190254 7f2b69bff6c0 Delete type=0 #105
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/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/09/01-20:34:49.021891 7fc3c7fff6c0 Recovering log #166
2023/09/01-20:34:49.046208 7fc3c7fff6c0 Delete type=3 #164
2023/09/01-20:34:49.046276 7fc3c7fff6c0 Delete type=0 #166
2023/09/01-20:46:07.525125 7fc1463ff6c0 Level-0 table #171: started
2023/09/01-20:46:07.525186 7fc1463ff6c0 Level-0 table #171: 0 bytes OK
2023/09/01-20:46:07.532898 7fc1463ff6c0 Delete type=0 #169
2023/09/01-20:46:07.542291 7fc1463ff6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
2023/09/01-20:46:07.542317 7fc1463ff6c0 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/08/25-22:03:49.211553 7f2dea7fc6c0 Delete type=0 #99
2023/08/25-22:03:49.211615 7f2dea7fc6c0 Delete type=3 #98
2023/08/25-22:33:29.435955 7f2b69bff6c0 Level-0 table #103: started
2023/08/25-22:33:29.436016 7f2b69bff6c0 Level-0 table #103: 0 bytes OK
2023/08/25-22:33:29.442590 7f2b69bff6c0 Delete type=0 #101
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/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/08/30-20:10:47.325002 7fa55effd6c0 Recovering log #162
2023/08/30-20:10:47.532075 7fa55effd6c0 Delete type=3 #160
2023/08/30-20:10:47.532180 7fa55effd6c0 Delete type=0 #162
2023/08/30-20:19:02.800848 7fa55d3ff6c0 Level-0 table #167: started
2023/08/30-20:19:02.800897 7fa55d3ff6c0 Level-0 table #167: 0 bytes OK
2023/08/30-20:19:02.807064 7fa55d3ff6c0 Delete type=0 #165
2023/08/30-20:19:02.807205 7fa55d3ff6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
2023/08/30-20:19:02.807225 7fa55d3ff6c0 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-000168 Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000105
MANIFEST-000170

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.636903 7f2deaffd6c0 Recovering log #103
2023/08/25-22:33:43.653604 7f2deaffd6c0 Delete type=3 #101
2023/08/25-22:33:43.653664 7f2deaffd6c0 Delete type=0 #103
2023/08/25-23:00:07.074697 7f2b69bff6c0 Level-0 table #108: started
2023/08/25-23:00:07.074729 7f2b69bff6c0 Level-0 table #108: 0 bytes OK
2023/08/25-23:00:07.111279 7f2b69bff6c0 Delete type=0 #106
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/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/09/01-20:34:49.006555 7fc3c6ffd6c0 Recovering log #168
2023/09/01-20:34:49.017044 7fc3c6ffd6c0 Delete type=3 #166
2023/09/01-20:34:49.017107 7fc3c6ffd6c0 Delete type=0 #168
2023/09/01-20:46:07.516008 7fc1463ff6c0 Level-0 table #173: started
2023/09/01-20:46:07.516052 7fc1463ff6c0 Level-0 table #173: 0 bytes OK
2023/09/01-20:46:07.524696 7fc1463ff6c0 Delete type=0 #171
2023/09/01-20:46:07.524991 7fc1463ff6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
2023/09/01-20:46:07.525070 7fc1463ff6c0 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/08/25-22:03:49.188376 7f2deb7fe6c0 Delete type=0 #100
2023/08/25-22:03:49.188518 7f2deb7fe6c0 Delete type=3 #99
2023/08/25-22:33:29.412461 7f2b69bff6c0 Level-0 table #104: started
2023/08/25-22:33:29.412486 7f2b69bff6c0 Level-0 table #104: 0 bytes OK
2023/08/25-22:33:29.419516 7f2b69bff6c0 Delete type=0 #102
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/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/08/30-20:10:47.089737 7fa55dffb6c0 Recovering log #163
2023/08/30-20:10:47.283952 7fa55dffb6c0 Delete type=3 #161
2023/08/30-20:10:47.284018 7fa55dffb6c0 Delete type=0 #163
2023/08/30-20:19:02.793322 7fa55d3ff6c0 Level-0 table #169: started
2023/08/30-20:19:02.793349 7fa55d3ff6c0 Level-0 table #169: 0 bytes OK
2023/08/30-20:19:02.800604 7fa55d3ff6c0 Delete type=0 #167
2023/08/30-20:19:02.807184 7fa55d3ff6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
2023/08/30-20:19:02.807212 7fa55d3ff6c0 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-000170

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.623321 7f2dea7fc6c0 Recovering log #102
2023/08/25-22:33:43.633958 7f2dea7fc6c0 Delete type=3 #100
2023/08/25-22:33:43.634019 7f2dea7fc6c0 Delete type=0 #102
2023/08/25-23:00:07.032595 7f2b69bff6c0 Level-0 table #107: started
2023/08/25-23:00:07.032643 7f2b69bff6c0 Level-0 table #107: 0 bytes OK
2023/08/25-23:00:07.074550 7f2b69bff6c0 Delete type=0 #105
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/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/09/01-20:34:48.990681 7fc3c77fe6c0 Recovering log #168
2023/09/01-20:34:49.001230 7fc3c77fe6c0 Delete type=3 #166
2023/09/01-20:34:49.001299 7fc3c77fe6c0 Delete type=0 #168
2023/09/01-20:46:07.507230 7fc1463ff6c0 Level-0 table #173: started
2023/09/01-20:46:07.507266 7fc1463ff6c0 Level-0 table #173: 0 bytes OK
2023/09/01-20:46:07.515830 7fc1463ff6c0 Delete type=0 #171
2023/09/01-20:46:07.524965 7fc1463ff6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
2023/09/01-20:46:07.525047 7fc1463ff6c0 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/08/25-22:03:49.166527 7f2deb7fe6c0 Delete type=0 #99
2023/08/25-22:03:49.166599 7f2deb7fe6c0 Delete type=3 #98
2023/08/25-22:33:29.406141 7f2b69bff6c0 Level-0 table #103: started
2023/08/25-22:33:29.406187 7f2b69bff6c0 Level-0 table #103: 0 bytes OK
2023/08/25-22:33:29.412334 7f2b69bff6c0 Delete type=0 #101
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/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/08/30-20:10:46.913667 7fa55f7fe6c0 Recovering log #164
2023/08/30-20:10:47.114760 7fa55f7fe6c0 Delete type=3 #162
2023/08/30-20:10:47.114894 7fa55f7fe6c0 Delete type=0 #164
2023/08/30-20:19:02.757545 7fa55d3ff6c0 Level-0 table #169: started
2023/08/30-20:19:02.757594 7fa55d3ff6c0 Level-0 table #169: 0 bytes OK
2023/08/30-20:19:02.765676 7fa55d3ff6c0 Delete type=0 #167
2023/08/30-20:19:02.780087 7fa55d3ff6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
2023/08/30-20:19:02.780123 7fa55d3ff6c0 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-000168

View File

@ -1,8 +1,8 @@
2023/08/25-22:33:43.675716 7f2deaffd6c0 Recovering log #102
2023/08/25-22:33:43.687652 7f2deaffd6c0 Delete type=3 #100
2023/08/25-22:33:43.687775 7f2deaffd6c0 Delete type=0 #102
2023/08/25-23:00:07.190524 7f2b69bff6c0 Level-0 table #107: started
2023/08/25-23:00:07.190606 7f2b69bff6c0 Level-0 table #107: 0 bytes OK
2023/08/25-23:00:07.227189 7f2b69bff6c0 Delete type=0 #105
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/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/09/01-20:34:49.047409 7fc3c7fff6c0 Recovering log #166
2023/09/01-20:34:49.060677 7fc3c7fff6c0 Delete type=3 #164
2023/09/01-20:34:49.060778 7fc3c7fff6c0 Delete type=0 #166
2023/09/01-20:46:07.533009 7fc1463ff6c0 Level-0 table #171: started
2023/09/01-20:46:07.533036 7fc1463ff6c0 Level-0 table #171: 0 bytes OK
2023/09/01-20:46:07.542144 7fc1463ff6c0 Delete type=0 #169
2023/09/01-20:46:07.542308 7fc1463ff6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
2023/09/01-20:46:07.542326 7fc1463ff6c0 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/08/25-22:03:49.224837 7f2deb7fe6c0 Delete type=0 #99
2023/08/25-22:03:49.224905 7f2deb7fe6c0 Delete type=3 #98
2023/08/25-22:33:29.442721 7f2b69bff6c0 Level-0 table #103: started
2023/08/25-22:33:29.442743 7f2b69bff6c0 Level-0 table #103: 0 bytes OK
2023/08/25-22:33:29.449583 7f2b69bff6c0 Delete type=0 #101
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/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/08/30-20:10:47.498427 7fa55dffb6c0 Recovering log #162
2023/08/30-20:10:47.619622 7fa55dffb6c0 Delete type=3 #160
2023/08/30-20:10:47.619685 7fa55dffb6c0 Delete type=0 #162
2023/08/30-20:19:02.807339 7fa55d3ff6c0 Level-0 table #167: started
2023/08/30-20:19:02.807359 7fa55d3ff6c0 Level-0 table #167: 0 bytes OK
2023/08/30-20:19:02.814782 7fa55d3ff6c0 Delete type=0 #165
2023/08/30-20:19:02.814992 7fa55d3ff6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
2023/08/30-20:19:02.815017 7fa55d3ff6c0 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 {
height: 52px;
}
.dialog-roll-title {
margin-left: 8px;
}
.actor-icon {
float: left;
width: 48px;
max-width: 48px;
height: 48px;
padding: 2px 6px 2px 2px;
}
@ -1395,6 +1398,9 @@ Focus FOC: #ff0084
.item-control-end {
align-self: flex-end;
}
.margin-space-4 {
margin-left: 4px;
}
.margin-item-list {
margin-top: 4px;
}

View File

@ -5,11 +5,11 @@
"flags": {}
}
],
"description": "Hero System v6 for FoundryVTT (Official)",
"description": "Hero System 6E for FoundryVTT (Official)",
"esmodules": [
"modules/hero6-main.js"
],
"gridDistance": 5,
"gridDistance": 2,
"gridUnits": "m",
"languages": [
{
@ -91,15 +91,15 @@
"styles": [
"styles/simple.css"
],
"version": "11.0.14",
"version": "11.0.22",
"compatibility": {
"minimum": "11",
"verified": "11"
},
"title": "Hero System v6 for FoundrtVTT (Official)",
"manifest": "https://www.uberwald.me/gitea/uberwald/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",
"url": "https://www.uberwald.me/gitea/uberwald/",
"title": "Hero System 6E Basic (Official)",
"manifest": "https://www.uberwald.me/gitea/public/fvtt-hero-system-6/raw/branch/master/system.json",
"download": "https://www.uberwald.me/gitea/public/fvtt-hero-system-6/archive/fvtt-hero-system-6-v11.0.22.zip",
"url": "https://www.uberwald.me/public/uberwald/",
"background": "systems/fvtt-hero-system-6/images/ui/hero_foundry_cover.webp",
"id": "fvtt-hero-system-6"
}

View File

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

View File

@ -149,36 +149,55 @@
</li>
</ul>
{{#each maneuvers as |mlist key|}}
{{#each maneuvers as |mlist mtype|}}
<ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-field-label-long-img">
<label class="">{{upperFirst key}} Maneuver</label>
<label class="">{{upperFirst mtype}} Maneuver</label>
</span>
<span class="item-field-label-very-short">
<label class="short-label">PHA</label>
</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">
<label class="short-label">OCV</label>
</span>
<span class="item-field-label-very-short">
<label class="short-label">DCV</label>
</span>
{{/if}}
<span class="item-field-text-long">
<label class="short-label">Effects</label>
</span>
</li>
{{#each mlist as |maneuver key|}}
<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"
src="{{maneuver.img}}" /></a>
<a class="roll-item"><i class="fas fa-dice"></i></a><span class="item-field-label-long">{{maneuver.name}}
</span>
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{maneuver.img}}" />
</a>
<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>
{{#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.dcv}}</span>
{{/if}}
<span class="item-field-text-long">{{maneuver.system.effects}}
{{#if maneuver.system.haseffectroll}}
<a class="roll-direct" data-roll-source="Maneuver {{maneuver.name}}"
@ -407,7 +426,7 @@
<div class="charac-item">
<ul>
<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>
</span>
<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}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
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.ocv}}</span>
@ -604,14 +623,14 @@
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{maneuver.img}}" /></a>
<span class="item-field-label-long">
<a class="roll-mental-maneuver">
<i class="fas fa-dice"></i>{{maneuver.name}}
<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.omcv}}</span>
<span class="item-field-label-short">{{maneuver.system.dmcv}}</span>
<span class="item-field-label-short content-center">{{maneuver.system.pha}}</span>
<span class="item-field-label-short content-center">{{maneuver.system.omcv}}</span>
<span class="item-field-label-short content-center">{{maneuver.system.dmcv}}</span>
<span class="item-field-label-long3">{{maneuver.system.effects}}</span>
@ -650,8 +669,8 @@
<span class="item-field-label-short">
<label class="item-field-label-short">Roll</label>
</span>
<span class="item-field-label-medium">
<label class="item-field-label-medium">END</label>
<span class="item-field-label-short">
<label class="item-field-label-short">END</label>
</span>
</li>
{{#each powers as |power key|}}
@ -678,7 +697,7 @@
{{else}}
<span class="item-field-label-short">&nbsp;</span>
{{/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-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>

View File

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

View File

@ -13,10 +13,29 @@
<div>
<ul>
<li>Name : {{title}}</li>
<li>Damage Effect: {{upperFirst item.system.damageeffect}}</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>
{{/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>
</div>

View File

@ -57,7 +57,7 @@
<li><strong>TOTAL : {{result}}</strong>
{{#if (exists margin)}}
({{#if isSuccess}}Success!!{{else}}Failure!{{/if}})
(<strong>{{#if isSuccess}}Success!!{{else}}Failure!{{/if}}</strong>)
{{/if}}
</li>
@ -66,7 +66,15 @@
{{/if}}
{{#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}}
</ul>

View File

@ -52,22 +52,21 @@
data-dtype="Number"/>
</li>
<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}}
{{#if (or system.skillprofiency system.skilllevelonly)}}disabled{{/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}}
data-dtype="Number"/>
</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>
<input type="checkbox" class="item-field-label-medium item-skill-everyman" name="system.skilleveryman" {{checked system.skilleveryman}} data-dtype="Number"/>
</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")}}
<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}}">
<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" />
<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>
</span>

View File

@ -38,9 +38,27 @@
<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"/>
</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>
<input type="text" class="item-field-label-medium" name="system.damage" value="{{system.damage}}" data-dtype="String"/>
</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}}
<li class="flexrow"><label class="item-field-label-long">Endurance</label>