use of min/max for fatigue/strife/void point for use on token bars

This commit is contained in:
Vlyan
2020-12-20 22:19:45 +01:00
parent 0127cb13f7
commit f0d2f440e4
5 changed files with 28 additions and 20 deletions

View File

@@ -61,20 +61,22 @@ export class ActorL5r5e extends Actor {
prepareData() { prepareData() {
super.prepareData(); super.prepareData();
const actorData = this.data; if (["character", "npc"].includes(this.data.type)) {
const data = actorData.data; const data = this.data.data;
const isCharacter = ["character", "npc"].includes(actorData.type);
if (isCharacter) {
data.endurance = (Number(data.rings.earth) + Number(data.rings.fire)) * 2; data.endurance = (Number(data.rings.earth) + Number(data.rings.fire)) * 2;
data.composure = (Number(data.rings.earth) + Number(data.rings.water)) * 2; data.composure = (Number(data.rings.earth) + Number(data.rings.water)) * 2;
data.focus = Number(data.rings.air) + Number(data.rings.fire); data.focus = Number(data.rings.air) + Number(data.rings.fire);
data.vigilante = Math.floor((Number(data.rings.air) + Number(data.rings.water)) / 2); data.vigilante = Math.floor((Number(data.rings.air) + Number(data.rings.water)) / 2);
// Attributes bars
data.void_points.max = data.rings.void; data.void_points.max = data.rings.void;
data.fatigue.max = data.endurance;
data.strife.max = data.composure;
// Make sure void points are never greater than max // Make sure void points are never greater than max
if (data.void_points.current > data.void_points.max) { if (data.void_points.value > data.void_points.max) {
data.void_points.current = data.void_points.max; data.void_points.value = data.void_points.max;
} }
} }
} }

View File

@@ -218,7 +218,7 @@ export class DicePickerDialog extends FormApplication {
actor: this._actor, actor: this._actor,
actorIsPc: !this._actor || this._actor.data?.type === "character", actorIsPc: !this._actor || this._actor.data?.type === "character",
difficulty: this._difficulty, difficulty: this._difficulty,
canUseVoidPoint: !this._actor || this._actor.data.data.void_points.current > 0, canUseVoidPoint: !this._actor || this._actor.data.data.void_points.value > 0,
}; };
} }
@@ -362,15 +362,15 @@ export class DicePickerDialog extends FormApplication {
// If Void point is used, minus the actor // If Void point is used, minus the actor
if (formData.use_void_point) { if (formData.use_void_point) {
this._actor.data.data.void_points.current = Math.max(this._actor.data.data.void_points.current - 1, 0); this._actor.data.data.void_points.value = Math.max(this._actor.data.data.void_points.value - 1, 0);
} }
// If hidden add void 1pt // If hidden add void 1pt
// this._difficulty.isHidden = !!formData.diff_hidden; // this._difficulty.isHidden = !!formData.diff_hidden;
// this._difficulty.difficulty = formData.diff; // this._difficulty.difficulty = formData.diff;
if (this._difficulty.isHidden) { if (this._difficulty.isHidden) {
this._actor.data.data.void_points.current = Math.min( this._actor.data.data.void_points.value = Math.min(
this._actor.data.data.void_points.current + 1, this._actor.data.data.void_points.value + 1,
this._actor.data.data.void_points.max this._actor.data.data.void_points.max
); );
} }

View File

@@ -74,11 +74,17 @@
"focus": 0, "focus": 0,
"vigilante": 0, "vigilante": 0,
"void_points": { "void_points": {
"max": 0, "max": 1,
"current": 0 "value": 0
},
"fatigue": {
"max": 1,
"value": 0
},
"strife": {
"max": 1,
"value": 0
}, },
"fatigue": 0,
"strife": 0,
"stance": "void" "stance": "void"
}, },
"advancement": { "advancement": {

View File

@@ -6,7 +6,7 @@
</label> </label>
<label class="attribute-label"> <label class="attribute-label">
<strong>{{ localize 'l5r5e.attributes.fatigue' }}</strong> <strong>{{ localize 'l5r5e.attributes.fatigue' }}</strong>
<input class="centered-input select-on-focus" type="number" name="data.fatigue" value="{{data.fatigue}}" data-dtype="Number" min="0" placeholder="0"/> <input class="centered-input select-on-focus" type="number" name="data.fatigue.value" value="{{data.fatigue.value}}" data-dtype="Number" min="0" placeholder="0"/>
</label> </label>
<p class="quick-rules"> {{ localize 'l5r5e.attributes.endurancetip' }}</p> <p class="quick-rules"> {{ localize 'l5r5e.attributes.endurancetip' }}</p>
</li> </li>
@@ -17,7 +17,7 @@
</label> </label>
<label class="attribute-label"> <label class="attribute-label">
<strong>{{ localize 'l5r5e.attributes.strife' }}</strong> <strong>{{ localize 'l5r5e.attributes.strife' }}</strong>
<input class="centered-input select-on-focus" type="number" name="data.strife" value="{{data.strife}}" data-dtype="Number" min="0" placeholder="0"/> <input class="centered-input select-on-focus" type="number" name="data.strife.value" value="{{data.strife.value}}" data-dtype="Number" min="0" placeholder="0"/>
</label> </label>
<p class="quick-rules"> {{ localize 'l5r5e.attributes.composuretip' }}</p> <p class="quick-rules"> {{ localize 'l5r5e.attributes.composuretip' }}</p>
</li> </li>
@@ -38,7 +38,7 @@
<li class="void-content"> <li class="void-content">
<label class="attribute-label"> <label class="attribute-label">
<strong>{{ localize 'l5r5e.attributes.voidpoints' }}</strong> <strong>{{ localize 'l5r5e.attributes.voidpoints' }}</strong>
<input class="centered-input select-on-focus" type="number" name="data.void_points.current" value="{{data.void_points.current}}" data-dtype="Number" placeholder="0" min="0" max="{{data.void_points.max}}"/> <input class="centered-input select-on-focus" type="number" name="data.void_points.value" value="{{data.void_points.value}}" data-dtype="Number" placeholder="0" min="0" max="{{data.void_points.max}}"/>
<input class="centered-input" type="text" name="data.void_points.max" value="{{data.void_points.max}}" data-dtype="Number" disabled/> <input class="centered-input" type="text" name="data.void_points.max" value="{{data.void_points.max}}" data-dtype="Number" disabled/>
</label> </label>
</li> </li>

View File

@@ -6,7 +6,7 @@
</label> </label>
<label class="attribute-label"> <label class="attribute-label">
<strong>{{ localize 'l5r5e.attributes.fatigue' }}</strong> <strong>{{ localize 'l5r5e.attributes.fatigue' }}</strong>
<input class="centered-input select-on-focus" type="number" name="data.fatigue" value="{{data.fatigue}}" data-dtype="Number" min="0" placeholder="0"/> <input class="centered-input select-on-focus" type="number" name="data.fatigue.value" value="{{data.fatigue.value}}" data-dtype="Number" min="0" placeholder="0"/>
</label> </label>
<p class="quick-rules"> {{ localize 'l5r5e.attributes.endurancetip' }}</p> <p class="quick-rules"> {{ localize 'l5r5e.attributes.endurancetip' }}</p>
</li> </li>
@@ -17,7 +17,7 @@
</label> </label>
<label class="attribute-label"> <label class="attribute-label">
<strong>{{ localize 'l5r5e.attributes.strife' }}</strong> <strong>{{ localize 'l5r5e.attributes.strife' }}</strong>
<input class="centered-input select-on-focus" type="number" name="data.strife" value="{{data.strife}}" data-dtype="Number" min="0" placeholder="0"/> <input class="centered-input select-on-focus" type="number" name="data.strife.value" value="{{data.strife.value}}" data-dtype="Number" min="0" placeholder="0"/>
</label> </label>
<p class="quick-rules"> {{ localize 'l5r5e.attributes.composuretip' }}</p> <p class="quick-rules"> {{ localize 'l5r5e.attributes.composuretip' }}</p>
</li> </li>
@@ -38,7 +38,7 @@
<li class="void-content"> <li class="void-content">
<label class="attribute-label"> <label class="attribute-label">
<strong>{{ localize 'l5r5e.attributes.voidpoints' }}</strong> <strong>{{ localize 'l5r5e.attributes.voidpoints' }}</strong>
<input class="centered-input select-on-focus" type="number" name="data.void_points.current" value="{{data.void_points.current}}" data-dtype="Number" placeholder="0" min="0" max="{{data.void_points.max}}"/> <input class="centered-input select-on-focus" type="number" name="data.void_points.value" value="{{data.void_points.value}}" data-dtype="Number" placeholder="0" min="0" max="{{data.void_points.max}}"/>
<input class="centered-input" type="text" name="data.void_points.max" value="{{data.void_points.max}}" data-dtype="Number" disabled/> <input class="centered-input" type="text" name="data.void_points.max" value="{{data.void_points.max}}" data-dtype="Number" disabled/>
</label> </label>
</li> </li>