added probe result type

This commit is contained in:
Stephen McQuay 2014-01-16 23:04:49 -08:00
parent a755d28688
commit 714ea669d2
1 changed files with 35 additions and 24 deletions

View File

@ -8,28 +8,33 @@ import (
) )
type Robot struct { type Robot struct {
Id string `json:"id"` Id string `json:"id"`
Name string `json:"name"` Name string `json:"name"`
Message string `json:"-"` Message string `json:"-"`
Stats Stats `json:"-"` Stats Stats `json:"-"`
TargetSpeed float32 `json:"-"` TargetSpeed float32 `json:"-"`
Speed float32 `json:"speed"` Speed float32 `json:"speed"`
Health int `json:"health"` Health int `json:"health"`
RepairCounter float32 `json:"repair"` RepairCounter float32 `json:"repair"`
ScanCounter float32 `json:"scan_bonus"` ScanCounter float32 `json:"scan_bonus"`
ActiveScan bool `json:"-"` ActiveScan bool `json:"-"`
Position v.Point2d `json:"position"` Position v.Point2d `json:"position"`
Heading v.Vector2d `json:"heading"` Heading v.Vector2d `json:"heading"`
DesiredHeading *v.Vector2d `json:"-"` DesiredHeading *v.Vector2d `json:"-"`
MoveTo *v.Point2d `json:"-"` MoveTo *v.Point2d `json:"-"`
FireAt *v.Point2d `json:"-"` FireAt *v.Point2d `json:"-"`
Scanners []Scanner `json:"scanners"` Scanners []Scanner `json:"scanners"`
LastFired int `json:"-"` LastFired int `json:"-"`
Collision bool `json:"collision"` Collision bool `json:"collision"`
Hit bool `json:"hit"` Hit bool `json:"hit"`
Probe *v.Point2d `json:"probe"` Probe *v.Point2d `json:"probe"`
ProbeResult *v.Point2d `json:"probe_result"` ProbeResult *ProbeResult `json:"probe_result"`
gameStats *BotStats `json:-` gameStats *BotStats `json:-`
}
type ProbeResult struct {
v.Point2d
Type string `json:"type"`
} }
// This is the subset of data we send to players about robots // This is the subset of data we send to players about robots
@ -370,9 +375,15 @@ func (r *Robot) Tick(g *game) {
if r.Probe != nil && r.ProbeResult == nil { if r.Probe != nil && r.ProbeResult == nil {
probe_vector := r.Probe.Sub(r.Position) probe_vector := r.Probe.Sub(r.Position)
coll, pos, _ := r.checkCollisions(g, probe_vector) coll, pos, robo := r.checkCollisions(g, probe_vector)
if coll { if coll {
r.ProbeResult = pos r.ProbeResult = &ProbeResult{
Point2d: *pos,
Type: "obstacle",
}
if robo != nil {
r.ProbeResult.Type = "robot"
}
} }
} }
} }