Merge branch 'v1.5-fix-draconique-double' into 'v1.5'
Fix régression sur les effets draconiques doubles See merge request LeRatierBretonnien/foundryvtt-reve-de-dragon!319
This commit is contained in:
commit
b8d6c2daac
@ -68,6 +68,9 @@ export class RdDActorVehiculeSheet extends ActorSheet {
|
||||
return formData;
|
||||
}
|
||||
|
||||
async computeMalusArmure() {
|
||||
// pas de malus armure
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
async _onDropItem(event, dragData) {
|
||||
const destItemId = $(event.target)?.closest('.item').attr('data-item-id');
|
||||
|
@ -2403,8 +2403,7 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async checkSoufflePeage(tmr) {
|
||||
let peage = this.data.items.find(item => EffetsDraconiques.isPeage(item));
|
||||
if (peage && (tmr.type == 'pont' || tmr.type == 'cite')) {
|
||||
if ((tmr.type == 'pont' || tmr.type == 'cite') && EffetsDraconiques.isPeage(actor)) {
|
||||
await this.reveActuelIncDec(-1);
|
||||
ChatMessage.create({
|
||||
content: "Vous êtes sous le coup d'un Péage : l'entrée sur cette case vous a coûté 1 Point de Rêve (déduit automatiquement).",
|
||||
@ -3588,7 +3587,7 @@ export class RdDActor extends Actor {
|
||||
let monnaies = Monnaie.filtrerMonnaies(this.data.items);
|
||||
if (monnaies.length < 4) {
|
||||
ui.notifications.error("Problème de monnaies manquantes, impossible de payer correctement!")
|
||||
return 0;
|
||||
throw "Problème de monnaies manquantes, impossible de payer correctement!";
|
||||
}
|
||||
return monnaies.map(m => Misc.templateData(m))
|
||||
.map(tpl => tpl.valeur_deniers * Number(tpl.quantite))
|
||||
|
@ -19,6 +19,10 @@ export class Grammar {
|
||||
return word.match(/^[aeiouy]/i)
|
||||
}
|
||||
|
||||
|
||||
static includesLowerCaseNoAccent(value, content) {
|
||||
return Grammar.toLowerCaseNoAccent(value).includes(Grammar.toLowerCaseNoAccent(content));
|
||||
}
|
||||
/* -------------------------------------------- */
|
||||
static toLowerCaseNoAccent(words) {
|
||||
return words?.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "") ?? words;
|
||||
|
@ -16,7 +16,7 @@ import { Conquete } from "./conquete.js";
|
||||
import { Pelerinage } from "./pelerinage.js";
|
||||
import { Periple } from "./periple.js";
|
||||
import { UrgenceDraconique } from "./urgence-draconique.js";
|
||||
import { Misc } from "../misc.js";
|
||||
import { Grammar } from "../grammar.js";
|
||||
|
||||
|
||||
export class EffetsDraconiques {
|
||||
@ -111,36 +111,42 @@ export class EffetsDraconiques {
|
||||
);
|
||||
}
|
||||
|
||||
static filterItems(actor, filter, name) {
|
||||
return actor.data.items.filter(filter)
|
||||
.filter(it => Grammar.includesLowerCaseNoAccent(it.name, name));
|
||||
}
|
||||
|
||||
static isDonDoubleReve(actor) {
|
||||
return actor.data.items.find(it => Draconique.isTeteDragon(it) && it.name == 'Don de double-rêve');
|
||||
return EffetsDraconiques.filterItems(actor, Draconique.isTeteDragon, 'Don de double-rêve').length>0;
|
||||
}
|
||||
|
||||
static isConnaissanceFleuve(actor) {
|
||||
return actor.data.items.find(it => Draconique.isTeteDragon(it) && it.name.toLowerCase().includes('connaissance du fleuve'));
|
||||
return EffetsDraconiques.filterItems(actor, Draconique.isTeteDragon, 'connaissance du fleuve').length>0;
|
||||
}
|
||||
|
||||
static isReserveEnSecurite(actor) {
|
||||
return actor.data.items.find(it => Draconique.isTeteDragon(it) && it.name.toLowerCase().includes(' en sécurité'));
|
||||
return EffetsDraconiques.filterItems(actor, Draconique.isTeteDragon, 'réserve en sécurité').length>0;
|
||||
}
|
||||
|
||||
static isDeplacementAccelere(actor) {
|
||||
return actor.data.items.find(it => Draconique.isTeteDragon(it) && it.name.toLowerCase().includes(' déplacement accéléré'));
|
||||
return EffetsDraconiques.filterItems(actor, Draconique.isTeteDragon, ' déplacement accéléré').length>0;
|
||||
}
|
||||
|
||||
static isDoubleResistanceFleuve(actor) {
|
||||
return actor.data.items.find(it => Draconique.isSouffleDragon(it) && it.name.toLowerCase().includes('résistance du fleuve'));
|
||||
return EffetsDraconiques.filterItems(actor, Draconique.isSouffleDragon, 'résistance du fleuve').length>0;
|
||||
}
|
||||
|
||||
static countInertieDraconique(actor) {
|
||||
return actor.data.items.filter(it => Draconique.isQueueDragon(it) && it.name.toLowerCase().includes('inertie draconique')).length;
|
||||
return EffetsDraconiques.filterItems(actor, Draconique.isQueueDragon, 'inertie draconique').length;
|
||||
}
|
||||
|
||||
static countMonteeLaborieuse(actor) {
|
||||
return actor.data.items.filter(it => Draconique.isQueueSouffle(it) && it.name.toLowerCase().includes('montée laborieuse')).length;
|
||||
return EffetsDraconiques.filterItems(actor, Draconique.isQueueSouffle, 'montée laborieuse').length;
|
||||
}
|
||||
|
||||
static mauvaiseRencontre(actor) {
|
||||
return actor.data.items.find(it => Draconique.isQueueSouffle(it) && it.name.toLowerCase().includes('mauvaise rencontre'));
|
||||
const mauvaisesRencontres = EffetsDraconiques.filterItems(actor, Draconique.isQueueSouffle, 'mauvaise rencontre');
|
||||
return mauvaisesRencontres.length>0 ? mauvaisesRencontres[0] : undefined;
|
||||
}
|
||||
|
||||
static isPontImpraticable(actor) {
|
||||
@ -152,7 +158,7 @@ export class EffetsDraconiques {
|
||||
}
|
||||
|
||||
static isPeage(actor) {
|
||||
return actor.data.items.find(it => Draconique.isSouffleDragon(it) && it.name.toLowerCase().includes('péage'));
|
||||
return EffetsDraconiques.filterItems(actor, Draconique.isSouffleDragon, 'péage').length > 0;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user