Compare commits
31 Commits
fvtt-hero-
...
fvtt-hero-
Author | SHA1 | Date | |
---|---|---|---|
a07f367b0c | |||
09bb7fb692 | |||
92dc81af24 | |||
d2430ee482 | |||
86780ce8ae | |||
b383481915 | |||
dca78fd4b6 | |||
f381269acf | |||
686ea4cea6 | |||
c915b85a7b | |||
5026e120c1 | |||
9cefc6f816 | |||
11d7c7d1c0 | |||
3abf9a9f8f | |||
f5c0faffd3 | |||
3f0e0a41b8 | |||
20c49eb48c | |||
6275319164 | |||
19fb872824 | |||
002d6f4fbd | |||
43a3a2ccfa | |||
356f0fee5f | |||
58bcfc07a3 | |||
3dcb60e7a9 | |||
6c4812c7e4 | |||
099bb0d88c | |||
9a30275640 | |||
b798cde48d | |||
a943e6defa | |||
9099e812d5 | |||
6d6b7075df |
28
README.md
28
README.md
@ -1,2 +1,28 @@
|
|||||||
# fvtt-dark-stars
|
This is the official Hero System 6th Edition game system for FoundryVTT, based on the TTRPG from Hero Games and developed by Legendsmiths, LLC. For more information about Legendsmiths and their work, visit https://legendsmiths.com/.
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Installation
|
||||||
|
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.
|
||||||
|
|
||||||
|
Copyright (c) 2023 Legendsmiths, LLC
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
All content for the HERO System™® is DOJ, Inc.’s trademark for its roleplaying system. HERO System Copyright ©1984, 1989, 2002, 2009 by DOJ, Inc. d/b/a Hero Games. All rights reserved. Fantasy Hero ©2003, 2010 by DOJ, Inc. d/b/a Hero Games. All rights reserved. Star Hero ©2003, 2011 by DOJ, Inc. d/b/a Hero Games. All rights reserved. All DOJ trademarks and copyrights used with permission and under license with Legendsmiths , LLC. For further information about Hero Games and the HERO System, visit www.herogames.com. All HERO System™® content is not be included to copy, modify, merge, publish, distribute, sublicense, and/or sell with copies of the Software with the exception of the current licensee Legendsmiths, LLC.
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
9
changelog.md
Normal file
9
changelog.md
Normal 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
|
BIN
images/ui/hero_foundry_cover.webp
Normal file
BIN
images/ui/hero_foundry_cover.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 202 KiB |
37
lang/en.json
37
lang/en.json
@ -1,18 +1,27 @@
|
|||||||
{
|
{
|
||||||
"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": {
|
||||||
|
"TurnPrev": "Previous initiative",
|
||||||
|
"RoundPrev": "Previous segment",
|
||||||
|
"TurnNext": "Next initiative",
|
||||||
|
"RoundNext": "Next segment"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -46,13 +46,17 @@ 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(),
|
||||||
|
isHold: this.actor.getHoldAction(),
|
||||||
|
isAbort: this.actor.getAbortAction(),
|
||||||
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
|
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
|
||||||
motivation: await TextEditor.enrichHTML(this.object.system.biodata.motivation, {async: true}),
|
motivation: await TextEditor.enrichHTML(this.object.system.biodata.motivation, {async: true}),
|
||||||
quote: await TextEditor.enrichHTML(this.object.system.biodata.quote, {async: true}),
|
quote: await TextEditor.enrichHTML(this.object.system.biodata.quote, {async: true}),
|
||||||
@ -72,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;
|
||||||
@ -87,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 => {
|
||||||
@ -156,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")
|
||||||
@ -179,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()
|
||||||
});
|
});
|
||||||
@ -192,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);
|
||||||
|
@ -4,7 +4,7 @@ import { Hero6RollDialog } from "./hero6-roll-dialog.js";
|
|||||||
import { Hero6LiftDice } from "./hero6-lift-dice.js";
|
import { Hero6LiftDice } from "./hero6-lift-dice.js";
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
const __speed2Segments = [ [0], [7], [6, 12], [4, 8, 12], [3, 6, 9, 12], [3, 5, 8, 10, 12], [2, 4, 6, 8, 10, 12],
|
const __speed2Segments = [[0], [7], [6, 12], [4, 8, 12], [3, 6, 9, 12], [3, 5, 8, 10, 12], [2, 4, 6, 8, 10, 12],
|
||||||
[2, 4, 6, 7, 9, 11, 12], [2, 3, 5, 6, 8, 9, 11, 12], [2, 3, 4, 6, 7, 8, 10, 11, 12], [2, 3, 4, 5, 6, 8, 9, 10, 11, 12],
|
[2, 4, 6, 7, 9, 11, 12], [2, 3, 5, 6, 8, 9, 11, 12], [2, 3, 4, 6, 7, 8, 10, 11, 12], [2, 3, 4, 5, 6, 8, 9, 10, 11, 12],
|
||||||
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]
|
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]
|
||||||
|
|
||||||
@ -40,11 +40,10 @@ export class Hero6Actor extends Actor {
|
|||||||
return actor;
|
return actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.type == 'character') {
|
if (data.type == 'character' || data.type == 'minion') {
|
||||||
//const skills = await Hero6Utility.loadCompendium("fvtt-hero-system-6.skills");
|
const maneuvers = await Hero6Utility.loadCompendium("fvtt-hero-system-6.maneuvers")
|
||||||
//data.items = skills.map(i => i.toObject())
|
let maneuversObj = maneuvers.map(i => i.toObject())
|
||||||
}
|
data.items = maneuversObj.filter(m => m.system.isstock)
|
||||||
if (data.type == 'npc') {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.create(data, options);
|
return super.create(data, options);
|
||||||
@ -61,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)
|
||||||
@ -163,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
|
||||||
@ -205,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') || [])
|
||||||
@ -276,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() {
|
||||||
@ -293,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)
|
||||||
@ -388,15 +436,21 @@ export class Hero6Actor extends Actor {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async cleanCombat() {
|
async cleanCombat() {
|
||||||
await this.setFlag("world", "hold-action", false)
|
await this.setFlag("world", "hold-action", false)
|
||||||
await this.setFlag("world", "abort-action", false)
|
await this.setFlag("world", "abort-action", { state: false, count: 0 })
|
||||||
}
|
}
|
||||||
async holdAction() {
|
async holdAction() {
|
||||||
|
await this.disableAbortAction()
|
||||||
if (this.getFlag("world", "hold-action")) {
|
if (this.getFlag("world", "hold-action")) {
|
||||||
await this.setFlag("world", "hold-action", false)
|
await this.setFlag("world", "hold-action", false)
|
||||||
|
//game.combat.holdAction(this.id, false)
|
||||||
|
game.combat.forceHold(this, false)
|
||||||
|
return false
|
||||||
} else {
|
} else {
|
||||||
await this.setFlag("world", "hold-action", true)
|
await this.setFlag("world", "hold-action", true)
|
||||||
|
//game.combat.holdAction(this.id, false)
|
||||||
|
game.combat.forceHold(this, true)
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
game.combat.rebuildInitiative()
|
|
||||||
}
|
}
|
||||||
async disableHoldAction() {
|
async disableHoldAction() {
|
||||||
await this.setFlag("world", "hold-action", false)
|
await this.setFlag("world", "hold-action", false)
|
||||||
@ -405,13 +459,28 @@ export class Hero6Actor extends Actor {
|
|||||||
await this.setFlag("world", "abort-action", { state: false, count: 0 })
|
await this.setFlag("world", "abort-action", { state: false, count: 0 })
|
||||||
}
|
}
|
||||||
async abortAction() {
|
async abortAction() {
|
||||||
|
await this.disableHoldAction()
|
||||||
let abort = this.getFlag("world", "abort-action")
|
let abort = this.getFlag("world", "abort-action")
|
||||||
if (abort.state) {
|
if (abort.state) {
|
||||||
await this.setFlag("world", "abort-action", { state: false, count: 0 })
|
await this.setFlag("world", "abort-action", { state: false, count: 0 })
|
||||||
|
game.combat.forceAbort(this, false)
|
||||||
|
//game.combat.abortAction(this.id, false)
|
||||||
} else {
|
} else {
|
||||||
await this.setFlag("world", "abort-action", { state: true, count: 0 })
|
await this.setFlag("world", "abort-action", { state: true, count: 0 })
|
||||||
|
game.combat.forceAbort(this, true)
|
||||||
|
//game.combat.abortAction(this.id, true)
|
||||||
}
|
}
|
||||||
game.combat.rebuildInitiative()
|
}
|
||||||
|
async incAbortActionCount() {
|
||||||
|
let abort = this.getFlag("world", "abort-action")
|
||||||
|
if (abort.state) {
|
||||||
|
abort.count++
|
||||||
|
await this.setFlag("world", "abort-action", abort)
|
||||||
|
if (abort.count == 2) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
getHoldAction() {
|
getHoldAction() {
|
||||||
return this.getFlag("world", "hold-action")
|
return this.getFlag("world", "hold-action")
|
||||||
@ -431,7 +500,7 @@ export class Hero6Actor extends Actor {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getSegments() {
|
getSegments() {
|
||||||
let index = Math.min(Math.max(this.system.characteristics.spd.value, 1), 12) // Security bounds
|
let index = Math.min(Math.max(this.system.characteristics.spd.value, 1), 12) // Security bounds
|
||||||
console.log("INDEX", index, __speed2Segments[index])
|
//console.log("INDEX", index, __speed2Segments[index])
|
||||||
return __speed2Segments[index]
|
return __speed2Segments[index]
|
||||||
}
|
}
|
||||||
getPhasesString() {
|
getPhasesString() {
|
||||||
@ -439,10 +508,13 @@ export class Hero6Actor extends Actor {
|
|||||||
return __speed2Segments[index].toString()
|
return __speed2Segments[index].toString()
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getBaseInit() {
|
getBaseInit(turn) {
|
||||||
|
if (turn != this.turn) {
|
||||||
let r = new Roll("1d6").roll({ async: false })
|
let r = new Roll("1d6").roll({ async: false })
|
||||||
let base = this.system.characteristics.dex.value + (r.total / 10)
|
this.currentInit = Number(this.system.characteristics.dex.initiative) + Number(((r.total / 10).toFixed(2)))
|
||||||
return base
|
this.turn = turn
|
||||||
|
}
|
||||||
|
return this.currentInit
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -472,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) {
|
||||||
@ -487,7 +564,7 @@ export class Hero6Actor extends Actor {
|
|||||||
if (key == "spd") {
|
if (key == "spd") {
|
||||||
ch.phasesString = this.getPhasesString()
|
ch.phasesString = this.getPhasesString()
|
||||||
}
|
}
|
||||||
if (key =="pre") {
|
if (key == "pre") {
|
||||||
ch.presenceattack = duplicate(this.system.biodata.presenceattack)
|
ch.presenceattack = duplicate(this.system.biodata.presenceattack)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -623,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)
|
||||||
}
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -672,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)
|
||||||
@ -697,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)
|
||||||
|
@ -31,7 +31,9 @@ export class Hero6Combat extends Combat {
|
|||||||
option.condition = true;
|
option.condition = true;
|
||||||
option.icon = '<i class="far fa-question-circle"></i>';
|
option.icon = '<i class="far fa-question-circle"></i>';
|
||||||
option.callback = target => {
|
option.callback = target => {
|
||||||
Hero6Combat.holdAction(target.data('combatant-id'));
|
let id = target.data('combatant-id')
|
||||||
|
let c = game.combat.combatants.get(id)
|
||||||
|
c.actor.holdAction()
|
||||||
}
|
}
|
||||||
//newOpt = duplicate(option)
|
//newOpt = duplicate(option)
|
||||||
}
|
}
|
||||||
@ -40,9 +42,14 @@ export class Hero6Combat extends Combat {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static holdAction(combatantId) {
|
holdAction(combatantId) {
|
||||||
const combatant = game.combat.combatants.get(combatantId)
|
this.rebuildInitiative()
|
||||||
combatant.actor.holdAction()
|
//console.log("Rebuilding.....")
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
abortAction(actorId, abortState) {
|
||||||
|
this.rebuildInitiative()
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -68,15 +75,41 @@ export class Hero6Combat extends Combat {
|
|||||||
|
|
||||||
super.startCombat();
|
super.startCombat();
|
||||||
}
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
forceHold(actor, isHold) {
|
||||||
|
if (game.user.isGM) {
|
||||||
|
let updList = []
|
||||||
|
let c = this.combatants.find(c => c.actor._id == actor.id)
|
||||||
|
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) })
|
||||||
|
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) {
|
||||||
|
if (game.user.isGM) {
|
||||||
|
let updList = []
|
||||||
|
let c = this.combatants.find(c => c.actor._id == actor.id)
|
||||||
|
let name = actor.name + ((isAbort) ? " (A)" : "")
|
||||||
|
updList.push({ _id: c.id || c._id, name: name, initiative: actor.getBaseInit(this.segmentNumber) })
|
||||||
|
this.updateEmbeddedDocuments("Combatant", updList)
|
||||||
|
} else {
|
||||||
|
game.socket.emit("system.fvtt-hero-system-6", { name: "msg_force_abort", data: { actorId: actor.id, isAbort: isAbort } });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
computeInitiative(c, updList) {
|
computeInitiative(c, updList) {
|
||||||
let id = c._id || c.id
|
let id = c._id || c.id
|
||||||
let hasSegment = c.actor.hasPhase(this.segmentNumber)
|
let hasSegment = c.actor.hasPhase(this.segmentNumber)
|
||||||
let isOnHold = c.actor.getHoldAction()
|
let isOnHold = c.actor.getHoldAction()
|
||||||
if (hasSegment || isOnHold) {
|
let isOnAbort = c.actor.getAbortAction()
|
||||||
let baseInit = c.actor ? c.actor.getBaseInit() : 0;
|
|
||||||
let name = c.actor.name
|
let name = c.actor.name
|
||||||
|
if (hasSegment || isOnHold || isOnAbort) {
|
||||||
|
let baseInit = c.actor ? c.actor.getBaseInit(this.segmentNumber) : 0;
|
||||||
if (isOnHold) {
|
if (isOnHold) {
|
||||||
if (hasSegment) { // On hold + current segment -> auto-disable on hold
|
if (hasSegment) { // On hold + current segment -> auto-disable on hold
|
||||||
c.actor.disableHoldAction()
|
c.actor.disableHoldAction()
|
||||||
@ -84,10 +117,12 @@ export class Hero6Combat extends Combat {
|
|||||||
name = c.actor.name + " (H)"
|
name = c.actor.name + " (H)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (c.actor.getAbortAction()) {
|
if (isOnAbort) {
|
||||||
name = c.actor.name + " (A)"
|
name = c.actor.name + " (A)"
|
||||||
|
if (c.actor.incAbortActionCount()) {
|
||||||
c.actor.disableAbortAction()
|
c.actor.disableAbortAction()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
updList.push({ _id: id, name: name, initiative: baseInit, holdAction: c.holdAction })
|
updList.push({ _id: id, name: name, initiative: baseInit, holdAction: c.holdAction })
|
||||||
} else {
|
} else {
|
||||||
updList.push({ _id: id, name: name, initiative: 0, holdAction: c.holdAction })
|
updList.push({ _id: id, name: name, initiative: 0, holdAction: c.holdAction })
|
||||||
@ -98,7 +133,6 @@ export class Hero6Combat extends Combat {
|
|||||||
async rollInitiative(ids, formula = undefined, messageOptions = {}) {
|
async rollInitiative(ids, formula = undefined, messageOptions = {}) {
|
||||||
ids = typeof ids === "string" ? [ids] : ids;
|
ids = typeof ids === "string" ? [ids] : ids;
|
||||||
|
|
||||||
console.log("Roll INIT")
|
|
||||||
let updList = []
|
let updList = []
|
||||||
for (let cId = 0; cId < ids.length; cId++) {
|
for (let cId = 0; cId < ids.length; cId++) {
|
||||||
const c = this.combatants.get(ids[cId])
|
const c = this.combatants.get(ids[cId])
|
||||||
@ -120,9 +154,9 @@ export class Hero6Combat extends Combat {
|
|||||||
}
|
}
|
||||||
if (updList.length > 0) {
|
if (updList.length > 0) {
|
||||||
await this.updateEmbeddedDocuments("Combatant", updList);
|
await this.updateEmbeddedDocuments("Combatant", updList);
|
||||||
console.log("Rebuild INIT", updList)
|
//console.log("Rebuild INIT", updList)
|
||||||
for(let c of updList) {
|
for (let c of updList) {
|
||||||
if ( c.initiative != 0) {
|
if (c.initiative != 0) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -130,17 +164,77 @@ export class Hero6Combat extends Combat {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
nextTurn() {
|
||||||
|
let nbC = this.combatants.filter(c => c.initiative > 0).length
|
||||||
|
//console.log("Next turn called....", this.turn, nbC)
|
||||||
|
if (this.turn < nbC - 1) {
|
||||||
|
super.nextTurn()
|
||||||
|
} else {
|
||||||
|
this.nextRound()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async previousRound() {
|
||||||
|
let hasCombatants = false
|
||||||
|
let nextRound = this.round
|
||||||
|
let advanceTime = 0
|
||||||
|
let turn = this.turn === null ? null : 0; // Preserve the fact that it's no-one's turn currently.
|
||||||
|
let turnData = this.getFlag("world", "turnData")
|
||||||
|
|
||||||
|
//console.log("Next round called....", nextRound, turnData)
|
||||||
|
while (!hasCombatants) {
|
||||||
|
if (this.settings.skipDefeated && (turn !== null)) {
|
||||||
|
turn = this.turns.findIndex(t => !t.isDefeated);
|
||||||
|
if (turn === -1) {
|
||||||
|
ui.notifications.warn("COMBAT.NoneRemaining", { localize: true });
|
||||||
|
turn = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
advanceTime = -1 * (Math.max(this.turns.length - this.turn, 0) * CONFIG.time.turnTime);
|
||||||
|
advanceTime -= CONFIG.time.roundTime;
|
||||||
|
nextRound = nextRound -1
|
||||||
|
//console.log("Next round called....2", nextRound, turnData)
|
||||||
|
turnData = this.getFlag("world", "turnData")
|
||||||
|
if (!turnData) {
|
||||||
|
turnData = { turnNumber: 0, segmentNumber: 12 }
|
||||||
|
this.setFlag("world", "turnData", turnData)
|
||||||
|
}
|
||||||
|
turnData = duplicate(turnData)
|
||||||
|
turnData.segmentNumber -= 1
|
||||||
|
if (turnData.segmentNumber <= 0) {
|
||||||
|
turnData.segmentNumber = 12
|
||||||
|
turnData.turnNumber--
|
||||||
|
}
|
||||||
|
await this.setFlag("world", "turnData", turnData)
|
||||||
|
this.turnNumber = turnData.turnNumber;
|
||||||
|
this.segmentNumber = turnData.segmentNumber;
|
||||||
|
//console.log("Next round called....3", nextRound, turnData)
|
||||||
|
|
||||||
|
// Re-compute init of actors
|
||||||
|
hasCombatants = await this.rebuildInitiative()
|
||||||
|
//console.log("Going round....", nextRound, hasCombatants)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update the document, passing data through a hook first
|
||||||
|
const updateData = { round: nextRound, turn };
|
||||||
|
const updateOptions = { advanceTime, direction: -1 };
|
||||||
|
Hooks.callAll("combatRound", this, updateData, updateOptions);
|
||||||
|
console.log(this)
|
||||||
|
return this.update(updateData, updateOptions);
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async nextRound() {
|
async nextRound() {
|
||||||
let hasCombatants = false
|
let hasCombatants = false
|
||||||
let nextRound = this.round
|
let nextRound = this.round
|
||||||
let advanceTime = 0
|
let advanceTime = 0
|
||||||
let turn = this.turn === null ? null : 0; // Preserve the fact that it's no-one's turn currently.
|
let turn = this.turn === null ? null : 0; // Preserve the fact that it's no-one's turn currently.
|
||||||
let turnData = this.getFlag("world", "hero6-turn-data")
|
let turnData = this.getFlag("world", "turnData")
|
||||||
|
|
||||||
console.log("Next round called....", nextRound, turnData)
|
//console.log("Next round called....", nextRound, turnData)
|
||||||
while (!hasCombatants) {
|
while (!hasCombatants) {
|
||||||
turn = turn; // Preserve the fact that it's no-one's turn currently.
|
|
||||||
if (this.settings.skipDefeated && (turn !== null)) {
|
if (this.settings.skipDefeated && (turn !== null)) {
|
||||||
turn = this.turns.findIndex(t => !t.isDefeated);
|
turn = this.turns.findIndex(t => !t.isDefeated);
|
||||||
if (turn === -1) {
|
if (turn === -1) {
|
||||||
@ -151,44 +245,50 @@ export class Hero6Combat extends Combat {
|
|||||||
advanceTime = Math.max(this.turns.length - this.turn, 0) * CONFIG.time.turnTime;
|
advanceTime = Math.max(this.turns.length - this.turn, 0) * CONFIG.time.turnTime;
|
||||||
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)
|
||||||
|
|
||||||
// Re-compute init of actors
|
// Re-compute init of actors
|
||||||
hasCombatants = await this.rebuildInitiative()
|
hasCombatants = await this.rebuildInitiative()
|
||||||
console.log("Going round....", nextRound, hasCombatants)
|
//console.log("Going round....", nextRound, hasCombatants)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async _onCreateEmbeddedDocuments(type, documents, result, options, userId) {
|
async _onCreateEmbeddedDocuments(type, documents, result, options, userId) {
|
||||||
super._onCreateEmbeddedDocuments(type, documents, result, options, userId)
|
//console.log("Added...")
|
||||||
|
await super._onCreateEmbeddedDocuments(type, documents, result, options, userId)
|
||||||
|
await this.rebuildInitiative()
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* --------------------------------------------
|
||||||
_onUpdate(changed, options, userId) {
|
_onUpdate(changed, options, userId) {
|
||||||
}
|
}*/
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async checkTurnPosition() {
|
static async checkTurnPosition() {
|
||||||
|
@ -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)"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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 });
|
||||||
|
@ -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
|
||||||
|
BIN
packs/complications/000009.ldb
Normal file
BIN
packs/complications/000009.ldb
Normal file
Binary file not shown.
1
packs/complications/CURRENT
Normal file
1
packs/complications/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000116
|
0
packs/complications/LOCK
Normal file
0
packs/complications/LOCK
Normal file
8
packs/complications/LOG
Normal file
8
packs/complications/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-09:36:55.616025 7f2deaffd6c0 Recovering log #114
|
||||||
|
2023/08/26-09:36:55.641371 7f2deaffd6c0 Delete type=3 #112
|
||||||
|
2023/08/26-09:36:55.641419 7f2deaffd6c0 Delete type=0 #114
|
||||||
|
2023/08/26-09:47:17.308368 7f2b69bff6c0 Level-0 table #119: started
|
||||||
|
2023/08/26-09:47:17.308393 7f2b69bff6c0 Level-0 table #119: 0 bytes OK
|
||||||
|
2023/08/26-09:47:17.348814 7f2b69bff6c0 Delete type=0 #117
|
||||||
|
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/26-09:47:17.377290 7f2b69bff6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
|
8
packs/complications/LOG.old
Normal file
8
packs/complications/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-05:35:25.658202 7f2deaffd6c0 Recovering log #110
|
||||||
|
2023/08/26-05:35:25.710452 7f2deaffd6c0 Delete type=3 #108
|
||||||
|
2023/08/26-05:35:25.710513 7f2deaffd6c0 Delete type=0 #110
|
||||||
|
2023/08/26-05:36:09.833813 7f2b69bff6c0 Level-0 table #115: started
|
||||||
|
2023/08/26-05:36:09.833846 7f2b69bff6c0 Level-0 table #115: 0 bytes OK
|
||||||
|
2023/08/26-05:36:09.840534 7f2b69bff6c0 Delete type=0 #113
|
||||||
|
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/26-05:36:09.847688 7f2b69bff6c0 Manual compaction at level-1 from '!items!05yAsPAteobyHoVT' @ 72057594037927935 : 1 .. '!items!yFhVFTqzLKcqApBr' @ 0 : 0; will stop at (end)
|
BIN
packs/complications/MANIFEST-000116
Normal file
BIN
packs/complications/MANIFEST-000116
Normal file
Binary file not shown.
BIN
packs/equipment/000099.ldb
Normal file
BIN
packs/equipment/000099.ldb
Normal file
Binary file not shown.
0
packs/equipment/000120.log
Normal file
0
packs/equipment/000120.log
Normal file
1
packs/equipment/CURRENT
Normal file
1
packs/equipment/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000118
|
0
packs/equipment/LOCK
Normal file
0
packs/equipment/LOCK
Normal file
8
packs/equipment/LOG
Normal file
8
packs/equipment/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-09:36:55.581647 7f2dea7fc6c0 Recovering log #116
|
||||||
|
2023/08/26-09:36:55.613104 7f2dea7fc6c0 Delete type=3 #114
|
||||||
|
2023/08/26-09:36:55.613185 7f2dea7fc6c0 Delete type=0 #116
|
||||||
|
2023/08/26-09:47:17.031250 7f2b69bff6c0 Level-0 table #121: started
|
||||||
|
2023/08/26-09:47:17.031303 7f2b69bff6c0 Level-0 table #121: 0 bytes OK
|
||||||
|
2023/08/26-09:47:17.068068 7f2b69bff6c0 Delete type=0 #119
|
||||||
|
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)
|
8
packs/equipment/LOG.old
Normal file
8
packs/equipment/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-05:35:25.591750 7f2dea7fc6c0 Recovering log #112
|
||||||
|
2023/08/26-05:35:25.654891 7f2dea7fc6c0 Delete type=3 #110
|
||||||
|
2023/08/26-05:35:25.654982 7f2dea7fc6c0 Delete type=0 #112
|
||||||
|
2023/08/26-05:36:09.796628 7f2b69bff6c0 Level-0 table #117: started
|
||||||
|
2023/08/26-05:36:09.796668 7f2b69bff6c0 Level-0 table #117: 0 bytes OK
|
||||||
|
2023/08/26-05:36:09.803598 7f2b69bff6c0 Delete type=0 #115
|
||||||
|
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)
|
BIN
packs/equipment/MANIFEST-000118
Normal file
BIN
packs/equipment/MANIFEST-000118
Normal file
Binary file not shown.
BIN
packs/maneuvers/000005.ldb
Normal file
BIN
packs/maneuvers/000005.ldb
Normal file
Binary file not shown.
0
packs/maneuvers/000110.log
Normal file
0
packs/maneuvers/000110.log
Normal file
1
packs/maneuvers/CURRENT
Normal file
1
packs/maneuvers/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000108
|
0
packs/maneuvers/LOCK
Normal file
0
packs/maneuvers/LOCK
Normal file
8
packs/maneuvers/LOG
Normal file
8
packs/maneuvers/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-09:36:55.640615 7f2dea7fc6c0 Recovering log #106
|
||||||
|
2023/08/26-09:36:55.658513 7f2dea7fc6c0 Delete type=3 #104
|
||||||
|
2023/08/26-09:36:55.658566 7f2dea7fc6c0 Delete type=0 #106
|
||||||
|
2023/08/26-09:47:17.348939 7f2b69bff6c0 Level-0 table #111: started
|
||||||
|
2023/08/26-09:47:17.348972 7f2b69bff6c0 Level-0 table #111: 0 bytes OK
|
||||||
|
2023/08/26-09:47:17.377099 7f2b69bff6c0 Delete type=0 #109
|
||||||
|
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/26-09:47:17.377305 7f2b69bff6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
|
8
packs/maneuvers/LOG.old
Normal file
8
packs/maneuvers/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-05:35:25.713305 7f2debfff6c0 Recovering log #102
|
||||||
|
2023/08/26-05:35:25.813680 7f2debfff6c0 Delete type=3 #100
|
||||||
|
2023/08/26-05:35:25.813733 7f2debfff6c0 Delete type=0 #102
|
||||||
|
2023/08/26-05:36:09.827049 7f2b69bff6c0 Level-0 table #107: started
|
||||||
|
2023/08/26-05:36:09.827083 7f2b69bff6c0 Level-0 table #107: 0 bytes OK
|
||||||
|
2023/08/26-05:36:09.833693 7f2b69bff6c0 Delete type=0 #105
|
||||||
|
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/26-05:36:09.847666 7f2b69bff6c0 Manual compaction at level-1 from '!items!0HeZcvevni63brWf' @ 72057594037927935 : 1 .. '!items!yAT32VYV2aIWOBkK' @ 0 : 0; will stop at (end)
|
BIN
packs/maneuvers/MANIFEST-000108
Normal file
BIN
packs/maneuvers/MANIFEST-000108
Normal file
Binary file not shown.
BIN
packs/perks/000005.ldb
Normal file
BIN
packs/perks/000005.ldb
Normal file
Binary file not shown.
0
packs/perks/000118.log
Normal file
0
packs/perks/000118.log
Normal file
1
packs/perks/CURRENT
Normal file
1
packs/perks/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000116
|
0
packs/perks/LOCK
Normal file
0
packs/perks/LOCK
Normal file
8
packs/perks/LOG
Normal file
8
packs/perks/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-09:36:55.643370 7f2debfff6c0 Recovering log #114
|
||||||
|
2023/08/26-09:36:55.661508 7f2debfff6c0 Delete type=3 #112
|
||||||
|
2023/08/26-09:36:55.661568 7f2debfff6c0 Delete type=0 #114
|
||||||
|
2023/08/26-09:47:17.415364 7f2b69bff6c0 Level-0 table #119: started
|
||||||
|
2023/08/26-09:47:17.415408 7f2b69bff6c0 Level-0 table #119: 0 bytes OK
|
||||||
|
2023/08/26-09:47:17.468404 7f2b69bff6c0 Delete type=0 #117
|
||||||
|
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/26-09:47:17.468570 7f2b69bff6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
|
8
packs/perks/LOG.old
Normal file
8
packs/perks/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-05:35:25.714189 7f2deaffd6c0 Recovering log #110
|
||||||
|
2023/08/26-05:35:25.838791 7f2deaffd6c0 Delete type=3 #108
|
||||||
|
2023/08/26-05:35:25.838847 7f2deaffd6c0 Delete type=0 #110
|
||||||
|
2023/08/26-05:36:09.840742 7f2b69bff6c0 Level-0 table #115: started
|
||||||
|
2023/08/26-05:36:09.840802 7f2b69bff6c0 Level-0 table #115: 0 bytes OK
|
||||||
|
2023/08/26-05:36:09.847326 7f2b69bff6c0 Delete type=0 #113
|
||||||
|
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/26-05:36:09.847709 7f2b69bff6c0 Manual compaction at level-1 from '!items!L3vwlIh3oloE6A8W' @ 72057594037927935 : 1 .. '!items!yWTR7MCOtGWm1KCz' @ 0 : 0; will stop at (end)
|
BIN
packs/perks/MANIFEST-000116
Normal file
BIN
packs/perks/MANIFEST-000116
Normal file
Binary file not shown.
BIN
packs/powers/000062.ldb
Normal file
BIN
packs/powers/000062.ldb
Normal file
Binary file not shown.
0
packs/powers/000119.log
Normal file
0
packs/powers/000119.log
Normal file
1
packs/powers/CURRENT
Normal file
1
packs/powers/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000117
|
0
packs/powers/LOCK
Normal file
0
packs/powers/LOCK
Normal file
8
packs/powers/LOG
Normal file
8
packs/powers/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-09:36:55.615731 7f2deb7fe6c0 Recovering log #115
|
||||||
|
2023/08/26-09:36:55.638127 7f2deb7fe6c0 Delete type=3 #113
|
||||||
|
2023/08/26-09:36:55.638240 7f2deb7fe6c0 Delete type=0 #115
|
||||||
|
2023/08/26-09:47:17.273897 7f2b69bff6c0 Level-0 table #120: started
|
||||||
|
2023/08/26-09:47:17.273922 7f2b69bff6c0 Level-0 table #120: 0 bytes OK
|
||||||
|
2023/08/26-09:47:17.308253 7f2b69bff6c0 Delete type=0 #118
|
||||||
|
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/26-09:47:17.377280 7f2b69bff6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
|
8
packs/powers/LOG.old
Normal file
8
packs/powers/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-05:35:25.658202 7f2deb7fe6c0 Recovering log #111
|
||||||
|
2023/08/26-05:35:25.710453 7f2deb7fe6c0 Delete type=3 #109
|
||||||
|
2023/08/26-05:35:25.710530 7f2deb7fe6c0 Delete type=0 #111
|
||||||
|
2023/08/26-05:36:09.820280 7f2b69bff6c0 Level-0 table #116: started
|
||||||
|
2023/08/26-05:36:09.820311 7f2b69bff6c0 Level-0 table #116: 0 bytes OK
|
||||||
|
2023/08/26-05:36:09.826570 7f2b69bff6c0 Delete type=0 #114
|
||||||
|
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/26-05:36:09.847643 7f2b69bff6c0 Manual compaction at level-1 from '!items!3vinyVxuFdrQDCBo' @ 72057594037927935 : 1 .. '!items!zpF2QY4tx7qdBomQ' @ 0 : 0; will stop at (end)
|
BIN
packs/powers/MANIFEST-000117
Normal file
BIN
packs/powers/MANIFEST-000117
Normal file
Binary file not shown.
BIN
packs/skills/000005.ldb
Normal file
BIN
packs/skills/000005.ldb
Normal file
Binary file not shown.
0
packs/skills/000118.log
Normal file
0
packs/skills/000118.log
Normal file
1
packs/skills/CURRENT
Normal file
1
packs/skills/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000116
|
0
packs/skills/LOCK
Normal file
0
packs/skills/LOCK
Normal file
8
packs/skills/LOG
Normal file
8
packs/skills/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-09:36:55.581650 7f2deaffd6c0 Recovering log #114
|
||||||
|
2023/08/26-09:36:55.613104 7f2deaffd6c0 Delete type=3 #112
|
||||||
|
2023/08/26-09:36:55.613190 7f2deaffd6c0 Delete type=0 #114
|
||||||
|
2023/08/26-09:47:17.245521 7f2b69bff6c0 Level-0 table #119: started
|
||||||
|
2023/08/26-09:47:17.245592 7f2b69bff6c0 Level-0 table #119: 0 bytes OK
|
||||||
|
2023/08/26-09:47:17.273789 7f2b69bff6c0 Delete type=0 #117
|
||||||
|
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/26-09:47:17.377298 7f2b69bff6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
|
8
packs/skills/LOG.old
Normal file
8
packs/skills/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-05:35:25.591750 7f2deaffd6c0 Recovering log #110
|
||||||
|
2023/08/26-05:35:25.654890 7f2deaffd6c0 Delete type=3 #108
|
||||||
|
2023/08/26-05:35:25.654974 7f2deaffd6c0 Delete type=0 #110
|
||||||
|
2023/08/26-05:36:09.813203 7f2b69bff6c0 Level-0 table #115: started
|
||||||
|
2023/08/26-05:36:09.813236 7f2b69bff6c0 Level-0 table #115: 0 bytes OK
|
||||||
|
2023/08/26-05:36:09.819942 7f2b69bff6c0 Delete type=0 #113
|
||||||
|
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/26-05:36:09.820177 7f2b69bff6c0 Manual compaction at level-1 from '!items!0663RVbZRl0oZ0Dr' @ 72057594037927935 : 1 .. '!items!zLKcnLGEcMwECjni' @ 0 : 0; will stop at (end)
|
BIN
packs/skills/MANIFEST-000116
Normal file
BIN
packs/skills/MANIFEST-000116
Normal file
Binary file not shown.
BIN
packs/talents/000005.ldb
Normal file
BIN
packs/talents/000005.ldb
Normal file
Binary file not shown.
0
packs/talents/000118.log
Normal file
0
packs/talents/000118.log
Normal file
1
packs/talents/CURRENT
Normal file
1
packs/talents/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000116
|
0
packs/talents/LOCK
Normal file
0
packs/talents/LOCK
Normal file
8
packs/talents/LOG
Normal file
8
packs/talents/LOG
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-09:36:55.660955 7f2deb7fe6c0 Recovering log #114
|
||||||
|
2023/08/26-09:36:55.671184 7f2deb7fe6c0 Delete type=3 #112
|
||||||
|
2023/08/26-09:36:55.671335 7f2deb7fe6c0 Delete type=0 #114
|
||||||
|
2023/08/26-09:47:17.377408 7f2b69bff6c0 Level-0 table #119: started
|
||||||
|
2023/08/26-09:47:17.377442 7f2b69bff6c0 Level-0 table #119: 0 bytes OK
|
||||||
|
2023/08/26-09:47:17.415173 7f2b69bff6c0 Delete type=0 #117
|
||||||
|
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/26-09:47:17.468563 7f2b69bff6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
|
8
packs/talents/LOG.old
Normal file
8
packs/talents/LOG.old
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
2023/08/26-05:35:25.815813 7f2deb7fe6c0 Recovering log #110
|
||||||
|
2023/08/26-05:35:25.893020 7f2deb7fe6c0 Delete type=3 #108
|
||||||
|
2023/08/26-05:35:25.893112 7f2deb7fe6c0 Delete type=0 #110
|
||||||
|
2023/08/26-05:36:09.847777 7f2b69bff6c0 Level-0 table #115: started
|
||||||
|
2023/08/26-05:36:09.847839 7f2b69bff6c0 Level-0 table #115: 0 bytes OK
|
||||||
|
2023/08/26-05:36:09.855108 7f2b69bff6c0 Delete type=0 #113
|
||||||
|
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/26-05:36:09.855380 7f2b69bff6c0 Manual compaction at level-1 from '!items!1oojD2KMJsxNlMez' @ 72057594037927935 : 1 .. '!items!znoFgVzNQOCTGUBl' @ 0 : 0; will stop at (end)
|
BIN
packs/talents/MANIFEST-000116
Normal file
BIN
packs/talents/MANIFEST-000116
Normal file
Binary file not shown.
0
packs/weapons/000088.log
Normal file
0
packs/weapons/000088.log
Normal file
1
packs/weapons/CURRENT
Normal file
1
packs/weapons/CURRENT
Normal file
@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000086
|
0
packs/weapons/LOCK
Normal file
0
packs/weapons/LOCK
Normal file
7
packs/weapons/LOG
Normal file
7
packs/weapons/LOG
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
2023/08/24-15:57:43.392826 7fab4affd6c0 Recovering log #84
|
||||||
|
2023/08/24-15:57:43.403060 7fab4affd6c0 Delete type=3 #82
|
||||||
|
2023/08/24-15:57:43.403157 7fab4affd6c0 Delete type=0 #84
|
||||||
|
2023/08/24-15:59:11.995583 7fab497fa6c0 Level-0 table #89: started
|
||||||
|
2023/08/24-15:59:11.995614 7fab497fa6c0 Level-0 table #89: 0 bytes OK
|
||||||
|
2023/08/24-15:59:12.004480 7fab497fa6c0 Delete type=0 #87
|
||||||
|
2023/08/24-15:59:12.025495 7fab497fa6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
7
packs/weapons/LOG.old
Normal file
7
packs/weapons/LOG.old
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
2023/08/24-15:09:37.452353 7fab4b7fe6c0 Recovering log #80
|
||||||
|
2023/08/24-15:09:37.462595 7fab4b7fe6c0 Delete type=3 #78
|
||||||
|
2023/08/24-15:09:37.462673 7fab4b7fe6c0 Delete type=0 #80
|
||||||
|
2023/08/24-15:56:20.976153 7fab497fa6c0 Level-0 table #85: started
|
||||||
|
2023/08/24-15:56:20.976179 7fab497fa6c0 Level-0 table #85: 0 bytes OK
|
||||||
|
2023/08/24-15:56:20.984268 7fab497fa6c0 Delete type=0 #83
|
||||||
|
2023/08/24-15:56:20.984458 7fab497fa6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
BIN
packs/weapons/MANIFEST-000086
Normal file
BIN
packs/weapons/MANIFEST-000086
Normal file
Binary file not shown.
@ -63,6 +63,10 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.app.sidebar-popout .window-content {
|
||||||
|
color: rgba(4, 44, 44, 0.98);
|
||||||
|
}
|
||||||
|
|
||||||
.window-header{
|
.window-header{
|
||||||
background: rgba(0,0,0,0.75);
|
background: rgba(0,0,0,0.75);
|
||||||
}
|
}
|
||||||
@ -70,13 +74,13 @@
|
|||||||
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);
|
||||||
}
|
}
|
||||||
.dialog .dialog-buttons button.default {
|
.dialog .dialog-buttons button.default {
|
||||||
color: rgba(224, 208, 197, 0.9);
|
color: rgba(4, 44, 44, 0.98);
|
||||||
}
|
}
|
||||||
.window-app.sheet .window-content {
|
.window-app.sheet .window-content {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@ -645,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;
|
||||||
@ -1035,6 +1044,31 @@ ul, li {
|
|||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.chat-card-small-button {
|
||||||
|
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
||||||
|
background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%);
|
||||||
|
background-color: #7d5d3b00;
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px ridge #846109;
|
||||||
|
display: inline-block;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #ffffff;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
text-decoration: none;
|
||||||
|
text-shadow: 0px 1px 0px #4d3534;
|
||||||
|
position: relative;
|
||||||
|
margin:1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat-card-small-button:hover {
|
||||||
|
background: linear-gradient(to bottom, #800000 5%, #3e0101 100%);
|
||||||
|
background-color: red;
|
||||||
|
}
|
||||||
|
.chat-card-small-button:active {
|
||||||
|
position:relative;
|
||||||
|
top:1px;
|
||||||
|
}
|
||||||
|
|
||||||
.chat-card-button {
|
.chat-card-button {
|
||||||
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
box-shadow: inset 0px 1px 0px 0px #a6827e;
|
||||||
background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%);
|
background: linear-gradient(to bottom, #21374afc 5%, #152833ab 100%);
|
||||||
@ -1118,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1258,6 +1292,9 @@ Focus FOC: #ff0084
|
|||||||
background: black;
|
background: black;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
.item-packed {
|
||||||
|
flex-grow:0;
|
||||||
|
}
|
||||||
.items-title-text {
|
.items-title-text {
|
||||||
margin-left: 4px;
|
margin-left: 4px;
|
||||||
}
|
}
|
||||||
@ -1328,6 +1365,12 @@ 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 {
|
||||||
|
flex-grow:1;
|
||||||
|
max-width: 14rem;
|
||||||
|
min-width: 14rem;
|
||||||
}
|
}
|
||||||
.item-field-label-long-img {
|
.item-field-label-long-img {
|
||||||
flex-grow:1;
|
flex-grow:1;
|
||||||
@ -1373,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;
|
||||||
@ -1383,3 +1431,16 @@ Focus FOC: #ff0084
|
|||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
.margin-left-4 {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
.margin-left-8 {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
.maneuver-is-stock {
|
||||||
|
display: none;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
.compendium .directory-list .directory-item .folder-header h3 {
|
||||||
|
color:#000
|
||||||
|
}
|
||||||
|
37
system.json
37
system.json
@ -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",
|
||||||
@ -66,6 +57,15 @@
|
|||||||
"private": false,
|
"private": false,
|
||||||
"flags": {}
|
"flags": {}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "Item",
|
||||||
|
"label": "Maneuvers",
|
||||||
|
"name": "maneuvers",
|
||||||
|
"path": "packs/maneuvers.db",
|
||||||
|
"system": "fvtt-hero-system-6",
|
||||||
|
"private": false,
|
||||||
|
"flags": {}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "Item",
|
"type": "Item",
|
||||||
"label": "Perks",
|
"label": "Perks",
|
||||||
@ -91,16 +91,15 @@
|
|||||||
"styles": [
|
"styles": [
|
||||||
"styles/simple.css"
|
"styles/simple.css"
|
||||||
],
|
],
|
||||||
"version": "10.0.45",
|
"version": "11.0.16",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "10",
|
"minimum": "11",
|
||||||
"verified": "10",
|
"verified": "11"
|
||||||
"maximum": "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-v10.0.45.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": "images/ui/hro6_welcome_page.webp",
|
"background": "systems/fvtt-hero-system-6/images/ui/hero_foundry_cover.webp",
|
||||||
"id": "fvtt-hero-system-6"
|
"id": "fvtt-hero-system-6"
|
||||||
}
|
}
|
@ -1,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"Actor": {
|
"Actor": {
|
||||||
"types": [
|
"types": [
|
||||||
"character"
|
"character",
|
||||||
|
"minion"
|
||||||
],
|
],
|
||||||
"templates": {
|
"templates": {
|
||||||
"biodata": {
|
"biodata": {
|
||||||
@ -56,6 +57,7 @@
|
|||||||
"value": 10,
|
"value": 10,
|
||||||
"base": 10,
|
"base": 10,
|
||||||
"hasroll": true,
|
"hasroll": true,
|
||||||
|
"initiative": 10,
|
||||||
"category": "main"
|
"category": "main"
|
||||||
},
|
},
|
||||||
"con": {
|
"con": {
|
||||||
@ -71,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",
|
||||||
@ -89,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",
|
||||||
@ -107,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",
|
||||||
@ -204,6 +206,7 @@
|
|||||||
"ismovement": true,
|
"ismovement": true,
|
||||||
"hasroll": false,
|
"hasroll": false,
|
||||||
"value": 12,
|
"value": 12,
|
||||||
|
"ncvalue": 24,
|
||||||
"base": 12
|
"base": 12
|
||||||
},
|
},
|
||||||
"swimming": {
|
"swimming": {
|
||||||
@ -211,6 +214,7 @@
|
|||||||
"ismovement": true,
|
"ismovement": true,
|
||||||
"hasroll": false,
|
"hasroll": false,
|
||||||
"value": 4,
|
"value": 4,
|
||||||
|
"ncvalue": 8,
|
||||||
"base": 4
|
"base": 4
|
||||||
},
|
},
|
||||||
"leaping": {
|
"leaping": {
|
||||||
@ -218,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,
|
||||||
@ -230,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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -299,6 +310,15 @@
|
|||||||
"movements"
|
"movements"
|
||||||
],
|
],
|
||||||
"subactors": []
|
"subactors": []
|
||||||
|
},
|
||||||
|
"minion": {
|
||||||
|
"templates": [
|
||||||
|
"biodata",
|
||||||
|
"characteristics",
|
||||||
|
"defenses",
|
||||||
|
"movements"
|
||||||
|
],
|
||||||
|
"subactors": []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Item": {
|
"Item": {
|
||||||
@ -337,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": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -353,6 +376,8 @@
|
|||||||
"pha": "",
|
"pha": "",
|
||||||
"ocv": "",
|
"ocv": "",
|
||||||
"dcv" : "",
|
"dcv" : "",
|
||||||
|
"omcv": "",
|
||||||
|
"dmcv" : "",
|
||||||
"isstock": false,
|
"isstock": false,
|
||||||
"active": false
|
"active": false
|
||||||
},
|
},
|
||||||
@ -394,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": [
|
||||||
|
@ -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=""> </label>
|
<label class=""> </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=""> </label>
|
<label class=""> </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=""> </label>
|
<label class=""> </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=""> </label>
|
<label class=""> </label>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -127,49 +137,73 @@
|
|||||||
<label class="item-field-label-short"> </label>
|
<label class="item-field-label-short"> </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"> </label>
|
<label class="item-field-label-short"> </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-short">
|
<span class="item-field-label-very-short">
|
||||||
<label class="short-label">DCV</label>
|
<label class="short-label">DCV</label>
|
||||||
</span>
|
</span>
|
||||||
<span class="item-field-label-long">
|
{{/if}}
|
||||||
|
|
||||||
|
<span class="item-field-text-long">
|
||||||
<label class="short-label">Effects</label>
|
<label class="short-label">Effects</label>
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
{{#each mlist as |maneuver key|}}
|
{{#each mlist as |maneuver key|}}
|
||||||
<li class="item flexrow list-item list-item-shadow" data-item-id="{{maneuver._id}}">
|
<li class="item flexrow list-item list-item-shadow " data-item-id="{{maneuver._id}}">
|
||||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
src="{{maneuver.img}}" /></a>
|
src="{{maneuver.img}}" /></a>
|
||||||
<span class="item-field-label-long">{{maneuver.name}}</span>
|
<a class="roll-item"><i class="fas fa-dice"></i></a><span class="item-field-label-long">{{maneuver.name}}
|
||||||
|
</span>
|
||||||
|
|
||||||
<span class="item-field-label-very-short">{{maneuver.system.pha}}</span>
|
<span class="item-field-label-very-short content-center">{{maneuver.system.pha}}</span>
|
||||||
<span class="item-field-label-very-short">{{maneuver.system.ocv}}</span>
|
{{#if (eq ../mtype "mental")}}
|
||||||
<span class="item-field-label-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-label-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="item-field-label-short"> </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>
|
||||||
@ -179,16 +213,27 @@
|
|||||||
<div>
|
<div>
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
<li class="flexrow item">
|
<li class="flexrow item">
|
||||||
<label class="item-field-label-medium">SPD</label>
|
|
||||||
<input type="text" class="item-field-label-short update-field" data-field-name="system.characteristics.spd.value" value="{{characteristics.spd.value}}" data-dtype="Number" />
|
|
||||||
|
|
||||||
<span class="item-field-label-very-short"> </span>
|
<label class="item-packed">Initiative</label>
|
||||||
<button class="chat-card-button item-field-label-medium hold-action">Hold/Unhold</button>
|
<input type="text" class="margin-left-4item-packed item-field-label-very-short update-field"
|
||||||
<button class="chat-card-button item-field-label-medium abort-action">Abort/Unabort</button>
|
data-field-name="system.characteristics.dex.initiative" value="{{characteristics.dex.initiative}}"
|
||||||
<span class=""> </span>
|
data-dtype="Number" />
|
||||||
|
|
||||||
<label class="item-field-label-long">Presence attack</label>
|
<label class="items-title-text item-packed margin-left-8">SPD</label>
|
||||||
<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}}</a>
|
<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-4 abort-action item-packed">{{#if
|
||||||
|
isAbort}}Unabort{{else}}Abort{{/if}}</button>
|
||||||
|
|
||||||
|
<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}}">
|
||||||
|
<i class="fas fa-dice"></i>{{system.biodata.presenceattack.displayFormula}}
|
||||||
|
</a>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -211,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}}
|
||||||
@ -238,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"> </label>
|
<label class="item-field-label-short"> </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"> </label>
|
<label class="item-field-label-short"> </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"> </label>
|
<label class="item-field-label-short"> </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">
|
||||||
@ -297,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>
|
||||||
@ -310,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>
|
||||||
@ -320,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>
|
||||||
@ -399,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"> </div>
|
<div class="item-filler"> </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>
|
||||||
@ -427,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"> </span>
|
<span class="item-field-label-short"> </span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@ -458,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"> </span>
|
<span class="item-field-label-short"> </span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@ -474,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">
|
||||||
@ -488,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|}}
|
||||||
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{maneuver._id}}">
|
{{#if (ne maneuver.system.maneuvertype "mental")}}
|
||||||
|
<div class="{{#if maneuver.system.isstock}}maneuver-list maneuver-is-stock{{/if}}">
|
||||||
|
<li class="item stat flexrow list-item list-item-shadow " data-item-id="{{maneuver._id}}">
|
||||||
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
src="{{maneuver.img}}" /></a>
|
src="{{maneuver.img}}" /></a>
|
||||||
<span class="item-field-label-long">{{maneuver.name}}</span>
|
<span class="item-field-label-long"><a class="roll-item"><i class="fas fa-dice"></i>{{maneuver.name}}</a></span>
|
||||||
|
|
||||||
<span class="item-field-label-short">{{maneuver.system.pha}}</span>
|
<span class="item-field-label-short">{{maneuver.system.pha}}</span>
|
||||||
<span class="item-field-label-short">{{maneuver.system.ocv}}</span>
|
<span class="item-field-label-short">{{maneuver.system.ocv}}</span>
|
||||||
<span class="item-field-label-short">{{maneuver.system.dcv}}</span>
|
<span class="item-field-label-short">{{maneuver.system.dcv}}</span>
|
||||||
|
|
||||||
<span class="item-field-label-long">{{maneuver.system.effects}}</span>
|
<span class="item-field-label-long3">{{maneuver.system.effects}}</span>
|
||||||
|
|
||||||
<div class="item-filler"> </div>
|
<div class="item-filler"> </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"> </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 --}}
|
||||||
@ -545,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"> </span>
|
<span class="item-field-label-short"> </span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@ -581,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"> </span>
|
<span class="item-field-label-short"> </span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@ -604,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>
|
||||||
|
|
||||||
|
@ -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}}
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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)}}
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -21,5 +21,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</form>
|
</form>
|
||||||
|
@ -67,5 +67,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</form>
|
</form>
|
||||||
|
@ -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>
|
||||||
|
@ -24,5 +24,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</form>
|
</form>
|
||||||
|
@ -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>
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
@ -23,5 +23,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</form>
|
</form>
|
||||||
|
@ -103,5 +103,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{> systems/fvtt-hero-system-6/templates/partials/partial-item-notes.hbs}}
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
</form>
|
</form>
|
||||||
|
@ -3,33 +3,114 @@
|
|||||||
<span class="item-name-img">
|
<span class="item-name-img">
|
||||||
<label class=""> </label>
|
<label class=""> </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"> </label>
|
||||||
</span>
|
</span>
|
||||||
|
<span class="item-field-label-very-short">
|
||||||
|
<label class="item-field-label-very-short"> </label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-very-short">
|
||||||
|
<label class="item-field-label-very-short"> </label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-very-short">
|
||||||
|
<label class="item-field-label-very-short"> </label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-very-short">
|
||||||
|
<label class="item-field-label-very-short"> </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"> </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"> </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"> </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"> </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>
|
||||||
|
@ -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> </label> </span>
|
||||||
|
<span class="item-field-label-very-short"><label> </label> </span>
|
||||||
|
<span class="item-field-label-very-short"><label> </label> </span>
|
||||||
|
<span class="item-field-label-very-short"><label> </label> </span>
|
||||||
|
<span class="item-field-label-very-short"><label> </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> </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> </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> </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"> </span>
|
<span class="item-field-label-short"> </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"> </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>
|
||||||
|
@ -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">
|
||||||
|
@ -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>
|
||||||
|
8
templates/partials/partial-item-notes.hbs
Normal file
8
templates/partials/partial-item-notes.hbs
Normal 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>
|
@ -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>
|
||||||
|
Reference in New Issue
Block a user