v11.0.10 - Les Songes de Khrachtchoum le Problémeux #658
10
changelog.md
10
changelog.md
@ -1,5 +1,15 @@
|
|||||||
# v11.0
|
# v11.0
|
||||||
|
|
||||||
|
## v11.0.10 - Les Songes de Khrachtchoum le Problémeux
|
||||||
|
- on peut de nouveau se déplacer dans les TMRs d'un clic sur la case à atteindre
|
||||||
|
- Lire un livre depuis l'inventaire permet de nouveau de faire un jet de la tâche
|
||||||
|
créée au lieu de créer toujours une nouvelle tâche
|
||||||
|
- La sélection des TMR pour la création de signes draconiques ne cause plus d'erreurs
|
||||||
|
- la récupération d'endurance en cas d'insomnie est limitée à la moitié
|
||||||
|
- le résultat du sommeil lors d'un rêve de dragon à la première heure s'affiche normalement
|
||||||
|
- lorsque le gardien gère la durée des nuits, en cas de rêve de dragon,
|
||||||
|
les heures dormies sont déduites des heures restant à dormir
|
||||||
|
|
||||||
## v11.0.9 - Les Souvenirs de Khrachtchoum le Problémeux
|
## v11.0.9 - Les Souvenirs de Khrachtchoum le Problémeux
|
||||||
- mode de saisie de l'archétype en vue détaillée
|
- mode de saisie de l'archétype en vue détaillée
|
||||||
- création une nouvelle incarnation depuis l'archétype
|
- création une nouvelle incarnation depuis l'archétype
|
||||||
|
@ -621,21 +621,22 @@ export class RdDActor extends RdDBaseActor {
|
|||||||
whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name),
|
whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name),
|
||||||
content: this.name + ': '
|
content: this.name + ': '
|
||||||
};
|
};
|
||||||
await this.recupereEndurance(message);
|
const insomnie = this.system.sommeil?.insomnie || heures == 0;
|
||||||
if (this.system.sommeil?.insomnie || heures == 0) {
|
await this.recupereEndurance({ message: message, demi: insomnie });
|
||||||
|
if (insomnie) {
|
||||||
message.content += 'Vous ne trouvez pas le sommeil';
|
message.content += 'Vous ne trouvez pas le sommeil';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let jetsReve = [];
|
let jetsReve = [];
|
||||||
let dormi = await this.dormirDesHeures(jetsReve, message, heures, options);
|
let dormi = await this.dormirDesHeures(jetsReve, message, heures, options);
|
||||||
message.content += `Vous dormez ${dormi.heures <= 1 ? 'une heure' : (dormi.heures + ' heures')}. `;
|
|
||||||
if (jetsReve.length > 0) {
|
if (jetsReve.length > 0) {
|
||||||
message.content += `Vous récupérez ${jetsReve.filter(it => it >= 0).reduce(Misc.joining("+"))} Points de rêve. `;
|
message.content += `Vous récupérez ${jetsReve.map(it => it < 0 ? '(dragon)' : it).reduce(Misc.joining("+"))} Points de rêve. `;
|
||||||
}
|
}
|
||||||
if (dormi.etat == 'eveil') {
|
if (dormi.etat == 'eveil') {
|
||||||
message.content += 'Vous êtes réveillé par un Rêve de Dragon.'
|
await this.reveilReveDeDragon(message, dormi.heures);
|
||||||
}
|
}
|
||||||
options.chateauDormant = options.chateauDormant && dormi.heures >= heures;
|
options.chateauDormant = options.chateauDormant && dormi.heures >= heures;
|
||||||
|
message.content += `Vous avez dormi ${dormi.heures <= 1 ? 'une heure' : (dormi.heures + ' heures')}. `;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!options.grisReve) {
|
if (!options.grisReve) {
|
||||||
@ -649,6 +650,14 @@ export class RdDActor extends RdDBaseActor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async reveilReveDeDragon(message, heures) {
|
||||||
|
message.content += 'Vous êtes réveillé par un Rêve de Dragon.';
|
||||||
|
const restant = Math.max(this.system.sommeil?.heures - heures, 0)
|
||||||
|
if (restant > 0) {
|
||||||
|
await this.update({ 'system.sommeil': { heures: restant } });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async dormirDesHeures(jetsReve, message, heures, options) {
|
async dormirDesHeures(jetsReve, message, heures, options) {
|
||||||
const dormi = { heures: 0, etat: 'dort' };
|
const dormi = { heures: 0, etat: 'dort' };
|
||||||
for (; dormi.heures < heures && dormi.etat == 'dort'; dormi.heures++) {
|
for (; dormi.heures < heures && dormi.etat == 'dort'; dormi.heures++) {
|
||||||
@ -702,8 +711,13 @@ export class RdDActor extends RdDBaseActor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async recupereEndurance(message) {
|
async recupereEndurance({ message, demi }) {
|
||||||
const manquant = this._computeEnduranceMax() - this.system.sante.endurance.value;
|
let max = this._computeEnduranceMax();
|
||||||
|
if (demi) {
|
||||||
|
max = Math.floor(max / 2);
|
||||||
|
}
|
||||||
|
const manquant = max - this.system.sante.endurance.value;
|
||||||
|
|
||||||
if (manquant > 0) {
|
if (manquant > 0) {
|
||||||
await this.santeIncDec("endurance", manquant);
|
await this.santeIncDec("endurance", manquant);
|
||||||
message.content += `Vous récuperez ${manquant} points d'endurance. `;
|
message.content += `Vous récuperez ${manquant} points d'endurance. `;
|
||||||
@ -1706,6 +1720,7 @@ export class RdDActor extends RdDBaseActor {
|
|||||||
await this.rollTache(tache.id);
|
await this.rollTache(tache.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async actionHerbe(item, onActionItem = async () => { }) {
|
async actionHerbe(item, onActionItem = async () => { }) {
|
||||||
if (item.isHerbeAPotion()) {
|
if (item.isHerbeAPotion()) {
|
||||||
return DialogFabriquerPotion.create(this, item, onActionItem);
|
return DialogFabriquerPotion.create(this, item, onActionItem);
|
||||||
|
@ -119,7 +119,7 @@ export class RdDBaseActor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
listItems(type = undefined) { return (type ? this.itemTypes[type] : this.items); }
|
listItems(type = undefined) { return (type ? this.itemTypes[type] : this.items); }
|
||||||
filterItems(filter, type = undefined) { return type ? this.itemTypes[type]?.filter(filter) ?? [] : []; }
|
filterItems(filter, type = undefined) { return (type ? this.itemTypes[type] : this.items)?.filter(filter) ?? []; }
|
||||||
findItemLike(idOrName, type) {
|
findItemLike(idOrName, type) {
|
||||||
return this.getItem(idOrName, type)
|
return this.getItem(idOrName, type)
|
||||||
?? Misc.findFirstLike(idOrName, this.listItems(type), { description: Misc.typeName('Item', type) });
|
?? Misc.findFirstLike(idOrName, this.listItems(type), { description: Misc.typeName('Item', type) });
|
||||||
|
@ -111,7 +111,7 @@ export class DialogCreateSigneDraconique extends Dialog {
|
|||||||
|
|
||||||
onSelectTmr(event) {
|
onSelectTmr(event) {
|
||||||
const tmrName = this.html.find(event.currentTarget)?.data("tmr-name");
|
const tmrName = this.html.find(event.currentTarget)?.data("tmr-name");
|
||||||
const onTmr = this.tmrs.find(it => it.name == tmrName);
|
const onTmr = this.dialogData.tmrs.find(it => it.name == tmrName);
|
||||||
if (onTmr){
|
if (onTmr){
|
||||||
onTmr.selected = event.currentTarget.checked;
|
onTmr.selected = event.currentTarget.checked;
|
||||||
}
|
}
|
||||||
|
@ -906,7 +906,7 @@ export class RdDTMRDialog extends Dialog {
|
|||||||
if (this.viewOnly) {
|
if (this.viewOnly) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let clickOddq = RdDTMRDialog._computeEventOddq(event.data.originalEvent);
|
let clickOddq = RdDTMRDialog._computeEventOddq(event.nativeEvent);
|
||||||
await this._onClickTMRPos(clickOddq); // Vérifier l'état des compteurs reve/fatigue/vie
|
await this._onClickTMRPos(clickOddq); // Vérifier l'état des compteurs reve/fatigue/vie
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"id": "foundryvtt-reve-de-dragon",
|
"id": "foundryvtt-reve-de-dragon",
|
||||||
"title": "Rêve de Dragon",
|
"title": "Rêve de Dragon",
|
||||||
"version": "11.0.9",
|
"version": "11.0.10",
|
||||||
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-11.0.9.zip",
|
"download": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/archive/foundryvtt-reve-de-dragon-11.0.10.zip",
|
||||||
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v11/system.json",
|
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/v11/system.json",
|
||||||
"changelog": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v11/changelog.md",
|
"changelog": "https://www.uberwald.me/gitea/public/foundryvtt-reve-de-dragon/raw/branch/v11/changelog.md",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
|
Loading…
Reference in New Issue
Block a user