From d71b7ae89d8aef546b5596a84c4054e00e69cd5f Mon Sep 17 00:00:00 2001 From: Sebastian Benjamin Date: Tue, 3 Jun 2025 18:41:49 -0700 Subject: [PATCH] fix: correct cancelDeath logic in PlayerStageState for server ticks --- server/game-modes/battle-royale/player-stage.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/server/game-modes/battle-royale/player-stage.go b/server/game-modes/battle-royale/player-stage.go index b4eb2dc..e0ed126 100644 --- a/server/game-modes/battle-royale/player-stage.go +++ b/server/game-modes/battle-royale/player-stage.go @@ -17,6 +17,7 @@ type PlayerStageState struct { score int deathTimer int cancelDeath bool +} func NewPlayerStage() *PlayerStageState { return &PlayerStageState{ @@ -26,10 +27,7 @@ func NewPlayerStage() *PlayerStageState { updatePlayerPos: true, health: 3, deathTimer: -1, - if s.cancelDeath { - tickData.CancelDeath = true - s.cancelDeath = false - } + } } func (s *PlayerStageState) Delete() { @@ -117,6 +115,11 @@ func (s *PlayerStageState) MakeServerTick(tick int64, serializedNewBullets []map UTCTime: float64(time.Now().UnixMilli()) / 1000.0, } + if s.cancelDeath { + tickData.CancelDeath = true + s.cancelDeath = false + } + // When this is called, we want to transmit updatePlayerPos if it's true once and then reset s.updatePlayerPos = false