Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
6b338314c4 | |||
6661805f6f | |||
29931fdcb5 | |||
ec24e4a7e7 | |||
d1adf3f6c4 | |||
8eb1387be4 | |||
85378d74e3 | |||
9471420d38 | |||
6e456ca92c | |||
482256c218 | |||
fa1c4ff221 | |||
b777271657 | |||
d06a55b615 | |||
adfbc11eb8 |
18
changelog.md
18
changelog.md
@ -1,7 +1,23 @@
|
||||
# 12.0
|
||||
## 12.0.50 - Le sommeil d'Astrobazzarh
|
||||
- Le don de double rêve n'interrompt plus le sommeil toutes les heures
|
||||
- la perte de fatigue à la descente des TMR est visible immédiatement
|
||||
|
||||
## 120.0.47
|
||||
## 12.0.49 - La deuxième lame d'Astrobazzarh
|
||||
- Corrections
|
||||
- les défenses particulières sont correctement affichées
|
||||
- les vieux boucliers (sans catégorie de parade car créés il y a longtemps) peuvent parer...
|
||||
- Les attaques à distance n'ont pas de difficulté libre
|
||||
|
||||
## 12.0.48 - 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
|
||||
|
||||
## 12.0.47
|
||||
- Correction sur les mise à jour en cascade -
|
||||
- Correction sur le force rendering après un changement de competence
|
||||
|
||||
|
@ -484,7 +484,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
await this.$recupererFatigue(message);
|
||||
await this.$jetRecuperationReve(dormi, message);
|
||||
if (dormi.etat == 'dort' && EffetsDraconiques.isDonDoubleReve(this)) {
|
||||
dormi.etat = await this.$jetRecuperationReve(dormi, message);
|
||||
await this.$jetRecuperationReve(dormi, message);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1765,7 +1765,7 @@ export class RdDActor extends RdDBaseActorSang {
|
||||
if (reveActuel == 0) { // 0 points de reve
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import { RdDUtility } from "../../rdd-utility.js";
|
||||
import { RdDAlchimie } from "../../rdd-alchimie.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 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')
|
||||
|
@ -120,7 +120,7 @@ export class RdDItemArme extends Item {
|
||||
|
||||
static defenseArmeParade(armeAttaque, armeParade) {
|
||||
const defCategory = RdDItemArme.getCategorieParade(armeParade)
|
||||
if (defCategory == 'bouclier') {
|
||||
if (defCategory == 'boucliers') {
|
||||
return 'norm'
|
||||
}
|
||||
if (armeAttaque?.system?.competence?.toLowerCase().match(/(fléau)/)) {
|
||||
|
@ -55,6 +55,10 @@ export class RdDItemRace extends RdDItem {
|
||||
|
||||
isMax(actor, code, value = undefined) {
|
||||
const path = RdDCarac.carac(code)?.path
|
||||
if (path == undefined) {
|
||||
// cas des caractéristiques dérivées, pas de max
|
||||
return false
|
||||
}
|
||||
if (value == undefined) {
|
||||
value = path ? foundry.utils.getProperty(actor, path) : 0
|
||||
}
|
||||
|
@ -1047,11 +1047,12 @@ export class RdDCombat {
|
||||
|
||||
|
||||
async _onParade(defenderRoll) {
|
||||
if (RdDCombat.isParticuliere(defenderRoll)) {
|
||||
return await this._onParadeParticuliere(defenderRoll)
|
||||
}
|
||||
if (RdDCombat.isReussite(defenderRoll)) {
|
||||
return await this._onParadeNormale(defenderRoll)
|
||||
await this._onParadeNormale(defenderRoll)
|
||||
if (RdDCombat.isParticuliere(defenderRoll)) {
|
||||
await this._onParadeParticuliere(defenderRoll)
|
||||
}
|
||||
return
|
||||
}
|
||||
await this._onParadeEchec(defenderRoll)
|
||||
}
|
||||
@ -1135,11 +1136,12 @@ export class RdDCombat {
|
||||
}
|
||||
|
||||
async _onEsquive(defenderRoll) {
|
||||
if (RdDCombat.isParticuliere(defenderRoll)) {
|
||||
return await this._onEsquiveParticuliere(defenderRoll)
|
||||
}
|
||||
if (RdDCombat.isReussite(defenderRoll)) {
|
||||
return await this._onEsquiveNormale(defenderRoll)
|
||||
await this._onEsquiveNormale(defenderRoll)
|
||||
if (RdDCombat.isParticuliere(defenderRoll)) {
|
||||
await this._onEsquiveParticuliere(defenderRoll)
|
||||
}
|
||||
return
|
||||
}
|
||||
return await this._onEsquiveEchec(defenderRoll)
|
||||
}
|
||||
|
@ -345,15 +345,16 @@ export class RdDTMRDialog extends Dialog {
|
||||
}
|
||||
this.descenteTMR = true;
|
||||
if (this.actor.tmrApp) {
|
||||
this.actor.tmrApp = undefined; // Cleanup reference
|
||||
if (!this.viewOnly) {
|
||||
await this.actor.setEffect(STATUSES.StatusDemiReve, false);
|
||||
this.$tellToUserAndGM(message)
|
||||
}
|
||||
const appliquerFatigue = ReglesOptionnelles.isUsing("appliquer-fatigue");
|
||||
this.actor.tmrApp = undefined // Cleanup reference
|
||||
const appliquerFatigue = ReglesOptionnelles.isUsing("appliquer-fatigue")
|
||||
await this.actor.santeIncDec(
|
||||
appliquerFatigue ? "fatigue" : "endurance",
|
||||
(appliquerFatigue ? 1 : -1) * this.cumulFatigue);
|
||||
(appliquerFatigue ? 1 : -1) * this.cumulFatigue)
|
||||
if (!this.viewOnly) {
|
||||
await this.actor.setEffect(STATUSES.StatusDemiReve, false)
|
||||
this.$tellToUserAndGM(message)
|
||||
}
|
||||
|
||||
}
|
||||
this.pixiTMR.close();
|
||||
this.pixiTMR = undefined
|
||||
|
@ -196,7 +196,7 @@ system:
|
||||
derivee: false
|
||||
protection:
|
||||
type: number
|
||||
value: 2
|
||||
value: 10
|
||||
label: Protection
|
||||
derivee: false
|
||||
compteurs:
|
||||
|
@ -1,13 +1,11 @@
|
||||
<img class="chat-icon" src="{{sortReserve.img}}" data-tooltip="{{sortReserve.name}}"/>
|
||||
<p> Vous avez déclenché
|
||||
{{#if sortReserve.system.echectotal}}<strong>l'échec total</strong>{{else}}le sort{{/if}}
|
||||
en réserve
|
||||
<strong>{{sortReserve.name}}</strong>
|
||||
avec {{sortReserve.system.ptreve}} points de Rêve
|
||||
en {{sortReserve.system.coord}} ({{caseTmr-label sortReserve.system.coord}}).
|
||||
L'heure ciblée est {{sortReserve.system.heurecible}}
|
||||
{{timestamp-imgSigneHeure sortReserve.system.heurecible}}
|
||||
</p>
|
||||
<h4>Déclenchement de sort: {{sortReserve.name}}</h4>
|
||||
<br> Vous avez déclenché {{#if sortReserve.system.echectotal}}<strong>l'échec total</strong>{{else}}le sort{{/if}}
|
||||
en réserve en {{sortReserve.system.coord}} ({{caseTmr-label sortReserve.system.coord}}).
|
||||
<br>Ce sort a {{sortReserve.system.ptreve}} points de Rêve
|
||||
<br>L'heure ciblée est {{#if sortReserve.system.heurecible}}
|
||||
{{timestamp-imgSigneHeure sortReserve.system.heurecible}} {{sortReserve.system.heurecible}}
|
||||
{{else}}indéterminée{{/if}}
|
||||
{{#if sort}}
|
||||
<div class="poesie-extrait poesie-overflow">
|
||||
{{{sort.system.description}}}
|
||||
|
@ -70,7 +70,10 @@
|
||||
</div>
|
||||
|
||||
<div class="flex-group-left">
|
||||
{{#if attackerRoll}}
|
||||
{{#if (or attackerRoll
|
||||
(and sourceToken (eq competence.system.categorie 'tir'))
|
||||
(and sourceToken (eq competence.system.categorie 'lancer'))
|
||||
)}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-roll-diffFixe.hbs"}}
|
||||
{{else}}
|
||||
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-roll-diffLibre.hbs"}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user