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, {
|
||||
classes: ["fvtt-pegasus-rpg", "sheet", "actor"],
|
||||
template: "systems/fvtt-pegasus-rpg/templates/actor-sheet.html",
|
||||
width: 640,
|
||||
width: 920,
|
||||
height: 720,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "stats" }],
|
||||
dragDrop: [{ dragSelector: ".item-list .item", dropSelector: null }],
|
||||
@ -58,6 +58,10 @@ export class PegasusActorSheet extends ActorSheet {
|
||||
role: duplicate(this.actor.getRole()),
|
||||
effects: duplicate(this.actor.getEffects()),
|
||||
moneys: duplicate(this.actor.getMoneys()),
|
||||
encCapacity: this.actor.getEncumbranceCapacity(),
|
||||
containersTree: this.actor.containersTree,
|
||||
encCurrent: this.actor.encCurrent,
|
||||
encHindrance: this.actor.encHindrance,
|
||||
options: this.options,
|
||||
owner: this.document.isOwner,
|
||||
editScore: this.options.editScore,
|
||||
@ -180,6 +184,13 @@ export class PegasusActorSheet extends ActorSheet {
|
||||
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) => {
|
||||
this.actor.rollUnarmedAttack();
|
||||
});
|
||||
@ -298,7 +309,11 @@ export class PegasusActorSheet extends ActorSheet {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async _onDropItem(event, dragData) {
|
||||
console.log(">>>>>> DROPPED!!!!")
|
||||
let item = await PegasusUtility.searchItem( dragData)
|
||||
if (item == undefined) {
|
||||
item = this.actor.items.get( dragData.data._id )
|
||||
}
|
||||
this.actor.preprocessItem( event, item, true )
|
||||
super._onDropItem(event, dragData)
|
||||
}
|
||||
|
@ -61,6 +61,8 @@ export class PegasusActor extends Actor {
|
||||
|
||||
if (this.type == 'character') {
|
||||
this.computeNRGHealth();
|
||||
this.data.data.encCapacity = this.getEncumbranceCapacity()
|
||||
this.buildContainerTree()
|
||||
}
|
||||
|
||||
super.prepareDerivedData();
|
||||
@ -71,6 +73,12 @@ export class PegasusActor extends Actor {
|
||||
|
||||
super._preUpdate(changed, options, user);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getEncumbranceCapacity() {
|
||||
return this.data.data.statistics.str.value * 25
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getActivePerks() {
|
||||
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") || [])
|
||||
}
|
||||
|
||||
/* ------------------------------------------- */
|
||||
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) {
|
||||
let array = Array.from(this.getEmbeddedCollection("ActiveEffect").values());
|
||||
@ -306,20 +371,50 @@ export class PegasusActor extends Actor {
|
||||
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) {
|
||||
console.log("Pre-process !!!", item)
|
||||
if (item.data.type == 'race') {
|
||||
this.applyRace(item.data)
|
||||
} else if (item.data.type == 'ability') {
|
||||
this.applyAbility(item.data, [], true)
|
||||
if (!onDrop) {
|
||||
await this.createEmbeddedDocuments('Item', [item.data])
|
||||
return
|
||||
}
|
||||
} else {
|
||||
if (!onDrop) {
|
||||
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() {
|
||||
let 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;
|
||||
}
|
||||
@ -879,6 +974,10 @@ export class PegasusActor extends Actor {
|
||||
if (this.data.data.combat.hindrancedice > 0) {
|
||||
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')
|
||||
for (let effect of effects) {
|
||||
effect = duplicate(effect)
|
||||
@ -962,6 +1061,7 @@ export class PegasusActor extends Actor {
|
||||
rollData.statMod = rollData.stat.mod
|
||||
rollData.specList = this.getRelevantSpec(statKey)
|
||||
rollData.selectedSpec = "0"
|
||||
rollData.img = `systems/fvtt-pegasus-rpg/images/icons/${rollData.stat.abbrev}.webp`
|
||||
}
|
||||
|
||||
this.addEffects(rollData)
|
||||
@ -1044,6 +1144,7 @@ export class PegasusActor extends Actor {
|
||||
rollData.specList = [spec]
|
||||
rollData.selectedSpec = spec._id
|
||||
rollData.specName = spec.name
|
||||
rollData.img = spec.img
|
||||
rollData.specDicesLevel = spec.data.level
|
||||
this.startRoll(rollData)
|
||||
} else {
|
||||
@ -1083,6 +1184,7 @@ export class PegasusActor extends Actor {
|
||||
rollData.armor = armor
|
||||
rollData.title = `Armor : ${armor.name}`
|
||||
rollData.isResistance = true;
|
||||
rollData.img = armor.img
|
||||
rollData.otherDicesLevel = armor.data.resistance
|
||||
|
||||
this.startRoll(rollData);
|
||||
@ -1102,6 +1204,8 @@ export class PegasusActor extends Actor {
|
||||
rollData.mode = "power"
|
||||
rollData.power = power
|
||||
rollData.title = `Power : ${power.name}`
|
||||
rollData.img = power.img
|
||||
|
||||
this.startRoll(rollData);
|
||||
} else {
|
||||
ui.notifications.warn("Power not found !", powerId);
|
||||
|
@ -48,7 +48,7 @@ Hooks.once("init", async function () {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
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) {
|
||||
return text.toUpperCase();
|
||||
});
|
||||
Handlebars.registerHelper('lower', function (text) {
|
||||
return text.toLowerCase()
|
||||
});
|
||||
Handlebars.registerHelper('upperFirst', function (text) {
|
||||
if (typeof text !== 'string') return text
|
||||
return text.charAt(0).toUpperCase() + text.slice(1)
|
||||
@ -65,6 +68,18 @@ export class PegasusUtility {
|
||||
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) {
|
||||
if (data.type != "Item") {
|
||||
@ -79,8 +94,11 @@ export class PegasusUtility {
|
||||
if (x >= token.x && x <= (token.x + token.width)
|
||||
&& y >= token.y && y <= (token.y + token.height)) {
|
||||
let item = await this.searchItem(data)
|
||||
token.actor.preprocessItem("none", item, false)
|
||||
console.log("Dropped !!!", item, token)
|
||||
if (game.user.isGM || token.actor.isOwner) {
|
||||
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
|
||||
}
|
||||
}
|
||||
@ -188,7 +206,9 @@ export class PegasusUtility {
|
||||
'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-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);
|
||||
}
|
||||
@ -196,7 +216,7 @@ export class PegasusUtility {
|
||||
/* -------------------------------------------- */
|
||||
static async getEffectFromCompendium(effectName) {
|
||||
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) {
|
||||
let effects = await this.loadCompendium('fvtt-pegasus.effect', item => item.name.toLowerCase() == effectName)
|
||||
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) {
|
||||
|
||||
@ -358,13 +367,23 @@ export class PegasusUtility {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static onSocketMesssage(msg) {
|
||||
//console.log("SOCKET MESSAGE", msg.name, game.user.character.id, msg.data.defenderId);
|
||||
static async onSocketMesssage(msg) {
|
||||
console.log("SOCKET MESSAGE", msg.name)
|
||||
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") {
|
||||
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)
|
||||
});
|
||||
|
||||
if (rollData.defender) {
|
||||
this.storeDefenseState(rollData);
|
||||
}
|
||||
// Init stuf
|
||||
if (rollData.isInit) {
|
||||
let combat = game.combats.get(rollData.combatId)
|
||||
@ -543,11 +559,11 @@ export class PegasusUtility {
|
||||
index = i;
|
||||
}
|
||||
}
|
||||
let bestScore = (bestRoll * 10) + index;
|
||||
rollData.bestScore = bestScore;
|
||||
rollData.finalScore = bestScore + rollData.negativeModifier + rollData.positiveModifier;
|
||||
let bestScore = (bestRoll * 10) + index
|
||||
rollData.bestScore = bestScore
|
||||
rollData.finalScore = bestScore + rollData.negativeModifier + rollData.positiveModifier
|
||||
|
||||
this.saveRollData(rollData);
|
||||
this.saveRollData(rollData)
|
||||
|
||||
this.createChatWithRollMode(rollData.alias, {
|
||||
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.content = "Blinde message of " + game.user.name + "<br>" + chatOptions.content;
|
||||
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) {
|
||||
let item;
|
||||
let item
|
||||
if (dataItem.pack) {
|
||||
item = await fromUuid("Compendium." + dataItem.pack + "." + dataItem.id);
|
||||
item = await fromUuid("Compendium." + dataItem.pack + "." + dataItem.id)
|
||||
} else {
|
||||
item = game.items.get(dataItem.id)
|
||||
}
|
||||
return item;
|
||||
return item
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -217,8 +217,9 @@ table {border: 1px solid #7a7971;}
|
||||
-webkit-box-flex: 0;
|
||||
-ms-flex: 0 0 128px;
|
||||
flex: 0 0 128px;
|
||||
height: 128px;
|
||||
width: 128px;
|
||||
height: auto;
|
||||
max-height:260px;
|
||||
margin-right: 10px;
|
||||
object-fit: cover;
|
||||
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"] {
|
||||
color: rgba(36, 37, 37, 0.75);
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
border: 0 none;
|
||||
background: rgba(245, 245, 241, 0.95);
|
||||
border: 1 none;
|
||||
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{
|
||||
@ -522,6 +540,12 @@ ul, li {
|
||||
padding: 0.125rem;
|
||||
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 {
|
||||
display: block;
|
||||
}
|
||||
@ -531,11 +555,9 @@ ul, li {
|
||||
.conteneur-type {
|
||||
background: rgb(200, 10, 100, 0.25);
|
||||
}
|
||||
|
||||
.item-quantite {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
.list-item-margin1 {
|
||||
margin-left: 1rem;
|
||||
}
|
||||
@ -585,6 +607,7 @@ ul, li {
|
||||
}
|
||||
.roll-dialog-label {
|
||||
margin: 4px 0;
|
||||
min-width: 96px;
|
||||
}
|
||||
|
||||
.short-label {
|
||||
@ -884,6 +907,7 @@ ul, li {
|
||||
background: rgba(220,220,210,0.75);
|
||||
border: 2px solid #545469;
|
||||
}
|
||||
|
||||
.chat-message .chat-icon {
|
||||
border: 0;
|
||||
padding: 2px 6px 2px 2px;
|
||||
@ -892,6 +916,23 @@ ul, li {
|
||||
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 {
|
||||
flex: 0 0 32px;
|
||||
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 */
|
||||
|
||||
@ -1216,3 +1240,113 @@ ul, li {
|
||||
height: 54px;
|
||||
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/simple.css"
|
||||
],
|
||||
"templateVersion": 81,
|
||||
"templateVersion": 86,
|
||||
"title": "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"
|
||||
}
|
||||
|
@ -41,13 +41,15 @@
|
||||
"abbrev": "AGI",
|
||||
"level": 1,
|
||||
"value": 1,
|
||||
"mod": 0
|
||||
"mod": 0,
|
||||
"col": 1
|
||||
},
|
||||
"mnd":{
|
||||
"label": "Mind",
|
||||
"abbrev": "MND",
|
||||
"level": 1,
|
||||
"value": 1,
|
||||
"col": 1,
|
||||
"mod": 0
|
||||
},
|
||||
"soc":{
|
||||
@ -55,6 +57,7 @@
|
||||
"abbrev": "SOC",
|
||||
"level": 1,
|
||||
"value": 1,
|
||||
"col": 1,
|
||||
"mod": 0
|
||||
},
|
||||
"str":{
|
||||
@ -62,6 +65,7 @@
|
||||
"abbrev": "STR",
|
||||
"level": 1,
|
||||
"value": 1,
|
||||
"col": 1,
|
||||
"mod": 0
|
||||
},
|
||||
"phy":{
|
||||
@ -69,6 +73,7 @@
|
||||
"abbrev": "PHY",
|
||||
"level": 1,
|
||||
"value": 1,
|
||||
"col": 1,
|
||||
"mod": 0
|
||||
},
|
||||
"com":{
|
||||
@ -76,6 +81,7 @@
|
||||
"abbrev": "COM",
|
||||
"level": 1,
|
||||
"value": 1,
|
||||
"col": 2,
|
||||
"mod": 0
|
||||
},
|
||||
"def":{
|
||||
@ -83,6 +89,7 @@
|
||||
"abbrev": "DEF",
|
||||
"level": 1,
|
||||
"value": 1,
|
||||
"col": 2,
|
||||
"mod": 0
|
||||
},
|
||||
"stl":{
|
||||
@ -90,6 +97,7 @@
|
||||
"abbrev": "STL",
|
||||
"level": 1,
|
||||
"value": 1,
|
||||
"col": 2,
|
||||
"mod": 0
|
||||
},
|
||||
"per":{
|
||||
@ -97,6 +105,7 @@
|
||||
"abbrev": "PER",
|
||||
"level": 1,
|
||||
"value": 1,
|
||||
"col": 2,
|
||||
"mod": 0
|
||||
},
|
||||
"foc":{
|
||||
@ -104,6 +113,7 @@
|
||||
"abbrev": "FOC",
|
||||
"level": 1,
|
||||
"value": 1,
|
||||
"col": 2,
|
||||
"mod": 0
|
||||
}
|
||||
},
|
||||
@ -148,7 +158,7 @@
|
||||
"max": 0
|
||||
},
|
||||
"stealthhealth": {
|
||||
"label": "Stealth Health",
|
||||
"label": "STL Health",
|
||||
"type": "value",
|
||||
"value": 0,
|
||||
"ismax": true,
|
||||
@ -156,7 +166,7 @@
|
||||
"max": 0
|
||||
},
|
||||
"socialhealth": {
|
||||
"label": "Social Health",
|
||||
"label": "SOC Health",
|
||||
"type": "value",
|
||||
"value": 0,
|
||||
"ismax": true,
|
||||
@ -371,6 +381,9 @@
|
||||
"otherdice": false,
|
||||
"effects": [],
|
||||
"activated": false,
|
||||
"iscontainer": false,
|
||||
"containercapacity": 0,
|
||||
"containerid": "",
|
||||
"description":""
|
||||
},
|
||||
"money" : {
|
||||
|
@ -6,11 +6,66 @@
|
||||
<div class="flexrow">
|
||||
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<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>
|
||||
@ -19,10 +74,9 @@
|
||||
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<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="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="biodata">Biography</a>
|
||||
</nav>
|
||||
@ -30,220 +84,83 @@
|
||||
{{!-- 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 --}}
|
||||
<div class="tab fight" data-group="primary" data-tab="combat">
|
||||
<div class="flexcol">
|
||||
|
||||
<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>
|
||||
|
||||
<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 update-field input-numeric-short" data-field-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 update-field input-numeric-short" data-field-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 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 class="flexrow">
|
||||
<div>
|
||||
<ul class="stat-item">
|
||||
<li class="item flexrow list-item color-class-melee"><a class="combat-button attack-melee flexrow">
|
||||
<span class="combat-icon flexrow">
|
||||
<img class="combat-icon" src="systems/fvtt-pegasus-rpg/images/icons/COM.webp">
|
||||
</span>
|
||||
<span class="generic-label combat-margin stat-text-white">Melee Attack</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="item flexrow list-item color-class-meleedmg"><a class="combat-button damage-melee flexrow">
|
||||
<span class="combat-icon flexrow">
|
||||
<img class="combat-icon" src="systems/fvtt-pegasus-rpg/images/icons/STR.webp">
|
||||
</span>
|
||||
<span class="generic-label combat-margin stat-text-white">Melee/Thrown Damage</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
<div class="stat-item">
|
||||
<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>
|
||||
<span class="generic-label">
|
||||
@ -251,7 +168,7 @@
|
||||
</span>
|
||||
<ul class="stat-list alternate-list">
|
||||
{{#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}}" />
|
||||
<span class="stat-label">{{perk.name}}</span>
|
||||
<span class="stat-label">Lvl:{{perk.data.level}}</span>
|
||||
@ -307,9 +224,66 @@
|
||||
</ul>
|
||||
</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>
|
||||
|
||||
{{!-- 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 --}}
|
||||
<div class="tab fight" data-group="primary" data-tab="powers">
|
||||
|
||||
@ -326,13 +300,12 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
<span class="generic-label">
|
||||
<h3>Powers</h3>
|
||||
</span>
|
||||
<ul class="stat-list alternate-list">
|
||||
{{#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}}" />
|
||||
<span class="stat-label">
|
||||
{{#if power.data.rollneeded}}
|
||||
@ -369,13 +342,12 @@
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
<span class="generic-label">
|
||||
<h3>Abilities</h3>
|
||||
</span>
|
||||
<ul class="stat-list alternate-list">
|
||||
{{#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}}" />
|
||||
<span class="stat-label">{{ability.name}}</span>
|
||||
<div class="item-controls">
|
||||
@ -392,12 +364,19 @@
|
||||
{{!-- Equipement Tab --}}
|
||||
<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>
|
||||
<h4>Money</h4>
|
||||
<h3>Money</h3>
|
||||
</div>
|
||||
<ul class="item-list alternate-list">
|
||||
{{#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}}" />
|
||||
<span class="equipement-label">{{money.name}}</span>
|
||||
<span class="generic-label">
|
||||
@ -412,46 +391,12 @@
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
<div>
|
||||
<h4>Equipment</h4>
|
||||
</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>
|
||||
<h3>Weapons</h3>
|
||||
</div>
|
||||
<ul class="item-list alternate-list">
|
||||
{{#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}}" />
|
||||
<span class="equipement-label">{{weapon.name}}</span>
|
||||
|
||||
@ -475,13 +420,12 @@
|
||||
{{/each}}
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
<div>
|
||||
<h4>Armors & Shields</h4>
|
||||
<h3>Armors & Shields</h3>
|
||||
</div>
|
||||
<ul class="item-list alternate-list">
|
||||
{{#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}}" />
|
||||
<span class="equipement-label">{{armor.name}}</span>
|
||||
|
||||
@ -528,6 +472,65 @@
|
||||
{{/each}}
|
||||
</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>
|
||||
|
||||
{{!-- Biography Tab --}}
|
||||
|
@ -54,6 +54,14 @@
|
||||
<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"/>
|
||||
</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>
|
||||
<input type="text" class="input-numeric-short padd-right" name="data.cost" value="{{data.cost}}" data-dtype="Number"/>
|
||||
</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}}
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label" >Spec Name : </span>
|
||||
<select class="competence-base" id="specList" type="text" name="selectedSpec" value="{{selectedSpec}}" data-dtype="String">
|
||||
<span class="roll-dialog-label" >Spec : </span>
|
||||
<select class="roll-dialog-label" id="specList" type="text" name="selectedSpec" value="{{selectedSpec}}" data-dtype="String">
|
||||
{{#select selectedSpec}}
|
||||
<option value="0">None</option>
|
||||
{{#each specList as |spec idx|}}
|
||||
@ -35,6 +35,7 @@
|
||||
<span class="small-label"> </span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<div class="flexrow">
|
||||
<span class="roll-dialog-label" >Spec Dice : </span>
|
||||
<select class="roll-dialog-label" id="specDicesLevel" type="text" name="specDicesLevel" value="{{specDicesLevel}}" data-dtype="Number"
|
||||
|