Step 4 - Hindrance on health/delirium
This commit is contained in:
parent
f590e1fe6a
commit
0a5e52ec4e
@ -5,6 +5,7 @@
|
||||
|
||||
import { PegasusUtility } from "./pegasus-utility.js";
|
||||
import { PegasusItemSheet } from "./pegasus-item-sheet.js";
|
||||
import { PegasusRollDialog } from "./pegasus-roll-dialog.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class PegasusActorSheet extends ActorSheet {
|
||||
@ -68,6 +69,17 @@ export class PegasusActorSheet extends ActorSheet {
|
||||
return formData;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async openGenericRoll() {
|
||||
let rollData = PegasusUtility.getBasicRollData()
|
||||
rollData.alias = "Dice Pool Roll",
|
||||
rollData.mode = "generic"
|
||||
rollData.title = `Dice Pool Roll`;
|
||||
|
||||
let rollDialog = await PegasusRollDialog.create( this.actor, rollData);
|
||||
rollDialog.render( true );
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/** @override */
|
||||
activateListeners(html) {
|
||||
@ -75,6 +87,10 @@ export class PegasusActorSheet extends ActorSheet {
|
||||
|
||||
// Everything below here is only needed if the sheet is editable
|
||||
if (!this.options.editable) return;
|
||||
|
||||
html.bind("keydown", function(e) { // Ignore Enter in actores sheet
|
||||
if (e.keyCode === 13) return false;
|
||||
});
|
||||
|
||||
// Update Inventory Item
|
||||
html.find('.item-edit').click(ev => {
|
||||
@ -120,6 +136,9 @@ export class PegasusActorSheet extends ActorSheet {
|
||||
html.find('.unarmed-attack').click((event) => {
|
||||
this.actor.rollUnarmedAttack();
|
||||
});
|
||||
html.find('.generic-pool-roll').click((event) => {
|
||||
this.openGenericRoll()
|
||||
} );
|
||||
html.find('.attack-melee').click((event) => {
|
||||
this.actor.rollPool( 'com');
|
||||
});
|
||||
@ -227,6 +246,7 @@ export class PegasusActorSheet extends ActorSheet {
|
||||
async _onDropItem(event, dragData) {
|
||||
let item = await PegasusUtility.searchItem( dragData)
|
||||
this.actor.preprocessItem( event, item, true )
|
||||
super._onDropItem(event, dragData)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -66,10 +66,6 @@ export class PegasusActor extends Actor {
|
||||
for (let key in this.data.data.statistics) {
|
||||
let attr = this.data.data.statistics[key];
|
||||
}
|
||||
/*if ( h != this.data.data.secondary.health.max) {
|
||||
this.data.data.secondary.health.max = h;
|
||||
updates.push( {'data.secondary.health.max': h} );
|
||||
}*/
|
||||
if (updates.length > 0) {
|
||||
this.update(updates);
|
||||
}
|
||||
@ -262,11 +258,11 @@ export class PegasusActor extends Actor {
|
||||
this.applyRace(item.data)
|
||||
} else if ( item.data.type == 'ability') {
|
||||
this.applyAbility(item.data, [], true)
|
||||
await this.createEmbeddedDocuments('Item', [item.data] )
|
||||
if ( !onDrop) {
|
||||
await this.createEmbeddedDocuments('Item', [item.data] )
|
||||
}
|
||||
} else {
|
||||
if ( onDrop) {
|
||||
await super._onDropItem(event, dragData)
|
||||
} else {
|
||||
if ( !onDrop) {
|
||||
await this.createEmbeddedDocuments('Item', [item.data] )
|
||||
}
|
||||
}
|
||||
@ -428,6 +424,16 @@ export class PegasusActor extends Actor {
|
||||
//console.log("UPD", updates, this.data.data.biodata)
|
||||
await this.update(updates)
|
||||
}
|
||||
|
||||
// Update current hindrance level
|
||||
let hindrance = this.data.data.combat.hindrancedice
|
||||
if ( this.data.data.secondary.health.value < 0) {
|
||||
hindrance += Math.abs(this.data.data.secondary.health.value)
|
||||
}
|
||||
if ( this.data.data.secondary.delirium.value < 0) {
|
||||
hindrance += Math.abs(this.data.data.secondary.delirium.value)
|
||||
}
|
||||
this.data.data.combat.hindrancedice = hindrance
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -470,17 +476,63 @@ export class PegasusActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
applyAbility(ability, updates = [], directUpdate = false) {
|
||||
async applyAbility(ability, updates = [], directUpdate = false) {
|
||||
// manage stat bonus
|
||||
if (ability.data.affectedstat != "notapplicable") {
|
||||
let stat = duplicate(this.data.data.statistics[ability.data.affectedstat])
|
||||
stat.value += parseInt(ability.data.statlevelincrease)
|
||||
stat.mod += parseInt(ability.data.statmodifier)
|
||||
stat.mod += Number(ability.data.statmodifier)
|
||||
updates[`data.statistics.${ability.data.affectedstat}`] = stat
|
||||
if(directUpdate) {
|
||||
this.update(updates)
|
||||
}
|
||||
// manage status bonus
|
||||
if (ability.data.statusaffected != "notapplicable") {
|
||||
if ( ability.data.statusaffected == 'nrg' ) {
|
||||
let nrg = duplicate( this.data.data.nrg)
|
||||
nrg.mod += Number(ability.data.statusmodifier)
|
||||
updates[`data.nrg`] = nrg
|
||||
}
|
||||
if ( ability.data.statusaffected == 'health' ) {
|
||||
let health = duplicate( this.data.data.secondary.health)
|
||||
health.bonus += Number(ability.data.statusmodifier)
|
||||
updates[`data.secondary.health`] = health
|
||||
}
|
||||
if ( ability.data.statusaffected == 'delirium' ) {
|
||||
let delirium = duplicate( this.data.data.secondary.delirium)
|
||||
delirium.bonus += Number(ability.data.statusmodifier)
|
||||
updates[`data.secondary.delirium`] = delirium
|
||||
}
|
||||
}
|
||||
if ( directUpdate ) {
|
||||
await this.update(updates)
|
||||
}
|
||||
let newItems = []
|
||||
if (ability.data.effectsgained) {
|
||||
for (let effect of ability.data.effectsgained) {
|
||||
newItems.push(effect);
|
||||
}
|
||||
}
|
||||
if (ability.data.powersgained) {
|
||||
for (let power of ability.data.powersgained) {
|
||||
newItems.push(power);
|
||||
}
|
||||
}
|
||||
if (ability.data.specialisations) {
|
||||
for (let spec of ability.data.specialisations) {
|
||||
newItems.push(spec);
|
||||
}
|
||||
}
|
||||
if (ability.data.attackgained) {
|
||||
for (let weapon of ability.data.attackgained) {
|
||||
newItems.push(weapon);
|
||||
}
|
||||
}
|
||||
if (ability.data.armorgained) {
|
||||
for (let armor of ability.data.armorgained) {
|
||||
newItems.push(armor);
|
||||
}
|
||||
}
|
||||
await this.createEmbeddedDocuments('Item', newItems)
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async applyRace(race) {
|
||||
let updates = { 'data.biodata.racename': race.name }
|
||||
@ -492,26 +544,11 @@ export class PegasusActor extends Actor {
|
||||
newItems.push(ability)
|
||||
this.applyAbility(ability, updates)
|
||||
}
|
||||
if (race.data.powersgained) {
|
||||
for (let power of race.data.powersgained) {
|
||||
if (race.data.perksgained) {
|
||||
for (let power of race.data.perks) {
|
||||
newItems.push(power);
|
||||
}
|
||||
}
|
||||
if (race.data.specialisations) {
|
||||
for (let spec of race.data.specialisations) {
|
||||
newItems.push(spec);
|
||||
}
|
||||
}
|
||||
if (race.data.attackgained) {
|
||||
for (let weapon of race.data.attackgained) {
|
||||
newItems.push(weapon);
|
||||
}
|
||||
}
|
||||
if (race.data.armorgained) {
|
||||
for (let armor of race.data.armorgained) {
|
||||
newItems.push(armor);
|
||||
}
|
||||
}
|
||||
|
||||
await this.update(updates)
|
||||
await this.createEmbeddedDocuments('Item', newItems)
|
||||
@ -551,6 +588,9 @@ export class PegasusActor extends Actor {
|
||||
if (this.data.data.combat.stunlevel > 0) {
|
||||
effectsList.push( { label: "Stun Hindrance", type: "hindrance", applied: false, value: this.data.data.combat.stunlevel } )
|
||||
}
|
||||
if (this.data.data.combat.hindrancedice > 0) {
|
||||
effectsList.push( { label: "Health/Delirium Hindrance", type: "hindrance", applied: false, value: this.data.data.combat.hindrancedice } )
|
||||
}
|
||||
let effects = this.data.items.filter( item => item.type == 'effect' )
|
||||
for( let effect of effects) {
|
||||
effect = duplicate(effect)
|
||||
@ -576,6 +616,7 @@ export class PegasusActor extends Actor {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
addArmorsShields( rollData, statKey = "none", useShield = false) {
|
||||
if (statKey == 'phy') {
|
||||
|
@ -68,11 +68,14 @@ export class PegasusCommands {
|
||||
return this.process(command, params, content, msg);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
process(command, params, content, msg) {
|
||||
return this._processCommand(this.commandsTable, command, params, content, msg);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_processCommand(commandsTable, name, params, content = '', msg = {}, path = "") {
|
||||
console.log("===> Processing command")
|
||||
let command = commandsTable[name];
|
||||
path = path + name + " ";
|
||||
if (command && command.subTable) {
|
||||
|
@ -288,6 +288,16 @@ export class PegasusItemSheet extends ItemSheet {
|
||||
await this.object.update( { 'data.powersgained': powArray} );
|
||||
}
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async addAbilityEffect( event, item, dataItem) {
|
||||
let newItem = duplicate(item.data);
|
||||
newItem._id = randomID( dataItem.id.length );
|
||||
if ( event.toElement.className == 'drop-ability-effect') {
|
||||
let powArray = duplicate(this.object.data.data.effectsgained);
|
||||
powArray.push( newItem );
|
||||
await this.object.update( { 'data.effectsgained': powArray} );
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async addAbilitySpec( event, item, dataItem) {
|
||||
@ -399,6 +409,9 @@ export class PegasusItemSheet extends ItemSheet {
|
||||
if (data) {
|
||||
let dataItem = JSON.parse( data );
|
||||
let item = await PegasusUtility.searchItem( dataItem);
|
||||
if ( item.data.type == 'effect') {
|
||||
return this.addAbilityEffect( event, item, dataItem);
|
||||
}
|
||||
if ( item.data.type == 'power') {
|
||||
return this.addAbilityPower( event, item, dataItem);
|
||||
}
|
||||
|
@ -7,5 +7,6 @@
|
||||
{"_id":"d92lH69S6ugOjEQy","name":"Fur","type":"armor","img":"systems/fvtt-pegasus-rpg/images/icons/icon_armour.webp","data":{"statistic":"phy","resistance":1,"weight":2,"cost":20,"idr":"2","equipped":false,"locationprotected":"","description":"<p><span style=\"color: #191813; font-size: 12.8px; letter-spacing: 1px; text-align: justify;\">See Pegasus Engine CORE RPG</span></p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{}}
|
||||
{"_id":"h9swQ88G0dFG4wYu","name":"Tactical Suit","type":"armor","img":"systems/fvtt-pegasus-rpg/images/icons/icon_armour.webp","data":{"statistic":"phy","resistance":9,"weight":15,"cost":3000,"idr":"5","equipped":false,"locationprotected":"","description":"<p><span style=\"color: #191813; font-size: 12.8px; letter-spacing: 1px; text-align: justify;\">See Pegasus Engine CORE RPG</span></p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{}}
|
||||
{"_id":"m8nK6govnj9WMGSs","name":"Vac Suit","type":"armor","img":"systems/fvtt-pegasus-rpg/images/icons/icon_armour.webp","data":{"statistic":"phy","resistance":4,"weight":25,"cost":10000,"idr":"4","equipped":false,"locationprotected":"","description":"<p><span style=\"color: #191813; font-size: 12.8px; letter-spacing: 1px; text-align: justify;\">See Pegasus Engine CORE RPG</span></p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{}}
|
||||
{"_id":"nEu11KzIsSfxzGia","name":"Metal Body","type":"armor","img":"systems/fvtt-pegasus-rpg/images/icons/icon_armour.webp","data":{"statistic":"phy","resistance":2,"weight":0,"cost":0,"idr":"0","equipped":false,"locationprotected":"All","description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{"core":{"sourceId":"Item.nEu11KzIsSfxzGia"}}}
|
||||
{"_id":"wrJGYuvfKlrL6fv7","name":"Bronze Armour","type":"armor","img":"systems/fvtt-pegasus-rpg/images/icons/icon_armour.webp","data":{"statistic":"phy","resistance":4,"weight":20,"cost":1000,"idr":"5","equipped":false,"locationprotected":"","description":"<p><span style=\"color: #191813; font-size: 12.8px; letter-spacing: 1px; text-align: justify;\">See Pegasus Engine CORE RPG</span></p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{}}
|
||||
{"_id":"y0GPi66JRLx4qlUr","name":"Flak Vest","type":"armor","img":"systems/fvtt-pegasus-rpg/images/icons/icon_armour.webp","data":{"statistic":"phy","resistance":4,"weight":20,"cost":500,"idr":"4","equipped":false,"locationprotected":"","description":"<p><span style=\"color: #191813; font-size: 12.8px; letter-spacing: 1px; text-align: justify;\">See Pegasus Engine CORE RPG</span></p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{}}
|
||||
|
@ -1,5 +1,5 @@
|
||||
{"_id":"0DEuUiseNrqMtkpH","name":"Cybernetic Senses","type":"ability","img":"systems/fvtt-pegasus-rpg/images/icons/icon_raceability.webp","data":{"affectedstat":"per","statmodifier":1,"statlevelincrease":0,"bonusdice":0,"otherdice":0,"statusaffected":"notapplicable","statusmodifier":0,"powersgained":[],"specialisations":[],"aoe":"","affectedcircumstances":"","affectedspecialisations":"","nrgcost":1,"opponenthindrance":0,"attackgained":[],"armorgained":[],"description":"<p><span style=\"color: #191813; font-size: 12.8px; letter-spacing: 1px; text-align: justify;\">See Pegasus Engine CORE RPG</span></p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{}}
|
||||
{"_id":"0bW374Onk2LEUKNO","name":"Metal Body","type":"ability","img":"systems/fvtt-pegasus-rpg/images/icons/icon_raceability.webp","data":{"affectedstat":"notapplicable","statmodifier":0,"statlevelincrease":0,"bonusdice":0,"otherdice":2,"statusaffected":"notapplicable","statusmodifier":0,"powersgained":[],"specialisations":[],"aoe":"","description":"<p><span style=\"color: #191813; font-size: 12.8px; letter-spacing: 1px; text-align: justify;\">See Pegasus Engine CORE RPG</span></p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{}}
|
||||
{"_id":"0bW374Onk2LEUKNO","name":"Metal Body","type":"ability","img":"systems/fvtt-pegasus-rpg/images/icons/icon_raceability.webp","data":{"affectedstat":"notapplicable","statmodifier":0,"statlevelincrease":0,"bonusdice":0,"otherdice":2,"statusaffected":"notapplicable","statusmodifier":0,"powersgained":[],"specialisations":[],"aoe":"","affectedcircumstances":"","affectedspecialisations":"","nrgcost":0,"opponenthindrance":0,"attackgained":[],"armorgained":[{"_id":"y3aravy7qqveefeg","name":"Metal Body","type":"armor","img":"systems/fvtt-pegasus-rpg/images/icons/icon_armour.webp","data":{"statistic":"phy","resistance":2,"weight":0,"cost":0,"idr":"0","equipped":false,"locationprotected":"All","description":""},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{"core":{"sourceId":"Item.nEu11KzIsSfxzGia"}}}],"description":"<p><span style=\"color: #191813; font-size: 12.8px; letter-spacing: 1px; text-align: justify;\">See Pegasus Engine CORE RPG</span></p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{}}
|
||||
{"_id":"1y6qo5dvemTXe6JF","name":"Perception [PER] +2 Modifier","type":"ability","img":"systems/fvtt-pegasus-rpg/images/icons/icon_raceability.webp","data":{"affectedstat":"per","statmodifier":2,"statlevelincrease":0,"bonusdice":0,"otherdice":0,"statusaffected":"notapplicable","statusmodifier":0,"powersgained":[],"specialisations":[],"aoe":"","description":"<p>Change the Stat Modifier to reflect the Statistic Modifier (+/- 1 etc).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{}}
|
||||
{"_id":"2XbpJr3oIIdXBQDX","name":"Red Eyes","type":"ability","img":"systems/fvtt-pegasus-rpg/images/icons/icon_raceability.webp","data":{"affectedstat":"notapplicable","statmodifier":0,"statlevelincrease":0,"bonusdice":0,"otherdice":0,"statusaffected":"notapplicable","statusmodifier":0,"powersgained":[],"specialisations":[],"aoe":"","description":"<p><span style=\"color: #191813; font-size: 12.8px; letter-spacing: 1px; text-align: justify;\">See Pegasus Engine CORE RPG</span></p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{}}
|
||||
{"_id":"3cq8bAvKZVewpPi0","name":"Strength [STR] +3 Modifier","type":"ability","img":"systems/fvtt-pegasus-rpg/images/icons/icon_raceability.webp","data":{"affectedstat":"str","statmodifier":3,"statlevelincrease":0,"bonusdice":0,"otherdice":0,"statusaffected":"notapplicable","statusmodifier":0,"powersgained":[],"specialisations":[],"aoe":"","description":"<p>Change the Stat Modifier to reflect the Statistic Modifier (+/- 1 etc).</p>"},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"iNL4aGohJ8v6YrUk":3},"flags":{}}
|
||||
|
@ -1163,6 +1163,7 @@ ul, li {
|
||||
.ul-level1 {
|
||||
padding-left: 2rem;
|
||||
}
|
||||
.drop-ability-effect,
|
||||
.drop-effect-specaffected,
|
||||
.drop-effect-spec,
|
||||
.drop-ability-weapon,
|
||||
|
@ -180,9 +180,9 @@
|
||||
"styles": [
|
||||
"styles/simple.css"
|
||||
],
|
||||
"templateVersion": 64,
|
||||
"templateVersion": 66,
|
||||
"title": "Pegasus RPG",
|
||||
"url": "https://www.uberwald.me/data/files/fvtt-pegasus-rpg",
|
||||
"version": "0.3.0",
|
||||
"version": "0.4.0",
|
||||
"background" : "./images/ui/pegasus_welcome_page.webp"
|
||||
}
|
||||
|
@ -229,15 +229,14 @@
|
||||
"description": ""
|
||||
},
|
||||
"ability": {
|
||||
"affectedstat": "",
|
||||
"statmodifier": 0,
|
||||
"statlevelincrease": 0,
|
||||
"bonusdice": 0,
|
||||
"otherdice": 0,
|
||||
"affectedstat": "str",
|
||||
"statmodifier": 1,
|
||||
"statlevelincrease": 0,
|
||||
"statusaffected": "",
|
||||
"statusmodifier": 0,
|
||||
"powersgained": [],
|
||||
"specialisations": [],
|
||||
"effectsgained": [],
|
||||
"aoe": "",
|
||||
"affectedcircumstances": "",
|
||||
"affectedspecialisations": "",
|
||||
|
@ -5,7 +5,9 @@
|
||||
<div class="header-fields">
|
||||
<div class="flexrow">
|
||||
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
<div class="flexcol">
|
||||
<h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@ -14,7 +16,7 @@
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="statistics">Statistics</a>
|
||||
<a class="item" data-tab="specs">Specialisations</a>
|
||||
<a class="item" data-tab="powers">Powers</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>
|
||||
@ -49,6 +51,9 @@
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
<div class="flexrow">
|
||||
<span class="generic-label packed-left"><a class="generic-pool-roll"><button class="chat-card-button">Pool Roll</button></a></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="">
|
||||
@ -126,24 +131,6 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<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}}">
|
||||
<img class="sheet-competence-img" src="{{ability.img}}" />
|
||||
<span class="stat-label">{{ability.name}}</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>
|
||||
@ -173,21 +160,23 @@
|
||||
<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"/>
|
||||
</li>
|
||||
{{#each data.secondary as |stat2 key|}}
|
||||
<li class="item flexrow list-item" data-attr-key="{{key}}">
|
||||
{{#each data.secondary as |stat2 key|}}
|
||||
{{#if stat2.iscombat}}
|
||||
<li class="item flexrow list-item" data-attr-key="{{key}}">
|
||||
<span class="stat-label flexrow" name="{{key}}">
|
||||
<h4>{{stat2.label}}</h4>
|
||||
<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"/>
|
||||
</li>
|
||||
{{/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="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"/>
|
||||
<span class="stat-label flexrow" name="momentum"><h4>Current Hindrance level:</h4></span>
|
||||
<input type="text" class="padd-right update-field input-numeric-short" data-field-name="data.combat.hindrancedice" value="{{data.combat.hindrancedice}}" data-dtype="Number"/>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@ -290,6 +279,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
<span class="generic-label">
|
||||
<h3>Powers</h3>
|
||||
</span>
|
||||
@ -316,6 +306,23 @@
|
||||
{{/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}}">
|
||||
<img class="sheet-competence-img" src="{{ability.img}}" />
|
||||
<span class="stat-label">{{ability.name}}</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>
|
||||
|
||||
@ -460,16 +467,18 @@
|
||||
</li>
|
||||
<li class="flexrow item list_item" data-item-id="{{race._id}}">
|
||||
<label class="generic-label">Race</label>
|
||||
<input type="text" class="" name="data.biodata.racename" value="{{data.biodata.racename}}" data-dtype="String" />
|
||||
<input type="text" class="" name="data.biodata.racename" value="{{race.name}}" disabled data-dtype="String" />
|
||||
<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>
|
||||
<li class="flexrow item list_item" data-item-id="{{role._id}}">
|
||||
<label class="generic-label">Role</label>
|
||||
<input type="text" class="" name="data.biodata.rolename" value="{{data.biodata.rolename}}" data-dtype="String" />
|
||||
<input type="text" class="" name="data.biodata.rolename" value="{{role.name}}" disabled data-dtype="String" />
|
||||
<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>
|
||||
</ul>
|
||||
|
@ -13,39 +13,14 @@
|
||||
<li class="flexrow"><label class="generic-label">Affected stat</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.affectedstat" value="{{data.affectedstat}}" data-dtype="String">
|
||||
{{#select data.affectedstat}}
|
||||
{{> systems/fvtt-pegasus-rpg/templates/partial-options-statistics.html notapplicable=true mr=true}}
|
||||
{{> systems/fvtt-pegasus-rpg/templates/partial-options-statistics.html notapplicable=true mr=false}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Stat modifier</label>
|
||||
<input type="text" class="" name="data.statmodifier" value="{{data.statmodifier}}" data-dtype="Number"/>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Stat level increase</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.statlevelincrease" value="{{data.statlevelincrease}}" data-dtype="Number">
|
||||
{{#select data.statlevelincrease}}
|
||||
<option value="0">0 DT</option>
|
||||
<option value="+1">+1 DT</option>
|
||||
<option value="+2">+2 DT</option>
|
||||
<option value="+3">+3 DT</option>
|
||||
<option value="+4">+4 DT</option>
|
||||
<option value="+5">+5 DT</option>
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Bonus dice</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.bonusdice" value="{{data.bonusdice}}" data-dtype="Number">
|
||||
{{#select data.bonusdice}}
|
||||
{{{optionsDiceList}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</li>
|
||||
<li class="flexrow"><label class="generic-label">Other dice</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.otherdice" value="{{data.otherdice}}" data-dtype="Number">
|
||||
{{#select data.otherdice}}
|
||||
{{{optionsDiceList}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
<input type="text" class="padd-right" name="data.statmodifier" value="{{data.statmodifier}}" data-dtype="Number"/>
|
||||
</li>
|
||||
|
||||
<li class="flexrow"><label class="generic-label">Affected status</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.statusaffected" value="{{data.statusaffected}}" data-dtype="String">
|
||||
{{#select data.statusaffected}}
|
||||
@ -56,6 +31,24 @@
|
||||
<li class="flexrow"><label class="generic-label">Status modifier</label>
|
||||
<input type="text" class="padd-right" name="data.statusmodifier" value="{{data.statusmodifier}}" data-dtype="Number"/>
|
||||
</li>
|
||||
|
||||
<li class="flexrow"><label class="generic-label">Effects Gained</label>
|
||||
</li>
|
||||
<li>
|
||||
<ul class="ul-level1">
|
||||
<li class="flexrow"><div class="drop-ability-effect"><label>Drop Effects here !</label></div>
|
||||
</li>
|
||||
{{#each data.effectsgained as |effect idx|}}
|
||||
<li class="flexrow">
|
||||
<label name="data.effectsgained[{{idx}}].name"><a class="view-subitem" data-type="effectsgained" data-index="{{idx}}">{{effect.name}}</a></label>
|
||||
<div class="item-controls padd-left">
|
||||
<a class="item-control delete-subitem padd-left" data-type="effectsgained" data-index="{{idx}}" title="Delete Effect"><i class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="flexrow"><label class="generic-label">Power Gained</label>
|
||||
</li>
|
||||
<li>
|
||||
|
@ -12,6 +12,12 @@
|
||||
<section class="sheet-body">
|
||||
|
||||
<div class="tab" data-group="primary">
|
||||
|
||||
<label class="generic-label">Description</label>
|
||||
<div class="small-editor item-text-long-line">
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
<li class="flexrow"><label class="generic-label">Type</label>
|
||||
<select class="competence-base flexrow" type="text" name="data.type" value="{{data.type}}" data-dtype="String">
|
||||
@ -61,7 +67,7 @@
|
||||
|
||||
{{#if (eq data.genre "positive")}}
|
||||
|
||||
|
||||
<li class="flexrow"><label class="generic-label">Choose one :</label></li>
|
||||
<li class="flexrow"><label class="generic-label">Stat Dice ?</label>
|
||||
<label class="attribute-value checkbox"><input type="checkbox" name="data.statdice" {{checked data.statdice}}/></label>
|
||||
</li>
|
||||
@ -126,11 +132,6 @@
|
||||
{{/if}}
|
||||
|
||||
</ul>
|
||||
|
||||
<label class="generic-label">Description</label>
|
||||
<div class="small-editor item-text-long-line">
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
Loading…
Reference in New Issue
Block a user