From b9dd5326f6523facdfcc7c5764191b0c823364be Mon Sep 17 00:00:00 2001 From: Luke Meyers Date: Sat, 8 Feb 2020 16:18:25 -0800 Subject: [PATCH] stop racers when battery dead --- game/game.go | 10 ++++++---- game/physics.go | 6 ++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/game/game.go b/game/game.go index 2fa9648..929b6a9 100644 --- a/game/game.go +++ b/game/game.go @@ -12,9 +12,11 @@ func UpdateState(s State, sOld State) State { } for _, t := range s.Teams { - if r := ActiveRacer(t); r != nil && won(*r, s) { - log.Printf("team %d won", t.id) - s.GameOver = true + if r := ActiveRacer(t); r != nil { + if won(*r, s) { + log.Printf("team %d won", t.id) + s.GameOver = true + } } } @@ -209,5 +211,5 @@ const ( numRacers = 3 NumTeams = 8 NumLanes = NumTeams - baseCharge = 4 + baseCharge = 10 ) diff --git a/game/physics.go b/game/physics.go index 67d68e4..6666d19 100644 --- a/game/physics.go +++ b/game/physics.go @@ -25,6 +25,12 @@ func accelerate(r Racer) Racer { } func moveRacer(s State, r Racer) State { + r.Battery.Charge-- + s = updateRacer(s, r) + if r.Battery.Charge <= 0 { + return destroyRacer(s, r) + } + for i := 0; i < r.Kinetics.V; i++ { if o := collide(r.Position.Pos+1, r.Position.Lane, s); o != nil { return destroyRacer(s, r)