package game import "slices" // PlayerID is a unique ID for a player. // May just be IPv6 (or IPv4-in-6) of their connection, or a UUID. type PlayerID [16]byte type Player struct { ID PlayerID HP int8 Items [8]Item Cuffs CuffState } func (p *Player) StartRound() { clear(p.Items[:]) } func (p *Player) StartGroup(rng *RNG, hp int8, items int) { p.HP = hp for i := 0; i < items; i++ { k := slices.Index(p.Items[:], ItemNone) if k < 0 { break } p.Items[k] = NewItem(rng) } p.Cuffs = Uncuffed // TODO(zeph): or is this startround? } type CuffState uint8 const ( Uncuffed CuffState = iota Cuffed CuffedSkip )