From eec798e57bb7e7e0c2ba1cf22176b7078487d70e Mon Sep 17 00:00:00 2001 From: Denis Ranneft Date: Fri, 3 Apr 2026 00:36:40 +0300 Subject: [PATCH] fixes --- backend/internal/game/engine.go | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/backend/internal/game/engine.go b/backend/internal/game/engine.go index 320db88..5e2481a 100644 --- a/backend/internal/game/engine.go +++ b/backend/internal/game/engine.go @@ -1814,21 +1814,21 @@ func (e *Engine) handleEnemyDeath(cs *model.CombatState, now time.Time) { // Rewards (XP, gold, loot, level-ups) are handled by the onEnemyDeath callback // via processVictoryRewards -- the single source of truth. var victoryDrops []model.LootDrop - if e.onEnemyDeath != nil && hero != nil { + if e.onEnemyDeath != nil { victoryDrops = e.onEnemyDeath(hero, enemy, now) } - if hero != nil { - dctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) - e.applyOfflineDigest(dctx, cs.HeroID, hero, now, storage.OfflineDigestDelta{ - MonstersKilled: 1, - XPGained: enemy.XPReward, - GoldGained: model.SumGoldFromLootDrops(victoryDrops), - LevelsGained: hero.Level - oldLevel, - LootAppend: NonGoldLootForDigest(victoryDrops), - }) - cancel() - } + + dctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) + e.applyOfflineDigest(dctx, cs.HeroID, hero, now, storage.OfflineDigestDelta{ + MonstersKilled: 1, + XPGained: enemy.XPReward, + GoldGained: model.SumGoldFromLootDrops(victoryDrops), + LevelsGained: hero.Level - oldLevel, + LootAppend: NonGoldLootForDigest(victoryDrops), + }) + cancel() + e.emitEvent(model.CombatEvent{ Type: "combat_end", @@ -1856,7 +1856,7 @@ func (e *Engine) handleEnemyDeath(cs *model.CombatState, now time.Time) { // Persist progression (XP, gold, level/stats after level-up, inventory, world state) // so a disconnect or crash does not roll back combat rewards. - if e.heroStore != nil && hero != nil { + if e.heroStore != nil { ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) err := e.heroStore.Save(ctx, hero) cancel()