simplifications sur EffetsDraconiques
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
This commit is contained in:
parent
1cb4a7dbf5
commit
42bd63c999
@ -13,7 +13,7 @@ export class Debordement extends Draconique {
|
|||||||
async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); }
|
async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); }
|
||||||
|
|
||||||
code() { return 'debordement' }
|
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' }
|
img() { return 'systems/foundryvtt-reve-de-dragon/icons/svg/wave.svg' }
|
||||||
|
|
||||||
_createSprite(pixiTMR) {
|
_createSprite(pixiTMR) {
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { TMRUtility } from "../tmr-utility.js";
|
||||||
import { PixiTMR } from "./pixi-tmr.js";
|
import { PixiTMR } from "./pixi-tmr.js";
|
||||||
|
|
||||||
const registeredEffects = [
|
const registeredEffects = [
|
||||||
@ -14,6 +15,8 @@ export class Draconique
|
|||||||
static isTeteDragon(element) { return element.type == 'tete'; }
|
static isTeteDragon(element) { return element.type == 'tete'; }
|
||||||
static isQueueSouffle(it) { return Draconique.isQueueDragon(it) || Draconique.isSouffleDragon(it); }
|
static isQueueSouffle(it) { return Draconique.isQueueDragon(it) || Draconique.isSouffleDragon(it); }
|
||||||
|
|
||||||
|
tmrLabel(linkData) { return TMRUtility.getTMRLabel(linkData.data.coord); }
|
||||||
|
|
||||||
static register(draconique) {
|
static register(draconique) {
|
||||||
registeredEffects[draconique.code()] = draconique;
|
registeredEffects[draconique.code()] = draconique;
|
||||||
if (draconique.img()) {
|
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).
|
* 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
|
* @param actor auquel la draconique est ajoutée
|
||||||
*/
|
*/
|
||||||
async onActorCreateOwned(actor) {
|
async onActorCreateOwned(actor, item) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
async onActorDeleteOwned(actor) {
|
async onActorDeleteOwned(actor, item) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -108,10 +111,15 @@ export class Draconique
|
|||||||
return Draconique.isCaseTMR(it) && it.data.specific == this.code() && (coord ? it.data.coord == coord : true);
|
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({
|
await actor.createOwnedItem({
|
||||||
name: label, type: 'casetmr', img: this.img(), _id: randomID(16),
|
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 }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +45,8 @@ export class EffetsDraconiques {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static isCaseInondee(caseTMR, coord) {
|
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) {
|
static isCaseTrouNoir(caseTMR, coord) {
|
||||||
|
@ -13,7 +13,7 @@ export class FermetureCites extends Draconique {
|
|||||||
async onActorCreateOwned(actor, item) { await this._fermerLesCites(actor); }
|
async onActorCreateOwned(actor, item) { await this._fermerLesCites(actor); }
|
||||||
|
|
||||||
code() { return 'fermeture' }
|
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' }
|
img() { return 'icons/svg/door-closed.svg' }
|
||||||
|
|
||||||
_createSprite(pixiTMR) {
|
_createSprite(pixiTMR) {
|
||||||
|
@ -14,7 +14,7 @@ export class PontImpraticable extends Draconique {
|
|||||||
async onActorDeleteOwned(actor, item) { await this._supprimerCaseTmr(actor); }
|
async onActorDeleteOwned(actor, item) { await this._supprimerCaseTmr(actor); }
|
||||||
|
|
||||||
code() { return 'pont-impraticable' }
|
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' }
|
img() { return 'systems/foundryvtt-reve-de-dragon/icons/svg/wave.svg' }
|
||||||
|
|
||||||
_createSprite(pixiTMR) {
|
_createSprite(pixiTMR) {
|
||||||
|
@ -14,25 +14,25 @@ export class PresentCites extends Draconique {
|
|||||||
async onActorCreateOwned(actor, item) { await this._ajouterPresents(actor); }
|
async onActorCreateOwned(actor, item) { await this._ajouterPresents(actor); }
|
||||||
|
|
||||||
code() { return 'present-cites' }
|
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' }
|
img() { return 'systems/foundryvtt-reve-de-dragon/icons/svg/gift.svg' }
|
||||||
|
|
||||||
_createSprite(pixiTMR) {
|
_createSprite(pixiTMR) {
|
||||||
return pixiTMR.sprite(this.code(),
|
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) {
|
async _ajouterPresents(actor) {
|
||||||
let existants = actor.data.items.filter(it => this.isCase(it)).map(it => it.data.coord);
|
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({
|
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!"
|
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');
|
let cites = TMRUtility.filterTMR(it => it.type == 'cite');
|
||||||
for (let tmr of cites) {
|
for (let tmr of cites) {
|
||||||
await this.createCaseTmr(actor, 'Présent: ' + tmr.label, tmr);
|
await this.createCaseTmr(actor, 'Présent: ' + tmr.label, tmr);
|
||||||
|
@ -12,7 +12,7 @@ export class QueteEaux extends Draconique {
|
|||||||
async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); }
|
async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); }
|
||||||
|
|
||||||
code() { return 'maitrisee' }
|
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' }
|
img() { return 'icons/svg/bridge.svg' }
|
||||||
|
|
||||||
_createSprite(pixiTMR) {
|
_createSprite(pixiTMR) {
|
||||||
|
@ -12,7 +12,7 @@ export class ReserveExtensible extends Draconique {
|
|||||||
async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); }
|
async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); }
|
||||||
|
|
||||||
code() { return 'reserve_extensible' }
|
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' }
|
img() { return 'icons/svg/chest.svg' }
|
||||||
|
|
||||||
_createSprite(pixiTMR) {
|
_createSprite(pixiTMR) {
|
||||||
|
@ -12,7 +12,7 @@ export class TerreAttache extends Draconique {
|
|||||||
async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); }
|
async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); }
|
||||||
|
|
||||||
code() { return 'attache' }
|
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' }
|
img() { return 'icons/svg/anchor.svg' }
|
||||||
|
|
||||||
_createSprite(pixiTMR) {
|
_createSprite(pixiTMR) {
|
||||||
|
@ -12,7 +12,7 @@ export class TrouNoir extends Draconique {
|
|||||||
async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); }
|
async onActorCreateOwned(actor, item) { await this._creerCaseTmr(actor); }
|
||||||
|
|
||||||
code() { return 'trounoir' }
|
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' }
|
img() { return 'icons/svg/explosion.svg' }
|
||||||
|
|
||||||
_createSprite(pixiTMR) {
|
_createSprite(pixiTMR) {
|
||||||
|
@ -764,7 +764,8 @@
|
|||||||
"type": "",
|
"type": "",
|
||||||
"label": "",
|
"label": "",
|
||||||
"specific": "",
|
"specific": "",
|
||||||
"description": ""
|
"description": "",
|
||||||
|
"sourceid":""
|
||||||
},
|
},
|
||||||
"recettealchimique": {
|
"recettealchimique": {
|
||||||
"but": "",
|
"but": "",
|
||||||
|
Loading…
Reference in New Issue
Block a user