Feuille de véhicule avec compteurs

This commit is contained in:
Vincent Vandemeulebrouck 2022-11-28 21:01:28 +01:00
parent e35f77b5a8
commit 7557d33c73
3 changed files with 56 additions and 19 deletions

View File

@ -18,5 +18,22 @@ export class RdDActorVehiculeSheet extends RdDActorSheet {
}); });
} }
activateListeners(html) {
super.activateListeners(html);
if (!this.options.editable) return;
html.find('.resistance-moins').click(async event => {
this.actor.vehicleIncDec("resistance", -1);
});
html.find('.resistance-plus').click(async event => {
this.actor.vehicleIncDec("resistance", 1);
});
html.find('.structure-moins').click(async event => {
this.actor.vehicleIncDec("structure", -1);
});
html.find('.structure-plus').click(async event => {
this.actor.vehicleIncDec("structure", 1);
});
}
} }

View File

@ -1780,6 +1780,18 @@ export class RdDActor extends Actor {
return result; return result;
} }
async vehicleIncDec(name, inc) {
if (!this.isVehicule() || !['resistance', 'structure'].includes(name)) {
return
}
const value = this.system.etat[name].value;
const max = this.system.etat[name].max;
const newValue = value + inc;
if (0 <= newValue && newValue <=max) {
await this.update({ [`system.etat.${name}.value`]: newValue })
}
}
isDead() { isDead() {
return !this.isEntite() && this.system.sante.vie.value < -this.getSConst() return !this.isEntite() && this.system.sante.vie.value < -this.getSConst()
} }

View File

@ -2,10 +2,34 @@
{{!-- Sheet Header --}} {{!-- Sheet Header --}}
<header class="sheet-header"> <header class="sheet-header">
<img class="profile-img" src="{{img}}" data-edit="img" title="{{name}}" />
<div class="header-fields"> <div class="header-fields">
<div class="flexrow"> <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> <h1 class="charname"><input name="name" type="text" value="{{name}}" placeholder="Name" /></h1>
<div class="flexrow">
<div class="flex-group-left header-compteurs">
<ul>
<li data-attribute="resistance" class="flexrow">
<span class="carac-label">Résistance</span>
<a class="resistance-moins"><i class="fas fa-minus-square"></i></a>
<input type="text" name="system.etat.resistance.value" value="{{system.etat.resistance.value}}" data-dtype="Number" />
/
<input type="text" name="system.etat.resistance.max" value="{{system.etat.resistance.max}}" data-dtype="Number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
<a class="resistance-plus"><i class="fas fa-plus-square"></i></a>
</li>
<li data-attribute="structure" class="flexrow">
<span class="carac-label">Structure</span>
<a class="structure-moins"><i class="fas fa-minus-square"></i></a>
<input type="text" name="system.etat.structure.value" value="{{system.etat.structure.value}}" data-dtype="Number" />
/
<input type="text" name="system.etat.structure.max" value="{{system.etat.structure.max}}" data-dtype="Number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
<a class="structure-plus"><i class="fas fa-plus-square"></i></a>
</li>
</ul>
</div>
</div>
</div>
</div> </div>
</div> </div>
</header> </header>
@ -25,22 +49,6 @@
{{>"systems/foundryvtt-reve-de-dragon/templates/actor/vue-detaillee.html"}} {{>"systems/foundryvtt-reve-de-dragon/templates/actor/vue-detaillee.html"}}
</div> </div>
<div class="grid grid-2col"> <div class="grid grid-2col">
<div class="flex-group-left flexcol">
<ol class="carac-list alterne-list">
<li class="caracteristique flexrow list-item">
<span class="carac-label">Résistance</span>
<input class="competence-value" type="text" name="system.etat.resistance.value" value="{{system.etat.resistance.value}}" data-dtype="Number" />
/
<input class="competence-value" type="text" name="system.etat.resistance.max" value="{{system.etat.resistance.max}}" data-dtype="Number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
</li>
<li class="caracteristique flexrow list-item">
<span class="carac-label">Structure</span>
<input class="competence-value" type="text" name="system.etat.structure.value" value="{{system.etat.structure.value}}" data-dtype="Number" />
/
<input class="competence-value" type="text" name="system.etat.structure.max" value="{{system.etat.structure.max}}" data-dtype="Number" {{#unless @root.options.vueDetaillee}}disabled{{/unless}} />
</li>
</ol>
</div>
<div class="flex-group-left flexcol"> <div class="flex-group-left flexcol">
<ol> <ol>
<li class="caracteristique flexrow list-item"> <li class="caracteristique flexrow list-item">