# Grapple Guardian (the Grenchler class, module 27): Torvus 08_swamp_grappleguardian_dark layer 3
# holds the guardian u052e and u04fa, both inactive until Activate. The steps follow
# tools/cov/specs/grenchler_guardian.con (the gren2 driver: lock-on, tail shots, missile, kills).
# Checks are game updates (@f<n>; gameplay from ~f240), not wall seconds; the family runs F=2500,
# last check f2280.
@f300 layer 3
@f400 god 1; give grappleBeam 1; give darkBeam 1; give missile 5
@f420 send u052e Activate; send u04fa Activate
@f440 objs grenchler; obj u052e; obj u04fa
@f460 tp -168 25 -28
@f470 face 0
@f900 obj u052e; obj u04fa
# `grapple <id>` only takes a CScriptGrapplePoint id, never an actor, so the guardian's grapple
# chain is entered with real lock-on and the grapple beam, as gren2 did (`press l`, then `press r`).
@f1000 press l 60
@f1100 press r 30
@f1200 obj u052e
@f1300 press l 60; objs grapple
@f1400 obj u04fa; objs grenchler
@f1500 press r 30
@f1700 shoot u052e missile
@f1720 shoot u04fa missile
@f1800 shoot u052e charged
@f1820 shoot u04fa charged
@f2000 tp -168 10 -26; obj u052e; obj u04fa
@f2100 var u052e gren.tail 1
# The guardian reflects every weapon (its vulnerability is 0, retail too) and ignores damage while
# the tail is on, so it is killed from the console as the Splitter's chassis is; gren2 broke the
# tail with the same var first (`var <id> gren.tail 1` runs DestroyTail, as a breaking hit does).
@f2200 damage u04fa 5; obj u04fa
@f2210 damage u04fa 5 0 missile; obj u04fa
@f2220 fsm u04fa Lurk; obj u04fa
@f2250 kill u052e; damage u04fa 1000 0 missile; objs grenchler
# later check: the killed guardian is gone by the next update (3 -> 2 objects)
@f2280 objs grenchler
@f2290 objs grenchler
