Stage 5
BIN
images/icons/AGI.webp
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
images/icons/COM.webp
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
images/icons/DEF.webp
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
images/icons/FOC.webp
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
images/icons/MND.webp
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
images/icons/MR.webp
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
images/icons/Momentum.webp
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
images/icons/PER.webp
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
images/icons/PHY.webp
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
images/icons/SOC.webp
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
images/icons/STL.webp
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
images/icons/STR.webp
Normal file
After Width: | Height: | Size: 17 KiB |
@ -16,7 +16,7 @@ export class PegasusActorSheet extends ActorSheet {
|
|||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
classes: ["fvtt-pegasus-rpg", "sheet", "actor"],
|
classes: ["fvtt-pegasus-rpg", "sheet", "actor"],
|
||||||
template: "systems/fvtt-pegasus-rpg/templates/actor-sheet.html",
|
template: "systems/fvtt-pegasus-rpg/templates/actor-sheet.html",
|
||||||
width: 640,
|
width: 920,
|
||||||
height: 720,
|
height: 720,
|
||||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
||||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||||
@ -58,6 +58,10 @@ export class PegasusActorSheet extends ActorSheet {
|
|||||||
role: duplicate(this.actor.getRole()),
|
role: duplicate(this.actor.getRole()),
|
||||||
effects: duplicate(this.actor.getEffects()),
|
effects: duplicate(this.actor.getEffects()),
|
||||||
moneys: duplicate(this.actor.getMoneys()),
|
moneys: duplicate(this.actor.getMoneys()),
|
||||||
|
encCapacity: this.actor.getEncumbranceCapacity(),
|
||||||
|
containersTree: this.actor.containersTree,
|
||||||
|
encCurrent: this.actor.encCurrent,
|
||||||
|
encHindrance: this.actor.encHindrance,
|
||||||
options: this.options,
|
options: this.options,
|
||||||
owner: this.document.isOwner,
|
owner: this.document.isOwner,
|
||||||
editScore: this.options.editScore,
|
editScore: this.options.editScore,
|
||||||
@ -180,6 +184,13 @@ export class PegasusActorSheet extends ActorSheet {
|
|||||||
this.actor.incDecQuantity( li.data("item-id"), +1 );
|
this.actor.incDecQuantity( li.data("item-id"), +1 );
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
html.find('.momentum-minus').click(event => {
|
||||||
|
this.actor.modifyMomentum( -1 )
|
||||||
|
} )
|
||||||
|
html.find('.momentum-plus').click(event => {
|
||||||
|
this.actor.modifyMomentum( 1 )
|
||||||
|
} )
|
||||||
|
|
||||||
html.find('.unarmed-attack').click((event) => {
|
html.find('.unarmed-attack').click((event) => {
|
||||||
this.actor.rollUnarmedAttack();
|
this.actor.rollUnarmedAttack();
|
||||||
});
|
});
|
||||||
@ -298,7 +309,11 @@ export class PegasusActorSheet extends ActorSheet {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async _onDropItem(event, dragData) {
|
async _onDropItem(event, dragData) {
|
||||||
|
console.log(">>>>>> DROPPED!!!!")
|
||||||
let item = await PegasusUtility.searchItem( dragData)
|
let item = await PegasusUtility.searchItem( dragData)
|
||||||
|
if (item == undefined) {
|
||||||
|
item = this.actor.items.get( dragData.data._id )
|
||||||
|
}
|
||||||
this.actor.preprocessItem( event, item, true )
|
this.actor.preprocessItem( event, item, true )
|
||||||
super._onDropItem(event, dragData)
|
super._onDropItem(event, dragData)
|
||||||
}
|
}
|
||||||
|
@ -61,6 +61,8 @@ export class PegasusActor extends Actor {
|
|||||||
|
|
||||||
if (this.type == 'character') {
|
if (this.type == 'character') {
|
||||||
this.computeNRGHealth();
|
this.computeNRGHealth();
|
||||||
|
this.data.data.encCapacity = this.getEncumbranceCapacity()
|
||||||
|
this.buildContainerTree()
|
||||||
}
|
}
|
||||||
|
|
||||||
super.prepareDerivedData();
|
super.prepareDerivedData();
|
||||||
@ -71,6 +73,12 @@ export class PegasusActor extends Actor {
|
|||||||
|
|
||||||
super._preUpdate(changed, options, user);
|
super._preUpdate(changed, options, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
getEncumbranceCapacity() {
|
||||||
|
return this.data.data.statistics.str.value * 25
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getActivePerks() {
|
getActivePerks() {
|
||||||
let perks = this.data.items.filter(item => item.type == 'perk' && item.data.data.active);
|
let perks = this.data.items.filter(item => item.type == 'perk' && item.data.data.active);
|
||||||
@ -287,6 +295,63 @@ export class PegasusActor extends Actor {
|
|||||||
return duplicate(this.data.items.filter(item => item.type == "equipment") || [])
|
return duplicate(this.data.items.filter(item => item.type == "equipment") || [])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------- */
|
||||||
|
async buildContainerTree() {
|
||||||
|
let equipments = duplicate(this.data.items.filter(item => item.type == "equipment") || [] )
|
||||||
|
for (let equip1 of equipments) {
|
||||||
|
if ( equip1.data.iscontainer) {
|
||||||
|
equip1.data.contents = []
|
||||||
|
equip1.data.contentsEnc = 0
|
||||||
|
for (let equip2 of equipments) {
|
||||||
|
if ( equip1._id != equip2._id && equip2.data.containerid == equip1._id ) {
|
||||||
|
equip1.data.contents.push(equip2)
|
||||||
|
equip1.data.contentsEnc += equip2.data.weight
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let enc = 0
|
||||||
|
for( let item of equipments) {
|
||||||
|
if (item.data.equipped) {
|
||||||
|
if ( item.data.iscontainer) {
|
||||||
|
enc += item.data.contentsEnc
|
||||||
|
} else {
|
||||||
|
enc += item.data.weight
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.encCurrent = enc
|
||||||
|
this.containersTree = equipments.filter( item => item.data.containerid == "") // Returns the root of equipements without container
|
||||||
|
|
||||||
|
// Manages slow effect
|
||||||
|
let overCapacity = Math.floor(this.encCurrent / this.getEncumbranceCapacity() )
|
||||||
|
this.encHindrance = Math.floor(this.encCurrent / this.getEncumbranceCapacity() )
|
||||||
|
|
||||||
|
//console.log("Capacity", overCapacity, this.encCurrent / this.getEncumbranceCapacity() )
|
||||||
|
let effect = this.data.items.find(item => item.type == "effect" && item.data.data.slow)
|
||||||
|
if (overCapacity >= 4 ) {
|
||||||
|
if ( !effect) {
|
||||||
|
effect = await PegasusUtility.getEffectFromCompendium("Slowed")
|
||||||
|
effect.data.slow = true
|
||||||
|
this.createEmbeddedDocuments('Item', [effect])
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (effect) {
|
||||||
|
this.deleteEmbeddedDocuments('Item', [effect.id])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
modifyMomentum( incDec) {
|
||||||
|
let momentum = duplicate(this.data.data.momentum)
|
||||||
|
momentum.value += incDec
|
||||||
|
if ( momentum.value >= 0 && momentum.value <= momentum.max ){
|
||||||
|
this.update( { 'data.momentum': momentum})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getActiveEffects(matching = it => true) {
|
getActiveEffects(matching = it => true) {
|
||||||
let array = Array.from(this.getEmbeddedCollection("ActiveEffect").values());
|
let array = Array.from(this.getEmbeddedCollection("ActiveEffect").values());
|
||||||
@ -306,20 +371,50 @@ export class PegasusActor extends Actor {
|
|||||||
return this.data.data.attributes[attrKey];
|
return this.data.data.attributes[attrKey];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
async addObjectToContainer( itemId, containerId ) {
|
||||||
|
let container = this.data.items.find( item => item.id == containerId && item.data.data.iscontainer)
|
||||||
|
let object = this.data.items.find( item => item.id == itemId )
|
||||||
|
console.log("Found", container, object)
|
||||||
|
if ( container ) {
|
||||||
|
if ( object.data.data.iscontainer) {
|
||||||
|
ui.notifications.warn("Only 1 level of container allowed")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let alreadyInside = this.data.items.filter( item => item.data.data.containerid && item.data.data.containerid == containerId);
|
||||||
|
if ( alreadyInside.length >= container.data.data.containercapacity ) {
|
||||||
|
ui.notifications.warn("Container is already full !")
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
await this.updateEmbeddedDocuments( "Item", [{ _id: object.id, 'data.containerid':containerId }] )
|
||||||
|
}
|
||||||
|
} else if ( object && object.data.data.containerid) { // remove from container
|
||||||
|
console.log("Removeing: ", object)
|
||||||
|
await this.updateEmbeddedDocuments( "Item", [{ _id: object.id, 'data.containerid':"" }]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async preprocessItem(event, item, onDrop = false) {
|
async preprocessItem(event, item, onDrop = false) {
|
||||||
|
console.log("Pre-process !!!", item)
|
||||||
if (item.data.type == 'race') {
|
if (item.data.type == 'race') {
|
||||||
this.applyRace(item.data)
|
this.applyRace(item.data)
|
||||||
} else if (item.data.type == 'ability') {
|
} else if (item.data.type == 'ability') {
|
||||||
this.applyAbility(item.data, [], true)
|
this.applyAbility(item.data, [], true)
|
||||||
if (!onDrop) {
|
if (!onDrop) {
|
||||||
await this.createEmbeddedDocuments('Item', [item.data])
|
await this.createEmbeddedDocuments('Item', [item.data])
|
||||||
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!onDrop) {
|
if (!onDrop) {
|
||||||
await this.createEmbeddedDocuments('Item', [item.data])
|
await this.createEmbeddedDocuments('Item', [item.data])
|
||||||
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let dropID = $(event.target).parents(".item").attr("data-item-id") // Only relevant if container drop
|
||||||
|
let objectID = item.id || item._id
|
||||||
|
this.addObjectToContainer( objectID, dropID )
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -343,7 +438,7 @@ export class PegasusActor extends Actor {
|
|||||||
getSubActors() {
|
getSubActors() {
|
||||||
let subActors = [];
|
let subActors = [];
|
||||||
for (let id of this.data.data.subactors) {
|
for (let id of this.data.data.subactors) {
|
||||||
subActors.push(duplicate(game.actors.get(id)));
|
subActors.push( duplicate(game.actors.get(id)) )
|
||||||
}
|
}
|
||||||
return subActors;
|
return subActors;
|
||||||
}
|
}
|
||||||
@ -879,6 +974,10 @@ export class PegasusActor extends Actor {
|
|||||||
if (this.data.data.combat.hindrancedice > 0) {
|
if (this.data.data.combat.hindrancedice > 0) {
|
||||||
effectsList.push({ label: "Health/Delirium Hindrance", type: "hindrance", applied: false, value: this.data.data.combat.hindrancedice })
|
effectsList.push({ label: "Health/Delirium Hindrance", type: "hindrance", applied: false, value: this.data.data.combat.hindrancedice })
|
||||||
}
|
}
|
||||||
|
let overCapacity = Math.floor(this.encCurrent / this.getEncumbranceCapacity() )
|
||||||
|
if (overCapacity > 0 ) {
|
||||||
|
effectsList.push({ label: "Encumbrance Hindrance", type: "hindrance", applied: false, value: overCapacity })
|
||||||
|
}
|
||||||
let effects = this.data.items.filter(item => item.type == 'effect')
|
let effects = this.data.items.filter(item => item.type == 'effect')
|
||||||
for (let effect of effects) {
|
for (let effect of effects) {
|
||||||
effect = duplicate(effect)
|
effect = duplicate(effect)
|
||||||
@ -962,6 +1061,7 @@ export class PegasusActor extends Actor {
|
|||||||
rollData.statMod = rollData.stat.mod
|
rollData.statMod = rollData.stat.mod
|
||||||
rollData.specList = this.getRelevantSpec(statKey)
|
rollData.specList = this.getRelevantSpec(statKey)
|
||||||
rollData.selectedSpec = "0"
|
rollData.selectedSpec = "0"
|
||||||
|
rollData.img = `systems/fvtt-pegasus-rpg/images/icons/${rollData.stat.abbrev}.webp`
|
||||||
}
|
}
|
||||||
|
|
||||||
this.addEffects(rollData)
|
this.addEffects(rollData)
|
||||||
@ -1044,6 +1144,7 @@ export class PegasusActor extends Actor {
|
|||||||
rollData.specList = [spec]
|
rollData.specList = [spec]
|
||||||
rollData.selectedSpec = spec._id
|
rollData.selectedSpec = spec._id
|
||||||
rollData.specName = spec.name
|
rollData.specName = spec.name
|
||||||
|
rollData.img = spec.img
|
||||||
rollData.specDicesLevel = spec.data.level
|
rollData.specDicesLevel = spec.data.level
|
||||||
this.startRoll(rollData)
|
this.startRoll(rollData)
|
||||||
} else {
|
} else {
|
||||||
@ -1083,6 +1184,7 @@ export class PegasusActor extends Actor {
|
|||||||
rollData.armor = armor
|
rollData.armor = armor
|
||||||
rollData.title = `Armor : ${armor.name}`
|
rollData.title = `Armor : ${armor.name}`
|
||||||
rollData.isResistance = true;
|
rollData.isResistance = true;
|
||||||
|
rollData.img = armor.img
|
||||||
rollData.otherDicesLevel = armor.data.resistance
|
rollData.otherDicesLevel = armor.data.resistance
|
||||||
|
|
||||||
this.startRoll(rollData);
|
this.startRoll(rollData);
|
||||||
@ -1102,6 +1204,8 @@ export class PegasusActor extends Actor {
|
|||||||
rollData.mode = "power"
|
rollData.mode = "power"
|
||||||
rollData.power = power
|
rollData.power = power
|
||||||
rollData.title = `Power : ${power.name}`
|
rollData.title = `Power : ${power.name}`
|
||||||
|
rollData.img = power.img
|
||||||
|
|
||||||
this.startRoll(rollData);
|
this.startRoll(rollData);
|
||||||
} else {
|
} else {
|
||||||
ui.notifications.warn("Power not found !", powerId);
|
ui.notifications.warn("Power not found !", powerId);
|
||||||
|
@ -48,7 +48,7 @@ Hooks.once("init", async function () {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
game.socket.on("system.fvtt-pegasus-rpg", data => {
|
game.socket.on("system.fvtt-pegasus-rpg", data => {
|
||||||
PegasusUtility.onSocketMesssage(data);
|
PegasusUtility.onSocketMesssage(data)
|
||||||
});
|
});
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
@ -38,6 +38,9 @@ export class PegasusUtility {
|
|||||||
Handlebars.registerHelper('upper', function (text) {
|
Handlebars.registerHelper('upper', function (text) {
|
||||||
return text.toUpperCase();
|
return text.toUpperCase();
|
||||||
});
|
});
|
||||||
|
Handlebars.registerHelper('lower', function (text) {
|
||||||
|
return text.toLowerCase()
|
||||||
|
});
|
||||||
Handlebars.registerHelper('upperFirst', function (text) {
|
Handlebars.registerHelper('upperFirst', function (text) {
|
||||||
if (typeof text !== 'string') return text
|
if (typeof text !== 'string') return text
|
||||||
return text.charAt(0).toUpperCase() + text.slice(1)
|
return text.charAt(0).toUpperCase() + text.slice(1)
|
||||||
@ -65,6 +68,18 @@ export class PegasusUtility {
|
|||||||
this.specs = specs.map(i => i.toObject());
|
this.specs = specs.map(i => i.toObject());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async addItemDropToActor(actor, item) {
|
||||||
|
actor.preprocessItem("none", item, false)
|
||||||
|
let chatData = {
|
||||||
|
user: game.user.id,
|
||||||
|
rollMode: game.settings.get("core", "rollMode"),
|
||||||
|
whisper: [game.user.id].concat(ChatMessage.getWhisperRecipients('GM')),
|
||||||
|
content: `<div>The item ${item.name} has been dropped on the actor ${actor.name}</div`
|
||||||
|
}
|
||||||
|
ChatMessage.create(chatData);
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async dropItemOnToken(canvas, data) {
|
static async dropItemOnToken(canvas, data) {
|
||||||
if (data.type != "Item") {
|
if (data.type != "Item") {
|
||||||
@ -79,8 +94,11 @@ export class PegasusUtility {
|
|||||||
if (x >= token.x && x <= (token.x + token.width)
|
if (x >= token.x && x <= (token.x + token.width)
|
||||||
&& y >= token.y && y <= (token.y + token.height)) {
|
&& y >= token.y && y <= (token.y + token.height)) {
|
||||||
let item = await this.searchItem(data)
|
let item = await this.searchItem(data)
|
||||||
token.actor.preprocessItem("none", item, false)
|
if (game.user.isGM || token.actor.isOwner) {
|
||||||
console.log("Dropped !!!", item, token)
|
this.addItemDropToActor(token.actor, item)
|
||||||
|
} else {
|
||||||
|
game.socket.emit("system.fvtt-pegasus-rpg", { name: "msg_gm_item_drop", data: { actorId: token.actor.id, itemId: item.id, isPack: item.pack } })
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -188,7 +206,9 @@ export class PegasusUtility {
|
|||||||
'systems/fvtt-pegasus-rpg/templates/partial-options-level.html',
|
'systems/fvtt-pegasus-rpg/templates/partial-options-level.html',
|
||||||
'systems/fvtt-pegasus-rpg/templates/partial-options-range.html',
|
'systems/fvtt-pegasus-rpg/templates/partial-options-range.html',
|
||||||
'systems/fvtt-pegasus-rpg/templates/partial-options-equipment-types.html',
|
'systems/fvtt-pegasus-rpg/templates/partial-options-equipment-types.html',
|
||||||
'systems/fvtt-pegasus-rpg/templates/partial-equipment-effects.html'
|
'systems/fvtt-pegasus-rpg/templates/partial-equipment-effects.html',
|
||||||
|
'systems/fvtt-pegasus-rpg/templates/partial-actor-stat-block.html',
|
||||||
|
'systems/fvtt-pegasus-rpg/templates/partial-actor-status.html'
|
||||||
]
|
]
|
||||||
return loadTemplates(templatePaths);
|
return loadTemplates(templatePaths);
|
||||||
}
|
}
|
||||||
@ -196,7 +216,7 @@ export class PegasusUtility {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async getEffectFromCompendium(effectName) {
|
static async getEffectFromCompendium(effectName) {
|
||||||
effectName = effectName.toLowerCase()
|
effectName = effectName.toLowerCase()
|
||||||
let effect = game.items.find(item => item.data.type == 'effect' && item.name.toLowerCase() == effectName)
|
let effect = game.items.contents.find(item => item.type == 'effect' && item.name.toLowerCase() == effectName)
|
||||||
if (!effect) {
|
if (!effect) {
|
||||||
let effects = await this.loadCompendium('fvtt-pegasus.effect', item => item.name.toLowerCase() == effectName)
|
let effects = await this.loadCompendium('fvtt-pegasus.effect', item => item.name.toLowerCase() == effectName)
|
||||||
let objs = effects.map(i => i.toObject())
|
let objs = effects.map(i => i.toObject())
|
||||||
@ -325,17 +345,6 @@ export class PegasusUtility {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static clearDefenseState(defenderId) {
|
|
||||||
this.defenderStore[defenderId] = undefined;
|
|
||||||
}
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
static storeDefenseState(rollData) {
|
|
||||||
game.socket.emit("system.fvtt-weapons-of-the-gods", {
|
|
||||||
name: "msg_update_defense_state", data: { defenderId: rollData.defenderId, rollId: rollData.rollId }
|
|
||||||
});
|
|
||||||
this.updateDefenseState(rollData.defenderId, rollData.rollId);
|
|
||||||
}
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static updateRollData(rollData) {
|
static updateRollData(rollData) {
|
||||||
|
|
||||||
@ -358,13 +367,23 @@ export class PegasusUtility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static onSocketMesssage(msg) {
|
static async onSocketMesssage(msg) {
|
||||||
//console.log("SOCKET MESSAGE", msg.name, game.user.character.id, msg.data.defenderId);
|
console.log("SOCKET MESSAGE", msg.name)
|
||||||
if (msg.name == "msg_update_defense_state") {
|
if (msg.name == "msg_update_defense_state") {
|
||||||
this.updateDefenseState(msg.data.defenderId, msg.data.rollId);
|
this.updateDefenseState(msg.data.defenderId, msg.data.rollId)
|
||||||
}
|
}
|
||||||
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_item_drop" && game.user.isGM) {
|
||||||
|
let actor = game.actors.get( msg.data.actorId )
|
||||||
|
let item
|
||||||
|
if (msg.data.isPack) {
|
||||||
|
item = await fromUuid("Compendium." + msg.data.isPack + "." + msg.data.itemId)
|
||||||
|
} else {
|
||||||
|
item = game.items.get(msg.data.itemId)
|
||||||
|
}
|
||||||
|
this.addItemDropToActor( actor, item )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -503,9 +522,6 @@ export class PegasusUtility {
|
|||||||
content: await renderTemplate(`systems/fvtt-pegasus-rpg/templates/chat-generic-result.html`, rollData)
|
content: await renderTemplate(`systems/fvtt-pegasus-rpg/templates/chat-generic-result.html`, rollData)
|
||||||
});
|
});
|
||||||
|
|
||||||
if (rollData.defender) {
|
|
||||||
this.storeDefenseState(rollData);
|
|
||||||
}
|
|
||||||
// Init stuf
|
// Init stuf
|
||||||
if (rollData.isInit) {
|
if (rollData.isInit) {
|
||||||
let combat = game.combats.get(rollData.combatId)
|
let combat = game.combats.get(rollData.combatId)
|
||||||
@ -543,11 +559,11 @@ export class PegasusUtility {
|
|||||||
index = i;
|
index = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let bestScore = (bestRoll * 10) + index;
|
let bestScore = (bestRoll * 10) + index
|
||||||
rollData.bestScore = bestScore;
|
rollData.bestScore = bestScore
|
||||||
rollData.finalScore = bestScore + rollData.negativeModifier + rollData.positiveModifier;
|
rollData.finalScore = bestScore + rollData.negativeModifier + rollData.positiveModifier
|
||||||
|
|
||||||
this.saveRollData(rollData);
|
this.saveRollData(rollData)
|
||||||
|
|
||||||
this.createChatWithRollMode(rollData.alias, {
|
this.createChatWithRollMode(rollData.alias, {
|
||||||
content: await renderTemplate(`systems/fvtt-weapons-of-the-gods/templates/chat-generic-result.html`, rollData)
|
content: await renderTemplate(`systems/fvtt-weapons-of-the-gods/templates/chat-generic-result.html`, rollData)
|
||||||
@ -598,18 +614,19 @@ export class PegasusUtility {
|
|||||||
chatGM.whisper = this.getUsers(user => user.isGM);
|
chatGM.whisper = this.getUsers(user => user.isGM);
|
||||||
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
|
chatGM.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
|
||||||
console.log("blindMessageToGM", chatGM);
|
console.log("blindMessageToGM", chatGM);
|
||||||
game.socket.emit("system.fvtt-weapons-of-the-gods", { msg: "msg_gm_chat_message", data: chatGM });
|
game.socket.emit("system.fvtt-pegasus-rgp", { msg: "msg_gm_chat_message", data: chatGM });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static async searchItem(dataItem) {
|
static async searchItem(dataItem) {
|
||||||
let item;
|
let item
|
||||||
if (dataItem.pack) {
|
if (dataItem.pack) {
|
||||||
item = await fromUuid("Compendium." + dataItem.pack + "." + dataItem.id);
|
item = await fromUuid("Compendium." + dataItem.pack + "." + dataItem.id)
|
||||||
} else {
|
} else {
|
||||||
item = game.items.get(dataItem.id)
|
item = game.items.get(dataItem.id)
|
||||||
}
|
}
|
||||||
return item;
|
return item
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
@ -217,8 +217,9 @@ table {border: 1px solid #7a7971;}
|
|||||||
-webkit-box-flex: 0;
|
-webkit-box-flex: 0;
|
||||||
-ms-flex: 0 0 128px;
|
-ms-flex: 0 0 128px;
|
||||||
flex: 0 0 128px;
|
flex: 0 0 128px;
|
||||||
height: 128px;
|
|
||||||
width: 128px;
|
width: 128px;
|
||||||
|
height: auto;
|
||||||
|
max-height:260px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
object-position: 50% 0;
|
object-position: 50% 0;
|
||||||
@ -384,9 +385,26 @@ table {border: 1px solid #7a7971;}
|
|||||||
|
|
||||||
.window-app.sheet .window-content .sheet-header input[type="text"], .window-app.sheet .window-content .sheet-header input[type="number"], .window-app.sheet .window-content .sheet-header input[type="password"], .window-app.sheet .window-content .sheet-header input[type="date"], .window-app.sheet .window-content .sheet-header input[type="time"] {
|
.window-app.sheet .window-content .sheet-header input[type="text"], .window-app.sheet .window-content .sheet-header input[type="number"], .window-app.sheet .window-content .sheet-header input[type="password"], .window-app.sheet .window-content .sheet-header input[type="date"], .window-app.sheet .window-content .sheet-header input[type="time"] {
|
||||||
color: rgba(36, 37, 37, 0.75);
|
color: rgba(36, 37, 37, 0.75);
|
||||||
background: rgba(255, 255, 255, 0.05);
|
background: rgba(245, 245, 241, 0.95);
|
||||||
border: 0 none;
|
border: 1 none;
|
||||||
margin-bottom: 0.25rem;
|
margin-bottom: 0.25rem;
|
||||||
|
margin-left: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.window-app.sheet .window-content .sheet-body input[type="text"], .window-app.sheet .window-content .sheet-body input[type="number"], .window-app.sheet .window-content .sheet-body input[type="password"], .window-app.sheet .window-content .sheet-body input[type="date"], .window-app.sheet .window-content .sheet-body input[type="time"] {
|
||||||
|
color: rgba(36, 37, 37, 0.75);
|
||||||
|
background: rgba(245, 245, 241, 0.95);
|
||||||
|
border: 1 none;
|
||||||
|
margin-bottom: 0.25rem;
|
||||||
|
margin-left: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.window-app.sheet .window-content .sheet-body select, .window-app.sheet .window-content .sheet-header select {
|
||||||
|
color: rgba(36, 37, 37, 0.75);
|
||||||
|
background: rgba(245, 245, 241, 0.95);
|
||||||
|
border: 1 none;
|
||||||
|
margin-bottom: 0.25rem;
|
||||||
|
margin-left: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.window-app .window-content, .window-app.sheet .window-content .sheet-body{
|
.window-app .window-content, .window-app.sheet .window-content .sheet-body{
|
||||||
@ -522,6 +540,12 @@ ul, li {
|
|||||||
padding: 0.125rem;
|
padding: 0.125rem;
|
||||||
flex: 1 1 5rem;
|
flex: 1 1 5rem;
|
||||||
}
|
}
|
||||||
|
.list-item-shadow {
|
||||||
|
background:rgba(87, 60, 32, 0.35);
|
||||||
|
}
|
||||||
|
.list-item-shadow2 {
|
||||||
|
background:rgba(87, 60, 32, 0.25);
|
||||||
|
}
|
||||||
.item-display-show {
|
.item-display-show {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
@ -531,11 +555,9 @@ ul, li {
|
|||||||
.conteneur-type {
|
.conteneur-type {
|
||||||
background: rgb(200, 10, 100, 0.25);
|
background: rgb(200, 10, 100, 0.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-quantite {
|
.item-quantite {
|
||||||
margin-left: 0.5rem;
|
margin-left: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-item-margin1 {
|
.list-item-margin1 {
|
||||||
margin-left: 1rem;
|
margin-left: 1rem;
|
||||||
}
|
}
|
||||||
@ -585,6 +607,7 @@ ul, li {
|
|||||||
}
|
}
|
||||||
.roll-dialog-label {
|
.roll-dialog-label {
|
||||||
margin: 4px 0;
|
margin: 4px 0;
|
||||||
|
min-width: 96px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.short-label {
|
.short-label {
|
||||||
@ -884,6 +907,7 @@ ul, li {
|
|||||||
background: rgba(220,220,210,0.75);
|
background: rgba(220,220,210,0.75);
|
||||||
border: 2px solid #545469;
|
border: 2px solid #545469;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chat-message .chat-icon {
|
.chat-message .chat-icon {
|
||||||
border: 0;
|
border: 0;
|
||||||
padding: 2px 6px 2px 2px;
|
padding: 2px 6px 2px 2px;
|
||||||
@ -892,6 +916,23 @@ ul, li {
|
|||||||
height: 64px;
|
height: 64px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.stat-icon {
|
||||||
|
border: 0;
|
||||||
|
padding: 2px 2px 2px 2px;
|
||||||
|
max-width:32px;
|
||||||
|
max-height:32px;
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
.combat-icon {
|
||||||
|
border: 0;
|
||||||
|
padding: 2px 2px 2px 2px;
|
||||||
|
max-width:24px;
|
||||||
|
max-height:24px;
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
#sidebar-tabs {
|
#sidebar-tabs {
|
||||||
flex: 0 0 32px;
|
flex: 0 0 32px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
@ -916,23 +957,6 @@ ul, li {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*#sidebar #sidebar-tabs i.fa-comments:before, #sidebar #sidebar-tabs i.fa-fist-raised:before, #sidebar #sidebar-tabs i.fa-users:before, #sidebar #sidebar-tabs i.fa-map:before, #sidebar #sidebar-tabs i.fa-suitcase:before, #sidebar #sidebar-tabs i.fa-book-open:before, #sidebar #sidebar-tabs i.fa-th-list:before, #sidebar #sidebar-tabs i.fa-music:before, #sidebar #sidebar-tabs i.fa-atlas:before, #sidebar #sidebar-tabs i.fa-cogs:before {content: "";}
|
|
||||||
#sidebar #sidebar-tabs i.fa-comments {background: url("img/ui/icon_sidebar_chat.svg") no-repeat;}
|
|
||||||
#sidebar #sidebar-tabs i.fa-fist-raised {background: url("img/ui/icon_sidebar_fight.svg") no-repeat;}
|
|
||||||
#sidebar #sidebar-tabs i.fa-users {background: url("img/ui/icon_sidebar_actor.svg") no-repeat;}
|
|
||||||
#sidebar #sidebar-tabs i.fa-map {background: url("img/ui/icon_sidebar_scene.svg") no-repeat;}
|
|
||||||
#sidebar #sidebar-tabs i.fa-suitcase {background: url("img/ui/icon_sidebar_item.svg") no-repeat;}
|
|
||||||
#sidebar #sidebar-tabs i.fa-book-open {background: url("img/ui/icon_sidebar_journal.svg") no-repeat;}
|
|
||||||
#sidebar #sidebar-tabs i.fa-th-list {background: url("img/ui/icon_sidebar_rolltable.svg") no-repeat;}
|
|
||||||
#sidebar #sidebar-tabs i.fa-music {background: url("img/ui/icon_sidebar_music.svg") no-repeat;}
|
|
||||||
#sidebar #sidebar-tabs i.fa-atlas {background: url("img/ui/icon_sidebar_compendium.svg") no-repeat;}
|
|
||||||
#sidebar #sidebar-tabs i.fa-cogs {background: url("img/ui/icon_sidebar_settings.svg") no-repeat;}
|
|
||||||
|
|
||||||
#combat #combat-controls {
|
|
||||||
box-shadow: inset 0 0 2rem rgba(0,0,0,0.5);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
/* Control, Tool, hotbar & navigation */
|
/* Control, Tool, hotbar & navigation */
|
||||||
|
|
||||||
@ -1216,3 +1240,113 @@ ul, li {
|
|||||||
height: 54px;
|
height: 54px;
|
||||||
position:relative;
|
position:relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* =================== 1. ACTOR SHEET FONT STYLES =========== *//*
|
||||||
|
Agility AGI: #02a41d Also Used for Ranged Damage
|
||||||
|
Mind MND: #a100fe
|
||||||
|
Social SOC: #fd7100
|
||||||
|
Strength STR: #5f3d00 Also Used For Melee Damage
|
||||||
|
Physique PHY: #990304 Also used For Damage Resistance
|
||||||
|
Combat COM: 0136ff Also Used for Melee Attack
|
||||||
|
Defence DEF: #88826a Also used in the Defence on Combat Tab
|
||||||
|
Stealth STL: #505050
|
||||||
|
Perception PER: #f9c801 Also Used for Ranged Damage
|
||||||
|
Focus FOC: #ff0084
|
||||||
|
*/
|
||||||
|
.color-class-agi,
|
||||||
|
.color-class-range {
|
||||||
|
background-color: #02a41d;
|
||||||
|
background: #02a41d;
|
||||||
|
}
|
||||||
|
.color-class-mnd {
|
||||||
|
background-color: #a100fe;
|
||||||
|
}
|
||||||
|
.color-class-soc {
|
||||||
|
background-color: #fd7100;
|
||||||
|
}
|
||||||
|
.color-class-str,
|
||||||
|
.color-class-meleedmg {
|
||||||
|
background-color: #5f3d00;
|
||||||
|
}
|
||||||
|
.color-class-phy,
|
||||||
|
.color-class-dmgres {
|
||||||
|
background-color: #990304;
|
||||||
|
}
|
||||||
|
.color-class-com,
|
||||||
|
.color-class-melee {
|
||||||
|
background-color: #0136ff;
|
||||||
|
}
|
||||||
|
.color-class-def,
|
||||||
|
.color-class-defence {
|
||||||
|
background-color: #88826a;
|
||||||
|
}
|
||||||
|
.color-class-stl {
|
||||||
|
background-color: #505050;
|
||||||
|
}
|
||||||
|
.color-class-per,
|
||||||
|
.color-class-ranged {
|
||||||
|
background-color: #f9c801;
|
||||||
|
}
|
||||||
|
.color-class-foc {
|
||||||
|
background-color: #ff0084;
|
||||||
|
}
|
||||||
|
.color-class-common {
|
||||||
|
background: rgba(185, 183, 40, 0.45);
|
||||||
|
}
|
||||||
|
.status-small-label {
|
||||||
|
font-size: 0.65rem;
|
||||||
|
}
|
||||||
|
.combat-button {
|
||||||
|
min-height: 26px;
|
||||||
|
max-height: 26px;
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
.no-grow {
|
||||||
|
flex-grow: 1;
|
||||||
|
max-width: 24px;
|
||||||
|
}
|
||||||
|
.status-col-name {
|
||||||
|
max-width: 48px;
|
||||||
|
}
|
||||||
|
.status-block {
|
||||||
|
max-width: 128px;
|
||||||
|
}
|
||||||
|
.momentum-block {
|
||||||
|
max-width: 128px;
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
.stat-item {
|
||||||
|
flex-grow: 1;
|
||||||
|
justify-content: flex-start;
|
||||||
|
margin: 2px;
|
||||||
|
}
|
||||||
|
.stat-block {
|
||||||
|
min-width: 160px;
|
||||||
|
}
|
||||||
|
.stat-margin {
|
||||||
|
margin-left: 4px;
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
.combat-margin {
|
||||||
|
margin-left: 4px;
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
.stat-text-white {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
.item-stat-roll {
|
||||||
|
max-height: 42px;
|
||||||
|
}
|
||||||
|
.item-stat-roll select, .item-stat-roll input {
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-right: 2px;
|
||||||
|
}
|
||||||
|
.table-momentum {
|
||||||
|
background: none;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.img-no-border {
|
||||||
|
max-width: 48px;
|
||||||
|
max-height: 48px;
|
||||||
|
border: 0;
|
||||||
|
}
|
60
styles/unused.html
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
{{!-- Carac Tab --}}
|
||||||
|
<div class="tab items" data-group="primary" data-tab="statistics">
|
||||||
|
|
||||||
|
<div class="grid grid-2col">
|
||||||
|
<div class="">
|
||||||
|
<div class="flexrow">
|
||||||
|
<span class="generic-label packed-left"><a class="generic-pool-roll"><button class="chat-card-button">Dice Pool</button></a></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="">
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li class="item flexrow list-item" data-key="momentum">
|
||||||
|
<span class="stat-label flexrow" name="momentum"> <h4>{{data.momentum.label}}</h4> </span>
|
||||||
|
<input type="text" class="padd-right" name="data.momentum.value" value="{{data.momentum.value}}" data-dtype="Number"/>
|
||||||
|
<input type="text" class="padd-right" name="data.momentum.max" value="{{data.momentum.max}}" data-dtype="Number"/>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li class="item flexrow list-item" data-key="mr">
|
||||||
|
<span class="stat-label flexrow" name="mr">
|
||||||
|
<a class="roll-mr" data-stat-key="{{mr}}"><h4>{{data.mr.label}}</h4></a>
|
||||||
|
</span>
|
||||||
|
<select class="carac-base flexrow" type="text" name="data.mr.value" value="{{data.mr.value}}"
|
||||||
|
data-dtype="Number" >
|
||||||
|
{{#select data.mr.value}}
|
||||||
|
{{{@root.optionsDiceList}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
<input type="text" class="padd-right input-numeric-short" name="data.mr.mod" value="{{data.mr.mod}}" data-dtype="Number"/>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="item flexrow list-item" data-attr-key="{{key}}">
|
||||||
|
{{#each data.secondary as |stat2 key|}}
|
||||||
|
{{#if stat2.iscombat}}
|
||||||
|
<span class="stat-label" name="{{key}}">
|
||||||
|
<h4>{{stat2.label}} : </h4>
|
||||||
|
</span>
|
||||||
|
<span class="small-label padd-right packed-left">Cur</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.secondary.{{key}}.value" value="{{stat2.value}}" data-dtype="Number"/>
|
||||||
|
<span class="small-label padd-right packed-left"> Max</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.secondary.{{key}}.max" value="{{stat2.max}}" data-dtype="Number"/>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item" data-key="momentum">
|
||||||
|
<span class="stat-label flexrow" name="momentum"><h4>{{data.momentum.label}}:</h4></span>
|
||||||
|
<span class="small-label padd-right packed-left">Cur</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.momentum.value" value="{{data.momentum.value}}" data-dtype="Number"/>
|
||||||
|
<span class="small-label padd-right packed-left"> Max</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.momentum.max" value="{{data.momentum.max}}" data-dtype="Number"/>
|
||||||
|
</li>
|
@ -180,9 +180,9 @@
|
|||||||
"styles": [
|
"styles": [
|
||||||
"styles/simple.css"
|
"styles/simple.css"
|
||||||
],
|
],
|
||||||
"templateVersion": 81,
|
"templateVersion": 86,
|
||||||
"title": "Pegasus RPG",
|
"title": "Pegasus RPG",
|
||||||
"url": "https://www.uberwald.me/data/files/fvtt-pegasus-rpg",
|
"url": "https://www.uberwald.me/data/files/fvtt-pegasus-rpg",
|
||||||
"version": "0.4.21",
|
"version": "0.5.1",
|
||||||
"background" : "./images/ui/pegasus_welcome_page.webp"
|
"background" : "./images/ui/pegasus_welcome_page.webp"
|
||||||
}
|
}
|
||||||
|
@ -41,13 +41,15 @@
|
|||||||
"abbrev": "AGI",
|
"abbrev": "AGI",
|
||||||
"level": 1,
|
"level": 1,
|
||||||
"value": 1,
|
"value": 1,
|
||||||
"mod": 0
|
"mod": 0,
|
||||||
|
"col": 1
|
||||||
},
|
},
|
||||||
"mnd":{
|
"mnd":{
|
||||||
"label": "Mind",
|
"label": "Mind",
|
||||||
"abbrev": "MND",
|
"abbrev": "MND",
|
||||||
"level": 1,
|
"level": 1,
|
||||||
"value": 1,
|
"value": 1,
|
||||||
|
"col": 1,
|
||||||
"mod": 0
|
"mod": 0
|
||||||
},
|
},
|
||||||
"soc":{
|
"soc":{
|
||||||
@ -55,6 +57,7 @@
|
|||||||
"abbrev": "SOC",
|
"abbrev": "SOC",
|
||||||
"level": 1,
|
"level": 1,
|
||||||
"value": 1,
|
"value": 1,
|
||||||
|
"col": 1,
|
||||||
"mod": 0
|
"mod": 0
|
||||||
},
|
},
|
||||||
"str":{
|
"str":{
|
||||||
@ -62,6 +65,7 @@
|
|||||||
"abbrev": "STR",
|
"abbrev": "STR",
|
||||||
"level": 1,
|
"level": 1,
|
||||||
"value": 1,
|
"value": 1,
|
||||||
|
"col": 1,
|
||||||
"mod": 0
|
"mod": 0
|
||||||
},
|
},
|
||||||
"phy":{
|
"phy":{
|
||||||
@ -69,6 +73,7 @@
|
|||||||
"abbrev": "PHY",
|
"abbrev": "PHY",
|
||||||
"level": 1,
|
"level": 1,
|
||||||
"value": 1,
|
"value": 1,
|
||||||
|
"col": 1,
|
||||||
"mod": 0
|
"mod": 0
|
||||||
},
|
},
|
||||||
"com":{
|
"com":{
|
||||||
@ -76,6 +81,7 @@
|
|||||||
"abbrev": "COM",
|
"abbrev": "COM",
|
||||||
"level": 1,
|
"level": 1,
|
||||||
"value": 1,
|
"value": 1,
|
||||||
|
"col": 2,
|
||||||
"mod": 0
|
"mod": 0
|
||||||
},
|
},
|
||||||
"def":{
|
"def":{
|
||||||
@ -83,6 +89,7 @@
|
|||||||
"abbrev": "DEF",
|
"abbrev": "DEF",
|
||||||
"level": 1,
|
"level": 1,
|
||||||
"value": 1,
|
"value": 1,
|
||||||
|
"col": 2,
|
||||||
"mod": 0
|
"mod": 0
|
||||||
},
|
},
|
||||||
"stl":{
|
"stl":{
|
||||||
@ -90,6 +97,7 @@
|
|||||||
"abbrev": "STL",
|
"abbrev": "STL",
|
||||||
"level": 1,
|
"level": 1,
|
||||||
"value": 1,
|
"value": 1,
|
||||||
|
"col": 2,
|
||||||
"mod": 0
|
"mod": 0
|
||||||
},
|
},
|
||||||
"per":{
|
"per":{
|
||||||
@ -97,6 +105,7 @@
|
|||||||
"abbrev": "PER",
|
"abbrev": "PER",
|
||||||
"level": 1,
|
"level": 1,
|
||||||
"value": 1,
|
"value": 1,
|
||||||
|
"col": 2,
|
||||||
"mod": 0
|
"mod": 0
|
||||||
},
|
},
|
||||||
"foc":{
|
"foc":{
|
||||||
@ -104,6 +113,7 @@
|
|||||||
"abbrev": "FOC",
|
"abbrev": "FOC",
|
||||||
"level": 1,
|
"level": 1,
|
||||||
"value": 1,
|
"value": 1,
|
||||||
|
"col": 2,
|
||||||
"mod": 0
|
"mod": 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -148,7 +158,7 @@
|
|||||||
"max": 0
|
"max": 0
|
||||||
},
|
},
|
||||||
"stealthhealth": {
|
"stealthhealth": {
|
||||||
"label": "Stealth Health",
|
"label": "STL Health",
|
||||||
"type": "value",
|
"type": "value",
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"ismax": true,
|
"ismax": true,
|
||||||
@ -156,7 +166,7 @@
|
|||||||
"max": 0
|
"max": 0
|
||||||
},
|
},
|
||||||
"socialhealth": {
|
"socialhealth": {
|
||||||
"label": "Social Health",
|
"label": "SOC Health",
|
||||||
"type": "value",
|
"type": "value",
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"ismax": true,
|
"ismax": true,
|
||||||
@ -371,6 +381,9 @@
|
|||||||
"otherdice": false,
|
"otherdice": false,
|
||||||
"effects": [],
|
"effects": [],
|
||||||
"activated": false,
|
"activated": false,
|
||||||
|
"iscontainer": false,
|
||||||
|
"containercapacity": 0,
|
||||||
|
"containerid": "",
|
||||||
"description":""
|
"description":""
|
||||||
},
|
},
|
||||||
"money" : {
|
"money" : {
|
||||||
|
@ -6,11 +6,66 @@
|
|||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
|
||||||
<div class="flexcol">
|
|
||||||
<div class="flexrow">
|
|
||||||
|
|
||||||
</div>
|
<h1 class="charname margin-right"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<div class="stat-item">
|
||||||
|
<ul>
|
||||||
|
{{#each data.statistics as |stat key|}}
|
||||||
|
{{#if (eq stat.col 1)}}
|
||||||
|
{{> systems/fvtt-pegasus-rpg/templates/partial-actor-stat-block.html stat=stat key=key}}
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="stat-item">
|
||||||
|
<ul>
|
||||||
|
{{#each data.statistics as |stat key|}}
|
||||||
|
{{#if (eq stat.col 2)}}
|
||||||
|
{{> systems/fvtt-pegasus-rpg/templates/partial-actor-stat-block.html stat=stat key=key}}
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="stat-item status-block">
|
||||||
|
{{> systems/fvtt-pegasus-rpg/templates/partial-actor-status.html}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="stat-item momentum-block">
|
||||||
|
<div class="flexcol">
|
||||||
|
<label class="status-small-label"><strong>Momentum</strong></label>
|
||||||
|
<table class="table-momentum">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<img class="img-no-border" src="systems/fvtt-pegasus-rpg/images/icons/Momentum.webp">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a class="momentum-plus plus-minus-button">+</a>
|
||||||
|
<br>
|
||||||
|
<a class="momentum-minus plus-minus-button">-</a>
|
||||||
|
</td>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<label class="status-small-label">Cur Max</label><br>
|
||||||
|
<input type="text" class="padd-right status-small-label no-grow" name="data.momentum.value" value="{{data.momentum.value}}" data-dtype="Number"/>
|
||||||
|
<input type="text" class="padd-right status-small-label no-grow" name="data.momentum.max" value="{{data.momentum.max}}" data-dtype="Number"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<label class="status-small-label">Active NRG</label>
|
||||||
|
<input type="text" class="padd-right status-small-label no-grow" name="data.nrg.activated" value="{{data.nrg.activated}}" data-dtype="Number"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -19,10 +74,9 @@
|
|||||||
|
|
||||||
{{!-- Sheet Tab Navigation --}}
|
{{!-- Sheet Tab Navigation --}}
|
||||||
<nav class="sheet-tabs tabs" data-group="primary">
|
<nav class="sheet-tabs tabs" data-group="primary">
|
||||||
<a class="item" data-tab="statistics">Statistics</a>
|
<a class="item" data-tab="combat">Combat</a>
|
||||||
<a class="item" data-tab="specs">Specialisations</a>
|
<a class="item" data-tab="specs">Specialisations</a>
|
||||||
<a class="item" data-tab="powers">Powers/Abilities</a>
|
<a class="item" data-tab="powers">Powers/Abilities</a>
|
||||||
<a class="item" data-tab="combat">Combat</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>
|
||||||
</nav>
|
</nav>
|
||||||
@ -30,220 +84,83 @@
|
|||||||
{{!-- Sheet Body --}}
|
{{!-- Sheet Body --}}
|
||||||
<section class="sheet-body">
|
<section class="sheet-body">
|
||||||
|
|
||||||
{{!-- Carac Tab --}}
|
|
||||||
<div class="tab items" data-group="primary" data-tab="statistics">
|
|
||||||
|
|
||||||
<span><a class="lock-unlock-sheet"><img class="small-button-container"
|
|
||||||
src="systems/fvtt-weapons-of-the-gods/images/icons/{{#if editScore}}unlocked.svg{{else}}locked.svg{{/if}}"
|
|
||||||
alt="Unlocked/Locked">{{#if editScore}}Unlocked{{else}}Locked{{/if}}</a>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<div class="grid grid-2col">
|
|
||||||
<div class="">
|
|
||||||
<ul>
|
|
||||||
{{#each data.statistics as |stat key|}}
|
|
||||||
<li class="item flexrow list-item" data-attr-key="{{key}}">
|
|
||||||
<span class="stat-label flexrow" name="{{key}}">
|
|
||||||
<h4><a class="roll-stat" data-stat-key="{{key}}">{{stat.label}} [{{stat.abbrev}}]</a></h4></span>
|
|
||||||
<select class=" carac-base flexrow" type="text" name="data.statistics.{{key}}.value"
|
|
||||||
value="{{stat.value}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
|
||||||
{{#select stat.value}}
|
|
||||||
{{{@root.optionsDiceList}}}
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
<input type="text" class="input-numeric-short padd-right" name="data.statistics.{{key}}.mod"
|
|
||||||
value="{{stat.mod}}" data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}} />
|
|
||||||
</li>
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
<div class="flexrow">
|
|
||||||
<span class="generic-label packed-left"><a class="generic-pool-roll"><button class="chat-card-button">Dice Pool</button></a></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="">
|
|
||||||
<ul>
|
|
||||||
<li class="item flexrow list-item"><span> </span><span>Current</span><span>Bonus</span><span>Max</span></li>
|
|
||||||
<li class="item flexrow list-item"></li>
|
|
||||||
<li class="item flexrow list-item"></li>
|
|
||||||
{{#each data.secondary as |stat2 key|}}
|
|
||||||
<li class="item flexrow list-item" data-attr-key="{{key}}">
|
|
||||||
<span class="stat-label flexrow" name="{{key}}">
|
|
||||||
<h4>{{stat2.label}}<br>
|
|
||||||
{{#if (eq key "health")}}
|
|
||||||
(KOV -{{stat2.max}})
|
|
||||||
{{/if}}
|
|
||||||
{{#if (eq key "delirium")}}
|
|
||||||
(MV -{{stat2.max}})
|
|
||||||
{{/if}}
|
|
||||||
</h4>
|
|
||||||
</span>
|
|
||||||
<input type="text" class="padd-right" name="data.secondary.{{key}}.value" value="{{stat2.value}}" data-dtype="Number"/>
|
|
||||||
<input type="text" class="padd-right" name="data.secondary.{{key}}.bonus" value="{{stat2.bonus}}" data-dtype="Number"/>
|
|
||||||
<input type="text" class="padd-right" name="data.secondary.{{key}}.max" value="{{stat2.max}}" data-dtype="Number"/>
|
|
||||||
</li>
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li class="item flexrow list-item" data-key="nrg">
|
|
||||||
<span class="stat-label flexrow" name="nrg"> <h4>{{data.nrg.label}}</h4> </span>
|
|
||||||
<span class="small-label padd-right packed-left">Act</span>
|
|
||||||
<input type="text" class="padd-right" name="data.nrg.activated" value="{{data.nrg.activated}}" data-dtype="Number"/>
|
|
||||||
<span class="small-label padd-right packed-left"> Cur</span><input type="text" class="padd-right" name="data.nrg.value" value="{{data.nrg.value}}" data-dtype="Number"/>
|
|
||||||
<span class="small-label padd-right packed-left"> Mod</span><input type="text" class="padd-right" name="data.nrg.mod" value="{{data.nrg.mod}}" data-dtype="Number"/>
|
|
||||||
<span class="small-label padd-right packed-left"> Max</span><input type="text" class="padd-right" name="data.nrg.max" value="{{data.nrg.max}}" data-dtype="Number"/>
|
|
||||||
<span class="small-label padd-right packed-left"> / {{data.nrg.absolutemax}}</span>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li class="item flexrow list-item" data-key="momentum">
|
|
||||||
<span class="stat-label flexrow" name="momentum"> <h4>{{data.momentum.label}}</h4> </span>
|
|
||||||
<input type="text" class="padd-right" name="data.momentum.value" value="{{data.momentum.value}}" data-dtype="Number"/>
|
|
||||||
<input type="text" class="padd-right" name="data.momentum.max" value="{{data.momentum.max}}" data-dtype="Number"/>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
{{!-- Other Tab --}}
|
|
||||||
<div class="tab items" data-group="primary" data-tab="specs">
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<span class="generic-label">
|
|
||||||
<h3>Specialisations</h3>
|
|
||||||
</span>
|
|
||||||
<ul class="stat-list alternate-list">
|
|
||||||
{{#each specs as |spec key|}}
|
|
||||||
<li class="item stat flexrow list-item" data-item-id="{{spec._id}}">
|
|
||||||
<img class="sheet-competence-img" src="{{spec.img}}" />
|
|
||||||
<span class="stat-label"><a class="roll-spec">{{spec.name}}</a></span>
|
|
||||||
<span class="stat-label">{{upper spec.data.statistic}}</span>
|
|
||||||
<span class="stat-label">{{spec.data.dice}}</span>
|
|
||||||
{{#if spec.data.ispowergroup}}
|
|
||||||
{{#if spec.data.powersactivated}}
|
|
||||||
<span class="stat-label"><a class="spec-group-deactivate">Deactivate</a></span>
|
|
||||||
{{else}}
|
|
||||||
<span class="stat-label"><a class="spec-group-activate">Activate</a></span>
|
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
|
||||||
<span class="stat-label"> </span>
|
|
||||||
{{/if}}
|
|
||||||
<div class="item-controls">
|
|
||||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{!-- Combat Tab --}}
|
{{!-- Combat Tab --}}
|
||||||
<div class="tab fight" data-group="primary" data-tab="combat">
|
<div class="tab fight" data-group="primary" data-tab="combat">
|
||||||
<div class="flexcol">
|
<div class="flexcol">
|
||||||
|
|
||||||
<ul>
|
<div class="flexrow">
|
||||||
<li class="item flexrow list-item" data-key="mr">
|
<div>
|
||||||
<span class="stat-label flexrow" name="mr">
|
<ul class="stat-item">
|
||||||
<a class="roll-mr" data-stat-key="{{mr}}"><h4>{{data.mr.label}}</h4></a>
|
<li class="item flexrow list-item color-class-melee"><a class="combat-button attack-melee flexrow">
|
||||||
</span>
|
<span class="combat-icon flexrow">
|
||||||
<select class="carac-base flexrow" type="text" name="data.mr.value" value="{{data.mr.value}}"
|
<img class="combat-icon" src="systems/fvtt-pegasus-rpg/images/icons/COM.webp">
|
||||||
data-dtype="Number" >
|
</span>
|
||||||
{{#select data.mr.value}}
|
<span class="generic-label combat-margin stat-text-white">Melee Attack</span>
|
||||||
{{{@root.optionsDiceList}}}
|
</a>
|
||||||
{{/select}}
|
</li>
|
||||||
</select>
|
<li class="item flexrow list-item color-class-meleedmg"><a class="combat-button damage-melee flexrow">
|
||||||
<input type="text" class="padd-right input-numeric-short" name="data.mr.mod" value="{{data.mr.mod}}" data-dtype="Number"/>
|
<span class="combat-icon flexrow">
|
||||||
</li>
|
<img class="combat-icon" src="systems/fvtt-pegasus-rpg/images/icons/STR.webp">
|
||||||
|
</span>
|
||||||
<li class="item flexrow list-item" data-key="nrg">
|
<span class="generic-label combat-margin stat-text-white">Melee/Thrown Damage</span>
|
||||||
<span class="stat-label flexrow" name="nrg"><h4>{{data.nrg.label}}</h4> </span>
|
</a>
|
||||||
<span class="small-label padd-right packed-left">Act</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.nrg.activated" value="{{data.nrg.activated}}" data-dtype="Number"/>
|
</li>
|
||||||
<span class="small-label padd-right packed-left"> Cur</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.nrg.value" value="{{data.nrg.value}}" data-dtype="Number"/>
|
</ul>
|
||||||
<span class="small-label padd-right packed-left"> Mod</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.nrg.mod" value="{{data.nrg.mod}}" data-dtype="Number"/>
|
|
||||||
<span class="small-label padd-right packed-left"> Max</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.nrg.max" value="{{data.nrg.max}}" data-dtype="Number"/>
|
|
||||||
<span class="small-label padd-right packed-left"> / {{data.nrg.absolutemax}}</span>
|
|
||||||
</li>
|
|
||||||
<li class="item flexrow list-item" data-attr-key="{{key}}">
|
|
||||||
{{#each data.secondary as |stat2 key|}}
|
|
||||||
{{#if stat2.iscombat}}
|
|
||||||
<span class="stat-label" name="{{key}}">
|
|
||||||
<h4>{{stat2.label}} : </h4>
|
|
||||||
</span>
|
|
||||||
<span class="small-label padd-right packed-left">Cur</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.secondary.{{key}}.value" value="{{stat2.value}}" data-dtype="Number"/>
|
|
||||||
<span class="small-label padd-right packed-left"> Max</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.secondary.{{key}}.max" value="{{stat2.max}}" data-dtype="Number"/>
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
</li>
|
|
||||||
<li class="item flexrow list-item" data-key="momentum">
|
|
||||||
<span class="stat-label flexrow" name="momentum"><h4>{{data.momentum.label}}:</h4></span>
|
|
||||||
<span class="small-label padd-right packed-left">Cur</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.momentum.value" value="{{data.momentum.value}}" data-dtype="Number"/>
|
|
||||||
<span class="small-label padd-right packed-left"> Max</span><input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.momentum.max" value="{{data.momentum.max}}" data-dtype="Number"/>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<span class="generic-label">
|
|
||||||
<h3>Combat Dice Pools</h3>
|
|
||||||
</span>
|
|
||||||
<ul class="stat-list alternate-list">
|
|
||||||
<li class="item stat flexrow list-item">
|
|
||||||
<span class="generic-label"><a class="attack-melee"><button class="chat-card-button">Melee Attack</button></a></span>
|
|
||||||
<span class="generic-label"><a class="attack-ranged"><button class="chat-card-button">Ranged Attack</button></a></span>
|
|
||||||
<span class="generic-label"><a class="damage-ranged"><button class="chat-card-button">Ranged Damage</button></a></span>
|
|
||||||
</li>
|
|
||||||
<li class="item stat flexrow list-item">
|
|
||||||
<span class="generic-label"><a class="damage-melee"><button class="chat-card-button">Melee/Thrown Damage</button></a></span>
|
|
||||||
<span class="generic-label"><a class="defense-roll"><button class="chat-card-button">Defence</button></a></span>
|
|
||||||
<span class="generic-label"><a class="damage-resistance"><button class="chat-card-button">Damage Resistance</button></a></span>
|
|
||||||
</li>
|
|
||||||
<li class="item stat flexrow list-item">
|
|
||||||
<span class="generic-label"></span>
|
|
||||||
<span class="generic-label"><a class="generic-pool-roll"><button class="chat-card-button">Dice Pool</button></a></span>
|
|
||||||
<span class="generic-label"></span>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<span class="generic-label">
|
|
||||||
<h3>Stun</h3>
|
|
||||||
</span>
|
|
||||||
<ul class="stat-list alternate-list">
|
|
||||||
<li class="item stat flexrow list-item">
|
|
||||||
<span class="generic-label">Stun Level</span>
|
|
||||||
<input type="text" class="" name="data.combat.stunlevel" value="{{data.combat.stunlevel}}" data-dtype="Number" />
|
|
||||||
<span class="generic-label">Stun Threshold</span>
|
|
||||||
<input type="text" class="" name="data.combat.stunthreshold" value="{{data.combat.stunthreshold}}" data-dtype="Number" />
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<span class="generic-label">
|
|
||||||
<h3>Effects</h3>
|
|
||||||
</span>
|
|
||||||
<ul class="stat-list alternate-list">
|
|
||||||
{{#each effects as |effect key|}}
|
|
||||||
<li class="item stat flexrow list-item" data-arme-id="{{effect.id}}" data-item-id="{{effect._id}}">
|
|
||||||
<img class="sheet-competence-img" src="{{effect.img}}" />
|
|
||||||
<span class="generic-label">{{effect.name}}</span>
|
|
||||||
<span class="generic-label">{{upperFirst effect.data.type}}</span>
|
|
||||||
<span class="generic-label">{{upperFirst effect.data.genre}}</span>
|
|
||||||
<span class="generic-label">Lvl:{{effect.data.effectlevel}}</span>
|
|
||||||
<span class="generic-label">{{upper effect.data.stataffected}}</span>
|
|
||||||
<div class="item-controls">
|
|
||||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
|
||||||
{{/each}}
|
<div class="stat-item">
|
||||||
</ul>
|
<ul class="stat-list alternate-list">
|
||||||
|
<li class="item flexrow list-item color-class-ranged"><a class="combat-button attack-ranged flexrow">
|
||||||
|
<span class="combat-icon flexrow">
|
||||||
|
<img class="combat-icon" src="systems/fvtt-pegasus-rpg/images/icons/PER.webp">
|
||||||
|
</span>
|
||||||
|
<span class="generic-label combat-margin stat-text-white">Ranged Attack</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item color-class-range"><a class="combat-button damage-ranged flexrow">
|
||||||
|
<span class="combat-icon flexrow">
|
||||||
|
<img class="combat-icon" src="systems/fvtt-pegasus-rpg/images/icons/AGI.webp">
|
||||||
|
</span>
|
||||||
|
<span class="generic-label combat-margin stat-text-white">Ranged Damage</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="stat-item">
|
||||||
|
<ul class="stat-list alternate-list">
|
||||||
|
<li class="item flexrow list-item color-class-defence"><a class="combat-button defense-roll flexrow">
|
||||||
|
<span class="combat-icon flexrow">
|
||||||
|
<img class="combat-icon" src="systems/fvtt-pegasus-rpg/images/icons/DEF.webp">
|
||||||
|
</span>
|
||||||
|
<span class="generic-label combat-margin stat-text-white">Defence</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="item flexrow list-item color-class-dmgres"><a class="combat-button damage-resistance flexrow">
|
||||||
|
<span class="combat-icon flexrow">
|
||||||
|
<img class="combat-icon" src="systems/fvtt-pegasus-rpg/images/icons/PHY.webp">
|
||||||
|
</span>
|
||||||
|
<span class="generic-label combat-margin stat-text-white">Damage Resistance</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="stat-item">
|
||||||
|
<span class="generic-label">
|
||||||
|
<h3>Stun</h3>
|
||||||
|
</span>
|
||||||
|
<ul class="stat-list alternate-list">
|
||||||
|
<li class="item stat flexrow list-item">
|
||||||
|
<span class="generic-label">Stun Level</span>
|
||||||
|
<input type="text" class="" name="data.combat.stunlevel" value="{{data.combat.stunlevel}}" data-dtype="Number" />
|
||||||
|
<span class="generic-label">Stun Threshold</span>
|
||||||
|
<input type="text" class="" name="data.combat.stunthreshold" value="{{data.combat.stunthreshold}}" data-dtype="Number" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<span class="generic-label">
|
<span class="generic-label">
|
||||||
@ -251,7 +168,7 @@
|
|||||||
</span>
|
</span>
|
||||||
<ul class="stat-list alternate-list">
|
<ul class="stat-list alternate-list">
|
||||||
{{#each perks as |perk key|}}
|
{{#each perks as |perk key|}}
|
||||||
<li class="item stat flexrow list-item" data-item-id="{{perk._id}}">
|
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{perk._id}}">
|
||||||
<img class="sheet-competence-img" src="{{perk.img}}" />
|
<img class="sheet-competence-img" src="{{perk.img}}" />
|
||||||
<span class="stat-label">{{perk.name}}</span>
|
<span class="stat-label">{{perk.name}}</span>
|
||||||
<span class="stat-label">Lvl:{{perk.data.level}}</span>
|
<span class="stat-label">Lvl:{{perk.data.level}}</span>
|
||||||
@ -307,9 +224,66 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h3>Effects</h3>
|
||||||
|
</div>
|
||||||
|
<ul class="stat-list alternate-list">
|
||||||
|
{{#each effects as |effect key|}}
|
||||||
|
<li class="item stat flexrow list-item list-item-shadow" data-arme-id="{{effect.id}}" data-item-id="{{effect._id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{effect.img}}" />
|
||||||
|
<span class="generic-label">{{effect.name}}</span>
|
||||||
|
<span class="generic-label">{{upperFirst effect.data.type}}</span>
|
||||||
|
<span class="generic-label">{{upperFirst effect.data.genre}}</span>
|
||||||
|
<span class="generic-label">Lvl:{{effect.data.effectlevel}}</span>
|
||||||
|
<span class="generic-label">{{upper effect.data.stataffected}}</span>
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{!-- Other Tab --}}
|
||||||
|
<div class="tab items" data-group="primary" data-tab="specs">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<span class="generic-label">
|
||||||
|
<h3>Specialisations</h3>
|
||||||
|
</span>
|
||||||
|
<ul class="stat-list alternate-list">
|
||||||
|
{{#each specs as |spec key|}}
|
||||||
|
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{spec._id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{spec.img}}" />
|
||||||
|
<span class="stat-label"><a class="roll-spec">{{spec.name}}</a></span>
|
||||||
|
<span class="stat-label">{{upper spec.data.statistic}}</span>
|
||||||
|
<span class="stat-label">{{spec.data.dice}}</span>
|
||||||
|
{{#if spec.data.ispowergroup}}
|
||||||
|
{{#if spec.data.powersactivated}}
|
||||||
|
<span class="stat-label"><a class="spec-group-deactivate">Deactivate</a></span>
|
||||||
|
{{else}}
|
||||||
|
<span class="stat-label"><a class="spec-group-activate">Activate</a></span>
|
||||||
|
{{/if}}
|
||||||
|
{{else}}
|
||||||
|
<span class="stat-label"> </span>
|
||||||
|
{{/if}}
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<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 fight" data-group="primary" data-tab="powers">
|
<div class="tab fight" data-group="primary" data-tab="powers">
|
||||||
|
|
||||||
@ -326,13 +300,12 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<hr>
|
|
||||||
<span class="generic-label">
|
<span class="generic-label">
|
||||||
<h3>Powers</h3>
|
<h3>Powers</h3>
|
||||||
</span>
|
</span>
|
||||||
<ul class="stat-list alternate-list">
|
<ul class="stat-list alternate-list">
|
||||||
{{#each powers as |power key|}}
|
{{#each powers as |power key|}}
|
||||||
<li class="item stat flexrow list-item" data-item-id="{{power._id}}">
|
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{power._id}}">
|
||||||
<img class="sheet-competence-img" src="{{power.img}}" />
|
<img class="sheet-competence-img" src="{{power.img}}" />
|
||||||
<span class="stat-label">
|
<span class="stat-label">
|
||||||
{{#if power.data.rollneeded}}
|
{{#if power.data.rollneeded}}
|
||||||
@ -369,13 +342,12 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<hr>
|
|
||||||
<span class="generic-label">
|
<span class="generic-label">
|
||||||
<h3>Abilities</h3>
|
<h3>Abilities</h3>
|
||||||
</span>
|
</span>
|
||||||
<ul class="stat-list alternate-list">
|
<ul class="stat-list alternate-list">
|
||||||
{{#each abilities as |ability key|}}
|
{{#each abilities as |ability key|}}
|
||||||
<li class="item stat flexrow list-item" data-item-id="{{ability._id}}">
|
<li class="item stat flexrow list-item list-item-shadow" data-item-id="{{ability._id}}">
|
||||||
<img class="sheet-competence-img" src="{{ability.img}}" />
|
<img class="sheet-competence-img" src="{{ability.img}}" />
|
||||||
<span class="stat-label">{{ability.name}}</span>
|
<span class="stat-label">{{ability.name}}</span>
|
||||||
<div class="item-controls">
|
<div class="item-controls">
|
||||||
@ -392,12 +364,19 @@
|
|||||||
{{!-- Equipement Tab --}}
|
{{!-- Equipement Tab --}}
|
||||||
<div class="tab equipment" data-group="primary" data-tab="equipment">
|
<div class="tab equipment" data-group="primary" data-tab="equipment">
|
||||||
|
|
||||||
|
<div class="flexrow">
|
||||||
|
<h3>Encumbrance</h3>
|
||||||
|
<span class="small-label">Current : {{encCurrent}}</span>
|
||||||
|
<span class="small-label">Capacity : {{encCapacity}}</span>
|
||||||
|
<span class="small-label">Hindrance : {{encHindrance}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<h4>Money</h4>
|
<h3>Money</h3>
|
||||||
</div>
|
</div>
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
{{#each moneys as |money key|}}
|
{{#each moneys as |money key|}}
|
||||||
<li class="item flexrow list-item" data-item-id="{{money._id}}">
|
<li class="item flexrow list-item list-item-shadow" data-item-id="{{money._id}}">
|
||||||
<img class="sheet-competence-img" src="{{money.img}}" />
|
<img class="sheet-competence-img" src="{{money.img}}" />
|
||||||
<span class="equipement-label">{{money.name}}</span>
|
<span class="equipement-label">{{money.name}}</span>
|
||||||
<span class="generic-label">
|
<span class="generic-label">
|
||||||
@ -412,46 +391,12 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<hr>
|
|
||||||
<div>
|
<div>
|
||||||
<h4>Equipment</h4>
|
<h3>Weapons</h3>
|
||||||
</div>
|
|
||||||
<ul class="item-list alternate-list">
|
|
||||||
{{#each equipments as |equip key|}}
|
|
||||||
<li class="item flexrow list-item" data-item-id="{{equip._id}}">
|
|
||||||
<img class="sheet-competence-img" src="{{equip.img}}" />
|
|
||||||
<span class="equipement-label">{{equip.name}}</span>
|
|
||||||
<span class="equipement-label">{{upperFirst equip.data.type}}</span>
|
|
||||||
<span class="generic-label">Qty {{equip.data.quantity}}</span>
|
|
||||||
|
|
||||||
{{#if (count equip.data.effects)}}
|
|
||||||
{{#if equip.data.activated}}
|
|
||||||
<span class="stat-label"><a class="equip-deactivate">Deactivate</a></span>
|
|
||||||
{{else}}
|
|
||||||
<span class="stat-label"><a class="equip-activate">Activate</a></span>
|
|
||||||
{{/if}}
|
|
||||||
{{else}}
|
|
||||||
<span class="stat-label"> </span>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<span class="generic-label">Qty {{equip.data.quantity}}</span>
|
|
||||||
<div class="item-controls">
|
|
||||||
<a class="item-control item-equip" title="Worn">{{#if equip.data.equipped}}<i
|
|
||||||
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
|
||||||
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
<div>
|
|
||||||
<h4>Weapons</h4>
|
|
||||||
</div>
|
</div>
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
{{#each weapons as |weapon key|}}
|
{{#each weapons as |weapon key|}}
|
||||||
<li class="item flexrow list-item" data-item-id="{{weapon._id}}">
|
<li class="item flexrow list-item list-item-shadow" data-item-id="{{weapon._id}}">
|
||||||
<img class="sheet-competence-img" src="{{weapon.img}}" />
|
<img class="sheet-competence-img" src="{{weapon.img}}" />
|
||||||
<span class="equipement-label">{{weapon.name}}</span>
|
<span class="equipement-label">{{weapon.name}}</span>
|
||||||
|
|
||||||
@ -475,13 +420,12 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<hr>
|
|
||||||
<div>
|
<div>
|
||||||
<h4>Armors & Shields</h4>
|
<h3>Armors & Shields</h3>
|
||||||
</div>
|
</div>
|
||||||
<ul class="item-list alternate-list">
|
<ul class="item-list alternate-list">
|
||||||
{{#each armors as |armor key|}}
|
{{#each armors as |armor key|}}
|
||||||
<li class="item flexrow list-item" data-item-id="{{armor._id}}">
|
<li class="item flexrow list-item list-item-shadow" data-item-id="{{armor._id}}">
|
||||||
<img class="sheet-competence-img" src="{{armor.img}}" />
|
<img class="sheet-competence-img" src="{{armor.img}}" />
|
||||||
<span class="equipement-label">{{armor.name}}</span>
|
<span class="equipement-label">{{armor.name}}</span>
|
||||||
|
|
||||||
@ -528,6 +472,65 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h3>Equipment</h3>
|
||||||
|
</div>
|
||||||
|
<ul class="item-list alternate-list">
|
||||||
|
{{#each containersTree as |equip key|}}
|
||||||
|
<li class="item flexrow list-item list-item-shadow" data-item-id="{{equip._id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{equip.img}}" />
|
||||||
|
<span class="equipement-label">{{equip.name}}</span>
|
||||||
|
<span class="equipement-label">{{upperFirst equip.data.type}}</span>
|
||||||
|
<span class="generic-label">Qty {{equip.data.quantity}}</span>
|
||||||
|
|
||||||
|
{{#if (count equip.data.effects)}}
|
||||||
|
{{#if equip.data.activated}}
|
||||||
|
<span class="stat-label"><a class="equip-deactivate">Deactivate</a></span>
|
||||||
|
{{else}}
|
||||||
|
<span class="stat-label"><a class="equip-activate">Activate</a></span>
|
||||||
|
{{/if}}
|
||||||
|
{{else}}
|
||||||
|
<span class="stat-label"> </span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#if equip.data.iscontainer}}
|
||||||
|
<span class="equipement-label">Enc:{{equip.data.contentsEnc}}</span>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-equip" title="Worn">{{#if equip.data.equipped}}<i
|
||||||
|
class="fas fa-circle"></i>{{else}}<i class="fas fa-genderless"></i>{{/if}}</a>
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<ul class="item-list alternate-list list-item-shadow2 list-item-margin1">
|
||||||
|
{{#each equip.data.contents as |subgear key|}}
|
||||||
|
<li class="item flexrow list-item" data-item-id="{{subgear._id}}">
|
||||||
|
<img class="sheet-competence-img" src="{{subgear.img}}"/>
|
||||||
|
<span class="conseq-label">{{subgear.name}}</span>
|
||||||
|
<span class="equipement-label">{{upperFirst subgear.data.type}}</span>
|
||||||
|
<span class="generic-label">Qty {{subgear.data.quantity}}</span>
|
||||||
|
{{#if (count subgear.data.effects)}}
|
||||||
|
{{#if subgear.data.activated}}
|
||||||
|
<span class="stat-label"><a class="equip-deactivate">Deactivate</a></span>
|
||||||
|
{{else}}
|
||||||
|
<span class="stat-label"><a class="equip-activate">Activate</a></span>
|
||||||
|
{{/if}}
|
||||||
|
{{else}}
|
||||||
|
<span class="stat-label"> </span>
|
||||||
|
{{/if}}
|
||||||
|
<div class="item-controls">
|
||||||
|
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-edit"></i></a>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{!-- Biography Tab --}}
|
{{!-- Biography Tab --}}
|
||||||
|
@ -54,6 +54,14 @@
|
|||||||
<li class="flexrow"><label class="generic-label">Weight</label>
|
<li class="flexrow"><label class="generic-label">Weight</label>
|
||||||
<input type="text" class="input-numeric-short padd-right" name="data.weight" value="{{data.weight}}" data-dtype="Number"/>
|
<input type="text" class="input-numeric-short padd-right" name="data.weight" value="{{data.weight}}" data-dtype="Number"/>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="flexrow"><label class="generic-label">Is a container ?</label>
|
||||||
|
<label class="attribute-value checkbox"><input type="checkbox" name="data.iscontainer" {{checked data.iscontainer}}/></label>
|
||||||
|
</li>
|
||||||
|
{{#if data.iscontainer}}
|
||||||
|
<li class="flexrow"><label class="generic-label">Container capacity</label>
|
||||||
|
<input type="text" class="input-numeric-short padd-right" name="data.containercapacity" value="{{data.containercapacity}}" data-dtype="Number"/>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
<li class="flexrow"><label class="generic-label">Cost</label>
|
<li class="flexrow"><label class="generic-label">Cost</label>
|
||||||
<input type="text" class="input-numeric-short padd-right" name="data.cost" value="{{data.cost}}" data-dtype="Number"/>
|
<input type="text" class="input-numeric-short padd-right" name="data.cost" value="{{data.cost}}" data-dtype="Number"/>
|
||||||
</li>
|
</li>
|
||||||
|
16
templates/partial-actor-stat-block.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<li class="item flexrow list-item color-class-{{lower stat.abbrev}} item-stat-roll" data-attr-key="{{key}}">
|
||||||
|
<span class="stat-icon">
|
||||||
|
<img class="stat-icon" src="systems/fvtt-pegasus-rpg/images/icons/{{stat.abbrev}}.webp">
|
||||||
|
</span>
|
||||||
|
<span class="stat-label stat-margin" name="{{key}}">
|
||||||
|
<h4 class="stat-text-white"><a class="roll-stat" data-stat-key="{{key}}">{{stat.abbrev}}</a></h4>
|
||||||
|
</span>
|
||||||
|
<select class="status-small-label color-class-common" type="text" name="data.statistics.{{key}}.value" value="{{stat.value}}"
|
||||||
|
data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}}>
|
||||||
|
{{#select stat.value}}
|
||||||
|
{{{@root.optionsDiceList}}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
<input type="text" class="input-numeric-short padd-right status-small-label color-class-common" name="data.statistics.{{key}}.mod" value="{{stat.mod}}"
|
||||||
|
data-dtype="Number" {{#unless @root.editScore}}disabled{{/unless}} />
|
||||||
|
</li>
|
37
templates/partial-actor-status.html
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<ul class="status-block">
|
||||||
|
<li class="item flexrow list-item">
|
||||||
|
<span class="status-small-label status-col-name"><strong>Status</strong></span>
|
||||||
|
<span class="status-small-label no-grow">Cur</span>
|
||||||
|
<span class="status-small-label no-grow">Max</span>
|
||||||
|
<span class="status-small-label no-grow">Mod</span>
|
||||||
|
</li>
|
||||||
|
{{#each data.secondary as |stat2 key|}}
|
||||||
|
<li class="item flexrow list-item" data-attr-key="{{key}}">
|
||||||
|
<span class="stat-label flexrow status-col-name" name="{{key}}">
|
||||||
|
<label class="status-small-label"><strong>{{stat2.label}}</strong><br>
|
||||||
|
{{#if (eq key "health")}}
|
||||||
|
(KOV -{{stat2.max}})
|
||||||
|
{{/if}}
|
||||||
|
{{#if (eq key "delirium")}}
|
||||||
|
(MV -{{stat2.max}})
|
||||||
|
{{/if}}
|
||||||
|
</label>
|
||||||
|
</span>
|
||||||
|
<input type="text" class="padd-right status-small-label no-grow" name="data.secondary.{{key}}.value" value="{{stat2.value}}" data-dtype="Number"/>
|
||||||
|
<input type="text" class="padd-right status-small-label no-grow" name="data.secondary.{{key}}.max" value="{{stat2.max}}" data-dtype="Number"/>
|
||||||
|
<input type="text" class="padd-right status-small-label no-grow" name="data.secondary.{{key}}.bonus" value="{{stat2.bonus}}" data-dtype="Number"/>
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
<li class="item flexrow list-item" data-key="nrg">
|
||||||
|
<span class="stat-label flexrow status-col-name" name="nrg">
|
||||||
|
<label class="status-small-label"><strong>{{data.nrg.label}}</strong></label>
|
||||||
|
</span>
|
||||||
|
<input type="text" class="padd-right status-small-label no-grow" name="data.nrg.value" value="{{data.nrg.value}}" data-dtype="Number"/>
|
||||||
|
<input type="text" class="padd-right status-small-label no-grow" name="data.nrg.max" value="{{data.nrg.max}}" data-dtype="Number"/>
|
||||||
|
<input type="text" class="padd-right status-small-label no-grow" name="data.nrg.mod" value="{{data.nrg.mod}}" data-dtype="Number"/>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- <span class="small-label padd-right packed-left">Act</span>
|
||||||
|
<input type="text" class="padd-right" name="data.nrg.activated" value="{{data.nrg.activated}}" data-dtype="Number"/>
|
||||||
|
-->
|
@ -23,8 +23,8 @@
|
|||||||
|
|
||||||
{{#if specList}}
|
{{#if specList}}
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label" >Spec Name : </span>
|
<span class="roll-dialog-label" >Spec : </span>
|
||||||
<select class="competence-base" id="specList" type="text" name="selectedSpec" value="{{selectedSpec}}" data-dtype="String">
|
<select class="roll-dialog-label" id="specList" type="text" name="selectedSpec" value="{{selectedSpec}}" data-dtype="String">
|
||||||
{{#select selectedSpec}}
|
{{#select selectedSpec}}
|
||||||
<option value="0">None</option>
|
<option value="0">None</option>
|
||||||
{{#each specList as |spec idx|}}
|
{{#each specList as |spec idx|}}
|
||||||
@ -35,6 +35,7 @@
|
|||||||
<span class="small-label"> </span>
|
<span class="small-label"> </span>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<div class="flexrow">
|
<div class="flexrow">
|
||||||
<span class="roll-dialog-label" >Spec Dice : </span>
|
<span class="roll-dialog-label" >Spec Dice : </span>
|
||||||
<select class="roll-dialog-label" id="specDicesLevel" type="text" name="specDicesLevel" value="{{specDicesLevel}}" data-dtype="Number"
|
<select class="roll-dialog-label" id="specDicesLevel" type="text" name="specDicesLevel" value="{{specDicesLevel}}" data-dtype="Number"
|
||||||
|