From 7f07c7236578e1a7bcef0282ff9d7f5bf8c7c045 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Mon, 22 Jun 2026 01:54:28 -0400 Subject: fix: safespot fixes --- internal/game/sys_safespot.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'internal/game/sys_safespot.go') diff --git a/internal/game/sys_safespot.go b/internal/game/sys_safespot.go index ffb7948..b0e94c2 100644 --- a/internal/game/sys_safespot.go +++ b/internal/game/sys_safespot.go @@ -99,7 +99,7 @@ func (g *Game) activateSafespot(sess *net.Session, p *player.Player, ss *Safespo return } - if cfg.RespawnOnHide { + if cfg.RespawnOnHide && len(st.SafespotOccupants) == 0 { st.SafespotLevel = len(cfg.Levels) st.SafespotTicksAtLevel = 0 } else if st.SafespotLevel <= 0 { @@ -211,7 +211,11 @@ func (g *Game) degradeSafespot(st *world.ObjState, objDef *object.ObjectDef, cfg } } st.SafespotOccupants = nil - g.scheduleSafespotRespawn(st, objDef, cfg) + if cfg.RespawnTicks > 0 { + g.scheduleSafespotRespawn(st, objDef, cfg) + } else { + g.World.RemoveObjInstance(st.RoomID, objDef.ID) + } return } -- cgit v1.2.3