forked from public/foundryvtt-reve-de-dragon
Compare commits
7 Commits
27882be340
...
1aa34f2e1a
Author | SHA1 | Date | |
---|---|---|---|
1aa34f2e1a | |||
dd56c4d15e | |||
545b386198 | |||
21e9c58aac | |||
9199a816c0 | |||
9dd905134b | |||
f32b6af7b6 |
10
changelog.md
10
changelog.md
@ -1,5 +1,15 @@
|
|||||||
# 12.0
|
# 12.0
|
||||||
|
## 12.0.47 - La chèvre d'Astrobazzarh
|
||||||
|
- le Bandersnatch a une protection de 10
|
||||||
|
- la consistance chèvre est maintenant possible dans les recettes
|
||||||
|
alchimiques (et toutes les consistances avec accents)
|
||||||
|
- un échec au lancement d'un sort pour le mettre en réserve brise
|
||||||
|
la concentration du haut-rêvant
|
||||||
|
- Correction: les réussites particulières fonctionnent avec les caractéristiques dérivées
|
||||||
|
|
||||||
|
- Correction sur les mise à jour en cascade -
|
||||||
|
- Correction sur le force rendering après un changement de competence
|
||||||
|
|
||||||
## 12.0.46 - Le double demi d'Astrobazzarh
|
## 12.0.46 - Le double demi d'Astrobazzarh
|
||||||
- correction des raffraîchissement lors du sommeil qui empêchait de dormir
|
- correction des raffraîchissement lors du sommeil qui empêchait de dormir
|
||||||
plusieurs heures
|
plusieurs heures
|
||||||
|
@ -668,19 +668,23 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
if (!RdDItemRace.checkRacialMax(this, caracName, to)) {
|
if (!RdDItemRace.checkRacialMax(this, caracName, to)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
let updates = {};
|
||||||
if (caracName == LIST_CARAC_PERSONNAGE.reve.code) {
|
if (caracName == LIST_CARAC_PERSONNAGE.reve.code) {
|
||||||
if (to > Misc.toInt(this.system.reve.seuil.value)) {
|
if (to > Misc.toInt(this.system.reve.seuil.value)) {
|
||||||
this.setPointsDeSeuil(to);
|
updates[`system.reve.seuil.value`] = to; // SFA : Direct and packed changes
|
||||||
}
|
//this.setPointsDeSeuil(to);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (caracName == LIST_CARAC_PERSONNAGE.chance.code) {
|
if (caracName == LIST_CARAC_PERSONNAGE.chance.code) {
|
||||||
if (to > Misc.toInt(this.system.compteurs.chance.value)) {
|
if (to > Misc.toInt(this.system.compteurs.chance.value)) {
|
||||||
this.setPointsDeChance(to);
|
updates[`system.compteurs.chance.value`] = to; // SFA : Direct and packed changes
|
||||||
|
//this.setPointsDeChance(to);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let selectedCarac = this.findCaracByName(caracName);
|
let selectedCarac = this.findCaracByName(caracName);
|
||||||
const from = selectedCarac.value
|
const from = selectedCarac.value
|
||||||
await this.update({ [`system.carac.${caracName}.value`]: to });
|
updates[`system.carac.${caracName}.value`] = to;
|
||||||
|
await this.update(updates);
|
||||||
await ExperienceLog.add(this, XP_TOPIC.CARAC, from, to, caracName);
|
await ExperienceLog.add(this, XP_TOPIC.CARAC, from, to, caracName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -784,7 +788,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
const toNiveau = compValue ?? RdDItemCompetence.getNiveauBase(competence.system.categorie, competence.getCategories());
|
const toNiveau = compValue ?? RdDItemCompetence.getNiveauBase(competence.system.categorie, competence.getCategories());
|
||||||
this.notifyCompetencesTronc(competence, toNiveau);
|
this.notifyCompetencesTronc(competence, toNiveau);
|
||||||
const fromNiveau = competence.system.niveau;
|
const fromNiveau = competence.system.niveau;
|
||||||
await competence.update({ 'system.niveau': toNiveau }, { render: false })
|
await competence.update({ 'system.niveau': toNiveau }, { render: true })
|
||||||
await ExperienceLog.add(this, XP_TOPIC.NIVEAU, fromNiveau, toNiveau, competence.name, true);
|
await ExperienceLog.add(this, XP_TOPIC.NIVEAU, fromNiveau, toNiveau, competence.name, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1761,7 +1765,7 @@ export class RdDActor extends RdDBaseActorSang {
|
|||||||
if (reveActuel == 0) { // 0 points de reve
|
if (reveActuel == 0) { // 0 points de reve
|
||||||
ChatMessage.create({ content: this.name + " est réduit à 0 Points de Rêve, et tombe endormi !" });
|
ChatMessage.create({ content: this.name + " est réduit à 0 Points de Rêve, et tombe endormi !" });
|
||||||
}
|
}
|
||||||
if (!rollData.isSortReserve) {
|
if (!rollData.isSortReserve || !rolled.isSuccess) {
|
||||||
this.tmrApp?.close();
|
this.tmrApp?.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import { RdDUtility } from "../../rdd-utility.js";
|
|||||||
import { RdDAlchimie } from "../../rdd-alchimie.js";
|
import { RdDAlchimie } from "../../rdd-alchimie.js";
|
||||||
import { TextRollManager } from "./text-roll-formatter.js";
|
import { TextRollManager } from "./text-roll-formatter.js";
|
||||||
|
|
||||||
const REGEX_ALCHIMIE_TERMES = "(?<termes>(\\w|-)+)"
|
const REGEX_ALCHIMIE_TERMES = "(?<termes>([-A-Za-zÀ-ÖØ-öø-ÿ ])+)"
|
||||||
const REGEX_ALCHIMIE_MANIP = "(?<manip>(couleur|consistance))"
|
const REGEX_ALCHIMIE_MANIP = "(?<manip>(couleur|consistance))"
|
||||||
const XREGEXP_ROLL_ALCHIMIE = XRegExp("@roll\\[" + REGEX_ALCHIMIE_MANIP + "\\s+" + REGEX_ALCHIMIE_TERMES + "\\]", 'giu')
|
const XREGEXP_ROLL_ALCHIMIE = XRegExp("@roll\\[" + REGEX_ALCHIMIE_MANIP + "\\s+" + REGEX_ALCHIMIE_TERMES + "\\]", 'giu')
|
||||||
const XREGEXP_ROLL_ALCHIMIE_MANIP = XRegExp("@" + REGEX_ALCHIMIE_MANIP + "\\{" + REGEX_ALCHIMIE_TERMES + "\\}", 'giu')
|
const XREGEXP_ROLL_ALCHIMIE_MANIP = XRegExp("@" + REGEX_ALCHIMIE_MANIP + "\\{" + REGEX_ALCHIMIE_TERMES + "\\}", 'giu')
|
||||||
|
@ -55,6 +55,10 @@ export class RdDItemRace extends RdDItem {
|
|||||||
|
|
||||||
isMax(actor, code, value = undefined) {
|
isMax(actor, code, value = undefined) {
|
||||||
const path = RdDCarac.carac(code)?.path
|
const path = RdDCarac.carac(code)?.path
|
||||||
|
if (path == undefined) {
|
||||||
|
// cas des caractéristiques dérivées, pas de max
|
||||||
|
return false
|
||||||
|
}
|
||||||
if (value == undefined) {
|
if (value == undefined) {
|
||||||
value = path ? foundry.utils.getProperty(actor, path) : 0
|
value = path ? foundry.utils.getProperty(actor, path) : 0
|
||||||
}
|
}
|
||||||
|
@ -196,7 +196,7 @@ system:
|
|||||||
derivee: false
|
derivee: false
|
||||||
protection:
|
protection:
|
||||||
type: number
|
type: number
|
||||||
value: 2
|
value: 10
|
||||||
label: Protection
|
label: Protection
|
||||||
derivee: false
|
derivee: false
|
||||||
compteurs:
|
compteurs:
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
<img class="chat-icon" src="{{sortReserve.img}}" data-tooltip="{{sortReserve.name}}"/>
|
<img class="chat-icon" src="{{sortReserve.img}}" data-tooltip="{{sortReserve.name}}"/>
|
||||||
<p> Vous avez déclenché
|
<h4>Déclenchement de sort: {{sortReserve.name}}</h4>
|
||||||
{{#if sortReserve.system.echectotal}}<strong>l'échec total</strong>{{else}}le sort{{/if}}
|
<br> Vous avez déclenché {{#if sortReserve.system.echectotal}}<strong>l'échec total</strong>{{else}}le sort{{/if}}
|
||||||
en réserve
|
en réserve en {{sortReserve.system.coord}} ({{caseTmr-label sortReserve.system.coord}}).
|
||||||
<strong>{{sortReserve.name}}</strong>
|
<br>Ce sort a {{sortReserve.system.ptreve}} points de Rêve
|
||||||
avec {{sortReserve.system.ptreve}} points de Rêve
|
<br>L'heure ciblée est {{#if sortReserve.system.heurecible}}
|
||||||
en {{sortReserve.system.coord}} ({{caseTmr-label sortReserve.system.coord}}).
|
{{timestamp-imgSigneHeure sortReserve.system.heurecible}} {{sortReserve.system.heurecible}}
|
||||||
L'heure ciblée est {{sortReserve.system.heurecible}}
|
{{else}}indéterminée{{/if}}
|
||||||
{{timestamp-imgSigneHeure sortReserve.system.heurecible}}
|
|
||||||
</p>
|
|
||||||
{{#if sort}}
|
{{#if sort}}
|
||||||
<div class="poesie-extrait poesie-overflow">
|
<div class="poesie-extrait poesie-overflow">
|
||||||
{{{sort.system.description}}}
|
{{{sort.system.description}}}
|
||||||
|
Reference in New Issue
Block a user