shotgun/game/player.go

39 lines
641 B
Go
Raw Normal View History

2024-01-20 22:06:56 -06:00
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
2024-01-20 22:06:56 -06:00
type Player struct {
ID PlayerID
HP int8
Items [8]Item
Cuffs CuffState
}
func (p *Player) StartRound() {
clear(p.Items[:])
2024-01-20 22:06:56 -06:00
}
func (p *Player) StartGroup(rng *RNG, hp int8, items int) {
p.HP = hp
2024-01-20 22:06:56 -06:00
for i := 0; i < items; i++ {
k := slices.Index(p.Items[:], ItemNone)
if k < 0 {
break
}
p.Items[k] = NewItem(rng)
2024-01-20 22:06:56 -06:00
}
p.Cuffs = Uncuffed // TODO(zeph): or is this startround?
2024-01-20 22:06:56 -06:00
}
type CuffState uint8
const (
Uncuffed CuffState = iota
Cuffed
CuffedSkip
)