diff --git a/player.go b/player.go index 5e152cd..6ba81d5 100644 --- a/player.go +++ b/player.go @@ -66,6 +66,7 @@ func (p *player) recv() { if msg.Probe != nil { p.Robot.Probe = msg.Probe + p.Robot.ProbeResult = nil } else { p.Robot.Probe = nil } @@ -204,11 +205,11 @@ func (p *player) Tick(g *game) { } } - if p.Robot.Probe != nil { + if p.Robot.Probe != nil && p.Robot.ProbeResult == nil { probe_vector := p.Robot.Probe.Sub(p.Robot.Position) coll, pos, _ := p.checkCollisions(g, probe_vector) if coll { - p.Robot.Probe = &pos + p.Robot.ProbeResult = &pos } } } diff --git a/robot.go b/robot.go index bd932b3..9b6e2b5 100644 --- a/robot.go +++ b/robot.go @@ -21,6 +21,7 @@ type Robot struct { Collision bool `json:"collision"` Hit bool `json:"hit"` Probe *v.Point2d `json:"probe"` + ProbeResult *v.Point2d `json:"probe_result"` } // This is the subset of data we send to players about robots