Skip to content

Instantly share code, notes, and snippets.

@Auroriax
Last active May 3, 2020 12:41
Show Gist options
  • Save Auroriax/0cc15ecd9ace807e9dc3bb44395b4f58 to your computer and use it in GitHub Desktop.
Save Auroriax/0cc15ecd9ace807e9dc3bb44395b4f58 to your computer and use it in GitHub Desktop.
Necroban [LD46 version]
Play this game by copying and pasting this code into the editor at https://dario-zubovic.github.io/PuzzleScript/editor.html
title Necroban v2 [for LD46]
author Tom Hermans [@Auroriax]
zoomscreen 16x9
noaction
homepage auroriax.itch.io
level_select
background_color #1C1C1C
(You are a necromancer, visiting a graveyard to recruit new skeletons for your undead army. However, you're too lazy to do all the work yourself. Revive half of the skeletons in each level, then push them to the remaining graves to do the work for you!)
(v2: Fixed that some invalid puzzle solutions would be accepted, if a grave was placed on the camera marker. Thanks to Steven J. Miller for reporting!)
========
OBJECTS
========
PlayerIdle P
Red Yellow Black
.000.
.010.
00000
00200
00200
EndingPlayerIdle E
Red Yellow Black
.000.
.010.
00000
00200
00200
PlayerSummoning
Yellow Red Black
.000.
.010.
00000
00200
00200
StaticGrave G
Gray lightgray transparent
22222
22022
20102
20102
22222
PushableGrave T
lightgray Gray transparent
22222
22022
20102
20102
22222
SkeletonIdle I
White
.000.
0.0.0
.000.
..0..
.0.0.
SkeletonSummoning
Yellow
.000.
0.0.0
.000.
..0..
.0.0.
Start s
darkgray darkgray darkgray
.000.
.0.0.
00.00
0...0
00200
Door 1
Black Yellow
.000.
00000
00010
00000
00000
Bars B
darkgray
0.0.0
0.0.0
0.0.0
0.0.0
0.0.0
FenceLeft L
darkgray
0....
0....
0....
0....
0....
FenceRight R
darkgray
....0
....0
....0
....0
....0
FenceDown D
darkgray
.....
.....
.....
.....
00000
FenceUp U
darkgray
00000
.....
.....
.....
.....
SMarker
transparent
GMarker
transparent
WMarker
transparent
FMarker
transparent
Cross
lightred
0...0
.0.0.
..0..
.0.0.
0...0
CamFocus F
transparent
Background .
#453c49
=======
LEGEND
=======
Player = PlayerIdle or PlayerSummoning or CamFocus or EndingPlayerIdle
GamePlayer = PlayerIdle or PlayerSummoning
AllPlayer = PlayerIdle or PlayerSummoning or EndingPlayerIdle
Skeleton = SkeletonIdle or SkeletonSummoning
Marker = SMarker or GMarker
Fence = FenceLeft or FenceRight or FenceDown or FenceUp or Door
Grave = StaticGrave or PushableGrave
Solid = Door or Bars
Summoner = AllPlayer or Skeleton
Moveable = AllPlayer or Skeleton or Grave
FenceAll = FenceDown and FenceUp and FenceRight and FenceLeft
# = FenceAll
V = FenceDown and FenceRight and FenceLeft
~ = FenceUp and FenceRight and FenceLeft
[ = FenceLeft and FenceUp and FenceDown
] = FenceRight and FenceUp and FenceDown
: = FenceUp and FenceDown
" = FenceLeft and FenceRight
┐ = FenceUp and FenceRight
└ = FenceDown and FenceLeft
┌ = FenceLeft and FenceUp
┘ = FenceRight and FenceDown
Q = StaticGrave and CamFocus
{ = PushableGrave and CamFocus
N = FenceLeft and FenceRight and CamFocus
Y = FenceLeft and CamFocus
K = FenceUp and CamFocus
O = FenceDown and FenceRight and CamFocus
? = Bars and CamFocus
=======
SOUNDS
=======
sfx0 2684900 (Summon)
sfx1 61353904 (Error)
sfx2 14307507 (Push skelly)
sfx3 93058102 (Pre-summon)
sfx4 84995907 (Pull skelly)
sfx5 4587708 (Win!)
endlevel 75336108
endgame 35532908
startlevel 67256908
restart 27539508
undo 61404107
Player move vertical 16393107
Player move horizontal 41151507
================
COLLISIONLAYERS
================
Background
SMarker
GMarker
CamFocus
FenceUp
FenceDown
FenceLeft
FenceRight
Solid
Start
Grave
Skeleton
PlayerIdle PlayerSummoning EndingPlayerIdle
Cross
WMarker FMarker
======
RULES
======
(Reset)
[PlayerSummoning] -> [PlayerIdle]
[SkeletonSummoning] -> [SkeletonIdle]
[Marker] -> []
[Cross] -> cancel
[> CamFocus] -> [CamFocus]
(Move)
[> AllPlayer | Skeleton] -> [> AllPlayer | > Skeleton] sfx2
[< AllPlayer | Skeleton] -> [< AllPlayer | < Skeleton] sfx4
(Graves)
[ < GamePlayer Grave ] -> [ < GamePlayer SkeletonIdle ] sfx0
[ > Skeleton | PushableGrave] -> [ > Skeleton | > PushableGrave]
(Stop movement)
left [ left Moveable | FenceRight] -> [ Moveable | FenceRight]
right [ right Moveable | FenceLeft] -> [ Moveable | FenceLeft]
up [ up Moveable | FenceDown] -> [ Moveable | FenceDown]
down [ down Moveable | FenceUp] -> [ Moveable | FenceUp]
[> Moveable | Solid] -> [Moveable | Solid]
[right Moveable FenceRight] -> [Moveable FenceRight]
[left Moveable FenceLeft] -> [Moveable FenceLeft]
[up Moveable FenceUp] -> [Moveable FenceUp]
[down Moveable FenceDown] -> [Moveable FenceDown]
(Validate)
late [Skeleton FenceAll] -> cancel
late [AllPlayer Skeleton] -> cancel
late [GamePlayer Grave] -> [PlayerSummoning Grave] sfx3
late [Skeleton Grave] -> [SkeletonSummoning Grave]
(Check stuck states)
late [Skeleton] [GamePlayer] -> [Skeleton SMarker] [GamePlayer]
late [Grave] -> [Grave GMarker]
late [SMarker] [GMarker] -> [] []
late [SMarker] [GamePlayer] -> [SMarker] [GamePlayer Cross] sfx1
(Win condition)
late [GamePlayer] -> [GamePlayer WMarker]
(late [GMarker] [WMarker] -> [GMarker] [FMarker]
late [SMarker] [WMarker] -> [SMarker] [FMarker])
late [Grave no Summoner] [WMarker] -> [Grave] [FMarker]
late [Skeleton no Grave] [WMarker] -> [Skeleton] [FMarker]
late [door] [WMarker] -> [] [WMarker] sfx5
late [grave] [WMarker] -> [] [WMarker]
late [Skeleton] [WMarker] -> [] [WMarker]
late [CamFocus] [WMarker] -> [] [WMarker]
==============
WINCONDITIONS
==============
some Player on Start
(some Skeleton
all Grave on Summoner
all Skeleton on Grave)
=======
LEVELS
=======
(Initial world map)
(......r.......l..dddddddddd..
ddddd.┘1[:┐.t.l.r....ttt...l.
..t.."t..t"st.l.r.┌u┐tst...l.
.#t.."t..t".t.└d┘.l.rttt...└d
ttstt"t..t".t.1...l.r......1s
..t#.vts.t".truuuu..r......┌u
..t..1u.┌u.uuuruuuuu"......l.
┐1┌uuuuuddddd.r.....lu::u::..
┘.└dddd┘.....└rg~.~.l┘..v..└.
..tt.s1...s...lu┘gv.v.ggggg.l
u.uuuu~.#g#g#.l┘g...1.#.#.#.l
.tttt.".......vg#.#.~...s...l
u].[uurg~g~g~g1.s...l┐.....┌.
r.d.l..u.u.u.u┐dddddl.::]1[dd
r.t.l.ddd.......d.dddr.......
r...l┘...└.ddddrg".s.".┌].[┐.
d:::┘....gvg..g"."g.g".vg.gv.
p......s..1..s.v.".#.v...s...
uuuu┐g....~.~..1.vg.g1.~g.g~.
.....┐...┌rg".g#.....~.└].[┘.
......uuu..u.uuuuuuuur.......)
(Empty world map)
(.......r.......l..dddddddddd..
.ddddd.┘.[:┐...l.r..........l.
rf...."...."...l.r.┌u┐......l.
r.#..."...."...└d┘.l.r......└d
r....."....".......l.r......bs
r...#.v...."..ruuuu..r......┌u
r......u.┌u.uuuruuuuu"......l.
.┐.┌uuuuuddddd.r.....lu::u::..
.┘.└dddd┘.....└r.~.~.l┘..v..└.
r..............lu┘.v.v.......l
ru.uuuu~.#.#.#.l┘......#.u.#.l
r......".......v.#.#.~.......l
.u].[uur.~.~.~.......l┐.....┌.
.r.d.l..u.u.u.u┐dddddl.::].[dd
.r...l.ddd.......d.dddr.......
.r...l┘...└.ddddr."...".┌].[┐.
dd:::┘.....v....".".#.".v...v.
................v."...v.......
uuuuu┐.....~.~....v.....~...~.
......┐...┌r."..#.....~.└].[┘.
.......uuu..u.uuuuuuuur.......)
message This is a good night to raise a skeleton army!
ru.uuuu~.#.#.#.l┘....b.#.u.#.l
r......".......v.#.#.~...s...l
.u].[uur.~.~.~.b.s...l┐.....┌.
.r.d.l..u.u.u.u┐dddddl.::]b[dd
.r...l.ddd.......d.dddr.......
.r...l┘...└.ddddr.".s.".┌].[┐.
dd:::┘.....v....".".#.".v...v.
.p......s..b..s.v."...v...s...
uuuuu┐.....~.~..b.v...b.~...~.
......┐...┌r."..#.....~.└].[┘.
.......uuu..u.uuuuuuuur.......
message Level 1/12: Lonely Graves
section 1. Lonely Graves
ru.uuuu~.#.#.#.l┘....b.#.u.#.l
r......".......v.#.#.~...s...l
.u].[uur.~.~.~.b.s...l┐.....┌.
.r.d.l..u.u.u.u┐dddddl.::]b[dd
.r...l.ddd.......d.dddr.......
.r...l┘...└.ddddr.".s.".┌].[┐.
dd:::┘f...gv....".".#.".v...v.
.....b..p..1..s.v."...v...s...
uuuuu┐g....~.~..b.v...b.~...~.
......┐...┌r."..#.....~.└].[┘.
.......uuu..u.uuuuuuuur.......
message Level 2/12: Dead End
section 2. Dead End
ru.uuuu~.#.#.#.l┘....b.#.u.#.l
r......".......v.#.#.~...s...l
.u].[uur.~.~.~.b.s...l┐.....┌.
.r.d.l..u.u.u.u┐dddddl.::]b[dd
.r...l.ddd.......d.dddr.......
.r...l┘...└.ddddr.".s.".┌].[┐.
dd:::┘.....vq..g".".#.".v...v.
.....b.....b..p.v."...v...s...
uuuuu┐.....~.~..1.v...b.~...~.
......┐...┌rg".g#.....~.└].[┘.
.......uuu..u.uuuuuuuur.......
message Level 3/12: Moonlit Mortarium
section 3. Moonlit Mortarium
ru.uuuu~.#.#.#.l┘....b.#.u.#.l
r......".......v.#.#.~...s...l
.u].[uur.~.~.~.b.s...l┐.....┌.
.r.d.l..u.u.u.u┐dddddl.::]b[dd
.r...l.ddd.......d.dddr.......
.r...l┘...└.ddddrg".p.".┌].[┐.
dd:::┘.....v...."."g#g".v...v.
.....b.....b....v."...v...s...
uuuuu┐.....~.~..b.vg.g1.~...~.
......┐...┌r."..#f....~.└].[┘.
.......uuu..u.uuuuuuuur.......
message Level 4/12: Dracula's Dogma
section 4. Dracula's Dogma
.......r.......l..dddddddddd..
.ddddd.┘b[:└...l.r..........l.
r....."...."s..l.r.┌u┐.s....l.
r.#..."...."...└d┘.l.r......└d
r..s.."...."...b...l.r......bs
r...#.v.s.."..ruuuu..r......┌u
r.....bu.┌u.uuuruuuuu"......l.
.┐.┌uuuuuddddd.r.....lu::u::..
.┘b└dddd┘.....└r.~.~.l┘..v..└.
r.....sb...s...lu┘.v.v.......l
ru.uuuu~.#.#.#.l┘....b.#.u.#.l
r......".......v.#.#.~...s...l
.u].[uur.~.~.~.b.s...l┐.....┌.
.r.d.l..u.u.u.u┐dddddl.::]1[dd
.r...l.ddd.......d.dddr.......
.r...l┘...└.ddddr."...".┌].[┐.
dd:::┘.....v....".".#.n.vg.gv.
.....b.....b....v."...v...p...
uuuuu┐.....~.~..b.v...b.~g.g~.
......┐...┌r."..#.....~.└].[┘.
.......uuu..u.uuuuuuuur.......
message Level 5/12: Line of Fright
section 5. Line of Fright
.......r.......l..dddddddddd..
.ddddd.┘b[:└...l.r..........l.
r....."...."s..l.r.┌u┐.s....l.
r.#..."...."...└d┘.l.r......└d
r..s.."...."...b...l.r......bs
r...#.v.s.."..ruuuu..r......┌u
r.....bu.┌u.uuuruuuuu"......l.
.┐.┌uuuuuddddd.r.....lu::u::..
.┘b└dddd┘.....└r.~.~.l┘..v..└.
r.....sb...s...lu┘.v.vfggggg.l
ru.uuuu~.#.#.#.l┘....1.#.u.#.l
r......".......v.#.#.~...p...l
.u].[uur.~.~.~.b.s...l┐.....┌.
.r.d.l..u.u.u.u┐dddddl.::]b[dd
.r...l.ddd.......d.dddr.......
.r...l┘...└.ddddr."...".┌].[┐.
dd:::┘.....v....".".#.".v...v.
.....b.....b....v."...v.......
uuuuu┐.....~.~..b.v...b.~...~.
......┐...┌r."..#.....~.└].[┘.
.......uuu..u.uuuuuuuur.......
message Level 6/12: Praise the Dead
section 6. Praise the Dead
.......r.......l..dddddddddd..
.ddddd.┘b[:└...l.r..........l.
r....."...."s..l.r.┌u┐.s....l.
r.#..."...."...└d┘.l.r......└d
r..s.."...."...b...l.r......bs
r...#.v.s.."..ruuuu..r......┌u
r.....bu.┌u.uuuruuuuu"......l.
.┐.┌uuuuuddddd.r.....lu::u::..
.┘b└dddd┘.....└rg~.~.l┘..v..└.
r.....sb...s...yu┘gv.v.......l
ru.uuuu~.#.#.#.l┘g...b.#.u.#.l
r......".......vg#.#.~.......l
.u].[uur.~.~.~.1.p...l┐.....┌.
.r.d.l..u.u.u.u┐dddddl.::]b[dd
.r...l.ddd.......d.dddr.......
.r...l┘...└.ddddr."...".┌].[┐.
dd:::┘.....v....".".#.".v...v.
.....b.....b....v."...v.......
uuuuu┐.....~.~..b.v...b.~...~.
......┐...┌r."..#.....~.└].[┘.
.......uuu..u.uuuuuuuur.......
message Level 7/12: Underground Orchard
section 7. Underground Orchard
.......r.......l..dddddddddd..
.ddddd.┘b[:└...l.r..........l.
r....."...."s..l.r.┌u┐.s....l.
r.#..."...."...└d┘.l.r......└d
r..s.."...."...b...l.r......bs
r...#.v.s.."..ruuuu..r......┌u
r.....bu.┌u.uuuruuuuu"......l.
.┐.┌uuuuuddddd.r.....lu::u::..
.┘b└dddd┘.....└r.~.~.l┘..v..└.
r.....s1f..p...lu┘.v.v.......l
ru.uuuu~.#g#g#.l┘....b.#.u.#.l
r......".......v.#.#.~.......l
.u].[uurg~g~g~gb.....l┐.....┌.
.r.d.l..u.u.u.u┐dddddl.::]b[dd
.r...l.ddd.......d.dddr.......
.r...l┘...└.ddddr."...".┌].[┐.
dd:::┘.....v....".".#.".v...v.
.....b.....b....v."...v.......
uuuuu┐.....~.~..b.v...b.~...~.
......┐...┌r."..#.....~.└].[┘.
.......uuu..u.uuuuuuuur.......
message Level 8/12: Turning One's Grave
section 8. Turning One's Grave
.......r.......l..dddddddddd..
.ddddd.┘b[:└...l.r..........l.
r....."...."s..l.r.┌u┐.s....l.
r.#..."...."...└d┘.l.r......└d
r..s.."...."...b...l.r......bs
r...#.v.s.."..ruuuu..r......┌u
r.....bu.┌u.uuuruuuuu"......l.
.┐.┌uuuuuddddd.r.....lu::u::..
.┘1└dddd┘.....└r.~.~.l┘..v..└.
r...ttpb.......lu┘.v.v.......l
ru.uuuu~.#.#.#.l┘....b.#.u.#.l
r.tttt.".......v.#.#.~.......l
fu].[uur.~.~.~.b.....l┐.....┌.
.r.d.l..u.u.u.u┐dddddl.::]b[dd
.r.t.l.ddd.......d.dddr.......
.r...l┘...└.ddddr."...".┌].[┐.
dd:::┘.....v....".".#.".v...v.
.....b.....b....v."...v.......
uuuuu┐.....~.~..b.v...b.~...~.
......┐...┌r."..#.....~.└].[┘.
.......uuu..u.uuuuuuuur.......
message Level 9/12: Crossed Lovers
section 9. Crossed Lovers
.......r.......l..dddddddddd..
.ddddd.┘b[:└...l.r..........l.
rf.t.."...."s..l.r.┌u┐.s....l.
r.#t.."...."...└d┘.l.r......└d
rttptt"...."...b...l.r......bs
r..t#.v.s.."..ruuuu..r......┌u
r..t..1u.┌u.uuuruuuuu"......l.
.┐b┌uuuuuddddd.r.....lu::u::..
.┘.└dddd┘.....└r.~.~.l┘..v..└.
r......b.......lu┘.v.v.......l
ru.uuuu~.#.#.#.l┘....b.#.u.#.l
r......".......v.#.#.~.......l
.u].[uur.~.~.~.b.....l┐.....┌.
.r.d.l..u.u.u.u┐dddddl.::]b[dd
.r...l.ddd.......d.dddr.......
.r...l┘...└.ddddr."...".┌].[┐.
dd:::┘.....v....".".#.".v...v.
.....b.....b....v."...v.......
uuuuu┐.....~.~..b.v...b.~...~.
......┐...┌r."..#.....~.└].[┘.
.......uuu..u.uuuuuuuur.......
message Level 10/12: Mysterious Masoleum
section 10. Mysterious Masoleum
.......r.......l..dddddddddd..
.ddddd.┘1[:└...l.r..........l.
r....."{..t"s..l.r.┌u┐.s....l.
r.#..."t..t"...└d┘.l.r......└d
r....."t..t"...b...l.r......bs
r...#.vtp.t"..ruuuu..r......┌u
r......ub┌u.uuuruuuuu"......l.
.┐b┌uuuuuddddd.r.....lu::u::..
.┘.└dddd┘.....└r.~.~.l┘..v..└.
r......b.......lu┘.v.v.......l
ru.uuuu~.#.#.#.l┘....b.#.u.#.l
r......".......v.#.#.~.......l
.u].[uur.~.~.~.b.....l┐.....┌.
message Level 11/12: River Styx
section 11. River Styx
.......r...?.t.l..dddddddddd..
.ddddd.┘.[:└.t.l.r..........l.
r....."...."pt.l.r.┌u┐.s....l.
r.#..."....".t.└d┘.l.r......└d
r....."....".t..1..l.r......bs
r...#.v....".truuuu..r......┌u
r......ub┌u.uuuruuuuu"......l.
.┐b┌uuuuuddddd.r.....lu::u::..
.┘.└dddd┘.....└r.~.~.l┘..v..└.
r......b.......lu┘.v.v.......l
r..uuuu~.#.#.#.l┘....b.#.u.#.l
r......".......v.#.#.~.......l
.u].[uur.~.~.~.b.....l┐.....┌.
message Level 12/12: Libre Morte
section 12 Libre Morte
.......r...b...l..dddddddddd..
.ddddd.┘.[:┐...l.r...b{tt...l.
r....."...."...l.r.┌u┐tpt...l.
r.#..."...."...└d┘.l.rttt...└d
r....."....".......l.r......1s
r...#.v...."..ruuuu..r......┌u
r......ub┌u.uuuruuuuu"......l.
.┐b┌uuuuuddddd.r.....lu::u::..
.┘.└dddd┘.....└r.~.~.l┘..v..└.
r......b.......lu┘.v.v.......l
r..uuuu~.#.#.#.l┘....b.#.u.#.l
r......".......v.#.#.~.......l
.u].[uur.~.~.~.b.....l┐.....┌.
message Epilogue
section Epilogue
.......r.......l..dddddddddd..
.ddddd.┘.[:┐iiil.r.iii......l.
r....."...."...l.r.┌u┐....i.l.
r.#..."...."...└d┘.l.r......└d
r....."iii.".......l.r.......e
r...#.vi.i."..ruuuud.r.i....┌u
r......u.┌u.uuuruuuiu"......l.
.┐.┌uuuuuddddd.r...i.lu::u::..
.┘.└dddd┘.....└r.~.~.l┘..v..└.
r..............lu┘.v.v.......l
riiiiii~.#.#.#.l┘i.i...#.ui#.l
riiiiii".......v.#.#i~.i.ii..l
.u]i[uur.~.~.~.....iil┐.i...┌.
.riiil..u.u.u.u┐dddddl.::].[dd
.riiil.ddd.......d.dddriii....
.riiil┘...└.ddddr."..."i┌].[┐.
dd:::┘.....v....".".#."iviiiv.
s...............v.".i.v..ii...
uuuuu┐.....~.~....v.i...~i..~i
......┐...┌r."..#...i.~.└].[┘i
.......uuu..u.uuuuuuuur....iii
message Go forth, skeletons! Let us make grave haste!
message [The end! Thanks for playing.]
(
(*....)
┘...└
....g
..p..
g....
┐...┌
(*....)
g..g
..p.
.~..
g".g
(*....)
g".p.
."g.g
.".#.
.vg.g
.....
(**...)
.......
.┌].[┐.
.vg.gv.
...p...
.~g.g~.
.└].[┘.
.......
┘..v..└
.ggggg.
.#.#.#.
...p...
┐.....┌
(***..)
.....
.....
g#g#.
#g...
g#.#.
.p...
.....
(**...)
#.....#
...p...
.#g#g#.
.......
g~g~g~g
(rdudd lldul luurr duuld drrrru ldddr rudll llllu urrrr rrddl llluu urdll urddd lludr ruull dd)
(**..., Grave-pushing tutorial)
..gg.p
u.uuuu
.gggg.
(***.., after grave-pushing)
..t..
.#t..
ttptt
..t#.
..t..
(rllrl druud dlldu urrru urlld dllu)
(***..)
t.pt
t..t
t..t
t..t
(rddll lrurd ldruu uldrd luurr dlldd ruldr uurul lddru ldrru lddlu rurd)
(***..)
┘.t.l
..t.l
┐pt.l
r.t.└
r.t..
r.t.┌
(rduld drudr uldlu uulrr drduu llddr urdlu u)
(****.)
ttt..
tpt..
ttt..
.....
.....
(rlldu rddlu rruld rrdll ludru rdluu)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment