Ajout des queues et souffles automatique
This commit is contained in:
parent
fa225f3df9
commit
22ddb94f97
@ -444,12 +444,10 @@ export class RdDActor extends Actor {
|
||||
message += "<br>Vous gagnez une Tête de dragon: " + tete;
|
||||
}
|
||||
if (roll.isEchec) {
|
||||
message += "<br>Vous subissez une Queue de Dragon";
|
||||
this.ajouterQueue();
|
||||
message += "<br>Vous subissez une Queue de Dragon: " + await this.ajouterQueue();
|
||||
}
|
||||
if (roll.isETotal) {
|
||||
message += "<br>A cause de votre échec total, vous subissez une deuxième Queue de Dragon !"
|
||||
this.ajouterQueue();
|
||||
message += "<br>A cause de votre échec total, vous subissez une deuxième Queue de Dragon: " + await this.ajouterQueue();
|
||||
}
|
||||
return message;
|
||||
}
|
||||
@ -694,7 +692,7 @@ export class RdDActor extends Actor {
|
||||
let total = new Roll("1d20").roll().total;
|
||||
if ( total <= refoulement.value ) {
|
||||
refoulement.value = 0;
|
||||
this.ajouterSouffle();
|
||||
this.ajouterSouffle({chat: true});
|
||||
ret = "souffle";
|
||||
}
|
||||
|
||||
@ -703,17 +701,20 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
ajouterSouffle() {
|
||||
async ajouterSouffle(options = {chat : false}) {
|
||||
let souffle = RdDRollTables.getSouffle();
|
||||
// ChatMessage.create({
|
||||
// title: "Souffle de Dragon",
|
||||
// content: this.name + " subit un Souffle de Dragon : " + souffle.name
|
||||
// });
|
||||
// this.actor.createOwnedItem(souffle);
|
||||
await this.createOwnedItem(souffle);
|
||||
if (options.chat){
|
||||
ChatMessage.create({
|
||||
whisper: ChatUtility.getWhisperRecipientsAndGMs( this.name ),
|
||||
content: this.name + " subit un Souffle de Dragon : " + souffle.name
|
||||
});
|
||||
}
|
||||
return souffle;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async ajouterQueue() {
|
||||
async ajouterQueue(options = {chat : false}) {
|
||||
// TODO: Déterminer si Thanatos a été utilisé? => laisser le joueur ne pas choisir Thanatos => choisir sa voie?
|
||||
let utiliseThanatos = false;
|
||||
let queue;
|
||||
@ -724,17 +725,14 @@ export class RdDActor extends Actor {
|
||||
else {
|
||||
queue = await RdDRollTables.getQueue();
|
||||
}
|
||||
/*
|
||||
// TODO: convertir la queue obtenue en nouvel item ...
|
||||
// ou bien l'ajouter à la liste spécifique => this.data.data.reve.queues
|
||||
this.createOwnedItem(queue);
|
||||
|
||||
ChatMessage.create({
|
||||
content: this.name + " subit un Queue de Dragon : " + queue.name
|
||||
});
|
||||
|
||||
return queue.name;
|
||||
*/
|
||||
await this.createOwnedItem(queue);
|
||||
if (options.chat){
|
||||
ChatMessage.create({
|
||||
whisper: ChatUtility.getWhisperRecipientsAndGMs( this.name ),
|
||||
content: this.name + " subit une Queue de Dragon : " + queue.name
|
||||
});
|
||||
}
|
||||
return queue;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -1313,6 +1311,10 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollCompetence( name ) {
|
||||
if (name == 'queue') {
|
||||
await this.ajouterQueue({chat: true});
|
||||
return;
|
||||
}
|
||||
let rollData = {
|
||||
competence: duplicate(this.getCompetence(name)),
|
||||
needSignificative : !this.isEntiteCauchemar() && this.data.data.sante.sonne.value
|
||||
|
@ -6,38 +6,46 @@ export class RdDRollTables {
|
||||
const index = await pack.getIndex();
|
||||
const entry = index.find(e => e.name === tableName);
|
||||
const table = await pack.getEntity(entry._id);
|
||||
const result = await table.draw({ displayChat: toChat });
|
||||
console.log("RdDRollTables", tableName, toChat, ":", result);
|
||||
return result;
|
||||
const draw = await table.draw({ displayChat: toChat });
|
||||
console.log("RdDRollTables", tableName, toChat, ":", draw);
|
||||
console.log("RdDRollTables", tableName, toChat, ":", draw.roll, draw.results);
|
||||
return draw;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async drawItemFromRollTable(tableName, toChat) {
|
||||
const draw = await RdDRollTables.genericGetTableResult(tableName, toChat);
|
||||
const drawnItemRef = draw.results.length > 0 ? draw.results[0] : undefined;
|
||||
const pack = game.packs.get(drawnItemRef.collection);
|
||||
return await pack.getEntity(drawnItemRef.resultId);
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
static async getSouffle(toChat = true) {
|
||||
return RdDRollTables.genericGetTableResult("Souffles de Dragon", toChat);
|
||||
return await RdDRollTables.drawItemFromRollTable("Souffles de Dragon", toChat);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async getQueue(toChat = true) {
|
||||
return RdDRollTables.genericGetTableResult("Queues de dragon", toChat);
|
||||
return await RdDRollTables.drawItemFromRollTable("Queues de dragon", toChat);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async getTete(toChat = true) {
|
||||
return RdDRollTables.genericGetTableResult("Têtes de Dragon pour haut-rêvants", toChat);
|
||||
return await RdDRollTables.drawItemFromRollTable("Têtes de Dragon pour haut-rêvants", toChat);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async getTeteHR(toChat = true) {
|
||||
return RdDRollTables.genericGetTableResult("Têtes de Dragon pour tous personnages", toChat);
|
||||
return await RdDRollTables.drawItemFromRollTable("Têtes de Dragon pour tous personnages", toChat);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async getOmbre(toChat = true) {
|
||||
return RdDRollTables.genericGetTableResult("Ombre de Thanatos", toChat);
|
||||
return await RdDRollTables.drawItemFromRollTable("Ombre de Thanatos", toChat);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async getTarot(toChat = true) {
|
||||
return RdDRollTables.genericGetTableResult("Tarot Draconique", toChat);
|
||||
return await RdDRollTables.drawItemFromRollTable("Tarot Draconique", toChat);
|
||||
}
|
||||
}
|
||||
|
@ -342,10 +342,9 @@ export class RdDTMRDialog extends Dialog {
|
||||
+ RdDResolutionTable.explain(rolled);
|
||||
|
||||
if (rolled.isETotal) {
|
||||
let souffle = await RdDRollTables.getSouffle();
|
||||
let souffle = await this.actor.ajouterSouffle({chat: false});
|
||||
explication += "<br>Vous avez fait un Echec Total. Vous subissez un Souffle de Dragon : " + souffle.name;
|
||||
msg2MJ += "<br>Et a reçu un Souffle de Dragon : " + souffle.name;
|
||||
this.actor.createOwnedItem(souffle);
|
||||
}
|
||||
if (rolled.isPart) {
|
||||
explication += "<br>Vous avez fait une Réussite Particulière";
|
||||
|
@ -526,18 +526,6 @@ export class TMRUtility {
|
||||
return { message: message, state: state };
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async genericGetTableResult( tableName, toChat)
|
||||
{
|
||||
let pack = game.packs.get("foundryvtt-reve-de-dragon.tables-diverses");
|
||||
await pack.getIndex();
|
||||
let entry = pack.index.find(e => e.name === tableName);
|
||||
let rollQueues = await pack.getEntity(entry._id);
|
||||
let result = await rollQueues.draw( { displayChat: toChat } );
|
||||
console.log("CAT", result);
|
||||
return result;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getTMRAleatoire()
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user