Fixes skill calculation.

This commit is contained in:
mstein 2023-01-03 00:22:28 +01:00
parent b104480a48
commit 0ac8107772
3 changed files with 20 additions and 21 deletions

View File

@ -123,7 +123,7 @@ export class M5Character extends Actor {
ret.stats.poisonResistance = this.modResult(30 + Math.floor(ret.attributes.ko.value / 2))
ret.stats.enduranceBonus = Math.floor(ret.attributes.ko.value/10) + Math.floor(ret.attributes.st.value/20)
if (!skip.mods) {
if (!skip?.mods) {
const aggregate = new M5ModAggregate(data, ret)
context.items?.filter(item => item.type === "item").forEach(item => {
@ -136,9 +136,10 @@ export class M5Character extends Actor {
})
ret.skillMods = aggregate.calculate()
// TODO apply attribute and stat calculation to ret.
}
if (!skip.items) {
if (!skip?.items) {
context.items?.filter(item => item.type === "item").forEach(item => {
item.prepareDerivedData()
@ -155,7 +156,7 @@ export class M5Character extends Actor {
})
}
if (!skip.skills) {
if (!skip?.skills) {
context.items?.filter(item => item.type === "skill").forEach(item => {
item.prepareDerivedData()
const skillMap = ret.skills[item.system.type]
@ -168,7 +169,7 @@ export class M5Character extends Actor {
})
}
if (!skip.weapons) {
if (!skip?.weapons) {
context.items?.filter(item => item.type === "weapon").forEach(item => {
item.prepareDerivedData()
@ -190,7 +191,7 @@ export class M5Character extends Actor {
})
}
if (!skip.defensiveWeapons) {
if (!skip?.defensiveWeapons) {
context.items?.filter(item => item.type === "defensiveWeapon").forEach(item => {
item.prepareDerivedData()
@ -210,7 +211,7 @@ export class M5Character extends Actor {
})
}
if (!skip.armor) {
if (!skip?.armor) {
context.items?.filter(item => item.type === "armor").forEach(item => {
item.prepareDerivedData()
@ -227,7 +228,7 @@ export class M5Character extends Actor {
})
}
if (!skip.spells) {
if (!skip?.spells) {
context.items?.filter(item => item.type === "spell").forEach(item => {
item.prepareDerivedData()

View File

@ -32,6 +32,7 @@ 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(itemId) !== -1) {
pairs = pairs.concat(actorCalc.skillMods[itemId])
}
if (itemData?.attribute && itemData.attribute !== "") {
pairs.push({
@ -45,7 +46,6 @@ export class M5Item extends Item {
})
}
}
}
const res = M5ModAggregate.processPairs(pairs)
res.mods.forEach(mod => {

View File

@ -31,11 +31,9 @@ export class M5ItemSheet extends ItemSheet {
let actor = this.object?.parent ?? null
if (actor) {
context.rollData = actor.getRollData()
} else {
}
// Add the actor's data to context.data for easier access, as well as flags.
context.system = itemData.system
context.data = itemData.system
context.flags = itemData.flags
return context