tweak: reduce stat drift rates and increase social cooldowns
- Halve sociability/empathy drift on positive outcome (0.05 -> 0.025) - Halve temperament drift on negative outcome (0.02 -> 0.01) - Increase social global cooldown (50 -> 75 ticks) - Increase social pair cooldown (300 -> 450 ticks) - Increase base proposal cooldown (500 -> 750) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -48,7 +48,7 @@ export const relationshipConfig = {
|
||||
proposalAcceptanceBonus: 5,
|
||||
proposalRejectionMultiplier: 2.0,
|
||||
proposalRejectionRejecterMultiplier: 0.5,
|
||||
baseProposalCooldown: 500,
|
||||
baseProposalCooldown: 750,
|
||||
courageCooldownWeight: 0.04,
|
||||
proposalAcceptanceSociabilityMod: 2,
|
||||
proposalAcceptanceEmpathyMod: 1,
|
||||
|
||||
@@ -126,19 +126,19 @@ export function socialSystem(world: World): void {
|
||||
const statsA = world.getComponent<Stats>(e, 'stats');
|
||||
if (statsA) {
|
||||
if (social.outcome === 'positive') {
|
||||
statsA.sociability = Math.max(3, Math.min(18, statsA.sociability + 0.05));
|
||||
statsA.empathy = Math.max(3, Math.min(18, statsA.empathy + 0.05));
|
||||
statsA.sociability = Math.max(3, Math.min(18, statsA.sociability + 0.025));
|
||||
statsA.empathy = Math.max(3, Math.min(18, statsA.empathy + 0.025));
|
||||
} else {
|
||||
statsA.temperament = Math.max(3, Math.min(18, statsA.temperament + 0.02));
|
||||
statsA.temperament = Math.max(3, Math.min(18, statsA.temperament + 0.01));
|
||||
}
|
||||
}
|
||||
const statsB = world.getComponent<Stats>(partnerId!, 'stats');
|
||||
if (statsB) {
|
||||
if (partnerSocial.outcome === 'positive') {
|
||||
statsB.sociability = Math.max(3, Math.min(18, statsB.sociability + 0.05));
|
||||
statsB.empathy = Math.max(3, Math.min(18, statsB.empathy + 0.05));
|
||||
statsB.sociability = Math.max(3, Math.min(18, statsB.sociability + 0.025));
|
||||
statsB.empathy = Math.max(3, Math.min(18, statsB.empathy + 0.025));
|
||||
} else {
|
||||
statsB.temperament = Math.max(3, Math.min(18, statsB.temperament + 0.02));
|
||||
statsB.temperament = Math.max(3, Math.min(18, statsB.temperament + 0.01));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -65,8 +65,8 @@ export const AWARENESS_RADIUS = 5; // Manhattan distance in tiles
|
||||
export const FACING_DURATION = 10; // ticks (1s)
|
||||
export const PAUSING_DURATION = 15; // ticks (1.5s)
|
||||
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 SOCIAL_GLOBAL_COOLDOWN = 75; // ticks (7.5s)
|
||||
export const SOCIAL_PAIR_COOLDOWN = 450; // ticks (45s)
|
||||
|
||||
export const PROPOSAL_EMOTING_DURATION = 30; // 3 seconds - longer for dramatic effect
|
||||
|
||||
|
||||
Reference in New Issue
Block a user