Created
July 6, 2021 08:41
-
-
Save pancelor/26a8d41e5a609e40adb295c9560ae008 to your computer and use it in GitHub Desktop.
paint everything everywhere! (PuzzleScript Script)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Play this game by pasting the script in http://www.puzzlescript.net/editor.html |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
title paint everything everywhere! | |
author increpare + pancelor | |
homepage www.pancelor.com (increpare.com) | |
background_color #ffb910 | |
text_color #51984f | |
again_interval 0.05 | |
run_rules_on_level_start | |
( verbose_logging ) | |
======== | |
OBJECTS | |
======== | |
Background | |
#ff00ff | |
canvas | |
#F5ECE0 | |
Wall | |
#51984f #ffb910 | |
00000 | |
01110 | |
01110 | |
01110 | |
00000 | |
Player | |
Black Orange White Blue | |
.000. | |
.111. | |
22222 | |
.333. | |
.3.3. | |
Crate1Base | |
#af101d | |
00000 | |
0...0 | |
0...0 | |
0...0 | |
00000 | |
Crate1L0 | |
#af101d | |
0.... | |
0.... | |
0.... | |
0.... | |
0.... | |
Crate1R0 | |
#af101d | |
....0 | |
....0 | |
....0 | |
....0 | |
....0 | |
Crate1U0 | |
#af101d | |
00000 | |
..... | |
..... | |
..... | |
..... | |
Crate1D0 | |
#af101d | |
..... | |
..... | |
..... | |
..... | |
00000 | |
Crate1Z0 | |
#af101d | |
..... | |
..... | |
..... | |
..... | |
..... | |
Crate2Base | |
#7cecec | |
00000 | |
0...0 | |
0...0 | |
0...0 | |
00000 | |
Crate2L0 | |
#7cecec | |
0.... | |
0.... | |
0.... | |
0.... | |
0.... | |
Crate2R0 | |
#7cecec | |
....0 | |
....0 | |
....0 | |
....0 | |
....0 | |
Crate2U0 | |
#7cecec | |
00000 | |
..... | |
..... | |
..... | |
..... | |
Crate2D0 | |
#7cecec | |
..... | |
..... | |
..... | |
..... | |
00000 | |
Crate2Z0 | |
#7cecec #F5ECE0 | |
..... | |
..... | |
..... | |
..... | |
..... | |
Paint1 | |
#CC2936 | |
..... | |
00000 | |
00000 | |
..... | |
00000 | |
Paint2 | |
#2897B0 | |
....0 | |
....0 | |
.0000 | |
.00.. | |
000.0 | |
slideright | |
transparent | |
slidedown | |
transparent | |
slideleft | |
transparent | |
slideup | |
transparent | |
nowin | |
transparent | |
======= | |
LEGEND | |
======= | |
. = Background and canvas | |
# = Wall | |
P = Player | |
1 = Crate1Base and canvas and paint1 | |
2 = Crate2Base and canvas and paint2 | |
Crate1=Crate1Base or Crate1L0 or Crate1R0 or Crate1U0 or Crate1D0 or Crate1Z0 | |
Crate2=Crate2Base or Crate2L0 or Crate2R0 or Crate2U0 or Crate2D0 or Crate2Z0 | |
CrateL=Crate1L0 or Crate2L0 | |
CrateR=Crate1R0 or Crate2R0 | |
CrateU=Crate1U0 or Crate2U0 | |
CrateD=Crate1D0 or Crate2D0 | |
CrateZ=Crate1Z0 or Crate2Z0 | |
Crate=Crate1 or Crate2 | |
paint=paint1 or paint2 | |
slidetag = slideleft or slideup or slideright or slidedown | |
obs = wall or crate | |
======= | |
SOUNDS | |
======= | |
Crate MOVE 30943107 | |
( sfx0 19998706 (paint1 ) ) | |
( sfx1 382306 (paint2 ) ) | |
sfx0 19045907 | |
( sfx0 129314260 ) | |
( sfx0 321260 ) | |
( sfx0 5212604 ) | |
( 1779703 ) | |
( 42076907 ) | |
( sfx1 56671706 ) | |
sfx1 99909509 | |
endlevel 74970903 | |
( endlevel 57283503 ) | |
( endlevel 34632303 ) | |
================ | |
COLLISIONLAYERS | |
================ | |
Background | |
canvas | |
paint1 | |
paint2 | |
Crate1Base,Crate2Base | |
Player | |
Wall, CrateZ | |
CrateL | |
CrateR | |
CrateU | |
CrateD | |
slidetag | |
nowin | |
====== | |
RULES | |
====== | |
(startup visuals) | |
[Crate1Base] -> [Crate1L0 Crate1R0 Crate1U0 Crate1D0 Crate1Z0] | |
left [Crate1L0|Crate1R0]->[|] | |
up [Crate1U0|Crate1D0]->[|] | |
[Crate2Base] -> [Crate2L0 Crate2R0 Crate2U0 Crate2D0 Crate2Z0] | |
left [Crate2L0|Crate2R0]->[|] | |
up [Crate2U0|Crate2D0]->[|] | |
[player] -> [player wall] | |
[> player slidetag]->[> player] | |
[ up player ] -> [ player slideup ] again | |
[ down player ] -> [ player slidedown ] again | |
[ left player ] -> [ player slideleft ] again | |
[ right player ] -> [ player slideright ] again | |
[ slideup ] [ crate ] -> [ slideup ] [ up crate ] again | |
[ slidedown ] [ crate ] -> [ slidedown ] [ down crate ] again | |
[ slideleft ] [ crate ] -> [ slideleft ] [ left crate ] again | |
[ slideright ] [ crate ] -> [ slideright ] [ right crate ] again | |
[ > crate | stationary obs ] -> [ crate | stationary obs ] | |
+ [ up crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ] | |
+ [ up crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ] | |
+ [ down crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ] | |
+ [ down crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ] | |
+ [ left crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ] | |
+ [ left crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ] | |
+ [ right crate1 | stationary crate1 ] -> [ stationary crate1 | stationary crate1 ] | |
+ [ right crate2 | stationary crate2 ] -> [ stationary crate2 | stationary crate2 ] | |
late [ crate1 no paint1 ] -> [ crate1 paint1 ] sfx0 | |
late [ crate2 no paint2 ] -> [ crate2 paint2 ] sfx1 | |
[nowin]->[] | |
[> crate] -> [> crate nowin] | |
late [ canvas no paint1 ] -> [ canvas nowin ] | |
late [ canvas no paint2 ] -> [ canvas nowin ] | |
============== | |
WINCONDITIONS | |
============== | |
no nowin | |
======= | |
LEVELS | |
======= | |
(increpare:perfectly fine little level) | |
(pancelor: these are both quite nice) | |
######p | |
#.....# | |
#....## | |
##.#.1# | |
#..2..# | |
####### | |
(increpare:also a perfectly fine little level) | |
######p | |
#.....# | |
#.....# | |
#..#..# | |
#...### | |
###1.2# | |
####### | |
(increpare: level with rotational symmetry - this is somethign I repeat in some later levels - not sure if that means it's worth avoiding here) | |
(pancelor: satisfying to fill all the corners. I went back and forth on whether to cut this level or not, but decided not to ) | |
###########p | |
###.......## | |
#.........## | |
#......22..# | |
#..11..22..# | |
#..11......# | |
##.........# | |
##.......### | |
############ | |
(increpare: I kinda like this one) | |
(pancelor: same! feels like a racetrack) | |
###########p | |
#11.#......# | |
#11.#......# | |
#......#.22# | |
#......#.22# | |
#...####...# | |
#..........# | |
#..........# | |
############ | |
(pancelor: i like it okay; i was a bit large IMO (made execution feel slow) -- I've compressed it a bit | |
(increpare: kinda like this one?) | |
#############p | |
#11..........# | |
#11..........# | |
#....#.......# | |
#....#.......# | |
#..######....# | |
#....####....# | |
#....####....# | |
#....####....# | |
#....######..# | |
#.......#....# | |
#.......#....# | |
#..........22# | |
#..........22# | |
############## | |
(pancelor: here's a variation that encourages some fun swirls:) | |
p############# | |
#11..........# | |
#11..........# | |
#.....#......# | |
#.....#......# | |
#.....###....# | |
#..######....# | |
#....####....# | |
#....######..# | |
#....###.....# | |
#......#.....# | |
#......#.....# | |
#..........22# | |
#..........22# | |
############## | |
) | |
############# | |
#22.........# | |
#22.........# | |
#....#......# | |
#....#......# | |
#..#####....# | |
#....###....# | |
#....#####..# | |
#......#....# | |
#......#....# | |
#.........11# | |
#.........11# | |
p############ | |
(pancelor: really satisfying to play! lots of good swirling) | |
p############## | |
###11#####22### | |
###....#....### | |
###....#....### | |
#....#####....# | |
#....#####....# | |
###...###...### | |
####.......#### | |
######...###### | |
############### | |
( | |
(increpare: fine, maybe, but like other levels) | |
(pancelor: I think this one introduces some new ideas in a nice small playground. you could probably figure them out in the next level too but I like that this one also exists) | |
(pancelor: now that we have so many levels I think we should cut this) | |
###########p | |
#..........# | |
#..........# | |
#..........# | |
#...111#...# | |
#...1212...# | |
#...1212...# | |
#...#222...# | |
#..........# | |
#..........# | |
#..........# | |
############ | |
) | |
(pancelor: not too hard) | |
#######p# | |
##...#### | |
##....### | |
##...2.## | |
##...2.## | |
##...2.## | |
##..#..## | |
##.1...## | |
##.11..## | |
##.....## | |
######### | |
(pancelor: fun! based on your level ("compressed it a bit" above)) | |
p######## | |
#......1# | |
#.......# | |
#..###..# | |
#..###..# | |
#..##...# | |
#.......# | |
#2.....## | |
######### | |
(increpare: more involved version of the above. better?) | |
(pancelor: I think both levels are good, but keep this one and cut the above one if you think we need to cut down on levels) | |
#################p | |
#................# | |
#................# | |
#................# | |
#....1.111#......# | |
#....1.121222....# | |
#....111212.2....# | |
#......#222.2....# | |
#................# | |
#................# | |
#................# | |
################## | |
( | |
(pancelor: ok? cut it for now b/c we have so many levels) | |
p######## | |
#......1# | |
#.......# | |
#..###..# | |
#..###..# | |
#..###..# | |
#.......# | |
#2..##..# | |
######### | |
) | |
(pancelor: a nice simple level that pretty clearly asks you to swap positions. I made this from one of your sketches: | |
(bad because dead end) | |
######p | |
##....# | |
#.....# | |
#12...# | |
#1##..# | |
#######) | |
p###### | |
#####.# | |
##....# | |
#.....# | |
#....1# | |
#.##21# | |
####### | |
(pancelor: based on a dead-end level you made; I liked the feeling of getting the triangles hooked together and then unhooking them. | |
(increpare: solvabe but early+subtle dead end possible :[ ) | |
(pancelor: this one gave me a lot of trouble, until I read your comment about dead ends! then two more tries and I got it.) | |
##########p | |
##1.......# | |
#11.......# | |
#......#..# | |
#.........# | |
#.........# | |
#.........# | |
#.........# | |
#..#......# | |
#.......22# | |
#.......2## | |
###########) | |
##########p | |
###1.....## | |
##11......# | |
##........# | |
#......#..# | |
#.........# | |
#.........# | |
#.........# | |
#.........# | |
#..#......# | |
#........## | |
#......22## | |
##.....2### | |
########### | |
(increpare: decent level - has some satisfying block-pushing I think!) | |
(pancelor: oh this is very cute -- one of my favorite levels! I like the way you need to them to help each other travel. I also like how it requires a lot of swapping -- swapping sides, swapping which piece goes left first. very nice) | |
###########p | |
###....#...# | |
#..........# | |
#.....#....# | |
#111...#.22# | |
############ | |
(pancelor: an okay level, not particularly different but requires the brushes to support each other many times) | |
############p | |
###111......# | |
#...........# | |
#...........# | |
#...........# | |
#......#....# | |
#...#......2# | |
##.........2# | |
##.........2# | |
##.........## | |
############# | |
(pancelor: an okay level, about getting the two blocks to swap places) | |
###############p | |
####.........22# | |
##...........22# | |
##.............# | |
##............## | |
###............# | |
###............# | |
#111...........# | |
#111..........## | |
#111........#### | |
################ | |
(pancelor: an okay level, there's a cute reversal you have to do to paint the last square. not too hard) | |
########### | |
p#....##### | |
##....22..# | |
#....#211.# | |
#....22...# | |
#.........# | |
#........## | |
#........## | |
###....#### | |
########### | |
(increpare: a solid level! - strategic + no dead ends) | |
(pancelor: really really nice! fun to swap them around.) | |
#############p | |
#######..##### | |
#####......### | |
###..........# | |
#.....12.....# | |
#...111222...# | |
#...1....2...# | |
#..........### | |
###......##### | |
#####..####### | |
############## | |
( | |
(increpare: ok?) | |
(pancelor: this is the exact same level as the "early+subtle dead end") | |
##########p | |
##1.......# | |
#11.......# | |
#......#..# | |
#.........# | |
#.........# | |
#.........# | |
#.........# | |
#..#......# | |
#.......22# | |
#.......2## | |
########### | |
) | |
(pancelor: ok? I like the feeling of stair-stepping) | |
#######p | |
##....## | |
#1....2# | |
#11..22# | |
#.1#.2.# | |
#..#...# | |
#......# | |
#......# | |
#......# | |
#.....## | |
##...### | |
######## | |
(pancelor: an okay level, many fun little challenges to fill in the last corners of the board; none are too difficult) | |
##########p | |
#.....1#### | |
#.....1111# | |
#.......1.# | |
#....#....# | |
#.........# | |
##........# | |
#..#......# | |
#.........# | |
##...2....# | |
####.2222## | |
########### | |
(pancelor: maybe my favorite level?! a much harder variation of the my "pretty clearly asks you to swap positions" level. I think both levels can exist?) | |
(pancelor: this one is hard because it goes through an easy-to-miss narrow chokepoint in state-space. the last couple moves are a bit tricky too) | |
p########## | |
##...###### | |
#......#### | |
#......#### | |
##.....22## | |
##.....22## | |
####.....## | |
####.....## | |
##.......## | |
##.....111# | |
##.....111# | |
########### | |
(pancelor: tricky, but sorta unfocused. probably feels brute-forcey) | |
#############p | |
#######....### | |
###222......1# | |
###......#..1# | |
#...#........# | |
#.....#......# | |
###..........# | |
######....#### | |
############## | |
(pancelor: a very thinky level; one of my favorite levels) | |
p########### | |
#..........# | |
#.########.# | |
#..........# | |
#.####.....# | |
#.#.####.#.# | |
#.#......#2# | |
#.###.##.### | |
#.##......## | |
#.....##..## | |
#######1.### | |
############ | |
(pancelor: hard ish but maybe not too satisfying? the little 1x1 slot is hard to paint with the smaller brush -- probably will find it by brute force) | |
############p# | |
##1.....###### | |
#111111.....## | |
#1...........# | |
#............# | |
#...#........# | |
#..........2.# | |
#..........22# | |
#..........2## | |
#....#.####### | |
############## | |
( | |
(pancelor: very hard but not in a satisfying way; the last corners are hard to hunt down. (the one square on the right side is kinda neat) idk I might cut this) | |
###p################ | |
#################### | |
#########....#....## | |
#########.........## | |
###................# | |
#............#.....# | |
###................# | |
##..............111# | |
###...............1# | |
#................11# | |
###...............1# | |
###222..........111# | |
#################### | |
#################### | |
) | |
(increpare: I'm ok with this, but maybe too similar to the level I described as "a solid level" which I think is better) | |
((pancelor: I like the concept :) but also: agreed on all points... idk I think it's a nice large+relaxing final level) | |
#################p | |
#######.....###### | |
#######.....###### | |
#####.......###### | |
#####.........#### | |
###...........#### | |
###.............## | |
#...............## | |
#................# | |
#....111..222....# | |
#.....1...2.2....# | |
#.....1...222....# | |
#.....1...2......# | |
#....111..2......# | |
#................# | |
#................# | |
##...............# | |
##.............### | |
####...........### | |
####.........##### | |
######.......##### | |
######.....####### | |
######.....####### | |
################## | |
message whoa! you painted everything! | |
( | |
(has a dead end :[ ) | |
######p | |
#....## | |
#..222# | |
#....## | |
##...1# | |
####### | |
(pancelor: seems impossible? I assume it is, but if I write "seems impossible" on one of these and it turns out it's actually not then maybe we should include it) | |
#############p | |
######..###### | |
####......#### | |
####....2.#### | |
##......2...## | |
##....22222.## | |
#.......2....# | |
#....11.2....# | |
##...11.....## | |
##..........## | |
####......#### | |
####......#### | |
######..###### | |
############## | |
(pancelor: seems impossible) | |
###########p | |
###......### | |
###....2.### | |
#......2...# | |
#....22222.# | |
#......2...# | |
#...11.2...# | |
#...11.....# | |
#..........# | |
###......### | |
###......### | |
############ | |
(pancelor: seems impossible) | |
############### | |
######...####p# | |
####.......#### | |
####.......#### | |
##.......2...## | |
##.......2...## | |
#......22222..# | |
#........2....# | |
#.....11.2....# | |
##....11.....## | |
##...........## | |
####.......#### | |
####.......#### | |
######...###### | |
############### | |
(increpare: not as good as above level ) | |
(pancelor: fun! but yeah this is pretty similar to some earlier levels) | |
##########p | |
##.......## | |
#.........# | |
#..1...2..# | |
#.111#222.# | |
#..1...2..# | |
#.........# | |
##.......## | |
########### | |
(increpare: bad because dead end) | |
(pancelor: cool level! unfortunate that there's a dead end) | |
######p | |
#..1.## | |
##....# | |
#.....# | |
##22..# | |
####### | |
(increpare: <no comment>) | |
((pancelor: seems impossible ;) ) | |
###########p | |
#..........# | |
#..........# | |
#..........# | |
#..........# | |
############ | |
###########p | |
#..........# | |
#..........# | |
#..........# | |
#..........# | |
############ | |
######p | |
#.....# | |
#.....# | |
#.....# | |
#.....# | |
#.....# | |
####### | |
###########p | |
#..........# | |
#..........# | |
#..........# | |
#..........# | |
#..........# | |
#..........# | |
#..........# | |
#..........# | |
#..........# | |
############ | |
(increpare: <no comment>) | |
(pancelor: I like the level! and not just for the aesthetic haha. but it's similar to some other ones so I can see why you cut it) | |
#################p | |
#..............### | |
#..............### | |
#.....222........# | |
#.....2.2.#......# | |
#.....22222......# | |
#......11111.....# | |
#......#.1.1.....# | |
#........111.....# | |
###..............# | |
###..............# | |
################## | |
(increpare: <no comment>) | |
(pancelor: seems impossible) | |
##########p | |
#11......## | |
#1........# | |
#.........# | |
#.....#...# | |
#.........# | |
#.........# | |
#...#.....# | |
#.........# | |
#........2# | |
##......22# | |
########### | |
) | |
( | |
(pancelor: has a dead-end... in fact the reason I think it's cool is because of what you have to do to avoid the dead end! oh well) | |
p######## | |
#......1# | |
#.......# | |
#..###..# | |
#..###..# | |
#..###..# | |
#.......# | |
#2..#...# | |
######### | |
(pancelor: really tricky and feels different from most other levels, but probably just feels like brute force work to solve) | |
(pancelor: I think this is beatable but I don't remember) | |
p####################### | |
######22.....########### | |
#####22.......########## | |
####.2........########## | |
###...........########## | |
##...#........########## | |
#........##...########## | |
#........#...########### | |
#.......#...############ | |
#......#...############# | |
#.........############## | |
#1.......############### | |
#1......################ | |
######################## | |
######################## | |
######################## | |
######################## | |
(pancelor: no win) | |
########p## | |
###....#### | |
##.....#### | |
#.1....#### | |
#.1#22.#### | |
#.122..#### | |
#..2...#### | |
#......#### | |
#......#### | |
#.....##### | |
#.##.###### | |
########### | |
(pancelor: no win) | |
###########p | |
##...###.1## | |
#.....#.111# | |
#.....#..1.# | |
##....#....# | |
###........# | |
##.........# | |
#..........# | |
#..........# | |
#22........# | |
#22........# | |
##........## | |
############ | |
(pancelor: no win) | |
##############p | |
#####.....##### | |
####.......#### | |
##...........## | |
#.............# | |
#.............# | |
#...........1.# | |
#.22.......111# | |
##22..###...1## | |
############### | |
(pancelor: fine? not terribly interesting) | |
p####### | |
#..211.# | |
#..#...# | |
##....## | |
##..#..# | |
##.....# | |
######## | |
(pancelor: REALLY SATSIFYING. but too simple...? todo: feed to MIS -- delete some walls?) | |
############### | |
##############p | |
############### | |
############### | |
###..########## | |
###..########## | |
##1....2####### | |
##1....2####### | |
#####..######## | |
#####..######## | |
############### | |
############### | |
############### | |
############### | |
(pancelor: kinda cool? idk it's fine) | |
############p# | |
#222...1111### | |
#.....#....### | |
#..........### | |
##......#....# | |
##...........# | |
##.........### | |
##.........### | |
##.........### | |
############## | |
(pancelor: it's essentially just this which isn't a new concept: | |
p########### | |
#222...1111# | |
#.....#....# | |
#..........# | |
####....#### | |
############) | |
(pancelor: unbeatable; can't get into the last corner. feed to MIS?) | |
###########p## | |
##.....2222### | |
#............# | |
#.......#....# | |
#11........### | |
####....###### | |
####....###### | |
###.....###### | |
#.......###### | |
############## | |
(pancelor: not very unique; could cut this one. satisfying to play, I think. feels a bit like pacman) | |
(pancelor: this turned into my 1x1 corridor maze level, so I cut this version) | |
p######## | |
#..2....# | |
#..2....# | |
#.#####.# | |
#...#...# | |
#.......# | |
###....## | |
#....#..# | |
#.......# | |
#.###...# | |
#...1..## | |
#...1..## | |
######### | |
(pancelor: not possible) | |
###p################ | |
#################### | |
#................### | |
#..................# | |
#..................# | |
#..........#.......# | |
#..................# | |
#..................# | |
#.....#.......111..# | |
#2..............1..# | |
#222..........1.1..# | |
#2............111### | |
#################### | |
#################### | |
(pancelor: not possible) | |
#############p | |
#............# | |
#............# | |
#....222222..# | |
#..2......2..# | |
#..2......2..# | |
#..2..##..2..# | |
#..2...#..2..# | |
#..2.#....2..# | |
#..2.....12..# | |
#..22222222..# | |
#............# | |
#............# | |
############## | |
(pancelor: not possible) | |
p################### | |
#################### | |
#################### | |
#.........########## | |
#.111111...######### | |
#.1.............#### | |
#.1......11111...### | |
#.1...#......1...### | |
#.1..22#.....1...### | |
#.1..2.##....1...### | |
#.1.......##.1...### | |
#.1......##..1...### | |
#.11111......1...### | |
#.....11111111...### | |
#................### | |
#####............### | |
#################### | |
#################### | |
(pancelor: not possible) | |
##########################p | |
##.......................## | |
##.......................## | |
##.......................## | |
##......2222222..........## | |
##............2..........## | |
##......11111.2...1......## | |
##......1.2.1.2...1.......# | |
#.......1.2...2...1.......# | |
#.......1.22222...1.......# | |
#.......1.........1.......# | |
#.......11111111111.......# | |
#.........................# | |
#.........................# | |
#.........................# | |
#.........................# | |
#.........................# | |
#.........................# | |
#.........................# | |
#.........................# | |
##.......................## | |
########################### | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment