turn player into primary if only one left
This commit is contained in:
@@ -32,6 +32,8 @@ func (system PlayerSystem) Update() error {
|
||||
// first check if we need to switch player
|
||||
switchable := false
|
||||
query := system.Selector.Query(system.World)
|
||||
count := query.Count()
|
||||
|
||||
for query.Next() {
|
||||
_, _, player, _ := query.Get()
|
||||
if !player.IsPrimary {
|
||||
@@ -43,14 +45,22 @@ func (system PlayerSystem) Update() error {
|
||||
query := system.Selector.Query(system.World)
|
||||
for query.Next() {
|
||||
_, _, player, render := query.Get()
|
||||
if inpututil.IsKeyJustPressed(ebiten.KeyTab) {
|
||||
slog.Debug("switch players")
|
||||
if player.IsPrimary {
|
||||
player.IsPrimary = false
|
||||
render.Image = player.SwitchSprite()
|
||||
} else {
|
||||
player.IsPrimary = true
|
||||
render.Image = player.SwitchSprite()
|
||||
|
||||
if count == 1 && !player.IsPrimary {
|
||||
// there's only one player left, make it the primary one
|
||||
player.IsPrimary = true
|
||||
render.Image = player.SwitchSprite()
|
||||
} else {
|
||||
// many players, switch when requested
|
||||
if inpututil.IsKeyJustPressed(ebiten.KeyTab) {
|
||||
slog.Debug("switch players")
|
||||
if player.IsPrimary {
|
||||
player.IsPrimary = false
|
||||
render.Image = player.SwitchSprite()
|
||||
} else {
|
||||
player.IsPrimary = true
|
||||
render.Image = player.SwitchSprite()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user