Skip to content

Instantly share code, notes, and snippets.

@competor
Last active January 6, 2025 03:25
Show Gist options
  • Save competor/6a0d3c9c202798d54897fe1bd7d72f0d to your computer and use it in GitHub Desktop.
Save competor/6a0d3c9c202798d54897fe1bd7d72f0d to your computer and use it in GitHub Desktop.
title Portrait of Traceability
author competor
run_rules_on_level_start
( verbose_logging )
========
OBJECTS
========
Background
#dbc1af
Target
#c9814b
.....
.000.
.000.
.000.
.....
TargetOn
#cf6a4f
.....
..0..
.....
.....
.....
Wall
#25272a #dda963
11111
11111
11111
00000
00000
WallTop
#25272a #dda963
.....
.....
.....
.....
11111
WallJointA
#25272a #dda963 #b2af5c
.....
.....
.....
21212
.....
WallJointB
#25272a #dda963 #b2af5c
.....
.....
.....
12121
.....
patA
transparent
patB
transparent
traceA
#b2af5c
.0.0.
0.0.0
.0.0.
0.0.0
.0.0.
traceB
#b2af5c
0.0.0
.0.0.
0.0.0
.0.0.
0.0.0
traceAUpTop
#b2af5c
.....
.....
.....
.....
0.0.0
traceAUp
#b2af5c
.0.0.
0.0.0
.0.0.
.....
.....
traceBUpTop
#b2af5c
.....
.....
.....
.....
.0.0.
traceBUp
#b2af5c
0.0.0
.0.0.
0.0.0
.....
.....
Player
yellow
.....
.....
..0..
.....
.....
Character
#cf6a4f #25272a
.000.
.101.
00000
.000.
.0.0.
CharacterUpTop
#cf6a4f #25272a
.....
.....
.....
.000.
.101.
CharacterUp
#cf6a4f #25272a
00000
.000.
.0.0.
.....
.....
CrateTop
#25272a #e0b94a #b2af5c
.....
.....
.....
.....
21112
Crate
#25272a #e0b94a #b2af5c
10001
10001
21112
00000
00000
CrateUpTop
#25272a #e0b94a #b2af5c
.....
.....
21112
10001
10001
CrateUp
#25272a #e0b94a #b2af5c
21112
00000
00000
.....
.....
TraceTemp
transparent
Upper
transparent
Target2Top
#cf6a4f #cf6a4f
.....
.....
.....
.....
.1.1.
Target2
#cf6a4f #cf6a4f
.1.1.
.1.1.
.....
.....
.....
Exit
#b2af5c #b2af5c
.000.
.101.
00000
.000.
.0.0.
frame
#dbc1af #a7a79e
11111
11111
11111
11111
11111
fakeframe
#dbc1af #a7a79e
11111
11111
11111
11111
11111
footstamp
#cf6a4f
.....
.0.0.
.....
.....
.....
footstamp2
transparent
downer
transparent
fake
#cf6a4f #25272a
.000.
.101.
00000
.000.
.0.0.
=======
LEGEND
=======
. = Background
# = Wall
+ = Wall and CrateUp
P = Player and CharacterUp and Wall
* = Crate
@ = Wall and Target2
O = Target
Z = Exit
a = frame
pat = patA or patB
erase = WallTop or CrateTop or traceAUpTop or traceBUpTop or CharacterUpTop or CrateUpTop or WallJointA or WallJointB or Target2Top
obst = Crate or Wall
obstUp = CrateUp
trace = traceA or traceB
traceUp = traceAUp or traceBUp
=======
SOUNDS
=======
Crate move 32182907
CrateUp move 32182907
sfx0 92338106 (checkpoint)
sfx1 36976702 (pop)
sfx2 46803701 (push)
sfx3 7267508 (win)
sfx4 37684907 (jump)
restart 20190306
================
COLLISIONLAYERS
================
Player
(BG)
Background
patA
patB
a
(Floor)
traceA
traceB
Target
Exit
Character, Wall, Crate
WallTop
CrateTop
(Wall)
TargetOn
traceAUp
traceBUp
traceAUpTop
traceBUpTop
Target2, Target2Top
WallJointA, WallJointB
footstamp
footstamp2
CharacterUp, CrateUp
CharacterUpTop, CrateUpTop
fake
fakeframe
(Flag)
TraceTemp
Upper
downer
======
RULES
======
(Init===========================================================================)
[ Character ] -> []
[ CharacterUp ] -> []
[ Player no Wall no Crate ] -> [ Player Character ]
[ Player obst ] -> [Player obst CharacterUp ]
late [ Character ] -> []
late [ CharacterUp ] -> []
late [ Player no obst ] -> [ Player Character ]
late [ Player obst ] -> [ Player obst CharacterUp ]
(Move: avoid move================================================================)
[ > Player Character | Wall ] -> cancel
[ > Player Character | obst | obst ] -> cancel
[ > Player CharacterUp Wall | no obst ] -> cancel
[ > Player CharacterUp | obstup | obstup ] -> cancel
[ action Player ] -> [ Player ] checkpoint sfx0
(Move: floor====================================================================)
[ > Player Character | Crate CrateUp | no obst ] -> [ > Player > Character | > Crate > CrateUp TraceTemp | ]
[ > Player Character | Crate | no obst ] -> [ > Player > Character | > Crate TraceTemp | ]
late [ TraceTemp patA ] -> [ traceA patA ]
late [ TraceTemp patB ] -> [ traceB patB ]
(Move: upfloor====================================================================)
[ > Player CharacterUp | CrateUp | no CrateUp ] -> [ > Player > CharacterUp | > CrateUp | ]
late [ TraceTemp patA ] -> [ traceA patA ]
late [ TraceTemp patB ] -> [ traceB patB ]
[ > Player Crate | no obst ] -> sfx4
(footstamp==========================================================)
late [ Player obst no footstamp ] -> [ Player obst footstamp ]
late [ footstamp no obst ] -> [ ]
late [ Player no footstamp2 ] -> [ Player footstamp2 ]
late [ Player Exit ] -> [ Player fake ] sfx3
late [ fake | footstamp2 ] -> [ fake | fake ]
late [ fake obst ] -> [ fake ]
late [ Player fake | frame ] -> [ Player fake | fakeframe ]
(end)
[ > Player fake ] -> win
(avoid out of bounds)
late [ frame Player ] -> cancel
late [ frame Crate ] -> cancel
late [ frame CrateUp ] -> cancel
(Upwall ====================================================================)
late [ Target crate no TargetOn ] -> [ Target Crate upper ] again sfx1
startloop
late [ Upper | trace no Upper ] -> [ Upper | Upper trace ]
endloop
late [ Upper Target ] -> [ Target ]
late [ Upper Character ] -> [ Wall CharacterUp ]
late [ Upper Crate ] -> [ Wall CrateUp ]
late [ Upper ] -> [ Wall ]
late [ Target no Crate TargetOn ] -> [ Target ]
late [ Target Crate ] -> [Target Crate TargetOn ]
late [ Wall trace ] -> [ Wall ]
late [ Target trace ] -> [ Target ]
(fall crate)
late [ CrateUp no obst ] -> [ Crate ]
(delete==============================================)
late [ Player Target2 ] -> [ Player Target2 downer ] again sfx2
late [ downer | footstamp ] -> [ downer | downer ]
late [ downer Wall traceup ] -> [ downer ]
late [ downer Player Target2 ] -> [ downer Player ]
late [ downer ] -> []
(Draw Sprites====================================================================)
[ Player no pat] -> [ Player patA ]
startloop
[ patA | no pat] -> [ patA | patB ]
[ patB | no pat] -> [ patB | patA ]
endloop
[ Wall patA ] -> [ Wall traceAUp patA ]
[ Wall patB ] -> [ Wall traceBUp patB ]
[erase] -> []
late up [ Crate | no CrateTop ] -> [ Crate | CrateTop ]
late up [ Wall | no WallTop ] -> [ Wall | WallTop ]
late up [ CharacterUp | no CharacterUpTop ] -> [ CharacterUp | CharacterUpTop ]
late up [ CrateUp | no CrateUpTop ] -> [ CrateUp | CrateUpTop ]
late up [ traceAUp | no traceAUpTop ] -> [ traceAUp | traceAUpTop ]
late up [ traceBUp | no traceBUpTop ] -> [ traceBUp | traceBUpTop ]
late up [ Target2 | no Target2Top ] -> [ Target2 | Target2Top ]
late down [ Wall patA | Wall ] -> [ Wall patA WallJointA | Wall ]
late down [ Wall patB | Wall ] -> [ Wall patB WallJointB | Wall ]
==============
WINCONDITIONS
==============
( all Player on Exit )
=======
LEVELS
=======
message Press X to create a checkpoint if you want
aaaaaaaaaaaa
a@#####.###a
aaaaaa.aaa#a
aa..###.p##a
aa.*#...##aa
a...a.*.a#aa
a.*.a#a.a@.a
a...o.#o...a
aaa#a#a##.#a
a....*.aaa#a
a..o.*.az..a
aaaaaaaaaaaa
message Yay!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment