Converted lots of document access to V10.
This commit is contained in:
parent
c0dd5b584a
commit
b104480a48
|
|
@ -62,7 +62,7 @@ Hooks.once("init", async () => {
|
||||||
Handlebars.registerHelper("actorItemValue", (actorId: any, itemId: string, path: string) => {
|
Handlebars.registerHelper("actorItemValue", (actorId: any, itemId: string, path: string) => {
|
||||||
//console.log("actorItemValue", actorId, itemId, path)
|
//console.log("actorItemValue", actorId, itemId, path)
|
||||||
const actor = (game as Game).actors.get(actorId)
|
const actor = (game as Game).actors.get(actorId)
|
||||||
let obj = actor.data.items.get(itemId).data.data
|
let obj = actor.items.get(itemId).system
|
||||||
path.split(".").forEach(p => {
|
path.split(".").forEach(p => {
|
||||||
if (obj)
|
if (obj)
|
||||||
obj = obj[p]
|
obj = obj[p]
|
||||||
|
|
|
||||||
|
|
@ -77,11 +77,11 @@ export class M5Character extends Actor {
|
||||||
spells: {}
|
spells: {}
|
||||||
} as M5CharacterCalculatedData
|
} as M5CharacterCalculatedData
|
||||||
|
|
||||||
const context = (this as any).data
|
const context = (this as any)
|
||||||
if (!context)
|
if (!context)
|
||||||
return null
|
return null
|
||||||
|
|
||||||
const data = context.data
|
const data = (this as any).system
|
||||||
if (!data)
|
if (!data)
|
||||||
return null
|
return null
|
||||||
|
|
||||||
|
|
@ -126,12 +126,12 @@ export class M5Character extends Actor {
|
||||||
if (!skip.mods) {
|
if (!skip.mods) {
|
||||||
const aggregate = new M5ModAggregate(data, ret)
|
const aggregate = new M5ModAggregate(data, ret)
|
||||||
|
|
||||||
context.items?.filter(item => item.data.type === "item").forEach(item => {
|
context.items?.filter(item => item.type === "item").forEach(item => {
|
||||||
const mods = item.data.data.mods
|
const mods = item.system.mods
|
||||||
//console.log("Actor item mods", mods)
|
//console.log("Actor item mods", mods)
|
||||||
Object.keys(mods).forEach(modIndex => {
|
Object.keys(mods).forEach(modIndex => {
|
||||||
const mod = mods[modIndex] as M5ItemMod
|
const mod = mods[modIndex] as M5ItemMod
|
||||||
aggregate.push(mod, item.data.name)
|
aggregate.push(mod, item.name)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -139,102 +139,102 @@ export class M5Character extends Actor {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!skip.items) {
|
if (!skip.items) {
|
||||||
context.items?.filter(item => item.data.type === "item").forEach(item => {
|
context.items?.filter(item => item.type === "item").forEach(item => {
|
||||||
item.prepareDerivedData()
|
item.prepareDerivedData()
|
||||||
|
|
||||||
let label = item.data.name
|
let label = item.name
|
||||||
if (item.data.data.magic) {
|
if (item.system.magic) {
|
||||||
label += "*"
|
label += "*"
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.gear.items[item.data._id] = {
|
ret.gear.items[item.id] = {
|
||||||
label: label,
|
label: label,
|
||||||
magic: item.data.data.magic,
|
magic: item.system.magic,
|
||||||
calc: item.data.data.calc
|
calc: item.system.calc
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!skip.skills) {
|
if (!skip.skills) {
|
||||||
context.items?.filter(item => item.data.type === "skill").forEach(item => {
|
context.items?.filter(item => item.type === "skill").forEach(item => {
|
||||||
item.prepareDerivedData()
|
item.prepareDerivedData()
|
||||||
const skillMap = ret.skills[item.data.data.type]
|
const skillMap = ret.skills[item.system.type]
|
||||||
skillMap[item.data._id] = {
|
skillMap[item.id] = {
|
||||||
label: item.data.name,
|
label: item.name,
|
||||||
fw: item.data.data.fw,
|
fw: item.system.fw,
|
||||||
attribute: item.data.data.attribute,
|
attribute: item.system.attribute,
|
||||||
calc: item.data.data.calc
|
calc: item.system.calc
|
||||||
} as M5SkillCalculated
|
} as M5SkillCalculated
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!skip.weapons) {
|
if (!skip.weapons) {
|
||||||
context.items?.filter(item => item.data.type === "weapon").forEach(item => {
|
context.items?.filter(item => item.type === "weapon").forEach(item => {
|
||||||
item.prepareDerivedData()
|
item.prepareDerivedData()
|
||||||
|
|
||||||
let label = item.data.name
|
let label = item.name
|
||||||
if (item.data.data.magic) {
|
if (item.system.magic) {
|
||||||
label += "*("
|
label += "*("
|
||||||
+ (item.data.data.stats.attackBonus < 0 ? "" : "+")
|
+ (item.system.stats.attackBonus < 0 ? "" : "+")
|
||||||
+ item.data.data.stats.attackBonus + "/"
|
+ item.system.stats.attackBonus + "/"
|
||||||
+ (item.data.data.stats.damageBonus < 0 ? "" : "+")
|
+ (item.system.stats.damageBonus < 0 ? "" : "+")
|
||||||
+ item.data.data.stats.damageBonus + ")"
|
+ item.system.stats.damageBonus + ")"
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.gear.weapons[item.data._id] = {
|
ret.gear.weapons[item.id] = {
|
||||||
label: label,
|
label: label,
|
||||||
skillId: item.data.data.skillId,
|
skillId: item.system.skillId,
|
||||||
magic: item.data.data.magic,
|
magic: item.system.magic,
|
||||||
calc: item.data.data.calc
|
calc: item.system.calc
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!skip.defensiveWeapons) {
|
if (!skip.defensiveWeapons) {
|
||||||
context.items?.filter(item => item.data.type === "defensiveWeapon").forEach(item => {
|
context.items?.filter(item => item.type === "defensiveWeapon").forEach(item => {
|
||||||
item.prepareDerivedData()
|
item.prepareDerivedData()
|
||||||
|
|
||||||
let label = item.data.name
|
let label = item.name
|
||||||
if (item.data.data.magic) {
|
if (item.system.magic) {
|
||||||
label += "*("
|
label += "*("
|
||||||
+ (item.data.data.stats.defenseBonus < 0 ? "" : "+")
|
+ (item.system.stats.defenseBonus < 0 ? "" : "+")
|
||||||
+ item.data.data.stats.defenseBonus + ")"
|
+ item.system.stats.defenseBonus + ")"
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.gear.defensiveWeapons[item.data._id] = {
|
ret.gear.defensiveWeapons[item.id] = {
|
||||||
label: label,
|
label: label,
|
||||||
skillId: item.data.data.skillId,
|
skillId: item.system.skillId,
|
||||||
magic: item.data.data.magic,
|
magic: item.system.magic,
|
||||||
calc: item.data.data.calc
|
calc: item.system.calc
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!skip.armor) {
|
if (!skip.armor) {
|
||||||
context.items?.filter(item => item.data.type === "armor").forEach(item => {
|
context.items?.filter(item => item.type === "armor").forEach(item => {
|
||||||
item.prepareDerivedData()
|
item.prepareDerivedData()
|
||||||
|
|
||||||
let label = item.data.name
|
let label = item.name
|
||||||
if (item.data.data.magic) {
|
if (item.system.magic) {
|
||||||
label += "*"
|
label += "*"
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.gear.armor[item.data._id] = {
|
ret.gear.armor[item.id] = {
|
||||||
label: label,
|
label: label,
|
||||||
magic: item.data.data.magic,
|
magic: item.system.magic,
|
||||||
calc: item.data.data.calc
|
calc: item.system.calc
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!skip.spells) {
|
if (!skip.spells) {
|
||||||
context.items?.filter(item => item.data.type === "spell").forEach(item => {
|
context.items?.filter(item => item.type === "spell").forEach(item => {
|
||||||
item.prepareDerivedData()
|
item.prepareDerivedData()
|
||||||
|
|
||||||
ret.spells[item.data._id] = {
|
ret.spells[item.id] = {
|
||||||
label: item.data.name,
|
label: item.name,
|
||||||
process: "midgard5.spell-process-" + item.data.data.process,
|
process: "midgard5.spell-process-" + item.system.process,
|
||||||
calc: item.data.data.calc
|
calc: item.system.calc
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -243,13 +243,13 @@ export class M5Character extends Actor {
|
||||||
}
|
}
|
||||||
|
|
||||||
prepareDerivedData() {
|
prepareDerivedData() {
|
||||||
const context = (this as any).data
|
const data = (this as any).system
|
||||||
context.data.calc = this.derivedData({})
|
data.calc = this.derivedData({})
|
||||||
}
|
}
|
||||||
|
|
||||||
override getRollData(): any {
|
override getRollData(): any {
|
||||||
return {
|
return {
|
||||||
c: (this as any).data.data,
|
c: (this as any).system,
|
||||||
i: null,
|
i: null,
|
||||||
iType: null,
|
iType: null,
|
||||||
rolls: {},
|
rolls: {},
|
||||||
|
|
@ -305,8 +305,8 @@ export class M5Character extends Actor {
|
||||||
}
|
}
|
||||||
|
|
||||||
attribute(name: string): M5Attribute {
|
attribute(name: string): M5Attribute {
|
||||||
const context = (this as any).data
|
const data = (this as any).system
|
||||||
return context?.data?.attributes[name]
|
return data?.attributes[name]
|
||||||
}
|
}
|
||||||
|
|
||||||
createSkill(skillName: string): Promise<M5Item> {
|
createSkill(skillName: string): Promise<M5Item> {
|
||||||
|
|
@ -322,7 +322,7 @@ export class M5Character extends Actor {
|
||||||
}
|
}
|
||||||
|
|
||||||
getItem(itemId: string): any {
|
getItem(itemId: string): any {
|
||||||
if (!(this as any).data?.items)
|
if (!(this as any).items)
|
||||||
return null
|
return null
|
||||||
return (this as any).getEmbeddedDocument("Item", itemId)
|
return (this as any).getEmbeddedDocument("Item", itemId)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,38 +7,40 @@ export class M5Item extends Item {
|
||||||
static readonly SKILL = "skill"
|
static readonly SKILL = "skill"
|
||||||
|
|
||||||
prepareDerivedData() {
|
prepareDerivedData() {
|
||||||
|
const itemId: string = (this as any).id
|
||||||
|
const itemType: string = (this as any).type
|
||||||
const actor = (this.actor as any)
|
const actor = (this.actor as any)
|
||||||
const character = actor as M5Character
|
const character = actor as M5Character
|
||||||
const context = (this as any).data
|
const itemData = (this as any).system
|
||||||
const calc = context.data.calc
|
const calc = itemData.calc
|
||||||
|
|
||||||
if (context.type === "skill") {
|
if (itemType === "skill") {
|
||||||
calc.fw = context.data.fw
|
calc.fw = itemData.fw
|
||||||
calc.bonus = 0
|
calc.bonus = 0
|
||||||
|
|
||||||
let pairs: Array<M5ModPair> = [{
|
let pairs: Array<M5ModPair> = [{
|
||||||
source: context.name,
|
source: (this as any).name,
|
||||||
mod: {
|
mod: {
|
||||||
type: M5ModType.SKILL,
|
type: M5ModType.SKILL,
|
||||||
id: context._id,
|
id: itemId,
|
||||||
operation: M5ModOperation.SET,
|
operation: M5ModOperation.SET,
|
||||||
value: context.data.fw
|
value: itemData.fw
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
|
||||||
if (character) {
|
if (character) {
|
||||||
const actorCalc = character.derivedData({ skills: true, weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true })
|
const actorCalc = character.derivedData({ skills: true, weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true })
|
||||||
if (actorCalc?.skillMods && Object.keys(actorCalc.skillMods).indexOf(context._id) !== -1) {
|
if (actorCalc?.skillMods && Object.keys(actorCalc.skillMods).indexOf(itemId) !== -1) {
|
||||||
pairs = pairs.concat(actorCalc.skillMods[context._id])
|
pairs = pairs.concat(actorCalc.skillMods[itemId])
|
||||||
|
|
||||||
if (context.data?.attribute && context.data?.attribute !== "") {
|
if (itemData?.attribute && itemData.attribute !== "") {
|
||||||
pairs.push({
|
pairs.push({
|
||||||
source: context.name,
|
source: (this as any).name,
|
||||||
mod: {
|
mod: {
|
||||||
type: M5ModType.SKILL,
|
type: M5ModType.SKILL,
|
||||||
id: context._id,
|
id: itemId,
|
||||||
operation: M5ModOperation.ADD,
|
operation: M5ModOperation.ADD,
|
||||||
value: actorCalc.attributes[context.data.attribute].bonus
|
value: actorCalc.attributes[itemData.attribute].bonus
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -55,11 +57,11 @@ export class M5Item extends Item {
|
||||||
|
|
||||||
calc.ew = calc.fw + calc.bonus
|
calc.ew = calc.fw + calc.bonus
|
||||||
calc.sources = res.mods
|
calc.sources = res.mods
|
||||||
} else if (context.type === "weapon") {
|
} else if (itemType === "weapon") {
|
||||||
calc.fw = 0
|
calc.fw = 0
|
||||||
calc.bonus = 0
|
calc.bonus = 0
|
||||||
calc.special = context.data.special ? 2 : 0
|
calc.special = itemData.special ? 2 : 0
|
||||||
calc.ew = calc.special + context.data.stats.attackBonus
|
calc.ew = calc.special + itemData.stats.attackBonus
|
||||||
calc.combatSkills = null
|
calc.combatSkills = null
|
||||||
|
|
||||||
if (actor) {
|
if (actor) {
|
||||||
|
|
@ -69,21 +71,21 @@ export class M5Item extends Item {
|
||||||
calc.combatSkills = actorCalc.skills.combat
|
calc.combatSkills = actorCalc.skills.combat
|
||||||
}
|
}
|
||||||
|
|
||||||
const skill = character.getItem(context.data.skillId)
|
const skill = character.getItem(itemData.skillId)
|
||||||
//console.log("M5Item.prepareDerivedData:weapon", context.data, skill?.data?.data)
|
//console.log("M5Item.prepareDerivedData:weapon", itemData, skill?.system)
|
||||||
if (skill) {
|
if (skill) {
|
||||||
skill.prepareDerivedData()
|
skill.prepareDerivedData()
|
||||||
const skillData = skill.data.data
|
const skillData = skill.system
|
||||||
calc.ew += skillData.calc.ew
|
calc.ew += skillData.calc.ew
|
||||||
calc.bonus += skillData.calc.bonus
|
calc.bonus += skillData.calc.bonus
|
||||||
calc.fw += skillData.fw
|
calc.fw += skillData.fw
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (context.type === "defensiveWeapon") {
|
} else if (itemType === "defensiveWeapon") {
|
||||||
calc.fw = 0
|
calc.fw = 0
|
||||||
calc.bonus = 0
|
calc.bonus = 0
|
||||||
calc.special = context.data.special ? 2 : 0
|
calc.special = itemData.special ? 2 : 0
|
||||||
calc.ew = calc.special + context.data.stats.defenseBonus
|
calc.ew = calc.special + itemData.stats.defenseBonus
|
||||||
calc.combatSkills = null
|
calc.combatSkills = null
|
||||||
|
|
||||||
if (actor) {
|
if (actor) {
|
||||||
|
|
@ -93,28 +95,28 @@ export class M5Item extends Item {
|
||||||
calc.combatSkills = actorCalc.skills.combat
|
calc.combatSkills = actorCalc.skills.combat
|
||||||
}
|
}
|
||||||
|
|
||||||
const skill = character.getItem(context.data.skillId)
|
const skill = character.getItem(itemData.skillId)
|
||||||
//console.log("M5Item.prepareDerivedData:weapon", context.data, skill?.data?.data)
|
//console.log("M5Item.prepareDerivedData:weapon", itemData, skill?.system)
|
||||||
if (skill) {
|
if (skill) {
|
||||||
skill.prepareDerivedData()
|
skill.prepareDerivedData()
|
||||||
const skillData = skill.data.data
|
const skillData = skill.system
|
||||||
calc.ew += skillData.calc.ew
|
calc.ew += skillData.calc.ew
|
||||||
calc.bonus += skillData.calc.bonus
|
calc.bonus += skillData.calc.bonus
|
||||||
calc.fw += skillData.fw
|
calc.fw += skillData.fw
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (context.type === "spell") {
|
} else if (itemType === "spell") {
|
||||||
calc.ew = context.data.bonus
|
calc.ew = itemData.bonus
|
||||||
if (actor) {
|
if (actor) {
|
||||||
const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true })
|
const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true })
|
||||||
if (actorCalc) {
|
if (actorCalc) {
|
||||||
calc.ew += actorCalc.stats.spellCasting.value
|
calc.ew += actorCalc.stats.spellCasting.value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (context.type === "item") {
|
} else if (itemType === "item") {
|
||||||
calc.mods = {}
|
calc.mods = {}
|
||||||
Object.keys(context.data?.mods).forEach(key => {
|
Object.keys(itemData?.mods).forEach(key => {
|
||||||
const mod = context.data.mods[key]
|
const mod = itemData.mods[key]
|
||||||
const modCalc = {}
|
const modCalc = {}
|
||||||
switch (mod.type) {
|
switch (mod.type) {
|
||||||
case M5ModType.ATTRIBUTE: {
|
case M5ModType.ATTRIBUTE: {
|
||||||
|
|
@ -139,28 +141,28 @@ export class M5Item extends Item {
|
||||||
Object.keys(actorCalc.skills.general).forEach(skillId => {
|
Object.keys(actorCalc.skills.general).forEach(skillId => {
|
||||||
const skill = character.getItem(skillId)
|
const skill = character.getItem(skillId)
|
||||||
if (skill)
|
if (skill)
|
||||||
modCalc[skillId] = `${category}: ${skill.data.name}`
|
modCalc[skillId] = `${category}: ${skill.name}`
|
||||||
})
|
})
|
||||||
|
|
||||||
category = (game as Game).i18n.localize("midgard5.language")
|
category = (game as Game).i18n.localize("midgard5.language")
|
||||||
Object.keys(actorCalc.skills.language).forEach(skillId => {
|
Object.keys(actorCalc.skills.language).forEach(skillId => {
|
||||||
const skill = character.getItem(skillId)
|
const skill = character.getItem(skillId)
|
||||||
if (skill)
|
if (skill)
|
||||||
modCalc[skillId] = `${category}: ${skill.data.name}`
|
modCalc[skillId] = `${category}: ${skill.name}`
|
||||||
})
|
})
|
||||||
|
|
||||||
category = (game as Game).i18n.localize("midgard5.weapon-skill")
|
category = (game as Game).i18n.localize("midgard5.weapon-skill")
|
||||||
Object.keys(actorCalc.skills.combat).forEach(skillId => {
|
Object.keys(actorCalc.skills.combat).forEach(skillId => {
|
||||||
const skill = character.getItem(skillId)
|
const skill = character.getItem(skillId)
|
||||||
if (skill)
|
if (skill)
|
||||||
modCalc[skillId] = `${category}: ${skill.data.name}`
|
modCalc[skillId] = `${category}: ${skill.name}`
|
||||||
})
|
})
|
||||||
|
|
||||||
category = (game as Game).i18n.localize("midgard5.innate-ability")
|
category = (game as Game).i18n.localize("midgard5.innate-ability")
|
||||||
Object.keys(actorCalc.skills.innate).forEach(skillId => {
|
Object.keys(actorCalc.skills.innate).forEach(skillId => {
|
||||||
const skill = character.getItem(skillId)
|
const skill = character.getItem(skillId)
|
||||||
if (skill)
|
if (skill)
|
||||||
modCalc[skillId] = `${category}: ${skill.data.name}`
|
modCalc[skillId] = `${category}: ${skill.name}`
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -175,7 +177,7 @@ export class M5Item extends Item {
|
||||||
|
|
||||||
getRollData() {
|
getRollData() {
|
||||||
const actor = this.actor as any
|
const actor = this.actor as any
|
||||||
const context = (this as any).data
|
const item = this as any
|
||||||
|
|
||||||
let ret: M5RollData = actor?.getRollData() ?? {
|
let ret: M5RollData = actor?.getRollData() ?? {
|
||||||
c: null,
|
c: null,
|
||||||
|
|
@ -185,13 +187,13 @@ export class M5Item extends Item {
|
||||||
res: {}
|
res: {}
|
||||||
}
|
}
|
||||||
|
|
||||||
ret.i = context.data
|
ret.i = item.system
|
||||||
ret.iType = context.type
|
ret.iType = item.type
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
async roll() {
|
async roll() {
|
||||||
const item = (this as any).data
|
const item = (this as any)
|
||||||
|
|
||||||
// Initialize chat data.
|
// Initialize chat data.
|
||||||
const speaker = ChatMessage.getSpeaker({ actor: this.actor })
|
const speaker = ChatMessage.getSpeaker({ actor: this.actor })
|
||||||
|
|
@ -199,11 +201,11 @@ export class M5Item extends Item {
|
||||||
const label = `[${item.type}] ${item.name}`
|
const label = `[${item.type}] ${item.name}`
|
||||||
|
|
||||||
// If there's no roll data, send a chat message.
|
// If there's no roll data, send a chat message.
|
||||||
const formulaNames = item.data.rolls?.formulas ? Object.keys(item.data.rolls.formulas) : []
|
const formulaNames = item.system.rolls?.formulas ? Object.keys(item.system.rolls.formulas) : []
|
||||||
if (formulaNames.length > 0) {
|
if (formulaNames.length > 0) {
|
||||||
const rollData = this.getRollData()
|
const rollData = this.getRollData()
|
||||||
formulaNames.forEach(formulaName => {
|
formulaNames.forEach(formulaName => {
|
||||||
const formula = item.data.rolls.formulas[formulaName]
|
const formula = item.system.rolls.formulas[formulaName]
|
||||||
if (formula) {
|
if (formula) {
|
||||||
rollData.rolls[formulaName] = {
|
rollData.rolls[formulaName] = {
|
||||||
formula: formula.formula,
|
formula: formula.formula,
|
||||||
|
|
@ -224,7 +226,7 @@ export class M5Item extends Item {
|
||||||
speaker: speaker,
|
speaker: speaker,
|
||||||
rollMode: rollMode,
|
rollMode: rollMode,
|
||||||
flavor: label,
|
flavor: label,
|
||||||
content: item.data.description ?? ''
|
content: item.system.description ?? ''
|
||||||
})
|
})
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,8 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
return Promise.resolve(super.getData(options)).then(context => {
|
return Promise.resolve(super.getData(options)).then(context => {
|
||||||
actor.prepareDerivedData()
|
actor.prepareDerivedData()
|
||||||
|
|
||||||
const actorData = (actor as any).data.toObject(false)
|
context.actor = (actor as any).toObject(false)
|
||||||
context.actor = actorData;
|
context.data = (actor as any).system
|
||||||
context.data = actorData.data;
|
|
||||||
|
|
||||||
//console.log("Sheet Promise", context.actor, context.data)
|
//console.log("Sheet Promise", context.actor, context.data)
|
||||||
return context
|
return context
|
||||||
|
|
@ -95,7 +94,7 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
itemId = row.dataset["item"]
|
itemId = row.dataset["item"]
|
||||||
}
|
}
|
||||||
|
|
||||||
const context = this.actor.data
|
const context = this.actor as any
|
||||||
const item = context.items.get(itemId)
|
const item = context.items.get(itemId)
|
||||||
console.log("edit-item", item)
|
console.log("edit-item", item)
|
||||||
item.sheet.render(true)
|
item.sheet.render(true)
|
||||||
|
|
@ -111,7 +110,7 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
itemId = row.dataset["item"]
|
itemId = row.dataset["item"]
|
||||||
}
|
}
|
||||||
|
|
||||||
const context = this.actor.data
|
const context = this.actor as any
|
||||||
const item = context.items.get(itemId)
|
const item = context.items.get(itemId)
|
||||||
item.delete()
|
item.delete()
|
||||||
this.render(false)
|
this.render(false)
|
||||||
|
|
@ -122,10 +121,7 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
let skillId = row.dataset["item"]
|
let skillId = row.dataset["item"]
|
||||||
|
|
||||||
const actor = this.actor as any
|
const actor = this.actor as any
|
||||||
const context = this.actor.data
|
const item = actor.items.get(skillId) as M5Item
|
||||||
const data = context.data
|
|
||||||
|
|
||||||
const item = context.items.get(skillId) as M5Item
|
|
||||||
await item.roll()
|
await item.roll()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -134,8 +130,8 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
let skillName = row.dataset["skill"]
|
let skillName = row.dataset["skill"]
|
||||||
|
|
||||||
const actor = this.actor as M5Character
|
const actor = this.actor as M5Character
|
||||||
const context = this.actor.data
|
const context = this.actor as any
|
||||||
const data = context.data
|
const data = context.system
|
||||||
|
|
||||||
const skill = data.skills.general[skillName]
|
const skill = data.skills.general[skillName]
|
||||||
const attribute = data.attributes[skill.attribute]
|
const attribute = data.attributes[skill.attribute]
|
||||||
|
|
@ -161,7 +157,7 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
const row = event.target.parentElement.parentElement
|
const row = event.target.parentElement.parentElement
|
||||||
let skillName = row.dataset["skill"]
|
let skillName = row.dataset["skill"]
|
||||||
|
|
||||||
const data = this.actor.data.data
|
const data = this.actor.system
|
||||||
const unlearnedSkill = data.skills.general[skillName] as M5SkillUnlearned
|
const unlearnedSkill = data.skills.general[skillName] as M5SkillUnlearned
|
||||||
|
|
||||||
const character = this.actor as M5Character
|
const character = this.actor as M5Character
|
||||||
|
|
@ -182,10 +178,7 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
const row = event.target.parentElement.parentElement
|
const row = event.target.parentElement.parentElement
|
||||||
let itemId = row.dataset["item"]
|
let itemId = row.dataset["item"]
|
||||||
|
|
||||||
const actor = this.actor as any
|
const context = this.actor as any
|
||||||
const context = this.actor.data
|
|
||||||
const data = context.data
|
|
||||||
|
|
||||||
const item = context.items.get(itemId) as M5Item
|
const item = context.items.get(itemId) as M5Item
|
||||||
await item.roll()
|
await item.roll()
|
||||||
})
|
})
|
||||||
|
|
@ -219,11 +212,11 @@ export default class M5CharacterSheet extends ActorSheet {
|
||||||
const item = this.actor.items.get(li.dataset.itemId)
|
const item = this.actor.items.get(li.dataset.itemId)
|
||||||
|
|
||||||
// limit transfer on personal weapons/armour/gear
|
// limit transfer on personal weapons/armour/gear
|
||||||
if (["skill", "item", "weapon", "defensiveWeapon", "armor", "spell"].includes(item.data.type)) {
|
if (["skill", "item", "weapon", "defensiveWeapon", "armor", "spell"].includes(item.type)) {
|
||||||
const dragData = {
|
const dragData = {
|
||||||
type: "Transfer",
|
type: "Transfer",
|
||||||
actorId: this.actor.id,
|
actorId: this.actor.id,
|
||||||
data: item.data,
|
data: item.toObject(false),
|
||||||
tokenId: null
|
tokenId: null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ export class M5ItemSheet extends ItemSheet {
|
||||||
get template() {
|
get template() {
|
||||||
//console.log("M5ItemSheet", this.item.data.type)
|
//console.log("M5ItemSheet", this.item.data.type)
|
||||||
const path = "systems/midgard5/templates/sheets/item"
|
const path = "systems/midgard5/templates/sheets/item"
|
||||||
return `${path}/${this.item.data.type}.hbs`
|
return `${path}/${this.item.type}.hbs`
|
||||||
}
|
}
|
||||||
|
|
||||||
override getData(options?: Partial<ItemSheet.Options>): ItemSheet.Data<ItemSheet.Options> | Promise<ItemSheet.Data<ItemSheet.Options>> {
|
override getData(options?: Partial<ItemSheet.Options>): ItemSheet.Data<ItemSheet.Options> | Promise<ItemSheet.Data<ItemSheet.Options>> {
|
||||||
|
|
@ -24,7 +24,7 @@ export class M5ItemSheet extends ItemSheet {
|
||||||
const context = value as any
|
const context = value as any
|
||||||
|
|
||||||
// Use a safe clone of the item data for further operations.
|
// Use a safe clone of the item data for further operations.
|
||||||
const itemData = context.item.data
|
const itemData = context.item
|
||||||
|
|
||||||
// Retrieve the roll data for TinyMCE editors.
|
// Retrieve the roll data for TinyMCE editors.
|
||||||
context.rollData = {}
|
context.rollData = {}
|
||||||
|
|
@ -35,7 +35,7 @@ export class M5ItemSheet extends ItemSheet {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the actor's data to context.data for easier access, as well as flags.
|
// Add the actor's data to context.data for easier access, as well as flags.
|
||||||
context.data = itemData.data
|
context.system = itemData.system
|
||||||
context.flags = itemData.flags
|
context.flags = itemData.flags
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
@ -46,8 +46,8 @@ export class M5ItemSheet extends ItemSheet {
|
||||||
super.activateListeners(html)
|
super.activateListeners(html)
|
||||||
|
|
||||||
html.find(".add-mod").on("click", async (event) => {
|
html.find(".add-mod").on("click", async (event) => {
|
||||||
const context = this.object.data
|
const context = this.object
|
||||||
const mods = context.data.mods
|
const mods = context.system.mods
|
||||||
const modIndex = Object.keys(mods).length
|
const modIndex = Object.keys(mods).length
|
||||||
mods[modIndex.toString()] = {
|
mods[modIndex.toString()] = {
|
||||||
type: M5ModType.ATTRIBUTE,
|
type: M5ModType.ATTRIBUTE,
|
||||||
|
|
@ -72,7 +72,7 @@ export class M5ItemSheet extends ItemSheet {
|
||||||
itemId = row.dataset["item"]
|
itemId = row.dataset["item"]
|
||||||
}
|
}
|
||||||
|
|
||||||
const context = this.item.data
|
const context = this.item
|
||||||
const item = context.items.get(itemId)
|
const item = context.items.get(itemId)
|
||||||
item.delete()
|
item.delete()
|
||||||
this.render(false)
|
this.render(false)
|
||||||
|
|
@ -90,7 +90,7 @@ export class M5ItemSheet extends ItemSheet {
|
||||||
rollIndex = row.dataset["roll"]
|
rollIndex = row.dataset["roll"]
|
||||||
}
|
}
|
||||||
|
|
||||||
const rolls = this.item.data.data.rolls.formulas
|
const rolls = this.item.system.rolls.formulas
|
||||||
rolls[rollIndex] = null
|
rolls[rollIndex] = null
|
||||||
|
|
||||||
this.item.update({
|
this.item.update({
|
||||||
|
|
@ -104,7 +104,7 @@ export class M5ItemSheet extends ItemSheet {
|
||||||
})
|
})
|
||||||
|
|
||||||
html.find(".roll-create").on("click", async (event) => {
|
html.find(".roll-create").on("click", async (event) => {
|
||||||
const rolls = this.item.data.data.rolls.formulas
|
const rolls = this.item.system.rolls.formulas
|
||||||
|
|
||||||
const indeces = Object.keys(rolls).map(index => parseInt(index)).sort().reverse()
|
const indeces = Object.keys(rolls).map(index => parseInt(index)).sort().reverse()
|
||||||
const index = (indeces.find(index => !!rolls[index.toString()]) ?? -1) + 1
|
const index = (indeces.find(index => !!rolls[index.toString()]) ?? -1) + 1
|
||||||
|
|
@ -127,7 +127,7 @@ export class M5ItemSheet extends ItemSheet {
|
||||||
})
|
})
|
||||||
|
|
||||||
// Drag & Drop
|
// Drag & Drop
|
||||||
if (["item"].includes(this.object.data?.type)) {
|
if (["item"].includes(this.object.type)) {
|
||||||
const itemToItemAssociation = new DragDrop({
|
const itemToItemAssociation = new DragDrop({
|
||||||
dragSelector: ".item",
|
dragSelector: ".item",
|
||||||
dropSelector: null,
|
dropSelector: null,
|
||||||
|
|
@ -177,7 +177,7 @@ export class M5ItemSheet extends ItemSheet {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((itemObject.type === "mod")) {
|
if ((itemObject.type === "mod")) {
|
||||||
let mods = obj?.data?.data?.mods
|
let mods = obj?.system?.mods
|
||||||
if (!mods)
|
if (!mods)
|
||||||
mods = []
|
mods = []
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
"name": "midgard5",
|
"id": "midgard5",
|
||||||
"title": "Midgard 5. Edition",
|
"title": "Midgard 5. Edition",
|
||||||
"description": "The German RPG Midgard 5. Edition",
|
"description": "The German RPG Midgard 5. Edition",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"compatibility": {
|
"compatibility": {
|
||||||
"minimum": "9",
|
"minimum": "10",
|
||||||
"verified": "10"
|
"verified": "10"
|
||||||
},
|
},
|
||||||
"templateVersion": 3,
|
"templateVersion": 3,
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{{#each actor.data.skills.general as |skill key|}}
|
{{#each actor.system.skills.general as |skill key|}}
|
||||||
<tr data-skill="{{key}}">
|
<tr data-skill="{{key}}">
|
||||||
<td><button class="learn-button">{{localize "midgard5.learn"}}</button></td>
|
<td><button class="learn-button">{{localize "midgard5.learn"}}</button></td>
|
||||||
<td class="padding">{{localizeMidgard key}}</td>
|
<td class="padding">{{localizeMidgard key}}</td>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue