From 899ef7448222f0d087c194b3379b702f8dd2ff8c Mon Sep 17 00:00:00 2001 From: ewy Date: Mon, 14 Sep 2026 19:48:36 +0200 Subject: add server and websocket comms --- engine/game.go | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 engine/game.go (limited to 'engine/game.go') diff --git a/engine/game.go b/engine/game.go new file mode 100644 index 0000000..0ed93e2 --- /dev/null +++ b/engine/game.go @@ -0,0 +1,47 @@ +package engine + +import ( + "sakura/engine/pool" +) + +type Game struct { + Shadow *pool.Pool + Distance *pool.Pool + Yin *Player + Yang *Player + + Stack []IsCard + + Actions map[InteractionID]Action +} + +func (g *Game) propagate() { + g.Distance.OverflowsTo = g.Shadow +} + +func NewGame() *Game { + g := &Game{ + Shadow: pool.New(0, pool.Infinite), + Distance: pool.New(0, 10), + Actions: nil, + } + g.Yin = NewPlayer(g) + g.Yang = NewPlayer(g) + g.propagate() + return g +} + +var Tie = &Player{} + +func (g *Game) Winner() *Player { + if g.Yin.Life.Value <= 0 && g.Yang.Life.Value <= 0 { + return Tie + } + if g.Yin.Life.Value <= 0 { + return g.Yang + } + if g.Yang.Life.Value <= 0 { + return g.Yin + } + return nil +} -- cgit v1.3.1