feat: add proposal and bond types to shared protocol

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
root
2026-03-07 19:18:38 +00:00
parent 925f8a7494
commit 99e041d6cf
2 changed files with 7 additions and 1 deletions
+2
View File
@@ -59,5 +59,7 @@ export const EMOTING_DURATION = 20; // ticks (2s)
export const SOCIAL_GLOBAL_COOLDOWN = 50; // ticks (5s)
export const SOCIAL_PAIR_COOLDOWN = 300; // ticks (30s)
export const PROPOSAL_EMOTING_DURATION = 30; // 3 seconds - longer for dramatic effect
// Camera mode commands
export const MAX_NPC_COUNT = 50;
+5 -1
View File
@@ -73,7 +73,7 @@ export interface NPCBrain {
goalQueue: GoalType[];
}
export type InteractionPhase = 'none' | 'facing' | 'pausing' | 'emoting';
export type InteractionPhase = 'none' | 'facing' | 'pausing' | 'emoting' | 'proposing';
export type InteractionOutcome = 'positive' | 'negative';
export interface SocialState {
@@ -84,6 +84,9 @@ export interface SocialState {
globalCooldown: number;
pairCooldowns: Map<EntityId, number>;
lastOutcome: LastOutcome | null;
proposalCooldown: number;
pendingProposal: { targetId: EntityId; type: string } | null;
isProposalInteraction: boolean;
}
export interface RelationshipData {
@@ -123,6 +126,7 @@ export interface EntityState {
value: number;
classification: string;
status: 'active' | 'memory';
bond: string | null;
}>;
}