Skip to content

Instantly share code, notes, and snippets.

@RazThePenguin
Created December 6, 2022 09:45
Show Gist options
  • Save RazThePenguin/3c46c7f33827404a055611932b9c38c2 to your computer and use it in GitHub Desktop.
Save RazThePenguin/3c46c7f33827404a055611932b9c38c2 to your computer and use it in GitHub Desktop.
EXTEN - Alpha 5 (Puzzlescript Plus Script)
Play this game by pasting the script in https://auroriax.github.io/PuzzleScript/editor.html
title EXTEN - Alpha 5
author Studio369
skip_title_screen
tween_length 0.1
sprite_size 32
zoomscreen 8x7
norestart
noundo
nokeyboard
verbose_logging (Don't forget to use the visual debugger to see how mouse objects are created at the start of the turn)
mouse_left MouseClick
mouse_drag MouseDrag
(We don't use mouse_up here, instead we'll clean up the previous cursor whenever a new mouse_left object is detected. See the Rules.)
========
OBJECTS
========
background .
#462c4b
Player P
transparent
Cursor
#ffffffE0
000000000000........000000000000
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
................................
................................
................................
................................
................................
................................
................................
................................
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
0..............................0
000000000000........000000000000
DragTarget
transparent
MouseClick
transparent
MouseDrag
transparent
BlockA
transparent
BlockB
transparent
BlockC
transparent
BlockD
transparent
LaserU
transparent
LaserR
transparent
LaserD
transparent
LaserL
transparent
Laserspawn1
transparent
Laserspawn2
transparent
Laserspawn3
transparent
Laserspawn4
transparent
Color1
#724254
Color2
#c18c72
Color3
#4e5e5e
Color4
#5889a2
Color5
#fcebb6
Wall #
transparent
GoalA
transparent
GoalB
transparent
GoalC
transparent
GoalD
transparent
Cover
#462c4b
=======
LEGEND
=======
Block = BlockA or BlockB or BlockC or BlockD
Laser = LaserU or LaserR or LaserD or LaserL
Color = Color1 or Color2 or Color3 or Color4 or Color5
Laserspawn = Laserspawn1 or Laserspawn2 or Laserspawn3 or Laserspawn4
1 = Wall and Laserspawn1
2 = Wall and Laserspawn2
3 = Wall and Laserspawn3
4 = Wall and Laserspawn4
S = Wall and Color1 and Cover
W = Wall and Color2 and Cover
N = Wall and Color3 and Cover
E = Wall and Color4 and Cover
A = BlockA and Color1
B = BlockB and Color1
C = BlockC and Color1
D = BlockD and Color1
X = Wall and GoalA and Color1 and Cover
Y = Wall and GoalB and Color3 and Cover
Z = Wall and GoalC and Color2 and Cover
Å = Wall and GoalD and Color4 and Cover
=======
SOUNDS
=======
================
COLLISIONLAYERS
================
background
MouseClick
MouseDrag
GoalA, GoalB, GoalC, GoalD
BlockA, BlockB, BlockC, BlockD Wall
Color
Laser
Laserspawn1, Laserspawn2, Laserspawn3, Laserspawn4
DragTarget
Cursor
Player
Cover
======
RULES
======
[> Player] -> [Player]
(Whenever mouse is clicked, create cursor at that position)
[MouseClick] [Cursor] -> [MouseClick] []
[MouseClick] [DragTarget] -> [MouseClick] []
[MouseClick] -> [Cursor DragTarget]
(When mouse is dragged, actually add movement to cursor in this direction)
[Cursor] [DragTarget | MouseDrag] -> [> Cursor] [ | DragTarget]
(Shmovin.)
rigid [> Cursor Block] [ Laserspawn1 ] -> [> Block] [ Laserspawn1 LaserD ] again
rigid [> Cursor no Block] -> []
[> Cursor Block | Block] -> [Cursor Block | Block]
[> Cursor | Wall] -> [Cursor | Wall]
(Clean up for the start of the next turn, in case these were not cleaned up by the other rules)
[MouseClick] -> []
[MouseDrag] -> []
[ > Block Color ] -> [ > Block > Color ]
late down [ LaserD | ... | Block ] -> [ | ... | LaserL Block ]
late left [ LaserL | ... | Block ] -> [ | ... | LaserU Block ]
late up [ LaserU | ... | Block ] -> [ | ... | LaserR Block ]
late right [ LaserR | ... | Block ] -> [ | ... | LaserD Block ]
late down [ LaserD | ... | Wall ] -> [ | ... | LaserD Wall ]
late left [ LaserL | ... | Wall ] -> [ | ... | LaserL Wall ]
late up [ LaserU | ... | Wall ] -> [ | ... | LaserU Wall ]
late right [ LaserR | ... | Wall ] -> [ | ... | LaserR Wall ]
late [ Laser GoalA ] [ BlockA ] [ Laserspawn2 ] -> [ GoalA ] [ Color5 BlockA ] [ LaserD Laserspawn2 ]
late [ Laser Color Wall ] [ BlockA ] [ Laserspawn2 ] -> [ Color Wall ] [ Color BlockA ] [ LaserD Laserspawn2 ]
late down [ LaserD | ... | Block ] -> [ | ... | LaserL Block ]
late left [ LaserL | ... | Block ] -> [ | ... | LaserU Block ]
late up [ LaserU | ... | Block ] -> [ | ... | LaserR Block ]
late right [ LaserR | ... | Block ] -> [ | ... | LaserD Block ]
late down [ LaserD | ... | Wall ] -> [ | ... | LaserD Wall ]
late left [ LaserL | ... | Wall ] -> [ | ... | LaserL Wall ]
late up [ LaserU | ... | Wall ] -> [ | ... | LaserU Wall ]
late right [ LaserR | ... | Wall ] -> [ | ... | LaserR Wall ]
late [ Laser GoalB ] [ BlockB ] [ Laserspawn3 ] -> [ GoalB ] [ Color5 BlockB ] [ LaserD Laserspawn3 ]
late [ Laser Color Wall ] [ BlockB ] [ Laserspawn3 ] -> [ Color Wall ] [ Color BlockB ] [ LaserD Laserspawn3 ]
late down [ LaserD | ... | Block ] -> [ | ... | LaserL Block ]
late left [ LaserL | ... | Block ] -> [ | ... | LaserU Block ]
late up [ LaserU | ... | Block ] -> [ | ... | LaserR Block ]
late right [ LaserR | ... | Block ] -> [ | ... | LaserD Block ]
late down [ LaserD | ... | Wall ] -> [ | ... | LaserD Wall ]
late left [ LaserL | ... | Wall ] -> [ | ... | LaserL Wall ]
late up [ LaserU | ... | Wall ] -> [ | ... | LaserU Wall ]
late right [ LaserR | ... | Wall ] -> [ | ... | LaserR Wall ]
late [ Laser GoalC ] [ BlockC ] [ Laserspawn4 ] -> [ GoalC ] [ Color5 BlockC ] [ LaserD Laserspawn4 ]
late [ Laser Color Wall ] [ BlockC ] [ Laserspawn4 ] -> [ Color Wall ] [ Color BlockC ] [ LaserD Laserspawn4 ]
late down [ LaserD | ... | Block ] -> [ | ... | LaserL Block ]
late left [ LaserL | ... | Block ] -> [ | ... | LaserU Block ]
late up [ LaserU | ... | Block ] -> [ | ... | LaserR Block ]
late right [ LaserR | ... | Block ] -> [ | ... | LaserD Block ]
late down [ LaserD | ... | Wall ] -> [ | ... | LaserD Wall ]
late left [ LaserL | ... | Wall ] -> [ | ... | LaserL Wall ]
late up [ LaserU | ... | Wall ] -> [ | ... | LaserU Wall ]
late right [ LaserR | ... | Wall ] -> [ | ... | LaserR Wall ]
late [ Laser GoalD ] [ BlockD ] -> [ GoalD ] [ Color5 BlockD ]
late [ Laser Color Wall ] [ BlockD ] -> [ Color Wall ] [ Color BlockD ]
(late [ Laser no Laserspawn ] -> [])
==============
WINCONDITIONS
==============
all BlockA on GoalA
=======
LEVELS
=======
#NNNNNNNN#
###1234Y##
Wa.......E
Wb.......E
Wc.......E
Wd...P...E
W........E
Z........Å
W........E
##########
#SSSSXSSS#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment