Support des jets d'attributs et d'aptitudes

Ajout des macros
Amélioration des cartons dans le chat avec gestion des succès/échecs/échecs critiques.
Support des carrières dans les dialogues de tests d'attibuts et d'aptitudes.
This commit is contained in:
ZigmundKreud
2021-12-22 05:12:40 +01:00
parent 4c349d89a8
commit d5a5990faa
41 changed files with 750 additions and 578 deletions

View File

@ -2,12 +2,17 @@
<div class="wrap flexrow">
{{!-- Sidebar --}}
<div class="sidebar flex0">
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="100" width="100"/>
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="100" width="100" style="border:1px outset lightgray; box-shadow: 5px 5px 5px gray"/>
</div>
<div class="main flex1">
{{> "systems/bol/templates/actor/parts/actor-header.hbs"}}
{{!-- Sheet Tab Navigation --}}
<nav class="sheet-tabs tabs" data-group="primary">
<!-- <a class="item" data-tab="stats" title="{{localize "BOL.ui.tab.stats"}}"><i class="fas fa-id-card"></i></a>-->
<!-- <a class="item" data-tab="combat" title="{{localize "BOL.ui.tab.combat"}}"><i class="fas fa-fist-raised"></i></a>-->
<!-- <a class="item" data-tab="features" title="{{localize "BOL.ui.tab.features"}}"><i class="fas fa-wrench"></i></a>-->
<!-- <a class="item" data-tab="equipment" title="{{localize "BOL.ui.tab.equipment"}}"><i class="fas fa-box-open"></i></a>-->
<!-- <a class="item" data-tab="description" title="{{localize "BOL.ui.tab.description"}}"><i class="fas fa-portrait"></i></a>-->
<a class="item" data-tab="stats">{{localize "BOL.ui.tab.stats"}}</a>
<a class="item" data-tab="combat">{{localize "BOL.ui.tab.combat"}}</a>
<a class="item" data-tab="features">{{localize "BOL.ui.tab.features"}}</a>

View File

@ -4,14 +4,14 @@
<li class="item flexrow item-header">
<div class="item-name flex2">{{localize features.label}}</div>
{{#if ranked}}
<div class="item-field">{{localize "Level"}}</div>
<div class="item-field">{{localize "BOL.ui.rank"}}</div>
{{/if}}
</li>
{{#each features.items as |item id|}}
<li class="item flexrow" data-item-id="{{item._id}}">
<div class="item-image {{#if (equals key "careers")}}roll-career{{/if}}"><img src="{{item.img}}" title="{{item.name}}"/></div>
<h4 class="item-name flex2"><a class="item-edit">{{item.name}}</a></h4>
{{#if item.data.rank}}
{{#if (equals key "careers")}}
<span class="item-field">{{item.data.rank}}</span>
{{/if}}
<div class="item-controls-1">

View File

@ -1,11 +1,11 @@
<div class="attributes flexrow">
{{#each data.attributes as |attribute id|}}
<div class="attribute stat flex1 flex-group-center {{key}}">
<label class="stat-label"><a class="roll-attribute" data-attr-key="{{key}}">{{localize label}}</a></label><br/>
<label class="stat-label"><a class="rollable" data-roll-type="attribute" 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/>
<span class="stat-roll malus rollable" title="2d6M" data-roll="3d6kh2+@attributes.{{key}}.value" data-label="{{key}}"><i class="fas fa-dice"></i></span>
<span class="stat-roll rollable" title="2d6" data-roll="2d6+@attributes.{{key}}.value" data-label="{{key}}"><i class="fas fa-dice"></i></span>
<span class="stat-roll bonus rollable" title="2d6B" data-roll="3d6kl2+@attributes.{{key}}.value" data-label="{{key}}"><i class="fas fa-dice"></i></span>
<span class="stat-roll malus rollable" title="2d6M" data-roll-type="attribute" data-roll="3d6kh2+@attributes.{{key}}.value" data-adv="-1" data-key="{{key}}"><i class="fas fa-dice"></i></span>
<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="fas fa-dice"></i></span>
<span class="stat-roll bonus rollable" title="2d6B" data-roll-type="attribute" data-roll="3d6kl2+@attributes.{{key}}.value" data-adv="1" data-key="{{key}}"><i class="fas fa-dice"></i></span>
</div>
{{/each}}
</div>
@ -13,11 +13,11 @@
<div class="aptitudes flexrow">
{{#each data.aptitudes as |aptitude id|}}
<div class="aptitude stat flex1 flex-group-center">
<label class="stat-label"><a class="roll-attribute" data-attr-key="{{key}}">{{localize label}}</a></label><br/>
<label class="stat-label"><a class="rollable" data-roll-type="aptitude" 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/>
<span class="stat-roll malus rollable" title="2d6M" data-roll="3d6kh2+@aptitudes.{{key}}.value" data-label="{{key}}"><i class="fas fa-dice"></i></span>
<span class="stat-roll rollable" title="2d6" data-roll="2d6+@aptitudes.{{key}}.value" data-label="{{key}}"><i class="fas fa-dice"></i></span>
<span class="stat-roll bonus rollable" title="2d6B" data-roll="3d6kl2+@aptitudes.{{key}}.value" data-label="{{key}}"><i class="fas fa-dice"></i></span>
<span class="stat-roll malus rollable" title="2d6M" data-roll-type="aptitude" data-roll="3d6kh2+@aptitudes.{{key}}.value" data-adv="-1" data-key="{{key}}"><i class="fas fa-dice"></i></span>
<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="fas fa-dice"></i></span>
<span class="stat-roll bonus rollable" title="2d6B" data-roll-type="aptitude" data-roll="3d6kl2+@aptitudes.{{key}}.value" data-adv="1" data-key="{{key}}"><i class="fas fa-dice"></i></span>
</div>
{{/each}}
</div>

View File

@ -0,0 +1,21 @@
<img class="chat-icon" src="{{actor.img}}" alt="{{actor.name}}"/>
{{#if isSuccess}}
{{#if isCritical}}
<h2 class="success critical"><i class="fas fa-check-double"></i>&nbsp;{{localize "BOL.ui.critical"}}...</h2>
{{else}}
<h2 class="success"><i class="fas fa-check"></i>&nbsp;{{localize "BOL.ui.success"}}...</h2>
{{/if}}
{{/if}}
{{#if isFailure}}
{{#if isFumble}}
<h2 class="failure fumble"><i class="fas fa-skull-crossbones"></i>&nbsp;{{localize "BOL.ui.fumble"}}...</h2>
{{else}}
<h2 class="failure"><i class="fas fa-times"></i>&nbsp;{{localize "BOL.ui.failure"}}...</h2>
{{/if}}
{{/if}}
<h3><strong>{{description}}</strong>
{{!#if hasDescription}}
<!--<h4>-->
<!-- <pre class="rollDescr-line">{{!description}}</pre>-->
<!--</h4>-->
{{!/if}}

View File

View File

@ -0,0 +1,51 @@
<form class="{{cssClass}}" autocomplete="off">
{{!-- Sheet Header --}}
<header class="sheet-header">
<div class="row flexrow table-header">
<div class="flex1 center">
<h3>{{localize 'BOL.ui.aptitudeCheck'}}</h3>
</div>
</div>
</header>
<div class="flexrow" style="margin-bottom: 1px;">
<div class="flex1 center bg-darkslate">
<label for="apt">{{localize 'BOL.ui.aptitude'}}</label>
</div>
<div class="flex1 center cell">
<select class="flex1" name="apt" id="apt" data-type="String">
<option value="init" {{#if (equals apt.key "init")}}selected{{/if}}>{{localize 'BOL.aptitudes.init'}}</option>
<option value="melee" {{#if (equals apt.key "melee")}}selected{{/if}}>{{localize 'BOL.aptitudes.melee'}}</option>
<option value="ranged" {{#if (equals apt.key "ranged")}}selected{{/if}}>{{localize 'BOL.aptitudes.ranged'}}</option>
<option value="def" {{#if (equals apt.key "def")}}selected{{/if}}>{{localize 'BOL.aptitudes.def'}}</option>
</select>
</div>
</div>
<div class="flexrow" style="margin-bottom: 1px;">
<div class="flex1 center bg-darkslate">
<label for="adv">{{localize 'BOL.ui.advantages'}}</label>
</div>
<div class="flex1 center cell">
<input type="text" class="field-value" name="adv" id="adv" value="{{adv}}" data-type="Number">
</div>
</div>
<div class="flexrow" style="margin-bottom: 1px;">
<div class="flex1 center bg-darkslate">
<label for="mod">{{localize 'BOL.ui.modifiers'}}</label>
</div>
<div class="flex1 center cell">
<input type="text" class="field-value" name="mod" id="mod" value="{{mod}}" data-type="Number">
</div>
</div>
<div class="flexrow" style="margin-bottom: 1px;">
<div class="flex1 center bg-darkslate">
<label for="mod">{{localize 'BOL.ui.careers'}}</label>
</div>
<div class="flex1 center cell">
<select class="flex1" name="career" id="career" data-type="String" multiple>
{{#each careers.items as | career id|}}
<option value="{{career.data.rank}}">{{career.name}} ({{numberFormat career.data.rank decimals=0 sign=true}})</option>
{{/each}}
</select>
</div>
</div>
</form>

View File

@ -0,0 +1,75 @@
<form class="{{cssClass}}" autocomplete="off">
{{!-- Sheet Header --}}
<header class="sheet-header">
<div class="row flexrow table-header">
<div class="flex1 center">
<h3>{{localize 'BOL.ui.attributeCheck'}}</h3>
</div>
</div>
</header>
<div class="flexrow" style="margin-bottom: 1px;">
<div class="flex1 center bg-darkred">
<label for="attr">{{localize 'BOL.ui.attribute'}}</label>
</div>
<div class="flex1 center cell">
<select class="flex1" name="attr" id="attr" data-type="String">
<option value="vigor" {{#if (equals attr.key "vigor")}}selected{{/if}}>{{localize 'BOL.attributes.vigor'}}</option>
<option value="agility" {{#if (equals attr.key "agility")}}selected{{/if}}>{{localize 'BOL.attributes.agility'}}</option>
<option value="mind" {{#if (equals attr.key "mind")}}selected{{/if}}>{{localize 'BOL.attributes.mind'}}</option>
<option value="appeal" {{#if (equals attr.key "appeal")}}selected{{/if}}>{{localize 'BOL.attributes.appeal'}}</option>
</select>
</div>
</div>
<div class="flexrow" style="margin-bottom: 1px;">
<div class="flex1 center bg-darkred">
<label for="adv">{{localize 'BOL.ui.advantages'}}</label>
</div>
<div class="flex1 center cell">
<input type="text" class="field-value" name="adv" id="adv" value="{{adv}}" data-type="Number">
</div>
</div>
<div class="flexrow" style="margin-bottom: 1px;">
<div class="flex1 center bg-darkred">
<label for="mod">{{localize 'BOL.ui.modifiers'}}</label>
</div>
<div class="flex1 center cell">
<input type="text" class="field-value" name="mod" id="mod" value="{{mod}}" data-type="Number">
</div>
</div>
<div class="flexrow" style="margin-bottom: 1px;">
<div class="flex1 center bg-darkred">
<label for="mod">{{localize 'BOL.ui.careers'}}</label>
</div>
<div class="flex1 center cell">
<select class="flex1" name="career" id="career" data-type="String" multiple>
{{#each careers.items as | career id|}}
<option value="{{career.data.rank}}">{{career.name}} ({{numberFormat career.data.rank decimals=0 sign=true}})</option>
{{/each}}
</select>
</div>
</div>
<!--<div class="flexrow" style="margin-bottom: 1px;">-->
<!-- <div class="flex1 center bg-darkred">-->
<!-- <label for="mod">{{!localize 'BOL.ui.boons'}}</label>-->
<!-- </div>-->
<!-- <div class="flex1 center cell">-->
<!-- <select class="flex1" name="boon" id="boon" data-type="String" multiple>-->
<!-- {{!#each boons.items as | boon id|}}-->
<!-- <option value="{{!boon._id}}">{{!boon.name}}</option>-->
<!-- {{!/each}}-->
<!-- </select>-->
<!-- </div>-->
<!--</div>-->
<!--<div class="flexrow" style="margin-bottom: 1px;">-->
<!-- <div class="flex1 center bg-darkred">-->
<!-- <label for="mod">{{!localize 'BOL.ui.flaws'}}</label>-->
<!-- </div>-->
<!-- <div class="flex1 center cell">-->
<!-- <select class="flex1" name="flaw" id="flaw" data-type="String" multiple>-->
<!-- {{!#each flaws.items as | flaw id|}}-->
<!-- <option value="{{!flaw._id}}">{{flaw.name}}</option>-->
<!-- {{!/each}}-->
<!-- </select>-->
<!-- </div>-->
<!--</div>-->
</form>

View File

@ -9,9 +9,18 @@
</select>
</div>
{{#each data.properties as |property key|}}
<div class="property flexrow">
<label class="property-label">{{localize key}}</label>
<label class="attribute-value checkbox"><input type="checkbox" name="data.properties.{{key}}" {{checked property}}/></label>
</div>
{{/each}}
{{#if (equals data.subtype "career")}}
{{> "systems/bol/templates/item/parts/properties/feature/career-properties.hbs"}}
{{/if}}
{{!#if (equals data.subtype "origin")}}
{{!> "systems/bol/templates/item/parts/properties/feature/origin-properties.hbs"}}
{{!/if}}
{{!#if (equals data.subtype "race")}}
{{!> "systems/bol/templates/item/parts/properties/feature/race-properties.hbs"}}
{{!/if}}
{{!#if (equals data.subtype "boon")}}
{{!> "systems/bol/templates/item/parts/properties/feature/boon-properties.hbs"}}
{{!/if}}
{{!#if (equals data.subtype "flaw")}}
{{!> "systems/bol/templates/item/parts/properties/feature/flaw-properties.hbs"}}
{{!/if}}

View File

@ -0,0 +1 @@
<h3 class="form-header">{{localize "BOL.featureSubtypes.boon"}}</h3>

View File

@ -0,0 +1,5 @@
<h3 class="form-header">{{localize 'BOL.featureSubtypes.career'}}</h3>
<div class="property flexrow">
<label class="property-label">{{localize "BOL.ui.rank"}}</label>
<input type="text" name="data.rank" value="{{data.rank}}" data-dtype="Number"/>
</div>

View File

@ -0,0 +1 @@
<h3 class="form-header">{{localize "BOL.featureSubtypes.flaw"}}</h3>

View File

@ -0,0 +1 @@
<h3 class="form-header">{{localize "BOL.featureSubtypes.origin"}}</h3>

View File

@ -0,0 +1 @@
<h3 class="form-header">{{localize "BOL.featureSubtypes.race"}}</h3>

View File

@ -49,14 +49,14 @@
</div>
{{#if data.properties.equipable}}
{{> "systems/bol/templates/item/parts/properties/equipment-properties.hbs"}}
{{> "systems/bol/templates/item/parts/properties/item/equipment-properties.hbs"}}
{{/if}}
{{#if data.properties.weapon}}
{{> "systems/bol/templates/item/parts/properties/weapon-properties.hbs"}}
{{> "systems/bol/templates/item/parts/properties/item/weapon-properties.hbs"}}
{{/if}}
{{#if (equals data.properties.protection)}}
{{> "systems/bol/templates/item/parts/properties/protection-properties.hbs"}}
{{> "systems/bol/templates/item/parts/properties/item/protection-properties.hbs"}}
{{/if}}
{{#if data.properties.shield}}
{{> "systems/bol/templates/item/parts/properties/shield-properties.hbs"}}
{{> "systems/bol/templates/item/parts/properties/item/shield-properties.hbs"}}
{{/if}}