#63 Jet d'éthylisme
This commit is contained in:
parent
bf317e54d7
commit
1afce56348
@ -909,6 +909,8 @@ export class RdDActor extends Actor {
|
|||||||
state = 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 = state + RdDUtility.currentFatigueMalus(data.sante.fatigue.value, data.sante.endurance.max);
|
||||||
|
if (data.compteurs && data.compteurs.ethylisme) // Ajout de l'éthylisme
|
||||||
|
state = state + data.compteurs.ethylisme.value;
|
||||||
state = state;
|
state = state;
|
||||||
surenc = -this.detectSurEncombrement();
|
surenc = -this.detectSurEncombrement();
|
||||||
data.compteurs.etat.value = state;
|
data.compteurs.etat.value = state;
|
||||||
@ -1197,7 +1199,7 @@ export class RdDActor extends Actor {
|
|||||||
async ethylismeTest() {
|
async ethylismeTest() {
|
||||||
let rollData = {
|
let rollData = {
|
||||||
vieValue: this.data.data.sante.vie.value,
|
vieValue: this.data.data.sante.vie.value,
|
||||||
etat: this.data.data.compteurs.etat.value,
|
etat: this.data.data.compteurs.etat.value - this.data.data.compteurs.etat.value, // Pour les jets d'Ethylisme, on ignore le degré d'éthylisme (p.162)
|
||||||
niveauEthylisme: this.data.data.compteurs.ethylisme.value,
|
niveauEthylisme: this.data.data.compteurs.ethylisme.value,
|
||||||
nbDoses: this.data.data.compteurs.ethylisme.nb_doses || 0,
|
nbDoses: this.data.data.compteurs.ethylisme.nb_doses || 0,
|
||||||
finalLevel: 0,
|
finalLevel: 0,
|
||||||
@ -1208,26 +1210,38 @@ export class RdDActor extends Actor {
|
|||||||
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-roll-ethylisme.html', rollData);
|
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-roll-ethylisme.html', rollData);
|
||||||
new RdDRollDialogEthylisme(html, rollData, this ).render(true);
|
new RdDRollDialogEthylisme(html, rollData, this ).render(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async performEthylisme( rollData ) {
|
async performEthylisme( rollData ) {
|
||||||
let ethylisme = duplicate(this.data.data.compteurs.ethylisme);
|
let ethylisme = duplicate(this.data.data.compteurs.ethylisme);
|
||||||
let roll = await RdDResolutionTable.roll( rollData.vieValue, rollData.finalLevel);
|
|
||||||
let msgText;
|
// Je d'ethylisme
|
||||||
if (roll.isSuccess ) {
|
let rollEthylisme = await RdDResolutionTable.roll( rollData.vieValue, rollData.finalLevel);
|
||||||
ethylisme.value = ethylisme.value - 1;
|
let msgText = RdDResolutionTable.explain(rollEthylisme) + "<br>";
|
||||||
msgText = "Vous avez échouez à votre jet d'éthylisme, votre niveau d'éthylisme est de " + ethylisme.value
|
if (rollEthylisme.isSuccess ) {
|
||||||
+ "(" + RdDUtility.getNomEthylisme(ethylisme.value) + ")";
|
|
||||||
} else {
|
|
||||||
ethylisme.nb_doses = ethylisme.nb_doses + 1;
|
ethylisme.nb_doses = ethylisme.nb_doses + 1;
|
||||||
msgText = "Vous avez réussitvotre jet d'éthylisme, votre vous avez désormais " + ethylisme.nb_doses + " doses sans effet.";
|
msgText += "Vous avez réussi votre jet d'éthylisme, votre vous avez désormais " + ethylisme.nb_doses + " doses sans effet.";
|
||||||
|
} else {
|
||||||
|
ethylisme.value = ethylisme.value - 1;
|
||||||
|
if ( ethylisme.value > 7) ethylisme.value = 7; // Niveau max
|
||||||
|
let enduranceLost = new Roll("1d6").roll().total;
|
||||||
|
await this.santeIncDec("endurance", -enduranceLost);
|
||||||
|
msgText += "Vous avez échoué à votre jet d'éthylisme, votre niveau d'éthylisme est de " + ethylisme.value
|
||||||
|
+ "(" + RdDUtility.getNomEthylisme(ethylisme.value) + ").";
|
||||||
|
// Qui a bu boira (p 164)
|
||||||
|
let rollVolonte = await RdDResolutionTable.roll( this.data.data.carac.volonte.value, -ethylisme.value);
|
||||||
|
msgText += "<br>" + RdDResolutionTable.explain(rollVolonte) + "<br>";
|
||||||
|
if ( rollVolonte.isSuccess)
|
||||||
|
msgText += "Qui a bu boira : vous êtes libre de continuer à boire ou pas.";
|
||||||
|
else
|
||||||
|
msgText += "Qui a bu boira : vous avez une envie irrépréssible de reprendre un verre.";
|
||||||
}
|
}
|
||||||
|
await this.update( { 'data.compteurs.ethylisme': ethylisme} );
|
||||||
const message = {
|
const message = {
|
||||||
content: msgText,
|
content: msgText,
|
||||||
whisper: ChatMessage.getWhisperRecipients(game.user.name)
|
whisper: ChatMessage.getWhisperRecipients(game.user.name)
|
||||||
};
|
};
|
||||||
ChatMessage.create(message);
|
ChatMessage.create(message);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -1338,6 +1352,7 @@ export class RdDActor extends Actor {
|
|||||||
new RdDRollDialog("carac", html, rollData, this ).render(true);
|
new RdDRollDialog("carac", html, rollData, this ).render(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
async appelChance( )
|
async appelChance( )
|
||||||
{
|
{
|
||||||
let rollData = {
|
let rollData = {
|
||||||
@ -1360,6 +1375,7 @@ export class RdDActor extends Actor {
|
|||||||
dialog.render(true);
|
dialog.render(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
_appelChanceResultat(rollData) {
|
_appelChanceResultat(rollData) {
|
||||||
const message = {
|
const message = {
|
||||||
user: game.user._id,
|
user: game.user._id,
|
||||||
@ -1373,17 +1389,20 @@ export class RdDActor extends Actor {
|
|||||||
ChatMessage.create(message);
|
ChatMessage.create(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
async chanceActuelleIncDec(value) {
|
async chanceActuelleIncDec(value) {
|
||||||
let chance = duplicate(this.data.data.compteurs.chance);
|
let chance = duplicate(this.data.data.compteurs.chance);
|
||||||
chance.value = Math.max(chance.value + value, 0);
|
chance.value = Math.max(chance.value + value, 0);
|
||||||
await this.update( {"data.compteurs.chance": chance } );
|
await this.update( {"data.compteurs.chance": chance } );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
ajustementAstrologique() {
|
ajustementAstrologique() {
|
||||||
//TODO: selon heure et heure de naissance...
|
//TODO: selon heure et heure de naissance...
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
getCaracByName(caracName) {
|
getCaracByName(caracName) {
|
||||||
switch (caracName)
|
switch (caracName)
|
||||||
{
|
{
|
||||||
|
@ -97,6 +97,7 @@ export class RdDResolutionTable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
static async rollData(rollData ) {
|
static async rollData(rollData ) {
|
||||||
rollData.rolled = await this.roll(rollData.caracValue, rollData.finalLevel, rollData.bonus);
|
rollData.rolled = await this.roll(rollData.caracValue, rollData.finalLevel, rollData.bonus);
|
||||||
return rollData;
|
return rollData;
|
||||||
|
@ -86,7 +86,9 @@ const fatigueMarche = { "aise": { "4":1, "6":2, "8":3, "10":4, "12":6 },
|
|||||||
"malaise": { "4":2, "6":3, "8":4, "10":6 },
|
"malaise": { "4":2, "6":3, "8":4, "10":6 },
|
||||||
"difficile": { "4":3, "6":4, "8":6 },
|
"difficile": { "4":3, "6":4, "8":6 },
|
||||||
"tresdifficile": { "4":4, "6":6 } }
|
"tresdifficile": { "4":4, "6":6 } }
|
||||||
/* Static tables for commands /table */
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
/* Static tables for commands /table */
|
||||||
const table2func = { "queues": {descr: "queues : Tire une queue de Dragon", func: RdDRollTables.getQueue},
|
const table2func = { "queues": {descr: "queues : Tire une queue de Dragon", func: RdDRollTables.getQueue},
|
||||||
"ombre": { descr: "ombre: Tire une Ombre de Dragon", func: RdDRollTables.getOmbre },
|
"ombre": { descr: "ombre: Tire une Ombre de Dragon", func: RdDRollTables.getOmbre },
|
||||||
"tetehr": {descr: "tetehr: Tire une Tête de Dragon pour Hauts Revants", fund: RdDRollTables.getTeteHR},
|
"tetehr": {descr: "tetehr: Tire une Tête de Dragon pour Hauts Revants", fund: RdDRollTables.getTeteHR},
|
||||||
@ -101,6 +103,9 @@ const definitionsBlessures = [
|
|||||||
{ type: "critique", facteur : 6 }
|
{ type: "critique", facteur : 6 }
|
||||||
]
|
]
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
const nomEthylisme = [ "Emeché", "Gris", "Pinté", "Pas frais", "Ivre", "Bu", "Complètement fait", "Ivre mort"];
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
const definitionsEncaissement = {
|
const definitionsEncaissement = {
|
||||||
"mortel": [
|
"mortel": [
|
||||||
@ -191,10 +196,11 @@ export class RdDUtility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getNomEthylisme( niveauEthylisme ) {
|
static getNomEthylisme( niveauEthylisme ) {
|
||||||
|
let index = Math.abs(niveauEthylisme);
|
||||||
|
return nomEthylisme[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static initAfficheContenu( actorId ) { // persistent handling of conteneur show/hide
|
static initAfficheContenu( actorId ) { // persistent handling of conteneur show/hide
|
||||||
if ( !this.afficheContenu )
|
if ( !this.afficheContenu )
|
||||||
|
@ -144,7 +144,7 @@
|
|||||||
{{#if compteur.isStress}}
|
{{#if compteur.isStress}}
|
||||||
<a class="item-control stress-test" id="stress-test" title="Transformer">Transformer</a>
|
<a class="item-control stress-test" id="stress-test" title="Transformer">Transformer</a>
|
||||||
{{else}}
|
{{else}}
|
||||||
{{#if eq compteur.label 'Ethylisme'}}
|
{{#if (eq compteur.label 'Ethylisme')}}
|
||||||
<a class="item-control ethylisme-test" id="ethylisme-test" title="Jet d'Ethylisme">Jet d'Ethylisme</a>
|
<a class="item-control ethylisme-test" id="ethylisme-test" title="Jet d'Ethylisme">Jet d'Ethylisme</a>
|
||||||
{{else}}
|
{{else}}
|
||||||
<label></label>
|
<label></label>
|
||||||
|
Loading…
Reference in New Issue
Block a user