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;
|
return formData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async computeMalusArmure() {
|
||||||
|
// pas de malus armure
|
||||||
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async _onDropItem(event, dragData) {
|
async _onDropItem(event, dragData) {
|
||||||
const destItemId = $(event.target)?.closest('.item').attr('data-item-id');
|
const destItemId = $(event.target)?.closest('.item').attr('data-item-id');
|
||||||
|
@ -2403,8 +2403,7 @@ export class RdDActor extends Actor {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async checkSoufflePeage(tmr) {
|
async checkSoufflePeage(tmr) {
|
||||||
let peage = this.data.items.find(item => EffetsDraconiques.isPeage(item));
|
if ((tmr.type == 'pont' || tmr.type == 'cite') && EffetsDraconiques.isPeage(actor)) {
|
||||||
if (peage && (tmr.type == 'pont' || tmr.type == 'cite')) {
|
|
||||||
await this.reveActuelIncDec(-1);
|
await this.reveActuelIncDec(-1);
|
||||||
ChatMessage.create({
|
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).",
|
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);
|
let monnaies = Monnaie.filtrerMonnaies(this.data.items);
|
||||||
if (monnaies.length < 4) {
|
if (monnaies.length < 4) {
|
||||||
ui.notifications.error("Problème de monnaies manquantes, impossible de payer correctement!")
|
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))
|
return monnaies.map(m => Misc.templateData(m))
|
||||||
.map(tpl => tpl.valeur_deniers * Number(tpl.quantite))
|
.map(tpl => tpl.valeur_deniers * Number(tpl.quantite))
|
||||||
|
@ -19,6 +19,10 @@ export class Grammar {
|
|||||||
return word.match(/^[aeiouy]/i)
|
return word.match(/^[aeiouy]/i)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static includesLowerCaseNoAccent(value, content) {
|
||||||
|
return Grammar.toLowerCaseNoAccent(value).includes(Grammar.toLowerCaseNoAccent(content));
|
||||||
|
}
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static toLowerCaseNoAccent(words) {
|
static toLowerCaseNoAccent(words) {
|
||||||
return words?.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "") ?? 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 { Pelerinage } from "./pelerinage.js";
|
||||||
import { Periple } from "./periple.js";
|
import { Periple } from "./periple.js";
|
||||||
import { UrgenceDraconique } from "./urgence-draconique.js";
|
import { UrgenceDraconique } from "./urgence-draconique.js";
|
||||||
import { Misc } from "../misc.js";
|
import { Grammar } from "../grammar.js";
|
||||||
|
|
||||||
|
|
||||||
export class EffetsDraconiques {
|
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) {
|
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) {
|
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) {
|
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) {
|
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) {
|
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) {
|
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) {
|
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) {
|
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) {
|
static isPontImpraticable(actor) {
|
||||||
@ -152,7 +158,7 @@ export class EffetsDraconiques {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static isPeage(actor) {
|
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