Compare commits

..

24 Commits

Author SHA1 Message Date
a07f367b0c Move repo to public area 2023-08-26 09:48:07 +02:00
09bb7fb692 Move repo to public area 2023-08-26 05:38:10 +02:00
92dc81af24 Move repo to public area 2023-08-26 05:36:15 +02:00
d2430ee482 Move repo to public area 2023-08-26 05:15:18 +02:00
86780ce8ae Move repo to public area 2023-08-26 05:14:08 +02:00
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 1236 additions and 554 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.

9
changelog.md Normal file
View File

@ -0,0 +1,9 @@
v11.0.15
- Fix target rolls for power
- Add maneuvers roll in the maneuver tab
- Renamed title
v11.0.14
- Initial public release

View File

@ -1,19 +1,22 @@
{ {
"ACTOR": { "TYPES": {
"TypeCharacter": "Character" "Actor": {
"character": "Character",
"minion": "Minion"
}, },
"ITEM": { "Item": {
"TypeSkill": "Skill", "skill": "Skill",
"TypePerk": "Perk", "perk": "Perk",
"TypePower": "Power", "power": "Power",
"TypeTalent": "Talent", "talent": "Talent",
"TypeAdvantage": "Advantage", "advantage": "Advantage",
"TypeMartialart": "Martial art", "martialart": "Martial art",
"TypeLimitation": "Limitation", "limitation": "Limitation",
"TypeComplication": "Complication", "complication": "Complication",
"TypeEquipment": "Equipment", "equipment": "Equipment",
"TypeCurrency": "Currency", "currency": "Currency",
"TypeManeuver": "Maneuver" "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,13 +162,19 @@ 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-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")
const rollSource = $(event.currentTarget).data("roll-source") const rollSource = $(event.currentTarget).data("roll-source")
Hero6Utility.processDirectRoll( { actorId: this.actor.id, rollFormula: rollFormula, rollSource: rollSource, mode:"directroll"} ) Hero6Utility.processDirectRoll( { actorId: this.actor.id, rollFormula: rollFormula, rollSource: rollSource, mode:"directroll"} )
}); });
html.find('.roll-item').click((event) => { html.find('.roll-item').click((event) => {
const li = $(event.currentTarget).parents(".item"); const li = $(event.currentTarget).parents(".item");
let itemId = li.data("item-id") let itemId = li.data("item-id")
@ -181,12 +191,6 @@ export class Hero6ActorSheet extends ActorSheet {
this.actor.rollLiftDice(itemId); this.actor.rollLiftDice(itemId);
}); });
html.find('.roll-weapon').click((event) => {
const li = $(event.currentTarget).parents(".item");
const skillId = li.data("item-id")
this.actor.rollWeapon(skillId)
});
html.find('.hold-action').click((event) => { html.find('.hold-action').click((event) => {
this.actor.holdAction() this.actor.holdAction()
}); });
@ -194,6 +198,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

@ -40,13 +40,11 @@ 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,25 @@ export class Hero6Actor extends Actor {
} }
} }
/* -------------------------------------------- */
prepareManeuver(maneuver) {
if (maneuver.system.maneuvertype == "mental") {
maneuver.roll = 11 + this.system.characteristics.omcv.value
if (Number(maneuver.system.omcv)) {
maneuver.roll += Number(maneuver.system.omcv)
} else {
maneuver.noOMCV = true
}
} else {
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 +312,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 +336,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)
@ -464,7 +511,7 @@ 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,9 +544,14 @@ export class Hero6Actor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
prepareCharacValues(charac) { prepareCharacValues(charac) {
if (charac.label == "OCV" || charac.label == "OMCV" ) {
charac.total = charac.value
charac.roll = 11 + charac.value
} else {
charac.total = charac.value charac.total = charac.value
charac.roll = 9 + Math.round((charac.value) / 5) charac.roll = 9 + Math.round((charac.value) / 5)
} }
}
prepareCharac() { prepareCharac() {
let characs = duplicate(this.system.characteristics) let characs = duplicate(this.system.characteristics)
for (let key in characs) { for (let key in characs) {
@ -648,6 +700,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 +752,6 @@ 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)
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
rollSkill(skillId) { rollSkill(skillId) {
let skill = this.items.get(skillId) let skill = this.items.get(skillId)
@ -722,34 +776,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)
Hero6Utility.updateSkill(skill)
let abilityKey = skill.system.ability
let rollData = this.getCommonRollData(abilityKey)
rollData.mode = "weapon" rollData.mode = "weapon"
rollData.skill = skill
rollData.weapon = weapon rollData.weapon = weapon
rollData.img = weapon.img rollData.img = weapon.img
if (!rollData.forceDisadvantage) { // This is an attack, check if disadvantaged
rollData.forceDisadvantage = this.isAttackDisadvantage()
}
/*if (rollData.weapon.system.isranged && rollData.tokensDistance > Hero6Utility.getWeaponMaxRange(rollData.weapon) ) {
ui.notifications.warn(`Your target is out of range of your weapon (max: ${Hero6Utility.getWeaponMaxRange(rollData.weapon)} - current : ${rollData.tokensDistance})` )
return
}*/
this.startRoll(rollData) this.startRoll(rollData)
} else { } else {
ui.notifications.warn("Unable to find the relevant skill for weapon " + weapon.name) ui.notifications.warn("Unable to find the weapon " + weapon.name)
} }
} }
/* -------------------------------------------- */
rollMentalManeuver(maneuverId) {
let maneuver = this.items.get(maneuverId)
if (maneuver) {
maneuver = duplicate(maneuver)
let rollData = this.getCommonRollData()
rollData.maneuverRoll = 11 + this.system.characteristics.omcv.value + (Number(maneuver.system.omcv) || 0)
rollData.mode = "mentalmaneuver"
rollData.maneuver = maneuver
rollData.img = maneuver.img
this.startRoll(rollData)
} else {
ui.notifications.warn("Unable to find the maneuver " + maneuver.name)
}
}
/* -------------------------------------------- */
rollPowerAttack(powerId ) {
let power = this.items.get(powerId)
if (power) {
power = duplicate(power)
let rollData = this.getCommonRollData()
if (power.system.attackvalue == "ocv") {
rollData.powerRoll = 11 + 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) {
if (game.user.isGM) {
let updList = [] let updList = []
let c = this.combatants.find(c => c.actor._id == actor.id) let c = this.combatants.find(c => c.actor._id == actor.id)
let name = actor.name + ((isHold) ? " (H)" : "") let name = actor.name + ((isHold) ? " (H)" : "")
console.log("ForceHold!!", c, actor)
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) }) updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
this.updateEmbeddedDocuments("Combatant", updList) 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) {
if (game.user.isGM) {
let updList = [] let updList = []
let c = this.combatants.find(c => c.actor._id == actor.id) let c = this.combatants.find(c => c.actor._id == actor.id)
let name = actor.name + ((isAbort) ? " (A)" : "") let name = actor.name + ((isAbort) ? " (A)" : "")
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) }) updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
this.updateEmbeddedDocuments("Combatant", updList) this.updateEmbeddedDocuments("Combatant", updList)
} else {
game.socket.emit("system.fvtt-hero-system-6", { name: "msg_force_abort", data: { actorId: actor.id, isAbort: isAbort } });
}
} }
/* -------------------------------------------- */ /* -------------------------------------------- */
@ -166,13 +175,63 @@ export class Hero6Combat extends Combat {
} }
} }
/* -------------------------------------------- */
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-000116

View File

@ -1,8 +1,8 @@
2023/08/03-22:32:11.523171 7f01523fc6c0 Recovering log #20 2023/08/26-09:36:55.616025 7f2deaffd6c0 Recovering log #114
2023/08/03-22:32:11.540084 7f01523fc6c0 Delete type=3 #18 2023/08/26-09:36:55.641371 7f2deaffd6c0 Delete type=3 #112
2023/08/03-22:32:11.540129 7f01523fc6c0 Delete type=0 #20 2023/08/26-09:36:55.641419 7f2deaffd6c0 Delete type=0 #114
2023/08/03-22:32:17.500527 7f0151bfb6c0 Level-0 table #25: started 2023/08/26-09:47:17.308368 7f2b69bff6c0 Level-0 table #119: started
2023/08/03-22:32:17.500588 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/26-09:47:17.308393 7f2b69bff6c0 Level-0 table #119: 0 bytes OK
2023/08/03-22:32:17.506820 7f0151bfb6c0 Delete type=0 #23 2023/08/26-09:47:17.348814 7f2b69bff6c0 Delete type=0 #117
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-09:47:17.377261 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-09:47:17.377290 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-05:35:25.658202 7f2deaffd6c0 Recovering log #110
2023/08/03-22:31:33.979394 7f01533fe6c0 Delete type=3 #14 2023/08/26-05:35:25.710452 7f2deaffd6c0 Delete type=3 #108
2023/08/03-22:31:33.979434 7f01533fe6c0 Delete type=0 #16 2023/08/26-05:35:25.710513 7f2deaffd6c0 Delete type=0 #110
2023/08/03-22:31:52.457027 7f0151bfb6c0 Level-0 table #21: started 2023/08/26-05:36:09.833813 7f2b69bff6c0 Level-0 table #115: started
2023/08/03-22:31:52.457052 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/26-05:36:09.833846 7f2b69bff6c0 Level-0 table #115: 0 bytes OK
2023/08/03-22:31:52.463153 7f0151bfb6c0 Delete type=0 #19 2023/08/26-05:36:09.840534 7f2b69bff6c0 Delete type=0 #113
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: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: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:36:09.847688 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-000118

View File

@ -1,7 +1,8 @@
2023/08/03-22:32:11.490520 7f0153bff6c0 Recovering log #20 2023/08/26-09:36:55.581647 7f2dea7fc6c0 Recovering log #116
2023/08/03-22:32:11.500170 7f0153bff6c0 Delete type=3 #18 2023/08/26-09:36:55.613104 7f2dea7fc6c0 Delete type=3 #114
2023/08/03-22:32:11.500230 7f0153bff6c0 Delete type=0 #20 2023/08/26-09:36:55.613185 7f2dea7fc6c0 Delete type=0 #116
2023/08/03-22:32:17.438731 7f0151bfb6c0 Level-0 table #25: started 2023/08/26-09:47:17.031250 7f2b69bff6c0 Level-0 table #121: started
2023/08/03-22:32:17.438765 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/26-09:47:17.031303 7f2b69bff6c0 Level-0 table #121: 0 bytes OK
2023/08/03-22:32:17.445239 7f0151bfb6c0 Delete type=0 #23 2023/08/26-09:47:17.068068 7f2b69bff6c0 Delete type=0 #119
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-09:47:17.178686 7f2b69bff6c0 Manual compaction at level-0 from '!folders!48DCB6UNXCsERTXK' @ 72057594037927935 : 1 .. '!items!zFQRJSrYV4E12NgW' @ 0 : 0; will stop at (end)
2023/08/26-09:47:17.245324 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-05:35:25.591750 7f2dea7fc6c0 Recovering log #112
2023/08/03-22:31:33.764300 7f01533fe6c0 Delete type=3 #14 2023/08/26-05:35:25.654891 7f2dea7fc6c0 Delete type=3 #110
2023/08/03-22:31:33.764606 7f01533fe6c0 Delete type=0 #16 2023/08/26-05:35:25.654982 7f2dea7fc6c0 Delete type=0 #112
2023/08/03-22:31:52.363681 7f0151bfb6c0 Level-0 table #21: started 2023/08/26-05:36:09.796628 7f2b69bff6c0 Level-0 table #117: started
2023/08/03-22:31:52.363732 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/26-05:36:09.796668 7f2b69bff6c0 Level-0 table #117: 0 bytes OK
2023/08/03-22:31:52.374669 7f0151bfb6c0 Delete type=0 #19 2023/08/26-05:36:09.803598 7f2b69bff6c0 Delete type=0 #115
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: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)

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
MANIFEST-000014 MANIFEST-000108

View File

@ -1,8 +1,8 @@
2023/08/03-22:32:11.526034 7f0152bfd6c0 Recovering log #12 2023/08/26-09:36:55.640615 7f2dea7fc6c0 Recovering log #106
2023/08/03-22:32:11.543863 7f0152bfd6c0 Delete type=3 #10 2023/08/26-09:36:55.658513 7f2dea7fc6c0 Delete type=3 #104
2023/08/03-22:32:11.543924 7f0152bfd6c0 Delete type=0 #12 2023/08/26-09:36:55.658566 7f2dea7fc6c0 Delete type=0 #106
2023/08/03-22:32:17.513990 7f0151bfb6c0 Level-0 table #17: started 2023/08/26-09:47:17.348939 7f2b69bff6c0 Level-0 table #111: started
2023/08/03-22:32:17.514015 7f0151bfb6c0 Level-0 table #17: 0 bytes OK 2023/08/26-09:47:17.348972 7f2b69bff6c0 Level-0 table #111: 0 bytes OK
2023/08/03-22:32:17.520642 7f0151bfb6c0 Delete type=0 #15 2023/08/26-09:47:17.377099 7f2b69bff6c0 Delete type=0 #109
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-09:47:17.377272 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-09:47:17.377305 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-05:35:25.713305 7f2debfff6c0 Recovering log #102
2023/08/03-22:31:33.994036 7f0152bfd6c0 Delete type=3 #6 2023/08/26-05:35:25.813680 7f2debfff6c0 Delete type=3 #100
2023/08/03-22:31:33.994083 7f0152bfd6c0 Delete type=0 #8 2023/08/26-05:35:25.813733 7f2debfff6c0 Delete type=0 #102
2023/08/03-22:31:52.449237 7f0151bfb6c0 Level-0 table #13: started 2023/08/26-05:36:09.827049 7f2b69bff6c0 Level-0 table #107: started
2023/08/03-22:31:52.449263 7f0151bfb6c0 Level-0 table #13: 0 bytes OK 2023/08/26-05:36:09.827083 7f2b69bff6c0 Level-0 table #107: 0 bytes OK
2023/08/03-22:31:52.456923 7f0151bfb6c0 Delete type=0 #11 2023/08/26-05:36:09.833693 7f2b69bff6c0 Delete type=0 #105
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: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: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:36:09.847666 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-000116

View File

@ -1,8 +1,8 @@
2023/08/03-22:32:11.542387 7f01523fc6c0 Recovering log #20 2023/08/26-09:36:55.643370 7f2debfff6c0 Recovering log #114
2023/08/03-22:32:11.560297 7f01523fc6c0 Delete type=3 #18 2023/08/26-09:36:55.661508 7f2debfff6c0 Delete type=3 #112
2023/08/03-22:32:11.560512 7f01523fc6c0 Delete type=0 #20 2023/08/26-09:36:55.661568 7f2debfff6c0 Delete type=0 #114
2023/08/03-22:32:17.493642 7f0151bfb6c0 Level-0 table #25: started 2023/08/26-09:47:17.415364 7f2b69bff6c0 Level-0 table #119: started
2023/08/03-22:32:17.493688 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/26-09:47:17.415408 7f2b69bff6c0 Level-0 table #119: 0 bytes OK
2023/08/03-22:32:17.500316 7f0151bfb6c0 Delete type=0 #23 2023/08/26-09:47:17.468404 7f2b69bff6c0 Delete type=0 #117
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-09:47:17.468554 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-09:47:17.468570 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-05:35:25.714189 7f2deaffd6c0 Recovering log #110
2023/08/03-22:31:34.061585 7f01533fe6c0 Delete type=3 #14 2023/08/26-05:35:25.838791 7f2deaffd6c0 Delete type=3 #108
2023/08/03-22:31:34.061736 7f01533fe6c0 Delete type=0 #16 2023/08/26-05:35:25.838847 7f2deaffd6c0 Delete type=0 #110
2023/08/03-22:31:52.463277 7f0151bfb6c0 Level-0 table #21: started 2023/08/26-05:36:09.840742 7f2b69bff6c0 Level-0 table #115: started
2023/08/03-22:31:52.463307 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/26-05:36:09.840802 7f2b69bff6c0 Level-0 table #115: 0 bytes OK
2023/08/03-22:31:52.470250 7f0151bfb6c0 Delete type=0 #19 2023/08/26-05:36:09.847326 7f2b69bff6c0 Delete type=0 #113
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: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: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:36:09.847709 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-000116 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-000117

View File

@ -1,8 +1,8 @@
2023/08/03-22:32:11.504542 7f01523fc6c0 Recovering log #20 2023/08/26-09:36:55.615731 7f2deb7fe6c0 Recovering log #115
2023/08/03-22:32:11.521105 7f01523fc6c0 Delete type=3 #18 2023/08/26-09:36:55.638127 7f2deb7fe6c0 Delete type=3 #113
2023/08/03-22:32:11.521156 7f01523fc6c0 Delete type=0 #20 2023/08/26-09:36:55.638240 7f2deb7fe6c0 Delete type=0 #115
2023/08/03-22:32:17.471567 7f0151bfb6c0 Level-0 table #25: started 2023/08/26-09:47:17.273897 7f2b69bff6c0 Level-0 table #120: started
2023/08/03-22:32:17.471602 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/26-09:47:17.273922 7f2b69bff6c0 Level-0 table #120: 0 bytes OK
2023/08/03-22:32:17.480333 7f0151bfb6c0 Delete type=0 #23 2023/08/26-09:47:17.308253 7f2b69bff6c0 Delete type=0 #118
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-09:47:17.377250 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-09:47:17.377280 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-05:35:25.658202 7f2deb7fe6c0 Recovering log #111
2023/08/03-22:31:33.884940 7f0152bfd6c0 Delete type=3 #14 2023/08/26-05:35:25.710453 7f2deb7fe6c0 Delete type=3 #109
2023/08/03-22:31:33.885064 7f0152bfd6c0 Delete type=0 #16 2023/08/26-05:35:25.710530 7f2deb7fe6c0 Delete type=0 #111
2023/08/03-22:31:52.438338 7f0151bfb6c0 Level-0 table #21: started 2023/08/26-05:36:09.820280 7f2b69bff6c0 Level-0 table #116: started
2023/08/03-22:31:52.438374 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/26-05:36:09.820311 7f2b69bff6c0 Level-0 table #116: 0 bytes OK
2023/08/03-22:31:52.448881 7f0151bfb6c0 Delete type=0 #19 2023/08/26-05:36:09.826570 7f2b69bff6c0 Delete type=0 #114
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: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: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:36:09.847643 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-000116

View File

@ -1,8 +1,8 @@
2023/08/03-22:32:11.504608 7f0152bfd6c0 Recovering log #20 2023/08/26-09:36:55.581650 7f2deaffd6c0 Recovering log #114
2023/08/03-22:32:11.524096 7f0152bfd6c0 Delete type=3 #18 2023/08/26-09:36:55.613104 7f2deaffd6c0 Delete type=3 #112
2023/08/03-22:32:11.524332 7f0152bfd6c0 Delete type=0 #20 2023/08/26-09:36:55.613190 7f2deaffd6c0 Delete type=0 #114
2023/08/03-22:32:17.487194 7f0151bfb6c0 Level-0 table #25: started 2023/08/26-09:47:17.245521 7f2b69bff6c0 Level-0 table #119: started
2023/08/03-22:32:17.487218 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/26-09:47:17.245592 7f2b69bff6c0 Level-0 table #119: 0 bytes OK
2023/08/03-22:32:17.493333 7f0151bfb6c0 Delete type=0 #23 2023/08/26-09:47:17.273789 7f2b69bff6c0 Delete type=0 #117
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-09:47:17.377230 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-09:47:17.377298 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-05:35:25.591750 7f2deaffd6c0 Recovering log #110
2023/08/03-22:31:33.865983 7f01533fe6c0 Delete type=3 #14 2023/08/26-05:35:25.654890 7f2deaffd6c0 Delete type=3 #108
2023/08/03-22:31:33.866041 7f01533fe6c0 Delete type=0 #16 2023/08/26-05:35:25.654974 7f2deaffd6c0 Delete type=0 #110
2023/08/03-22:31:52.424062 7f0151bfb6c0 Level-0 table #21: started 2023/08/26-05:36:09.813203 7f2b69bff6c0 Level-0 table #115: started
2023/08/03-22:31:52.424265 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/26-05:36:09.813236 7f2b69bff6c0 Level-0 table #115: 0 bytes OK
2023/08/03-22:31:52.430673 7f0151bfb6c0 Delete type=0 #19 2023/08/26-05:36:09.819942 7f2b69bff6c0 Delete type=0 #113
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: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: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:36:09.820177 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-000116

View File

@ -1,8 +1,8 @@
2023/08/03-22:32:11.546170 7f0152bfd6c0 Recovering log #20 2023/08/26-09:36:55.660955 7f2deb7fe6c0 Recovering log #114
2023/08/03-22:32:11.563632 7f0152bfd6c0 Delete type=3 #18 2023/08/26-09:36:55.671184 7f2deb7fe6c0 Delete type=3 #112
2023/08/03-22:32:11.563697 7f0152bfd6c0 Delete type=0 #20 2023/08/26-09:36:55.671335 7f2deb7fe6c0 Delete type=0 #114
2023/08/03-22:32:17.506983 7f0151bfb6c0 Level-0 table #25: started 2023/08/26-09:47:17.377408 7f2b69bff6c0 Level-0 table #119: started
2023/08/03-22:32:17.507022 7f0151bfb6c0 Level-0 table #25: 0 bytes OK 2023/08/26-09:47:17.377442 7f2b69bff6c0 Level-0 table #119: 0 bytes OK
2023/08/03-22:32:17.513835 7f0151bfb6c0 Delete type=0 #23 2023/08/26-09:47:17.415173 7f2b69bff6c0 Delete type=0 #117
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-09:47:17.468538 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-09:47:17.468563 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-05:35:25.815813 7f2deb7fe6c0 Recovering log #110
2023/08/03-22:31:34.114315 7f0152bfd6c0 Delete type=3 #14 2023/08/26-05:35:25.893020 7f2deb7fe6c0 Delete type=3 #108
2023/08/03-22:31:34.114356 7f0152bfd6c0 Delete type=0 #16 2023/08/26-05:35:25.893112 7f2deb7fe6c0 Delete type=0 #110
2023/08/03-22:31:52.470365 7f0151bfb6c0 Level-0 table #21: started 2023/08/26-05:36:09.847777 7f2b69bff6c0 Level-0 table #115: started
2023/08/03-22:31:52.470387 7f0151bfb6c0 Level-0 table #21: 0 bytes OK 2023/08/26-05:36:09.847839 7f2b69bff6c0 Level-0 table #115: 0 bytes OK
2023/08/03-22:31:52.481758 7f0151bfb6c0 Delete type=0 #19 2023/08/26-05:36:09.855108 7f2b69bff6c0 Delete type=0 #113
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: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: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:36:09.855380 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;
@ -1426,3 +1437,10 @@ 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 6E 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.16",
"compatibility": { "compatibility": {
"minimum": "10", "minimum": "11",
"verified": "11" "verified": "11"
}, },
"title": "Hero System v6 for FoundrtVTT (Official)", "title": "Hero System 6E Basic (Official)",
"manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-hero-system-6/raw/branch/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.16.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

@ -18,8 +18,8 @@
<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>
@ -29,21 +29,23 @@
<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"
value="{{system.biodata.campaign}}" data-dtype="String" />
</li> </li>
<li class="flexrow item"> <li class="flexrow item">
<label class="item-field-label-medium">Player</label> <label class="item-field-label-medium">Player</label>
<input type="text" class="item-field-label-long3" name="system.biodata.player" value="{{system.biodata.player}}" <input type="text" class="item-field-label-long3" name="system.biodata.player"
data-dtype="String" /> value="{{system.biodata.player}}" data-dtype="String" />
</li> </li>
<li class="flexrow item"> <li class="flexrow item">
<label class="item-field-label-medium">GM</label> <label class="item-field-label-medium">GM</label>
<input type="text" class="item-field-label-long3" name="system.biodata.gm" value="{{system.biodata.gm}}" <input type="text" class="item-field-label-long3" name="system.biodata.gm"
data-dtype="String" /> value="{{system.biodata.gm}}" data-dtype="String" />
</li> </li>
<li class="item flexrow"> <li class="item flexrow">
<label class="item-field-label-medium">Hair</label> <label class="item-field-label-medium">Hair</label>
<input type="text" class="item-field-label-long3" name="system.biodata.hair" value="{{system.biodata.hair}}" data-dtype="String" /> <input type="text" class="item-field-label-long3" name="system.biodata.hair"
value="{{system.biodata.hair}}" data-dtype="String" />
</li> </li>
</ul> </ul>
</div> </div>
@ -51,19 +53,23 @@
<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"
value="{{system.biodata.gender}}" data-dtype="String" />
</li> </li>
<li class="item flexrow"> <li class="item flexrow">
<label class="item-field-label-medium">Height</label> <label class="item-field-label-medium">Height</label>
<input type="text" class="item-field-label-medium" name="system.biodata.height" value="{{system.biodata.height}}" data-dtype="String" /> <input type="text" class="item-field-label-medium" name="system.biodata.height"
value="{{system.biodata.height}}" data-dtype="String" />
</li> </li>
<li class="item flexrow"> <li class="item flexrow">
<label class="item-field-label-medium">Mass</label> <label class="item-field-label-medium">Mass</label>
<input type="text" class="item-field-label-medium" name="system.biodata.mass" value="{{system.biodata.mass}}" data-dtype="String" /> <input type="text" class="item-field-label-medium" name="system.biodata.mass"
value="{{system.biodata.mass}}" data-dtype="String" />
</li> </li>
<li class="item flexrow"> <li class="item flexrow">
<label class="item-field-label-medium">Eyes</label> <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" /> <input type="text" class="item-field-label-medium" name="system.biodata.eyes"
value="{{system.biodata.eyes}}" data-dtype="String" />
</li> </li>
</ul> </ul>
</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>
@ -127,29 +137,44 @@
<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 mtype|}}
<ul class="stat-list alternate-list"> <ul class="stat-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-field-label-long-img"> <span class="item-field-label-long-img">
<label class="">{{upperFirst key}} Maneuver</label> <label class="">{{upperFirst mtype}} Maneuver</label>
</span> </span>
<span class="item-field-label-very-short"> <span class="item-field-label-very-short">
<label class="short-label">PHA</label> <label class="short-label">PHA</label>
</span> </span>
{{#if (eq mtype "mental")}}
<span class="item-field-label-very-short">
<label class="short-label">OMCV</label>
</span>
<span class="item-field-label-very-short">
<label class="short-label">DMCV</label>
</span>
{{else}}
<span class="item-field-label-very-short"> <span class="item-field-label-very-short">
<label class="short-label">OCV</label> <label class="short-label">OCV</label>
</span> </span>
<span class="item-field-label-very-short"> <span class="item-field-label-very-short">
<label class="short-label">DCV</label> <label class="short-label">DCV</label>
</span> </span>
{{/if}}
<span class="item-field-text-long"> <span class="item-field-text-long">
<label class="short-label">Effects</label> <label class="short-label">Effects</label>
</span> </span>
@ -158,18 +183,27 @@
<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> {{#if (eq ../mtype "mental")}}
<span class="item-field-label-very-short">{{maneuver.system.dcv}}</span> <span class="item-field-label-very-short content-center">{{maneuver.system.omcv}}</span>
<span class="item-field-label-very-short content-center">{{maneuver.system.dmcv}}</span>
{{else}}
<span class="item-field-label-very-short content-center">{{maneuver.system.ocv}}</span>
<span class="item-field-label-very-short content-center">{{maneuver.system.dcv}}</span>
{{/if}}
<span class="item-field-text-long">{{maneuver.system.effects}}</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>
<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> </li>
{{/each}} {{/each}}
</ul> </ul>
@ -181,16 +215,23 @@
<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}}"
data-dtype="Number" />
<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-8 hold-action item-packed">{{#if
<button class="chat-card-small-button item-field-label-short margin-left-4 abort-action item-packed">{{#if isAbort}}Unabort{{else}}Abort{{/if}}</button> 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>
@ -215,8 +256,10 @@
{{#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" />
<input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.damage"
value="{{char.damage}}" data-dtype="Number" />
</li> </li>
{{/if}} {{/if}}
{{/each}} {{/each}}
@ -242,43 +285,59 @@
{{#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" />
<input type="text" class="item-field-label-short" name="system.characteristics.{{key}}.resistant"
value="{{char.resistant}}" data-dtype="Number" />
</li> </li>
{{/if}} {{/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"
data-field-name="system.defenses.{{key}}.label" value="{{def.label}}" data-dtype="String" />
{{else}} {{else}}
<span class="item-field-label-long">{{def.label}}</span> <span class="item-field-label-long">{{def.label}}</span>
{{/if}} {{/if}}
<input type="text" class="item-field-label-short update-field" data-field-name="system.defenses.{{key}}.value" value="{{def.value}}" data-dtype="Number" /> <input type="text" class="item-field-label-short update-field"
<input type="text" class="item-field-label-short" name="system.defenses.{{key}}.resistant" value="{{def.resistant}}" data-dtype="Number" /> 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> </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">
@ -301,10 +360,13 @@
<span class="item-field-label-long"> <span class="item-field-label-long">
<a class="roll-perception"><i class="fas fa-dice"></i>Perception Roll</a> <a class="roll-perception"><i class="fas fa-dice"></i>Perception Roll</a>
</span> </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" /> <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>
</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>
@ -314,7 +376,7 @@
<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>
@ -324,20 +386,26 @@
{{#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" />
<input type="text" class="item-field-label-short update-field"
data-field-name="system.characteristics.{{key}}.ncvalue" value="{{char.ncvalue}}"
data-dtype="Number" />
</li> </li>
{{/if}} {{/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"
data-field-name="system.movements.{{key}}.label" value="{{move.label}}" data-dtype="String" />
{{else}} {{else}}
<span class="item-field-label-long">{{move.label}}</span> <span class="item-field-label-long">{{move.label}}</span>
{{/if}} {{/if}}
<input type="text" class="item-field-label-short update-field" data-field-name="system.movements.{{key}}.value" value="{{move.value}}" data-dtype="Number" /> <input type="text" class="item-field-label-short update-field"
<input type="text" class="item-field-label-short" value="{{mul move.value 2}}" disabled data-dtype="Number" /> 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> </li>
{{/each}} {{/each}}
</ul> </ul>
@ -403,7 +471,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>
@ -431,7 +500,8 @@
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}}
@ -462,7 +532,8 @@
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 +549,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 +567,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|}}
{{#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}}"> <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-item"><i class="fas fa-dice"></i>
{{maneuver.name}}
</a>
</span>
<span class="item-field-label-short content-center">{{maneuver.system.pha}}</span>
<span class="item-field-label-short content-center">{{maneuver.system.omcv}}</span>
<span class="item-field-label-short content-center">{{maneuver.system.dmcv}}</span>
<span class="item-field-label-long3">{{maneuver.system.effects}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
</div>
{{/if}}
{{/each}}
</ul>
</div> </div>
{{!-- Powers Tab --}} {{!-- Powers Tab --}}
@ -549,11 +675,22 @@
<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
class="fas fa-dice"></i>{{power.system.damage}}</a></span>
{{#if power.system.hasroll}} {{#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> <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}}
@ -585,7 +722,8 @@
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 +746,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>

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

@ -21,5 +21,7 @@
</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

@ -23,5 +23,7 @@
</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>