Skip to content

Instantly share code, notes, and snippets.

@10c8
Created June 14, 2020 19:38
Show Gist options
  • Save 10c8/e330e0376ed174066a092f1c36636b28 to your computer and use it in GitHub Desktop.
Save 10c8/e330e0376ed174066a092f1c36636b28 to your computer and use it in GitHub Desktop.
PuzzleTech 0.74 (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
(-
- PuzzleTech
- version 0.74
-)
title PuzzleTech 0.74
author 0x77
homepage 0x77.bit
background_color #777
text_color #333
flickscreen 26x15
realtime_interval .1
========
OBJECTS
========
( Background )
BACKGROUND .
BLACK
( Cursor )
PLAYER @
#111
00.00
0...0
.....
0...0
00.00
CURSOR +
#700
00.00
0...0
.....
0...0
00.00
( HUD )
HUD_BG _
#555
HUD_BR ;
#555
0....
0....
0....
0....
0....
( Icons )
I_DEL
#500
.....
.0.0.
..0..
.0.0.
.....
I_SPRK
YELLOW
.....
.0.0.
..0..
.0.0.
.....
I_CPWR
#A65626
.....
.000.
.0...
.000.
.....
I_PSWR
#C96C5A
.....
.000.
.000.
.0...
.....
I_NGWR
#6C87A4
.....
.000.
.0.0.
.0.0.
.....
I_LASR
#A3CE27
.....
.0...
.0...
.000.
.....
I_SAND
#E6E0C7
.....
..00.
..0..
.00..
.....
I_FLTR
#1F2587
.....
.000.
.00..
.0...
.....
I_WATR
#428BDD
.....
.0.0.
.000.
.000.
.....
I_SLCN
#A9A9A9
.....
.000.
.000.
.000.
.....
I_IWRE
#033
.....
.000.
..0..
.000.
.....
I_OXYG
#B5D8EE
.....
.000.
.0.0.
.000.
.....
( Entities )
END /
TRANSPARENT
CPWR
#A65626
PSWR
#C96C5A
NGWR
#6C87A4
LASR
#A3CE27
SAND
#E6E0C7
FLTR
#1F2587
WATR
#428BDD
WTR_L
#428BDD
WTR_R
#428BDD
WTR_D
#428BDD
SLCN
#A9A9A9
IWRE
#033
OXYG
#B5D8EE
( Properties )
SPRK
YELLOW
DCAY
ORANGE
RAY0
#FFF
RAY1
#DDD
RAY2
#BBB
RAY3
#999
RAY4
#777
( Tokens )
X
TRANSPARENT
Z
TRANSPARENT
Q
TRANSPARENT
W
TRANSPARENT
U
TRANSPARENT
D
TRANSPARENT
L
TRANSPARENT
R
TRANSPARENT
Y
#777 #FFF
.....
.101.
.101.
.101.
.....
PAUSE !
#FFF
.....
..0..
..00.
..0..
.....
STEP
#FFF
.....
..0..
...0.
..0..
.....
SELT -
TRANSPARENT
CTMP =
TRANSPARENT
=======
LEGEND
=======
WIRE = CPWR or PSWR or NGWR or IWRE
HUD = HUD_BG or HUD_BR
ICON = I_DEL or I_SPRK or I_CPWR or I_PSWR or I_NGWR or I_LASR or I_SAND or I_FLTR or I_WATR or I_SLCN or I_IWRE or I_OXYG
PROP = SPRK or DCAY
RAY = RAY0 or RAY1 or RAY2 or RAY3 or RAY4
TOKN = PAUSE or STEP or SELT or CTMP
SPEC = Q or W
DIR = U or D or L or R
WATER = WATR or WTR_L or WTR_R or WTR_D
GAS = OXYG
SOLID = HUD_BG or WIRE or LASR or RAY or SAND or SLCN
THING = GAS or SOLID or FLTR
FALLS = SAND
WCLL = THING or WATER
COND = WIRE OR WATER
RPWR = PSWR
( HUD )
0 = HUD_BG and I_SPRK
1 = HUD_BG and I_CPWR
2 = HUD_BG and I_PSWR
3 = HUD_BG and I_NGWR
4 = HUD_BG and I_LASR
5 = HUD_BG and I_SAND
6 = HUD_BG and I_FLTR
7 = HUD_BG and I_WATR
8 = HUD_BG and I_SLCN
9 = HUD_BG and I_IWRE
A = HUD_BG and I_OXYG
, = 0 and PLAYER
' = HUD_BG and PAUSE
: = HUD_BG and STEP
? = HUD_BG and I_DEL
=======
SOUNDS
=======
================
COLLISIONLAYERS
================
( BG )
BACKGROUND
( Entities )
RAY
WATER GAS WIRE LASR SAND SLCN FLTR
PROP
( Cursor )
CURSOR
( HUD )
HUD
ICON
PLAYER END
( Special )
TOKN
X Y Z
SPEC
DIR
======
RULES
======
( Realtime fix )
[ STATIONARY @ ] [Q] -> [ @ ] [W]
[ MOVING @ ] [W] -> [ MOVING @ ] [Q]
( Play/pause/step )
[ ACTION @ ! NO Y ] -> [ @ ! Y ]
[ ACTION @ ! Y ] -> [ @ ! ]
[ : X ] [ ! Y ] [ W ] -> [:] [!] [Q]
[ - NO X ] [ ACTION @ : NO X ] [ ! NO Y ] [Q] -> [ - NO X ] [ @ : X ] [ ! Y ] [W]
( Gas physics )
[W][! Y] [ STATIONARY GAS | NO THING ] -> [W][! Y] [ RANDOMDIR GAS | ]
( Water physics )
[W][! Y] [ > WATER SPEC ] -> [W][! Y] [ > WATER > SPEC ]
[W][! Y] [ > WATER PROP ] -> [W][! Y] [ > WATER > PROP ]
[W][! Y] [ WATER ] -> [W][! Y] [ STATIONARY WATR ]
DOWN [W][! Y] [ WATER | NO WCLL NO WATER ] -> [W][! Y] [ DOWN WTR_D | ]
DOWN [W][! Y] [ WTR_D | WCLL ] -> [W][! Y] [ STATIONARY WATR | WCLL ]
RIGHT [W][! Y] [ WATER | WTR_D ] -> [W][! Y] [ RIGHT WTR_R | WTR_D ]
RIGHT [W][! Y] [ WTR_D | WATR ] -> [W][! Y] [ WTR_D | LEFT WTR_L ]
RIGHT [W][! Y] [ WATR | WTR_R ] -> [W][! Y] [ RIGHT WTR_R | WTR_R ]
RIGHT [W][! Y] [ WTR_L | WATR ] -> [W][! Y] [ WTR_L | LEFT WTR_L ]
DOWN [W][! Y] [ WTR_D | WATR ] -> [W][! Y] [ WTR_D | RIGHT WATR ]
RIGHT [W][! Y] [ RIGHT WATR | WATR ] -> [W][! Y] [ LEFT WATR | WATR ]
HORIZONTAL [W][! Y] [ WCLL | WATR | NO WCLL ] -> [W][! Y] [ WCLL | > WATR | ]
RANDOM HORIZONTAL [W][! Y] [ NO WCLL | STATIONARY WATR | NO WCLL ] -> [W][! Y] [ | > WATR | ]
LATE DOWN [W][! Y] [ WATER | NO WCLL NO WATER ] -> [W][! Y] [ WATER | ]
( Gravity )
LATE [! Y] [ GAS U ] -> [! Y] [ SAND ]
LATE [! Y] [ WATER U ] -> [! Y] [ SAND ]
DOWN [W][! Y] [ SAND | GAS ] -> [W][! Y] [ RANDOMDIR GAS | GAS U ]
DOWN [W][! Y] [ SAND | WATER ] -> [W][! Y] [ RANDOMDIR WATER | WATER U ]
DOWN [W][! Y] [ FALLS | NO THING ] -> [W][! Y] [ DOWN FALLS | ]
( LASR logic )
LATE [W][! Y] [RAY4] -> [W][! Y] []
LATE [W][! Y] [RAY3] -> [W][! Y] [RAY4]
LATE [W][! Y] [RAY2] -> [W][! Y] [RAY3]
LATE [W][! Y] [RAY1] -> [W][! Y] [RAY2]
LATE [W][! Y] [RAY0] -> [W][! Y] [RAY1]
LATE UP [W][! Y] [ LASR U | FLTR ] -> [W][! Y] [ LASR U | FLTR RAY0 U ]
LATE DOWN [W][! Y] [ LASR D | FLTR ] -> [W][! Y] [ LASR D | FLTR RAY0 D ]
LATE LEFT [W][! Y] [ LASR L | FLTR ] -> [W][! Y] [ LASR L | FLTR RAY0 L ]
LATE RIGHT [W][! Y] [ LASR R | FLTR ] -> [W][! Y] [ LASR R | FLTR RAY0 R ]
LATE UP [W][! Y] [ LASR U | NO SOLID ] -> [W][! Y] [ LASR U | RAY0 U ]
LATE DOWN [W][! Y] [ LASR D | NO SOLID ] -> [W][! Y] [ LASR D | RAY0 D ]
LATE LEFT [W][! Y] [ LASR L | NO SOLID ] -> [W][! Y] [ LASR L | RAY0 L ]
LATE RIGHT [W][! Y] [ LASR R | NO SOLID ] -> [W][! Y] [ LASR R | RAY0 R ]
[W][! Y] [ LASR DIR ] -> [W][! Y] [ LASR ]
UP [W][! Y] [ RAY0 U | FLTR ] -> [W][! Y] [ RAY0 | FLTR RAY0 U ]
DOWN [W][! Y] [ RAY0 D | FLTR ] -> [W][! Y] [ RAY0 | FLTR RAY0 D ]
LEFT [W][! Y] [ RAY0 L | FLTR ] -> [W][! Y] [ RAY0 | FLTR RAY0 L ]
RIGHT [W][! Y] [ RAY0 R | FLTR ] -> [W][! Y] [ RAY0 | FLTR RAY0 R ]
LATE UP [W][! Y] [ RAY0 U | FLTR ] -> [W][! Y] [ RAY0 | FLTR RAY0 U ]
LATE DOWN [W][! Y] [ RAY0 D | FLTR ] -> [W][! Y] [ RAY0 | FLTR RAY0 D ]
LATE LEFT [W][! Y] [ RAY0 L | FLTR ] -> [W][! Y] [ RAY0 | FLTR RAY0 L ]
LATE RIGHT [W][! Y] [ RAY0 R | FLTR ] -> [W][! Y] [ RAY0 | FLTR RAY0 R ]
UP [W][! Y] [ RAY0 U | NO SOLID ] -> [W][! Y] [ RAY0 | RAY0 U ]
DOWN [W][! Y] [ RAY0 D | NO SOLID ] -> [W][! Y] [ RAY0 | RAY0 D ]
LEFT [W][! Y] [ RAY0 L | NO SOLID ] -> [W][! Y] [ RAY0 | RAY0 L ]
RIGHT [W][! Y] [ RAY0 R | NO SOLID ] -> [W][! Y] [ RAY0 | RAY0 R ]
LATE UP [W][! Y] [ RAY0 U | NO SOLID ] -> [W][! Y] [ RAY0 | RAY0 U ]
LATE DOWN [W][! Y] [ RAY0 D | NO SOLID ] -> [W][! Y] [ RAY0 | RAY0 D ]
LATE LEFT [W][! Y] [ RAY0 L | NO SOLID ] -> [W][! Y] [ RAY0 | RAY0 L ]
LATE RIGHT [W][! Y] [ RAY0 R | NO SOLID ] -> [W][! Y] [ RAY0 | RAY0 R ]
UP [W][! Y] [ SPRK | LASR NO DIR | FLTR ] -> [W][! Y] [ SPRK | LASR U | FLTR ]
DOWN [W][! Y] [ SPRK | LASR NO DIR | FLTR ] -> [W][! Y] [ SPRK | LASR D | FLTR ]
LEFT [W][! Y] [ SPRK | LASR NO DIR | FLTR ] -> [W][! Y] [ SPRK | LASR L | FLTR ]
RIGHT [W][! Y] [ SPRK | LASR NO DIR | FLTR ] -> [W][! Y] [ SPRK | LASR R | FLTR ]
UP [W][! Y] [ SPRK | LASR NO DIR | NO RAY ] -> [W][! Y] [ SPRK | LASR U |]
DOWN [W][! Y] [ SPRK | LASR NO DIR | NO RAY ] -> [W][! Y] [ SPRK | LASR D |]
LEFT [W][! Y] [ SPRK | LASR NO DIR | NO RAY ] -> [W][! Y] [ SPRK | LASR L |]
RIGHT [W][! Y] [ SPRK | LASR NO DIR | NO RAY ] -> [W][! Y] [ SPRK | LASR R |]
( SPRK logic )
LATE [W][! Y] [ PROP NO COND ] -> [W][! Y] []
LATE [W][! Y] [ WIRE X ] -> [W][! Y] [ WIRE SPRK ]
LATE [W][! Y] [ WATER Q ] -> [W][! Y] [ WATER SPRK ]
[W][! Y] [ SPRK | WIRE NO PROP ] -> [W][! Y] [ SPRK | WIRE X ]
[W][! Y] [ SPRK | WATER NO PROP ] -> [W][! Y] [ SPRK | WATER Q ]
[W][! Y] [ SPRK | IWRE NO PROP ] -> [W][! Y] [ SPRK | IWRE X SPRK ]
UP [W][! Y] [ RAY0 U | PSWR ] -> [W][! Y] [ RAY0 U | PSWR X ]
DOWN [W][! Y] [ RAY0 D | PSWR ] -> [W][! Y] [ RAY0 D | PSWR X ]
LEFT [W][! Y] [ RAY0 L | PSWR ] -> [W][! Y] [ RAY0 L | PSWR X ]
RIGHT [W][! Y] [ RAY0 R | PSWR ] -> [W][! Y] [ RAY0 R | PSWR X ]
[W][! Y] [ COND DCAY ] -> [W][! Y] [ COND ]
[W][! Y] [ COND SPRK ] -> [W][! Y] [ COND DCAY ]
[W][! Y] [ COND X SPRK ] -> [W][! Y] [ COND SPRK ]
( Cursor )
[ - X ] [ > @ ] [ + ICON ] -> [ - X ] [ @ ] [ > + > ICON ]
[ > @ | ; ] [ - NO X ] [+] [=] -> [ @ | ; + I_DEL ] [ - X ] [=] []
[ > + ICON | _ NO @ ] [ - X ] [=] [@] -> [ = | @ _ ] [-] [+] []
[ > + ICON | _ @ ] [ - X ] [=] -> [ = | @ _ ] [-] [+]
[ - NO X ] [ ACTION @ 0 ] [+] [=] -> [ - X ] [ @ 0 ] [=] [ + I_SPRK ]
[ - NO X ] [ ACTION @ 1 ] [+] [=] -> [ - X ] [ @ 1 ] [=] [ + I_CPWR ]
[ - NO X ] [ ACTION @ 2 ] [+] [=] -> [ - X ] [ @ 2 ] [=] [ + I_PSWR ]
[ - NO X ] [ ACTION @ 3 ] [+] [=] -> [ - X ] [ @ 3 ] [=] [ + I_NGWR ]
[ - NO X ] [ ACTION @ 4 ] [+] [=] -> [ - X ] [ @ 4 ] [=] [ + I_LASR ]
[ - NO X ] [ ACTION @ 5 ] [+] [=] -> [ - X ] [ @ 5 ] [=] [ + I_SAND ]
[ - NO X ] [ ACTION @ 6 ] [+] [=] -> [ - X ] [ @ 6 ] [=] [ + I_FLTR ]
[ - NO X ] [ ACTION @ 7 ] [+] [=] -> [ - X ] [ @ 7 ] [=] [ + I_WATR ]
[ - NO X ] [ ACTION @ 8 ] [+] [=] -> [ - X ] [ @ 8 ] [=] [ + I_SLCN ]
[ - NO X ] [ ACTION @ 9 ] [+] [=] -> [ - X ] [ @ 9 ] [=] [ + I_IWRE ]
[ - NO X ] [ ACTION @ A ] [+] [=] -> [ - X ] [ @ A ] [=] [ + I_OXYG ]
[ ACTION @ ] [ + I_DEL WCLL ] -> [ @ ] [ + I_DEL ]
[ ACTION @ ] [ + I_SPRK COND NO PROP ] -> [ @ ] [ + I_SPRK COND SPRK ]
[ ACTION @ ] [ + I_CPWR ] -> [ @ ] [ + I_CPWR CPWR ]
[ ACTION @ ] [ + I_PSWR ] -> [ @ ] [ + I_PSWR PSWR ]
[ ACTION @ ] [ + I_NGWR ] -> [ @ ] [ + I_NGWR NGWR ]
[ ACTION @ ] [ + I_LASR ] -> [ @ ] [ + I_LASR LASR ]
[ ACTION @ ] [ + I_SAND ] -> [ @ ] [ + I_SAND SAND ]
[ ACTION @ ] [ + I_FLTR ] -> [ @ ] [ + I_FLTR FLTR ]
[ ACTION @ ] [ + I_WATR ] -> [ @ ] [ + I_WATR WATR ]
[ ACTION @ ] [ + I_SLCN ] -> [ @ ] [ + I_SLCN SLCN ]
[ ACTION @ ] [ + I_IWRE ] -> [ @ ] [ + I_IWRE IWRE ]
[ ACTION @ ] [ + I_OXYG ] -> [ @ ] [ + I_OXYG OXYG ]
==============
WINCONDITIONS
==============
=======
LEVELS
+-Q....................../':_;=.....................
........................./___;......................
........................./,12;......................
........................./345;......................
........................./678;......................
........................./9A_;......................
........................./___;......................
........................./___;......................
........................./___;......................
........................./___;......................
........................./___;......................
........................./___;......................
........................./___;......................
........................./___;......................
........................./___;......................
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment