Compare commits

..

22 Commits

Author SHA1 Message Date
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
b383481915 First official release 2023-08-25 23:00:21 +02:00
dca78fd4b6 Add changelog 2023-08-25 19:02:40 +02:00
f381269acf Add changelog 2023-08-25 18:58:48 +02:00
686ea4cea6 Fix manifest link 2023-08-25 18:55:34 +02:00
c915b85a7b Update README 2023-08-25 16:34:10 +02:00
5026e120c1 Equipment management 2023-08-24 23:12:55 +02:00
9cefc6f816 Equipment management 2023-08-24 20:32:12 +02:00
11d7c7d1c0 Equipment management 2023-08-24 20:32:00 +02:00
3abf9a9f8f Equipment management 2023-08-24 18:45:54 +02:00
f5c0faffd3 Equipment management 2023-08-24 15:59:54 +02:00
3f0e0a41b8 Update equipments type 2023-08-22 23:30:31 +02:00
20c49eb48c Fix Maneuvers 2023-08-15 22:12:02 +02:00
6275319164 Various fixes 2023-08-10 13:06:16 +02:00
19fb872824 Various fixes 2023-08-10 13:05:56 +02:00
002d6f4fbd Various fixes 2023-08-09 18:05:16 +02:00
43a3a2ccfa Various fixes and enhancents 2023-08-08 08:17:48 +02:00
356f0fee5f Various fixes and enhancents 2023-08-08 08:17:30 +02:00
58bcfc07a3 Various fixes and enhancents 2023-08-07 23:28:04 +02:00
3dcb60e7a9 Add compendiums + pictures + minor fixes 2023-08-04 07:04:12 +02:00
88 changed files with 1235 additions and 549 deletions

View File

@ -2,8 +2,18 @@ This is the official Hero System 6th Edition game system for FoundryVTT, based o
The Hero System game system is not usable standalone. To play this game you need a copy of the core rulebook. The Hero System game system is not usable standalone. To play this game you need a copy of the core rulebook.
It features :
- PC/NPC sheets
- Roll management and associated helpers
- Segment and Turn management in the combat tracker
- Official compendiums
![Snapshot](https://www.lahiette.com/leratierbretonnien/wp-content/uploads/2023/08/hero6_snapshot_02.webp "Snapshot")
Installation Installation
Manifest URL: https://github.com/Legendsmiths-LLC/ 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. For manual installation, use the provided manifest URL in the "Install System" popup window while managing game systems.

4
changelog.md Normal file
View File

@ -0,0 +1,4 @@
v11.0.14
- Initial public release

View File

@ -1,19 +1,22 @@
{ {
"ACTOR": { "TYPES": {
"TypeCharacter": "Character" "Actor": {
}, "character": "Character",
"ITEM": { "minion": "Minion"
"TypeSkill": "Skill", },
"TypePerk": "Perk", "Item": {
"TypePower": "Power", "skill": "Skill",
"TypeTalent": "Talent", "perk": "Perk",
"TypeAdvantage": "Advantage", "power": "Power",
"TypeMartialart": "Martial art", "talent": "Talent",
"TypeLimitation": "Limitation", "advantage": "Advantage",
"TypeComplication": "Complication", "martialart": "Martial art",
"TypeEquipment": "Equipment", "limitation": "Limitation",
"TypeCurrency": "Currency", "complication": "Complication",
"TypeManeuver": "Maneuver" "equipment": "Equipment",
"currency": "Currency",
"maneuver": "Maneuver"
}
}, },
"COMBAT": { "COMBAT": {
"TurnPrev": "Previous initiative", "TurnPrev": "Previous initiative",

View File

@ -46,10 +46,12 @@ export class Hero6ActorSheet extends ActorSheet {
complications: this.actor.getComplications( ), complications: this.actor.getComplications( ),
maneuvers: this.actor.getManeuvers( ), maneuvers: this.actor.getManeuvers( ),
nonstockmaneuvers: this.actor.getNonStockManeuvers(), nonstockmaneuvers: this.actor.getNonStockManeuvers(),
allmaneuvers: this.actor.getAllManeuvers(),
weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ), weapons: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getWeapons()) ),
armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())), armors: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getArmors())),
shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())), shields: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getShields())),
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsMoneys()) ), moneys: this.actor.checkAndPrepareEquipments( duplicate(this.actor.getMoneys())),
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipments()) ),
subActors: duplicate(this.actor.getSubActors()), subActors: duplicate(this.actor.getSubActors()),
race: duplicate(this.actor.getRace()), race: duplicate(this.actor.getRace()),
encCapacity: this.actor.getEncumbranceCapacity(), encCapacity: this.actor.getEncumbranceCapacity(),
@ -74,7 +76,9 @@ export class Hero6ActorSheet extends ActorSheet {
editScore: this.options.editScore, editScore: this.options.editScore,
isGM: game.user.isGM isGM: game.user.isGM
} }
this.formData = formData; this.formData = formData;
this.stockManeuverDisplayed = false
console.log("PC : ", formData, this.object); console.log("PC : ", formData, this.object);
return formData; return formData;
@ -89,9 +93,9 @@ export class Hero6ActorSheet extends ActorSheet {
// Everything below here is only needed if the sheet is editable // Everything below here is only needed if the sheet is editable
if (!this.options.editable) return; if (!this.options.editable) return;
html.bind("keydown", function(e) { // Ignore Enter in actores sheet /*html.bind("keydown", function(e) { // Ignore Enter in actores sheet
if (e.keyCode === 13) return false; if (e.keyCode === 13) return false;
}); });*/
// Update Inventory Item // Update Inventory Item
html.find('.item-edit').click(ev => { html.find('.item-edit').click(ev => {
@ -158,6 +162,18 @@ export class Hero6ActorSheet extends ActorSheet {
html.find('.roll-perception').click((event) => { html.find('.roll-perception').click((event) => {
this.actor.rollPerception("int"); 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-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) => { html.find('.roll-direct').click((event) => {
const rollFormula = $(event.currentTarget).data("roll-formula") const rollFormula = $(event.currentTarget).data("roll-formula")
@ -179,14 +195,13 @@ export class Hero6ActorSheet extends ActorSheet {
const li = $(event.currentTarget).parents(".item"); const li = $(event.currentTarget).parents(".item");
let itemId = li.data("item-id") let itemId = li.data("item-id")
this.actor.rollLiftDice(itemId); this.actor.rollLiftDice(itemId);
});
html.find('.roll-maneuver').click((event) => {
const li = $(event.currentTarget).parents(".item");
const maneuverId = li.data("maneuver-id")
this.actor.rollManeuver(maneuverId)
}); });
html.find('.roll-weapon').click((event) => {
const li = $(event.currentTarget).parents(".item");
const skillId = li.data("item-id")
this.actor.rollWeapon(skillId)
});
html.find('.hold-action').click((event) => { html.find('.hold-action').click((event) => {
this.actor.holdAction() this.actor.holdAction()
}); });
@ -194,6 +209,16 @@ export class Hero6ActorSheet extends ActorSheet {
this.actor.abortAction() this.actor.abortAction()
}); });
html.find(".show-stock-maneuver").click((event) => {
if ( !this.stockManeuverDisplayed) {
$('div .maneuver-list').removeClass('maneuver-is-stock');
this.stockManeuverDisplayed = true
} else {
$('div .maneuver-list').addClass('maneuver-is-stock');
this.stockManeuverDisplayed = false
}
});
html.find('.lock-unlock-sheet').click((event) => { html.find('.lock-unlock-sheet').click((event) => {
this.options.editScore = !this.options.editScore; this.options.editScore = !this.options.editScore;
this.render(true); this.render(true);

View File

@ -4,7 +4,7 @@ import { Hero6RollDialog } from "./hero6-roll-dialog.js";
import { Hero6LiftDice } from "./hero6-lift-dice.js"; import { Hero6LiftDice } from "./hero6-lift-dice.js";
/* -------------------------------------------- */ /* -------------------------------------------- */
const __speed2Segments = [ [0], [7], [6, 12], [4, 8, 12], [3, 6, 9, 12], [3, 5, 8, 10, 12], [2, 4, 6, 8, 10, 12], const __speed2Segments = [[0], [7], [6, 12], [4, 8, 12], [3, 6, 9, 12], [3, 5, 8, 10, 12], [2, 4, 6, 8, 10, 12],
[2, 4, 6, 7, 9, 11, 12], [2, 3, 5, 6, 8, 9, 11, 12], [2, 3, 4, 6, 7, 8, 10, 11, 12], [2, 3, 4, 5, 6, 8, 9, 10, 11, 12], [2, 4, 6, 7, 9, 11, 12], [2, 3, 5, 6, 8, 9, 11, 12], [2, 3, 4, 6, 7, 8, 10, 11, 12], [2, 3, 4, 5, 6, 8, 9, 10, 11, 12],
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]] [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]
@ -40,12 +40,10 @@ export class Hero6Actor extends Actor {
return actor; return actor;
} }
if (data.type == 'character') { if (data.type == 'character' || data.type == 'minion') {
const maneuvers = await Hero6Utility.loadCompendium("fvtt-hero-system-6.maneuvers") const maneuvers = await Hero6Utility.loadCompendium("fvtt-hero-system-6.maneuvers")
let maneuversObj = maneuvers.map(i => i.toObject()) let maneuversObj = maneuvers.map(i => i.toObject())
data.items = maneuversObj.filter(m => m.system.isstock) data.items = maneuversObj.filter(m => m.system.isstock)
}
if (data.type == 'npc') {
} }
return super.create(data, options); return super.create(data, options);
@ -62,14 +60,19 @@ export class Hero6Actor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
computeDerivatedData() { computeDerivatedData() {
if (this.type == "character") { let newSTREND = this.computeSTREND()
let newSTREND = this.computeSTREND() if (newSTREND != this.system.characteristics.str.strend) {
if (newSTREND != this.system.characteristics.str.strend) { this.update({ 'system.characteristics.str.strend': newSTREND })
this.update({ 'system.characteristics.str.strend': newSTREND })
}
} }
} }
/* -------------------------------------------- */
performMigration() {
// Fix OCV/OMCV rollable
if (!this.system.characteristics.ocv.hasroll) {
this.update({ 'system.characteristics.ocv.hasroll': true, 'system.characteristics.omcv.hasroll': true })
}
}
/* -------------------------------------------- */
computeDicesValue() { computeDicesValue() {
this.system.biodata.presenceattack = Hero6Utility.getDerivatedDiceFormulas(this.system.characteristics.pre.value) this.system.biodata.presenceattack = Hero6Utility.getDerivatedDiceFormulas(this.system.characteristics.pre.value)
this.system.characteristics.str.strdice = Hero6LiftDice.getLiftDice(this.system.characteristics.str.value) this.system.characteristics.str.strdice = Hero6LiftDice.getLiftDice(this.system.characteristics.str.value)
@ -164,6 +167,19 @@ export class Hero6Actor extends Actor {
} }
return item; return item;
} }
/* -------------------------------------------- */
async _preCreate(data, options, user) {
await super._preCreate(data, options, user);
// Configure prototype token settings
const prototypeToken = {};
if (this.type === "character") Object.assign(prototypeToken, {
sight: { enabled: true }, actorLink: true, disposition: CONST.TOKEN_DISPOSITIONS.FRIENDLY
});
this.updateSource({ prototypeToken });
}
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareSkill(skill) { prepareSkill(skill) {
skill.roll = 0 skill.roll = 0
@ -206,6 +222,17 @@ 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)
} else {
maneuver.noOCV = true
}
}
/* -------------------------------------------- */ /* -------------------------------------------- */
getSkills() { getSkills() {
let comp = duplicate(this.items.filter(item => item.type == 'skill') || []) let comp = duplicate(this.items.filter(item => item.type == 'skill') || [])
@ -277,11 +304,18 @@ export class Hero6Actor extends Actor {
let maneuvers = { let maneuvers = {
general: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "general"), general: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "general"),
offensive: this.items.filter(item => item.type == "maneuver" && item.system.maneuvertype == "offensive"), 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.general)
Hero6Utility.sortArrayObjectsByName(maneuvers.offensive) Hero6Utility.sortArrayObjectsByName(maneuvers.offensive)
Hero6Utility.sortArrayObjectsByName(maneuvers.defensive) Hero6Utility.sortArrayObjectsByName(maneuvers.defensive)
Hero6Utility.sortArrayObjectsByName(maneuvers.mental)
return maneuvers
}
getAllManeuvers() {
let maneuvers = this.items.filter(item => item.type == "maneuver")
Hero6Utility.sortArrayObjectsByName(maneuvers)
return maneuvers return maneuvers
} }
getNonStockManeuvers() { getNonStockManeuvers() {
@ -294,6 +328,11 @@ export class Hero6Actor extends Actor {
Hero6Utility.sortArrayObjectsByName(list) Hero6Utility.sortArrayObjectsByName(list)
return list return list
} }
getMoneys() {
let list = this.items.filter(item => item.type == "equipment" && item.system.subtype == "money");
Hero6Utility.sortArrayObjectsByName(list)
return list
}
getWeapons() { getWeapons() {
let list = this.items.filter(item => item.type == "equipment" && item.system.subtype == "weapon"); let list = this.items.filter(item => item.type == "equipment" && item.system.subtype == "weapon");
Hero6Utility.sortArrayObjectsByName(list) Hero6Utility.sortArrayObjectsByName(list)
@ -389,7 +428,7 @@ export class Hero6Actor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async cleanCombat() { async cleanCombat() {
await this.setFlag("world", "hold-action", false) await this.setFlag("world", "hold-action", false)
await this.setFlag("world", "abort-action", { state: false, count: 0 } ) await this.setFlag("world", "abort-action", { state: false, count: 0 })
} }
async holdAction() { async holdAction() {
await this.disableAbortAction() await this.disableAbortAction()
@ -462,9 +501,9 @@ export class Hero6Actor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
getBaseInit(turn) { getBaseInit(turn) {
if ( turn != this.turn) { if (turn != this.turn) {
let r = new Roll("1d6").roll({ async: false }) let r = new Roll("1d6").roll({ async: false })
this.currentInit = this.system.characteristics.dex.initiative + (r.total / 10) this.currentInit = Number(this.system.characteristics.dex.initiative) + Number(((r.total / 10).toFixed(2)))
this.turn = turn this.turn = turn
} }
return this.currentInit return this.currentInit
@ -497,8 +536,13 @@ export class Hero6Actor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareCharacValues(charac) { prepareCharacValues(charac) {
charac.total = charac.value if (charac.label == "OCV" || charac.label == "OMCV" ) {
charac.roll = 9 + Math.round((charac.value) / 5) charac.total = charac.value
charac.roll = 11 + charac.value
} else {
charac.total = charac.value
charac.roll = 9 + Math.round((charac.value) / 5)
}
} }
prepareCharac() { prepareCharac() {
let characs = duplicate(this.system.characteristics) let characs = duplicate(this.system.characteristics)
@ -512,7 +556,7 @@ export class Hero6Actor extends Actor {
if (key == "spd") { if (key == "spd") {
ch.phasesString = this.getPhasesString() ch.phasesString = this.getPhasesString()
} }
if (key =="pre") { if (key == "pre") {
ch.presenceattack = duplicate(this.system.biodata.presenceattack) ch.presenceattack = duplicate(this.system.biodata.presenceattack)
} }
} }
@ -648,6 +692,9 @@ export class Hero6Actor extends Actor {
if (item.type == "skill") { if (item.type == "skill") {
this.prepareSkill(rollData.item) this.prepareSkill(rollData.item)
} }
if (item.type == "maneuver") {
this.prepareManeuver(rollData.item)
}
this.startRoll(rollData) this.startRoll(rollData)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -697,7 +744,28 @@ export class Hero6Actor extends Actor {
msg.setFlag("world", "rolldata", rollData) msg.setFlag("world", "rolldata", rollData)
console.log("Rolldata result", rollData) console.log("Rolldata result", rollData)
} }
/* -------------------------------------------- */
rollManeuver(maneuverId) {
let skill = this.items.get(maneuverId)
if (skill) {
if (skill.system.islore && skill.system.level == 0) {
ui.notifications.warn("You can't use Lore Skills with a SL of 0.")
return
}
skill = duplicate(skill)
Hero6Utility.updateSkill(skill)
let abilityKey = skill.system.ability
let rollData = this.getCommonRollData(abilityKey)
rollData.mode = "skill"
rollData.skill = skill
rollData.img = skill.img
if (rollData.target) {
ui.notifications.warn("You are targetting a token with a skill : please use a Weapon instead.")
return
}
this.startRoll(rollData)
}
}
/* -------------------------------------------- */ /* -------------------------------------------- */
rollSkill(skillId) { rollSkill(skillId) {
let skill = this.items.get(skillId) let skill = this.items.get(skillId)
@ -722,34 +790,54 @@ export class Hero6Actor extends Actor {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
rollWeapon(weaponId) { async rollWeapon(weaponId) {
let weapon = this.items.get(weaponId) let weapon = this.items.get(weaponId)
if (weapon) { if (weapon) {
weapon = duplicate(weapon) weapon = duplicate(weapon)
let skill = this.items.find(item => item.name.toLowerCase() == weapon.system.skill.toLowerCase()) let rollData = this.getCommonRollData()
if (skill) { rollData.weaponRoll = 11 + this.system.characteristics.ocv.value + (Number(weapon.system.ocv) || 0)
skill = duplicate(skill) rollData.mode = "weapon"
Hero6Utility.updateSkill(skill) rollData.weapon = weapon
let abilityKey = skill.system.ability rollData.img = weapon.img
let rollData = this.getCommonRollData(abilityKey) this.startRoll(rollData)
rollData.mode = "weapon" } else {
rollData.skill = skill ui.notifications.warn("Unable to find the weapon " + weapon.name)
rollData.weapon = weapon }
rollData.img = weapon.img }
if (!rollData.forceDisadvantage) { // This is an attack, check if disadvantaged /* -------------------------------------------- */
rollData.forceDisadvantage = this.isAttackDisadvantage() rollMentalManeuver(maneuverId) {
} let maneuver = this.items.get(maneuverId)
/*if (rollData.weapon.system.isranged && rollData.tokensDistance > Hero6Utility.getWeaponMaxRange(rollData.weapon) ) { if (maneuver) {
ui.notifications.warn(`Your target is out of range of your weapon (max: ${Hero6Utility.getWeaponMaxRange(rollData.weapon)} - current : ${rollData.tokensDistance})` ) maneuver = duplicate(maneuver)
return let rollData = this.getCommonRollData()
}*/ rollData.maneuverRoll = 11 + this.system.characteristics.omcv.value + (Number(maneuver.system.omcv) || 0)
this.startRoll(rollData) rollData.mode = "mentalmaneuver"
} else { rollData.maneuver = maneuver
ui.notifications.warn("Unable to find the relevant skill for weapon " + weapon.name) 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 + 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.img = power.img
this.startRoll(rollData)
} else {
ui.notifications.warn("Unable to find power " + power.name)
} }
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
async startRoll(rollData) { async startRoll(rollData) {
let rollDialog = await Hero6RollDialog.create(this, rollData) let rollDialog = await Hero6RollDialog.create(this, rollData)

View File

@ -77,19 +77,28 @@ export class Hero6Combat extends Combat {
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
forceHold(actor, isHold) { forceHold(actor, isHold) {
let updList = [] if (game.user.isGM) {
let c = this.combatants.find(c => c.actor._id == actor.id) let updList = []
let name = actor.name + ((isHold) ? " (H)" : "") let c = this.combatants.find(c => c.actor._id == actor.id)
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) }) let name = actor.name + ((isHold) ? " (H)" : "")
this.updateEmbeddedDocuments("Combatant", updList) console.log("ForceHold!!", c, actor)
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
this.updateEmbeddedDocuments("Combatant", updList)
} else {
game.socket.emit("system.fvtt-hero-system-6", { name: "msg_force_hold", data: { actorId: actor.id, isHold: isHold } });
}
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
forceAbort(actor, isAbort) { forceAbort(actor, isAbort) {
let updList = [] if (game.user.isGM) {
let c = this.combatants.find(c => c.actor._id == actor.id) let updList = []
let name = actor.name + ((isAbort) ? " (A)" : "") let c = this.combatants.find(c => c.actor._id == actor.id)
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) }) let name = actor.name + ((isAbort) ? " (A)" : "")
this.updateEmbeddedDocuments("Combatant", updList) updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
this.updateEmbeddedDocuments("Combatant", updList)
} else {
game.socket.emit("system.fvtt-hero-system-6", { name: "msg_force_abort", data: { actorId: actor.id, isAbort: isAbort } });
}
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -110,7 +119,7 @@ export class Hero6Combat extends Combat {
} }
if (isOnAbort) { if (isOnAbort) {
name = c.actor.name + " (A)" name = c.actor.name + " (A)"
if ( c.actor.incAbortActionCount() ) { if (c.actor.incAbortActionCount()) {
c.actor.disableAbortAction() c.actor.disableAbortAction()
} }
} }
@ -159,20 +168,70 @@ export class Hero6Combat extends Combat {
nextTurn() { nextTurn() {
let nbC = this.combatants.filter(c => c.initiative > 0).length let nbC = this.combatants.filter(c => c.initiative > 0).length
//console.log("Next turn called....", this.turn, nbC) //console.log("Next turn called....", this.turn, nbC)
if (this.turn < nbC-1) { if (this.turn < nbC - 1) {
super.nextTurn() super.nextTurn()
} else { } else {
this.nextRound() this.nextRound()
} }
} }
/* -------------------------------------------- */
async previousRound() {
let hasCombatants = false
let nextRound = this.round
let advanceTime = 0
let turn = this.turn === null ? null : 0; // Preserve the fact that it's no-one's turn currently.
let turnData = this.getFlag("world", "turnData")
//console.log("Next round called....", nextRound, turnData)
while (!hasCombatants) {
if (this.settings.skipDefeated && (turn !== null)) {
turn = this.turns.findIndex(t => !t.isDefeated);
if (turn === -1) {
ui.notifications.warn("COMBAT.NoneRemaining", { localize: true });
turn = 0;
}
}
advanceTime = -1 * (Math.max(this.turns.length - this.turn, 0) * CONFIG.time.turnTime);
advanceTime -= CONFIG.time.roundTime;
nextRound = nextRound -1
//console.log("Next round called....2", nextRound, turnData)
turnData = this.getFlag("world", "turnData")
if (!turnData) {
turnData = { turnNumber: 0, segmentNumber: 12 }
this.setFlag("world", "turnData", turnData)
}
turnData = duplicate(turnData)
turnData.segmentNumber -= 1
if (turnData.segmentNumber <= 0) {
turnData.segmentNumber = 12
turnData.turnNumber--
}
await this.setFlag("world", "turnData", turnData)
this.turnNumber = turnData.turnNumber;
this.segmentNumber = turnData.segmentNumber;
//console.log("Next round called....3", nextRound, turnData)
// Re-compute init of actors
hasCombatants = await this.rebuildInitiative()
//console.log("Going round....", nextRound, hasCombatants)
}
// Update the document, passing data through a hook first
const updateData = { round: nextRound, turn };
const updateOptions = { advanceTime, direction: -1 };
Hooks.callAll("combatRound", this, updateData, updateOptions);
console.log(this)
return this.update(updateData, updateOptions);
}
/* -------------------------------------------- */ /* -------------------------------------------- */
async nextRound() { async nextRound() {
let hasCombatants = false let hasCombatants = false
let nextRound = this.round let nextRound = this.round
let advanceTime = 0 let advanceTime = 0
let turn = this.turn === null ? null : 0; // Preserve the fact that it's no-one's turn currently. let turn = this.turn === null ? null : 0; // Preserve the fact that it's no-one's turn currently.
let turnData = this.getFlag("world", "hero6-turn-data") let turnData = this.getFlag("world", "turnData")
//console.log("Next round called....", nextRound, turnData) //console.log("Next round called....", nextRound, turnData)
while (!hasCombatants) { while (!hasCombatants) {
@ -187,18 +246,21 @@ export class Hero6Combat extends Combat {
advanceTime += CONFIG.time.roundTime; advanceTime += CONFIG.time.roundTime;
nextRound = nextRound + 1; nextRound = nextRound + 1;
//console.log("Next round called....2", nextRound, turnData) //console.log("Next round called....2", nextRound, turnData)
turnData = this.getFlag("world", "hero6-turn-data") turnData = this.getFlag("world", "turnData")
if (!turnData) { if (!turnData) {
turnData = { turnNumber: 0, segmentNumber: 12 } turnData = { turnNumber: 0, segmentNumber: 12 }
this.setFlag("world", "hero6-turn-data", turnData) this.setFlag("world", "turnData", turnData)
} }
turnData = duplicate(turnData) turnData = duplicate(turnData)
turnData.segmentNumber += 1 turnData.segmentNumber += 1
if (turnData.segmentNumber > 12) { if (turnData.segmentNumber > 12) {
turnData.segmentNumber = 1 turnData.segmentNumber = 1
turnData.turnNumber++ turnData.turnNumber++
ChatMessage.create({
content: "Complete Post-Segment 12 Recoveries."
})
} }
await this.setFlag("world", "hero6-turn-data", turnData) await this.setFlag("world", "turnData", turnData)
this.turnNumber = turnData.turnNumber; this.turnNumber = turnData.turnNumber;
this.segmentNumber = turnData.segmentNumber; this.segmentNumber = turnData.segmentNumber;
//console.log("Next round called....3", nextRound, turnData) //console.log("Next round called....3", nextRound, turnData)
@ -209,9 +271,10 @@ export class Hero6Combat extends Combat {
} }
// Update the document, passing data through a hook first // Update the document, passing data through a hook first
const updateData = { round: nextRound, turn: turn, segmentNumber: turnData.segmentNumber, turnNumber: turnData.turnNumber }; const updateData = { round: nextRound, turn };
const updateOptions = { advanceTime, direction: 1 }; const updateOptions = { advanceTime, direction: 1 };
Hooks.callAll("combatRound", this, updateData, updateOptions); Hooks.callAll("combatRound", this, updateData, updateOptions);
console.log(this)
return this.update(updateData, updateOptions); return this.update(updateData, updateOptions);
} }

View File

@ -10,7 +10,8 @@ export const Hero6_CONFIG = {
maneuverTypes: { maneuverTypes: {
"general": "General", "general": "General",
"offensive": "Offensive", "offensive": "Offensive",
"defensive": "Defensive" "defensive": "Defensive",
"mental": "Mental"
}, },
rollCharac : { rollCharac : {
"str": "Strength", "str": "Strength",
@ -29,6 +30,10 @@ export const Hero6_CONFIG = {
"combat": "Combat" , "combat": "Combat" ,
"custom": "Custom" "custom": "Custom"
}, },
attackTypes: {
"ocv": "OCV",
"omcv": "OMCV"
},
powerEquipmentType: { powerEquipmentType: {
"adjustment": "Adjustment", "adjustment": "Adjustment",
"mental": "Mental", "mental": "Mental",
@ -53,6 +58,5 @@ export const Hero6_CONFIG = {
"standard": "Standard", "standard": "Standard",
"normal": "Normal", "normal": "Normal",
"killing": "Killing", "killing": "Killing",
"countbody": "Killing (Count BODY)"
} }
} }

View File

@ -41,7 +41,7 @@ Hooks.once("init", async function () {
// Set an initiative formula for the system // Set an initiative formula for the system
CONFIG.Combat.initiative = { CONFIG.Combat.initiative = {
formula: "1d6", formula: "1d6",
decimals: 3 decimals: 2
}; };
/* ------------------------------- ------------- */ /* ------------------------------- ------------- */
@ -61,7 +61,7 @@ Hooks.once("init", async function () {
// Register sheet application classes // Register sheet application classes
Actors.unregisterSheet("core", ActorSheet); Actors.unregisterSheet("core", ActorSheet);
Actors.registerSheet("fvtt-hero-system-6", Hero6ActorSheet, { types: ["character"], makeDefault: true }); Actors.registerSheet("fvtt-hero-system-6", Hero6ActorSheet, { types: ["character"], makeDefault: true });
Actors.registerSheet("fvtt-hero-system-6", Hero6NPCSheet, { types: ["npc"], makeDefault: false }); Actors.registerSheet("fvtt-hero-system-6", Hero6ActorSheet, { types: ["minion"], makeDefault: false });
Items.unregisterSheet("core", ItemSheet); Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("fvtt-hero-system-6", Hero6ItemSheet, { makeDefault: true }); Items.registerSheet("fvtt-hero-system-6", Hero6ItemSheet, { makeDefault: true });

View File

@ -52,6 +52,9 @@ export class Hero6Utility {
} }
return false return false
}) })
Handlebars.registerHelper('fixNum', function (value) {
return Number(value) || 0
})
Handlebars.registerHelper('checkInit', function (value) { Handlebars.registerHelper('checkInit', function (value) {
let myValue = Number(value) || 0 let myValue = Number(value) || 0
return myValue > 0 return myValue > 0
@ -124,6 +127,10 @@ export class Hero6Utility {
const rollTables = await Hero6Utility.loadCompendium("fvtt-hero-system-6.rolltables") const rollTables = await Hero6Utility.loadCompendium("fvtt-hero-system-6.rolltables")
this.rollTables = rollTables.map(i => i.toObject()) this.rollTables = rollTables.map(i => i.toObject())
for (let actor of game.actors) {
actor.performMigration()
}
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -159,6 +166,7 @@ export class Hero6Utility {
'systems/fvtt-hero-system-6/templates/partials/partial-options-abilities.hbs', 'systems/fvtt-hero-system-6/templates/partials/partial-options-abilities.hbs',
'systems/fvtt-hero-system-6/templates/partials/partial-item-nav.hbs', 'systems/fvtt-hero-system-6/templates/partials/partial-item-nav.hbs',
'systems/fvtt-hero-system-6/templates/partials/partial-item-description.hbs', 'systems/fvtt-hero-system-6/templates/partials/partial-item-description.hbs',
'systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs',
'systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment.hbs', 'systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment.hbs',
'systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs', 'systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs',
'systems/fvtt-hero-system-6/templates/partials/partial-power-equipment-cost.hbs', 'systems/fvtt-hero-system-6/templates/partials/partial-power-equipment-cost.hbs',
@ -230,12 +238,21 @@ export class Hero6Utility {
/* -------------------------------------------- */ /* -------------------------------------------- */
static async onSocketMesssage(msg) { static async onSocketMesssage(msg) {
console.log("SOCKET MESSAGE", msg.name) console.log("SOCKET MESSAGE", msg.name, msg)
if (msg.name == "msg_update_roll") { if (msg.name == "msg_update_roll") {
this.updateRollData(msg.data) this.updateRollData(msg.data)
} }
if (msg.name == "msg_gm_process_attack_defense") { if (msg.name == "msg_force_hold") {
this.processSuccessResult(msg.data) if (game.user.isGM) {
let actor = game.actors.get(msg.data.actorId)
game.combat.forceHold(actor, msg.data.isHold)
}
}
if (msg.name == "msg_force_abort") {
if (game.user.isGM) {
let actor = game.actors.get(msg.data.actorId)
game.combat.forceAbort(actor, msg.data.isAbort)
}
} }
if (msg.name == "msg_gm_item_drop" && game.user.isGM) { if (msg.name == "msg_gm_item_drop" && game.user.isGM) {
let actor = game.actors.get(msg.data.actorId) let actor = game.actors.get(msg.data.actorId)
@ -329,6 +346,16 @@ export class Hero6Utility {
// ability/save/size => 0 // ability/save/size => 0
let diceFormula = "3d6" let diceFormula = "3d6"
let target = 10 let target = 10
if(rollData.weapon) {
target = rollData.weaponRoll
}
if(rollData.maneuver) {
target = rollData.maneuverRoll
}
if(rollData.power) {
target = rollData.powerRoll
}
if (rollData.charac) { if (rollData.charac) {
target = rollData.charac.roll target = rollData.charac.roll
} }
@ -342,7 +369,7 @@ export class Hero6Utility {
let myRoll = rollData.roll let myRoll = rollData.roll
if (!myRoll) { // New rolls only of no rerolls if (!myRoll) { // New rolls only of no rerolls
myRoll = new Roll(diceFormula).roll({ async: false }) myRoll = new Roll(diceFormula).roll({ async: false })
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode")) //await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
} }
rollData.roll = myRoll rollData.roll = myRoll

View File

@ -1 +1 @@
MANIFEST-000022 MANIFEST-000112

View File

@ -1,8 +1,8 @@
2023/08/03-22:32:11.523171 7f01523fc6c0 Recovering log #20 2023/08/26-05:35:25.658202 7f2deaffd6c0 Recovering log #110
2023/08/03-22:32:11.540084 7f01523fc6c0 Delete type=3 #18 2023/08/26-05:35:25.710452 7f2deaffd6c0 Delete type=3 #108
2023/08/03-22:32:11.540129 7f01523fc6c0 Delete type=0 #20 2023/08/26-05:35:25.710513 7f2deaffd6c0 Delete type=0 #110
2023/08/03-22:32:17.500527 7f0151bfb6c0 Level-0 table #25: started 2023/08/26-05:36:09.833813 7f2b69bff6c0 Level-0 table #115: started
2023/08/03-22:32:17.500588 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/26-05:36:09.833846 7f2b69bff6c0 Level-0 table #115: 0 bytes OK
2023/08/03-22:32:17.506820 7f0151bfb6c0 Delete type=0 #23 2023/08/26-05:36:09.840534 7f2b69bff6c0 Delete type=0 #113
2023/08/03-22:32:17.520955 7f0151bfb6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.847596 7f2b69bff6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
2023/08/03-22:32:17.521030 7f0151bfb6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.847688 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/03-22:31:33.868131 7f01533fe6c0 Recovering log #16 2023/08/26-04:58:19.953484 7f2debfff6c0 Recovering log #106
2023/08/03-22:31:33.979394 7f01533fe6c0 Delete type=3 #14 2023/08/26-04:58:20.012916 7f2debfff6c0 Delete type=3 #104
2023/08/03-22:31:33.979434 7f01533fe6c0 Delete type=0 #16 2023/08/26-04:58:20.013033 7f2debfff6c0 Delete type=0 #106
2023/08/03-22:31:52.457027 7f0151bfb6c0 Level-0 table #21: started 2023/08/26-05:13:26.081356 7f2b69bff6c0 Level-0 table #111: started
2023/08/03-22:31:52.457052 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/26-05:13:26.081421 7f2b69bff6c0 Level-0 table #111: 0 bytes OK
2023/08/03-22:31:52.463153 7f0151bfb6c0 Delete type=0 #19 2023/08/26-05:13:26.089187 7f2b69bff6c0 Delete type=0 #109
2023/08/03-22:31:52.482011 7f0151bfb6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.089328 7f2b69bff6c0 Manual compaction at level-0 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
2023/08/03-22:31:52.482068 7f0151bfb6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.089355 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.

BIN
packs/equipment/000099.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000022 MANIFEST-000114

View File

@ -1,7 +1,8 @@
2023/08/03-22:32:11.490520 7f0153bff6c0 Recovering log #20 2023/08/26-05:35:25.591750 7f2dea7fc6c0 Recovering log #112
2023/08/03-22:32:11.500170 7f0153bff6c0 Delete type=3 #18 2023/08/26-05:35:25.654891 7f2dea7fc6c0 Delete type=3 #110
2023/08/03-22:32:11.500230 7f0153bff6c0 Delete type=0 #20 2023/08/26-05:35:25.654982 7f2dea7fc6c0 Delete type=0 #112
2023/08/03-22:32:17.438731 7f0151bfb6c0 Level-0 table #25: started 2023/08/26-05:36:09.796628 7f2b69bff6c0 Level-0 table #117: started
2023/08/03-22:32:17.438765 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/26-05:36:09.796668 7f2b69bff6c0 Level-0 table #117: 0 bytes OK
2023/08/03-22:32:17.445239 7f0151bfb6c0 Delete type=0 #23 2023/08/26-05:36:09.803598 7f2b69bff6c0 Delete type=0 #115
2023/08/03-22:32:17.461466 7f0151bfb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.820108 7f2b69bff6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
2023/08/26-05:36:09.820164 7f2b69bff6c0 Manual compaction at level-1 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,8 @@
2023/08/03-22:31:33.672919 7f01533fe6c0 Recovering log #16 2023/08/26-04:58:19.893099 7f2deb7fe6c0 Recovering log #108
2023/08/03-22:31:33.764300 7f01533fe6c0 Delete type=3 #14 2023/08/26-04:58:19.950229 7f2deb7fe6c0 Delete type=3 #106
2023/08/03-22:31:33.764606 7f01533fe6c0 Delete type=0 #16 2023/08/26-04:58:19.950315 7f2deb7fe6c0 Delete type=0 #108
2023/08/03-22:31:52.363681 7f0151bfb6c0 Level-0 table #21: started 2023/08/26-05:13:26.059587 7f2b69bff6c0 Level-0 table #113: started
2023/08/03-22:31:52.363732 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/26-05:13:26.059618 7f2b69bff6c0 Level-0 table #113: 0 bytes OK
2023/08/03-22:31:52.374669 7f0151bfb6c0 Delete type=0 #19 2023/08/26-05:13:26.066099 7f2b69bff6c0 Delete type=0 #111
2023/08/03-22:31:52.411785 7f0151bfb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.081276 7f2b69bff6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
2023/08/26-05:13:26.089307 7f2b69bff6c0 Manual compaction at level-1 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000014 MANIFEST-000104

View File

@ -1,8 +1,8 @@
2023/08/03-22:32:11.526034 7f0152bfd6c0 Recovering log #12 2023/08/26-05:35:25.713305 7f2debfff6c0 Recovering log #102
2023/08/03-22:32:11.543863 7f0152bfd6c0 Delete type=3 #10 2023/08/26-05:35:25.813680 7f2debfff6c0 Delete type=3 #100
2023/08/03-22:32:11.543924 7f0152bfd6c0 Delete type=0 #12 2023/08/26-05:35:25.813733 7f2debfff6c0 Delete type=0 #102
2023/08/03-22:32:17.513990 7f0151bfb6c0 Level-0 table #17: started 2023/08/26-05:36:09.827049 7f2b69bff6c0 Level-0 table #107: started
2023/08/03-22:32:17.514015 7f0151bfb6c0 Level-0 table #17: 0 bytes OK 2023/08/26-05:36:09.827083 7f2b69bff6c0 Level-0 table #107: 0 bytes OK
2023/08/03-22:32:17.520642 7f0151bfb6c0 Delete type=0 #15 2023/08/26-05:36:09.833693 7f2b69bff6c0 Delete type=0 #105
2023/08/03-22:32:17.521009 7f0151bfb6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.847570 7f2b69bff6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
2023/08/03-22:32:17.521478 7f0151bfb6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.847666 7f2b69bff6c0 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/03-22:31:33.887886 7f0152bfd6c0 Recovering log #8 2023/08/26-04:58:20.016031 7f2dea7fc6c0 Recovering log #98
2023/08/03-22:31:33.994036 7f0152bfd6c0 Delete type=3 #6 2023/08/26-04:58:20.111013 7f2dea7fc6c0 Delete type=3 #96
2023/08/03-22:31:33.994083 7f0152bfd6c0 Delete type=0 #8 2023/08/26-04:58:20.111139 7f2dea7fc6c0 Delete type=0 #98
2023/08/03-22:31:52.449237 7f0151bfb6c0 Level-0 table #13: started 2023/08/26-05:13:26.089433 7f2b69bff6c0 Level-0 table #103: started
2023/08/03-22:31:52.449263 7f0151bfb6c0 Level-0 table #13: 0 bytes OK 2023/08/26-05:13:26.089798 7f2b69bff6c0 Level-0 table #103: 0 bytes OK
2023/08/03-22:31:52.456923 7f0151bfb6c0 Delete type=0 #11 2023/08/26-05:13:26.096668 7f2b69bff6c0 Delete type=0 #101
2023/08/03-22:31:52.481990 7f0151bfb6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.115684 7f2b69bff6c0 Manual compaction at level-0 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
2023/08/03-22:31:52.482059 7f0151bfb6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.115763 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-000022 MANIFEST-000112

View File

@ -1,8 +1,8 @@
2023/08/03-22:32:11.542387 7f01523fc6c0 Recovering log #20 2023/08/26-05:35:25.714189 7f2deaffd6c0 Recovering log #110
2023/08/03-22:32:11.560297 7f01523fc6c0 Delete type=3 #18 2023/08/26-05:35:25.838791 7f2deaffd6c0 Delete type=3 #108
2023/08/03-22:32:11.560512 7f01523fc6c0 Delete type=0 #20 2023/08/26-05:35:25.838847 7f2deaffd6c0 Delete type=0 #110
2023/08/03-22:32:17.493642 7f0151bfb6c0 Level-0 table #25: started 2023/08/26-05:36:09.840742 7f2b69bff6c0 Level-0 table #115: started
2023/08/03-22:32:17.493688 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/26-05:36:09.840802 7f2b69bff6c0 Level-0 table #115: 0 bytes OK
2023/08/03-22:32:17.500316 7f0151bfb6c0 Delete type=0 #23 2023/08/26-05:36:09.847326 7f2b69bff6c0 Delete type=0 #113
2023/08/03-22:32:17.520920 7f0151bfb6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.847619 7f2b69bff6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
2023/08/03-22:32:17.521020 7f0151bfb6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.847709 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/03-22:31:33.981151 7f01533fe6c0 Recovering log #16 2023/08/26-04:58:20.016520 7f2debfff6c0 Recovering log #106
2023/08/03-22:31:34.061585 7f01533fe6c0 Delete type=3 #14 2023/08/26-04:58:20.129984 7f2debfff6c0 Delete type=3 #104
2023/08/03-22:31:34.061736 7f01533fe6c0 Delete type=0 #16 2023/08/26-04:58:20.130077 7f2debfff6c0 Delete type=0 #106
2023/08/03-22:31:52.463277 7f0151bfb6c0 Level-0 table #21: started 2023/08/26-05:13:26.096833 7f2b69bff6c0 Level-0 table #111: started
2023/08/03-22:31:52.463307 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/26-05:13:26.096889 7f2b69bff6c0 Level-0 table #111: 0 bytes OK
2023/08/03-22:31:52.470250 7f0151bfb6c0 Delete type=0 #19 2023/08/26-05:13:26.105671 7f2b69bff6c0 Delete type=0 #109
2023/08/03-22:31:52.482031 7f0151bfb6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.115702 7f2b69bff6c0 Manual compaction at level-0 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
2023/08/03-22:31:52.482410 7f0151bfb6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.115741 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-000112 Normal file

Binary file not shown.

Binary file not shown.

BIN
packs/powers/000062.ldb Normal file

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000022 MANIFEST-000113

View File

@ -1,8 +1,8 @@
2023/08/03-22:32:11.504542 7f01523fc6c0 Recovering log #20 2023/08/26-05:35:25.658202 7f2deb7fe6c0 Recovering log #111
2023/08/03-22:32:11.521105 7f01523fc6c0 Delete type=3 #18 2023/08/26-05:35:25.710453 7f2deb7fe6c0 Delete type=3 #109
2023/08/03-22:32:11.521156 7f01523fc6c0 Delete type=0 #20 2023/08/26-05:35:25.710530 7f2deb7fe6c0 Delete type=0 #111
2023/08/03-22:32:17.471567 7f0151bfb6c0 Level-0 table #25: started 2023/08/26-05:36:09.820280 7f2b69bff6c0 Level-0 table #116: started
2023/08/03-22:32:17.471602 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/26-05:36:09.820311 7f2b69bff6c0 Level-0 table #116: 0 bytes OK
2023/08/03-22:32:17.480333 7f0151bfb6c0 Delete type=0 #23 2023/08/26-05:36:09.826570 7f2b69bff6c0 Delete type=0 #114
2023/08/03-22:32:17.493507 7f0151bfb6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.847536 7f2b69bff6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
2023/08/03-22:32:17.493543 7f0151bfb6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.847643 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/03-22:31:33.790889 7f0152bfd6c0 Recovering log #16 2023/08/26-04:58:19.953484 7f2dea7fc6c0 Recovering log #107
2023/08/03-22:31:33.884940 7f0152bfd6c0 Delete type=3 #14 2023/08/26-04:58:20.012935 7f2dea7fc6c0 Delete type=3 #105
2023/08/03-22:31:33.885064 7f0152bfd6c0 Delete type=0 #16 2023/08/26-04:58:20.013216 7f2dea7fc6c0 Delete type=0 #107
2023/08/03-22:31:52.438338 7f0151bfb6c0 Level-0 table #21: started 2023/08/26-05:13:26.072863 7f2b69bff6c0 Level-0 table #112: started
2023/08/03-22:31:52.438374 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/26-05:13:26.072888 7f2b69bff6c0 Level-0 table #112: 0 bytes OK
2023/08/03-22:31:52.448881 7f0151bfb6c0 Delete type=0 #19 2023/08/26-05:13:26.080939 7f2b69bff6c0 Delete type=0 #110
2023/08/03-22:31:52.449118 7f0151bfb6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.089296 7f2b69bff6c0 Manual compaction at level-0 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
2023/08/03-22:31:52.449158 7f0151bfb6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.089347 7f2b69bff6c0 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-000022 MANIFEST-000112

View File

@ -1,8 +1,8 @@
2023/08/03-22:32:11.504608 7f0152bfd6c0 Recovering log #20 2023/08/26-05:35:25.591750 7f2deaffd6c0 Recovering log #110
2023/08/03-22:32:11.524096 7f0152bfd6c0 Delete type=3 #18 2023/08/26-05:35:25.654890 7f2deaffd6c0 Delete type=3 #108
2023/08/03-22:32:11.524332 7f0152bfd6c0 Delete type=0 #20 2023/08/26-05:35:25.654974 7f2deaffd6c0 Delete type=0 #110
2023/08/03-22:32:17.487194 7f0151bfb6c0 Level-0 table #25: started 2023/08/26-05:36:09.813203 7f2b69bff6c0 Level-0 table #115: started
2023/08/03-22:32:17.487218 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/26-05:36:09.813236 7f2b69bff6c0 Level-0 table #115: 0 bytes OK
2023/08/03-22:32:17.493333 7f0151bfb6c0 Delete type=0 #23 2023/08/26-05:36:09.819942 7f2b69bff6c0 Delete type=0 #113
2023/08/03-22:32:17.493535 7f0151bfb6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.820154 7f2b69bff6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
2023/08/03-22:32:17.493560 7f0151bfb6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.820177 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/03-22:31:33.766904 7f01533fe6c0 Recovering log #16 2023/08/26-04:58:19.893100 7f2deaffd6c0 Recovering log #106
2023/08/03-22:31:33.865983 7f01533fe6c0 Delete type=3 #14 2023/08/26-04:58:19.950231 7f2deaffd6c0 Delete type=3 #104
2023/08/03-22:31:33.866041 7f01533fe6c0 Delete type=0 #16 2023/08/26-04:58:19.950317 7f2deaffd6c0 Delete type=0 #106
2023/08/03-22:31:52.424062 7f0151bfb6c0 Level-0 table #21: started 2023/08/26-05:13:26.066187 7f2b69bff6c0 Level-0 table #111: started
2023/08/03-22:31:52.424265 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/26-05:13:26.066210 7f2b69bff6c0 Level-0 table #111: 0 bytes OK
2023/08/03-22:31:52.430673 7f0151bfb6c0 Delete type=0 #19 2023/08/26-05:13:26.072734 7f2b69bff6c0 Delete type=0 #109
2023/08/03-22:31:52.449080 7f0151bfb6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.081328 7f2b69bff6c0 Manual compaction at level-0 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
2023/08/03-22:31:52.449141 7f0151bfb6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.089318 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-000022 MANIFEST-000112

View File

@ -1,8 +1,8 @@
2023/08/03-22:32:11.546170 7f0152bfd6c0 Recovering log #20 2023/08/26-05:35:25.815813 7f2deb7fe6c0 Recovering log #110
2023/08/03-22:32:11.563632 7f0152bfd6c0 Delete type=3 #18 2023/08/26-05:35:25.893020 7f2deb7fe6c0 Delete type=3 #108
2023/08/03-22:32:11.563697 7f0152bfd6c0 Delete type=0 #20 2023/08/26-05:35:25.893112 7f2deb7fe6c0 Delete type=0 #110
2023/08/03-22:32:17.506983 7f0151bfb6c0 Level-0 table #25: started 2023/08/26-05:36:09.847777 7f2b69bff6c0 Level-0 table #115: started
2023/08/03-22:32:17.507022 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/26-05:36:09.847839 7f2b69bff6c0 Level-0 table #115: 0 bytes OK
2023/08/03-22:32:17.513835 7f0151bfb6c0 Delete type=0 #23 2023/08/26-05:36:09.855108 7f2b69bff6c0 Delete type=0 #113
2023/08/03-22:32:17.520991 7f0151bfb6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.855336 7f2b69bff6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
2023/08/03-22:32:17.521446 7f0151bfb6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end) 2023/08/26-05:36:09.855380 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/03-22:31:33.996672 7f0152bfd6c0 Recovering log #16 2023/08/26-04:58:20.113830 7f2deb7fe6c0 Recovering log #106
2023/08/03-22:31:34.114315 7f0152bfd6c0 Delete type=3 #14 2023/08/26-04:58:20.187880 7f2deb7fe6c0 Delete type=3 #104
2023/08/03-22:31:34.114356 7f0152bfd6c0 Delete type=0 #16 2023/08/26-04:58:20.187957 7f2deb7fe6c0 Delete type=0 #106
2023/08/03-22:31:52.470365 7f0151bfb6c0 Level-0 table #21: started 2023/08/26-05:13:26.105823 7f2b69bff6c0 Level-0 table #111: started
2023/08/03-22:31:52.470387 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/26-05:13:26.105848 7f2b69bff6c0 Level-0 table #111: 0 bytes OK
2023/08/03-22:31:52.481758 7f0151bfb6c0 Delete type=0 #19 2023/08/26-05:13:26.115575 7f2b69bff6c0 Delete type=0 #109
2023/08/03-22:31:52.482045 7f0151bfb6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.115715 7f2b69bff6c0 Manual compaction at level-0 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
2023/08/03-22:31:52.482076 7f0151bfb6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end) 2023/08/26-05:13:26.115753 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

@ -1 +1 @@
MANIFEST-000022 MANIFEST-000086

View File

@ -1,7 +1,7 @@
2023/08/03-22:32:11.490520 7f01523fc6c0 Recovering log #20 2023/08/24-15:57:43.392826 7fab4affd6c0 Recovering log #84
2023/08/03-22:32:11.500170 7f01523fc6c0 Delete type=3 #18 2023/08/24-15:57:43.403060 7fab4affd6c0 Delete type=3 #82
2023/08/03-22:32:11.500333 7f01523fc6c0 Delete type=0 #20 2023/08/24-15:57:43.403157 7fab4affd6c0 Delete type=0 #84
2023/08/03-22:32:17.480474 7f0151bfb6c0 Level-0 table #25: started 2023/08/24-15:59:11.995583 7fab497fa6c0 Level-0 table #89: started
2023/08/03-22:32:17.480502 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/24-15:59:11.995614 7fab497fa6c0 Level-0 table #89: 0 bytes OK
2023/08/03-22:32:17.487051 7f0151bfb6c0 Delete type=0 #23 2023/08/24-15:59:12.004480 7fab497fa6c0 Delete type=0 #87
2023/08/03-22:32:17.493518 7f0151bfb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2023/08/24-15:59:12.025495 7fab497fa6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2023/08/03-22:31:33.673016 7f0152bfd6c0 Recovering log #16 2023/08/24-15:09:37.452353 7fab4b7fe6c0 Recovering log #80
2023/08/03-22:31:33.788078 7f0152bfd6c0 Delete type=3 #14 2023/08/24-15:09:37.462595 7fab4b7fe6c0 Delete type=3 #78
2023/08/03-22:31:33.788135 7f0152bfd6c0 Delete type=0 #16 2023/08/24-15:09:37.462673 7fab4b7fe6c0 Delete type=0 #80
2023/08/03-22:31:52.430865 7f0151bfb6c0 Level-0 table #21: started 2023/08/24-15:56:20.976153 7fab497fa6c0 Level-0 table #85: started
2023/08/03-22:31:52.430915 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/24-15:56:20.976179 7fab497fa6c0 Level-0 table #85: 0 bytes OK
2023/08/03-22:31:52.438188 7f0151bfb6c0 Delete type=0 #19 2023/08/24-15:56:20.984268 7fab497fa6c0 Delete type=0 #83
2023/08/03-22:31:52.449100 7f0151bfb6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) 2023/08/24-15:56:20.984458 7fab497fa6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)

Binary file not shown.

Binary file not shown.

View File

@ -74,7 +74,7 @@
color: rgba(224, 208, 197, 0.9); color: rgba(224, 208, 197, 0.9);
} }
.dialog-content, .dialog-buttons, .form-fields { .dialog-content, .dialog-buttons, .form-fields {
color: rgba(224, 208, 197, 0.9); color: rgba(4, 44, 44, 0.98);
} }
.dialog-buttons { .dialog-buttons {
color: rgba(224, 208, 197, 0.9); color: rgba(224, 208, 197, 0.9);
@ -649,6 +649,11 @@ ul, li {
align-content: center; align-content: center;
} }
.content-center {
align-content: center;
text-align: center;
}
.attribut-value, .attribut-value,
.carac-value { .carac-value {
flex-grow: 0; flex-grow: 0;
@ -1147,8 +1152,8 @@ ul, li {
} }
#logo { #logo {
content : url(../images/ui/crucible_game_logo.png); content : url(../images/ui/logo_hex_yellow_01.webp);
width: 100px; width: 60px;
height: 60px; height: 60px;
} }
@ -1360,6 +1365,7 @@ Focus FOC: #ff0084
flex-grow:1; flex-grow:1;
max-width: 8rem; max-width: 8rem;
min-width: 8rem; min-width: 8rem;
text-align: start;
} }
.item-field-text-long { .item-field-text-long {
flex-grow:1; flex-grow:1;
@ -1410,7 +1416,12 @@ Focus FOC: #ff0084
} }
.item-controls-fixed { .item-controls-fixed {
min-width:2rem; min-width:2rem;
max-width: 2rem; /*max-width: 2rem;*/
}
.item-controls-fixed-small {
min-width:1rem;
font-size: 0.8rem;
/*max-width: 2rem;*/
} }
.biodata-portrait { .biodata-portrait {
min-height: 512px; min-height: 512px;
@ -1425,4 +1436,11 @@ Focus FOC: #ff0084
} }
.margin-left-8 { .margin-left-8 {
margin-left: 8px; margin-left: 8px;
} }
.maneuver-is-stock {
display: none;
visibility: hidden;
}
.compendium .directory-list .directory-item .folder-header h3 {
color:#000
}

View File

@ -5,7 +5,7 @@
"flags": {} "flags": {}
} }
], ],
"description": "Hero System v6 for FoundryVTT (Official)", "description": "Hero System v6E for FoundryVTT (Official)",
"esmodules": [ "esmodules": [
"modules/hero6-main.js" "modules/hero6-main.js"
], ],
@ -30,15 +30,6 @@
"private": false, "private": false,
"flags": {} "flags": {}
}, },
{
"type": "Item",
"label": "Weapons",
"name": "weapons",
"path": "packs/weapons.db",
"system": "fvtt-hero-system-6",
"private": false,
"flags": {}
},
{ {
"type": "Item", "type": "Item",
"label": "Skills", "label": "Skills",
@ -100,15 +91,15 @@
"styles": [ "styles": [
"styles/simple.css" "styles/simple.css"
], ],
"version": "11.0.0", "version": "11.0.15",
"compatibility": { "compatibility": {
"minimum": "10", "minimum": "11",
"verified": "11" "verified": "11"
}, },
"title": "Hero System v6 for FoundrtVTT (Official)", "title": "Hero System v6 for FoundrtVTT (Official)",
"manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6/raw/branch/main/system.json", "manifest": "https://www.uberwald.me/gitea/public/fvtt-hero-system-6/raw/branch/master/system.json",
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6/archive/fvtt-hero-system-6-v11.0.0.zip", "download": "https://www.uberwald.me/gitea/public/fvtt-hero-system-6/archive/fvtt-hero-system-6-v11.0.15.zip",
"url": "https://www.uberwald.me/gitea/uberwald/", "url": "https://www.uberwald.me/public/uberwald/",
"background": "systems/fvtt-hero-system-6/images/ui/hero_foundry_cover.webp", "background": "systems/fvtt-hero-system-6/images/ui/hero_foundry_cover.webp",
"id": "fvtt-hero-system-6" "id": "fvtt-hero-system-6"
} }

View File

@ -1,7 +1,8 @@
{ {
"Actor": { "Actor": {
"types": [ "types": [
"character" "character",
"minion"
], ],
"templates": { "templates": {
"biodata": { "biodata": {
@ -72,7 +73,7 @@
"category": "main", "category": "main",
"value": 10, "value": 10,
"base": 10, "base": 10,
"perceptionroll": 10 "perceptionroll": 11
}, },
"ego": { "ego": {
"label": "EGO", "label": "EGO",
@ -90,7 +91,7 @@
}, },
"ocv": { "ocv": {
"label": "OCV", "label": "OCV",
"hasroll": false, "hasroll": true,
"base": 3, "base": 3,
"autoMod": "0", "autoMod": "0",
"userMod": "0", "userMod": "0",
@ -108,7 +109,7 @@
}, },
"omcv": { "omcv": {
"label": "OMCV", "label": "OMCV",
"hasroll": false, "hasroll": true,
"base": 3, "base": 3,
"autoMod": "0", "autoMod": "0",
"userMod": "0", "userMod": "0",
@ -205,6 +206,7 @@
"ismovement": true, "ismovement": true,
"hasroll": false, "hasroll": false,
"value": 12, "value": 12,
"ncvalue": 24,
"base": 12 "base": 12
}, },
"swimming": { "swimming": {
@ -212,6 +214,7 @@
"ismovement": true, "ismovement": true,
"hasroll": false, "hasroll": false,
"value": 4, "value": 4,
"ncvalue": 8,
"base": 4 "base": 4
}, },
"leaping": { "leaping": {
@ -219,6 +222,7 @@
"ismovement": true, "ismovement": true,
"hasroll": false, "hasroll": false,
"value": 4, "value": 4,
"ncvalue": 8,
"base": 4, "base": 4,
"leaping_horizontal_base": 0, "leaping_horizontal_base": 0,
"leaping_horizontal_total": 0, "leaping_horizontal_total": 0,
@ -231,25 +235,31 @@
"movements": { "movements": {
"fly": { "fly": {
"label": "Fly", "label": "Fly",
"value": 0 "value": 0,
"ncvalue": 0
}, },
"teleport": { "teleport": {
"label": "Teleport", "label": "Teleport",
"value": 0 "value": 0,
"ncvalue": 0
}, },
"tunnel": { "tunnel": {
"label": "Tunnel", "label": "Tunnel",
"value": 0 "value": 0,
"ncvalue": 0
}, },
"move1": { "move1": {
"label": "N/A", "label": "N/A",
"iseditable": true, "iseditable": true,
"value": 0 "value": 0,
"ncvalue": 0
}, },
"move2": { "move2": {
"label": "N/A", "label": "N/A",
"iseditable": true, "iseditable": true,
"value": 0 "value": 0,
"ncvalue": 0
} }
} }
}, },
@ -300,6 +310,15 @@
"movements" "movements"
], ],
"subactors": [] "subactors": []
},
"minion": {
"templates": [
"biodata",
"characteristics",
"defenses",
"movements"
],
"subactors": []
} }
}, },
"Item": { "Item": {
@ -338,11 +357,14 @@
"damage": "", "damage": "",
"endurance": 0, "endurance": 0,
"hasroll": false, "hasroll": false,
"attackvalue": "ocv",
"roll": 0, "roll": 0,
"computebody": false, "computebody": false,
"haseffectroll": false, "haseffectroll": false,
"effectroll": "standard", "effectroll": "standard",
"effectrollformula": "", "effectrollformula": "",
"hascharges": false,
"nbcharges": 0,
"items": {} "items": {}
} }
}, },
@ -354,6 +376,8 @@
"pha": "", "pha": "",
"ocv": "", "ocv": "",
"dcv" : "", "dcv" : "",
"omcv": "",
"dmcv" : "",
"isstock": false, "isstock": false,
"active": false "active": false
}, },
@ -395,7 +419,19 @@
"subtype": "equipment", "subtype": "equipment",
"value": 0, "value": 0,
"weight": 0, "weight": 0,
"moneycost": 0 "moneycost": 0,
"ocv": 0,
"omcv": 0,
"dmcv": 0,
"rmod": 0,
"pd": 0,
"ed": 0,
"rpd": 0,
"red": 0,
"mentaldefense": 0,
"powerdefense": 0,
"flashdefense": 0,
"otherdefense": 0
}, },
"attack": { "attack": {
"templates": [ "templates": [

View File

@ -4,68 +4,74 @@
<header class="sheet-header"> <header class="sheet-header">
<div class="header-fields"> <div class="header-fields">
<div class="flexrow"> <div class="flexrow">
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" /> <img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
<div class="fixed-separator"> <div class="fixed-separator">
&nbsp; &nbsp;
</div> </div>
<div class="flexcol"> <div class="flexcol">
<h1 class="charname "><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1> <h1 class="charname "><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
<div class="flexrow"> <div class="flexrow">
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="item flexrow"> <li class="item flexrow">
<label class="item-field-label-medium">Alternate IDs</label> <label class="item-field-label-medium">Alternate IDs</label>
<input type="text" class="item-field-label-long4" name="system.biodata.alternateids" value="{{system.biodata.origin}}" <input type="text" class="item-field-label-long4" name="system.biodata.alternateids"
data-dtype="String" /> value="{{system.biodata.origin}}" data-dtype="String" />
</li> </li>
</ul> </ul>
</div> </div>
<div class="grid grid-2col"> <div class="grid grid-2col">
<div> <div>
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="flexrow item"> <li class="flexrow item">
<label class="item-field-label-medium">Campaign</label> <label class="item-field-label-medium">Campaign</label>
<input type="text" class="item-field-label-long3" name="system.biodata.campaign" value="{{system.biodata.campaign}}" data-dtype="String" /> <input type="text" class="item-field-label-long3" name="system.biodata.campaign"
</li> value="{{system.biodata.campaign}}" data-dtype="String" />
<li class="flexrow item"> </li>
<label class="item-field-label-medium">Player</label> <li class="flexrow item">
<input type="text" class="item-field-label-long3" name="system.biodata.player" value="{{system.biodata.player}}" <label class="item-field-label-medium">Player</label>
data-dtype="String" /> <input type="text" class="item-field-label-long3" name="system.biodata.player"
</li> value="{{system.biodata.player}}" data-dtype="String" />
<li class="flexrow item"> </li>
<label class="item-field-label-medium">GM</label> <li class="flexrow item">
<input type="text" class="item-field-label-long3" name="system.biodata.gm" value="{{system.biodata.gm}}" <label class="item-field-label-medium">GM</label>
data-dtype="String" /> <input type="text" class="item-field-label-long3" name="system.biodata.gm"
</li> value="{{system.biodata.gm}}" data-dtype="String" />
<li class="item flexrow"> </li>
<label class="item-field-label-medium">Hair</label> <li class="item flexrow">
<input type="text" class="item-field-label-long3" name="system.biodata.hair" value="{{system.biodata.hair}}" data-dtype="String" /> <label class="item-field-label-medium">Hair</label>
</li> <input type="text" class="item-field-label-long3" name="system.biodata.hair"
</ul> value="{{system.biodata.hair}}" data-dtype="String" />
</li>
</ul>
</div> </div>
<div> <div>
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="flexrow item"> <li class="flexrow item">
<label class="item-field-label-medium">Gender</label> <label class="item-field-label-medium">Gender</label>
<input type="text" class="item-field-label-medium" name="system.biodata.gender" value="{{system.biodata.gender}}" data-dtype="String" /> <input type="text" class="item-field-label-medium" name="system.biodata.gender"
</li> value="{{system.biodata.gender}}" data-dtype="String" />
<li class="item flexrow"> </li>
<label class="item-field-label-medium">Height</label> <li class="item flexrow">
<input type="text" class="item-field-label-medium" name="system.biodata.height" value="{{system.biodata.height}}" data-dtype="String" /> <label class="item-field-label-medium">Height</label>
</li> <input type="text" class="item-field-label-medium" name="system.biodata.height"
<li class="item flexrow"> value="{{system.biodata.height}}" data-dtype="String" />
<label class="item-field-label-medium">Mass</label> </li>
<input type="text" class="item-field-label-medium" name="system.biodata.mass" value="{{system.biodata.mass}}" data-dtype="String" /> <li class="item flexrow">
</li> <label class="item-field-label-medium">Mass</label>
<li class="item flexrow"> <input type="text" class="item-field-label-medium" name="system.biodata.mass"
<label class="item-field-label-medium">Eyes</label> value="{{system.biodata.mass}}" data-dtype="String" />
<input type="text" class="item-field-label-medium" name="system.biodata.eyes" value="{{system.biodata.eyes}}" data-dtype="String" /> </li>
</li> <li class="item flexrow">
</ul> <label class="item-field-label-medium">Eyes</label>
<input type="text" class="item-field-label-medium" name="system.biodata.eyes"
value="{{system.biodata.eyes}}" data-dtype="String" />
</li>
</ul>
</div> </div>
</div> </div>
@ -73,19 +79,23 @@
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="item flexrow"> <li class="item flexrow">
<label class="item-field-label-medium">Points</label> <label class="item-field-label-medium">Points</label>
<input type="text" class="item-field-label-short" name="system.biodata.points" value="{{system.biodata.origin}}" data-dtype="Number" /> <input type="text" class="item-field-label-short" name="system.biodata.points"
value="{{system.biodata.origin}}" data-dtype="Number" />
<label class="">&nbsp;</label> <label class="">&nbsp;</label>
<label class="item-field-label-medium">Complications</label> <label class="item-field-label-medium">Complications</label>
<input type="text" class="item-field-label-short" name="system.biodata.complications" value="{{system.biodata.complications}}" data-dtype="Number" /> <input type="text" class="item-field-label-short" name="system.biodata.complications"
value="{{system.biodata.complications}}" data-dtype="Number" />
<label class="">&nbsp;</label> <label class="">&nbsp;</label>
<label class="item-field-label-medium">XP Earned</label> <label class="item-field-label-medium">XP Earned</label>
<input type="text" class="item-field-label-short" name="system.biodata.xpearned" value="{{system.biodata.xpearned}}" data-dtype="Number" /> <input type="text" class="item-field-label-short" name="system.biodata.xpearned"
value="{{system.biodata.xpearned}}" data-dtype="Number" />
<label class="">&nbsp;</label> <label class="">&nbsp;</label>
<label class="item-field-label-medium">XP Spent</label> <label class="item-field-label-medium">XP Spent</label>
<input type="text" class="item-field-label-short" name="system.biodata.xpspent" value="{{system.biodata.xpspent}}" data-dtype="Number" /> <input type="text" class="item-field-label-short" name="system.biodata.xpspent"
value="{{system.biodata.xpspent}}" data-dtype="Number" />
<label class="">&nbsp;</label> <label class="">&nbsp;</label>
</li> </li>
</ul> </ul>
@ -117,80 +127,95 @@
{{!-- Combat Tab --}} {{!-- Combat Tab --}}
<div class="tab combat" data-group="primary" data-tab="combat"> <div class="tab combat" data-group="primary" data-tab="combat">
<div class="grid grid2col"> <div class="grid grid2col">
<div> <div>
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="item"> <li class="item">
<label class="item-field-label-medium">STR Dice</label> <label class="item-field-label-medium">STR Dice</label>
<a class="roll-lift-dice"><i class="fas fa-dice"></i>{{characteristics.str.strdice}}</a> <a class="roll-lift-dice"><i class="fas fa-dice"></i>{{characteristics.str.strdice}}</a>
<label class="item-field-label-short">&nbsp;</label> <label class="item-field-label-short">&nbsp;</label>
<label class="item-field-label-medium">Lift</label> <label class="item-field-label-medium">Lift</label>
<input type="text" class="item-field-label-short update-field" disabled data-field-name="system.characteristics.str.lift" value="{{characteristics.str.lift}}" data-dtype="String" /> <input type="text" class="item-field-label-short update-field" disabled
data-field-name="system.characteristics.str.lift" value="{{characteristics.str.lift}}"
data-dtype="String" />
<label class="item-field-label-short">&nbsp;</label> <label class="item-field-label-short">&nbsp;</label>
<label class="item-field-label-medium">STR END</label> <label class="item-field-label-medium">STR END</label>
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.str.strend" disabled value="{{characteristics.str.strend}}" data-dtype="Number" /> <input type="text" class="item-field-label-short update-field"
data-field-name="system.characteristics.str.strend" disabled value="{{characteristics.str.strend}}"
data-dtype="Number" />
</li> </li>
</ul> </ul>
{{#each maneuvers as |mlist key|}} {{#each maneuvers as |mlist key|}}
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-field-label-long-img"> <span class="item-field-label-long-img">
<label class="">{{upperFirst key}} Maneuver</label> <label class="">{{upperFirst key}} Maneuver</label>
</span> </span>
<span class="item-field-label-very-short"> <span class="item-field-label-very-short">
<label class="short-label">PHA</label> <label class="short-label">PHA</label>
</span> </span>
<span class="item-field-label-very-short"> <span class="item-field-label-very-short">
<label class="short-label">OCV</label> <label class="short-label">OCV</label>
</span> </span>
<span class="item-field-label-very-short"> <span class="item-field-label-very-short">
<label class="short-label">DCV</label> <label class="short-label">DCV</label>
</span> </span>
<span class="item-field-text-long"> <span class="item-field-text-long">
<label class="short-label">Effects</label> <label class="short-label">Effects</label>
</span> </span>
</li> </li>
{{#each mlist as |maneuver key|}} {{#each mlist as |maneuver key|}}
<li class="item flexrow list-item list-item-shadow" data-item-id="{{maneuver._id}}"> <li class="item flexrow list-item list-item-shadow " data-item-id="{{maneuver._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{maneuver.img}}" /></a> src="{{maneuver.img}}" /></a>
<span class="item-field-label-long">{{maneuver.name}}</span> <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 content-center">{{maneuver.system.pha}}</span>
<span class="item-field-label-very-short">{{maneuver.system.ocv}}</span> <span class="item-field-label-very-short content-center">{{maneuver.system.ocv}}</span>
<span class="item-field-label-very-short">{{maneuver.system.dcv}}</span> <span class="item-field-label-very-short content-center">{{maneuver.system.dcv}}</span>
<span class="item-field-text-long">{{maneuver.system.effects}}</span> <span class="item-field-text-long">{{maneuver.system.effects}}
{{#if maneuver.system.haseffectroll}}
<a class="roll-direct" data-roll-source="Maneuver {{maneuver.name}}"
data-roll-formula="{{maneuver.system.effectrollformula}}">
<i class="fas fa-dice"></i>{{maneuver.system.effectrollformula}}
</a>
{{/if}}
</span>
<span class="">&nbsp;</span> </li>
<div class="item-controls item-controls-fixed"> {{/each}}
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> </ul>
</div>
</li>
{{/each}}
</ul>
{{/each}} {{/each}}
</div> </div>
<div> <div>
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="flexrow item"> <li class="flexrow item">
<label class="item-packed">Initiative</label> <label class="item-packed">Initiative</label>
<input type="text" class="margin-left-4item-packed item-field-label-very-short update-field" data-field-name="system.characteristics.dex.initiative" value="{{characteristics.dex.initiative}}" data-dtype="Number" /> <input type="text" class="margin-left-4item-packed item-field-label-very-short update-field"
data-field-name="system.characteristics.dex.initiative" value="{{characteristics.dex.initiative}}"
data-dtype="Number" />
<label class="items-title-text item-packed margin-left-8">SPD</label> <label class="items-title-text item-packed margin-left-8">SPD</label>
<input type="text" class="item-field-label-very-short margin-left-4 update-field item-packed" data-field-name="system.characteristics.spd.value" value="{{characteristics.spd.value}}" data-dtype="Number" /> <input type="text" class="item-field-label-very-short margin-left-4 update-field item-packed"
data-field-name="system.characteristics.spd.value" value="{{characteristics.spd.value}}"
<button class="chat-card-small-button item-field-label-short margin-left-8 hold-action item-packed">{{#if isHold}}Unhold{{else}}Hold{{/if}}</button> data-dtype="Number" />
<button class="chat-card-small-button item-field-label-short margin-left-4 abort-action item-packed">{{#if isAbort}}Unabort{{else}}Abort{{/if}}</button>
<button class="chat-card-small-button item-field-label-short margin-left-8 hold-action item-packed">{{#if
isHold}}Unhold{{else}}Hold{{/if}}</button>
<button class="chat-card-small-button item-field-label-short margin-left-4 abort-action item-packed">{{#if
isAbort}}Unabort{{else}}Abort{{/if}}</button>
<label class="items-title-text margin-left-8">Presence attack</label> <label class="items-title-text margin-left-8">Presence attack</label>
<a class="roll-direct" data-roll-source="Presence attack" data-roll-formula="{{system.biodata.presenceattack.rollFormula}}"> <a class="roll-direct" data-roll-source="Presence attack"
data-roll-formula="{{system.biodata.presenceattack.rollFormula}}">
<i class="fas fa-dice"></i>{{system.biodata.presenceattack.displayFormula}} <i class="fas fa-dice"></i>{{system.biodata.presenceattack.displayFormula}}
</a> </a>
@ -201,24 +226,26 @@
<div> <div>
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-field-label-long"> <span class="item-field-label-long">
<label class="">Vitals</label> <label class="">Vitals</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="short-label">Val</label> <label class="short-label">Val</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="short-label">Dmg</label> <label class="short-label">Dmg</label>
</span> </span>
</li> </li>
{{#each characteristics as |char key|}} {{#each characteristics as |char key|}}
{{#if char.isvital}} {{#if char.isvital}}
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}"> <li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
<span class="item-field-label-long">{{char.label}}</span> <span class="item-field-label-long">{{char.label}}</span>
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.{{key}}.value" value="{{char.value}}" data-dtype="Number" /> <input type="text" class="item-field-label-short update-field"
<input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.damage" value="{{char.damage}}" data-dtype="Number" /> data-field-name="system.characteristics.{{key}}.value" value="{{char.value}}" data-dtype="Number" />
</li> <input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.damage"
{{/if}} value="{{char.damage}}" data-dtype="Number" />
</li>
{{/if}}
{{/each}} {{/each}}
</ul> </ul>
@ -228,57 +255,73 @@
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-field-label-long"> <span class="item-field-label-long">
<label class="">Defenses</label> <label class="">Defenses</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="short-label">Normal</label> <label class="short-label">Normal</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="short-label">Resistant</label> <label class="short-label">Resistant</label>
</span> </span>
</li> </li>
{{#each characteristics as |char key|}} {{#each characteristics as |char key|}}
{{#if char.isdefense}} {{#if char.isdefense}}
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}"> <li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
<span class="item-field-label-long">{{char.label}}</span> <span class="item-field-label-long">{{char.label}}</span>
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.{{key}}.value" value="{{char.value}}" data-dtype="Number" /> <input type="text" class="item-field-label-short update-field"
<input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.resistant" value="{{char.resistant}}" data-dtype="Number" /> data-field-name="system.characteristics.{{key}}.value" value="{{char.value}}" data-dtype="Number" />
</li> <input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.resistant"
{{/if}} value="{{char.resistant}}" data-dtype="Number" />
</li>
{{/if}}
{{/each}} {{/each}}
{{#each defenses as |def key|}} {{#each defenses as |def key|}}
<li class="item flexrow list-item list-item-shadow" data-defense-key="{{key}}"> <li class="item flexrow list-item list-item-shadow" data-defense-key="{{key}}">
{{#if def.iseditable}} {{#if def.iseditable}}
<input type="text" class="item-field-label-long update-field" data-field-name="system.defenses.{{key}}.label" value="{{def.label}}" data-dtype="String" /> <input type="text" class="item-field-label-long update-field"
{{else}} data-field-name="system.defenses.{{key}}.label" value="{{def.label}}" data-dtype="String" />
<span class="item-field-label-long">{{def.label}}</span> {{else}}
{{/if}} <span class="item-field-label-long">{{def.label}}</span>
<input type="text" class="item-field-label-short update-field" data-field-name="system.defenses.{{key}}.value" value="{{def.value}}" data-dtype="Number" /> {{/if}}
<input type="text" class="item-field-label-short" name="system.defenses.{{key}}.resistant" value="{{def.resistant}}" data-dtype="Number" /> <input type="text" class="item-field-label-short update-field"
</li> data-field-name="system.defenses.{{key}}.value" value="{{def.value}}" data-dtype="Number" />
<input type="text" class="item-field-label-short" name="system.defenses.{{key}}.resistant"
value="{{def.resistant}}" data-dtype="Number" />
</li>
{{/each}} {{/each}}
</ul> </ul>
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<label class="item-field-label-short">OCV</label> <label class="item-field-label-short">
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.ocv.value" value="{{characteristics.ocv.value}}" data-dtype="Number" /> <a class="roll-charac" data-charac-key="ocv"><i class="fas fa-dice"></i>OCV</a>
</label>
<input type="text" class="item-field-label-short update-field"
data-field-name="system.characteristics.ocv.value" value="{{characteristics.ocv.value}}"
data-dtype="Number" />
<label class="item-field-label-short">&nbsp;</label> <label class="item-field-label-short">&nbsp;</label>
<label class="item-field-label-short">DCV</label> <label class="item-field-label-short">DCV</label>
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.dcv.value" value="{{characteristics.dcv.value}}" data-dtype="Number" /> <input type="text" class="item-field-label-short update-field"
data-field-name="system.characteristics.dcv.value" value="{{characteristics.dcv.value}}"
data-dtype="Number" />
<label class="item-field-label-short">&nbsp;</label> <label class="item-field-label-short">&nbsp;</label>
<label class="item-field-label-short">OMCV</label> <label class="item-field-label-short">
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.omcv.value" value="{{characteristics.omcv.value}}" data-dtype="Number" /> <a class="roll-charac" data-charac-key="omcv"><i class="fas fa-dice"></i>OMCV</a>
</label>
<input type="text" class="item-field-label-short update-field"
data-field-name="system.characteristics.omcv.value" value="{{characteristics.omcv.value}}"
data-dtype="Number" />
<label class="item-field-label-short">&nbsp;</label> <label class="item-field-label-short">&nbsp;</label>
<label class="item-field-label-short">DMCV</label> <label class="item-field-label-short">DMCV</label>
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.dmcv.value" value="{{characteristics.dmcv.value}}" data-dtype="Number" /> <input type="text" class="item-field-label-short update-field"
data-field-name="system.characteristics.dmcv.value" value="{{characteristics.dmcv.value}}"
data-dtype="Number" />
</div> </div>
<div class="flexrow"> <div class="flexrow">
@ -286,66 +329,75 @@
<textarea rows="4" type="text" class="padd-right" name="system.biodata.combatskills" <textarea rows="4" type="text" class="padd-right" name="system.biodata.combatskills"
data-dtype="String">{{system.biodata.combatskills}}</textarea> data-dtype="String">{{system.biodata.combatskills}}</textarea>
</div> </div>
<div class="grid grid2col"> <div class="grid grid2col">
<div> <div>
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-field-label-long"> <span class="item-field-label-long">
<label class="">Senses</label> <label class="">Senses</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
</span> </span>
</li>
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
<span class="item-field-label-long">
<a class="roll-perception"><i class="fas fa-dice"></i>Perception Roll</a>
</span>
<input type="text" class="item-field-label-short update-field"
data-field-name="system.characteristics.int.perceptionroll"
value="{{characteristics.int.perceptionroll}}" data-dtype="Number" />
</li> </li>
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
<span class="item-field-label-long">
<a class="roll-perception"><i class="fas fa-dice"></i>Perception Roll</a>
</span>
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.int.perceptionroll" value="{{characteristics.int.perceptionroll}}" data-dtype="Number" />
</li>
</ul> </ul>
<textarea type="text" class="textarea-full-height padd-right" name="system.biodata.combatnotes1" data-dtype="String">{{system.biodata.combatnotes1}}</textarea> <textarea rows="20" type="text" class="textarea-full-height padd-right" name="system.biodata.combatnotes1"
data-dtype="String">{{system.biodata.combatnotes1}}</textarea>
</div> </div>
<div> <div>
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-field-label-long"> <span class="item-field-label-long">
<label class="">Movement</label> <label class="">Movement</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="short-label">C</label> <label class="short-label">Combat</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="short-label">NC</label> <label class="short-label">NC</label>
</span> </span>
</li> </li>
{{#each characteristics as |char key|}} {{#each characteristics as |char key|}}
{{#if char.ismovement}} {{#if char.ismovement}}
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}"> <li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
<span class="item-field-label-long">{{char.label}}</span> <span class="item-field-label-long">{{char.label}}</span>
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.{{key}}.value" value="{{char.value}}" data-dtype="Number" /> <input type="text" class="item-field-label-short update-field"
<input type="text" class="item-field-label-short" value="{{mul char.value 2}}" disabled data-dtype="Number" /> data-field-name="system.characteristics.{{key}}.value" value="{{char.value}}" data-dtype="Number" />
</li> <input type="text" class="item-field-label-short update-field"
{{/if}} data-field-name="system.characteristics.{{key}}.ncvalue" value="{{char.ncvalue}}"
data-dtype="Number" />
</li>
{{/if}}
{{/each}} {{/each}}
{{#each movements as |move key|}} {{#each movements as |move key|}}
<li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}"> <li class="item flexrow list-item list-item-shadow" data-charac-key="{{key}}">
{{#if move.iseditable}} {{#if move.iseditable}}
<input type="text" class="item-field-label-long update-field" data-field-name="system.movements.{{key}}.label" value="{{move.label}}" data-dtype="String" /> <input type="text" class="item-field-label-long update-field"
{{else}} data-field-name="system.movements.{{key}}.label" value="{{move.label}}" data-dtype="String" />
<span class="item-field-label-long">{{move.label}}</span> {{else}}
{{/if}} <span class="item-field-label-long">{{move.label}}</span>
<input type="text" class="item-field-label-short update-field" data-field-name="system.movements.{{key}}.value" value="{{move.value}}" data-dtype="Number" /> {{/if}}
<input type="text" class="item-field-label-short" value="{{mul move.value 2}}" disabled data-dtype="Number" /> <input type="text" class="item-field-label-short update-field"
</li> data-field-name="system.movements.{{key}}.value" value="{{move.value}}" data-dtype="Number" />
<input type="text" class="item-field-label-short" value="{{mul move.value 2}}" disabled
data-dtype="Number" />
</li>
{{/each}} {{/each}}
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@ -355,28 +407,28 @@
<div class="charac-item"> <div class="charac-item">
<ul> <ul>
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-field-label-medium"> <span class="item-field-label-medium">
<label class="">Value</label> <label class="">Value</label>
</span> </span>
<span class="item-field-label-medium"> <span class="item-field-label-medium">
<label class="item-field-label-medium">CHAR</label> <label class="item-field-label-medium">CHAR</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="short-label">Base</label> <label class="short-label">Base</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="short-label">Roll</label> <label class="short-label">Roll</label>
</span> </span>
<span class="item-field-label-long"> <span class="item-field-label-long">
<label class="short-label">Notes</label> <label class="short-label">Notes</label>
</span> </span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
</li> </li>
{{#each characteristics as |charac key|}} {{#each characteristics as |charac key|}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-full-charac.hbs charac=charac key=key}} {{> systems/fvtt-hero-system-6/templates/partials/partial-actor-full-charac.hbs charac=charac key=key}}
{{/each}} {{/each}}
</ul> </ul>
</div> </div>
</div> </div>
@ -403,7 +455,8 @@
src="{{skill.img}}" /></a> src="{{skill.img}}" /></a>
<span class="item-field-label-long">{{skill.name}}</span> <span class="item-field-label-long">{{skill.name}}</span>
<span class="item-field-label-medium">{{upper skill.charac}}</span> <span class="item-field-label-medium">{{upper skill.charac}}</span>
<span class="item-field-label-short"><a class="roll-item" data-type="skill"><i class="fas fa-dice"></i>{{skill.roll}}-</a></span> <span class="item-field-label-short"><a class="roll-item" data-type="skill"><i
class="fas fa-dice"></i>{{skill.roll}}-</a></span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
@ -430,8 +483,9 @@
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{perk.img}}" /></a> src="{{perk.img}}" /></a>
<span class="item-name-label">{{perk.name}}</span> <span class="item-name-label">{{perk.name}}</span>
{{#if perk.system.hasroll}} {{#if perk.system.hasroll}}
<span class="item-field-label-short"><a class="roll-item" data-type="perk"><i class="fas fa-dice"></i>{{perk.system.roll}}-</a></span> <span class="item-field-label-short"><a class="roll-item" data-type="perk"><i
class="fas fa-dice"></i>{{perk.system.roll}}-</a></span>
{{else}} {{else}}
<span class="item-field-label-short">&nbsp;</span> <span class="item-field-label-short">&nbsp;</span>
{{/if}} {{/if}}
@ -461,8 +515,9 @@
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{talent.img}}" /></a> src="{{talent.img}}" /></a>
<span class="item-name-label">{{talent.name}}</span> <span class="item-name-label">{{talent.name}}</span>
{{#if talent.system.hasroll}} {{#if talent.system.hasroll}}
<span class="item-field-label-short"><a class="roll-item" data-type="perk"><i class="fas fa-dice"></i>{{talent.system.roll}}-</a></span> <span class="item-field-label-short"><a class="roll-item" data-type="perk"><i
class="fas fa-dice"></i>{{talent.system.roll}}-</a></span>
{{else}} {{else}}
<span class="item-field-label-short">&nbsp;</span> <span class="item-field-label-short">&nbsp;</span>
{{/if}} {{/if}}
@ -478,6 +533,10 @@
{{!-- Maneuvers Tab --}} {{!-- Maneuvers Tab --}}
<div class="tab maneuver" data-group="primary" data-tab="maneuver"> <div class="tab maneuver" data-group="primary" data-tab="maneuver">
<div>
<button class="show-stock-maneuver">Show/Hide stock maneuvers</button>
</div>
<ul class="stat-list alternate-list item-list"> <ul class="stat-list alternate-list item-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-field-label-long-img"> <span class="item-field-label-long-img">
@ -492,29 +551,80 @@
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="short-label">DCV</label> <label class="short-label">DCV</label>
</span> </span>
<span class="item-field-label-long"> <span class="item-field-label-long3">
<label class="short-label">Effects</label> <label class="short-label">Effects</label>
</span> </span>
</li> </li>
{{#each nonstockmaneuvers as |maneuver key|}} {{#each allmaneuvers as |maneuver key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{maneuver._id}}"> {{#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" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{maneuver.img}}" /></a> src="{{maneuver.img}}" /></a>
<span class="item-field-label-long">{{maneuver.name}}</span> <span class="item-field-label-long"><a class="roll-item"><i class="fas fa-dice"></i>{{maneuver.name}}</a></span>
<span class="item-field-label-short">{{maneuver.system.pha}}</span> <span class="item-field-label-short">{{maneuver.system.pha}}</span>
<span class="item-field-label-short">{{maneuver.system.ocv}}</span> <span class="item-field-label-short">{{maneuver.system.ocv}}</span>
<span class="item-field-label-short">{{maneuver.system.dcv}}</span> <span class="item-field-label-short">{{maneuver.system.dcv}}</span>
<span class="item-field-label-long">{{maneuver.system.effects}}</span> <span class="item-field-label-long3">{{maneuver.system.effects}}</span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div> </div>
</li> </li>
</div>
{{/if}}
{{/each}} {{/each}}
</ul> </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-mental-maneuver">
<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-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> </div>
{{!-- Powers Tab --}} {{!-- Powers Tab --}}
@ -547,13 +657,24 @@
{{#each powers as |power key|}} {{#each powers as |power key|}}
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{power._id}}"> <li class="item stat flexrow list-item list-item-shadow" data-item-id="{{power._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{power.img}}" /></a> src="{{power.img}}" /></a>
<span class="item-field-label-short">{{power.system.cost}}</span> <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> <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-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> <span class="item-field-label-medium"><a class="roll-damage" data-type="power"><i
{{#if power.system.hasroll}} class="fas fa-dice"></i>{{power.system.damage}}</a></span>
<span class="item-field-label-short"><a class="roll-item" data-type="power"><i class="fas fa-dice"></i>{{power.system.roll}}-</a></span> {{#if power.system.hasroll}}
<span class="item-field-label-short"><a class="roll-item" data-type="power"><i
class="fas fa-dice"></i>{{power.system.roll}}-</a></span>
{{else}} {{else}}
<span class="item-field-label-short">&nbsp;</span> <span class="item-field-label-short">&nbsp;</span>
{{/if}} {{/if}}
@ -584,8 +705,9 @@
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
src="{{comp.img}}" /></a> src="{{comp.img}}" /></a>
<span class="item-name-label">{{comp.name}}</span> <span class="item-name-label">{{comp.name}}</span>
{{#if comp.system.hasroll}} {{#if comp.system.hasroll}}
<span class="item-field-label-short"><a class="roll-item" data-type="perk"><i class="fas fa-dice"></i>{{comp.system.roll}}-</a></span> <span class="item-field-label-short"><a class="roll-item" data-type="perk"><i
class="fas fa-dice"></i>{{comp.system.roll}}-</a></span>
{{else}} {{else}}
<span class="item-field-label-short">&nbsp;</span> <span class="item-field-label-short">&nbsp;</span>
{{/if}} {{/if}}
@ -608,13 +730,19 @@
<span class="small-label">Total value : {{totalValue}}</span> <span class="small-label">Total value : {{totalValue}}</span>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Weapons" items=weapons}} {{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Money"
items=moneys}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Weapons"
items=weapons}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Armor" items=armors}} {{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Armor" items=armors}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Shields" items=shields}} {{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Shields"
items=shields}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Equipment" items=equipments}} {{> systems/fvtt-hero-system-6/templates/partials/partial-actor-equipment-section.hbs title="Equipment"
items=equipments}}
<hr> <hr>
@ -669,7 +797,7 @@
<div class="medium-editor "> <div class="medium-editor ">
{{editor notes1 target="system.biodata.notes1" button=true owner=owner {{editor notes1 target="system.biodata.notes1" button=true owner=owner
editable=editable}} editable=editable}}
</div> </div>
<hr> <hr>
<h3>Notes 2 : </h3> <h3>Notes 2 : </h3>
<div class="small-editor"> <div class="small-editor">
@ -697,7 +825,7 @@
</div> </div>
</div> </div>
</section> </section>
</form> </form>

View File

@ -32,9 +32,12 @@
</a> </a>
{{/if}} {{/if}}
{{log combat.flags}}
{{#if combatCount}} {{#if combatCount}}
{{#if combat.round}} {{#if combat.round}}
<h3 class="encounter-title noborder">Turn {{combat.turnNumber}} Segment {{combat.segmentNumber}}</h3> <!--<h3 class="encounter-title noborder">Turn {{combat.turnNumber}} Segment {{combat.segmentNumber}}</h3>-->
<h3 class="encounter-title noborder">Turn {{combat.flags.world.turnData.turnNumber}} Segment {{combat.flags.world.turnData.segmentNumber}}</h3>
{{else}} {{else}}
<h3 class="encounter-title noborder">{{localize 'COMBAT.NotStarted'}}</h3> <h3 class="encounter-title noborder">{{localize 'COMBAT.NotStarted'}}</h3>
{{/if}} {{/if}}

View File

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

View File

@ -7,12 +7,6 @@
<hr> <hr>
{{#if img}}
<div >
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
</div>
{{/if}}
<div class="flexcol"> <div class="flexcol">
</div> </div>

View File

@ -7,12 +7,6 @@
<hr> <hr>
{{#if img}}
<div >
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
</div>
{{/if}}
<div class="flexcol"> <div class="flexcol">
</div> </div>

View File

@ -7,12 +7,6 @@
<hr> <hr>
{{#if img}}
<div >
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
</div>
{{/if}}
<div class="flexcol"> <div class="flexcol">
</div> </div>
@ -23,6 +17,21 @@
</li> </li>
{{/if}} {{/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}} {{#if rollSource}}
<li>Roll : {{rollSource}}</li> <li>Roll : {{rollSource}}</li>
{{/if}} {{/if}}
@ -33,6 +42,12 @@
{{#if item}} {{#if item}}
<li>{{item.name}} ({{upperFirst item.type}})</li> <li>{{item.name}} ({{upperFirst item.type}})</li>
{{#if (eq item.type "maneuver")}}
<li>{{item.system.effects}}</li>
{{#if item.system.haseffectroll}}
<li>{{item.system.effectrollformula}}</li>
{{/if}}
{{/if}}
{{/if}} {{/if}}
{{#if (exists bonusMalus)}} {{#if (exists bonusMalus)}}

View File

@ -7,12 +7,6 @@
<hr> <hr>
{{#if img}}
<div >
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
</div>
{{/if}}
<div class="flexcol"> <div class="flexcol">
</div> </div>

View File

@ -20,6 +20,8 @@
</li> </li>
</ul> </ul>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
</section> </section>
</form> </form>

View File

@ -67,5 +67,7 @@
</div> </div>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
</section> </section>
</form> </form>

View File

@ -21,5 +21,8 @@
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}} {{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}}
</ul> </ul>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
</section> </section>
</form> </form>

View File

@ -24,5 +24,7 @@
</ul> </ul>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
</section> </section>
</form> </form>

View File

@ -56,8 +56,88 @@
</select> </select>
</li> </li>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-hasroll.hbs}} {{#if (eq system.subtype "weapon") }}
<li class="flexrow"><label class="item-field-label-long">OCV</label>
<input type="text" class="item-field-label-short" name="system.ocv" value="{{system.ocv}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">OMCV</label>
<input type="text" class="item-field-label-short" name="system.omcv" value="{{system.omcv}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">RMod</label>
<input type="text" class="item-field-label-short" name="system.rmod" value="{{system.rmod}}"
data-dtype="Number" />
</li>
{{/if}}
{{#if (eq system.subtype "shield") }}
<li class="flexrow"><label class="item-field-label-long">OCV</label>
<input type="text" class="item-field-label-short" name="system.ocv" value="{{system.ocv}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">DCV</label>
<input type="text" class="item-field-label-short" name="system.dcv" value="{{system.dcv}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">OMCV</label>
<input type="text" class="item-field-label-short" name="system.omcv" value="{{system.omcv}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">DMCV</label>
<input type="text" class="item-field-label-short" name="system.dmcv" value="{{system.dmcv}}"
data-dtype="Number" />
</li>
{{/if}}
{{#if (eq system.subtype "armor") }}
<li class="flexrow"><label class="item-field-label-long">DCV</label>
<input type="text" class="item-field-label-short" name="system.dcv" value="{{system.dcv}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">DMCV</label>
<input type="text" class="item-field-label-short" name="system.dmcv" value="{{system.dmcv}}"
data-dtype="Number" />
</li>
{{/if}}
{{#if (or (eq system.subtype "armor") (eq system.subtype "shield")) }}
<li class="flexrow"><label class="item-field-label-long">PD</label>
<input type="text" class="item-field-label-short" name="system.pd" value="{{system.pd}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">ED</label>
<input type="text" class="item-field-label-short" name="system.ed" value="{{system.ed}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">rPD</label>
<input type="text" class="item-field-label-short" name="system.rpd" value="{{system.rpd}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">rED</label>
<input type="text" class="item-field-label-short" name="system.red" value="{{system.red}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">Mental Defense</label>
<input type="text" class="item-field-label-short" name="system.mentaldefense" value="{{system.mentaldefense}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">Power Defense</label>
<input type="text" class="item-field-label-short" name="system.powerdefense" value="{{system.powerdefense}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">Flash Defense</label>
<input type="text" class="item-field-label-short" name="system.flashdefense" value="{{system.flashdefense}}"
data-dtype="Number" />
</li>
<li class="flexrow"><label class="item-field-label-long">Other Defense</label>
<input type="text" class="item-field-label-short" name="system.otherdefense" value="{{system.otherdefense}}"
data-dtype="Number" />
</li>
{{/if}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-hasroll.hbs}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}} {{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}}
@ -65,5 +145,7 @@
</ul> </ul>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
</section> </section>
</form> </form>

View File

@ -11,13 +11,16 @@
{{!-- Sheet Body --}} {{!-- Sheet Body --}}
<section class="sheet-body"> <section class="sheet-body">
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-description.hbs}}
<div class="tab details" data-group="primary" data-tab="details"> <div class="tab details" data-group="primary" data-tab="details">
<ul> <ul>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-description.hbs}}
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}} {{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}}
</ul> </ul>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
</section> </section>
</form> </form>

View File

@ -37,14 +37,21 @@
<input type="text" class="item-field-label-medium" name="system.pha" value="{{system.pha}}" data-dtype="String"/> <input type="text" class="item-field-label-medium" name="system.pha" value="{{system.pha}}" data-dtype="String"/>
</li> </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> <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"/> <input type="text" class="item-field-label-medium" name="system.ocv" value="{{system.ocv}}" data-dtype="String"/>
</li> </li>
<li class="flexrow"><label class="item-field-label-medium">DCV</label> <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"/> <input type="text" class="item-field-label-medium" name="system.dcv" value="{{system.dcv}}" data-dtype="String"/>
</li> </li>
{{/if}}
<li class="flexrow"><label class="item-field-label-medium">Effects</label> <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"/> <input type="text" class="item-field-label-long" name="system.effects" value="{{system.effects}}" data-dtype="String"/>
</li> </li>
@ -53,5 +60,8 @@
</ul> </ul>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
</section> </section>
</form> </form>

View File

@ -21,5 +21,8 @@
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}} {{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}}
</ul> </ul>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
</section> </section>
</form> </form>

View File

@ -25,5 +25,8 @@
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}} {{> systems/fvtt-hero-system-6/templates/partials/partial-item-cost.hbs}}
</ul> </ul>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
</section> </section>
</form> </form>

View File

@ -17,7 +17,7 @@
<ul> <ul>
<li class="flexrow"><label class="item-field-label-long">Type</label> <li class="flexrow"><label class="item-field-label-long">Type</label>
<select class="item-field-label-medium" type="text" name="system.skilltype" value="{{system.skilltype}}" data-dtype="String"> <select class="item-field-label-medium" type="text" name="system.skilltype" value="{{system.skilltype}}" data-dtype="String">
{{#select system.skilltype}} {{#select (lower system.skilltype)}}
{{#each config.skillType as |char key|}} {{#each config.skillType as |char key|}}
<option value="{{key}}">{{char}}</option> <option value="{{key}}">{{char}}</option>
{{/each}} {{/each}}
@ -28,14 +28,14 @@
{{#if (isSkillCustom system.skilltype)}} {{#if (isSkillCustom system.skilltype)}}
<li class="flexrow"><label class="item-field-label-long">Base characteristic</label> <li class="flexrow"><label class="item-field-label-long">Base characteristic</label>
<select class="item-field-label-medium" type="text" name="system.characteristic" value="{{system.characteristic}}" data-dtype="String"> <select class="item-field-label-medium" type="text" name="system.characteristic" value="{{system.characteristic}}" data-dtype="String">
{{#select system.characteristic}} {{#select (lower system.characteristic)}}
{{#each config.rollCharac as |char key|}} {{#each config.rollCharac as |char key|}}
<option value="{{key}}">{{char}}</option> <option value="{{key}}">{{char}}</option>
{{/each}} {{/each}}
{{/select}} {{/select}}
</select> </select>
</li> </li>
{{#if (eq system.characteristic "manual")}} {{#if (eq (lower system.characteristic) "manual")}}
<li class="flexrow"><label class="item-field-label-long">Base value</label> <li class="flexrow"><label class="item-field-label-long">Base value</label>
<input type="text" class="item-field-label-medium" name="system.base" value="{{system.base}}" data-dtype="Number" {{#if (ne system.characteristic "manual")}}disabled{{/if}} /> <input type="text" class="item-field-label-medium" name="system.base" value="{{system.base}}" data-dtype="Number" {{#if (ne system.characteristic "manual")}}disabled{{/if}} />
</li> </li>
@ -79,5 +79,8 @@
</ul> </ul>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
</section> </section>
</form> </form>

View File

@ -22,6 +22,8 @@
</ul> </ul>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
</section> </section>
</form> </form>

View File

@ -103,5 +103,7 @@
</div> </div>
</div> </div>
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
</section> </section>
</form> </form>

View File

@ -3,33 +3,114 @@
<span class="item-name-img"> <span class="item-name-img">
<label class="">&nbsp;</label> <label class="">&nbsp;</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-very-short">
<label class="item-field-label-short">Qty</label> <label class="item-field-label-very-short">Qty</label>
</span> </span>
<span class="item-field-label-long3"> <span class="item-field-label-long2">
<label class="item-field-label-long3">{{title}}</label> <label class="item-field-label-long2">{{title}}</label>
</span> </span>
<span class="item-field-label-long">
<label class="item-field-label-long4">Display</label> {{#if (or (eq title "Money") (eq title "Equipment"))}}
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">&nbsp;</label>
</span> </span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">&nbsp;</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">&nbsp;</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">&nbsp;</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">&nbsp;</label>
</span>
{{/if}}
{{#if (eq title "Weapons")}}
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">OCV</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">DCV</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">rMod</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">Rng</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">&nbsp;</label>
</span>
{{/if}}
{{#if (eq title "Shields")}}
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">OCV</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">DCV</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">OMCV</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">DMCV</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">&nbsp;</label>
</span>
{{/if}}
{{#if (eq title "Armor")}}
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">PD</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">ED</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">rPD</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">rED</label>
</span>
<span class="item-field-label-very-short">
<label class="item-field-label-very-short">DCV</label>
</span>
{{/if}}
<span class="item-field-label-long2">
<label class="item-field-label-long2">Display</label>
</span>
{{#if (and (ne title "Armor") (ne title "Shields"))}}
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="item-field-label-short">Effect</label> <label class="item-field-label-short">Effect</label>
</span> </span>
{{else}}
<span class="item-field-label-short">
<label class="item-field-label-short">&nbsp;</label>
</span>
{{/if}}
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="item-field-label-short">Roll</label> <label class="item-field-label-short">Roll</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-very-short">
<label class="item-field-label-short">END</label> <label class="item-field-label-very-short">END</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-very-short">
<label class="item-field-label-short">Value</label> <label class="item-field-label-very-short">Value</label>
</span> </span>
<span class="item-field-label-short"> <span class="item-field-label-short">
<label class="item-field-label-short">Weight</label> <label class="item-field-label-short">Weight</label>
</span> </span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed-small">
<a class="item-control item-add" data-type="equipment" title="Create Item"><i class="fas fa-plus"></i></a> <a class="item-control item-add" data-type="equipment" title="Create Item"><i class="fas fa-plus item-controls-fixed-small"></i></a>
</div> </div>
</li> </li>

View File

@ -1,17 +1,59 @@
<li class="item flexrow list-item list-item-shadow" data-item-id="{{equip._id}}"> <li class="item flexrow list-item list-item-shadow" data-item-id="{{equip._id}}">
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" src="{{equip.img}}" /></a> <a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img" src="{{equip.img}}" /></a>
<span class="item-field-label-short"><label>{{equip.system.quantity}}</label> </span> <span class="item-field-label-very-short content-center" ><label class="content-center">{{equip.system.quantity}}</label> </span>
<span class="item-field-label-long3">{{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>
<span class="item-field-label-long"><label>{{equip.system.displayname}} {{#if (or (eq equip.system.subtype "money") (eq equip.system.subtype "equipment"))}}
<span class="item-field-label-very-short"><label>&nbsp;</label> </span>
<span class="item-field-label-very-short"><label>&nbsp;</label> </span>
<span class="item-field-label-very-short"><label>&nbsp;</label> </span>
<span class="item-field-label-very-short"><label>&nbsp;</label> </span>
<span class="item-field-label-very-short"><label>&nbsp;</label> </span>
{{/if}}
{{#if (eq equip.system.subtype "weapon")}}
<span class="item-field-label-very-short content-center"><label>{{numberFormat (fixNum equip.system.ocv) decimals=0 sign=true}}</label> </span>
<span class="item-field-label-very-short content-center"><label>{{numberFormat (fixNum equip.system.omcv) decimals=0 sign=true}}</label> </span>
<span class="item-field-label-very-short content-center"><label>{{numberFormat (fixNum equip.system.rmod) decimals=0 sign=true}}</label> </span>
<span class="item-field-label-very-short content-center"><label>{{equip.system.range}}</label> </span>
<span class="item-field-label-very-short content-center"><label>&nbsp;</label> </span>
{{/if}}
{{#if (eq equip.system.subtype "shield")}}
<span class="item-field-label-very-short content-center"><label>{{numberFormat (fixNum equip.system.ocv) decimals=0 sign=true}}</label> </span>
<span class="item-field-label-very-short content-center"><label>{{numberFormat (fixNum equip.system.dcv) decimals=0 sign=true}}</label> </span>
<span class="item-field-label-very-short content-center"><label>{{numberFormat (fixNum equip.system.omcv) decimals=0 sign=true}}</label> </span>
<span class="item-field-label-very-short content-center"><label>{{numberFormat (fixNum equip.system.dmcv) decimals=0 sign=true}}</label> </span>
<span class="item-field-label-very-short content-center"><label>&nbsp;</label> </span>
{{/if}}
{{#if (eq equip.system.subtype "armor")}}
<span class="item-field-label-very-short content-center"><label>{{equip.system.pd}}</label> </span>
<span class="item-field-label-very-short content-center"><label>{{equip.system.ed}}</label> </span>
<span class="item-field-label-very-short content-center"><label>{{equip.system.rpd}}</label> </span>
<span class="item-field-label-very-short content-center"><label>{{equip.system.red}}</label> </span>
<span class="item-field-label-very-short content-center"><label>{{numberFormat (fixNum equip.system.dcv) decimals=0 sign=true}}</label> </span>
{{/if}}
<span class="item-field-label-long2"><label>{{equip.system.displayname}}
</label> </label>
</span> </span>
{{#if (and (ne equip.system.subtype "armor") (ne equip.system.subtype "shield"))}}
<span class="item-field-label-short"><label><a class="roll-damage" data-type="perk"><i class="fas fa-dice"></i>{{equip.system.damage}}</a> <span class="item-field-label-short"><label><a class="roll-damage" data-type="perk"><i class="fas fa-dice"></i>{{equip.system.damage}}</a>
</label> </label>
</span> </span>
{{else}}
<span class="item-field-label-short"><label>&nbsp;</label></span>
{{/if}}
{{#if equip.system.hasroll}} {{#if equip.system.hasroll}}
<span class="item-field-label-short"><a class="roll-item" data-type="perk"><i class="fas fa-dice"></i>{{equip.system.roll}}-</a></span> <span class="item-field-label-short"><a class="roll-item" data-type="perk"><i class="fas fa-dice"></i>{{equip.system.roll}}-</a></span>
@ -19,13 +61,12 @@
<span class="item-field-label-short">&nbsp;</span> <span class="item-field-label-short">&nbsp;</span>
{{/if}} {{/if}}
<span class="item-field-label-short"><label>{{equip.system.endurance}}</label> </span> <span class="item-field-label-very-short content-center"><label>{{equip.system.endurance}}</label> </span>
<span class="item-field-label-short"><label>{{mul equip.system.quantity equip.system.value}}</label> </span> <span class="item-field-label-very-short"><label>{{mul equip.system.quantity equip.system.value}}</label> </span>
<span class="item-field-label-short"><label>{{mul equip.system.quantity equip.system.weight}}</label> </span> <span class="item-field-label-short content-center"><label>{{mul equip.system.quantity equip.system.weight}}</label> </span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a> <a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div> </div>

View File

@ -4,13 +4,6 @@
<input type="text" class="" name="system.displayname" value="{{system.displayname}}" data-dtype="string"/> <input type="text" class="" name="system.displayname" value="{{system.displayname}}" data-dtype="string"/>
</div> </div>
<div>
<label class="generic-label">Notes</label>
<div class="small-editor item-text-long-line">
{{editor notes target="system.notes" button=true owner=owner editable=editable}}
</div>
</div>
<div> <div>
<label class="generic-label">Description</label> <label class="generic-label">Description</label>
<div class="medium-editor item-text-long-line"> <div class="medium-editor item-text-long-line">

View File

@ -2,4 +2,5 @@
<nav class="sheet-tabs tabs" data-group="primary"> <nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="description">Description</a> <a class="item" data-tab="description">Description</a>
<a class="item" data-tab="details">Details</a> <a class="item" data-tab="details">Details</a>
<a class="item" data-tab="notes">Notes</a>
</nav> </nav>

View File

@ -0,0 +1,8 @@
<div class="tab notes" data-group="primary" data-tab="notes">
<div>
<label class="generic-label">Notes</label>
<div class="small-editor item-text-long-line">
{{editor notes target="system.notes" button=true owner=owner editable=editable}}
</div>
</div>
</div>

View File

@ -1,6 +1,6 @@
<li class="flexrow"><label class="item-field-label-long">Type</label> <li class="flexrow"><label class="item-field-label-long">Type</label>
<select class="item-field-label-long" type="text" name="system.petype" value="{{system.petype}}" data-dtype="String"> <select class="item-field-label-long" type="text" name="system.petype" value="{{system.petype}}" data-dtype="String">
{{#select system.petype}} {{#select (lower system.petype)}}
{{#each config.powerEquipmentType as |name key|}} {{#each config.powerEquipmentType as |name key|}}
<option value="{{key}}">{{name}}</option> <option value="{{key}}">{{name}}</option>
{{/each}} {{/each}}
@ -10,7 +10,7 @@
<li class="flexrow"><label class="item-field-label-long">Type Modifier</label> <li class="flexrow"><label class="item-field-label-long">Type Modifier</label>
<select class="item-field-label-long" type="text" name="system.typemodifier" value="{{system.typemodifier}}" data-dtype="String"> <select class="item-field-label-long" type="text" name="system.typemodifier" value="{{system.typemodifier}}" data-dtype="String">
{{#select system.typemodifier}} {{#select (lower system.typemodifier)}}
{{#each config.powerTypeModifiers as |name key|}} {{#each config.powerTypeModifiers as |name key|}}
<option value="{{key}}">{{name}}</option> <option value="{{key}}">{{name}}</option>
{{/each}} {{/each}}
@ -18,19 +18,44 @@
</select> </select>
</li> </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> <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> <label class="item-field-label-medium"><input type="checkbox" name="system.senseaffecting" {{checked system.senseaffecting}}/></label>
</li> </li>
{{#if (and (ne system.subtype "armor") (ne system.subtype "shield"))}}
<li class="flexrow"><label class="item-field-label-long">Range</label> <li class="flexrow"><label class="item-field-label-long">Range</label>
<input type="text" class="item-field-label-medium" name="system.range" value="{{system.range}}" data-dtype="String"/> <input type="text" class="item-field-label-medium" name="system.range" value="{{system.range}}" data-dtype="String"/>
</li> </li>
<li class="flexrow"><label class="item-field-label-long">Damage</label> <li class="flexrow"><label class="item-field-label-long">Damage</label>
<input type="text" class="item-field-label-medium" name="system.damage" value="{{system.damage}}" data-dtype="String"/> <input type="text" class="item-field-label-medium" name="system.damage" value="{{system.damage}}" data-dtype="String"/>
</li> </li>
{{/if}}
<li class="flexrow"><label class="item-field-label-long">Endurance</label> <li class="flexrow"><label class="item-field-label-long">Endurance</label>
<input type="text" class="item-field-label-short" name="system.endurance" value="{{system.endurance}}" data-dtype="Number"/> <input type="text" class="item-field-label-short" name="system.endurance" value="{{system.endurance}}" data-dtype="Number"/>
</li> </li>
<li class="flexrow"><label class="item-field-label-long">Has Charges ?</label>
<label class="item-field-label-medium"><input type="checkbox" name="system.hascharges" {{checked system.hascharges}}/></label>
</li>
{{#if system.hascharges}}
<li class="flexrow"><label class="item-field-label-long">Number of Charges</label>
<input type="text" class="item-field-label-short" name="system.nbcharges" value="{{system.nbcharges}}" data-dtype="Number"/>
</li>
{{/if}}
{{#if quantityDone}} {{#if quantityDone}}
{{else}} {{else}}
<li class="flexrow"><label class="item-field-label-long">Quantity</label> <li class="flexrow"><label class="item-field-label-long">Quantity</label>