package game import ( "slices" "git.sunturtle.xyz/studio/shotgun/player" "git.sunturtle.xyz/studio/shotgun/serve" ) type playerState struct { id player.ID hp int8 items [8]item cuffs cuffState } func (p *playerState) startRound(hp int8) { p.hp = hp clear(p.items[:]) } func (p *playerState) startGame(items int) { for i := 0; i < items; i++ { k := slices.Index(p.items[:], itemNone) if k < 0 { break } p.items[k] = newItem() } p.cuffs = uncuffed } func (p *playerState) dto() serve.Player { r := serve.Player{ HP: p.hp, Cuffs: p.cuffs != uncuffed, } for k, i := range p.items { r.Items[k] = i.String() } return r } type cuffState uint8 const ( uncuffed cuffState = iota cuffed cuffedSkip ) func (c cuffState) nextState() cuffState { if c != uncuffed { c-- } return c }