package engine import ( "sakura/engine/pool" ) type Player struct { Game *Game `json:"-"` Vigour Vigour Life *pool.Pool Aura *pool.Pool Flare *pool.Pool Hand Stack MasterDeck Stack DrawPile Stack Ultimates []IsCard Character *Character Cookie string } func (p *Player) SetCharacter(c *Character) { p.Character = c p.MasterDeck = c.Cards p.Ultimates = c.Ultimates } func (p *Player) Opponent(g *Game) *Player { if p == g.Yin { return g.Yang } else { return g.Yin } } func (p *Player) propagate(g *Game) { p.Game = g p.Aura.SubtractsTo = g.Shadow p.Flare.SubtractsTo = g.Shadow p.Life.SubtractsTo = p.Flare } func NewPlayer(g *Game) *Player { p := &Player{ Life: pool.New(pool.Empty, 10), Aura: pool.New(3, 5), Flare: pool.New(pool.Empty, pool.Infinite), Vigour: Vigour(0), } p.propagate(g) return p } func (p *Player) Hide() { p.MasterDeck = p.MasterDeck.Hidden() p.Hand = p.Hand.Hidden() p.DrawPile = p.DrawPile.Hidden() }