obstacle support
This commit is contained in:
@@ -22,6 +22,7 @@ type Boardstate struct {
|
||||
OtherRobots []OtherRobot `json:"robots"`
|
||||
Projectiles []Projectile `json:"projectiles"`
|
||||
Splosions []Splosion `json:"splosions"`
|
||||
Obstacles []Obstacle `json:"obj"`
|
||||
Reset bool `json:"reset"`
|
||||
Type string `json:"type"`
|
||||
Turn int `json:"turn"`
|
||||
@@ -85,6 +86,7 @@ type game struct {
|
||||
players map[*player]bool
|
||||
projectiles map[*Projectile]bool
|
||||
splosions map[*Splosion]bool
|
||||
obstacles []Obstacle
|
||||
register chan *player
|
||||
unregister chan *player
|
||||
turn int
|
||||
@@ -102,6 +104,7 @@ func NewGame(id string, width, height float32) *game {
|
||||
unregister: make(chan *player, maxPlayer),
|
||||
projectiles: make(map[*Projectile]bool),
|
||||
splosions: make(map[*Splosion]bool),
|
||||
obstacles: GenerateObstacles(5, width, height),
|
||||
players: make(map[*player]bool),
|
||||
turn: 0,
|
||||
width: width,
|
||||
@@ -117,6 +120,8 @@ func NewGame(id string, width, height float32) *game {
|
||||
func (g *game) tick(payload *Boardstate) int {
|
||||
robots_remaining := 0
|
||||
|
||||
payload.Obstacles = g.obstacles
|
||||
|
||||
// Update Players
|
||||
for p := range g.players {
|
||||
if p.Robot.Health > 0 {
|
||||
@@ -163,6 +168,7 @@ func (g *game) send_update(payload *Boardstate) {
|
||||
player_payload := NewBoardstate()
|
||||
player_payload.Projectiles = payload.Projectiles
|
||||
player_payload.Splosions = payload.Splosions
|
||||
player_payload.Obstacles = payload.Obstacles
|
||||
player_payload.AllBots = payload.AllBots
|
||||
player_payload.Turn = payload.Turn
|
||||
player_payload.Reset = payload.Reset
|
||||
@@ -242,7 +248,7 @@ func (g *game) run() {
|
||||
log.Printf("Robot %v Wins", p.Robot.Id)
|
||||
log.Printf("game %s: game over", g.id)
|
||||
}
|
||||
p.reset()
|
||||
p.reset(g)
|
||||
}
|
||||
payload.Reset = true
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user