Compare commits

...

15 Commits

59 changed files with 491 additions and 216 deletions

View File

@ -12,7 +12,8 @@ It features :
![Snapshot](https://www.lahiette.com/leratierbretonnien/wp-content/uploads/2023/08/hero6_snapshot_02.webp "Snapshot")
Installation
Manifest URL: https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6
Manifest URL: https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6/raw/branch/master/system.json
Project page : https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6
For manual installation, use the provided manifest URL in the "Install System" popup window while managing game systems.

19
changelog.md Normal file
View File

@ -0,0 +1,19 @@
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

@ -162,13 +162,19 @@ export class Hero6ActorSheet extends ActorSheet {
html.find('.roll-perception').click((event) => {
this.actor.rollPerception("int");
});
html.find('.roll-weapon').click((event) => {
const li = $(event.currentTarget).parents(".item")
this.actor.rollWeapon(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")
@ -184,16 +190,6 @@ export class Hero6ActorSheet extends ActorSheet {
let itemId = li.data("item-id")
this.actor.rollLiftDice(itemId);
});
html.find('.roll-weapon').click((event) => {
const li = $(event.currentTarget).parents(".item");
const skillId = li.data("item-id")
this.actor.rollWeapon(skillId)
});
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,12 +223,20 @@ 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)
if (maneuver.system.maneuvertype == "mental") {
maneuver.roll = 11 + (Number(this.system.characteristics.omcv.value) || 0)
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)
if (Number(maneuver.system.ocv)) {
maneuver.roll += (Number(maneuver.system.ocv) || 0)
} else {
maneuver.noOCV = true
}
}
}
@ -304,11 +311,13 @@ export class Hero6Actor extends Actor {
let maneuvers = {
general: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "general"),
offensive: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "offensive"),
defensive: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "defensive")
defensive: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "defensive"),
mental: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "mental")
}
Hero6Utility.sortArrayObjectsByName(maneuvers.general)
Hero6Utility.sortArrayObjectsByName(maneuvers.offensive)
Hero6Utility.sortArrayObjectsByName(maneuvers.defensive)
Hero6Utility.sortArrayObjectsByName(maneuvers.mental)
return maneuvers
}
getAllManeuvers() {
@ -646,12 +655,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)
@ -704,11 +711,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({
@ -716,6 +732,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)
@ -743,28 +764,6 @@ export class Hero6Actor extends Actor {
console.log("Rolldata result", rollData)
}
/* -------------------------------------------- */
rollManeuver(maneuverId) {
let skill = this.items.get(skillId)
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) {
@ -788,34 +787,54 @@ export class Hero6Actor extends Actor {
}
/* -------------------------------------------- */
rollWeapon(weaponId) {
async rollWeapon(weaponId) {
let weapon = this.items.get(weaponId)
if (weapon) {
weapon = duplicate(weapon)
let skill = this.items.find(item => item.name.toLowerCase() == weapon.system.skill.toLowerCase())
if (skill) {
skill = duplicate(skill)
Hero6Utility.updateSkill(skill)
let abilityKey = skill.system.ability
let rollData = this.getCommonRollData(abilityKey)
rollData.mode = "weapon"
rollData.skill = skill
rollData.weapon = weapon
rollData.img = weapon.img
if (!rollData.forceDisadvantage) { // This is an attack, check if disadvantaged
rollData.forceDisadvantage = this.isAttackDisadvantage()
}
/*if (rollData.weapon.system.isranged && rollData.tokensDistance > Hero6Utility.getWeaponMaxRange(rollData.weapon) ) {
ui.notifications.warn(`Your target is out of range of your weapon (max: ${Hero6Utility.getWeaponMaxRange(rollData.weapon)} - current : ${rollData.tokensDistance})` )
return
}*/
this.startRoll(rollData)
} else {
ui.notifications.warn("Unable to find the relevant skill for weapon " + weapon.name)
}
let rollData = this.getCommonRollData()
rollData.weaponRoll = 11 + (Number(this.system.characteristics.ocv.value) || 0) + (Number(weapon.system.ocv) || 0)
rollData.mode = "weapon"
rollData.weapon = weapon
rollData.img = weapon.img
this.startRoll(rollData)
} else {
ui.notifications.warn("Unable to find the weapon " + weapon.name)
}
}
/* -------------------------------------------- */
rollMentalManeuver(maneuverId) {
let maneuver = this.items.get(maneuverId)
if (maneuver) {
maneuver = duplicate(maneuver)
let rollData = this.getCommonRollData()
rollData.maneuverRoll = 11 + (Number(this.system.characteristics.omcv.value) || 0) + (Number(maneuver.system.omcv) || 0)
rollData.mode = "mentalmaneuver"
rollData.maneuver = maneuver
rollData.img = maneuver.img
this.startRoll(rollData)
} else {
ui.notifications.warn("Unable to find the maneuver " + maneuver.name)
}
}
/* -------------------------------------------- */
rollPowerAttack(powerId ) {
let power = this.items.get(powerId)
if (power) {
power = duplicate(power)
let rollData = this.getCommonRollData()
if (power.system.attackvalue == "ocv") {
rollData.powerRoll = 11 + (Number(this.system.characteristics.ocv.value) || 0) + (Number(power.system.ocv) || 0)
} else {
rollData.powerRoll = 11 + (Number(this.system.characteristics.omcv.value) || 0) + (Number(power.system.omcv) || 0)
}
rollData.mode = "powerattack"
rollData.power = power
rollData.img = power.img
this.startRoll(rollData)
} else {
ui.notifications.warn("Unable to find power " + power.name)
}
}
/* -------------------------------------------- */
async startRoll(rollData) {
let rollDialog = await Hero6RollDialog.create(this, rollData)

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

@ -10,7 +10,8 @@ export const Hero6_CONFIG = {
maneuverTypes: {
"general": "General",
"offensive": "Offensive",
"defensive": "Defensive"
"defensive": "Defensive",
"mental": "Mental"
},
rollCharac : {
"str": "Strength",
@ -21,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",
@ -29,6 +37,10 @@ export const Hero6_CONFIG = {
"combat": "Combat" ,
"custom": "Custom"
},
attackTypes: {
"ocv": "OCV",
"omcv": "OMCV"
},
powerEquipmentType: {
"adjustment": "Adjustment",
"mental": "Mental",

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

@ -346,6 +346,16 @@ export class Hero6Utility {
// ability/save/size => 0
let diceFormula = "3d6"
let target = 10
if(rollData.weapon) {
target = rollData.weaponRoll
}
if(rollData.maneuver) {
target = rollData.maneuverRoll
}
if(rollData.power) {
target = rollData.powerRoll
}
if (rollData.charac) {
target = rollData.charac.roll
}

View File

@ -1 +1 @@
MANIFEST-000098
MANIFEST-000132

View File

@ -1,3 +1,8 @@
2023/08/24-20:28:52.588130 7fda7bbff6c0 Recovering log #96
2023/08/24-20:28:52.597974 7fda7bbff6c0 Delete type=3 #94
2023/08/24-20:28:52.598068 7fda7bbff6c0 Delete type=0 #96
2023/08/27-08:29:22.284274 7f2dea7fc6c0 Recovering log #130
2023/08/27-08:29:22.301134 7f2dea7fc6c0 Delete type=3 #128
2023/08/27-08:29:22.301181 7f2dea7fc6c0 Delete type=0 #130
2023/08/27-08:39:31.996089 7f2b69bff6c0 Level-0 table #135: started
2023/08/27-08:39:31.996115 7f2b69bff6c0 Level-0 table #135: 0 bytes OK
2023/08/27-08:39:32.003139 7f2b69bff6c0 Delete type=0 #133
2023/08/27-08:39:32.003292 7f2b69bff6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
2023/08/27-08:39:32.003321 7f2b69bff6c0 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/24-20:11:49.190057 7fda7abfd6c0 Recovering log #92
2023/08/24-20:11:49.204015 7fda7abfd6c0 Delete type=3 #90
2023/08/24-20:11:49.204065 7fda7abfd6c0 Delete type=0 #92
2023/08/24-20:28:26.993087 7fda79bfb6c0 Level-0 table #97: started
2023/08/24-20:28:26.993130 7fda79bfb6c0 Level-0 table #97: 0 bytes OK
2023/08/24-20:28:27.002024 7fda79bfb6c0 Delete type=0 #95
2023/08/24-20:28:27.002188 7fda79bfb6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
2023/08/24-20:28:27.002221 7fda79bfb6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
2023/08/26-22:07:58.627561 7f2deaffd6c0 Recovering log #126
2023/08/26-22:07:58.748615 7f2deaffd6c0 Delete type=3 #124
2023/08/26-22:07:58.748679 7f2deaffd6c0 Delete type=0 #126
2023/08/26-22:16:27.923271 7f2b69bff6c0 Level-0 table #131: started
2023/08/26-22:16:27.923312 7f2b69bff6c0 Level-0 table #131: 0 bytes OK
2023/08/26-22:16:27.929503 7f2b69bff6c0 Delete type=0 #129
2023/08/26-22:16:27.949795 7f2b69bff6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
2023/08/26-22:16:27.949837 7f2b69bff6c0 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-000100
MANIFEST-000134

View File

@ -1,3 +1,8 @@
2023/08/24-20:28:52.572724 7fda7a3fc6c0 Recovering log #97
2023/08/24-20:28:52.584112 7fda7a3fc6c0 Delete type=3 #95
2023/08/24-20:28:52.584178 7fda7a3fc6c0 Delete type=0 #97
2023/08/27-08:29:22.269478 7f2deaffd6c0 Recovering log #132
2023/08/27-08:29:22.279442 7f2deaffd6c0 Delete type=3 #130
2023/08/27-08:29:22.279516 7f2deaffd6c0 Delete type=0 #132
2023/08/27-08:39:31.935876 7f2b69bff6c0 Level-0 table #137: started
2023/08/27-08:39:31.935922 7f2b69bff6c0 Level-0 table #137: 0 bytes OK
2023/08/27-08:39:31.943117 7f2b69bff6c0 Delete type=0 #135
2023/08/27-08:39:31.968194 7f2b69bff6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
2023/08/27-08:39:31.968240 7f2b69bff6c0 Manual compaction at level-1 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)

View File

@ -1,15 +1,8 @@
2023/08/24-20:11:49.176021 7fda7b3fe6c0 Recovering log #92
2023/08/24-20:11:49.186442 7fda7b3fe6c0 Delete type=3 #90
2023/08/24-20:11:49.186511 7fda7b3fe6c0 Delete type=0 #92
2023/08/24-20:28:26.929251 7fda79bfb6c0 Level-0 table #98: started
2023/08/24-20:28:26.933483 7fda79bfb6c0 Level-0 table #98: 61208 bytes OK
2023/08/24-20:28:26.940562 7fda79bfb6c0 Delete type=0 #96
2023/08/24-20:28:26.961338 7fda79bfb6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
2023/08/24-20:28:26.961409 7fda79bfb6c0 Manual compaction at level-1 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at '!items!zFQRJSrYV4E12NgW' @ 355 : 1
2023/08/24-20:28:26.961416 7fda79bfb6c0 Compacting 1@1 + 1@2 files
2023/08/24-20:28:26.966548 7fda79bfb6c0 Generated table #99@1: 125 keys, 61208 bytes
2023/08/24-20:28:26.966578 7fda79bfb6c0 Compacted 1@1 + 1@2 files => 61208 bytes
2023/08/24-20:28:26.974691 7fda79bfb6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2023/08/24-20:28:26.974830 7fda79bfb6c0 Delete type=2 #94
2023/08/24-20:28:26.975013 7fda79bfb6c0 Delete type=2 #98
2023/08/24-20:28:27.002145 7fda79bfb6c0 Manual compaction at level-1 from '!items!zFQRJSrYV4E12NgW' @ 355 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
2023/08/26-22:07:58.520995 7f2deb7fe6c0 Recovering log #128
2023/08/26-22:07:58.608948 7f2deb7fe6c0 Delete type=3 #126
2023/08/26-22:07:58.609004 7f2deb7fe6c0 Delete type=0 #128
2023/08/26-22:16:27.903755 7f2b69bff6c0 Level-0 table #133: started
2023/08/26-22:16:27.903791 7f2b69bff6c0 Level-0 table #133: 0 bytes OK
2023/08/26-22:16:27.909699 7f2b69bff6c0 Delete type=0 #131
2023/08/26-22:16:27.916391 7f2b69bff6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
2023/08/26-22:16:27.923165 7f2b69bff6c0 Manual compaction at level-1 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000090
MANIFEST-000125

View File

@ -1,3 +1,15 @@
2023/08/24-20:28:52.601708 7fda7a3fc6c0 Recovering log #88
2023/08/24-20:28:52.613896 7fda7a3fc6c0 Delete type=3 #86
2023/08/24-20:28:52.614012 7fda7a3fc6c0 Delete type=0 #88
2023/08/27-08:29:22.300538 7f2deaffd6c0 Recovering log #123
2023/08/27-08:29:22.317575 7f2deaffd6c0 Delete type=3 #121
2023/08/27-08:29:22.317668 7f2deaffd6c0 Delete type=0 #123
2023/08/27-08:39:31.985594 7f2b69bff6c0 Level-0 table #128: started
2023/08/27-08:39:31.989270 7f2b69bff6c0 Level-0 table #128: 885 bytes OK
2023/08/27-08:39:31.995966 7f2b69bff6c0 Delete type=0 #126
2023/08/27-08:39:32.003282 7f2b69bff6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
2023/08/27-08:39:32.003339 7f2b69bff6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at '!items!M7GTfolCobuXkfpd' @ 28 : 1
2023/08/27-08:39:32.003347 7f2b69bff6c0 Compacting 1@1 + 1@2 files
2023/08/27-08:39:32.006911 7f2b69bff6c0 Generated table #129@1: 26 keys, 15634 bytes
2023/08/27-08:39:32.006934 7f2b69bff6c0 Compacted 1@1 + 1@2 files => 15634 bytes
2023/08/27-08:39:32.013790 7f2b69bff6c0 compacted to: files[ 0 0 1 0 0 0 0 ]
2023/08/27-08:39:32.013955 7f2b69bff6c0 Delete type=2 #116
2023/08/27-08:39:32.014188 7f2b69bff6c0 Delete type=2 #128
2023/08/27-08:39:32.026889 7f2b69bff6c0 Manual compaction at level-1 from '!items!M7GTfolCobuXkfpd' @ 28 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2023/08/24-20:11:49.203061 7fda7bbff6c0 Recovering log #84
2023/08/24-20:11:49.219726 7fda7bbff6c0 Delete type=3 #82
2023/08/24-20:11:49.219820 7fda7bbff6c0 Delete type=0 #84
2023/08/24-20:28:27.002307 7fda79bfb6c0 Level-0 table #89: started
2023/08/24-20:28:27.002338 7fda79bfb6c0 Level-0 table #89: 0 bytes OK
2023/08/24-20:28:27.008560 7fda79bfb6c0 Delete type=0 #87
2023/08/24-20:28:27.051981 7fda79bfb6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
2023/08/24-20:28:27.052022 7fda79bfb6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
2023/08/26-22:07:58.730640 7f2deb7fe6c0 Recovering log #119
2023/08/26-22:07:58.841210 7f2deb7fe6c0 Delete type=3 #117
2023/08/26-22:07:58.841288 7f2deb7fe6c0 Delete type=0 #119
2023/08/26-22:16:27.936844 7f2b69bff6c0 Level-0 table #124: started
2023/08/26-22:16:27.936868 7f2b69bff6c0 Level-0 table #124: 0 bytes OK
2023/08/26-22:16:27.942975 7f2b69bff6c0 Delete type=0 #122
2023/08/26-22:16:27.949818 7f2b69bff6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
2023/08/26-22:16:27.949853 7f2b69bff6c0 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-000098
MANIFEST-000132

View File

@ -1,3 +1,8 @@
2023/08/24-20:28:52.601706 7fda7abfd6c0 Recovering log #96
2023/08/24-20:28:52.613896 7fda7abfd6c0 Delete type=3 #94
2023/08/24-20:28:52.613994 7fda7abfd6c0 Delete type=0 #96
2023/08/27-08:29:22.302661 7f2debfff6c0 Recovering log #130
2023/08/27-08:29:22.321361 7f2debfff6c0 Delete type=3 #128
2023/08/27-08:29:22.321420 7f2debfff6c0 Delete type=0 #130
2023/08/27-08:39:32.020735 7f2b69bff6c0 Level-0 table #135: started
2023/08/27-08:39:32.020763 7f2b69bff6c0 Level-0 table #135: 0 bytes OK
2023/08/27-08:39:32.026780 7f2b69bff6c0 Delete type=0 #133
2023/08/27-08:39:32.026919 7f2b69bff6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
2023/08/27-08:39:32.026945 7f2b69bff6c0 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/24-20:11:49.205472 7fda7b3fe6c0 Recovering log #92
2023/08/24-20:11:49.222633 7fda7b3fe6c0 Delete type=3 #90
2023/08/24-20:11:49.222697 7fda7b3fe6c0 Delete type=0 #92
2023/08/24-20:28:27.019936 7fda79bfb6c0 Level-0 table #97: started
2023/08/24-20:28:27.019979 7fda79bfb6c0 Level-0 table #97: 0 bytes OK
2023/08/24-20:28:27.051866 7fda79bfb6c0 Delete type=0 #95
2023/08/24-20:28:27.052012 7fda79bfb6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
2023/08/24-20:28:27.052040 7fda79bfb6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
2023/08/26-22:07:58.751122 7f2dea7fc6c0 Recovering log #126
2023/08/26-22:07:58.864497 7f2dea7fc6c0 Delete type=3 #124
2023/08/26-22:07:58.864580 7f2dea7fc6c0 Delete type=0 #126
2023/08/26-22:16:27.929655 7f2b69bff6c0 Level-0 table #131: started
2023/08/26-22:16:27.929696 7f2b69bff6c0 Level-0 table #131: 0 bytes OK
2023/08/26-22:16:27.936745 7f2b69bff6c0 Delete type=0 #129
2023/08/26-22:16:27.949807 7f2b69bff6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
2023/08/26-22:16:27.949861 7f2b69bff6c0 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-000132 Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000099
MANIFEST-000133

View File

@ -1,3 +1,8 @@
2023/08/24-20:28:52.588130 7fda7abfd6c0 Recovering log #97
2023/08/24-20:28:52.597915 7fda7abfd6c0 Delete type=3 #95
2023/08/24-20:28:52.597970 7fda7abfd6c0 Delete type=0 #97
2023/08/27-08:29:22.281768 7f2deb7fe6c0 Recovering log #131
2023/08/27-08:29:22.298260 7f2deb7fe6c0 Delete type=3 #129
2023/08/27-08:29:22.298361 7f2deb7fe6c0 Delete type=0 #131
2023/08/27-08:39:31.977972 7f2b69bff6c0 Level-0 table #136: started
2023/08/27-08:39:31.978008 7f2b69bff6c0 Level-0 table #136: 0 bytes OK
2023/08/27-08:39:31.985417 7f2b69bff6c0 Delete type=0 #134
2023/08/27-08:39:32.003270 7f2b69bff6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
2023/08/27-08:39:32.003309 7f2b69bff6c0 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/24-20:11:49.190059 7fda7a3fc6c0 Recovering log #93
2023/08/24-20:11:49.201012 7fda7a3fc6c0 Delete type=3 #91
2023/08/24-20:11:49.201080 7fda7a3fc6c0 Delete type=0 #93
2023/08/24-20:28:26.985277 7fda79bfb6c0 Level-0 table #98: started
2023/08/24-20:28:26.985305 7fda79bfb6c0 Level-0 table #98: 0 bytes OK
2023/08/24-20:28:26.992913 7fda79bfb6c0 Delete type=0 #96
2023/08/24-20:28:27.002175 7fda79bfb6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
2023/08/24-20:28:27.002210 7fda79bfb6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
2023/08/26-22:07:58.612145 7f2debfff6c0 Recovering log #127
2023/08/26-22:07:58.728418 7f2debfff6c0 Delete type=3 #125
2023/08/26-22:07:58.728498 7f2debfff6c0 Delete type=0 #127
2023/08/26-22:16:27.916401 7f2b69bff6c0 Level-0 table #132: started
2023/08/26-22:16:27.916423 7f2b69bff6c0 Level-0 table #132: 0 bytes OK
2023/08/26-22:16:27.923048 7f2b69bff6c0 Delete type=0 #130
2023/08/26-22:16:27.923174 7f2b69bff6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
2023/08/26-22:16:27.923191 7f2b69bff6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000098
MANIFEST-000132

View File

@ -1,3 +1,8 @@
2023/08/24-20:28:52.572723 7fda7b3fe6c0 Recovering log #96
2023/08/24-20:28:52.584114 7fda7b3fe6c0 Delete type=3 #94
2023/08/24-20:28:52.584178 7fda7b3fe6c0 Delete type=0 #96
2023/08/27-08:29:22.269474 7f2debfff6c0 Recovering log #130
2023/08/27-08:29:22.282410 7f2debfff6c0 Delete type=3 #128
2023/08/27-08:29:22.282470 7f2debfff6c0 Delete type=0 #130
2023/08/27-08:39:31.960813 7f2b69bff6c0 Level-0 table #135: started
2023/08/27-08:39:31.960840 7f2b69bff6c0 Level-0 table #135: 0 bytes OK
2023/08/27-08:39:31.968065 7f2b69bff6c0 Delete type=0 #133
2023/08/27-08:39:31.968231 7f2b69bff6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
2023/08/27-08:39:31.968249 7f2b69bff6c0 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/24-20:11:49.176021 7fda7bbff6c0 Recovering log #92
2023/08/24-20:11:49.186443 7fda7bbff6c0 Delete type=3 #90
2023/08/24-20:11:49.186509 7fda7bbff6c0 Delete type=0 #92
2023/08/24-20:28:26.975180 7fda79bfb6c0 Level-0 table #97: started
2023/08/24-20:28:26.975225 7fda79bfb6c0 Level-0 table #97: 0 bytes OK
2023/08/24-20:28:26.985137 7fda79bfb6c0 Delete type=0 #95
2023/08/24-20:28:27.002160 7fda79bfb6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
2023/08/24-20:28:27.002199 7fda79bfb6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
2023/08/26-22:07:58.521207 7f2dea7fc6c0 Recovering log #126
2023/08/26-22:07:58.625202 7f2dea7fc6c0 Delete type=3 #124
2023/08/26-22:07:58.625257 7f2dea7fc6c0 Delete type=0 #126
2023/08/26-22:16:27.909865 7f2b69bff6c0 Level-0 table #131: started
2023/08/26-22:16:27.909908 7f2b69bff6c0 Level-0 table #131: 0 bytes OK
2023/08/26-22:16:27.916292 7f2b69bff6c0 Delete type=0 #129
2023/08/26-22:16:27.923145 7f2b69bff6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
2023/08/26-22:16:27.923202 7f2b69bff6c0 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-000098
MANIFEST-000132

View File

@ -1,3 +1,8 @@
2023/08/24-20:28:52.617237 7fda7abfd6c0 Recovering log #96
2023/08/24-20:28:52.627761 7fda7abfd6c0 Delete type=3 #94
2023/08/24-20:28:52.627835 7fda7abfd6c0 Delete type=0 #96
2023/08/27-08:29:22.319586 7f2deb7fe6c0 Recovering log #130
2023/08/27-08:29:22.330371 7f2deb7fe6c0 Delete type=3 #128
2023/08/27-08:29:22.330427 7f2deb7fe6c0 Delete type=0 #130
2023/08/27-08:39:32.014249 7f2b69bff6c0 Level-0 table #135: started
2023/08/27-08:39:32.014276 7f2b69bff6c0 Level-0 table #135: 0 bytes OK
2023/08/27-08:39:32.020634 7f2b69bff6c0 Delete type=0 #133
2023/08/27-08:39:32.026909 7f2b69bff6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
2023/08/27-08:39:32.026927 7f2b69bff6c0 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/24-20:11:49.221624 7fda7a3fc6c0 Recovering log #92
2023/08/24-20:11:49.232090 7fda7a3fc6c0 Delete type=3 #90
2023/08/24-20:11:49.232138 7fda7a3fc6c0 Delete type=0 #92
2023/08/24-20:28:27.008700 7fda79bfb6c0 Level-0 table #97: started
2023/08/24-20:28:27.008737 7fda79bfb6c0 Level-0 table #97: 0 bytes OK
2023/08/24-20:28:27.019736 7fda79bfb6c0 Delete type=0 #95
2023/08/24-20:28:27.051993 7fda79bfb6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
2023/08/24-20:28:27.052030 7fda79bfb6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
2023/08/26-22:07:58.844046 7f2debfff6c0 Recovering log #126
2023/08/26-22:07:58.925665 7f2debfff6c0 Delete type=3 #124
2023/08/26-22:07:58.926331 7f2debfff6c0 Delete type=0 #126
2023/08/26-22:16:27.943060 7f2b69bff6c0 Level-0 table #131: started
2023/08/26-22:16:27.943083 7f2b69bff6c0 Level-0 table #131: 0 bytes OK
2023/08/26-22:16:27.949677 7f2b69bff6c0 Delete type=0 #129
2023/08/26-22:16:27.949829 7f2b69bff6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
2023/08/26-22:16:27.949845 7f2b69bff6c0 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

@ -5,7 +5,7 @@
"flags": {}
}
],
"description": "Hero System v6 for FoundryVTT (Official)",
"description": "Hero System 6E for FoundryVTT (Official)",
"esmodules": [
"modules/hero6-main.js"
],
@ -91,15 +91,15 @@
"styles": [
"styles/simple.css"
],
"version": "11.0.13",
"version": "11.0.18",
"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.13.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.18.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,9 +354,12 @@
"levels": 0,
"quantity": 1,
"range": "",
"damageeffect": "normal",
"damage": "",
"stunx": 0,
"endurance": 0,
"hasroll": false,
"attackvalue": "ocv",
"roll": 0,
"computebody": false,
"haseffectroll": false,
@ -375,6 +378,8 @@
"pha": "",
"ocv": "",
"dcv" : "",
"omcv": "",
"dmcv" : "",
"isstock": false,
"active": false
},

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>
<span class="item-field-label-very-short">{{maneuver.system.pha}}</span>
<span class="item-field-label-very-short">{{maneuver.system.ocv}}</span>
<span class="item-field-label-very-short">{{maneuver.system.dcv}}</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}}"
@ -556,26 +575,75 @@
</span>
</li>
{{#each allmaneuvers as |maneuver key|}}
<div class="{{#if maneuver.system.isstock}}maneuver-list maneuver-is-stock{{/if}}">
<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>
{{#if (ne maneuver.system.maneuvertype "mental")}}
<div class="{{#if maneuver.system.isstock}}maneuver-list maneuver-is-stock{{/if}}">
<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"><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>
<span class="item-field-label-short">{{maneuver.system.dcv}}</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.dcv}}</span>
<span class="item-field-label-long3">{{maneuver.system.effects}}</span>
<span class="item-field-label-long3">{{maneuver.system.effects}}</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>
</div>
</li>
</div>
<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>
</div>
</li>
</div>
{{/if}}
{{/each}}
</ul>
<ul class="stat-list alternate-list item-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-field-label-long-img">
<label class="">Mental Maneuvers</label>
</span>
<span class="item-field-label-short">
<label class="short-label">PHA</label>
</span>
<span class="item-field-label-short">
<label class="short-label">OMCV</label>
</span>
<span class="item-field-label-short">
<label class="short-label">DMCV</label>
</span>
<span class="item-field-label-long3">
<label class="short-label">Effects</label>
</span>
</li>
{{#each allmaneuvers as |maneuver key|}}
{{#if (eq maneuver.system.maneuvertype "mental")}}
<div class="">
<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">
<a class="roll-item"><i class="fas fa-dice"></i>
{{maneuver.name}}
</a>
</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>
<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>
</div>
</li>
</div>
{{/if}}
{{/each}}
</ul>
</div>
{{!-- Powers Tab --}}
@ -610,7 +678,16 @@
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{power.img}}" /></a>
<span class="item-field-label-short">{{power.system.cost}}</span>
{{#if (eq system.typemodifier "attack")}}
<span class="item-field-label-long3">
<a class="roll-power-attack">
<i class="fas fa-dice"></i>
{{power.name}}
</a>
</span>
{{else}}
<span class="item-field-label-long3">{{power.name}}</span>
{{/if}}
<span class="item-field-label-long2">{{power.system.displayname}}</span>
<span class="item-field-label-medium"><a class="roll-damage" data-type="power"><i
class="fas fa-dice"></i>{{power.system.damage}}</a></span>

View File

@ -15,6 +15,27 @@
</div>
{{/if}}
{{#if weapon}}
<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>
</div>
{{/if}}
{{#if maneuver}}
<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>
</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>
</div>
{{/if}}
{{#if item}}
<div class="flexrow">
<span class="item-field-label-long margin-item-list">{{upperFirst item.type}} - {{upperFirst item.name}}</span>

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

@ -17,6 +17,21 @@
</li>
{{/if}}
{{#if weapon}}
<li>Weapon : {{weapon.name}}
</li>
{{/if}}
{{#if maneuver}}
<li>Maneuver : {{maneuver.name}}
</li>
{{/if}}
{{#if power}}
<li>Power : {{power.name}}
</li>
{{/if}}
{{#if rollSource}}
<li>Roll : {{rollSource}}</li>
{{/if}}

View File

@ -37,14 +37,21 @@
<input type="text" class="item-field-label-medium" name="system.pha" value="{{system.pha}}" data-dtype="String"/>
</li>
{{#if (eq system.maneuvertype "mental")}}
<li class="flexrow"><label class="item-field-label-medium">OMCV</label>
<input type="text" class="item-field-label-medium" name="system.omcv" value="{{system.omcv}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-medium">DMCV</label>
<input type="text" class="item-field-label-medium" name="system.dmcv" value="{{system.dmcv}}" data-dtype="String"/>
</li>
{{else}}
<li class="flexrow"><label class="item-field-label-medium">OCV</label>
<input type="text" class="item-field-label-medium" name="system.ocv" value="{{system.ocv}}" data-dtype="String"/>
</li>
<li class="flexrow"><label class="item-field-label-medium">DCV</label>
<input type="text" class="item-field-label-medium" name="system.dcv" value="{{system.dcv}}" data-dtype="String"/>
</li>
{{/if}}
<li class="flexrow"><label class="item-field-label-medium">Effects</label>
<input type="text" class="item-field-label-long" name="system.effects" value="{{system.effects}}" data-dtype="String"/>
</li>

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

@ -3,7 +3,13 @@
<span class="item-field-label-very-short content-center" ><label class="content-center">{{equip.system.quantity}}</label> </span>
<span class="item-field-label-long2">{{equip.name}}</span>
<span class="item-field-label-long2">
{{#if (eq equip.system.subtype "weapon")}}
<a class="roll-weapon"><i class="fas fa-dice"></i>{{equip.name}}</a>
{{else}}
{{equip.name}}
{{/if}}
</span>
{{#if (or (eq equip.system.subtype "money") (eq equip.system.subtype "equipment"))}}
<span class="item-field-label-very-short"><label>&nbsp;</label> </span>

View File

@ -18,6 +18,18 @@
</select>
</li>
{{#if (eq (lower system.typemodifier) "attack")}}
<li class="flexrow"><label class="item-field-label-long">Attack Roll Uses OCV or OMCV</label>
<select class="item-field-label-long" type="text" name="system.attackvalue" value="{{system.attackvalue}}" data-dtype="String">
{{#select system.attackvalue}}
{{#each config.attackTypes as |name key|}}
<option value="{{key}}">{{name}}</option>
{{/each}}
{{/select}}
</select>
</li>
{{/if}}
<li class="flexrow"><label class="item-field-label-long">Is sense affecting ?</label>
<label class="item-field-label-medium"><input type="checkbox" name="system.senseaffecting" {{checked system.senseaffecting}}/></label>
</li>
@ -26,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>