Stress amélioré

Commande: /stress
Ouvre une fenêtre pour gérer finement le stress (ou l'expérience)

Commande: /stress <v> <motif> <nom>
Stress donné à un acteur/joueur avec un nom proche

Notifications des joueurs qui reçoivent du stress
This commit is contained in:
Vincent Vandemeulebrouck
2021-10-08 23:28:55 +02:00
parent 41c6270bf1
commit 1efdca028c
6 changed files with 171 additions and 36 deletions

View File

@ -1,6 +1,7 @@
/* -------------------------------------------- */
import { DialogCreateSigneDraconique } from "./dialog-create-signedraconique.js";
import { DialogStress } from "./dialog-stress.js";
import { RdDItemCompetence } from "./item-competence.js";
import { Misc } from "./misc.js";
import { RdDCarac } from "./rdd-carac.js";
@ -97,11 +98,12 @@ export class RdDCommands {
});
rddCommands.registerCommand({
path: ["/stress"], func: (content, msg, params) => RdDUtility.distribuerStress(params[0], params[1], params[2]),
path: ["/stress"], func: (content, msg, params) => rddCommands.distribuerStress(params),
descr: `Distribue du stress aux personnages. Exemples:
<br><strong>/stress</strong> : Ouvre une fenêtre pour donner du stress ou de l'expérience à un ensemble de personnages
<br><strong>/stress 6</strong> : Distribue 6 points des Stress à tout les personnages joueurs, sans raison renseignée
<br><strong>/stress 6 Tigre</strong> : Distribue 6 points des Stress à tout les personnages joueurs, à cause d'un Tigre Vert
<br><strong>/stress 6 Glou Paulo</strong> : Distribue 6 points de Stres à l'acteur connecté au joueur Paulo, à cause d'un Glou`
<br><strong>/stress 6 Tigre</strong> : Distribue 6 points des Stress à tout les personnages joueurs, à cause d'un Tigre (Vert)
<br><strong>/stress 6 Glou Paulo</strong> : Distribue 6 points de Stress au personnage Paulon ou au personnage joueur Paulo, à cause d'un Glou`
});
game.system.rdd.commands = rddCommands;
@ -289,7 +291,7 @@ export class RdDCommands {
finalLevel: diff,
showDice: true,
diviseurSignificative: significative ? 2 : 1,
show: { title: "Table de résolution"}
show: { title: "Table de résolution" }
};
await RdDResolutionTable.rollData(rollData);
RdDCommands._chatAnswer(msg, await RdDResolutionTable.buildRollDataHtml(rollData));
@ -297,7 +299,7 @@ export class RdDCommands {
/* -------------------------------------------- */
async rollDeDraconique(msg) {
let ddr = await RdDDice.rollTotal("1dr + 7", { showDice:true });
let ddr = await RdDDice.rollTotal("1dr + 7", { showDice: true });
RdDCommands._chatAnswer(msg, `Lancer d'un Dé draconique: ${ddr}`);
}
@ -351,5 +353,41 @@ export class RdDCommands {
});
return true;
}
async distribuerStress(params) {
if (!game.user.isGM) {
ui.notifications.warn("Seul le MJ est autorisé à utiliser la commande /stress");
return false;
}
if (params.length == 0) {
DialogStress.distribuerStress();
}
else {
let stress = params[0]
if (stress == undefined) {
ui.notifications.warn("Pas de valeur de stress à distribuer!");
return;
}
let motif = params[1];
let name = params[2];
if (name == undefined) {
for (let actor of game.actors) {
actor.distribuerStress('stress', stress, motif);
}
} else {
//console.log(stressValue, nomJoueur);
let actor = Misc.findActor(name, game.actors.filter(it => it.hasPlayerOwner)) ?? Misc.findPlayer(name)?.character
if (actor) {
actor.distribuerStress('stress', stress, motif);
}
else {
ui.notifications.warn(`Pas de personnage ou de joueur correspondant à ${name}!`);
}
}
}
return true;
}
}