105 lines
2.7 KiB
YAML
105 lines
2.7 KiB
YAML
|
|
# Level 2 — "3% Remaining"
|
||
|
|
# Shorter fuse, meaner traps, more things that move when you least want them to.
|
||
|
|
|
||
|
|
name: "2 — 3% Remaining"
|
||
|
|
tile_size: 32
|
||
|
|
battery_seconds: 32
|
||
|
|
battery_pct: 4 # bar reads ~empty to match the theme (real time is 32s)
|
||
|
|
|
||
|
|
map: |
|
||
|
|
.........................
|
||
|
|
....#####................
|
||
|
|
.........................
|
||
|
|
.........................
|
||
|
|
.......----........###...
|
||
|
|
.........................
|
||
|
|
...###...........###.....
|
||
|
|
.........................
|
||
|
|
..........#..#...........
|
||
|
|
.........................
|
||
|
|
.P..................G....
|
||
|
|
#####.####.#####...######
|
||
|
|
|
||
|
|
traps:
|
||
|
|
# Ceiling spikes that stab down when you pass beneath — proximity triggered.
|
||
|
|
- type: spike
|
||
|
|
at: [8, 2]
|
||
|
|
direction: down
|
||
|
|
trigger: { within: 2.0 }
|
||
|
|
|
||
|
|
# A static spike hazard in the middle lane (a deadly block = spike block).
|
||
|
|
- type: block
|
||
|
|
at: [13, 4]
|
||
|
|
deadly: true
|
||
|
|
- type: block
|
||
|
|
at: [13, 5]
|
||
|
|
deadly: true
|
||
|
|
- type: block
|
||
|
|
at: [13, 6]
|
||
|
|
deadly: true
|
||
|
|
|
||
|
|
# A spiked platform patrolling the low run — jump it, never land on it.
|
||
|
|
# (Demonstrates a *mobile* mount: a block rides the patrolling block AND runs
|
||
|
|
# its own motion, lunging up to catch a player leaping over while it keeps
|
||
|
|
# sliding left/right with its carrier. Spikes ride on top of that block.)
|
||
|
|
- type: block
|
||
|
|
at: [6, 10]
|
||
|
|
path: [[6, 10], [9, 10]]
|
||
|
|
mode: pingpong
|
||
|
|
speed: 130
|
||
|
|
sprite: patrol_block
|
||
|
|
mounts:
|
||
|
|
# Rests one tile above the patrol block; springs three tiles up when the
|
||
|
|
# player is above it, then settles back — all while riding along.
|
||
|
|
- type: block
|
||
|
|
at: [0, -1]
|
||
|
|
move: [0, -3]
|
||
|
|
speed: 320
|
||
|
|
mode: once
|
||
|
|
trigger: { dir: above, range: 5, aligned: true }
|
||
|
|
mounts:
|
||
|
|
- type: spike
|
||
|
|
at: [0, -1] # spikes on top of the lunging block, riding with it
|
||
|
|
trigger: always
|
||
|
|
direction: up
|
||
|
|
|
||
|
|
# Two of the mid platform's tiles are fake — the middle looks fully floored.
|
||
|
|
- type: block
|
||
|
|
at: [11, 8]
|
||
|
|
fake: true
|
||
|
|
- type: block
|
||
|
|
at: [12, 8]
|
||
|
|
fake: true
|
||
|
|
|
||
|
|
# A block that slides sideways into you as you approach the gap.
|
||
|
|
- type: block
|
||
|
|
at: [16, 6]
|
||
|
|
move: [-3, 0]
|
||
|
|
speed: 260
|
||
|
|
trigger: { within: 3.0 }
|
||
|
|
|
||
|
|
# Crossfire: turrets from both walls at the goal approach.
|
||
|
|
- type: arrow_shooter
|
||
|
|
at: [23, 8]
|
||
|
|
direction: left
|
||
|
|
speed: 300
|
||
|
|
interval: 1.1
|
||
|
|
- type: arrow_shooter
|
||
|
|
at: [0, 4]
|
||
|
|
direction: right
|
||
|
|
speed: 220
|
||
|
|
interval: 1.7
|
||
|
|
trigger: { within: 8 }
|
||
|
|
|
||
|
|
# The single pillar before the goal (col 17 on the floor row) is a lie.
|
||
|
|
- type: block
|
||
|
|
at: [17, 11]
|
||
|
|
fake: true
|
||
|
|
|
||
|
|
# Crumbling stairs up to the exit.
|
||
|
|
- type: block
|
||
|
|
at: [19, 9]
|
||
|
|
crumble: true
|
||
|
|
crumble_delay: 0.3
|
||
|
|
respawn: 2.0
|