refactor: Separate collision check and death timer logic in player state
This commit is contained in:
parent
9598e44c94
commit
17ff5ddc39
2 changed files with 4 additions and 3 deletions
|
|
@ -105,6 +105,8 @@ func BroadcastToPresences(tick int64, lobbyState *MatchState, logger *runtime.Lo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
v.stageState.UpdateDeathTimer(tick)
|
||||||
|
|
||||||
var tickData = v.stageState.MakeServerTick(tick, newBulletsToBroadcast)
|
var tickData = v.stageState.MakeServerTick(tick, newBulletsToBroadcast)
|
||||||
|
|
||||||
data, err := json.Marshal(tickData)
|
data, err := json.Marshal(tickData)
|
||||||
|
|
|
||||||
|
|
@ -75,9 +75,8 @@ func (s *PlayerStageState) UpdateDeathTimer() {
|
||||||
s.grazeCol.UpdatePos(STAGE_WIDTH*0.5, STAGE_HEIGHT-STAGE_HEIGHT*0.1)
|
s.grazeCol.UpdatePos(STAGE_WIDTH*0.5, STAGE_HEIGHT-STAGE_HEIGHT*0.1)
|
||||||
s.updatePlayerPos = true
|
s.updatePlayerPos = true
|
||||||
} else if s.deathTimer == PLAYER_ALIVE {
|
} else if s.deathTimer == PLAYER_ALIVE {
|
||||||
if slices.ContainsFunc(s.bullets, func(b *ffi.Bullet) bool {
|
// Use CheckCollisionState to determine if the player should be dead
|
||||||
return b.CollidesWith(s.hitCol, tick)
|
if s.CheckCollisionState(tick) == PLAYER_DEAD {
|
||||||
}) {
|
|
||||||
s.deathTimer = PLAYER_DEATH_TIMER_MAX
|
s.deathTimer = PLAYER_DEATH_TIMER_MAX
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Reference in a new issue