summaryrefslogtreecommitdiff
path: root/engine/player.go
diff options
context:
space:
mode:
authorewy <ewy0@protonmail.com>2026-09-14 19:48:36 +0200
committerewy <ewy0@protonmail.com>2026-09-14 19:48:36 +0200
commit899ef7448222f0d087c194b3379b702f8dd2ff8c (patch)
tree8c2b508bb4d01236c7f582e4eee91fd178d09670 /engine/player.go
parentc69e6c0770359e2febafcf487eb21c4aa608c3e9 (diff)
add server and websocket comms
Diffstat (limited to 'engine/player.go')
-rw-r--r--engine/player.go42
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
+}