aboutsummaryrefslogtreecommitdiff
path: root/internal/game/game.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/game/game.go')
-rw-r--r--internal/game/game.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/internal/game/game.go b/internal/game/game.go
index 22dd74d..bed75b0 100644
--- a/internal/game/game.go
+++ b/internal/game/game.go
@@ -62,11 +62,15 @@ type Game struct {
loggedInChars map[string]*net.Session
restTimers map[string]uint64
guardWatchTimers map[string]int
- hackingStates map[string]*hacking.Session
+ hackingStates map[string]*hacking.Session
pendingDepletions []pendingDepletion
farmTickCounter int
enterMu sync.Mutex
enterSeqs map[string]*enterSeq
+
+ shutdownCancel chan struct{}
+ shutdownActive bool
+ shutdownMu sync.Mutex
}
func New(dataDir string, colorConfig *config.ColorsConfig, valConfig config.ValidationConfig) *Game {
@@ -108,6 +112,7 @@ func (g *Game) SetHub(hub *net.Hub) {
g.Hub = hub
hub.OnRemove(func(sess *net.Session) {
if p := sess.Player; p != nil {
+ g.restoreGodPlayer(p)
p.DeactivateAllTechs()
g.cancelEnterSeq(p.Name)
g.charsMu.Lock()
@@ -173,6 +178,8 @@ func (g *Game) HandleSession(sess *net.Session, input string) {
g.handleHackingInput(sess, input)
case net.StateDangerConfirm:
g.handleDangerConfirm(sess, input)
+ case net.StateUndigConfirm:
+ g.handleUndigConfirm(sess, input)
}
}