Moral sur éthylisme
This commit is contained in:
parent
6f22c4ab18
commit
df7d39f38e
@ -46,6 +46,7 @@ export class RdDActorHumanoideSheet extends ActorSheet {
|
|||||||
|
|
||||||
data.data.competencecreature = data.itemsByType["competencecreature"];
|
data.data.competencecreature = data.itemsByType["competencecreature"];
|
||||||
data.data.isGM = game.user.isGM;
|
data.data.isGM = game.user.isGM;
|
||||||
|
data.data.compteurs.ethylisme.nom = RdDUtility.getNomEthylisme(data.data.compteurs.ethylisme.value);
|
||||||
|
|
||||||
RdDUtility.filterItemsPerTypeForSheet(data );
|
RdDUtility.filterItemsPerTypeForSheet(data );
|
||||||
RdDUtility.buildArbreDeConteneur( this, data );
|
RdDUtility.buildArbreDeConteneur( this, data );
|
||||||
|
@ -202,8 +202,8 @@ export class RdDActor extends Actor {
|
|||||||
let message = {
|
let message = {
|
||||||
whisper: ChatUtility.getWhisperRecipientsAndGMs( this.name ),
|
whisper: ChatUtility.getWhisperRecipientsAndGMs( this.name ),
|
||||||
content : ""
|
content : ""
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const blessures = duplicate(this.data.data.blessures);
|
const blessures = duplicate(this.data.data.blessures);
|
||||||
console.log("dormirChateauDormant", blessures)
|
console.log("dormirChateauDormant", blessures)
|
||||||
await this._recupererBlessures(message, "legere", blessures.legeres.liste.filter(b => b.active), []);
|
await this._recupererBlessures(message, "legere", blessures.legeres.liste.filter(b => b.active), []);
|
||||||
@ -316,6 +316,8 @@ export class RdDActor extends Actor {
|
|||||||
}
|
}
|
||||||
await this.update( {"data.blessures": blessures } );
|
await this.update( {"data.blessures": blessures } );
|
||||||
}
|
}
|
||||||
|
await this.update({ "data.compteurs.ethylisme.value": 0 });
|
||||||
|
await this.update({ "data.compteurs.ethylisme.nb_doses": 0 });
|
||||||
await this.santeIncDec("vie", this.data.data.sante.vie.max - this.data.data.sante.vie.value);
|
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);
|
await this.santeIncDec("endurance", this.data.data.sante.endurance.max - this.data.data.sante.endurance.value);
|
||||||
if (this.data.data.sante.fatigue){
|
if (this.data.data.sante.fatigue){
|
||||||
@ -335,12 +337,26 @@ export class RdDActor extends Actor {
|
|||||||
};
|
};
|
||||||
await this.recupereEndurance(message);
|
await this.recupereEndurance(message);
|
||||||
for (let i=0; i<heures; i++) {
|
for (let i=0; i<heures; i++) {
|
||||||
|
await this._recupererEthylisme(message);
|
||||||
await this.recupererFatigue(message);
|
await this.recupererFatigue(message);
|
||||||
await this.recuperationReve(message);
|
await this.recuperationReve(message);
|
||||||
}
|
}
|
||||||
ChatMessage.create( message );
|
ChatMessage.create( message );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async _recupererEthylisme(message) {
|
||||||
|
let ethylisme = duplicate(this.data.data.compteurs.ethylisme);
|
||||||
|
if (ethylisme.value < 1)
|
||||||
|
{
|
||||||
|
ethylisme.value = Math.min(ethylisme.value + 1, 1);
|
||||||
|
ethylisme.nb_doses = 0;
|
||||||
|
await this.update({ "data.compteurs.ethylisme": ethylisme });
|
||||||
|
if (ethylisme.value <= 0) {
|
||||||
|
message.content += `<br>Vous dégrisez un peu (${RdDUtility.getNomEthylisme(ethylisme.value)})`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async recupereEndurance(message) {
|
async recupereEndurance(message) {
|
||||||
const manquant = this._computeEnduranceMax() - this.data.data.sante.endurance.value;
|
const manquant = this._computeEnduranceMax() - this.data.data.sante.endurance.value;
|
||||||
@ -680,18 +696,15 @@ export class RdDActor extends Actor {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Pour les autres
|
// Pour les autres
|
||||||
let state = 0, surenc = 0;
|
let state = - (data.sante.vie.max - data.sante.vie.value);
|
||||||
state = state - (data.sante.vie.max - data.sante.vie.value);
|
|
||||||
if (data.sante.fatigue) // Creatures n'ont pas de fatigue
|
if (data.sante.fatigue) // Creatures n'ont pas de fatigue
|
||||||
state = state + RdDUtility.currentFatigueMalus(data.sante.fatigue.value, data.sante.endurance.max);
|
state += RdDUtility.currentFatigueMalus(data.sante.fatigue.value, data.sante.endurance.max);
|
||||||
if (data.compteurs && data.compteurs.ethylisme && data.compteurs.ethylisme.value < 0 ) { // Ajout de l'éthylisme
|
if (data.compteurs && data.compteurs.ethylisme && data.compteurs.ethylisme.value < 0 ) { // Ajout de l'éthylisme
|
||||||
state = state + data.compteurs.ethylisme.value;
|
state += data.compteurs.ethylisme.value;
|
||||||
}
|
}
|
||||||
state = state;
|
|
||||||
data.compteurs.etat.value = state;
|
data.compteurs.etat.value = state;
|
||||||
if ( data.compteurs && data.compteurs.surenc) {
|
if ( data.compteurs && data.compteurs.surenc) {
|
||||||
surenc = -this.detectSurEncombrement();
|
data.compteurs.surenc.value = - this.detectSurEncombrement();
|
||||||
data.compteurs.surenc.value = surenc;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1063,21 +1076,21 @@ export class RdDActor extends Actor {
|
|||||||
let msgText = RdDResolutionTable.explain(rollEthylisme) + "<br>";
|
let msgText = RdDResolutionTable.explain(rollEthylisme) + "<br>";
|
||||||
if (rollEthylisme.isSuccess ) {
|
if (rollEthylisme.isSuccess ) {
|
||||||
ethylisme.nb_doses = ethylisme.nb_doses + 1;
|
ethylisme.nb_doses = ethylisme.nb_doses + 1;
|
||||||
msgText += "Vous avez réussi votre jet d'éthylisme, votre vous avez désormais " + ethylisme.nb_doses + " doses sans effet.";
|
msgText += `Vous avez réussi votre jet d'éthylisme, vous avez consommé ${ethylisme.nb_doses} doses sans effet.`;
|
||||||
} else {
|
} else {
|
||||||
ethylisme.value = ethylisme.value - 1;
|
ethylisme.value = Math.max(ethylisme.value -1, -7);
|
||||||
if ( ethylisme.value > 7) ethylisme.value = 7; // Niveau max
|
|
||||||
let enduranceLost = new Roll("1d6").roll().total;
|
let enduranceLost = new Roll("1d6").roll().total;
|
||||||
await this.santeIncDec("endurance", -enduranceLost);
|
await this.santeIncDec("endurance", -enduranceLost);
|
||||||
msgText += "Vous avez échoué à votre jet d'éthylisme, votre niveau d'éthylisme est de " + ethylisme.value
|
const ajustementEthylique = ethylisme.value;
|
||||||
+ "(" + RdDUtility.getNomEthylisme(ethylisme.value) + ").";
|
|
||||||
// Qui a bu boira (p 164)
|
// Qui a bu boira (p 164)
|
||||||
let rollVolonte = await RdDResolutionTable.roll( this.data.data.carac.volonte.value, -ethylisme.value);
|
let rollVolonte = await RdDResolutionTable.roll( this.data.data.carac.volonte.value, Math.min(ajustementEthylique, 0) + this.data.data.compteurs.moral.value);
|
||||||
|
msgText += `Vous avez échoué à votre jet d'éthylisme, vous êtes maintenant ${RdDUtility.getNomEthylisme(ajustementEthylique)} (${ajustementEthylique}).`
|
||||||
msgText += "<br>" + RdDResolutionTable.explain(rollVolonte) + "<br>";
|
msgText += "<br>" + RdDResolutionTable.explain(rollVolonte) + "<br>";
|
||||||
if ( rollVolonte.isSuccess)
|
msgText += "Qui a bu boira : " +(rollVolonte.isSuccess
|
||||||
msgText += "Qui a bu boira : vous êtes libre de continuer à boire ou pas.";
|
? "vous êtes libre de continuer à boire ou pas."
|
||||||
else
|
: "vous avez une envie irrépréssible de reprendre un verre.");
|
||||||
msgText += "Qui a bu boira : vous avez une envie irrépréssible de reprendre un verre.";
|
|
||||||
}
|
}
|
||||||
await this.update( { 'data.compteurs.ethylisme': ethylisme} );
|
await this.update( { 'data.compteurs.ethylisme': ethylisme} );
|
||||||
const message = {
|
const message = {
|
||||||
@ -1085,6 +1098,10 @@ export class RdDActor extends Actor {
|
|||||||
whisper: ChatMessage.getWhisperRecipients(game.user.name)
|
whisper: ChatMessage.getWhisperRecipients(game.user.name)
|
||||||
};
|
};
|
||||||
ChatMessage.create(message);
|
ChatMessage.create(message);
|
||||||
|
|
||||||
|
if (rollEthylisme.isEchec && ethylisme.value == 0) {
|
||||||
|
await this.jetDeMoral('heureuse'); // note: en, théorie, un deuxième jet de moral peut avoir lieu le même jour si lme premier est manqué, qui fait perdre du moral si raté...
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
@ -203,8 +203,8 @@ export class RdDUtility {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static getNomEthylisme( niveauEthylisme ) {
|
static getNomEthylisme( niveauEthylisme ) {
|
||||||
let index = Math.abs(niveauEthylisme);
|
let index = -niveauEthylisme;
|
||||||
return nomEthylisme[index];
|
return index <0 ? 'Aucun' : nomEthylisme[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<option value="1">Aucun</option>
|
<option value="1">Aucun</option>
|
||||||
<option value="0">Eméché</option>
|
<option value="0">Eméché (0)</option>
|
||||||
<option value="-1">Gris</option>
|
<option value="-1">Gris (-1)</option>
|
||||||
<option value="-2">Pinté</option>
|
<option value="-2">Pinté (-2)</option>
|
||||||
<option value="-3">Pas Frais</option>
|
<option value="-3">Pas Frais (-3)</option>
|
||||||
<option value="-4">Ivre</option>
|
<option value="-4">Ivre (-4)</option>
|
||||||
<option value="-5">Bu</option>
|
<option value="-5">Bu (-5)</option>
|
||||||
<option value="-6">Complètement fait</option>
|
<option value="-6">Complètement fait (-6)</option>
|
||||||
<option value="-7">Ivre mort</option>
|
<option value="-7">Ivre mort (-7)</option>
|
||||||
|
Loading…
Reference in New Issue
Block a user