Finishes mod system functionality
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user