diff options
Diffstat (limited to 'stats/db.go')
| -rw-r--r-- | stats/db.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/stats/db.go b/stats/db.go new file mode 100644 index 0000000..327373f --- /dev/null +++ b/stats/db.go @@ -0,0 +1,44 @@ +package stats + +import ( + "sts2stats/model" + "time" +) + +type RunStat struct { + RunId string + StartTime time.Time + Ascension int + Version string + Win bool + FloorsClimbed int + Abandoned bool + InProgress bool +} + +type RoomStat struct { + Act int + Floor int +} + +func NewRunStat(run model.Run) RunStat { + st := RunStat{ + Version: run.BuildID, + StartTime: time.Unix(int64(run.StartTime), 0), + Ascension: run.Ascension, + Win: run.Win, + RunId: run.RunId, + Abandoned: run.WasAbandoned, + FloorsClimbed: runLen(run), + InProgress: run.KilledByEncounter != "" || run.KilledByEvent != "" || run.Win != true, + } + return st +} + +func runLen(run model.Run) int { + var res int + for _, a := range run.MapPointHistory { + res += len(a) + } + return res +} |
