game types, deathmatch and melee
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
)
|
||||
|
||||
type melee struct {
|
||||
respawn map[*Robot]float64
|
||||
respawn_timer float64
|
||||
}
|
||||
|
||||
func (g *melee) setup(gg *game) {
|
||||
g.respawn_timer = 5000
|
||||
}
|
||||
|
||||
func (g *melee) gameOver(gg *game) (bool, *GameOver) {
|
||||
return false, &GameOver{}
|
||||
}
|
||||
|
||||
func (g *melee) tick(gg *game, payload *Boardstate) {
|
||||
for p := range gg.players {
|
||||
for _, r := range p.Robots {
|
||||
_, ok := g.respawn[r]
|
||||
if r.Health <= 0 && !ok {
|
||||
g.respawn[r] = g.respawn_timer
|
||||
log.Printf("%v Died, Respawn in %v", r.Name, g.respawn_timer)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for r, _ := range g.respawn {
|
||||
g.respawn[r] -= float64(gg.tick_duration)
|
||||
if g.respawn[r] <= 0 {
|
||||
log.Printf("%v Respawned", r.Name)
|
||||
r.reset(gg)
|
||||
delete(g.respawn, r)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user