diff --git a/src/characters/character-block.ts b/src/characters/character-block.ts index 66552bf1..ebf3e459 100644 --- a/src/characters/character-block.ts +++ b/src/characters/character-block.ts @@ -210,7 +210,13 @@ class CharacterRenderer extends TrackedEntityRenderer<
-
${this.plugin.settings.enableIronsworn ? "Alias" : "Callsign"}
+
+ ${this.plugin.settings.enableIronsworn + ? "Alias" + : this.plugin.settings.enableSunderedIsles + ? "Moniker" + : "Callsign"} +
-
XP earned
-
+
Player
+
+ +
+
XP From Tracks
+
${Object.values(lens.special_tracks).reduce((acc, track) => { return acc + legacyTrackXpEarned(track.get(raw)); }, 0)}
+
XP added
+
+ +
+
Total XP earned
+
+ ${(lens.xp_added.get(raw) ?? 0) + + Object.values(lens.special_tracks).reduce((acc, track) => { + return acc + legacyTrackXpEarned(track.get(raw)); + }, 0)} +
XP spent
{ shadow: 0, heart: 0, edge: 0, + xp_added: 0, xp_spent: 0, Bonds_Progress: 0, Bonds_XPEarned: 0, diff --git a/src/characters/lens.ts b/src/characters/lens.ts index 86654975..4c1aa172 100644 --- a/src/characters/lens.ts +++ b/src/characters/lens.ts @@ -53,7 +53,9 @@ export const baseIronVaultSchema = z callsign: z.string().optional(), pronouns: z.string().optional(), description: z.string().optional(), + player: z.string().optional(), xp_spent: z.number().int().nonnegative().default(0), + xp_added: z.number().int().nonnegative().default(0), // Starting momentum is 2 according to Starforged p111 momentum: z.number().int().gte(-10).lte(10).default(2), @@ -74,7 +76,9 @@ export interface CharacterLens { callsign: Lens; pronouns: Lens; description: Lens; + player: Lens; xp_spent: Lens; + xp_added: Lens; momentum: Lens; stats: Record>; condition_meters: Record>; @@ -520,12 +524,24 @@ export function characterLens(ruleset: Ruleset): { schema: baseIronVaultSchema.shape.description, }), ), + player: v( + lensForSchemaProp({ + path: "player", + schema: baseIronVaultSchema.shape.player, + }), + ), xp_spent: v( lensForSchemaProp({ path: "xp_spent", schema: baseIronVaultSchema.shape.xp_spent, }), ), + xp_added: v( + lensForSchemaProp({ + path: "xp_added", + schema: baseIronVaultSchema.shape.xp_added, + }), + ), momentum: v( lensForSchemaProp({ path: "momentum",