Include Weapons and effects

Changes:
 + include weapon pack and effect pack
 + handle effects as own entity
 + effects can influence your attributes and skills
 + add Aktive Effekte page for effects on your character
This commit is contained in:
2023-11-24 20:11:36 +01:00
parent 4b2daef20a
commit 68cb8fcf6d
308 changed files with 1794 additions and 101 deletions
+24 -2
View File
@@ -24,7 +24,9 @@ export class M5Character extends Actor {
return -2;
}
derivedData(skip: { mods?: boolean; skills?: boolean; weapons?: boolean; defensiveWeapons?: boolean; armor?: boolean; items?: boolean; spells?: boolean } = {}): M5CharacterCalculatedData {
derivedData(
skip: { mods?: boolean; skills?: boolean; weapons?: boolean; defensiveWeapons?: boolean; armor?: boolean; items?: boolean; spells?: boolean; effects?: boolean } = {}
): M5CharacterCalculatedData {
let ret: M5CharacterCalculatedData = {
level: 0,
attributes: {
@@ -68,6 +70,7 @@ export class M5Character extends Actor {
defensiveWeapons: {},
armor: {},
items: {},
effects: {},
},
spells: {},
} as M5CharacterCalculatedData;
@@ -124,7 +127,7 @@ export class M5Character extends Actor {
const aggregate = new M5ModAggregate(data, ret);
context.items
?.filter((item) => item.type === "item")
?.filter((item) => item.type === "item" || item.type === "effect")
.forEach((item) => {
const mods = item.system.mods;
//console.log("Actor item mods", mods)
@@ -156,6 +159,25 @@ export class M5Character extends Actor {
});
}
if (!skip?.items) {
context.items
?.filter((item) => item.type === "effect")
.forEach((item) => {
item.prepareDerivedData();
let label = item.name;
if (item.system.magic) {
label += "*";
}
ret.gear.effects[item.id] = {
label: label,
magic: item.system.magic,
calc: item.system.calc,
};
});
}
if (!skip?.skills) {
context.items
?.filter((item) => item.type === "skill")