diff --git a/protocol.go b/protocol.go index fcc2e65..58ec8c7 100644 --- a/protocol.go +++ b/protocol.go @@ -312,7 +312,7 @@ encodingLoops: convertedStats := map[string]Stats{} for name, stats := range conf.Stats { dstat := DeriveStats(stats) - convertedStats[name] = dstat + r := Robot{ Stats: dstat, Id: c.Idg.Hash(), @@ -327,6 +327,8 @@ encodingLoops: log.Printf("%s: adding robot: %s", p.Id, r.Id) r.reset(game) p.Robots = append(p.Robots, &r) + dstat.Id = r.Id + convertedStats[name] = dstat } statsPayload := struct { diff --git a/robot.go b/robot.go index 3497b69..0658ae9 100644 --- a/robot.go +++ b/robot.go @@ -33,8 +33,8 @@ type Robot struct { Hit bool `json:"hit"` Probe *v.Point2d `json:"probe"` ProbeResult *Collision `json:"probe_result"` - gameStats *BotStats `json:"-"` - Delta float64 `json:"-"` + gameStats *BotStats + Delta float64 `json:"-"` idg *idg.Generator } @@ -101,6 +101,7 @@ func (s AllRobotSorter) Less(i, j int) bool { // Stats is the point allocation for a Robot. type Stats struct { + Id string Hp int `json:"hp"` Speed float64 `json:"speed"` Acceleration float64 `json:"acceleration"`