Nouvelles corrections sur la fiche

This commit is contained in:
2026-03-06 11:31:04 +01:00
parent 65dc626380
commit b9db8eb2fc
4 changed files with 42 additions and 8 deletions
+22 -2
View File
@@ -18,7 +18,8 @@ export default class AwECharacterSheet extends AwEActorSheet {
createKit: AwECharacterSheet.#onCreateKit, createKit: AwECharacterSheet.#onCreateKit,
createEquipment: AwECharacterSheet.#onCreateEquipment, createEquipment: AwECharacterSheet.#onCreateEquipment,
flowPointsPlus: AwECharacterSheet.#onFlowPointsPlus, flowPointsPlus: AwECharacterSheet.#onFlowPointsPlus,
flowPointsMinus: AwECharacterSheet.#onFlowPointsMinus flowPointsMinus: AwECharacterSheet.#onFlowPointsMinus,
rollField: AwECharacterSheet.#onRollField
} }
} }
@@ -83,7 +84,13 @@ export default class AwECharacterSheet extends AwEActorSheet {
break break
case "biography": case "biography":
context.tab = context.tabs.biography context.tab = context.tabs.biography
context.fields = doc.itemTypes.field context.fields = doc.itemTypes.field.map(item => ({
...item,
keyAttrLabel: game.i18n.localize(SYSTEM.ATTRIBUTES[item.system.keyAttribute]?.label ?? item.system.keyAttribute),
keyAttr2Label: item.system.keyAttribute2
? game.i18n.localize(SYSTEM.ATTRIBUTES[item.system.keyAttribute2]?.label ?? item.system.keyAttribute2)
: null
}))
context.archetypes = doc.itemTypes.archetype context.archetypes = doc.itemTypes.archetype
context.backgrounds = doc.itemTypes.background context.backgrounds = doc.itemTypes.background
context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML( context.enrichedDescription = await foundry.applications.ux.TextEditor.implementation.enrichHTML(
@@ -187,4 +194,17 @@ export default class AwECharacterSheet extends AwEActorSheet {
const current = this.actor.system.flowPoints.value const current = this.actor.system.flowPoints.value
this.actor.update({ "system.flowPoints.value": Math.max(0, current - 1) }) this.actor.update({ "system.flowPoints.value": Math.max(0, current - 1) })
} }
/**
* Roll the key attribute check from a Field item.
* @param {PointerEvent} event The triggering event.
* @param {HTMLElement} target The target element.
*/
static async #onRollField(event, target) {
const itemId = target.closest("[data-item-id]")?.dataset.itemId
const item = this.document.items.get(itemId)
if (!item) return
const attrId = target.dataset.attributeId ?? item.system.keyAttribute
await this.document.rollAttribute(attrId)
}
} }
+6 -2
View File
@@ -37,8 +37,10 @@ export default class AwECharacter extends foundry.abstract.TypeDataModel {
// dc = 10 + mod (computed) // dc = 10 + mod (computed)
// bonus: manual +/- bonus // bonus: manual +/- bonus
const attributeField = () => new fields.SchemaField({ const attributeField = () => new fields.SchemaField({
boostLevel: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 4, // boosts: permanent +1 increments from background, field, step5, and level 3/6/9 progression
choices: {0:"0", 1:"1", 2:"2", 3:"3", 4:"4"} }), // max 7: 4 at creation + 3 from additional boosts at levels 3, 6, 9
boostLevel: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 7,
choices: Object.fromEntries(Array.from({length: 8}, (_, i) => [i, String(i)])) }),
bonus: new fields.NumberField({ required: true, nullable: false, integer: true, initial: 0 }) bonus: new fields.NumberField({ required: true, nullable: false, integer: true, initial: 0 })
}) })
@@ -61,6 +63,8 @@ export default class AwECharacter extends foundry.abstract.TypeDataModel {
const attr = this.attributes[attrId] const attr = this.attributes[attrId]
attr.mod = level + attr.boostLevel + attr.bonus attr.mod = level + attr.boostLevel + attr.bonus
attr.dc = 10 + attr.mod attr.dc = 10 + attr.mod
const bonusPart = attr.bonus !== 0 ? ` + Bonus ${attr.bonus >= 0 ? '+' : ''}${attr.bonus}` : ''
attr.modBreakdown = `Level ${level} + Boosts ${attr.boostLevel}${bonusPart} = ${attr.mod >= 0 ? '+' : ''}${attr.mod}`
} }
} }
} }
+10
View File
@@ -19,6 +19,16 @@
<div class="item-row" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-drag="true"> <div class="item-row" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-drag="true">
<img src="{{img}}" class="item-img" alt="{{name}}" /> <img src="{{img}}" class="item-img" alt="{{name}}" />
<span class="item-name">{{name}}</span> <span class="item-name">{{name}}</span>
<span class="item-key-attr">
<a class="rollable field-roll" data-action="rollField" data-attribute-id="{{system.keyAttribute}}" data-tooltip="Roll {{keyAttrLabel}}">
<i class="fas fa-dice-d20"></i> {{keyAttrLabel}}
</a>
{{#if keyAttr2Label}}
/ <a class="rollable field-roll" data-action="rollField" data-attribute-id="{{system.keyAttribute2}}" data-tooltip="Roll {{keyAttr2Label}}">
{{keyAttr2Label}}
</a>
{{/if}}
</span>
<div class="item-controls"> <div class="item-controls">
<a class="item-control" data-action="edit" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="Edit"><i class="fas fa-edit"></i></a> <a class="item-control" data-action="edit" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="Edit"><i class="fas fa-edit"></i></a>
<a class="item-control" data-action="delete" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="Delete"><i class="fas fa-trash"></i></a> <a class="item-control" data-action="delete" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-tooltip="Delete"><i class="fas fa-trash"></i></a>
+4 -4
View File
@@ -17,28 +17,28 @@
<tr> <tr>
<td class="attr-label rollable" data-attribute-id="agility">{{localize "AWEMMY.Attribute.Agility"}} <i class="fa-solid fa-dice-d20"></i></td> <td class="attr-label rollable" data-attribute-id="agility">{{localize "AWEMMY.Attribute.Agility"}} <i class="fa-solid fa-dice-d20"></i></td>
<td>{{formInput systemFields.attributes.fields.agility.fields.boostLevel value=system.attributes.agility.boostLevel disabled=isPlayMode}}</td> <td>{{formInput systemFields.attributes.fields.agility.fields.boostLevel value=system.attributes.agility.boostLevel disabled=isPlayMode}}</td>
<td class="attr-mod">{{system.attributes.agility.mod}}</td> <td class="attr-mod" data-tooltip="{{system.attributes.agility.modBreakdown}}">{{system.attributes.agility.mod}}</td>
<td class="attr-dc">{{system.attributes.agility.dc}}</td> <td class="attr-dc">{{system.attributes.agility.dc}}</td>
<td>{{formInput systemFields.attributes.fields.agility.fields.bonus value=system.attributes.agility.bonus disabled=isPlayMode}}</td> <td>{{formInput systemFields.attributes.fields.agility.fields.bonus value=system.attributes.agility.bonus disabled=isPlayMode}}</td>
</tr> </tr>
<tr> <tr>
<td class="attr-label rollable" data-attribute-id="fitness">{{localize "AWEMMY.Attribute.Fitness"}} <i class="fa-solid fa-dice-d20"></i></td> <td class="attr-label rollable" data-attribute-id="fitness">{{localize "AWEMMY.Attribute.Fitness"}} <i class="fa-solid fa-dice-d20"></i></td>
<td>{{formInput systemFields.attributes.fields.fitness.fields.boostLevel value=system.attributes.fitness.boostLevel disabled=isPlayMode}}</td> <td>{{formInput systemFields.attributes.fields.fitness.fields.boostLevel value=system.attributes.fitness.boostLevel disabled=isPlayMode}}</td>
<td class="attr-mod">{{system.attributes.fitness.mod}}</td> <td class="attr-mod" data-tooltip="{{system.attributes.fitness.modBreakdown}}">{{system.attributes.fitness.mod}}</td>
<td class="attr-dc">{{system.attributes.fitness.dc}}</td> <td class="attr-dc">{{system.attributes.fitness.dc}}</td>
<td>{{formInput systemFields.attributes.fields.fitness.fields.bonus value=system.attributes.fitness.bonus disabled=isPlayMode}}</td> <td>{{formInput systemFields.attributes.fields.fitness.fields.bonus value=system.attributes.fitness.bonus disabled=isPlayMode}}</td>
</tr> </tr>
<tr> <tr>
<td class="attr-label rollable" data-attribute-id="awareness">{{localize "AWEMMY.Attribute.Awareness"}} <i class="fa-solid fa-dice-d20"></i></td> <td class="attr-label rollable" data-attribute-id="awareness">{{localize "AWEMMY.Attribute.Awareness"}} <i class="fa-solid fa-dice-d20"></i></td>
<td>{{formInput systemFields.attributes.fields.awareness.fields.boostLevel value=system.attributes.awareness.boostLevel disabled=isPlayMode}}</td> <td>{{formInput systemFields.attributes.fields.awareness.fields.boostLevel value=system.attributes.awareness.boostLevel disabled=isPlayMode}}</td>
<td class="attr-mod">{{system.attributes.awareness.mod}}</td> <td class="attr-mod" data-tooltip="{{system.attributes.awareness.modBreakdown}}">{{system.attributes.awareness.mod}}</td>
<td class="attr-dc">{{system.attributes.awareness.dc}}</td> <td class="attr-dc">{{system.attributes.awareness.dc}}</td>
<td>{{formInput systemFields.attributes.fields.awareness.fields.bonus value=system.attributes.awareness.bonus disabled=isPlayMode}}</td> <td>{{formInput systemFields.attributes.fields.awareness.fields.bonus value=system.attributes.awareness.bonus disabled=isPlayMode}}</td>
</tr> </tr>
<tr> <tr>
<td class="attr-label rollable" data-attribute-id="influence">{{localize "AWEMMY.Attribute.Influence"}} <i class="fa-solid fa-dice-d20"></i></td> <td class="attr-label rollable" data-attribute-id="influence">{{localize "AWEMMY.Attribute.Influence"}} <i class="fa-solid fa-dice-d20"></i></td>
<td>{{formInput systemFields.attributes.fields.influence.fields.boostLevel value=system.attributes.influence.boostLevel disabled=isPlayMode}}</td> <td>{{formInput systemFields.attributes.fields.influence.fields.boostLevel value=system.attributes.influence.boostLevel disabled=isPlayMode}}</td>
<td class="attr-mod">{{system.attributes.influence.mod}}</td> <td class="attr-mod" data-tooltip="{{system.attributes.influence.modBreakdown}}">{{system.attributes.influence.mod}}</td>
<td class="attr-dc">{{system.attributes.influence.dc}}</td> <td class="attr-dc">{{system.attributes.influence.dc}}</td>
<td>{{formInput systemFields.attributes.fields.influence.fields.bonus value=system.attributes.influence.bonus disabled=isPlayMode}}</td> <td>{{formInput systemFields.attributes.fields.influence.fields.bonus value=system.attributes.influence.bonus disabled=isPlayMode}}</td>
</tr> </tr>