Converted lots of document access to V10.

This commit is contained in:
mstein
2023-01-02 23:34:00 +01:00
parent c0dd5b584a
commit b104480a48
7 changed files with 123 additions and 128 deletions
+43 -41
View File
@@ -7,38 +7,40 @@ export class M5Item extends Item {
static readonly SKILL = "skill"
prepareDerivedData() {
const itemId: string = (this as any).id
const itemType: string = (this as any).type
const actor = (this.actor as any)
const character = actor as M5Character
const context = (this as any).data
const calc = context.data.calc
const itemData = (this as any).system
const calc = itemData.calc
if (context.type === "skill") {
calc.fw = context.data.fw
if (itemType === "skill") {
calc.fw = itemData.fw
calc.bonus = 0
let pairs: Array<M5ModPair> = [{
source: context.name,
source: (this as any).name,
mod: {
type: M5ModType.SKILL,
id: context._id,
id: itemId,
operation: M5ModOperation.SET,
value: context.data.fw
value: itemData.fw
}
}]
if (character) {
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) {
pairs = pairs.concat(actorCalc.skillMods[context._id])
if (actorCalc?.skillMods && Object.keys(actorCalc.skillMods).indexOf(itemId) !== -1) {
pairs = pairs.concat(actorCalc.skillMods[itemId])
if (context.data?.attribute && context.data?.attribute !== "") {
if (itemData?.attribute && itemData.attribute !== "") {
pairs.push({
source: context.name,
source: (this as any).name,
mod: {
type: M5ModType.SKILL,
id: context._id,
id: itemId,
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.sources = res.mods
} else if (context.type === "weapon") {
} else if (itemType === "weapon") {
calc.fw = 0
calc.bonus = 0
calc.special = context.data.special ? 2 : 0
calc.ew = calc.special + context.data.stats.attackBonus
calc.special = itemData.special ? 2 : 0
calc.ew = calc.special + itemData.stats.attackBonus
calc.combatSkills = null
if (actor) {
@@ -69,21 +71,21 @@ export class M5Item extends Item {
calc.combatSkills = actorCalc.skills.combat
}
const skill = character.getItem(context.data.skillId)
//console.log("M5Item.prepareDerivedData:weapon", context.data, skill?.data?.data)
const skill = character.getItem(itemData.skillId)
//console.log("M5Item.prepareDerivedData:weapon", itemData, skill?.system)
if (skill) {
skill.prepareDerivedData()
const skillData = skill.data.data
const skillData = skill.system
calc.ew += skillData.calc.ew
calc.bonus += skillData.calc.bonus
calc.fw += skillData.fw
}
}
} else if (context.type === "defensiveWeapon") {
} else if (itemType === "defensiveWeapon") {
calc.fw = 0
calc.bonus = 0
calc.special = context.data.special ? 2 : 0
calc.ew = calc.special + context.data.stats.defenseBonus
calc.special = itemData.special ? 2 : 0
calc.ew = calc.special + itemData.stats.defenseBonus
calc.combatSkills = null
if (actor) {
@@ -93,28 +95,28 @@ export class M5Item extends Item {
calc.combatSkills = actorCalc.skills.combat
}
const skill = character.getItem(context.data.skillId)
//console.log("M5Item.prepareDerivedData:weapon", context.data, skill?.data?.data)
const skill = character.getItem(itemData.skillId)
//console.log("M5Item.prepareDerivedData:weapon", itemData, skill?.system)
if (skill) {
skill.prepareDerivedData()
const skillData = skill.data.data
const skillData = skill.system
calc.ew += skillData.calc.ew
calc.bonus += skillData.calc.bonus
calc.fw += skillData.fw
}
}
} else if (context.type === "spell") {
calc.ew = context.data.bonus
} else if (itemType === "spell") {
calc.ew = itemData.bonus
if (actor) {
const actorCalc = character.derivedData({ weapons: true, defensiveWeapons: true, armor: true, items: true, spells: true })
if (actorCalc) {
calc.ew += actorCalc.stats.spellCasting.value
}
}
} else if (context.type === "item") {
} else if (itemType === "item") {
calc.mods = {}
Object.keys(context.data?.mods).forEach(key => {
const mod = context.data.mods[key]
Object.keys(itemData?.mods).forEach(key => {
const mod = itemData.mods[key]
const modCalc = {}
switch (mod.type) {
case M5ModType.ATTRIBUTE: {
@@ -139,28 +141,28 @@ export class M5Item extends Item {
Object.keys(actorCalc.skills.general).forEach(skillId => {
const skill = character.getItem(skillId)
if (skill)
modCalc[skillId] = `${category}: ${skill.data.name}`
modCalc[skillId] = `${category}: ${skill.name}`
})
category = (game as Game).i18n.localize("midgard5.language")
Object.keys(actorCalc.skills.language).forEach(skillId => {
const skill = character.getItem(skillId)
if (skill)
modCalc[skillId] = `${category}: ${skill.data.name}`
modCalc[skillId] = `${category}: ${skill.name}`
})
category = (game as Game).i18n.localize("midgard5.weapon-skill")
Object.keys(actorCalc.skills.combat).forEach(skillId => {
const skill = character.getItem(skillId)
if (skill)
modCalc[skillId] = `${category}: ${skill.data.name}`
modCalc[skillId] = `${category}: ${skill.name}`
})
category = (game as Game).i18n.localize("midgard5.innate-ability")
Object.keys(actorCalc.skills.innate).forEach(skillId => {
const skill = character.getItem(skillId)
if (skill)
modCalc[skillId] = `${category}: ${skill.data.name}`
modCalc[skillId] = `${category}: ${skill.name}`
})
}
}
@@ -175,7 +177,7 @@ export class M5Item extends Item {
getRollData() {
const actor = this.actor as any
const context = (this as any).data
const item = this as any
let ret: M5RollData = actor?.getRollData() ?? {
c: null,
@@ -185,13 +187,13 @@ export class M5Item extends Item {
res: {}
}
ret.i = context.data
ret.iType = context.type
ret.i = item.system
ret.iType = item.type
return ret
}
async roll() {
const item = (this as any).data
const item = (this as any)
// Initialize chat data.
const speaker = ChatMessage.getSpeaker({ actor: this.actor })
@@ -199,11 +201,11 @@ export class M5Item extends Item {
const label = `[${item.type}] ${item.name}`
// 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) {
const rollData = this.getRollData()
formulaNames.forEach(formulaName => {
const formula = item.data.rolls.formulas[formulaName]
const formula = item.system.rolls.formulas[formulaName]
if (formula) {
rollData.rolls[formulaName] = {
formula: formula.formula,
@@ -224,7 +226,7 @@ export class M5Item extends Item {
speaker: speaker,
rollMode: rollMode,
flavor: label,
content: item.data.description ?? ''
content: item.system.description ?? ''
})
return null
}