From 42bd63c999f511e0eea629d19db330c7c604c46c Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 12 Feb 2021 01:16:02 +0100 Subject: [PATCH] simplifications sur EffetsDraconiques MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ajout de methode tmrLabel pour les tooltips ajout de l'item en paramètre aux ajouts/suppressions ajout d'un 'sourceId' pour les casetmr liées à un souffle/queue/tête --- module/tmr/debordement.js | 2 +- module/tmr/draconique.js | 16 ++++++++++++---- module/tmr/effets-draconiques.js | 3 ++- module/tmr/fermeture-cites.js | 2 +- module/tmr/pont-impraticable.js | 2 +- module/tmr/present-cites.js | 10 +++++----- module/tmr/quete-eaux.js | 2 +- module/tmr/reserve-extensible.js | 2 +- module/tmr/terre-attache.js | 2 +- module/tmr/trou-noir.js | 2 +- template.json | 3 ++- 11 files changed, 28 insertions(+), 18 deletions(-) diff --git a/module/tmr/debordement.js b/module/tmr/debordement.js index c4c257b5..432f4b7f 100644 --- a/module/tmr/debordement.js +++ b/module/tmr/debordement.js @@ -13,7 +13,7 @@ export class Debordement extends Draconique { async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); } code() { return 'debordement' } - tooltip(linkData) { return `Débordement en ${TMRUtility.getTMR(linkData.data.coord).label}` } + tooltip(linkData) { return `Débordement en ${this.tmrLabel(linkData)}` } img() { return 'systems/foundryvtt-reve-de-dragon/icons/svg/wave.svg' } _createSprite(pixiTMR) { diff --git a/module/tmr/draconique.js b/module/tmr/draconique.js index 0dacd3c3..aa566371 100644 --- a/module/tmr/draconique.js +++ b/module/tmr/draconique.js @@ -1,3 +1,4 @@ +import { TMRUtility } from "../tmr-utility.js"; import { PixiTMR } from "./pixi-tmr.js"; const registeredEffects = [ @@ -14,6 +15,8 @@ export class Draconique static isTeteDragon(element) { return element.type == 'tete'; } static isQueueSouffle(it) { return Draconique.isQueueDragon(it) || Draconique.isSouffleDragon(it); } + tmrLabel(linkData) { return TMRUtility.getTMRLabel(linkData.data.coord); } + static register(draconique) { registeredEffects[draconique.code()] = draconique; if (draconique.img()) { @@ -48,10 +51,10 @@ export class Draconique * Méthode responsable de gérer une draconique (par exemple, ajouter des casetmr pour la fermeture des cités). * @param actor auquel la draconique est ajoutée */ - async onActorCreateOwned(actor) { + async onActorCreateOwned(actor, item) { return false; } - async onActorDeleteOwned(actor) { + async onActorDeleteOwned(actor, item) { return false; } /** @@ -108,10 +111,15 @@ export class Draconique return Draconique.isCaseTMR(it) && it.data.specific == this.code() && (coord ? it.data.coord == coord : true); } - async createCaseTmr(actor, label, tmr) { + find(list, coord = undefined) { + return list.find(c => this.isCase(c, coord)); + } + + + async createCaseTmr(actor, label, tmr, sourceId=undefined) { await actor.createOwnedItem({ name: label, type: 'casetmr', img: this.img(), _id: randomID(16), - data: { coord: tmr.coord, specific: this.code() } + data: { coord: tmr.coord, specific: this.code(), sourceid:sourceId } }); } diff --git a/module/tmr/effets-draconiques.js b/module/tmr/effets-draconiques.js index cec1edb3..b9745acb 100644 --- a/module/tmr/effets-draconiques.js +++ b/module/tmr/effets-draconiques.js @@ -45,7 +45,8 @@ export class EffetsDraconiques { /* -------------------------------------------- */ static isCaseInondee(caseTMR, coord) { - return EffetsDraconiques.debordement.isCase(caseTMR, coord) || EffetsDraconiques.pontImpraticable.isCase(caseTMR, coord); + return EffetsDraconiques.debordement.isCase(caseTMR, coord) || + EffetsDraconiques.pontImpraticable.isCase(caseTMR, coord); } static isCaseTrouNoir(caseTMR, coord) { diff --git a/module/tmr/fermeture-cites.js b/module/tmr/fermeture-cites.js index dc95bc37..0357c8ad 100644 --- a/module/tmr/fermeture-cites.js +++ b/module/tmr/fermeture-cites.js @@ -13,7 +13,7 @@ export class FermetureCites extends Draconique { async onActorCreateOwned(actor, item) { await this._fermerLesCites(actor); } code() { return 'fermeture' } - tooltip(linkData) { return `La ${TMRUtility.getTMR(linkData.data.coord).label} est fermée` } + tooltip(linkData) { return `La ${this.tmrLabel(linkData)} est fermée` } img() { return 'icons/svg/door-closed.svg' } _createSprite(pixiTMR) { diff --git a/module/tmr/pont-impraticable.js b/module/tmr/pont-impraticable.js index f9251742..1bd6ea94 100644 --- a/module/tmr/pont-impraticable.js +++ b/module/tmr/pont-impraticable.js @@ -14,7 +14,7 @@ export class PontImpraticable extends Draconique { async onActorDeleteOwned(actor, item) { await this._supprimerCaseTmr(actor); } code() { return 'pont-impraticable' } - tooltip(linkData) { return `${TMRUtility.getTMR(linkData.data.coord).label} impraticable` } + tooltip(linkData) { return `${this.tmrLabel(linkData)} impraticable` } img() { return 'systems/foundryvtt-reve-de-dragon/icons/svg/wave.svg' } _createSprite(pixiTMR) { diff --git a/module/tmr/present-cites.js b/module/tmr/present-cites.js index 105f7bba..4cb0135e 100644 --- a/module/tmr/present-cites.js +++ b/module/tmr/present-cites.js @@ -14,25 +14,25 @@ export class PresentCites extends Draconique { async onActorCreateOwned(actor, item) { await this._ajouterPresents(actor); } code() { return 'present-cites' } - tooltip(linkData) { return `La ${TMRUtility.getTMR(linkData.data.coord).label} a un présent` } + tooltip(linkData) { return `La ${this.tmrLabel(linkData)} a un présent` } img() { return 'systems/foundryvtt-reve-de-dragon/icons/svg/gift.svg' } _createSprite(pixiTMR) { return pixiTMR.sprite(this.code(), { - color: tmrColors.tetes, alpha: 0.7, taille: tmrConstants.third, decallage:tmrConstants.topRight + color: tmrColors.tetes, alpha: 0.7, taille: tmrConstants.third, decallage: tmrConstants.topRight }); } async _ajouterPresents(actor) { let existants = actor.data.items.filter(it => this.isCase(it)).map(it => it.data.coord); - if (existants.length >0 ) { + if (existants.length > 0) { ChatMessage.create({ - whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user), + whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), content: "Vous avez encore des présents dans des cités, vous devrez tirer une autre tête pour remplacer celle ci!" }) } - else{ + else { let cites = TMRUtility.filterTMR(it => it.type == 'cite'); for (let tmr of cites) { await this.createCaseTmr(actor, 'Présent: ' + tmr.label, tmr); diff --git a/module/tmr/quete-eaux.js b/module/tmr/quete-eaux.js index 481502c9..c0a67c79 100644 --- a/module/tmr/quete-eaux.js +++ b/module/tmr/quete-eaux.js @@ -12,7 +12,7 @@ export class QueteEaux extends Draconique { async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); } code() { return 'maitrisee' } - tooltip(linkData) { return `Quête des eaux, le ${TMRUtility.getTMR(linkData.data.coord).label} est maîtrisé` } + tooltip(linkData) { return `Quête des eaux, le ${this.tmrLabel(linkData)} est maîtrisé` } img() { return 'icons/svg/bridge.svg' } _createSprite(pixiTMR) { diff --git a/module/tmr/reserve-extensible.js b/module/tmr/reserve-extensible.js index 7fbce50f..47df6181 100644 --- a/module/tmr/reserve-extensible.js +++ b/module/tmr/reserve-extensible.js @@ -12,7 +12,7 @@ export class ReserveExtensible extends Draconique { async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); } code() { return 'reserve_extensible' } - tooltip(linkData) { return `Réserve extensible en ${TMRUtility.getTMR(linkData.data.coord).label} !` } + tooltip(linkData) { return `Réserve extensible en ${this.tmrLabel(linkData)} !` } img() { return 'icons/svg/chest.svg' } _createSprite(pixiTMR) { diff --git a/module/tmr/terre-attache.js b/module/tmr/terre-attache.js index 34416fec..e5f913b1 100644 --- a/module/tmr/terre-attache.js +++ b/module/tmr/terre-attache.js @@ -12,7 +12,7 @@ export class TerreAttache extends Draconique { async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); } code() { return 'attache' } - tooltip(linkData) { return `Terre d'attache en ${TMRUtility.getTMR(linkData.data.coord).label} !` } + tooltip(linkData) { return `Terre d'attache en ${this.tmrLabel(linkData)} !` } img() { return 'icons/svg/anchor.svg' } _createSprite(pixiTMR) { diff --git a/module/tmr/trou-noir.js b/module/tmr/trou-noir.js index 02637da1..79c97830 100644 --- a/module/tmr/trou-noir.js +++ b/module/tmr/trou-noir.js @@ -12,7 +12,7 @@ export class TrouNoir extends Draconique { async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); } code() { return 'trounoir' } - tooltip(linkData) { return `Trou noir en ${TMRUtility.getTMR(linkData.data.coord).label} !` } + tooltip(linkData) { return `Trou noir en ${this.tmrLabel(linkData)} !` } img() { return 'icons/svg/explosion.svg' } _createSprite(pixiTMR) { diff --git a/template.json b/template.json index 17852e84..7f976010 100644 --- a/template.json +++ b/template.json @@ -764,7 +764,8 @@ "type": "", "label": "", "specific": "", - "description": "" + "description": "", + "sourceid":"" }, "recettealchimique": { "but": "",