Merge VK branch
This commit is contained in:
@ -391,10 +391,14 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
mergeObject(retrograde, { "active": true, "premiers_soins": 0, "soins_complets": 0, "jours": 0, "localisation": blessure.localisation });
|
||||
}
|
||||
mergeObject(blessure, { "active": false, "premiers_soins": 0, "soins_complets": 0, "jours": 0, "localisation": "" });
|
||||
this._supprimerBlessure(blessure);
|
||||
return true;
|
||||
}
|
||||
|
||||
_supprimerBlessure(blessure) {
|
||||
mergeObject(blessure, { "active": false, "premiers_soins": 0, "soins_complets": 0, "jours": 0, "localisation": "" });
|
||||
}
|
||||
|
||||
async _recupererVie(message) {
|
||||
let blessures = [].concat(this.data.data.blessures.legeres.liste).concat(this.data.data.blessures.graves.liste).concat(this.data.data.blessures.critiques.liste);
|
||||
let nbBlessures = blessures.filter(b => b.active);
|
||||
@ -430,6 +434,28 @@ export class RdDActor extends Actor {
|
||||
return rolled;
|
||||
}
|
||||
|
||||
|
||||
async remiseANeuf() {
|
||||
let message = {
|
||||
whisper: ChatUtility.getWhisperRecipientsAndGMs( this.name ),
|
||||
content : "Remise à neuf de " + this.name
|
||||
};
|
||||
const blessures = duplicate(this.data.data.blessures);
|
||||
for (let listeBlessures of [blessures.legeres.liste, blessures.graves.liste, blessures.critiques.liste]) {
|
||||
for (let blessure of listeBlessures) {
|
||||
this._supprimerBlessure(blessure);
|
||||
}
|
||||
}
|
||||
await this.update( {"data.blessures": blessures } );
|
||||
await this.santeIncDec("vie", this.data.data.sante.vie.max - this.data.data.sante.vie.value);
|
||||
await this.santeIncDec("endurance", this.data.data.sante.endurance.max - this.data.data.sante.endurance.value);
|
||||
let fatigue = duplicate(this.data.data.sante.fatigue)
|
||||
fatigue.value = 0;
|
||||
await this.update( {"data.sante.fatigue": fatigue } );
|
||||
ChatMessage.create( message );
|
||||
}
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async dormir(heures=1) {
|
||||
let message = {
|
||||
@ -890,12 +916,15 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async santeIncDec(name, inc, isCritique = false ) {
|
||||
async santeIncDec(name, inc, isCritique = false) {
|
||||
const sante = duplicate(this.data.data.sante);
|
||||
let data = sante[name];
|
||||
let minValue = 0;
|
||||
if (this.type == 'personnage')
|
||||
minValue = name == "vie" ? Number(-this.data.data.attributs.sconst.value) : 0;
|
||||
if (this.type == 'personnage') {
|
||||
// TODO: les animaux/humanoïdes on théoriquement aussi un sconst, mais la SPA n'est pas passé par là
|
||||
minValue = name == "vie" ? -Number(this.data.data.attributs.sconst.value) : 0;
|
||||
}
|
||||
|
||||
let newValue = Math.max(minValue, Math.min(data.value + inc, data.max));
|
||||
//console.log("New value ", inc, minValue, newValue);
|
||||
|
||||
@ -1298,9 +1327,8 @@ export class RdDActor extends Actor {
|
||||
let degatsReel = attackerRoll.degats - armure;
|
||||
|
||||
let result = RdDUtility.computeBlessuresSante(degatsReel, attackerRoll.mortalite);
|
||||
if ( this.data.type != 'entite') // Pas de PV chez les entités
|
||||
await this.santeIncDec("vie", result.vie, (result.critiques > 0) );
|
||||
await this.santeIncDec("endurance", result.endurance, (result.critiques > 0) );
|
||||
await this.santeIncDec("vie", result.vie);
|
||||
await this.santeIncDec("endurance", result.endurance, (result.critiques > 0));
|
||||
result.locName = (attackerRoll.loc) ? attackerRoll.loc.label : "Corps";
|
||||
|
||||
this.manageBlessures(result); // Will upate the result table
|
||||
|
Reference in New Issue
Block a user