Foundry v10 version

This commit is contained in:
sladecraven 2022-07-01 16:30:21 +02:00
parent 996ac1c88d
commit 05f044bc7c
18 changed files with 78 additions and 60 deletions

View File

@ -139,6 +139,8 @@ export class BoLActorSheet extends ActorSheet {
formData.owner = this.document.isOwner
formData.editScore = this.options.editScore
formData.useBougette = BoLUtility.getUseBougette()
formData.charType = this.actor.getCharType()
formData.villainy = this.actor.getVillainy()
formData.isSorcerer = this.actor.isSorcerer()
formData.isAlchemist = this.actor.isAlchemist()

View File

@ -11,14 +11,29 @@ export class BoLActor extends Actor {
prepareData() {
if (this.type === 'character') {
this.chartype = 'player';
this.villainy = false;
this.chartype = 'player'
this.villainy = false
}
if (this.type === 'encounter') {
this.chartype = 'tough';
this.villainy = true;
this.chartype = 'tough'
this.villainy = true
}
super.prepareData();
super.prepareData()
}
/* -------------------------------------------- */
getCharType() {
if (this.type === 'character') {
return 'player'
}
return 'tough'
}
/* -------------------------------------------- */
getVillainy() {
if (this.type === 'character') {
return false
}
return true
}
/* -------------------------------------------- */

View File

@ -92,7 +92,7 @@ export class BoLRoll {
targetId: target?.id,
fightOption: fightOption,
careerBonus: 0,
defenderId: target?.data?.actorId,
defenderId: target?.actor.id,
attribute: attribute,
aptitude: aptitude,
attrValue: attribute.value,

View File

@ -26,6 +26,7 @@ export class BoLItemSheet extends ItemSheet {
data.item = itemData
data.category = itemData.system.category
data.isGM = game.user.isGM;
data.itemProperties = this.item.itemProperties;
// Dynamic default data fix/adapt
if (itemData.type == "item") {

View File

@ -414,8 +414,8 @@ export class BoLUtility {
}
// Build and send the defense message to the relevant people (ie GM + defender)
let defender = game.actors.get(attackDef.defenderId)
let defenderWeapons = defender.weapons
console.log("DEF WEP", attackDef)
console.log("DEF WEP", attackDef, defender)
let defenderWeapons = defender.weapons || []
this.attackStore[attackDef.id] = attackDef // Store !
ChatMessage.create({
alias: defender.name,

View File

@ -12,7 +12,7 @@
<li class="item flexrow" data-item-id="{{item._id}}">
<div class="item-image" ><img src="{{item.img}}" title="{{item.name}}"/></div>
<h4 class="item-name flex2">{{#if ../weapon}}<a class="rollable" data-roll-type="weapon">{{/if}}{{item.name}}{{#if ../weapon}}</a>{{/if}}</h4>
{{#if ../protection}}<div class="item-field"><a class="rollable" data-roll-type="protection">{{item.system.properties.soak.formula}}</a> / {{item.data.properties.soak.value}}</div>{{/if}}
{{#if ../protection}}<div class="item-field"><a class="rollable" data-roll-type="protection">{{item.system.properties.soak.formula}}</a> / {{item.system.properties.soak.value}}</div>{{/if}}
{{#if ../blocking}}<div class="item-field">{{item.system.properties.blocking.malus}}</div>{{/if}}
{{#if ../weapon}}<div class="item-field"><a class="rollable" data-roll-type="damage">
{{item.system.properties.damage}}+{{item.system.properties.damageModifiers}}x{{item.system.properties.damageMultiplier}}

View File

@ -1,29 +1,29 @@
<ol class="items-list">
{{#if (ne data.type "creature")}}
{{#if (ne actor.type "creature")}}
<li class="item flexrow item-header">
<div class="item-name left">{{localize "BOL.ui.biosize"}}</div>
<div class="item-field flex2 left"><input type="text" name="data.details.height" value="{{data.details.height}}"></div>
<div class="item-field flex2 left"><input type="text" name="system.details.height" value="{{details.height}}"></div>
<div class="item-name right">{{localize "BOL.ui.bioweight"}}</div>
<div class="item-field flex2 "><input type="text" name="data.details.weight" value="{{data.details.weight}}"></div>
<div class="item-field flex2 "><input type="text" name="system.details.weight" value="{{details.weight}}"></div>
<div class="item-name right">{{localize "BOL.ui.bioage"}} </div>
<div class="item-field flex2 "><input type="text" name="data.details.age" value="{{data.details.age}}"></div>
<div class="item-field flex2 "><input type="text" name="system.details.age" value="{{details.age}}"></div>
</li>
<li class="item flexrow item-header">
<div class="item-name left">{{localize "BOL.ui.biohair"}} </div>
<div class="item-field flex2 left"><input type="text" name="data.details.hait" value="{{data.details.hait}}"></div>
<div class="item-field flex2 left"><input type="text" name="system.details.hait" value="{{details.hait}}"></div>
<div class="item-name right">{{localize "BOL.ui.bioeyes"}} </div>
<div class="item-field flex2 "><input type="text" name="data.details.eyes" value="{{data.details.eyes}}"></div>
<div class="item-field flex2 "><input type="text" name="system.details.eyes" value="{{details.eyes}}"></div>
</li>
<li class="item flexrow item-header">
<div class="item-name left">{{localize "BOL.ui.biosigns"}} </div>
<div class="item-field flex2 left"><input type="text" name="data.details.signs" value="{{data.details.signs}}"></div>
<div class="item-field flex2 left"><input type="text" name="system.details.signs" value="{{details.signs}}"></div>
</li>
{{else}}
<li class="item flexrow item-header">
<div class="item-name left">Taille </div>
<div class="form-fields center">
<select class="field-value size" name="data.details.size" data-dtype="String">
{{#select data.details.size}}
<select class="field-value size" name="system.details.size" data-dtype="String">
{{#select details.size}}
{{#each config.creatureSize as |value id|}}
<option value="{{id}}">{{localize value}}</option>
{{/each}}

View File

@ -12,7 +12,7 @@
<div class="item-image"><img src="icons/containers/bags/coinpouch-simple-leather-brown.webp" title="{{localize "BOL.ui.money"}}" /></div>
{{localize "BOL.ui.money"}}
</h4>
<select class="field-value" name="data.bougette.state" data-dtype="String">
<select class="field-value" name="system.bougette.state" data-dtype="String">
{{#select system.bougette.state}}
{{#each config.bougetteState as |value id|}}
<option value="{{id}}">{{localize value}}</option>
@ -48,7 +48,7 @@
{{#if item.system.properties.stackable}}
<a class="inc-dec-btns" data-operator="minus" data-target="system.quantity" data-incr="1" data-min="0"
data-max="{{item.system.properties.stacksize}}"><i class="fas fa-minus-square"></i></a>&nbsp;
<span class="item-field">{{item.data.quantity}}</span>&nbsp;
<span class="item-field">{{item.system.quantity}}</span>&nbsp;
<a class="inc-dec-btns" data-operator="plus" data-target="system.quantity" data-incr="1" data-min="0"
data-max="{{item.system.properties.stacksize}}"><i class="fas fa-plus-square"></i></a>
{{/if}}
@ -208,7 +208,7 @@
{{/if}}
</div>
<div class="item-field group-btns flex1 center">
{{#if item.data.properties.stackable}}
{{#if item.system.properties.stackable}}
<a class="system-dec-btns" data-operator="minus" data-target="system.quantity" data-incr="1" data-min="0"
data-max="{{item.system.properties.stacksize}}"><i class="fas fa-minus-square"></i></a>&nbsp;
<span class="item-field">{{item.system.quantity}}</span>&nbsp;
@ -254,7 +254,7 @@
<a class="item-edit">{{item.name}}</a>
</h4>
<div class="item-field flex2 center">
{{#if item.data.properties.equipable}}
{{#if item.system.properties.equipable}}
<span class="item-field" style="font-size: smaller; font-style: italic; color:#4b4a44">{{localize (concat
"BOL.equipmentSlots." item.system.properties.slot)}}</span>
{{/if}}
@ -312,7 +312,7 @@
{{/if}}
</div>
<div class="item-field group-btns flex1 center">
{{#if item.data.properties.stackable}}
{{#if item.system.properties.stackable}}
<a class="inc-dec-btns" data-operator="minus" data-target="system.quantity" data-incr="1" data-min="0"
data-max="{{item.system.properties.stacksize}}"><i class="fas fa-minus-square"></i></a>&nbsp;
<span class="item-field">{{item.system.quantity}}</span>&nbsp;

View File

@ -14,10 +14,10 @@
<a class="rollable" data-roll-type="spell">{{item.name}}</a>
</h4>
<div class="item-field flex1 center">
<span class="item-field">{{item.data.properties.circle}}</span>
<span class="item-field">{{item.system.properties.circle}}</span>
</div>
<div class="item-field flex1 center">
<span class="item-field">{{item.data.properties.difficulty}}</span>
<span class="item-field">{{item.system.properties.difficulty}}</span>
</div>
<div class="item-field flex1 right">
<a class="item-control item-edit" title="{{localize "BOL.ui.edit"}}"><i class="fas fa-square"></i></a>
@ -44,13 +44,13 @@
<a class="rollable" data-roll-type="alchemy">{{item.name}}</a>
</h4>
<div class="item-field flex1 center">
<span class="item-field">{{localize (concat "BOL.alchemyItem." item.data.properties.alchemytype)}}</span>
<span class="item-field">{{localize (concat "BOL.alchemyItem." item.system.properties.alchemytype)}}</span>
</div>
<div class="item-field flex1 center">
<span class="item-field">{{item.data.properties.difficulty}}</span>
<span class="item-field">{{item.system.properties.difficulty}}</span>
</div>
<div class="item-field flex1 center">
<span class="item-field">{{item.data.properties.pccurrent}} / {{item.data.properties.pccost}}</span>
<span class="item-field">{{item.system.properties.pccurrent}} / {{item.system.properties.pccost}}</span>
</div>
<div class="item-field flex1 center">
<a class="inc-dec-btns-alchemy"><i class="fas fa-plus-square"></i></a>

View File

@ -2,7 +2,7 @@
{{#each attributes as |attribute id|}}
<div class="attribute stat flex1 flex-group-center {{key}}">
<label class="stat-label"><a class="rollable" data-roll-type="attribute" data-roll="2d6+@attributes.{{key}}.value" data-adv="0" data-key="{{key}}">{{localize label}}</a></label><br/>
<input class="stat-value rounded" type="text" name="data.attributes.{{key}}.value" value="{{numberFormat value decimals=0 sign=true}}" data-dtype="Number"/><br/>
<input class="stat-value rounded" type="text" name="system.attributes.{{key}}.value" value="{{numberFormat value decimals=0 sign=true}}" data-dtype="Number"/><br/>
<span class="stat-roll rollable" title="2d6" data-roll-type="attribute" data-roll="2d6+@attributes.{{key}}.value" data-adv="0" data-key="{{key}}">
<i class="darkgreen fas fa-dice"></i>
</span>
@ -25,7 +25,7 @@
{{#each aptitudes as |aptitude id|}}
<div class="aptitude stat flex1 flex-group-center">
<label class="stat-label"><a class="rollable" data-roll-type="aptitude" data-roll="2d6+@aptitudes.{{key}}.value" data-adv="0" data-key="{{key}}">{{localize label}}</a></label><br/>
<input class="stat-value rounded-border" type="text" name="data.aptitudes.{{key}}.value" value="{{numberFormat value decimals=0 sign=true}}" data-dtype="Number"/><br/>
<input class="stat-value rounded-border" type="text" name="system.aptitudes.{{key}}.value" value="{{numberFormat value decimals=0 sign=true}}" data-dtype="Number"/><br/>
<span class="stat-roll rollable" title="2d6" data-roll-type="aptitude" data-roll="2d6+@aptitudes.{{key}}.value" data-adv="0" data-key="{{key}}">
<i class="darkgreen fas fa-dice"></i>
</span>
@ -50,29 +50,29 @@
{{#if @root.isAlchemist}}
<div class="resource stat flex1 flex-group-center">
<label class="stat-label">{{localize label}}</label><br/>
<input class="stat-value resources-value" type="text" name="data.resources.{{key}}.value" value="{{numberFormat value decimals=0 sign=false}}" data-dtype="Number"/>
{{#if (eq @root.data.type 'player')}}
<input class="stat-value resources-value" type="text" name="system.resources.{{key}}.value" value="{{numberFormat value decimals=0 sign=false}}" data-dtype="Number"/>
{{#if (eq @root.chartype 'player')}}
{{#if (exists bonus)}}
<span class="flexrow"><label class="stat-max bonus-text">Bonus</label><input class="resource-bonus resources-value" type="text" name="data.resources.{{key}}.bonus" value="{{numberFormat bonus decimals=0 sign=false}}" data-dtype="Number"/></span>
<span class="flexrow"><label class="stat-max bonus-text">Bonus</label><input class="resource-bonus resources-value" type="text" name="system.resources.{{key}}.bonus" value="{{numberFormat bonus decimals=0 sign=false}}" data-dtype="Number"/></span>
{{else}}
<span class="flexrow"><label class="stat-max resources-value">&nbsp;</label><input class="resource-bonus resources-novalue" type="text" value="" disabled></span>
{{/if}}
{{/if}}
<input class="resources-value" type="text" name="data.resources.{{key}}.max" value="{{numberFormat max decimals=0 sign=false}}" data-dtype="Number"/>
<input class="resources-value" type="text" name="system.resources.{{key}}.max" value="{{numberFormat max decimals=0 sign=false}}" data-dtype="Number"/>
</div>
{{/if}}
{{else}}
<div class="resource stat flex1 flex-group-center">
<label class="stat-label">{{localize label}}</label><br/>
<input class="stat-value resources-value" type="text" name="data.resources.{{key}}.value" value="{{numberFormat value decimals=0 sign=false}}" data-dtype="Number"/>
{{#if (eq @root.data.type 'player')}}
<input class="stat-value resources-value" type="text" name="system.resources.{{key}}.value" value="{{numberFormat value decimals=0 sign=false}}" data-dtype="Number"/>
{{#if (eq @root.chartype 'player')}}
{{#if (exists bonus)}}
<span class="flexrow"><label class="stat-max bonus-text">Bonus</label><input class="resource-bonus resources-value" type="text" name="data.resources.{{key}}.bonus" value="{{numberFormat bonus decimals=0 sign=false}}" data-dtype="Number"/></span>
<span class="flexrow"><label class="stat-max bonus-text">Bonus</label><input class="resource-bonus resources-value" type="text" name="system.resources.{{key}}.bonus" value="{{numberFormat bonus decimals=0 sign=false}}" data-dtype="Number"/></span>
{{else}}
<span class="flexrow"><label class="stat-max">&nbsp;</label><input class="resource-bonus resources-novalue" type="text" value="" disabled></span>
{{/if}}
{{/if}}
<input class="resources-value" type="text" name="data.resources.{{key}}.max" value="{{numberFormat max decimals=0 sign=false}}" data-dtype="Number"/>
<input class="resources-value" type="text" name="system.resources.{{key}}.max" value="{{numberFormat max decimals=0 sign=false}}" data-dtype="Number"/>
</div>
{{/if}}
{{/each}}

View File

@ -12,12 +12,12 @@
<li class="item flexrow" data-item-id="{{item._id}}">
<div class="item-image" ><img src="{{item.img}}" title="{{item.name}}"/></div>
<h4 class="item-name flex2">{{#if ../weapon}}<a class="rollable" data-roll-type="weapon">{{/if}}{{item.name}}{{#if ../weapon}}</a>{{/if}}</h4>
{{#if ../protection}}<div class="item-field"><a class="rollable" data-roll-type="protection">{{item.data.properties.soak.formula}}</a> / {{item.data.properties.soak.value}}</div>{{/if}}
{{#if ../blocking}}<div class="item-field">{{item.data.properties.blocking.malus}}</div>{{/if}}
{{#if ../weapon}}<div class="item-field"><a class="rollable" data-roll-type="damage">{{item.data.properties.damage}}+{{item.data.properties.damageModifiers}} x{{item.data.properties.damageMultiplier}}</a></div>{{/if}}
{{#if ../ranged}}<div class="item-field">{{item.data.properties.range}}</div>{{else}}<div class="item-field"></div>{{/if}}
{{#if ../protection}}<div class="item-field"><a class="rollable" data-roll-type="protection">{{item.system.properties.soak.formula}}</a> / {{item.system.properties.soak.value}}</div>{{/if}}
{{#if ../blocking}}<div class="item-field">{{item.system.properties.blocking.malus}}</div>{{/if}}
{{#if ../weapon}}<div class="item-field"><a class="rollable" data-roll-type="damage">{{item.system.properties.damage}}+{{item.system.properties.damageModifiers}} x{{item.system.properties.damageMultiplier}}</a></div>{{/if}}
{{#if ../ranged}}<div class="item-field">{{item.system.properties.range}}</div>{{else}}<div class="item-field"></div>{{/if}}
{{#if ../options}}<div class="item-field">
{{#if item.data.properties.activated}}
{{#if item.system.properties.activated}}
<a class="toggle-fight-option">{{localize "BOL.ui.toactivated"}}</a>
{{else}}
<a class="toggle-fight-option">{{localize "BOL.ui.todeactivated"}}</a>

View File

@ -1,9 +1,9 @@
<div class="attributes flexrow">
{{#each data.attributes as |attribute id|}}
{{#each attributes as |attribute id|}}
{{#if (ne id "appeal")}}
<div class="attribute stat flex1 flex-group-center {{key}}">
<label class="stat-label"><a class="rollable" data-roll-type="attribute" data-roll="2d6+@attributes.{{key}}.value" data-adv="0" data-key="{{key}}">{{localize label}}</a></label><br/>
<input class="stat-value rounded" type="text" name="data.attributes.{{key}}.value" value="{{numberFormat value decimals=0 sign=true}}" data-dtype="Number"/><br/>
<input class="stat-value rounded" type="text" name="system.attributes.{{key}}.value" value="{{numberFormat value decimals=0 sign=true}}" data-dtype="Number"/><br/>
<span class="stat-roll rollable" title="2d6" data-roll-type="attribute" data-roll="2d6+@attributes.{{key}}.value" data-adv="0" data-key="{{key}}">
<i class="darkgreen fas fa-dice"></i>
</span>
@ -15,7 +15,7 @@
<div class="aptitudes flexrow">
<div class="aptitude stat flex1 flex-group-center">
<div class="stat-label"><a class="rollable" data-roll-type="aptitude" data-roll="2d6+@aptitudes.def.value" data-adv="0" data-key="def">{{localize "BOL.aptitudes.def"}}</a></label><br/>
<input class="stat-value rounded-border" type="text" name="data.aptitudes.def.value" value="{{numberFormat aptitudes.3.value decimals=0 sign=true}}" data-dtype="Number"/><br/>
<input class="stat-value rounded-border" type="text" name="system.aptitudes.def.value" value="{{numberFormat aptitudes.3.value decimals=0 sign=true}}" data-dtype="Number"/><br/>
<span class="stat-roll rollable" title="2d6" data-roll-type="aptitude" data-roll="2d6+@aptitudes.def.value" data-adv="0" data-key="def">
<i class="darkgreen fas fa-dice"></i>
</span>
@ -26,7 +26,7 @@
<div class="resources flexrow">
<div class="resource stat flex1 flex-group-center">
<label class="stat-label">{{localize "BOL.resources.hp"}}</label><br/>
<input class="stat-value" type="text" name="data.resources.hp.value" value="{{numberFormat resources.hp.value decimals=0 sign=false}}" data-dtype="Number"/>
<input class="stat-max" type="text" name="data.resources.hp.max" value="{{numberFormat resources.hp.max decimals=0 sign=false}}" data-dtype="Number"/>
<input class="stat-value" type="text" name="system.resources.hp.value" value="{{numberFormat resources.hp.value decimals=0 sign=false}}" data-dtype="Number"/>
<input class="stat-max" type="text" name="system.resources.hp.max" value="{{numberFormat resources.hp.max decimals=0 sign=false}}" data-dtype="Number"/>
</div>
</div>

View File

@ -8,7 +8,7 @@
<button class="damage-handling" data-defense-mode="damage-with-armor" data-attack-id="{{attackId}}">{{localize "BOL.chat.witharmor"}}</button>
<button class="damage-handling" data-defense-mode="damage-without-armor" data-attack-id="{{attackId}}">{{localize "BOL.chat.withoutarmor"}}</button>
{{#if defender.data.data.resources.hero.value}}
{{#if defender.system.resources.hero.value}}
<button class="damage-handling" data-defense-mode="hero-reduce-damage" data-attack-id="{{attackId}}">{{localize "BOL.chat.shakeoff"}}</button>
{{#each defenderWeapons as |weapon idx|}}

View File

@ -5,13 +5,13 @@
</div>
<div class="property flexrow">
<label class="property-label">{{localize "BOL.ui.isSorcerer"}}</label>
<input class="field-value" type="checkbox" name="item.system.properties.sorcerer" {{checked item.system.properties.sorcerer}}>
<input class="field-value" type="checkbox" name="system.properties.sorcerer" {{checked item.system.properties.sorcerer}}>
</div>
<div class="property flexrow">
<label class="property-label">{{localize "BOL.ui.isAlchemist"}}</label>
<input class="field-value" type="checkbox" name="item.system.properties.alchemist" {{checked item.system.properties.alchemist}}>
<input class="field-value" type="checkbox" name="system.properties.alchemist" {{checked item.system.properties.alchemist}}>
</div>
<div class="property flexrow">
<label class="property-label">{{localize "BOL.ui.isPriest"}}</label>
<input class="field-value" type="checkbox" name="item.system.properties.priest" {{checked item.system.properties.priest}}>
<input class="field-value" type="checkbox" name="system.properties.priest" {{checked item.system.properties.priest}}>
</div>

View File

@ -3,7 +3,7 @@
<div class="form-group">
<label class="property-label">{{localize "BOL.ui.fightOptionType"}}</label>
<div class="form-fields">
<select name="item.system.properties.fightoptiontype" data-dtype="String">
<select name="system.properties.fightoptiontype" data-dtype="String">
{{#select item.system.properties.fightoptiontype}}
{{#each config.fightOptionTypes as |item id|}}
<option value="{{id}}">{{localize item}}</option>

View File

@ -43,7 +43,7 @@
</div>
</div>
<hr/>
{{#if data.properties.equipable}}
{{#if item.system.properties.equipable}}
<div class="form-group">
<label>{{localize "BOL.itemProperty.worn"}}</label>
<div class="form-fields">
@ -66,7 +66,7 @@
</div>
{{/if}}
{{#if data.properties.stackable}}
{{#if item.system.properties.stackable}}
<div class="form-group">
<label class="property-label">{{localize "BOL.ui.quantity"}}</label>
<div class="form-fields">

View File

@ -42,7 +42,7 @@
</div>
{{/if}}
{{#if data.properties.helm}}
{{#if item.system.properties.helm}}
<div class="form-group">
<label class="property-label">{{localize "BOL.itemProperty.soakModifiers"}}</label>
<div class="form-fields">
@ -51,7 +51,7 @@
</div>
{{/if}}
{{#if data.properties.shield}}
{{#if item.system.properties.shield}}
<div class="form-group">
<label class="property-label">{{localize "BOL.itemProperty.blockingMalus"}}</label>
<div class="form-fields">

View File

@ -37,12 +37,12 @@
</label>
{{#if data.properties.ranged}}
{{#if item.system.properties.ranged}}
<label class="checkbox">
<input class="field-value" type="checkbox" name="system.properties.reloadable" {{checked item.system.properties.reloadable}}> {{localize "BOL.itemProperty.reloadable"}}
</label>
{{/if}}
{{#if data.properties.melee}}
{{#if item.system.properties.melee}}
<label class="checkbox">
<input class="field-value" type="checkbox" name="system.properties.bashing" {{checked item.system.properties.bashing}}> {{localize "BOL.itemProperty.bashing"}}
</label>
@ -53,7 +53,7 @@
</div>
</div>
<hr/>
{{#if (not data.properties.onlymodifier)}}
{{#if (not item.system.properties.onlymodifier)}}
<div class="form-group">
<label class="property-label">{{localize "BOL.itemProperty.attackAttribute"}}</label>
<div class="form-fields center">