Item ehnance, fixes on acto sheet
This commit is contained in:
@@ -9,3 +9,5 @@ export { default as OathHammerMiracleSheet } from "./sheets/miracle-sheet.mjs"
|
||||
export { default as OathHammerMagicItemSheet } from "./sheets/magic-item-sheet.mjs"
|
||||
export { default as OathHammerAbilitySheet } from "./sheets/ability-sheet.mjs"
|
||||
export { default as OathHammerOathSheet } from "./sheets/oath-sheet.mjs"
|
||||
export { default as OathHammerLineageSheet } from "./sheets/lineage-sheet.mjs"
|
||||
export { default as OathHammerClassSheet } from "./sheets/class-sheet.mjs"
|
||||
|
||||
@@ -95,6 +95,13 @@ export default class OathHammerActorSheet extends HandlebarsApplicationMixin(fou
|
||||
|
||||
async _onDropItem(item) {
|
||||
const itemData = item.toObject()
|
||||
// Lineage and class are unique: replace any existing item of the same type
|
||||
if (item.type === "lineage" || item.type === "class") {
|
||||
const existing = this.document.itemTypes[item.type]
|
||||
if (existing.length > 0) {
|
||||
await this.document.deleteEmbeddedDocuments("Item", existing.map(i => i.id))
|
||||
}
|
||||
}
|
||||
await this.document.createEmbeddedDocuments("Item", [itemData], { renderSheet: false })
|
||||
}
|
||||
|
||||
|
||||
@@ -68,6 +68,8 @@ export default class OathHammerCharacterSheet extends OathHammerActorSheet {
|
||||
break
|
||||
case "identity":
|
||||
context.tab = context.tabs.identity
|
||||
context.lineage = doc.itemTypes.lineage?.[0] ?? null
|
||||
context.characterClass = doc.itemTypes["class"]?.[0] ?? null
|
||||
context.abilities = doc.itemTypes.ability
|
||||
context.oaths = doc.itemTypes.oath
|
||||
break
|
||||
@@ -124,7 +126,7 @@ export default class OathHammerCharacterSheet extends OathHammerActorSheet {
|
||||
}
|
||||
|
||||
async _onDrop(event) {
|
||||
if (!this.isEditable || !this.isEditMode) return
|
||||
if (!this.isEditable) return
|
||||
const data = foundry.applications.ux.TextEditor.implementation.getDragEventData(event)
|
||||
if (data.type === "Item") {
|
||||
const item = await fromUuid(data.uuid)
|
||||
|
||||
30
module/applications/sheets/class-sheet.mjs
Normal file
30
module/applications/sheets/class-sheet.mjs
Normal file
@@ -0,0 +1,30 @@
|
||||
import OathHammerItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class OathHammerClassSheet extends OathHammerItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["class"],
|
||||
position: {
|
||||
width: 640,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["class-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-oath-hammer/templates/item/class-sheet.hbs",
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
async _prepareContext() {
|
||||
const context = await super._prepareContext()
|
||||
context.enrichedFeatures = await foundry.applications.ux.TextEditor.implementation.enrichHTML(
|
||||
this.document.system.features ?? "", { async: true }
|
||||
)
|
||||
return context
|
||||
}
|
||||
}
|
||||
30
module/applications/sheets/lineage-sheet.mjs
Normal file
30
module/applications/sheets/lineage-sheet.mjs
Normal file
@@ -0,0 +1,30 @@
|
||||
import OathHammerItemSheet from "./base-item-sheet.mjs"
|
||||
|
||||
export default class OathHammerLineageSheet extends OathHammerItemSheet {
|
||||
/** @override */
|
||||
static DEFAULT_OPTIONS = {
|
||||
classes: ["lineage"],
|
||||
position: {
|
||||
width: 640,
|
||||
},
|
||||
window: {
|
||||
contentClasses: ["lineage-content"],
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
static PARTS = {
|
||||
main: {
|
||||
template: "systems/fvtt-oath-hammer/templates/item/lineage-sheet.hbs",
|
||||
},
|
||||
}
|
||||
|
||||
/** @override */
|
||||
async _prepareContext() {
|
||||
const context = await super._prepareContext()
|
||||
context.enrichedTraits = await foundry.applications.ux.TextEditor.implementation.enrichHTML(
|
||||
this.document.system.traits ?? "", { async: true }
|
||||
)
|
||||
return context
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user