aboutsummaryrefslogtreecommitdiff
path: root/internal/game/tick.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/game/tick.go')
-rw-r--r--internal/game/tick.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/internal/game/tick.go b/internal/game/tick.go
index ef8089a..21489ca 100644
--- a/internal/game/tick.go
+++ b/internal/game/tick.go
@@ -50,6 +50,11 @@ func (g *Game) DisconnectTick() {
}
if sess.TickDisconnectCountdown() {
delete(g.disconnectDeferrals, sess)
+ // The fight must not outlive the session: the combat tick
+ // subscribers are keyed by name and would otherwise keep
+ // attacking and saving for a character no longer in the world.
+ g.stopCombat(p.Name)
+ g.cancelRest(p.Name)
g.restoreGodPlayer(p)
g.saveCharacter(p)
g.Hub.HardRemove(sess)