summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorewy <ewy0@protonmail.com>2026-09-22 21:29:39 +0200
committerewy <ewy0@protonmail.com>2026-09-22 21:29:39 +0200
commite57ab3ca3907ae186bae1af088ca880ae880c312 (patch)
tree97015e4b13de8faee8a172f7bc306a8fa66355c2 /engine
parent283f6e19741b262c46a8a2ba3f7ba81f01519d70 (diff)
progress
Diffstat (limited to 'engine')
-rw-r--r--engine/action.go2
-rw-r--r--engine/game.go8
-rw-r--r--engine/player.go9
-rw-r--r--engine/pool/pool.go4
-rw-r--r--engine/vigour.go4
5 files changed, 18 insertions, 9 deletions
diff --git a/engine/action.go b/engine/action.go
index 178c4a0..c44a724 100644
--- a/engine/action.go
+++ b/engine/action.go
@@ -84,7 +84,7 @@ func (d *DrawCard) Then(g *Game) {
func DrawCardAction(g *Game) Action {
return &DrawCard{
BaseAction: &BaseAction{
- Description: "Draw a card (or lose 1 life)",
+ Description: "Draw a card from your draw pile",
},
}
}
diff --git a/engine/game.go b/engine/game.go
index 0735958..399a17f 100644
--- a/engine/game.go
+++ b/engine/game.go
@@ -25,6 +25,8 @@ type Game struct {
CurrentPlayerSlot string `json:"CurrentPlayer"`
History []Turn
+
+ You, Them string
}
func (g *Game) propagate() {
@@ -90,13 +92,17 @@ func (g *Game) Present(p *Player) Game {
localGame := *g
switch p {
case g.Yin:
+ localGame.You = "PlayerYin"
+ localGame.Them = "PlayerYang"
localGame.Yang.Hide()
case g.Yang:
+ localGame.You = "PlayerYang"
+ localGame.Them = "PlayerYin"
localGame.Yin.Hide()
}
var acs []Action
for _, a := range g.Actions {
- if a.Actor(g) == p {
+ if a.Actor(g) == p || (a.Actor(g) == nil && g.CurrentPlayer == p) {
acs = append(acs, a)
}
}
diff --git a/engine/player.go b/engine/player.go
index a4f7c35..42e8604 100644
--- a/engine/player.go
+++ b/engine/player.go
@@ -41,10 +41,11 @@ func (p *Player) propagate(g *Game) {
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),
+ Life: pool.New(pool.Empty, 10),
+ Aura: pool.New(3, 5),
+ Flare: pool.New(pool.Empty, pool.Infinite),
+ // TODO: Restore to 0, on 2 for testing purposes
+ Vigour: Vigour(2),
}
p.propagate(g)
return p
diff --git a/engine/pool/pool.go b/engine/pool/pool.go
index 5443baa..8256d69 100644
--- a/engine/pool/pool.go
+++ b/engine/pool/pool.go
@@ -19,7 +19,9 @@ func (p *Pool) Add(amount int) {
if p.Value > p.Max {
overflow := p.Value - p.Max
p.Value = p.Max
- p.OverflowsTo.Add(overflow)
+ if p.OverflowsTo != nil {
+ p.OverflowsTo.Add(overflow)
+ }
}
}
diff --git a/engine/vigour.go b/engine/vigour.go
index 24732d0..ca95fd9 100644
--- a/engine/vigour.go
+++ b/engine/vigour.go
@@ -9,8 +9,8 @@ type Vigour int
type VigorAction struct {
*BaseAction
Name string
- From func(p *Player) *pool.Pool
- To func(p *Player) *pool.Pool
+ From func(p *Player) *pool.Pool `json:"-"`
+ To func(p *Player) *pool.Pool `json:"-"`
}
func (v *VigorAction) Then(g *Game) {