feat: add proposal and bond types to shared protocol
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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
@@ -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;
|
||||
}>;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user