Nouvelles corrections sur la fiche
This commit is contained in:
@@ -18,7 +18,8 @@ export default class AwECharacterSheet extends AwEActorSheet {
|
||||
createKit: AwECharacterSheet.#onCreateKit,
|
||||
createEquipment: AwECharacterSheet.#onCreateEquipment,
|
||||
flowPointsPlus: AwECharacterSheet.#onFlowPointsPlus,
|
||||
flowPointsMinus: AwECharacterSheet.#onFlowPointsMinus
|
||||
flowPointsMinus: AwECharacterSheet.#onFlowPointsMinus,
|
||||
rollField: AwECharacterSheet.#onRollField
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +84,13 @@ export default class AwECharacterSheet extends AwEActorSheet {
|
||||
break
|
||||
case "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.backgrounds = doc.itemTypes.background
|
||||
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
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,8 +37,10 @@ export default class AwECharacter extends foundry.abstract.TypeDataModel {
|
||||
// dc = 10 + mod (computed)
|
||||
// bonus: manual +/- bonus
|
||||
const attributeField = () => new fields.SchemaField({
|
||||
boostLevel: new fields.NumberField({ ...requiredInteger, initial: 0, min: 0, max: 4,
|
||||
choices: {0:"0", 1:"1", 2:"2", 3:"3", 4:"4"} }),
|
||||
// boosts: permanent +1 increments from background, field, step5, and level 3/6/9 progression
|
||||
// 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 })
|
||||
})
|
||||
|
||||
@@ -61,6 +63,8 @@ export default class AwECharacter extends foundry.abstract.TypeDataModel {
|
||||
const attr = this.attributes[attrId]
|
||||
attr.mod = level + attr.boostLevel + attr.bonus
|
||||
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}`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,16 @@
|
||||
<div class="item-row" data-item-id="{{id}}" data-item-uuid="{{uuid}}" data-drag="true">
|
||||
<img src="{{img}}" class="item-img" alt="{{name}}" />
|
||||
<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">
|
||||
<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>
|
||||
|
||||
@@ -17,28 +17,28 @@
|
||||
<tr>
|
||||
<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 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>{{formInput systemFields.attributes.fields.agility.fields.bonus value=system.attributes.agility.bonus disabled=isPlayMode}}</td>
|
||||
</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>{{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>{{formInput systemFields.attributes.fields.fitness.fields.bonus value=system.attributes.fitness.bonus disabled=isPlayMode}}</td>
|
||||
</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>{{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>{{formInput systemFields.attributes.fields.awareness.fields.bonus value=system.attributes.awareness.bonus disabled=isPlayMode}}</td>
|
||||
</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>{{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>{{formInput systemFields.attributes.fields.influence.fields.bonus value=system.attributes.influence.bonus disabled=isPlayMode}}</td>
|
||||
</tr>
|
||||
|
||||
Reference in New Issue
Block a user