Changed the collision response from boolean to Collision
This commit is contained in:
parent
0698f21a0f
commit
eac39ad9d1
18
robot.go
18
robot.go
@ -25,14 +25,14 @@ type Robot struct {
|
|||||||
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 *Collision `json:"collision"`
|
||||||
Hit bool `json:"hit"`
|
Hit bool `json:"hit"`
|
||||||
Probe *v.Point2d `json:"probe"`
|
Probe *v.Point2d `json:"probe"`
|
||||||
ProbeResult *ProbeResult `json:"probe_result"`
|
ProbeResult *Collision `json:"probe_result"`
|
||||||
gameStats *BotStats `json:-`
|
gameStats *BotStats `json:-`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ProbeResult struct {
|
type Collision struct {
|
||||||
v.Point2d
|
v.Point2d
|
||||||
Type string `json:"type"`
|
Type string `json:"type"`
|
||||||
}
|
}
|
||||||
@ -244,7 +244,7 @@ func (r *Robot) checkCollisions(g *game, probe v.Vector2d) (bool, *v.Point2d, *R
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *Robot) Tick(g *game) {
|
func (r *Robot) Tick(g *game) {
|
||||||
r.Collision = false
|
r.Collision = nil
|
||||||
r.Hit = false
|
r.Hit = false
|
||||||
r.scan(g)
|
r.scan(g)
|
||||||
|
|
||||||
@ -310,7 +310,13 @@ func (r *Robot) Tick(g *game) {
|
|||||||
dmg = 1
|
dmg = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
r.Collision = true
|
r.Collision = &Collision{
|
||||||
|
Point2d: *intersection_point,
|
||||||
|
Type: "obstacle",
|
||||||
|
}
|
||||||
|
if hit_robot != nil {
|
||||||
|
r.Collision.Type = "robot"
|
||||||
|
}
|
||||||
if hit_robot != nil {
|
if hit_robot != nil {
|
||||||
hit_robot.Health -= dmg
|
hit_robot.Health -= dmg
|
||||||
hit_robot.Speed = (hit_robot.Speed * 0.5)
|
hit_robot.Speed = (hit_robot.Speed * 0.5)
|
||||||
@ -377,7 +383,7 @@ func (r *Robot) Tick(g *game) {
|
|||||||
probe_vector := r.Probe.Sub(r.Position)
|
probe_vector := r.Probe.Sub(r.Position)
|
||||||
coll, pos, robo := r.checkCollisions(g, probe_vector)
|
coll, pos, robo := r.checkCollisions(g, probe_vector)
|
||||||
if coll {
|
if coll {
|
||||||
r.ProbeResult = &ProbeResult{
|
r.ProbeResult = &Collision{
|
||||||
Point2d: *pos,
|
Point2d: *pos,
|
||||||
Type: "obstacle",
|
Type: "obstacle",
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user