package game import ( "lcthw.dev/go/ttarpit/config" "lcthw.dev/go/ttarpit/data" "lcthw.dev/go/ttarpit/builder" . "lcthw.dev/go/ttarpit/debug" "time" ) type Game struct { settings config.Config HP int Errors int StartTime time.Time EndTime time.Time ErrorLog []data.ErrInfo } func New(settings config.Config) *Game { game := new(Game) game.settings = settings game.HP = settings.StartingHP game.StartTime = time.Now() time_out, err := time.ParseDuration(settings.Deadline) if err != nil { panic(err) } game.EndTime = time.Now().Add(time_out) return game } func (game *Game) BuildPass() { game.ErrorLog = game.ErrorLog[:0] } func (game *Game) TakeHit(build *builder.Builder, errinfo data.ErrInfo) { Log.Println("!!!!!!!!!!!!!!!!!", errinfo) game.Errors++ game.HP-- game.ErrorLog = append(game.ErrorLog, errinfo) Log.Println("============== PROCESS EXIT") Log.Printf("==== HP: %d Errors: %d =====\n", game.HP, game.Errors) if game.HP <= 0 { Log.Println("!!!!!! YOU DIED !!!!!!!") } Log.Println("===========================") }