Various fixes and enhancents
This commit is contained in:
parent
bc7910a50d
commit
7d8791f675
28
lang/en.json
28
lang/en.json
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
"WH.ui.hpprog": "HP Progression",
|
"WH.ui.hpprog": "HP Progression",
|
||||||
"WH.ui.lan": "Languages",
|
"WH.ui.lan": "Languages",
|
||||||
"WH.ui.attrbonus": "Attribute (+4/Lvl4, +2/Lvl8)",
|
"WH.ui.attrbonus": "Attribute",
|
||||||
"WH.ui.weapons": "Weapons",
|
"WH.ui.weapons": "Weapons",
|
||||||
"WH.ui.armors": "Armors",
|
"WH.ui.armors": "Armors",
|
||||||
"WH.ui.shields": "Shields",
|
"WH.ui.shields": "Shields",
|
||||||
@ -46,10 +46,13 @@
|
|||||||
"WH.ui.Type": "Type",
|
"WH.ui.Type": "Type",
|
||||||
"WH.ui.HitPoints": "Hit Points",
|
"WH.ui.HitPoints": "Hit Points",
|
||||||
"WH.ui.Defence": "Defence",
|
"WH.ui.Defence": "Defence",
|
||||||
"WH.ui.Throw2Hit": "Throw to Hit",
|
"WH.ui.Throw2HitM": "Throw to Hit (Melee)",
|
||||||
|
"WH.ui.Throw2HitR": "Throw to Hit (Ranged)",
|
||||||
"WH.ui.Mana": "Mana",
|
"WH.ui.Mana": "Mana",
|
||||||
"WH.ui.Initiative": "Initiative",
|
"WH.ui.Initiative": "Initiative",
|
||||||
"WH.ui.Movement": "Movement",
|
"WH.ui.Movement": "Movement (Earth)",
|
||||||
|
"WH.ui.MovementSwim": "Movement (Swim)",
|
||||||
|
"WH.ui.MovementFly": "Movement (Fly)",
|
||||||
"WH.ui.power": "Power",
|
"WH.ui.power": "Power",
|
||||||
|
|
||||||
"WH.ui.Qty": "Qty",
|
"WH.ui.Qty": "Qty",
|
||||||
@ -57,5 +60,22 @@
|
|||||||
"WH.ui.slotsused": "Slots used",
|
"WH.ui.slotsused": "Slots used",
|
||||||
"WH.ui.Damage": "Damage",
|
"WH.ui.Damage": "Damage",
|
||||||
"WH.ui.parrybonus": "Parry bonus",
|
"WH.ui.parrybonus": "Parry bonus",
|
||||||
"WH.ui.damagereduction": "Damage reduction"
|
"WH.ui.damagereduction": "Damage reduction",
|
||||||
|
"WH.ui.save": "Save",
|
||||||
|
"WH.ui.XP": "XP",
|
||||||
|
"WH.ui.xphp": "HP Progression",
|
||||||
|
"WH.ui.Knowledge": "Knowledge",
|
||||||
|
"WH.ui.malusmultiweapon": "Mult. Weapons malus",
|
||||||
|
"WH.ui.drbonus": "DR bonus",
|
||||||
|
"WH.ui.parrybonustotal": "Parry bonus total",
|
||||||
|
"WH.ui.drbonustotal": "DR bonus total",
|
||||||
|
"WH.ui.counterspell": "Counter spell",
|
||||||
|
"WH.ui.createitem": "Create item",
|
||||||
|
"WH.ui.classSkills": "Class Skills",
|
||||||
|
"WH.ui.skills": "Skills",
|
||||||
|
"WH.ui.isclassskill": "Class skill ?",
|
||||||
|
"WH.ui.unlimited": "Unlimited use ?",
|
||||||
|
"WH.ui.currentuse": "Current use",
|
||||||
|
"WH.ui.maxuse": "Max use",
|
||||||
|
"WH.ui.languages": "Languages"
|
||||||
}
|
}
|
@ -24,7 +24,13 @@ export class WarheroActorSheet extends ActorSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async getData() {
|
async getData() {
|
||||||
|
|
||||||
|
this.actor.setLevel()
|
||||||
|
this.actor.computeDRTotal()
|
||||||
|
this.actor.computeParryBonusTotal()
|
||||||
|
this.actor.computeBonusLanguages()
|
||||||
const objectData = duplicate(this.object.system)
|
const objectData = duplicate(this.object.system)
|
||||||
|
let race = this.actor.getRace()
|
||||||
|
|
||||||
let formData = {
|
let formData = {
|
||||||
title: this.title,
|
title: this.title,
|
||||||
@ -36,7 +42,9 @@ export class WarheroActorSheet extends ActorSheet {
|
|||||||
cssClass: this.isEditable ? "editable" : "locked",
|
cssClass: this.isEditable ? "editable" : "locked",
|
||||||
system: objectData,
|
system: objectData,
|
||||||
limited: this.object.limited,
|
limited: this.object.limited,
|
||||||
skills: this.actor.getSkills( ),
|
skills: this.actor.getNormalSkills( ),
|
||||||
|
classSkills: this.actor.getClassSkills( ),
|
||||||
|
languages: this.actor.getLanguages( ),
|
||||||
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())),
|
||||||
@ -44,7 +52,7 @@ export class WarheroActorSheet extends ActorSheet {
|
|||||||
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
|
equipments: this.actor.checkAndPrepareEquipments(duplicate(this.actor.getEquipmentsOnly()) ),
|
||||||
slotEquipments: this.actor.buildEquipmentsSlot(),
|
slotEquipments: this.actor.buildEquipmentsSlot(),
|
||||||
subActors: duplicate(this.actor.getSubActors()),
|
subActors: duplicate(this.actor.getSubActors()),
|
||||||
race: duplicate(this.actor.getRace()),
|
race: duplicate(race),
|
||||||
class: duplicate(this.actor.getClass()),
|
class: duplicate(this.actor.getClass()),
|
||||||
moneys: duplicate(this.actor.getMoneys()),
|
moneys: duplicate(this.actor.getMoneys()),
|
||||||
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
|
description: await TextEditor.enrichHTML(this.object.system.biodata.description, {async: true}),
|
||||||
@ -54,8 +62,10 @@ export class WarheroActorSheet extends ActorSheet {
|
|||||||
editScore: this.options.editScore,
|
editScore: this.options.editScore,
|
||||||
isGM: game.user.isGM
|
isGM: game.user.isGM
|
||||||
}
|
}
|
||||||
this.formData = formData;
|
if ( race && race.name) {
|
||||||
|
formData.hpprogression = game.system.warhero.config.progressionList[race.system.hpprogresion]
|
||||||
|
}
|
||||||
|
this.formData = formData
|
||||||
console.log("PC : ", formData, this.object);
|
console.log("PC : ", formData, this.object);
|
||||||
return formData;
|
return formData;
|
||||||
}
|
}
|
||||||
@ -136,6 +146,11 @@ export class WarheroActorSheet extends ActorSheet {
|
|||||||
const statKey = $(event.currentTarget).data("key")
|
const statKey = $(event.currentTarget).data("key")
|
||||||
this.actor.rollFromType(rollType, statKey)
|
this.actor.rollFromType(rollType, statKey)
|
||||||
});
|
});
|
||||||
|
html.find('.roll-save').click((event) => {
|
||||||
|
const rollType = $(event.currentTarget).data("type")
|
||||||
|
const statKey = $(event.currentTarget).data("key")
|
||||||
|
this.actor.rollSaveFromType(rollType, statKey)
|
||||||
|
});
|
||||||
html.find('.roll-weapon').click((event) => {
|
html.find('.roll-weapon').click((event) => {
|
||||||
const li = $(event.currentTarget).parents(".item")
|
const li = $(event.currentTarget).parents(".item")
|
||||||
const weaponId = li.data("item-id")
|
const weaponId = li.data("item-id")
|
||||||
|
@ -170,7 +170,7 @@ export class WarheroActor extends Actor {
|
|||||||
&& it.system.slotlocation == slotName )
|
&& it.system.slotlocation == slotName )
|
||||||
let slotUsed = 0
|
let slotUsed = 0
|
||||||
for(let item of containers[slotName].content) {
|
for(let item of containers[slotName].content) {
|
||||||
slotUsed += item.system.slotused
|
slotUsed += item.system.slotused * ((item.system.quantity) ? item.system.quantity : 1)
|
||||||
}
|
}
|
||||||
containers[slotName].slotUsed = slotUsed
|
containers[slotName].slotUsed = slotUsed
|
||||||
}
|
}
|
||||||
@ -210,13 +210,25 @@ export class WarheroActor extends Actor {
|
|||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
getLanguages() {
|
||||||
|
let comp = this.items.filter(it => it.type == "language")
|
||||||
|
WarheroUtility.sortArrayObjectsByName(comp)
|
||||||
|
return comp
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getNormalSkills() {
|
||||||
|
let comp = this.items.filter(it => it.type == "skill" && !it.system.classskill)
|
||||||
|
WarheroUtility.sortArrayObjectsByName(comp)
|
||||||
|
return comp
|
||||||
|
}
|
||||||
|
getClassSkills() {
|
||||||
|
let comp = this.items.filter(it => it.type == "skill" && it.system.classskill)
|
||||||
|
WarheroUtility.sortArrayObjectsByName(comp)
|
||||||
|
return comp
|
||||||
|
}
|
||||||
getSkills() {
|
getSkills() {
|
||||||
let comp = duplicate(this.items.filter(item => item.type == 'skill') || [])
|
let comp = duplicate(this.items.filter(item => item.type == 'skill') || [])
|
||||||
for (let skill of comp) {
|
|
||||||
WarheroUtility.updateSkill(skill)
|
|
||||||
}
|
|
||||||
WarheroUtility.sortArrayObjectsByName(comp)
|
WarheroUtility.sortArrayObjectsByName(comp)
|
||||||
return comp
|
return comp
|
||||||
}
|
}
|
||||||
@ -534,7 +546,33 @@ export class WarheroActor extends Actor {
|
|||||||
isAttackerAdvantage() {
|
isAttackerAdvantage() {
|
||||||
return this.items.find(cond => cond.type == "condition" && cond.system.targetadvantage)
|
return this.items.find(cond => cond.type == "condition" && cond.system.targetadvantage)
|
||||||
}
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
setLevel() {
|
||||||
|
let xp = this.system.secondary.xp.value
|
||||||
|
this.system.secondary.xp.level = Math.floor(xp/10)
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
computeDRTotal() {
|
||||||
|
let armors = this.items.filter(it => it.type == "armor")
|
||||||
|
let dr = 0
|
||||||
|
for (let armor of armors) {
|
||||||
|
dr += armor.system.damagereduction
|
||||||
|
}
|
||||||
|
this.system.secondary.drbonustotal.value = this.system.secondary.drbonus.value + dr
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
computeParryBonusTotal() {
|
||||||
|
let shields = this.items.filter(it => it.type == "shield")
|
||||||
|
let parry = 0
|
||||||
|
for (let shield of shields) {
|
||||||
|
parry += shield.system.parrybonus
|
||||||
|
}
|
||||||
|
this.system.secondary.parrybonustotal.value = this.system.secondary.parrybonus.value + parry
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
computeBonusLanguages() {
|
||||||
|
this.system.secondary.nblanguage.value = Math.floor(this.system.statistics.min.value / 2)
|
||||||
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
spentMana( mana) {
|
spentMana( mana) {
|
||||||
if ( Number(mana) > this.system.attributes.mana.value) {
|
if ( Number(mana) > this.system.attributes.mana.value) {
|
||||||
@ -562,6 +600,18 @@ export class WarheroActor extends Actor {
|
|||||||
let rollData = this.getCommonRollData()
|
let rollData = this.getCommonRollData()
|
||||||
rollData.mode = rollType
|
rollData.mode = rollType
|
||||||
rollData.stat = stat
|
rollData.stat = stat
|
||||||
|
if ( rollKey == "parrybonustotal") {
|
||||||
|
WarheroUtility.rollParry(rollData)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.startRoll(rollData)
|
||||||
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
rollSaveFromType(rollType, rollKey) {
|
||||||
|
let stat = duplicate(this.system[rollType][rollKey])
|
||||||
|
let rollData = this.getCommonRollData()
|
||||||
|
rollData.mode = "save"
|
||||||
|
rollData.stat = stat
|
||||||
this.startRoll(rollData)
|
this.startRoll(rollData)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -572,7 +622,13 @@ export class WarheroActor extends Actor {
|
|||||||
weapon = duplicate(weapon)
|
weapon = duplicate(weapon)
|
||||||
let rollData = this.getCommonRollData()
|
let rollData = this.getCommonRollData()
|
||||||
rollData.mode = "weapon"
|
rollData.mode = "weapon"
|
||||||
rollData.stat = duplicate(this.system.statistics.dex)
|
if (weapon.system.weapontype ==="shooting" || weapon.system.weapontype ==="throwing") {
|
||||||
|
rollData.stat = duplicate(this.system.attributes.txcr)
|
||||||
|
} else {
|
||||||
|
rollData.stat = duplicate(this.system.attributes.txcm)
|
||||||
|
}
|
||||||
|
rollData.usemWeaponMalus =
|
||||||
|
rollData.mWeaponMalus = this.system.secondary.malusmultiweapon.value
|
||||||
rollData.weapon = weapon
|
rollData.weapon = weapon
|
||||||
rollData.img = weapon.img
|
rollData.img = weapon.img
|
||||||
this.startRoll(rollData)
|
this.startRoll(rollData)
|
||||||
|
@ -21,22 +21,22 @@ export const WARHERO_CONFIG = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
slotNames : {
|
slotNames : {
|
||||||
head: {nbslots: 1, label: "WH.conf.head"},
|
head: {nbslots: 1, itemtype:"armor", label: "WH.conf.head"},
|
||||||
cloak: {nbslots: 1, label: "WH.conf.cloak"},
|
cloak: {nbslots: 1, itemtype:"equipment", label: "WH.conf.cloak"},
|
||||||
weapon1: {nbslots: 1, label: "WH.conf.weapon1"},
|
weapon1: {nbslots: 1, itemtype:"weapon", label: "WH.conf.weapon1"},
|
||||||
weapon2: {nbslots: 1, label: "WH.conf.weapon2"},
|
weapon2: {nbslots: 1, itemtype:"weapon", label: "WH.conf.weapon2"},
|
||||||
gloves: {nbslots: 1, label: "WH.conf.gloves"},
|
gloves: {nbslots: 1, itemtype:"equipment",label: "WH.conf.gloves"},
|
||||||
ring: {nbslots: 10, label: "WH.conf.ring"},
|
ring: {nbslots: 10, itemtype:"equipment",label: "WH.conf.ring"},
|
||||||
dress: {nbslots: 1, label: "WH.conf.dress"},
|
dress: {nbslots: 1, itemtype:"equipment",label: "WH.conf.dress"},
|
||||||
boots: {nbslots: 1, label: "WH.conf.boots"},
|
boots: {nbslots: 1, itemtype:"equipment",label: "WH.conf.boots"},
|
||||||
belt: {nbslots: 6, label: "WH.conf.belt"},
|
belt: {nbslots: 6, itemtype:"equipment",label: "WH.conf.belt"},
|
||||||
quiver: {nbslots: 20, label: "WH.conf.quiver"},
|
quiver: {nbslots: 20, itemtype:"equipment",label: "WH.conf.quiver"},
|
||||||
armor: {nbslots: 1, label: "WH.conf.armor"},
|
armor: {nbslots: 1, itemtype:"armor",label: "WH.conf.armor"},
|
||||||
shield: {nbslots: 1, label: "WH.conf.shield"},
|
shield: {nbslots: 1, itemtype:"shield",label: "WH.conf.shield"},
|
||||||
backpack: {nbslots: 12, label: "WH.conf.backpack"},
|
backpack: {nbslots: 12, itemtype:"equipment",label: "WH.conf.backpack"},
|
||||||
beltpouch1: {nbslots: 4, label: "WH.conf.beltpouch1"},
|
beltpouch1: {nbslots: 4, itemtype:"equipment",label: "WH.conf.beltpouch1"},
|
||||||
beltpouch2: {nbslots: 4, label: "WH.conf.beltpouch2"},
|
beltpouch2: {nbslots: 4, itemtype:"equipment", label: "WH.conf.beltpouch2"},
|
||||||
beltpouch3: {nbslots: 4, label: "WH.conf.beltpouch3"},
|
beltpouch3: {nbslots: 4, itemtype:"equipment", label: "WH.conf.beltpouch3"},
|
||||||
},
|
},
|
||||||
|
|
||||||
progressionList: {
|
progressionList: {
|
||||||
|
@ -49,9 +49,6 @@ export class WarheroItemSheet extends ItemSheet {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async getData() {
|
async getData() {
|
||||||
|
|
||||||
if ( this.object.type == "skill") {
|
|
||||||
WarheroUtility.updateSkill(this.object)
|
|
||||||
}
|
|
||||||
let objectData = duplicate(this.object.system)
|
let objectData = duplicate(this.object.system)
|
||||||
|
|
||||||
let itemData = objectData
|
let itemData = objectData
|
||||||
@ -66,6 +63,7 @@ export class WarheroItemSheet extends ItemSheet {
|
|||||||
config: game.system.warhero.config,
|
config: game.system.warhero.config,
|
||||||
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
|
description: await TextEditor.enrichHTML(this.object.system.description, {async: true}),
|
||||||
system: itemData,
|
system: itemData,
|
||||||
|
statistics: duplicate(game.system.template.Actor.templates.core.statistics),
|
||||||
limited: this.object.limited,
|
limited: this.object.limited,
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
|
@ -5,7 +5,7 @@ export class WarheroRollDialog extends Dialog {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async create(actor, rollData) {
|
static async create(actor, rollData) {
|
||||||
|
|
||||||
let options = { classes: ["WarheroDialog"], width: 320, height: 'fit-content', 'z-index': 99999 };
|
let options = { classes: ["WarheroDialog"], width: 420, height: 'fit-content', 'z-index': 99999 };
|
||||||
let html = await renderTemplate('systems/fvtt-warhero/templates/roll-dialog-generic.html', rollData);
|
let html = await renderTemplate('systems/fvtt-warhero/templates/roll-dialog-generic.html', rollData);
|
||||||
|
|
||||||
return new WarheroRollDialog(actor, rollData, html, options);
|
return new WarheroRollDialog(actor, rollData, html, options);
|
||||||
@ -64,6 +64,10 @@ export class WarheroRollDialog extends Dialog {
|
|||||||
html.find('#bonusMalus').change((event) => {
|
html.find('#bonusMalus').change((event) => {
|
||||||
this.rollData.bonusMalus = Number(event.currentTarget.value)
|
this.rollData.bonusMalus = Number(event.currentTarget.value)
|
||||||
})
|
})
|
||||||
|
html.find('#usemWeaponMalus').change((event) => {
|
||||||
|
this.rollData.usemWeaponMalus = event.currentTarget.checked
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -208,23 +208,6 @@ export class WarheroUtility {
|
|||||||
html.on("click", '.view-item-from-chat', event => {
|
html.on("click", '.view-item-from-chat', event => {
|
||||||
game.system.crucible.creator.openItemView(event)
|
game.system.crucible.creator.openItemView(event)
|
||||||
})
|
})
|
||||||
html.on("click", '.roll-defense-melee', event => {
|
|
||||||
let rollId = $(event.currentTarget).data("roll-id")
|
|
||||||
let rollData = WarheroUtility.getRollData(rollId)
|
|
||||||
rollData.defenseWeaponId = $(event.currentTarget).data("defense-weapon-id")
|
|
||||||
let actor = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
|
||||||
if (actor && (game.user.isGM || actor.isOwner)) {
|
|
||||||
actor.rollDefenseMelee(rollData)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
html.on("click", '.roll-defense-ranged', event => {
|
|
||||||
let rollId = $(event.currentTarget).data("roll-id")
|
|
||||||
let rollData = WarheroUtility.getRollData(rollId)
|
|
||||||
let defender = game.canvas.tokens.get(rollData.defenderTokenId).actor
|
|
||||||
if (defender && (game.user.isGM || defender.isOwner)) {
|
|
||||||
defender.rollDefenseRanged(rollData)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -319,11 +302,6 @@ export class WarheroUtility {
|
|||||||
this.updateRollData(rollData)
|
this.updateRollData(rollData)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static getRollData(id) {
|
|
||||||
return this.rollDataStore[id]
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async displayDefenseMessage(rollData) {
|
static async displayDefenseMessage(rollData) {
|
||||||
if (rollData.mode == "weapon" && rollData.defenderTokenId) {
|
if (rollData.mode == "weapon" && rollData.defenderTokenId) {
|
||||||
@ -517,10 +495,6 @@ export class WarheroUtility {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static updateSkill(skill) {
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static getDiceFromCover(cover) {
|
static getDiceFromCover(cover) {
|
||||||
if (cover == "cover50") return 1
|
if (cover == "cover50") return 1
|
||||||
@ -534,6 +508,30 @@ export class WarheroUtility {
|
|||||||
if (cover == "engaged") return 1
|
if (cover == "engaged") return 1
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async rollParry(rollData) {
|
||||||
|
let actor = game.actors.get(rollData.actorId)
|
||||||
|
// ability/save/size => 0
|
||||||
|
let diceFormula = "1d12+" + rollData.stat.value
|
||||||
|
let myRoll = rollData.roll
|
||||||
|
if (!myRoll) { // New rolls only of no rerolls
|
||||||
|
myRoll = new Roll(diceFormula).roll({ async: false })
|
||||||
|
await this.showDiceSoNice(myRoll, game.settings.get("core", "rollMode"))
|
||||||
|
}
|
||||||
|
rollData.roll = myRoll
|
||||||
|
rollData.isSuccess = false
|
||||||
|
if (myRoll.total >= 12 || myRoll.terms[0].results[0].result == 12) {
|
||||||
|
rollData.isSuccess = true
|
||||||
|
}
|
||||||
|
if (myRoll.terms[0].results[0].result == 1) {
|
||||||
|
rollData.isSuccess = false
|
||||||
|
}
|
||||||
|
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||||
|
content: await renderTemplate(`systems/fvtt-warhero/templates/chat-parry-result.html`, rollData)
|
||||||
|
})
|
||||||
|
msg.setFlag("world", "rolldata", rollData)
|
||||||
|
console.log("Rolldata result", rollData)
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async rollWarhero(rollData) {
|
static async rollWarhero(rollData) {
|
||||||
@ -569,6 +567,9 @@ export class WarheroUtility {
|
|||||||
if ( rollData.stat) {
|
if ( rollData.stat) {
|
||||||
diceFormula += "+" + rollData.stat.value
|
diceFormula += "+" + rollData.stat.value
|
||||||
}
|
}
|
||||||
|
if ( rollData.usemWeaponMalus) {
|
||||||
|
diceFormula += "+" + rollData.mWeaponMalus
|
||||||
|
}
|
||||||
diceFormula += "+" + rollData.bonusMalus
|
diceFormula += "+" + rollData.bonusMalus
|
||||||
rollData.diceFormula = diceFormula
|
rollData.diceFormula = diceFormula
|
||||||
|
|
||||||
@ -581,8 +582,6 @@ export class WarheroUtility {
|
|||||||
}
|
}
|
||||||
rollData.roll = myRoll
|
rollData.roll = myRoll
|
||||||
|
|
||||||
actor.lastRoll = rollData
|
|
||||||
|
|
||||||
let msg = await this.createChatWithRollMode(rollData.alias, {
|
let msg = await this.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-warhero/templates/chat-generic-result.html`, rollData)
|
content: await renderTemplate(`systems/fvtt-warhero/templates/chat-generic-result.html`, rollData)
|
||||||
})
|
})
|
||||||
|
@ -562,8 +562,8 @@
|
|||||||
|
|
||||||
.list-item {
|
.list-item {
|
||||||
margin: 0.125rem;
|
margin: 0.125rem;
|
||||||
box-shadow: inset 0px 0px 1px #00000096;
|
/*box-shadow: inset 0px 0px 1px #00000096;
|
||||||
border-radius: 0.25rem;
|
border-radius: 0.25rem;*/
|
||||||
padding: 0.125rem;
|
padding: 0.125rem;
|
||||||
flex: 1 1 5rem;
|
flex: 1 1 5rem;
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
@ -1388,6 +1388,9 @@
|
|||||||
background: black;
|
background: black;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
.items-title-bg-red {
|
||||||
|
background: darkred;
|
||||||
|
}
|
||||||
.items-title-text {
|
.items-title-text {
|
||||||
margin-left: 4px;
|
margin-left: 4px;
|
||||||
}
|
}
|
||||||
@ -1465,8 +1468,8 @@
|
|||||||
.item-field-label-vlong {
|
.item-field-label-vlong {
|
||||||
flex-grow:1;
|
flex-grow:1;
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
max-width: 14rem;
|
max-width: 12rem;
|
||||||
min-width: 14rem;
|
min-width: 12rem;
|
||||||
}
|
}
|
||||||
.item-field-label-vlong2 {
|
.item-field-label-vlong2 {
|
||||||
flex-grow:1;
|
flex-grow:1;
|
||||||
|
@ -100,7 +100,7 @@
|
|||||||
"styles": [
|
"styles": [
|
||||||
"styles/simple.css"
|
"styles/simple.css"
|
||||||
],
|
],
|
||||||
"version": "10.0.7",
|
"version": "10.0.18",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "10",
|
"minimum": "10",
|
||||||
"verified": "10",
|
"verified": "10",
|
||||||
@ -108,7 +108,7 @@
|
|||||||
},
|
},
|
||||||
"title": "Warhero RPG",
|
"title": "Warhero RPG",
|
||||||
"manifest": "https://www.uberwald.me/gitea/public/fvtt-warhero/raw/branch/master/system.json",
|
"manifest": "https://www.uberwald.me/gitea/public/fvtt-warhero/raw/branch/master/system.json",
|
||||||
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-warhero/archive/fvtt-warhero-10.0.7.zip",
|
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-warhero/archive/fvtt-warhero-10.0.18.zip",
|
||||||
"url": "https://www.uberwald.me/gitea/public/fvtt-warhero",
|
"url": "https://www.uberwald.me/gitea/public/fvtt-warhero",
|
||||||
"background": "images/ui/warhero_welcome_page.webp",
|
"background": "images/ui/warhero_welcome_page.webp",
|
||||||
"id": "fvtt-warhero"
|
"id": "fvtt-warhero"
|
||||||
|
155
template.json
155
template.json
@ -25,19 +25,28 @@
|
|||||||
"str": {
|
"str": {
|
||||||
"label": "WH.ui.Strength",
|
"label": "WH.ui.Strength",
|
||||||
"abbrev": "str",
|
"abbrev": "str",
|
||||||
"style": "dropdown",
|
"style": "edit",
|
||||||
|
"hassave": true,
|
||||||
|
"roll": true,
|
||||||
|
"save": 0,
|
||||||
"value": 0
|
"value": 0
|
||||||
},
|
},
|
||||||
"dex": {
|
"dex": {
|
||||||
"label": "WH.ui.Dexterity",
|
"label": "WH.ui.Dexterity",
|
||||||
"abbrev": "dex",
|
"abbrev": "dex",
|
||||||
"style": "dropdown",
|
"style": "edit",
|
||||||
|
"hassave": true,
|
||||||
|
"roll": true,
|
||||||
|
"save": 0,
|
||||||
"value": 0
|
"value": 0
|
||||||
},
|
},
|
||||||
"min": {
|
"min": {
|
||||||
"label": "WH.ui.Mind",
|
"label": "WH.ui.Mind",
|
||||||
"abbrev": "min",
|
"abbrev": "min",
|
||||||
"style": "dropdown",
|
"style": "edit",
|
||||||
|
"hassave": true,
|
||||||
|
"roll": true,
|
||||||
|
"save": 0,
|
||||||
"value": 0
|
"value": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -50,6 +59,15 @@
|
|||||||
"max": 1,
|
"max": 1,
|
||||||
"value": 1
|
"value": 1
|
||||||
},
|
},
|
||||||
|
"knowledge":{
|
||||||
|
"label": "WH.ui.Knowledge",
|
||||||
|
"abbrev": "knowledge",
|
||||||
|
"style": "edit",
|
||||||
|
"hasmax": false,
|
||||||
|
"roll": true,
|
||||||
|
"max": 1,
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
"def":{
|
"def":{
|
||||||
"label": "WH.ui.Defence",
|
"label": "WH.ui.Defence",
|
||||||
"abbrev": "def",
|
"abbrev": "def",
|
||||||
@ -57,10 +75,21 @@
|
|||||||
"max": 1,
|
"max": 1,
|
||||||
"value": 1
|
"value": 1
|
||||||
},
|
},
|
||||||
"txc":{
|
"txcm":{
|
||||||
"label": "WH.ui.Throw2Hit",
|
"label": "WH.ui.Throw2HitM",
|
||||||
"abbrev": "txc",
|
"abbrev": "txcm",
|
||||||
|
"istxc": true,
|
||||||
"style": "edit",
|
"style": "edit",
|
||||||
|
"roll": true,
|
||||||
|
"max": 1,
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
|
"txcr":{
|
||||||
|
"label": "WH.ui.Throw2HitR",
|
||||||
|
"abbrev": "txcr",
|
||||||
|
"istxc": true,
|
||||||
|
"style": "edit",
|
||||||
|
"roll": true,
|
||||||
"max": 1,
|
"max": 1,
|
||||||
"value": 1
|
"value": 1
|
||||||
},
|
},
|
||||||
@ -75,16 +104,94 @@
|
|||||||
"ini":{
|
"ini":{
|
||||||
"label": "WH.ui.Initiative",
|
"label": "WH.ui.Initiative",
|
||||||
"abbrev": "ini",
|
"abbrev": "ini",
|
||||||
"style": "dropdown",
|
"style": "edit",
|
||||||
"max": 1,
|
"max": 1,
|
||||||
"value": 1
|
"value": 1
|
||||||
},
|
},
|
||||||
"mov":{
|
"movearth":{
|
||||||
"label": "WH.ui.Movement",
|
"label": "WH.ui.Movement",
|
||||||
"abbrev": "mov",
|
"abbrev": "mov",
|
||||||
"style": "dropdown",
|
"style": "edit",
|
||||||
"max": 1,
|
"max": 1,
|
||||||
"value": 1
|
"value": 1
|
||||||
|
},
|
||||||
|
"movswim":{
|
||||||
|
"label": "WH.ui.MovementSwim",
|
||||||
|
"abbrev": "mov",
|
||||||
|
"style": "edit",
|
||||||
|
"max": 1,
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
|
"movfly":{
|
||||||
|
"label": "WH.ui.MovementFly",
|
||||||
|
"abbrev": "mov",
|
||||||
|
"style": "edit",
|
||||||
|
"max": 1,
|
||||||
|
"value": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"secondary": {
|
||||||
|
"xp": {
|
||||||
|
"label": "WH.ui.XP",
|
||||||
|
"abbrev": "xp",
|
||||||
|
"islevel": true,
|
||||||
|
"style": "edit",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"malusmultiweapon": {
|
||||||
|
"label": "WH.ui.malusmultiweapon",
|
||||||
|
"abbrev": "malusmultiweapon",
|
||||||
|
"style": "edit",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"drbonus": {
|
||||||
|
"label": "WH.ui.drbonus",
|
||||||
|
"abbrev": "drbonus",
|
||||||
|
"style": "edit",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"drbonustotal": {
|
||||||
|
"label": "WH.ui.drbonustotal",
|
||||||
|
"abbrev": "drbonustotal",
|
||||||
|
"disabled": true,
|
||||||
|
"style": "edit",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"parrybonus": {
|
||||||
|
"label": "WH.ui.parrybonus",
|
||||||
|
"abbrev": "parrybonus",
|
||||||
|
"isparrybonus": true,
|
||||||
|
"style": "edit",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"parrybonustotal": {
|
||||||
|
"label": "WH.ui.parrybonustotal",
|
||||||
|
"abbrev": "parrybonustotal",
|
||||||
|
"disabled": true,
|
||||||
|
"style": "edit",
|
||||||
|
"roll": true,
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"counterspell": {
|
||||||
|
"label": "WH.ui.counterspell",
|
||||||
|
"abbrev": "counterspell",
|
||||||
|
"style": "edit",
|
||||||
|
"hasmax": true,
|
||||||
|
"max": 1,
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"createitem": {
|
||||||
|
"label": "WH.ui.createitem",
|
||||||
|
"abbrev": "createitem",
|
||||||
|
"style": "edit",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
"nblanguage": {
|
||||||
|
"label": "WH.ui.languages",
|
||||||
|
"abbrev": "nblanguage",
|
||||||
|
"style": "edit",
|
||||||
|
"disabled": true,
|
||||||
|
"value": 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -101,11 +208,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Item": {
|
"Item": {
|
||||||
"types": [ "race", "weapon", "armor", "shield", "equipment", "money" , "skill", "power", "condition", "class"],
|
"types": [ "equipment", "race", "weapon", "armor", "shield", "money" , "skill", "power", "language", "condition", "class"],
|
||||||
"condition": {
|
"templates": {
|
||||||
"description": ""
|
"commonclassrace": {
|
||||||
},
|
|
||||||
"class": {
|
|
||||||
"weapons": {
|
"weapons": {
|
||||||
"short": false,
|
"short": false,
|
||||||
"long": false,
|
"long": false,
|
||||||
@ -122,19 +227,33 @@
|
|||||||
"light": false,
|
"light": false,
|
||||||
"medium": false,
|
"medium": false,
|
||||||
"tower": false
|
"tower": false
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
"condition": {
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"class": {
|
||||||
|
"templates": ["commonclassrace"],
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"race": {
|
"race": {
|
||||||
"description": "",
|
"description": "",
|
||||||
"hpprogresion": "hp2",
|
"hpprogresion": "hp2",
|
||||||
"languages": "",
|
"languages": "",
|
||||||
"attributebonus": "",
|
"attributebonus1": "",
|
||||||
"weapons": "",
|
"attributebonus4": "",
|
||||||
"shields": "",
|
"attributebonus8": "",
|
||||||
"armors": ""
|
"templates": ["commonclassrace"]
|
||||||
|
},
|
||||||
|
"language": {
|
||||||
|
"description": ""
|
||||||
},
|
},
|
||||||
"skill": {
|
"skill": {
|
||||||
|
"classskill": false,
|
||||||
|
"unlimited": false,
|
||||||
|
"currentuse": 0,
|
||||||
|
"maxuse": 0,
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"weapon": {
|
"weapon": {
|
||||||
|
@ -12,32 +12,30 @@
|
|||||||
<div class="ability-item">
|
<div class="ability-item">
|
||||||
<ul>
|
<ul>
|
||||||
{{#each system.statistics as |stat key|}}
|
{{#each system.statistics as |stat key|}}
|
||||||
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key=key path="statistics" roll=true}}
|
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=stat key=key path="statistics" fieldClass="item-field-label-medium"}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="ability-item">
|
<div class="ability-item">
|
||||||
<ul>
|
<ul>
|
||||||
<li class="flexrow item" data-item-id="{{race._id}}">
|
<li class="item flexrow list-item " data-item-id="{{race._id}}">
|
||||||
<label class="item-field-label-medium">Race</label>
|
<label class="item-field-label-medium">Race</label>
|
||||||
<a class="item-edit"><img class="sheet-competence-img" src="{{race.img}}"></a>
|
<a class="item-edit"><img class="sheet-competence-img" src="{{race.img}}"></a>
|
||||||
<input type="text" class="item-field-label-medium" disabled value="{{race.name}}" data-dtype="String" />
|
<input type="text" class="item-field-label-medium" disabled value="{{race.name}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow item" data-item-id="{{class._id}}">
|
<li class="item flexrow list-item" data-item-id="{{class._id}}">
|
||||||
<label class="item-field-label-medium">Class</label>
|
<label class="item-field-label-medium">Class</label>
|
||||||
<a class="item-edit"><img class="sheet-competence-img" src="{{class.img}}"></a>
|
<a class="item-edit"><img class="sheet-competence-img" src="{{class.img}}"></a>
|
||||||
<input type="text" class="item-field-label-medium" disabled value="{{class.name}}" data-dtype="String" />
|
<input type="text" class="item-field-label-medium" disabled value="{{class.name}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow item" >
|
<li class="item flexrow list-item" >
|
||||||
<label class="item-field-label-medium">Religion</label>
|
<label class="item-field-label-medium">Religion</label>
|
||||||
<input type="text" class="item-field-label-medium" name="system.biodata.religion" value="{{system.biodata.religion}}" data-dtype="String" />
|
<input type="text" class="item-field-label-medium" name="system.biodata.religion" value="{{system.biodata.religion}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="ability-item">
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -50,6 +48,7 @@
|
|||||||
<nav class="sheet-tabs tabs" data-group="primary">
|
<nav class="sheet-tabs tabs" data-group="primary">
|
||||||
<a class="item" data-tab="main">Main</a>
|
<a class="item" data-tab="main">Main</a>
|
||||||
<a class="item" data-tab="combat">Combat</a>
|
<a class="item" data-tab="combat">Combat</a>
|
||||||
|
<a class="item" data-tab="skill">Skills&Effects</a>
|
||||||
<a class="item" data-tab="power">Powers</a>
|
<a class="item" data-tab="power">Powers</a>
|
||||||
<a class="item" data-tab="equipment">Equipment</a>
|
<a class="item" data-tab="equipment">Equipment</a>
|
||||||
<a class="item" data-tab="biodata">Biography</a>
|
<a class="item" data-tab="biodata">Biography</a>
|
||||||
@ -61,15 +60,37 @@
|
|||||||
{{!-- Skills Tab --}}
|
{{!-- Skills Tab --}}
|
||||||
<div class="tab main" data-group="primary" data-tab="main">
|
<div class="tab main" data-group="primary" data-tab="main">
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
|
||||||
<div class="ability-item">
|
<div class="ability-item">
|
||||||
<ul>
|
<ul>
|
||||||
{{#each system.attributes as |attr key|}}
|
{{#each system.attributes as |attr key|}}
|
||||||
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=attr key=key path="attributes" roll=false}}
|
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=attr key=key path="attributes" fieldClass="item-field-label-vlong"}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="ability-item">
|
||||||
|
<ul>
|
||||||
|
{{#each system.secondary as |second key|}}
|
||||||
|
{{> systems/fvtt-warhero/templates/partial-actor-stat-block.html stat=second key=key path="secondary" fieldClass="item-field-label-vlong"}}
|
||||||
|
{{/each}}
|
||||||
|
|
||||||
|
<li class="item flexrow list-item item-stat-roll" data-attr-key="{{key}}">
|
||||||
|
<span class="item-field-label-vlong" name="{{key}}">
|
||||||
|
<h4 class="item-field-label-vlong">
|
||||||
|
{{localize "WH.ui.xphp"}}
|
||||||
|
</h4>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-long" >{{hpprogression}}</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{!-- Combat Tab --}}
|
{{!-- Combat Tab --}}
|
||||||
@ -175,6 +196,93 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{!-- Skills Tab --}}
|
||||||
|
<div class="tab skill" data-group="primary" data-tab="skill">
|
||||||
|
<div class="flexcol">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul class="stat-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header-long">
|
||||||
|
<h3><label class="items-title-text">{{localize "WH.ui.classSkills"}}</label></h3>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">{{localize "WH.ui.currentuse"}}</label>
|
||||||
|
</span>
|
||||||
|
<span class="item-field-label-medium">
|
||||||
|
<label class="short-label">{{localize "WH.ui.maxuse"}}</label>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
{{#each classSkills as |skill key|}}
|
||||||
|
<li class="item flexrow list-item list-item-shadow" data-item-id="{{skill._id}}">
|
||||||
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
|
src="{{skill.img}}" /></a>
|
||||||
|
<span class="item-name-label-long">{{skill.name}}</a></span>
|
||||||
|
|
||||||
|
{{#if skill.system.unlimited}}
|
||||||
|
<span class="item-field-label-medium">N/A</span>
|
||||||
|
<span class="item-field-label-medium">N/A</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-field-label-medium">{{skill.system.currentuse}}</span>
|
||||||
|
<span class="item-field-label-medium">{{skill.system.maxuse}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<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>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul class="stat-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header-long">
|
||||||
|
<h3><label class="items-title-text">{{localize "WH.ui.skills"}}</label></h3>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
{{#each skills as |skill key|}}
|
||||||
|
<li class="item flexrow list-item list-item-shadow" data-item-id="{{skill._id}}">
|
||||||
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
|
src="{{skill.img}}" /></a>
|
||||||
|
<span class="item-name-label-long">{{skill.name}}</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>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul class="stat-list alternate-list">
|
||||||
|
<li class="item flexrow list-item items-title-bg">
|
||||||
|
<span class="item-name-label-header-long">
|
||||||
|
<h3><label class="items-title-text">{{localize "WH.ui.languages"}}</label></h3>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
{{#each languages as |language key|}}
|
||||||
|
<li class="item flexrow list-item list-item-shadow" data-item-id="{{language._id}}">
|
||||||
|
<a class="item-edit item-name-img" title="Edit Item"><img class="sheet-competence-img"
|
||||||
|
src="{{language.img}}" /></a>
|
||||||
|
<span class="item-name-label-long">{{language.name}}</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>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{{!-- Powers Tab --}}
|
{{!-- Powers Tab --}}
|
||||||
<div class="tab power" data-group="primary" data-tab="power">
|
<div class="tab power" data-group="primary" data-tab="power">
|
||||||
@ -212,7 +320,7 @@
|
|||||||
|
|
||||||
{{#each slotEquipments as |slot slotKey|}}
|
{{#each slotEquipments as |slot slotKey|}}
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
<li class="item flexrow list-item items-title-bg">
|
<li class="item flexrow list-item items-title-bg {{#if (gt slot.slotUsed slot.nbslots)}}items-title-bg-red{{/if}}">
|
||||||
<span class="item-name-label-header">
|
<span class="item-name-label-header">
|
||||||
<h3><label class="items-title-text">{{localize slot.label}}</label></h3>
|
<h3><label class="items-title-text">{{localize slot.label}}</label></h3>
|
||||||
</span>
|
</span>
|
||||||
@ -230,7 +338,7 @@
|
|||||||
</span>
|
</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-add" data-type="money" title="Create Item"><i class="fas fa-plus"></i></a>
|
<a class="item-control item-add" data-type="{{itemtype}}" title="Create Item"><i class="fas fa-plus"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{#each slot.content as |item itemKey|}}
|
{{#each slot.content as |item itemKey|}}
|
||||||
@ -289,6 +397,11 @@
|
|||||||
<label class="generic-label">Hair</label>
|
<label class="generic-label">Hair</label>
|
||||||
<input type="text" class="" name="system.biodata.hair" value="{{data.biodata.hair}}" data-dtype="String" />
|
<input type="text" class="" name="system.biodata.hair" value="{{data.biodata.hair}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
|
<li class="flexrow item">
|
||||||
|
<label class="generic-label">Preferred Hand</label>
|
||||||
|
<input type="text" class="" name="system.biodata.preferredhand" value="{{data.biodata.preferredhand}}"
|
||||||
|
data-dtype="String" />
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@ -310,11 +423,6 @@
|
|||||||
<label class="generic-label">Sex</label>
|
<label class="generic-label">Sex</label>
|
||||||
<input type="text" class="" name="system.biodata.sex" value="{{data.biodata.sex}}" data-dtype="String" />
|
<input type="text" class="" name="system.biodata.sex" value="{{data.biodata.sex}}" data-dtype="String" />
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow item">
|
|
||||||
<label class="generic-label">Preferred Hand</label>
|
|
||||||
<input type="text" class="" name="system.biodata.preferredhand" value="{{data.biodata.preferredhand}}"
|
|
||||||
data-dtype="String" />
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -24,6 +24,10 @@
|
|||||||
{{#if hasBM}}
|
{{#if hasBM}}
|
||||||
<li>Bonus/Malus : {{bonusMalus}}</li>
|
<li>Bonus/Malus : {{bonusMalus}}</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
*
|
||||||
|
{{#if usemWeaponMalus}}
|
||||||
|
<li>Multiple weapons malus : {{mWeaponMalus}}</li>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if power}}
|
{{#if power}}
|
||||||
<li>{{localize "WH.ui.power"}} : {{power.name}}</li>
|
<li>{{localize "WH.ui.power"}} : {{power.name}}</li>
|
||||||
|
28
templates/chat-parry-result.html
Normal file
28
templates/chat-parry-result.html
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<div class="chat-message-header">
|
||||||
|
{{#if actorImg}}
|
||||||
|
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
|
||||||
|
{{/if}}
|
||||||
|
<h4 class=chat-actor-name>{{alias}}</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
{{#if img}}
|
||||||
|
<div >
|
||||||
|
<img class="chat-icon" src="{{img}}" alt="{{name}}" />
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ul>
|
||||||
|
<li>{{localize stat.label}} : {{stat.value}}</li>
|
||||||
|
<li><strong>Result : {{roll.total}} </strong></li>
|
||||||
|
{{#if isSuccess}}
|
||||||
|
<li><strong>Parry success ! </strong></li>
|
||||||
|
{{else}}
|
||||||
|
<li><strong>Parry failed ! </strong></li>
|
||||||
|
{{/if}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
22
templates/item-language-sheet.html
Normal file
22
templates/item-language-sheet.html
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<form class="{{cssClass}}" autocomplete="off">
|
||||||
|
<header class="sheet-header">
|
||||||
|
<img class="item-sheet-img" src="{{img}}" data-edit="img" title="{{name}}"/>
|
||||||
|
<div class="header-fields">
|
||||||
|
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name"/></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{{> systems/fvtt-warhero/templates/partial-item-nav.html}}
|
||||||
|
|
||||||
|
{{!-- Sheet Body --}}
|
||||||
|
<section class="sheet-body">
|
||||||
|
|
||||||
|
{{> systems/fvtt-warhero/templates/partial-item-description.html}}
|
||||||
|
|
||||||
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
|
<ul>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</form>
|
@ -18,7 +18,7 @@
|
|||||||
<li class="flexrow"><label class="item-field-label-medium ">Quantity</label>
|
<li class="flexrow"><label class="item-field-label-medium ">Quantity</label>
|
||||||
<input type="text" class="item-field-label-medium " name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/>
|
<input type="text" class="item-field-label-medium " name="system.quantity" value="{{system.quantity}}" data-dtype="Number"/>
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow"><label class="generic-label">Unit value</label>
|
<li class="flexrow"><label class="item-field-label-medium">Unit value</label>
|
||||||
<input type="text" class="item-field-label-medium " name="system.value" value="{{system.value}}" data-dtype="Number"/>
|
<input type="text" class="item-field-label-medium " name="system.value" value="{{system.value}}" data-dtype="Number"/>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
<div class="tab details" data-group="primary" data-tab="details">
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
<ul>
|
<ul>
|
||||||
|
|
||||||
<li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.hpprog"}}</label>
|
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.hpprog"}}</label>
|
||||||
<select class="item-field-label-long " type="text" name="system.hpprogresion" value="{{system.hpprogresion}}" data-dtype="String">
|
<select class="item-field-label-long " type="text" name="system.hpprogresion" value="{{system.hpprogresion}}" data-dtype="String">
|
||||||
{{#select system.hpprogresion}}
|
{{#select system.hpprogresion}}
|
||||||
{{#each config.progressionList as |prog key|}}
|
{{#each config.progressionList as |prog key|}}
|
||||||
@ -31,29 +31,61 @@
|
|||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.lan"}}</label>
|
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.lan"}}</label>
|
||||||
<input type="text" class="item-field-label-long" name="system.languages" value="{{system.languages}}" data-dtype="String"/>
|
<input type="text" class="item-field-label-long" name="system.languages" value="{{system.languages}}" data-dtype="String"/>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.attrbonus"}}</label>
|
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.attrbonus"}} Lvl 1</label>
|
||||||
<select class="item-field-label-long " type="text" name="system.attributebonus" value="{{system.attributebonus}}" data-dtype="String">
|
<select class="item-field-label-long " type="text" name="system.attributebonus1" value="{{system.attributebonus1}}" data-dtype="String">
|
||||||
{{#select system.attributebonus}}
|
{{#select system.attributebonus1}}
|
||||||
{{#each abilities as |ability key|}}
|
{{#each statistics as |ability key|}}
|
||||||
<option value="{{key}}">{{ability.label}}</option>
|
<option value="{{key}}">{{localize ability.label}}</option>
|
||||||
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.attrbonus"}} Lvl 4</label>
|
||||||
|
<select class="item-field-label-long " type="text" name="system.attributebonus4" value="{{system.attributebonus4}}" data-dtype="String">
|
||||||
|
{{#select system.attributebonus4}}
|
||||||
|
{{#each statistics as |ability key|}}
|
||||||
|
<option value="{{key}}">{{localize ability.label}}</option>
|
||||||
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.attrbonus"}} Lvl 8</label>
|
||||||
|
<select class="item-field-label-long " type="text" name="system.attributebonus8" value="{{system.attributebonus8}}" data-dtype="String">
|
||||||
|
{{#select system.attributebonus8}}
|
||||||
|
{{#each statistics as |ability key|}}
|
||||||
|
<option value="{{key}}">{{localize ability.label}}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.weapons"}}</label>
|
{{#each system.weapons as |weaponflag key|}}
|
||||||
<input type="text" class="item-field-label-long3 " name="system.weapons" value="{{system.weapons}}" data-dtype="String"/>
|
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.weapons"}} {{key}}</label>
|
||||||
|
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.weapons.{{key}}" {{checked weaponflag}}/>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.armors"}}</label>
|
{{/each}}
|
||||||
<input type="text" class="item-field-label-long3 " name="system.armors" value="{{system.armors}}" data-dtype="String"/>
|
|
||||||
|
{{#each system.armors as |armorflag key|}}
|
||||||
|
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.armors"}} {{key}}</label>
|
||||||
|
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.armors.{{key}}" {{checked armorflag}}/>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
<li class="flexrow"><label class="item-field-label-medium ">{{localize "WH.ui.shields"}}</label>
|
{{/each}}
|
||||||
<input type="text" class="item-field-label-long3 " name="system.shields" value="{{system.shields}}" data-dtype="String"/>
|
|
||||||
|
{{#each system.shields as |shieldflag key|}}
|
||||||
|
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.shields"}} {{key}}</label>
|
||||||
|
<input type="checkbox" class="padd-right status-small-label color-class-common item-field-label-short"
|
||||||
|
name="system.shields.{{key}}" {{checked shieldflag}}/>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -15,8 +15,27 @@
|
|||||||
|
|
||||||
<div class="tab details" data-group="primary" data-tab="details">
|
<div class="tab details" data-group="primary" data-tab="details">
|
||||||
<ul>
|
<ul>
|
||||||
|
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.isclassskill"}}</label>
|
||||||
|
<input type="checkbox" name="system.classskill" {{checked system.classskill}}/>
|
||||||
|
</li>
|
||||||
|
{{#if system.classskill}}
|
||||||
|
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.unlimited"}}</label>
|
||||||
|
<input type="checkbox" name="system.unlimited" {{checked system.unlimited}}/>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{{#if system.unlimited}}
|
||||||
|
|
||||||
|
{{else}}
|
||||||
|
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.currentuse"}}</label>
|
||||||
|
<input type="text" class="item-field-label-medium " name="system.currentuse" value="{{system.currentuse}}" data-dtype="Number"/>
|
||||||
|
</li>
|
||||||
|
<li class="flexrow"><label class="item-field-label-long ">{{localize "WH.ui.maxuse"}}</label>
|
||||||
|
<input type="text" class="item-field-label-medium " name="system.maxuse" value="{{system.maxuse}}" data-dtype="Number"/>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</form>
|
</form>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<li class="item flexrow list-item item-stat-roll" data-attr-key="{{key}}">
|
<li class="item flexrow list-item item-stat-roll" data-attr-key="{{key}}">
|
||||||
<span class="item-field-label-medium" name="{{key}}">
|
<span class="{{fieldClass}}" name="{{key}}">
|
||||||
<h4 class="item-field-label-medium">
|
<h4 class="{{fieldClass}}">
|
||||||
{{#if roll}}
|
{{#if roll}}
|
||||||
<i class="fa-solid fa-dice-d20"></i><a class="roll-this stat-margin" data-type="{{path}}" data-key="{{key}}">{{localize stat.label}}</a>
|
<i class="fa-solid fa-dice-d20"></i><a class="roll-this stat-margin" data-type="{{path}}" data-key="{{key}}">{{localize stat.label}}</a>
|
||||||
{{else}}
|
{{else}}
|
||||||
@ -10,7 +10,7 @@
|
|||||||
</span>
|
</span>
|
||||||
|
|
||||||
{{#if (eq style "dropdown")}}
|
{{#if (eq style "dropdown")}}
|
||||||
<select class="item-field-label-medium" type="text" name="system.{{path}}.{{key}}.value" value="{{stat.value}}"
|
<select class="item-field-label-short" type="text" name="system.{{path}}.{{key}}.value" value="{{stat.value}}"
|
||||||
data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||||
{{#select stat.value}}
|
{{#select stat.value}}
|
||||||
<option value="0">0</option>
|
<option value="0">0</option>
|
||||||
@ -27,10 +27,30 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if (eq style "edit")}}
|
{{#if (eq style "edit")}}
|
||||||
<input type="text" class="item-field-label-medium " name="system.{{path}}.{{key}}.value" value="{{stat.value}}" data-dtype="Number"/>
|
<input type="text" class="item-field-label-short " {{#if disabled}}disabled{{/if}} name="system.{{path}}.{{key}}.value" value="{{stat.value}}" data-dtype="Number"/>
|
||||||
{{#if hasmax}}
|
{{#if hasmax}}
|
||||||
<input type="text" class="item-field-label-medium " name="system.{{path}}.{{key}}.max" value="{{stat.max}}" data-dtype="Number"/>
|
<input type="text" class="item-field-label-short " name="system.{{path}}.{{key}}.max" value="{{stat.max}}" data-dtype="Number"/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if hassave}}
|
||||||
|
<span class="item-field-label-short" name="{{key}}">
|
||||||
|
<h4 class="item-field-label-short">
|
||||||
|
<i class="fa-solid fa-dice-d20"></i>
|
||||||
|
<a class="roll-this stat-margin" data-is-save="yes" data-type="{{path}}" data-key="{{key}}">
|
||||||
|
{{localize "WH.ui.save"}}
|
||||||
|
</a>
|
||||||
|
</h4>
|
||||||
|
</span>
|
||||||
|
<input type="text" class="item-field-label-short " name="system.{{path}}.{{key}}.save" value="{{stat.save}}" data-dtype="Number"/>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if islevel}}
|
||||||
|
<span class="item-field-label-short" name="{{key}}">
|
||||||
|
<h4 class="item-field-label-short">{{localize "WH.ui.level"}}
|
||||||
|
</h4>
|
||||||
|
</span>
|
||||||
|
<input type="text" disabled class="item-field-label-short " value="{{stat.level}}" data-dtype="Number"/>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
</li>
|
</li>
|
@ -8,44 +8,57 @@
|
|||||||
|
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
|
|
||||||
{{#if stat}}
|
|
||||||
<div class="flexrow">
|
|
||||||
<span class="item-field-label-medium">{{localize stat.label}}</span>
|
|
||||||
<span class="item-field-label-medium">{{stat.value}}</span>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if weapon}}
|
{{#if weapon}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="item-field-label-medium">Weapon : </span>
|
<span class="roll-dialog-long">Weapon : </span>
|
||||||
<span class="item-field-label-medium">{{weapon.name}}</span>
|
<span class="item-field-label-medium">{{weapon.name}}</span>
|
||||||
{{#if (eq mode "damage")}}
|
{{#if (eq mode "damage")}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="item-field-label-medium">Damage : </span>
|
<span class="roll-dialog-long">Damage : </span>
|
||||||
<span class="item-field-label-medium">{{weapon.damageFormula}}</span>
|
<span class="item-field-label-medium">{{weapon.damageFormula}}</span>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if stat}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-long">{{localize stat.label}}</span>
|
||||||
|
{{#if (eq mode "save")}}
|
||||||
|
<span class="item-field-label-medium">{{stat.save}}</span>
|
||||||
|
{{else}}
|
||||||
|
<span class="item-field-label-medium">{{stat.value}}</span>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#if stat.istxc}}
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="roll-dialog-long">Multiple weapons malus ({{mWeaponMalus}})? </span>
|
||||||
|
<span class="item-field-label-medium"><input type="checkbox" id="usemWeaponMalus" name="usemWeaponMalus" {{checked usemWeaponMalus}}/></span>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
{{#if shield}}
|
{{#if shield}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">Use shield ? : </span>
|
<span class="roll-dialog-long">Use shield ? : </span>
|
||||||
<span class="roll-dialog-label"><input type="checkbox" id="useshield" name="useshield" {{checked useshield}}/></span>
|
<span class="roll-dialog-label">
|
||||||
|
<input type="checkbox" id="useshield" name="useshield" {{checked useshield}}/>
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label">{{shield.name}} : </span>
|
<span class="roll-dialog-long">{{shield.name}} : </span>
|
||||||
<span class="roll-dialog-label">{{shield.data.shielddie}}</span>
|
<span class="roll-dialog-label">{{shield.data.shielddie}}</span>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if power}}
|
{{#if power}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="item-field-label-medium">Power : </span>
|
<span class="item-field-label-long">Power : </span>
|
||||||
<span class="item-field-label-medium">{{power.name}}</span>
|
<span class="item-field-label-medium">{{power.name}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="item-field-label-medium">Power Level : </span>
|
<span class="item-field-label-long">Power Level : </span>
|
||||||
<select class="item-field-label-medium" type="text" id="powerLevel" value="{{powerLevel}}">
|
<select class="item-field-label-medium" type="text" id="powerLevel" value="{{powerLevel}}">
|
||||||
{{#select powerLevel}}
|
{{#select powerLevel}}
|
||||||
<option value="1">1</option>
|
<option value="1">1</option>
|
||||||
@ -60,7 +73,7 @@
|
|||||||
|
|
||||||
{{#if hasBM}}
|
{{#if hasBM}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="item-field-label-medium">Bonus/Malus : </span>
|
<span class="roll-dialog-long">Bonus/Malus : </span>
|
||||||
<select class="item-field-label-medium" type="text" id="bonusMalus" value="{{bonusMalus}}">
|
<select class="item-field-label-medium" type="text" id="bonusMalus" value="{{bonusMalus}}">
|
||||||
{{#select bonusMalus}}
|
{{#select bonusMalus}}
|
||||||
<option value="-6">-6</option>
|
<option value="-6">-6</option>
|
||||||
|
Reference in New Issue
Block a user