diff options
| author | ewy <ewy0@protonmail.com> | 2026-09-14 19:48:36 +0200 |
|---|---|---|
| committer | ewy <ewy0@protonmail.com> | 2026-09-14 19:48:36 +0200 |
| commit | 899ef7448222f0d087c194b3379b702f8dd2ff8c (patch) | |
| tree | 8c2b508bb4d01236c7f582e4eee91fd178d09670 /engine/player.go | |
| parent | c69e6c0770359e2febafcf487eb21c4aa608c3e9 (diff) | |
add server and websocket comms
Diffstat (limited to 'engine/player.go')
| -rw-r--r-- | engine/player.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/engine/player.go b/engine/player.go new file mode 100644 index 0000000..5f1d7ca --- /dev/null +++ b/engine/player.go @@ -0,0 +1,42 @@ +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 + Ultimates []*Card +} + +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 +} |
