diff --git a/server/game-modes/battle-royale/game-loop.go b/server/game-modes/battle-royale/game-loop.go index d403703..3905798 100644 --- a/server/game-modes/battle-royale/game-loop.go +++ b/server/game-modes/battle-royale/game-loop.go @@ -38,7 +38,7 @@ func RespondToInput(lobbyState *MatchState, messages []runtime.MatchData, logger continue } - // Apply the input to the tick where it occurred + // Apply latest player input lobbyState.presences[msg.GetSessionId()].stageState.BoundsCheckedMove(update.X, update.Y) // Check if the input is within the grace window @@ -106,8 +106,6 @@ func BroadcastToPresences(tick int64, lobbyState *MatchState, logger *runtime.Lo } } - v.stageState.UpdateDeathTimer(tick) - var tickData = v.stageState.MakeServerTick(tick, newBulletsToBroadcast) data, err := json.Marshal(tickData) diff --git a/server/game-modes/battle-royale/player-stage.go b/server/game-modes/battle-royale/player-stage.go index e8b8d25..2f41d82 100644 --- a/server/game-modes/battle-royale/player-stage.go +++ b/server/game-modes/battle-royale/player-stage.go @@ -64,7 +64,7 @@ func (s *PlayerStageState) DeleteBulletsBeyondKillBoundary(tick int64) { } -func (s *PlayerStageState) UpdateDeathTimer() { +func (s *PlayerStageState) UpdateDeathTimer(tick int64) { // If the player is dead, decrement the death timer if s.deathTimer >= 0 { s.deathTimer -= 1 @@ -100,6 +100,8 @@ func (s *PlayerStageState) AddBullet(b *ffi.Bullet) { } func (s *PlayerStageState) MakeServerTick(tick int64, serializedNewBullets []map[string]any) *ServerTickUpdate { + s.UpdateDeathTimer(tick) + hitPosX, hitPosY := s.hitCol.GetPos() grazePosX, grazePosY := s.hitCol.GetPos() var tickData = ServerTickUpdate{