Ledger v3 · C# · Godot 4.7 Get started

Pools

Pools that wait and pools that fill.

✓ 2 plays, 34 steps, all passingFrom v2's cookbook

v2's cookbook, pools that wait and pools that fill (G283-G284): a shield whose regeneration waits three seconds after the last hit, and a hidden stagger meter that hits fill and time drains, staggering its holder when it tops out.

content/cookbook/pools.ledgerthe content
1# v2's cookbook, pools that wait and pools that fill (G283-G284): a shield whose regeneration waits three seconds after
2# the last hit, and a hidden stagger meter that hits fill and time drains, staggering its holder when it tops out.
3
4rate 60
5stat MaxHealth
6stat MaxShield
7stat ShieldRegen
8stat Armor
9stat MaxStagger
10stat StaggerDrain
11pool Health max MaxHealth
12pool Shield max MaxShield regen ShieldRegen
13pool Stagger max MaxStagger regen StaggerDrain
14damage Health
15stages Shield Mitigation
16# carried: a hit carries Physical by an ability tagged Physical, down its chain, or by a host's deal naming it
17tags Physical carried
18# ---- G283 Halo's shield: 100, 30 a second, and any hit, soaked or not, holds the regeneration for 3 seconds from it ----
20effect ShieldSoak
21 before Damage of holder at Shield when holder.Shield > 0
22 absorb into Shield
24effect Recharging
25 after Damage of holder
26 apply Pressed
28effect Pressed
29 stack refresh
30 lasts 3s
31 ShieldRegen x 0
33archetype Spartan
34 base MaxHealth 100
35 base MaxShield 100
36 base ShieldRegen 30
37 full Health Shield
38 has ShieldSoak
39 has Recharging
41# ---- G284 the stagger meter: half of what each hit lands after armour fills it, it drains 10 a second, and full it
42# staggers for 5 seconds and empties; a bigger meter isn't handed what it grew by ----
44effect Armored
45 before Damage of holder having Physical at Mitigation
46 scale 1 - holder.Armor / (holder.Armor + 100)
48effect Staggerable
49 after Damage of holder
50 gain Stagger event.landed / 2
51 after Filled Stagger of holder
52 set Stagger 0
53 apply Staggered
55effect Staggered
56 lasts 5s
58effect Steadfast
59 MaxStagger + 50
61archetype Brute
62 base MaxHealth 1000
63 base Armor 100
64 base MaxStagger 100
65 base StaggerDrain -10
66 full Health
67 pools Stagger
68 has Armored
69 has Staggerable
content/cookbook/pools.playwhat it must do
1catalog pools.ledger
2row G283 ShieldSoak Recharging Pressed Spartan
3row G284 Armored Staggerable Staggered Steadfast Brute
4
5play G283 "A 40 hit takes the shield to 60 and holds it there; 10 more at two seconds, 50, hold it three seconds from then; at five it comes back 30 a second, full before seven"
6 make h Spartan
7 deal 40 to h
8 expect h.Shield = 60 from G283: "100 points" - "40 hit"
9 expect h.Health = 100 from G283: h.Health
10 advance 2s
11 expect h.Shield = 60 from G283: "100 points" - "40 hit"
12 deal 10 to h
13 expect h.Shield = 50 from G283: "50 until"
14 advance 3s
15 expect h.Shield = 50 from G283: "50 until"
16 save
17 advance 1s
18 expect h.Shield = 80 from G283: "50 until" + "30 a second"
19 advance 1s
20 expect h.Shield = 100 from G283: "100 points"
22play G284 "Through 100 armour a 100 hit lands 50 and fills the meter 25; three are 75, a second's drain 65; a steadfast meter of 150 keeps its 65; four more hits fill it and the brute staggers for 5 seconds, the meter empty"
23 make b Brute
24 deal 100 to b Physical
25 deal 100 to b Physical
26 deal 100 to b Physical
27 expect b.Stagger = 75 from content: G284 fills half of each hit after armour but gives no armour; the content's 100 armour halves each 100, and half of 50 three times
28 expect b.Health = 850 from content: the content's 100 armour lets 50 of each 100 through, three off its 1000
29 advance 1s
30 expect b.Stagger = 65 from content: G284's 10 a second off the content's 75
31 apply Steadfast to b
32 expect b.Stagger = 65 from content: G284's raised maximum gives the meter no free progress, so it keeps the content's 65
33 save
34 deal 100 to b Physical
35 deal 100 to b Physical
36 deal 100 to b Physical
37 expect b lacks Staggered
38 deal 100 to b Physical
39 expect b has Staggered
40 expect b.Stagger = 0 from G284: b.Stagger
41 expect b remaining Staggered = 5s from G284: "5 s and empties"

What a change to Health meets

Every rule in this recipe a change to Health passes through, in order. Each line is a link to the rule.

> ledger pipeline content/cookbook/pools.ledger Health
Health: a change to it meets 4 rules, in this order
before, at Shield
  ShieldSoak: Damage of holder at Shield when holder.Shield > 0 (content/cookbook/pools.ledger:21)
    absorbs from it into Shield; held by Spartan
before, at Mitigation
  Armored: Damage of holder having Physical at Mitigation (content/cookbook/pools.ledger:45)
    scales it; held by Brute
after it lands
  Recharging: Damage of holder (content/cookbook/pools.ledger:25)
    hears what landed; held by Spartan
  Staggerable: Damage of holder (content/cookbook/pools.ledger:49)
    hears what landed; held by Brute
no archetype lacks a layer its like hold

Run it yourself

ledger check content/cookbook/pools.ledger content/cookbook/pools.play
ledger play content/cookbook/pools.play
ledger pipeline content/cookbook/pools.ledger Health