feat(cd): message statut MJ + journal de suivi stress/moral/events par jour

This commit is contained in:
fabres
2026-07-22 00:29:56 +02:00
parent 7599db07ad
commit 8e748a1d94
2 changed files with 40 additions and 0 deletions
+30
View File
@@ -365,6 +365,7 @@ export class RdDActor extends RdDBaseActorSang {
whisper: ChatUtility.getOwners(this),
content: ""
}
const stressAvant = this.system.compteurs.stress.value
await this._recuperationSante(message)
await this._recupereMoralChateauDormant(message)
@@ -381,6 +382,35 @@ export class RdDActor extends RdDBaseActorSang {
await ChatMessage.create(message)
}
await this.resetInfoSommeil()
const stressApres = this.system.compteurs.stress.value
const date = game.system.rdd.calendrier.dateCourante()
const recapMJ = `**${this.name}** — Château Dormant (${date})<br>Stress : ${stressAvant}${stressApres}`
await ChatUtility.tellToGM(message.content ? recapMJ + '<br>' + message.content : recapMJ)
const journalId = game.settings.get(SYSTEM_RDD, 'cd-suivi-journal')
if (journalId) {
const journalEntry = game.journal.get(journalId)
if (journalEntry?.canUserModify(game.user, 'update')) {
const timestamp = game.system.rdd.calendrier.getTimestamp()
const jour = timestamp.jour + 1
const mois = RdDTimestamp.definition(timestamp.mois).label
const annee = timestamp.annee
const section = `${jour} ${mois} ${annee}`
const log = `<p><b>${this.name}</b> — Stress ${stressAvant}${stressApres}</p>` + message.content
let page = journalEntry.pages.find(p => p.type == 'text' && Grammar.equalsInsensitive(p.name, section))
if (page) {
await page.update({ 'text.content': page.text.content + '\n' + log })
} else {
await journalEntry.createEmbeddedDocuments('JournalEntryPage', [new JournalEntryPage({
name: section,
type: 'text',
title: { show: true, level: 1 },
text: { content: log, format: 1 }
})])
}
}
}
}
async resetInfoSommeil() {
+10
View File
@@ -390,6 +390,16 @@ export class SystemReveDeDragon {
type: Number,
default: 0
})
/* -------------------------------------------- */
game.settings.register(SYSTEM_RDD, "cd-suivi-journal", {
name: "Journal de suivi Château Dormant",
hint: "ID du journal où enregistrer le récapitulatif quotidien des personnages (stress, moral, événements). Laissez vide pour désactiver.",
scope: "world",
config: true,
type: String,
default: ""
})
}
async onReady() {