|
|
|
@ -92,43 +92,10 @@ export class EffetsDraconiques {
|
|
|
|
|
static isPresentCite(caseTMR, coord) {
|
|
|
|
|
return EffetsDraconiques.presentCites.isCase(caseTMR, coord);
|
|
|
|
|
}
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
static isMauvaiseRencontre(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => Draconique.isQueueSouffle(it) && it.name.toLowerCase().includes('mauvaise rencontre'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isMonteeLaborieuse(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => Draconique.isQueueSouffle(it) && it.name.toLowerCase().includes('montée laborieuse'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
static isFermetureCite(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => EffetsDraconiques.fermetureCites.match(it));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isPontImpraticable(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => EffetsDraconiques.pontImpraticable.match(it));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isDoubleResistanceFleuve(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => Draconique.isSouffleDragon(it) && it.name.toLowerCase().includes('résistance du fleuve'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isPeage(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => Draconique.isSouffleDragon(it) && it.name.toLowerCase().includes('péage'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isPeriple(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => EffetsDraconiques.periple.match(it));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isDesorientation(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => EffetsDraconiques.desorientation.match(it)); // TODO
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
static isSortImpossible(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it =>
|
|
|
|
|
static isSortImpossible(actor) {
|
|
|
|
|
return actor.data.items.find(it =>
|
|
|
|
|
EffetsDraconiques.conquete.match(it) ||
|
|
|
|
|
EffetsDraconiques.periple.match(it) ||
|
|
|
|
|
EffetsDraconiques.urgenceDraconique.match(it) ||
|
|
|
|
@ -136,57 +103,57 @@ export class EffetsDraconiques {
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isSortReserveImpossible(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it =>
|
|
|
|
|
static isSortReserveImpossible(actor) {
|
|
|
|
|
return actor.data.items.find(it =>
|
|
|
|
|
EffetsDraconiques.conquete.match(it) ||
|
|
|
|
|
EffetsDraconiques.periple.match(it) ||
|
|
|
|
|
EffetsDraconiques.pelerinage.match(it)
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isConquete(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => EffetsDraconiques.conquete.match(it));
|
|
|
|
|
static isDonDoubleReve(actor) {
|
|
|
|
|
return actor.data.items.find(it => Draconique.isTeteDragon(it) && it.name == 'Don de double-rêve');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isPelerinage(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => EffetsDraconiques.pelerinage.match(it));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static countInertieDraconique(item) {
|
|
|
|
|
return EffetsDraconiques.count(item, it => Draconique.isQueueDragon(it) && it.name.toLowerCase().includes('inertie draconique'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isUrgenceDraconique(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => EffetsDraconiques.urgenceDraconique.match(it));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
static isDonDoubleReve(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => Draconique.isTeteDragon(it) && it.name == 'Don de double-rêve');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isConnaissanceFleuve(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => Draconique.isTeteDragon(it) && it.name.toLowerCase().includes('connaissance du fleuve'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isReserveEnSecurite(item) {
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => Draconique.isTeteDragon(it) && it.name.toLowerCase().includes(' en sécurité'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isDeplacementAccelere(item) {
|
|
|
|
|
item = Misc.data(item);
|
|
|
|
|
return EffetsDraconiques.isMatching(item, it => Draconique.isTeteDragon(it) && it.name.toLowerCase().includes(' déplacement accéléré'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isMatching(item, matcher) {
|
|
|
|
|
return EffetsDraconiques.toItems(item).find(matcher);
|
|
|
|
|
}
|
|
|
|
|
static count(item, matcher) {
|
|
|
|
|
return EffetsDraconiques.toItems(item).filter(matcher).length;
|
|
|
|
|
static isConnaissanceFleuve(actor) {
|
|
|
|
|
return actor.data.items.find(it => Draconique.isTeteDragon(it) && it.name.toLowerCase().includes('connaissance du fleuve'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static toItems(item) {
|
|
|
|
|
return (item?.documentName === 'Actor') ? item.data.items : (item?.documentName === 'Item') ? [Misc.data(item)] : [];
|
|
|
|
|
static isReserveEnSecurite(actor) {
|
|
|
|
|
return actor.data.items.find(it => Draconique.isTeteDragon(it) && it.name.toLowerCase().includes(' en sécurité'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isDeplacementAccelere(actor) {
|
|
|
|
|
return actor.data.items.find(it => Draconique.isTeteDragon(it) && it.name.toLowerCase().includes(' déplacement accéléré'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isDoubleResistanceFleuve(actor) {
|
|
|
|
|
return actor.data.items.find(it => Draconique.isSouffleDragon(it) && it.name.toLowerCase().includes('résistance du fleuve'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static countInertieDraconique(actor) {
|
|
|
|
|
return actor.data.items.filter(it => Draconique.isQueueDragon(it) && it.name.toLowerCase().includes('inertie draconique')).length;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static countMonteeLaborieuse(actor) {
|
|
|
|
|
return actor.data.items.filter(it => Draconique.isQueueSouffle(it) && it.name.toLowerCase().includes('montée laborieuse')).length;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static mauvaiseRencontre(actor) {
|
|
|
|
|
return actor.data.items.find(it => Draconique.isQueueSouffle(it) && it.name.toLowerCase().includes('mauvaise rencontre'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isPontImpraticable(actor) {
|
|
|
|
|
return actor.data.items.find(it => EffetsDraconiques.pontImpraticable.match(it));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isUrgenceDraconique(actor) {
|
|
|
|
|
return actor.data.items.find(it => EffetsDraconiques.urgenceDraconique.match(it));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static isPeage(actor) {
|
|
|
|
|
return actor.data.items.find(it => Draconique.isSouffleDragon(it) && it.name.toLowerCase().includes('péage'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|