Runs
Abilities that run on in time.
v2's cookbook, abilities that run on in time (G307-G313): a combo kept alive by pressing in time, a leap that lands where the game says, a cast that hits push back, a reload that firing cancels, a mortar aimed and then confirmed, a held gun that fires faster and faster, and a beam that ramps while it stays on. The game writes the leap's touchdown (a mark where it came down, and Landed of the leaper by it), the mortar's final point (a mark it confirms at), and the trigger held and let go (Firing and Beaming put on and taken off).
1
# v2's cookbook, abilities that run on in time (G307-G313): a combo kept alive by pressing in time, a leap that lands2
# where the game says, a cast that hits push back, a reload that firing cancels, a mortar aimed and then confirmed, a3
# held gun that fires faster and faster, and a beam that ramps while it stays on. The game writes the leap's touchdown4
# (a mark where it came down, and Landed of the leaper by it), the mortar's final point (a mark it confirms at), and5
# the trigger held and let go (Firing and Beaming put on and taken off).7
rate 608
link team9
allegiance team10
stat MaxHealth11
stat MagSize12
pool Health max MaxHealth13
pool Ammo max MagSize14
damage Health15
tags Shot Spooled16
event Landed18
archetype Team20
archetype Fighter21
base MaxHealth 100022
base MagSize 623
full Health Ammo24
grants Rush Leap Chant Shot Reload Mortar Confirm Beam26
archetype Mark28
# ---- G307 rush: 10, then 10 more for each combo point, the points kept by pressing within 1.5 seconds ----30
ability Rush31
target one32
deal 10 + 10 * stacks(holder, Combo) to target33
apply Combo to holder35
effect Combo36
stack add max 2 then refresh37
lasts 1.5s39
# ---- G308 the leap: airborne up to 2 seconds; the slam lands where the game says it came down ----41
ability Leap42
target one43
apply Airborne to holder45
effect Airborne46
lasts 2s47
after Landed of holder48
deal 30 to all enemies within 3 of event.source49
remove self51
# ---- G309 the chant: 3 seconds to cast, each hit taken half a second more, three at most ----53
ability Chant54
target one55
apply Casting to holder with victim = target57
effect Casting58
stack extend59
lasts 3s60
var victim actor61
var pushes = 062
after Damage of holder when self.pushes < 363
self.pushes += 164
apply Casting to holder for 0.5s65
expire66
deal 40 to self.victim68
# ---- G310 a reload of 2 seconds fills the magazine at its end; a shot partway through ends it ----70
ability Shot71
tags Shot72
target one73
cost Ammo 174
deal 15 to target76
ability Reload77
requires not has(holder, Reloading) else "reloading"78
apply Reloading to holder80
effect Reloading81
lasts 2s82
ends on Activate by holder having Shot83
expire84
set Ammo holder.MagSize86
# ---- G311 the mortar: aimed, then confirmed within 5 seconds where the player last pointed ----88
ability Mortar89
target one90
apply Aiming to holder92
effect Aiming93
lasts 5s95
ability Confirm96
target one97
requires has(holder, Aiming) else "not aiming"98
remove Aiming from holder99
deal 50 to all enemies within 2 of target101
# ---- G312 the spool: held, it fires at once and then after gaps of 0.5, 0.4, 0.3, 0.2 and then 0.1 seconds ----103
curve SpoolGap steps104
0 0.5105
1 0.4106
2 0.3107
3 0.2108
4 0.1110
effect Firing111
var shots = 0112
grants Spool auto113
after Activate by holder having Spooled114
self.shots += 1116
ability Spool117
tags Spooled118
target one enemy119
cooldown SpoolGap(grant.shots) * 1s120
deal 10 to target122
# ---- G313 the beam: a hit at once and every half second, 5 times a charge that climbs to 4 ----124
ability Beam125
target one126
apply Beaming to holder with victim = target128
effect Beaming129
var victim actor130
var charge = 1131
start132
deal 5 * self.charge to self.victim133
self.charge = min(4, self.charge + 1)134
every 0.5s135
deal 5 * self.charge to self.victim136
self.charge = min(4, self.charge + 1)1
catalog runs.ledger2
row G307 Combo Rush Fighter3
row G308 Airborne Leap Team Fighter Mark4
row G309 Casting Chant Fighter5
row G310 Reloading Shot Reload Fighter6
row G311 Aiming Mortar Confirm Team Fighter Mark7
row G312 Firing Spool Team Fighter8
row G313 Beaming Beam Fighter10
play G307 "Three presses a second apart hit 10, 20 and 30; let the window close, and the next press is 10 again"11
make f Fighter12
make t Fighter13
act f Rush at t14
expect t.Health = 990 from G307: t.Health - "hit for 10"15
advance 1s16
act f Rush at t17
expect t.Health = 970 from G307: t.Health - "hit for 10" - "20 and"18
advance 1.4s19
act f Rush at t20
expect t.Health = 940 from G307: t.Health - "hit for 10" - "20 and" - "and 30"21
save22
act f Rush at t23
expect t.Health = 910 from content: G307 leaves open whether a fourth press in time goes on after three hits; the content keeps the 2 points, 30 off the 940 left of its 100024
advance 1.5s25
expect f lacks Combo26
act f Rush at t27
expect t.Health = 900 from content: G307 leaves open whether a press exactly 1.5 seconds on is in time; the content has closed the window, a fresh 10 off the 910 left of its 100029
play G308 "Leapt at one foe, the fighter comes down by another: the slam takes 30 from the one by the touchdown and nothing from the one aimed at; a leap never landed hits nothing"30
make a Team31
make b Team32
make f Fighter with team = a at 033
make aimed Fighter with team = b at 1034
make near Fighter with team = b at 535
act f Leap at aimed36
advance 1s37
make spot Mark at 438
raise Landed of f by spot39
expect near.Health = 970 from content: G308 gives no slam radius or health; the near foe, 1 from the touchdown, is inside the content's radius of 3 and takes 30 off its 100040
expect aimed.Health = 1000 from content: G308 gives no slam radius or health; the aimed foe, 6 from the touchdown, is beyond the content's radius of 3 and keeps its 100041
expect f lacks Airborne42
save43
act f Leap at aimed44
advance 2s45
expect f lacks Airborne46
raise Landed of f by spot47
expect near.Health = 970 from content: G308 leaves open whether a touchdown reported as the 2 seconds run out counts; the content has expired the leap, so the near foe keeps 97049
play G309 "Hit at 1 second and again at 2, the bolt lands at 4 seconds, not 3; hit four times, it is held 1.5 seconds and no more"50
make f Fighter51
make t Fighter52
act f Chant at t53
advance 1s54
deal 5 to f55
advance 1s56
deal 5 to f57
advance 1s58
expect t.Health = 1000 from G309: t.Health59
advance 1s60
expect t.Health = 960 from G309: t.Health - "A bolt of 40"61
save62
act f Chant at t63
deal 5 to f64
deal 5 to f65
deal 5 to f66
deal 5 to f67
expect f remaining Casting = 4.5s from G309: "3 seconds to cast" + "three pushes" * "half a second"68
advance 4.5s69
expect t.Health = 920 from G309: t.Health - "A bolt of 40" - "A bolt of 40"71
play G310 "Four shots leave 2 rounds; a reload can't be started twice; a shot a second in spends a round and ends it, so 2 seconds on there is still 1; a reload left alone fills the six"72
make f Fighter73
make t Fighter74
repeat 475
act f Shot at t76
expect f.Ammo = 2 from G310: "holds 6 rounds" - "repeat 4" * "costs one round"77
act f Reload78
act f Reload79
expect refused Requirement "reloading"80
advance 1s81
act f Shot at t82
expect f.Ammo = 1 from G310: "holds 6 rounds" - "repeat 4" * "costs one round" - "costs one round"83
expect f lacks Reloading84
advance 2s85
expect f.Ammo = 1 from G310: "holds 6 rounds" - "repeat 4" * "costs one round" - "costs one round"86
save87
act f Reload88
advance 2s89
expect f.Ammo = 6 from G310: "6 rounds"91
play G311 "Aimed at one spot and confirmed at another, the shell lands where it was confirmed; an aim not confirmed in 5 seconds fires nothing"92
make a Team93
make b Team94
make f Fighter with team = a at 095
make first Mark at 1096
make last Mark at 2097
make e1 Fighter with team = b at 1098
make e2 Fighter with team = b at 2199
act f Mortar at first100
advance 2s101
act f Confirm at last102
expect e2.Health = 950 from content: G311 gives no blast radius or health; enemy 2, 1 from the confirmed spot, is inside the content's radius of 2 and takes 50 off its 1000103
expect e1.Health = 1000 from content: G311 gives no blast radius or health; enemy 1, 10 from the confirmed spot, is beyond the content's radius of 2 and keeps its 1000104
save105
act f Mortar at first106
advance 5s107
act f Confirm at first108
expect refused Requirement "not aiming"110
play G312 "Held, the gun fires at 0, 0.5, 0.9, 1.2, 1.4, 1.5 and 1.6 seconds, 10 a shot; let go, it stops"111
make a Team112
make b Team113
make f Fighter with team = a at 0114
make t Fighter with team = b at 5115
apply Firing to f116
expect t.Health = 990 from G312: t.Health - "fires 10 damage"117
advance 0.5s118
expect t.Health = 980 from G312: t.Health - "fires 10 damage" * (count "apply Firing" + count "advance")119
advance 0.4s120
expect t.Health = 970 from G312: t.Health - "fires 10 damage" * (count "apply Firing" + count "advance")121
advance 0.3s122
expect t.Health = 960 from G312: t.Health - "fires 10 damage" * (count "apply Firing" + count "advance")123
save124
advance 0.2s125
expect t.Health = 950 from G312: t.Health - "fires 10 damage" * (count "apply Firing" + count "advance")126
advance 0.1s127
expect t.Health = 940 from G312: t.Health - "fires 10 damage" * (count "apply Firing" + count "advance")128
advance 0.1s129
expect t.Health = 930 from G312: t.Health - "fires 10 damage" * (count "apply Firing" + count "advance")130
remove Firing from f131
advance 1s132
expect t.Health = 930 from G312: t.Health - "fires 10 damage" * (count "apply Firing" + count "advance 0.5s" + count "advance 0.4s" + count "advance 0.3s" + count "advance 0.2s" + count "advance 0.1s")134
play G313 "Held, the beam hits 5, 10, 15, 20, 20 at half-second steps, 70 in two seconds; let go, it stops"135
make f Fighter136
make t Fighter137
act f Beam at t138
expect t.Health = 995 from G313: t.Health - "hits are 5"139
advance 0.5s140
expect t.Health = 985 from content: G313 writes the hits of 5 and 10 in one list, no words holding either alone; their 15 off the content's 1000141
advance 0.5s142
expect t.Health = 970 from content: G313 writes the hits of 5, 10 and 15 in one list, no words holding one alone; their 30 off the content's 1000143
save144
advance 1s145
expect t.Health = 930 from G313: t.Health - "(70 damage"146
remove Beaming from f147
advance 1s148
expect t.Health = 930 from G313: t.Health - "(70 damage"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.
Health: a change to it meets 1 rule, in this order after it lands Casting: Damage of holder when self.pushes < 3 (content/cookbook/runs.ledger:62) hears what landed; applied by Chant, Casting no archetype lacks a layer its like hold
Run it yourself
ledger check content/cookbook/runs.ledger content/cookbook/runs.play
ledger play content/cookbook/runs.play
ledger pipeline content/cookbook/runs.ledger Health