From db448028f9609add52011256a24297f340e9c1f8 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Thu, 10 Nov 2022 00:25:51 +0100 Subject: [PATCH] =?UTF-8?q?Gestion=20de=20la=20t=C3=AAte=20Augmentation=20?= =?UTF-8?q?de=20seuil?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- module/actor.js | 10 ++++++---- module/tmr/augmentation-seuil.js | 18 ++++++++++++++++++ module/tmr/effets-draconiques.js | 7 +++++++ 3 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 module/tmr/augmentation-seuil.js diff --git a/module/actor.js b/module/actor.js index b0e46eb0..20e3a492 100644 --- a/module/actor.js +++ b/module/actor.js @@ -1556,11 +1556,13 @@ export class RdDActor extends Actor { } /* -------------------------------------------- */ - async updatePointDeSeuil(value = 1) { + async regainPointDeSeuil() { const seuil = Misc.toInt(this.system.reve.seuil.value); - const reve = Misc.toInt(this.system.carac.reve.value); - if (seuil < reve) { - await this.setPointsDeSeuil(Math.min(seuil + value, reve)); + const seuilMax = Misc.toInt(this.system.carac.reve.value) + + 2 * EffetsDraconiques.countAugmentationSeuil(this); + + if (seuil < seuilMax) { + await this.setPointsDeSeuil(Math.min(seuil + 1, seuilMax)); } } diff --git a/module/tmr/augmentation-seuil.js b/module/tmr/augmentation-seuil.js new file mode 100644 index 00000000..bf2c487f --- /dev/null +++ b/module/tmr/augmentation-seuil.js @@ -0,0 +1,18 @@ +import { Grammar } from "../grammar.js"; +import { Draconique } from "./draconique.js"; +import { Misc } from "../misc.js"; + +export class AugmentationSeuil extends Draconique { + + constructor() { + super(); + } + + type() { return 'tete' } + match(item) { return Draconique.isTeteDragon(item) && Grammar.toLowerCaseNoAccent(item.name).includes('augmentation du seuil de reve'); } + manualMessage() { return false } + async onActorCreateOwned(actor, tete) { + const seuil = Misc.toInt(actor.system.reve.seuil.value) + 2; + await actor.update({ "system.reve.seuil.value": seuil }) + } +} diff --git a/module/tmr/effets-draconiques.js b/module/tmr/effets-draconiques.js index 398ae930..f1674a31 100644 --- a/module/tmr/effets-draconiques.js +++ b/module/tmr/effets-draconiques.js @@ -17,6 +17,7 @@ import { Pelerinage } from "./pelerinage.js"; import { Periple } from "./periple.js"; import { UrgenceDraconique } from "./urgence-draconique.js"; import { Grammar } from "../grammar.js"; +import { AugmentationSeuil } from "./augmentation-seuil.js"; export class EffetsDraconiques { @@ -37,6 +38,7 @@ export class EffetsDraconiques { static pelerinage = new Pelerinage(); static periple = new Periple(); static urgenceDraconique = new UrgenceDraconique(); + static augmentationSeuil = new AugmentationSeuil(); static init() { Draconique.register(EffetsDraconiques.carteTmr); @@ -56,6 +58,7 @@ export class EffetsDraconiques { Draconique.register(EffetsDraconiques.pelerinage); Draconique.register(EffetsDraconiques.periple); Draconique.register(EffetsDraconiques.urgenceDraconique); + Draconique.register(EffetsDraconiques.augmentationSeuil) } /* -------------------------------------------- */ @@ -116,6 +119,10 @@ export class EffetsDraconiques { .filter(it => Grammar.includesLowerCaseNoAccent(it.name, name)); } + static countAugmentationSeuil(actor) { + return EffetsDraconiques.filterItems(actor, Draconique.isTeteDragon, 'Augmentation du seuil de rêve').length; + } + static isDonDoubleReve(actor) { return EffetsDraconiques.filterItems(actor, Draconique.isTeteDragon, 'Don de double-rêve').length>0; }