From 83b2f2e9922f46fe46fd5330e6b38c66d1483ade Mon Sep 17 00:00:00 2001 From: Ewy Date: Mon, 21 Sep 2026 21:40:05 +0200 Subject: (wip) --- engine/vigour.go | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'engine/vigour.go') diff --git a/engine/vigour.go b/engine/vigour.go index 62ececd..24732d0 100644 --- a/engine/vigour.go +++ b/engine/vigour.go @@ -7,14 +7,40 @@ import ( type Vigour int type VigorAction struct { + *BaseAction Name string From func(p *Player) *pool.Pool To func(p *Player) *pool.Pool } +func (v *VigorAction) Then(g *Game) { + v.From(v.Actor(g)).Add(-1) + v.To(v.Actor(g)).Add(1) + v.Actor(g).Vigour -= 1 +} + +func (v *VigorAction) Can(p *Player) bool { + return p.Vigour > 0 && v.From(p).Has(1) && v.To(p).Fits(1) +} + +func VigorActions(g *Game, p *Player) []Action { + var acs []Action + for _, a := range Actions { + if a.Can(p) { + acs = append(acs, a) + } + } + return acs +} + var Actions = []*VigorAction{ { Name: "Approach", + BaseAction: &BaseAction{ + User: nil, + BaseSource: nil, + Description: "Move a sakura from Distance to Aura", + }, From: func(p *Player) *pool.Pool { return p.Game.Distance }, @@ -24,6 +50,11 @@ var Actions = []*VigorAction{ }, { Name: "Retreat", + BaseAction: &BaseAction{ + User: nil, + BaseSource: nil, + Description: "Move a sakura from Aura to Distance", + }, From: func(p *Player) *pool.Pool { return p.Aura }, @@ -33,6 +64,11 @@ var Actions = []*VigorAction{ }, { Name: "Charge", + BaseAction: &BaseAction{ + User: nil, + BaseSource: nil, + Description: "Move a sakura from your Aura to Flare", + }, From: func(p *Player) *pool.Pool { return p.Aura }, @@ -41,7 +77,12 @@ var Actions = []*VigorAction{ }, }, { - Name: "Recover", + Name: "Charge", + BaseAction: &BaseAction{ + User: nil, + BaseSource: nil, + Description: "Move a sakura from Aura to Flare", + }, From: func(p *Player) *pool.Pool { return p.Game.Shadow }, -- cgit v1.3.1