Finishes mod system functionality

This commit is contained in:
mstein
2022-07-13 22:19:04 +02:00
parent c827693e72
commit 58ed9d7d74
4 changed files with 33 additions and 85 deletions
+1 -1
View File
@@ -128,7 +128,7 @@ export class M5Character extends Actor {
context.items?.filter(item => item.data.type === "item").forEach(item => {
const mods = item.data.data.mods
console.log("Actor item mods", mods)
//console.log("Actor item mods", mods)
Object.keys(mods).forEach(modIndex => {
const mod = mods[modIndex] as M5ItemMod
aggregate.push(mod, item.data.name)
+7 -4
View File
@@ -60,10 +60,13 @@ export default class M5ModAggregate {
}
let key = mod.id
if (mod.type === M5ModType.ATTRIBUTE)
key = (mod.id + "").toLowerCase()
else if (mod.type === M5ModType.STAT)
key = (mod.id + "").toLowerCase()
// if (mod.type === M5ModType.ATTRIBUTE) {
// key = M5Attributes[mod.id] as string
// console.log("M5ModType.ATTRIBUTE", mod.id, key)
// } else if (mod.type === M5ModType.STAT) {
// key = M5Stats[mod.id] as string
// console.log("M5ModType.STAT", mod.id, key)
// }
if (map.has(key))
map.get(key).push(pair)
+15 -15
View File
@@ -30,18 +30,18 @@ export class M5Item extends Item {
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 (context.data?.attribute && context.data?.attribute !== "") {
pairs.push({
source: context.name,
mod: {
type: M5ModType.SKILL,
id: context._id,
operation: M5ModOperation.ADD,
value: actorCalc.attributes[context.data.attribute].bonus
}
})
if (context.data?.attribute && context.data?.attribute !== "") {
pairs.push({
source: context.name,
mod: {
type: M5ModType.SKILL,
id: context._id,
operation: M5ModOperation.ADD,
value: actorCalc.attributes[context.data.attribute].bonus
}
})
}
}
}
@@ -119,15 +119,15 @@ export class M5Item extends Item {
switch (mod.type) {
case M5ModType.ATTRIBUTE: {
for (const key of enumKeys(M5Attributes)) {
const val = M5Attributes[key]
modCalc[key] = (game as Game).i18n.localize(`midgard5.actor-${val}-long`)
const val: string = M5Attributes[key]
modCalc[val] = (game as Game).i18n.localize(`midgard5.actor-${val}-long`)
}
break
}
case M5ModType.STAT: {
for (const key of enumKeys(M5Stats)) {
const val = M5Stats[key]
modCalc[key] = (game as Game).i18n.localize(`midgard5.mod-stat-${val}`)
const val: string = M5Stats[key]
modCalc[val] = (game as Game).i18n.localize(`midgard5.mod-stat-${val}`)
}
break
}