From 1351708c7b6419c23e6ebade1a50fdfd6700d0e7 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 7 Mar 2026 14:14:26 +0000 Subject: [PATCH] feat: add Stats and StatModifiers types to shared Co-Authored-By: Claude Opus 4.6 --- shared/src/types.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/shared/src/types.ts b/shared/src/types.ts index 47bb7e5..048d6d0 100644 --- a/shared/src/types.ts +++ b/shared/src/types.ts @@ -25,6 +25,33 @@ export interface Needs { energy: number; // 0-100 } +export interface Stats { + // Physical + strength: number; + dexterity: number; + constitution: number; + intelligence: number; + perception: number; + // Personality + sociability: number; + courage: number; + curiosity: number; + empathy: number; + temperament: number; +} + +export type StatName = keyof Stats; + +export interface StatModifier { + stat: StatName; + value: number; + remaining: number; // ticks remaining, -1 = permanent (needs-based, replaced each tick) +} + +export interface StatModifiers { + modifiers: StatModifier[]; +} + export type MovementState = 'idle' | 'walking'; export type GoalType = 'wander' | 'eat' | 'rest'; @@ -65,6 +92,7 @@ export interface EntityState { movement: Movement; appearance: Appearance; needs?: Needs; + stats?: Stats; npcBrain?: NPCBrain; playerControlled?: PlayerControlled; name?: string; // NPC display name