diff options
| author | ewy <ewy0@protonmail.com> | 2026-09-22 21:29:39 +0200 |
|---|---|---|
| committer | ewy <ewy0@protonmail.com> | 2026-09-22 21:29:39 +0200 |
| commit | e57ab3ca3907ae186bae1af088ca880ae880c312 (patch) | |
| tree | 97015e4b13de8faee8a172f7bc306a8fa66355c2 /engine | |
| parent | 283f6e19741b262c46a8a2ba3f7ba81f01519d70 (diff) | |
progress
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/action.go | 2 | ||||
| -rw-r--r-- | engine/game.go | 8 | ||||
| -rw-r--r-- | engine/player.go | 9 | ||||
| -rw-r--r-- | engine/pool/pool.go | 4 | ||||
| -rw-r--r-- | engine/vigour.go | 4 |
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) { |
