diff options
| author | Ewy <ewy@ewy.one> | 2026-09-21 21:40:05 +0200 |
|---|---|---|
| committer | Ewy <ewy@ewy.one> | 2026-09-21 21:40:05 +0200 |
| commit | 83b2f2e9922f46fe46fd5330e6b38c66d1483ade (patch) | |
| tree | 21a6a4402fe99e2afabb67f2cc0d41d0c0ea85be /engine/vigour.go | |
| parent | 1f8364b145dbd0ff9ff7583f50aeb7498967b0f9 (diff) | |
(wip)
Diffstat (limited to 'engine/vigour.go')
| -rw-r--r-- | engine/vigour.go | 43 |
1 files changed, 42 insertions, 1 deletions
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 }, |
