puzzlescript
Version:
Play PuzzleScript games in your terminal!
1,176 lines (962 loc) • 17.7 kB
Plain Text
title Side painting
author Rosden Shadow [Mark Signorelli]
homepage rosden.itch.io
noaction
run_rules_on_level_Start
background_color #231F26
text_color #F2F2AA
again_interval 0.1
========
OBJECTS
========
Background
333333 #231F26 (#E57ED5 #CC5285)
11111
11011
10001
11011
11111
(
00101
01110
11011
01111
10110)
(
11101
00101
11111
10100
10111)
nomove
FFEED9 #536673
.....
.000.
.010.
.000.
.....
Target
F2F2AA #231F26
.....
.000.
.010.
.000.
.....
Wall
F2F2AA #E5C17E #CC7A52 #736053
12110
21210
22121
23232
32323
overwall
F2F2AA #E5C17E #CC7A52 #736053
.....
.....
.....
.000.
21110
Wall1
F2AACE #E57ED5 #CC5285 #845C7A
21110
21110
22221
23232
32323
overwall1
F2AACE #E57ED5 #CC5285 #845C7A
.....
.....
.....
10000
21110
Wall2
AAE0F2 #7EA1E5 #5C6684 #46495B
21110
21110
22221
23232
32323
overwall2
AAE0F2 #7EA1E5 #5C6684 #46495B
.....
.....
.....
10000
21110
Wall3
FFD9E0 #C1A2A5 #845C5C #5B4846
21110
21110
22221
23232
32323
overwall3
FFD9E0 #C1A2A5 #845C5C #5B4846
.....
.....
.....
10000
21110
Wallret
D9FFDC #7EE58D #5C8466 #4F5B46
21110
21110
22221
23232
32323
overwallret
D9FFDC #7EE58D #5C8466 #4F5B46
.....
.....
.....
10000
21110
Playerright
D9FFF8 #AAE0F2 #5B4846 #423D39
.000.
11202
11313
11110
.1.1.
playerleft
D9FFF8 #AAE0F2 #5B4846 #423D39
.000.
20211
31311
01111
.1.1.
Crate
D9FFDC #7EE58D #5C8466 #4F5B46
21100
21110
22110
32223
.333.
overcrate
D9FFDC #7EE58D #5C8466 #4F5B46
.....
.....
.....
.....
.000.
end
D9FFDC #7EE58D #5C8466 #4F5B46
21100
21110
22110
32223
.333.
endx
D9FFDC #7EE58D #5C8466 #4F5B46
21100
21110
22110
32223
.333.
cloner
E5C17E #DB7F55 #B32D2D #73342E
.100.
.210.
.221.
.332.
.....
swapcrate
Orange Yellow
00000
0...0
0...0
0...0
00000
swapwall
black
.....
.....
.....
.....
.....
thefloor
231F26
00000
00000
00000
00000
00000
thefloorx
231F26
00000
00000
00000
00000
00000
eend
231F26
00000
00000
00000
00000
00000
(
checkempty
black
.....
.....
.....
.....
.....
checkblock
black
.....
.....
.....
.....
.....
)
cango
transparent
can
transparent
hasmov
transparent
lb
FFD9E0 #C1A2A5 #845C5C #5B4846
21...
211..
22...
3....
.....
rb
FFD9E0 #C1A2A5 #845C5C #5B4846
...00
..110
...10
....3
.....
ub
FFD9E0 #C1A2A5 #845C5C #5B4846
.111.
..1..
.....
.....
.....
ubup
FFD9E0 #C1A2A5 #845C5C #5B4846
.....
.....
.....
.....
.000.
db
FFD9E0 #C1A2A5 #845C5C #5B4846
.....
..1..
.211.
.222.
.333.
lb1
F2AACE #E57ED5 #CC5285 #845C7A
21...
211..
22...
3....
.....
rb1
F2AACE #E57ED5 #CC5285 #845C7A
...00
..110
...10
....3
.....
ub1
F2AACE #E57ED5 #CC5285 #845C7A
.111.
..1..
.....
.....
.....
ubup1
F2AACE #E57ED5 #CC5285 #845C7A
.....
.....
.....
.....
.000.
db1
F2AACE #E57ED5 #CC5285 #845C7A
.....
..1..
.211.
.222.
.333.
lb2
AAE0F2 #7EA1E5 #5C6684 #46495B
21...
211..
22...
3....
.....
rb2
AAE0F2 #7EA1E5 #5C6684 #46495B
...10
..110
...10
....3
.....
ub2
AAE0F2 #7EA1E5 #5C6684 #46495B
.111.
..1..
.....
.....
.....
ubup2
AAE0F2 #7EA1E5 #5C6684 #46495B
.....
.....
.....
.....
.000.
db2
AAE0F2 #7EA1E5 #5C6684 #46495B
.....
..1..
.211.
.222.
.333.
lbx
TRANSPARENT
rbx
TRANSPARENT
ubx
TRANSPARENT
dbx
TRANSPARENT
lbx1
TRANSPARENT
rbx1
TRANSPARENT
ubx1
TRANSPARENT
dbx1
TRANSPARENT
lbx2
TRANSPARENT
rbx2
TRANSPARENT
ubx2
TRANSPARENT
dbx2
TRANSPARENT
rbruu
transparent
rbrud
transparent
rbrul
transparent
rbrur
transparent
start
TRANSPARENT
startx
TRANSPARENT
switcrate
black
.....
.....
.....
.....
.....
switcrate2
black
.....
.....
.....
.....
.....
arrow
black
.....
.....
.0.0.
.000.
..0..
arrow2
black
.....
.0.0.
.000.
..0..
.....
spa
black
.....
.....
.....
.....
.....
arrowx
black
.....
.....
.....
.....
.....
arrowx2
black
.....
.....
.....
.....
.....
winend
F2AACE #E57ED5 #CC5285 #845C7A
1000.
21100
21110
22110
.2221
=======
LEGEND
=======
. = Background
= Wall
P = Playerright and start
* = Crate
O = Target
n = nomove
a = arrow2 and wall
e=end
t = end and target and eend
w=end and winend
c=cloner
-=thefloor
x=thefloorx
1=wall1
2=wall2
3=wall3
4=wallret
feel=overwall or overcrate or overwall1 or overwall2 or overwall3 or overwallret
pushable=crate or cloner or swapcrate or switcrate or switcrate2
win=crate or wall
theemx= crate
player=playerright or playerleft
blocker = wall or nomove or arrow or wall1 or wall2 or wall3 or crate or Wallret or thefloor
walls=wall or wall1 or wall2 or wall3 or Wallret or thefloor
arrowk = arrow or arrow2 or arrowx or arrowx2
moveable=crate or player
bru1= ub or lb or rb or db
bru2= ub1 or lb1 or rb1 or db1
bru3= ub2 or lb2 or rb2 or db2
brux=ubx or lbx or rbx or dbx
brux2=ubx2 or lbx2 or rbx2 or dbx2
brux1=ubx1 or lbx1 or rbx1 or dbx1
brul=lb1 or lb or lb2
brur=rb1 or rb or rb2
bruu=ub1 or ub or ub2
brud=db1 or db or db2
(control for all)
bru= brux or brux2 or brux1 or bru1 or bru2 or bru3 or ubup or ubup1 or ubup2
rbru=rbruu or rbrud or rbrul or rbrur
blockx=blocker or crate
=======
SOUNDS
=======
undo 43401909
pushable MOVE 36772507
EndLevel 74089700
player MOVE 68988304
sfx0 52836103
sfx1 45427502
sfx2 29503700
sfx3 81951902
sfx4 21197501
sfx5 89629907
sfx6 48464903
================
COLLISIONLAYERS
================
Background
Target
nomove
Player, Wall, pushable,swapwall,thefloor,thefloorx, wall1, wall2, wall3,Wallret
ub,ub1,ub2
lb,lb1,lb2
rb,rb1,rb2
db,db1,db2
(ub1
lb1
rb1
db1
ub2
lb2
rb2
db2)
ubx,ubx1,ubx2
lbx,lbx1,lbx2
rbx,rbx1,rbx2
dbx,dbx1,dbx2
rbruu
rbrud
rbrul
rbrur
spa
can
cango
hasmov
startx
start
arrow, arrow2, arrowx, arrowx2
winend
eend
end, endx
feel
ubup
ubup2
ubup1
======
RULES
======
[]
[bru no crate]->[]
[]
[]
[]
(late down[db2 crate|no player]->[db crate|] sfx4
late up[ub2 crate|no player]->[ub crate|] sfx4
late right[rb2 crate|no player]->[rb crate|] sfx4
late left[lb2 crate|no player]->[lb crate|] sfx4)
(right[ right Player | crate no brul | no blocker ] -> [ right Player | right crate | ]
left[ left Player | crate no brur | no blocker ] -> [ left Player | left crate | ]
up[ up Player | crate no brud| no blocker ] -> [ up Player | up crate | ]
down[ down Player | crate no bruu | no blocker ] -> [ down Player | down crate | ]
right[ right Player | crate lb2 | no blocker ] -> [ right Player | right crate lb2 | ]
left[ left Player | crate rb2 | no blocker ] -> [ left Player | left crate rb2 | ]
up[ up Player | crate db2| no blocker ] -> [ up Player | up crate db2| ]
down[ down Player | crate ub2 | no blocker ] -> [ down Player | down crate ub2| ])
right[ right Player | crate no brul | ] -> [ right Player | right crate | ]
left[ left Player | crate no brur | ] -> [ left Player | left crate | ]
up[ up Player | crate no brud| ] -> [ up Player | up crate | ]
down[ down Player | crate no bruu | ] -> [ down Player | down crate | ]
(right[ right Player | crate lb2 | ] -> [ right Player | right crate right lb2 | ]
left[ left Player | crate rb2 |] -> [ left Player | left crate left rb2 | ]
up[ up Player | crate db2|] -> [ up Player | up crate up db2| ]
down[ down Player | crate ub2 |] -> [ down Player | down crate down ub2| ])
right[no walls| left Player | crate lb1 | ] -> [| left Player | left crate lb1| ]
left[no walls| right Player | crate rb1 | ] -> [| right Player | right crate rb1 | ]
up[no walls| down Player | crate db1| ] -> [| down Player | down crate db1| ]
down[no walls| up Player | crate ub1 | ] -> [| up Player | up crate ub1| ]
right[ right Player | crate lb ] -> [ right Player | crate lb ] sfx5
left[ left Player | crate rb ] -> [ left Player | crate rb ] sfx5
up[ up Player | crate db] -> [ up Player | crate db] sfx5
down[ down Player | crate ub ] -> [ down Player | crate ub ] sfx5
(bond part)
right[ moving moveable | crate lb2 ] -> [ moving moveable | crate lb2 can ]
left[ Moving crate lb2 | moveable ] -> [ Moving crate lb2 | moveable can ]
left[ moving moveable | crate rb2 ] -> [ moving moveable | crate rb2 can]
right[ Moving crate rb2 | moveable ] -> [ Moving crate rb2 | moveable can]
up[ moving moveable | crate db2 ] -> [ moving moveable | crate db2 can]
down[ Moving crate db2 | moveable ] -> [ Moving crate db2| moveable can]
down[ moving moveable | crate ub2 ] -> [ moving moveable | crate ub2 can]
up[ Moving crate ub2 | moveable ] -> [ Moving crate ub2 | moveable can]
crate |crate ]->[> crate| crate]
rigid right[ moving moveable | crate lb2 ] -> [ moving moveable | moving crate lb2 ]
+rigid left[ Moving crate lb2 | moveable ] -> [ Moving crate lb2 | MOVING moveable ]
+rigid left[ moving moveable | crate rb2 ] -> [ moving moveable | moving crate rb2 ]
+rigid right[ Moving crate rb2 | moveable ] -> [ Moving crate rb2 | MOVING moveable ]
+rigid up[ moving moveable | crate db2 ] -> [ moving moveable | moving crate db2 ]
+rigid down[ Moving crate db2 | moveable ] -> [ Moving crate db2| MOVING moveable ]
+rigid down[ moving moveable | crate ub2 ] -> [ moving moveable | moving crate ub2 ]
+rigid up[ Moving crate ub2 | moveable ] -> [ Moving crate ub2 | MOVING moveable ]
+rigid [> crate |crate ]->[> crate|> crate]
+rigid [can]->[]
cancel
(rigid right[ moving moveable | crate lb2 ] -> [ moving moveable | moving crate lb2 ]
+rigid [ Moving crate lb2 | moveable ] -> [ Moving crate lb2 | MOVING moveable ]
rigid left[ moving moveable | crate rb2 ] -> [ moving moveable | moving crate rb2 ]
+rigid [ Moving crate rb2 | moveable ] -> [ Moving crate rb2 | MOVING moveable ]
rigid up[ moving moveable | crate db2 ] -> [ moving moveable | moving crate db2 ]
+rigid [ Moving crate db2 | moveable ] -> [ Moving crate db2| MOVING moveable ]
rigid down[ moving moveable | crate ub2 ] -> [ moving moveable | moving crate ub2 ]
+rigid [ Moving crate ub2 | moveable ] -> [ Moving crate ub2 | MOVING moveable ])
(rigid [ > Player | crate ] -> [ > Player | > crate ]
+ rigid [ < Player | crate ] -> [ < Player | < crate ]
+ rigid [ Moving crate | wall ] -> [ Moving crate | MOVING wall ]
+ rigid [ Moving wall | crate ] -> [ Moving wall | MOVING crate ])
crate][crate]->[> crate][> crate])
[ crate]->[ crate cango]
right[right player | lb1][cango]->[right player | lb1][]
left[left player | rb1][cango]->[left player | rb1][]
up[up player | db1][cango]->[up player | db1][]
down[down player | ub1][cango]->[down player | ub1][]
right[right player | lb][cango]->[right player | lb][]
left[left player | rb][cango]->[left player | rb][]
up[up player | db][cango]->[up player | db][]
down[down player | ub][cango]->[down player | ub][]
crate cango|moveable|walls]->[crate|moveable|walls]
crate cango|moveable|moveable|walls]->[crate|moveable|moveable|walls]
crate cango|moveable|moveable|moveable|walls]->[crate|moveable|moveable|moveable|walls]
crate cango|moveable|moveable|moveable|moveable|walls]->[crate|moveable|moveable|moveable|moveable|walls]
crate cango|moveable|moveable|moveable|moveable|moveable|walls]->[crate|moveable|moveable|moveable|moveable|moveable|walls]
[moving crate bru cango] -> [moving crate moving bru cango]
[]
([moving crate bru ] -> [moving crate moving bru])
[moving crate hasmov]->[moving crate]
crate no bru2|crate no bru2]->[> crate|> crate]
bru|player|wall]->[bru|player|wall]
bru|crate|walls]->[bru|crate|walls]
bru|crate|crate|walls]->[bru|crate|crate|walls]
bru|crate|crate|crate|walls]->[bru|crate|crate|crate|walls]
bru|crate|crate|crate|crate|walls]->[bru|crate|crate|crate|crate|walls]
bru|crate|crate|crate|crate|crate|walls]->[bru|crate|crate|crate|crate|crate|walls]
bru|crate|blocker]->[bru|crate|blocker]
bru|crate|crate|blocker]->[bru|crate|crate|blocker]
bru|crate|crate|crate|blocker]->[bru|crate|crate|crate|blocker]
bru|crate|crate|crate|crate|blocker]->[bru|crate|crate|crate|crate|blocker])
([ spa no player][moving crate bru] -> [ spa ][moving crate moving bru])
bru|walls]->[ bru|walls]
([ right crate]->[crate])
([player no spa]->[spa player]
[ spa no player]->[]
late [startx][ spa player]->cancel
late [start]->[startx])
crate|Target]->[> crate|target] sfx2
[ left Playerright] -> [ left playerleft]
[ right Playerleft] -> [ right playerright]
[endx] ->[thefloor] sfx2
[end | thefloor]-> [endx |thefloor]
(adding the bru)
late up[ crate no hasmov|wall1][crate]->[ crate ub1|wall1][ crate ub1] sfx6
late down[ crate no hasmov|wall1][crate]->[ crate db1|wall1][ crate db1] sfx6
late left[ crate no hasmov|wall1][crate]->[ crate lb1|wall1][ crate lb1] sfx6
late right[ crate no hasmov|wall1][crate]->[ crate rb1|wall1][ crate rb1] sfx6
late up[ crate no hasmov|wall2][crate]->[ crate ub2|wall2][ crate ub2] sfx6
late down[ crate no hasmov|wall2][crate]->[ crate db2|wall2][ crate db2] sfx6
late left[ crate no hasmov|wall2][crate]->[ crate lb2|wall2][ crate lb2] sfx6
late right[ crate no hasmov|wall2][crate]->[ crate rb2|wall2][ crate rb2] sfx6
late up[ crate no hasmov|wall3][crate]->[ crate ub|wall3][ crate ub] sfx6
late down[ crate no hasmov|wall3][crate]->[ crate db|wall3][ crate db] sfx6
late left[ crate no hasmov|wall3][crate]->[ crate lb|wall3][ crate lb] sfx6
late right[ crate no hasmov|wall3][crate]->[ crate rb|wall3][ crate rb] sfx6
late up[ crate no hasmov bruu|wallret][crate bruu]->[ crate |wallret] [crate rbruu]sfx6
late down[ crate no hasmov brud|wallret][crate brud]->[ crate |wallret][crate rbrud] sfx6
late left[ crate no hasmov brul|wallret][crate brul]->[ crate |wallret][crate rbrul] sfx6
late right[ crate no hasmov brur|wallret][crate brur]->[ crate |wallret][crate rbrur] sfx6
late[crate bruu] [rbruu]->[crate][rbruu]
late[crate brud] [rbrud]->[crate][rbrud]
late[crate brul] [rbrul]->[crate][rbrul]
late[crate brur] [rbrur]->[crate][rbrur]
[]
[]
[crate hasmov]
late up [wall| ]-> [wall|overwall]
late up [wall1| ]-> [wall1|overwall1]
late up [wall2| ]-> [wall2|overwall2]
late up [wall3| ]-> [wall3|overwall3]
late up [wallret| ]-> [wallret|overwallret]
late up [theemx| ]-> [theemx|overcrate]
late up [ub| ]-> [ub|ubup]
late up [ub1| ]-> [ub1|ubup1]
late up [ub2| ]-> [ub2|ubup2]
(late up [crate2| ]-> [crate2|overcrate2])
late up [end| ]-> [end|overcrate]
late up [endx| ]-> [endx|overcrate]
[action player eend|]->[action player eend |crate Target]
again
(
[arrowx2]
[arrowx]
[arrow]
[arrow2])
==============
WINCONDITIONS
==============
all Target on crate
some target
=======
LEVELS
=======
message Have a block on all targets
message level 1 of 7
---------
##---
*#---
#.##--
##...###
O.....O#
...1...#
.......#
..P.*..#
##...###
####--
message level 2 of 7
---------
#####-
##....##
*#.....#
.#..2..#
.......#
..O.O..#
...*...#
..P....#
#.....##
######-
message level 3 of 7
---------
####--
#.O###-
.....#-
..#..#-
..O..#-
#.2.##-
.....#-
.*P*.#-
##...#-
####-
message level 4 of 7
---------
######-
.4.4.#-
.O.O.#-
##...###
...1...#
.......#
.*#.#*.#
...P...#
#.....##
######-
message level 5 of 7
---------
######-
#.O.O.4#
..2.2..#
.......#
#.....##
1.1.1#-
.*.*.#-
..P..#-
.....#-
######-
message level 6 of 7
---------
######-
..#..#-
#.OOO.##
.......#
.2.1.2.#
.......#
.*.*.*.#
....P..#
#.....##
######-
message level 7 of 7
---------
######-
#.O.O.##
..O.O..#
..1.1..#
.......#
.2...2.#
.......#
.**P**.#
#.....##
######-
(---------
######-
#O.O.O##
4.....4#
4.....4#
4.1.2.4#
4.....4#
4.***.4#
4..P..4#
#4...4##
######-)
(---------
######-
#.O.O.##
..2.2..#
.......#
.......#
.1.1.1.#
..*.*..#
...P...#
#.....##
######-)
(---------
---------
######-
#1O1O1##
...O...#
.*.2.*.#
..p.*..#
#.....##
######-
---------
---------)
(---------
######-
.....#-
.P.*.#-
..2..#-
#1O1O1##
...O...#
.*.2.*.#
.......#
#.....##
######-)
(---------
##2###-
#12O24##
1O1.4O4#
.......#
.......#
...*...#
..*.*..#
....P..#
#.....##
######-)
(---------
####--
.O.#--
...#--
...#--
.O.#--
#.2.##-
#.....##
..*P*.4#
#.....##
######-)
(---------
###--
#O.#--
.P.#--
.O.#--
.2.#--
...#--
**.#--
...#--
####--
---------)
(---------
######-
#....*##
.......#
...2...#
.4.2...#
.....*.#
...P...#
###O####
O#---
##---)
(---------
######-
#.....##
.......#
.......#
.......#
.......#
.......#
.......#
#.....##
######-)
(---------
######-
#*....##
.......#
...2...#
...2...#
4....*.#
...P...#
###O####
O#---
##---)
(---------
######-
.....#-
.O.O.#-
.....#-
.2.2.#-
#.....##
..*.*..#
.#.P.#.#
.......#
########)
(---------
##---
#*###-
#....#-
#.....#-
4..2..#-
...P..#-
..*.*.#-
..OOO.#-
#.....#-
######-)
(---------
######-
..O..#-
#....O##
...#...#
..1.4..#
.*...*.#
...P...#
.2...3.#
#.....##
######-)
(
message level test
---------
######-
.....#-
#..*..##
.......#
.....*.#
.*.2...#
...P...#
....*..#
#.....##
######-)
(---------
######-
#.....##
...O.O.#
..#....#
.....O.#
..*....#
.*.*.#.#
.......#
#..P..##
######-)
(---------
######-
#.....##
.O.O.O.#
.......#
.......#
..***..#
.#...#.#
.......#
#..P..##
######-)
(----------
----------
#########
........#
..#O#...#
..#.#..#-
.#.#.#.#-
..*.*..#-
...P...#-
#.....##-
######--)
xxxxxxxxxxxxxx
-eeeeeeeeeeee-
eeeeeeeeeeeeee
eeeeeeeeeeeeee
wewewewwweweew
wewewetweewwew
weweweeweeweww
eweweewwweweew
eeeeeeeeeeeeee
eeeeeeeeeeeeee
-eeeeeeeeeeee-