Big WIP...
This commit is contained in:
@ -32,14 +32,14 @@ export class Conquete extends Draconique {
|
||||
}
|
||||
|
||||
async _creerConquete(actor, queue) {
|
||||
let existants = actor.data.items.filter(it => this.isCase(it)).map(it => Misc.data(it).data.coord);
|
||||
let existants = actor.items.filter(it => this.isCase(it)).map(it => it.system.coord);
|
||||
let possibles = TMRUtility.filterTMR(tmr => !TMRUtility.isCaseHumide(tmr) && !existants.includes(tmr.coord));
|
||||
let conquete = await RdDDice.rollOneOf(possibles);
|
||||
await this.createCaseTmr(actor, 'Conquête: ' + conquete.label, conquete, queue.id);
|
||||
}
|
||||
|
||||
async onActorDeleteCaseTmr(actor, casetmr) {
|
||||
await actor.deleteEmbeddedDocuments('Item', [casetmr.data.sourceid]);
|
||||
await actor.deleteEmbeddedDocuments('Item', [casetmr.system.sourceid]);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ export class Debordement extends Draconique {
|
||||
match(item) { return Draconique.isSouffleDragon(item) && Grammar.toLowerCaseNoAccent(item.name).includes('debordement'); }
|
||||
manualMessage() { return false }
|
||||
async onActorCreateOwned(actor, souffle) {
|
||||
const existants = actor.data.items.filter(it => this.isCase(it)).map(it => it.data.coord);
|
||||
const existants = actor.items.filter(it => this.isCase(it)).map(it => it.system.coord);
|
||||
const tmr = await TMRUtility.getTMRAleatoire(it => !(TMRUtility.isCaseHumide(it) || existants.includes(it.coord)));
|
||||
await this.createCaseTmr(actor, 'Debordement: ' + tmr.label, tmr, souffle.id);
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ export class Desorientation extends Draconique {
|
||||
}
|
||||
|
||||
_typesPossibles(actor) {
|
||||
const dejaDesorientes = Misc.distinct(actor.data.items.filter(it => this.isCase(it)).map(it => it.type));
|
||||
const dejaDesorientes = Misc.distinct(actor.items.filter(it => this.isCase(it)).map(it => it.type));
|
||||
return Object.keys(TMRType).filter(it => !dejaDesorientes.includes(it));
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ export class Desorientation extends Draconique {
|
||||
}
|
||||
|
||||
async _creerCasesTmr(actor, type, souffle) {
|
||||
const existants = actor.data.items.filter(it => this.isCase(it)).map(it => it.data.coord);
|
||||
const existants = actor.items.filter(it => this.isCase(it)).map(it => it.system.coord);
|
||||
let tmrs = TMRUtility.filterTMR(it => it.type == type && !existants.includes(it.coord));
|
||||
for (let tmr of tmrs) {
|
||||
await this.createCaseTmr(actor, 'Désorientation: ' + tmr.label, tmr, souffle.id);
|
||||
|
@ -15,7 +15,7 @@ export class Draconique {
|
||||
static isTeteDragon(itemData) { return itemData.type == 'tete'; }
|
||||
static isQueueSouffle(itemData) { return Draconique.isQueueDragon(itemData) || Draconique.isSouffleDragon(itemData); }
|
||||
|
||||
tmrLabel(linkData) { return TMRUtility.getTMRLabel(linkData.data.coord); }
|
||||
tmrLabel(linkData) { return TMRUtility.getTMRLabel(linkData.system.coord); }
|
||||
|
||||
static register(draconique) {
|
||||
registeredEffects[draconique.code()] = draconique;
|
||||
@ -38,7 +38,7 @@ export class Draconique {
|
||||
* @returns true si l'item correspond
|
||||
*/
|
||||
match(item) {
|
||||
const itemData = Misc.data(item);
|
||||
const itemData = item;
|
||||
return Draconique.isQueueDragon(itemData) || Draconique.isSouffleDragon(itemData) || Draconique.isTeteDragon(itemData);
|
||||
}
|
||||
|
||||
@ -116,34 +116,32 @@ export class Draconique {
|
||||
* @param {*} coord les coordonnées d'une case. Si undefined toute case du type correspondra,
|
||||
*/
|
||||
isCase(item, coord = undefined) {
|
||||
const itemData = Misc.data(item);
|
||||
return Draconique.isCaseTMR(itemData) && itemData.data.specific == this.code() && (coord ? itemData.data.coord == coord : true);
|
||||
return Draconique.isCaseTMR(item) && item.system.specific == this.code() && (coord ? item.system.coord == coord : true);
|
||||
}
|
||||
|
||||
find(list, coord = undefined) {
|
||||
return list.find(c => this.isCase(Misc.data(c), coord));
|
||||
return list.find(c => this.isCase(c, coord));
|
||||
}
|
||||
|
||||
async createCaseTmr(actor, label, tmr, sourceId = undefined) {
|
||||
const casetmrData = {
|
||||
name: label, type: 'casetmr', img: this.img(),
|
||||
data: { coord: tmr.coord, specific: this.code(), sourceid: sourceId }
|
||||
system: { coord: tmr.coord, specific: this.code(), sourceid: sourceId }
|
||||
};
|
||||
await actor.createEmbeddedDocuments('Item', [casetmrData]);
|
||||
}
|
||||
|
||||
async deleteCasesTmr(actor, draconique) {
|
||||
let caseTmrs = actor.data.items.filter(it => this.isCaseForSource(it, draconique));
|
||||
let caseTmrs = actor.items.filter(it => this.isCaseForSource(it, draconique));
|
||||
await actor.deleteEmbeddedDocuments('Item', caseTmrs.map(it => it.id));
|
||||
}
|
||||
|
||||
isCaseForSource(item, draconique) {
|
||||
const itemData = Misc.data(item);
|
||||
return Draconique.isCaseTMR(itemData) && itemData.data.specific == this.code() && itemData.data.sourceid == draconique.id;
|
||||
return Draconique.isCaseTMR(item) && item.system.specific == this.code() && item.system.sourceid == draconique.id;
|
||||
}
|
||||
|
||||
async onVisiteSupprimer(actor, tmr, onRemoveToken) {
|
||||
let existants = actor.data.items.filter(it => this.isCase(it, tmr.coord));
|
||||
let existants = actor.items.filter(it => this.isCase(it, tmr.coord));
|
||||
await actor.deleteEmbeddedDocuments('Item', existants.map(it => it.id));
|
||||
for (let casetmr of existants) {
|
||||
onRemoveToken(tmr, casetmr);
|
||||
|
@ -95,7 +95,7 @@ export class EffetsDraconiques {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static isSortImpossible(actor) {
|
||||
return actor.data.items.find(it =>
|
||||
return actor.items.find(it =>
|
||||
EffetsDraconiques.conquete.match(it) ||
|
||||
EffetsDraconiques.periple.match(it) ||
|
||||
EffetsDraconiques.urgenceDraconique.match(it) ||
|
||||
@ -104,7 +104,7 @@ export class EffetsDraconiques {
|
||||
}
|
||||
|
||||
static isSortReserveImpossible(actor) {
|
||||
return actor.data.items.find(it =>
|
||||
return actor.items.find(it =>
|
||||
EffetsDraconiques.conquete.match(it) ||
|
||||
EffetsDraconiques.periple.match(it) ||
|
||||
EffetsDraconiques.pelerinage.match(it)
|
||||
@ -112,7 +112,7 @@ export class EffetsDraconiques {
|
||||
}
|
||||
|
||||
static filterItems(actor, filter, name) {
|
||||
return actor.data.items.filter(filter)
|
||||
return actor.filter(filter)
|
||||
.filter(it => Grammar.includesLowerCaseNoAccent(it.name, name));
|
||||
}
|
||||
|
||||
@ -150,11 +150,11 @@ export class EffetsDraconiques {
|
||||
}
|
||||
|
||||
static isPontImpraticable(actor) {
|
||||
return actor.data.items.find(it => EffetsDraconiques.pontImpraticable.match(it));
|
||||
return actor.items.find(it => EffetsDraconiques.pontImpraticable.match(it));
|
||||
}
|
||||
|
||||
static isUrgenceDraconique(actor) {
|
||||
return actor.data.items.find(it => EffetsDraconiques.urgenceDraconique.match(it));
|
||||
return actor.items.find(it => EffetsDraconiques.urgenceDraconique.match(it));
|
||||
}
|
||||
|
||||
static isPeage(actor) {
|
||||
|
@ -30,7 +30,7 @@ export class FermetureCites extends Draconique {
|
||||
}
|
||||
|
||||
async _fermerLesCites(actor, souffle) {
|
||||
let existants = actor.data.items.filter(it => this.isCase(it)).map(it => it.data.coord);
|
||||
let existants = actor.items.filter(it => this.isCase(it)).map(it => it.system.coord);
|
||||
let ouvertes = TMRUtility.filterTMR(it => it.type == 'cite' && !existants.includes(it.coord));
|
||||
for (let tmr of ouvertes) {
|
||||
await this.createCaseTmr(actor, 'Fermeture: ' + tmr.label, tmr, souffle.id);
|
||||
|
@ -33,7 +33,7 @@ export class Pelerinage extends Draconique {
|
||||
}
|
||||
|
||||
async onActorDeleteCaseTmr(actor, casetmr) {
|
||||
await actor.deleteEmbeddedDocuments('Item', [casetmr.data.sourceid]);
|
||||
await actor.deleteEmbeddedDocuments('Item', [casetmr.system.sourceid]);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ export class PresentCites extends Draconique {
|
||||
}
|
||||
|
||||
async _ajouterPresents(actor, tete) {
|
||||
let existants = actor.data.items.filter(it => this.isCase(it)).map(it => it.data.coord);
|
||||
let existants = actor.items.filter(it => this.isCase(it)).map(it => it.system.coord);
|
||||
if (existants.length > 0) {
|
||||
ChatMessage.create({
|
||||
whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name),
|
||||
|
@ -12,8 +12,8 @@ export class ReserveExtensible extends Draconique {
|
||||
match(item) { return Draconique.isTeteDragon(item) && Grammar.toLowerCaseNoAccent(item.name).includes("reserve extensible"); }
|
||||
manualMessage() { return "Vous pouvez re-configurer votre Réserve extensible" }
|
||||
async onActorCreateOwned(actor, tete) {
|
||||
const existants = actor.data.items.filter(it => this.isCase(it)).map(it => it.data.coord);
|
||||
const tmr = await TMRUtility.getTMRAleatoire(it => !(it.type == 'fleuve' || existants.includes(it.coord)));
|
||||
const existants = actor.items.filter(it => this.isCase(it)).map(it => it.system.coord);
|
||||
const tmr = await TMRUtility.getTMRAleatoire(it => !(it.type == 'fleuve' || existants.includes(it.system.coord)));
|
||||
await this.createCaseTmr(actor, "Nouvelle Réserve extensible", tmr, tete.id);
|
||||
}
|
||||
|
||||
|
@ -13,8 +13,8 @@ export class TrouNoir extends Draconique {
|
||||
manualMessage() { return false }
|
||||
|
||||
async onActorCreateOwned(actor, souffle) {
|
||||
const existants = actor.data.items.filter(it => this.isCase(it)).map(it => it.data.coord);
|
||||
const tmr = await TMRUtility.getTMRAleatoire(it => !(TMRUtility.isCaseHumide(it) || existants.includes(it.coord)));
|
||||
const existants = actor.items.filter(it => this.isCase(it)).map(it => it.system.coord);
|
||||
const tmr = await TMRUtility.getTMRAleatoire(it => !(TMRUtility.isCaseHumide(it) || existants.includes(it.system.coord)));
|
||||
await this.createCaseTmr(actor, 'Trou noir: ' + tmr.label, tmr, souffle.id);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user