fc0c5edc38
feat: add chat emote system (/hi, /gg, /go, /wait, /help)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-25 14:05:04 +09:00
afe4ee1056
feat: add structured logging with log/slog and panic recovery
...
Replace log.Printf/Println with slog.Info/Error/Warn across the codebase.
Initialize slog with JSON handler in main.go. Add panic recovery defer
in SSH session handler. Add structured game event logging (room created,
player joined, game started, game over, player inactive removed).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-25 13:18:06 +09:00
f85775dd3e
feat: replace all hardcoded constants with config values
...
Replace hardcoded game constants with values from the config system:
- GameSession now receives *config.Config from Lobby
- TurnTimeout, MaxFloors, SkillUses, InventoryLimit use config values
- combat.AttemptFlee accepts fleeChance param
- combat.ResolveAttacks accepts coopBonus param
- entity.NewMonster accepts scaling param
- Solo HP/DEF reduction uses config SoloHPReduction
- Lobby JoinRoom uses config MaxPlayers
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-25 13:08:52 +09:00
fb0e64a109
feat: achievement system with 10 unlockable achievements
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 15:33:12 +09:00
d3d7e2a76a
feat: status effects (poison/burn), boss patterns, new relics
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 14:49:55 +09:00
80c1988719
feat: party action status display and sequential turn result replay
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 14:23:44 +09:00
15199bd26f
feat: skill cooldown (3/combat), inventory limit (10), scaled event damage
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 13:46:17 +09:00
1104c6e4e9
fix: lock SoloMode at start, shop feedback, dead player exploration block
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 13:44:43 +09:00
ee9aec0b32
feat: add in-game chat with / key
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 11:06:29 +09:00
ce2f03baf5
feat: remove inactive players after 60s disconnect timeout
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 10:59:33 +09:00
46afd82060
fix: stop combatLoop goroutine and remove lobby room on session exit
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 10:56:23 +09:00
e8887cd69a
fix: use fingerprint as player ID to prevent name collision
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 10:50:21 +09:00
b0766c488c
fix: deep-copy GameState in GetState to prevent data race
...
Replace shallow struct copy with full deep copy of Players, Monsters,
Floor/Rooms, Inventory, Relics, ShopItems, and CombatLog slices so
concurrent readers via GetState never alias the combatLoop's live data.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 10:23:21 +09:00
7556073cb5
feat: display turn countdown timer in combat HUD
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-24 00:53:17 +09:00
743b5b9058
fix: prevent double StartGame, use overlapping monster floor ranges
2026-03-24 00:51:00 +09:00
13d468943a
feat: game session, turn system, lobby, and room events
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 23:55:08 +09:00