feat: capacités de créature, blessures séquentielles et refonte fiche Groupe
- Nouvel item Capacité de créature (creaturecapacity) : DataModel, fiche AppV2, chat card, types Base/Survie/Cauchemar/Apocalypse, liste sur l'onglet Informations de la créature avec drag&drop et post au chat. - Blessures : coches séquentielles respectant la gravité (onClickWound), malus de blessure -1D/-2D/-3D appliqué aux jets (Règles p.42), montée en gravité automatique si les cercles sont pleins. - Fiche Groupe : objectifs majeurs/mineurs éditables, liste de membres simplifiée, notes de voyage (roadNotes), totem qui remplit instinct/interdits, refonte visuelle des onglets. - Créature : Réaction lançable, seuils/cercles de blessures corrigés (Taille cumulée, Groupe sans seuil), libellés Taille/Meute. - Corrections : icône de carte de chat plafonnée à 64px, slash orphelin d'entrave à 0, notes de matériel du Groupe éditable (formInput), bonus de Réaction non double-compté. - Divers : suppression des captures de débogage, licence README.
This commit is contained in:
@@ -7,6 +7,7 @@ export default class VermineGroupSheetV2 extends VermineBaseActorSheet {
|
||||
position: { width: 700, height: 600 },
|
||||
window: { contentClasses: ["group-content"] },
|
||||
actions: {
|
||||
chooseTotem: VermineGroupSheetV2.#onChooseTotem,
|
||||
chooseActor: VermineGroupSheetV2.#onChooseActor,
|
||||
deleteMember: VermineGroupSheetV2.#onDeleteMember,
|
||||
deleteEncounter: VermineGroupSheetV2.#onDeleteEncounter,
|
||||
@@ -56,9 +57,22 @@ export default class VermineGroupSheetV2 extends VermineBaseActorSheet {
|
||||
if (this.document.system.encounters?.length > 0) {
|
||||
for (const encId of this.document.system.encounters) {
|
||||
const a = game.actors.get(encId)
|
||||
if (a) context.resolvedEncounters[encId] = { name: a.name, id: a.id }
|
||||
if (a) {
|
||||
context.resolvedEncounters[encId] = {
|
||||
name: a.name,
|
||||
id: a.id,
|
||||
type: a.type,
|
||||
profile: a.system?.identity?.profile || "",
|
||||
totem: a.system?.identity?.totem || ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Notes de voyage (riche texte)
|
||||
const roadNotes = this.document.system?.roadNotes
|
||||
context.enrichedRoadNotes = roadNotes
|
||||
? await foundry.applications.ux.TextEditor.implementation.enrichHTML(roadNotes, { async: true })
|
||||
: ""
|
||||
return context
|
||||
}
|
||||
|
||||
@@ -70,10 +84,6 @@ export default class VermineGroupSheetV2 extends VermineBaseActorSheet {
|
||||
context.tab = context.tabs.info
|
||||
context.abilities = doc.itemTypes.ability.filter(i => i.system.type !== "totem")
|
||||
context.totem_abilities = doc.itemTypes.ability.filter(i => i.system.type === "totem")
|
||||
context.specialties = doc.itemTypes.specialty
|
||||
context.backgrounds = doc.itemTypes.background
|
||||
context.traumas = doc.itemTypes.trauma
|
||||
context.evolutions = doc.itemTypes.evolution
|
||||
break
|
||||
case "gear":
|
||||
context.tab = context.tabs.gear
|
||||
@@ -84,7 +94,6 @@ export default class VermineGroupSheetV2 extends VermineBaseActorSheet {
|
||||
break
|
||||
case "road":
|
||||
context.tab = context.tabs.road
|
||||
context.vehicles = this.#getOwnedVehicles()
|
||||
break
|
||||
case "reserve":
|
||||
context.tab = context.tabs.reserve
|
||||
@@ -101,7 +110,8 @@ export default class VermineGroupSheetV2 extends VermineBaseActorSheet {
|
||||
// Actions : délégation aux applications AppV1 existantes pour TotemPicker/ActorPicker
|
||||
static async #onChooseTotem(event, target) {
|
||||
const { TotemPicker } = await import("../../system/applications.mjs")
|
||||
new TotemPicker(target, this.document).render(true)
|
||||
// Le Totem du Groupe remplit automatiquement Instincts/Interdits.
|
||||
new TotemPicker(target, this.document, { fillInstincts: true }).render(true)
|
||||
}
|
||||
static async #onChooseActor(event, target) {
|
||||
const { ActorPicker } = await import("../../system/applications.mjs")
|
||||
|
||||
Reference in New Issue
Block a user