Skip to content

Instantly share code, notes, and snippets.

@RazThePenguin
Created November 22, 2022 11:04
Show Gist options
  • Select an option

  • Save RazThePenguin/770987826a6d5fe6a415eb14f76f0797 to your computer and use it in GitHub Desktop.

Select an option

Save RazThePenguin/770987826a6d5fe6a415eb14f76f0797 to your computer and use it in GitHub Desktop.
EXTEN (Puzzlescript Plus Script)
Play this game by pasting the script in https://auroriax.github.io/PuzzleScript/editor.html
title EXTEN
author Studio369
skip_title_screen
tween_length 0.1
sprite_size 16
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 .
#222
(Even though we're not using it, every game requires a player defined)
player
transparent
Cursor
#ffffffE0
0000000000000000
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
0000000000000000
DragTarget
transparent
MouseClick
#ffffff80
MouseDrag
#ffffff80
BlockA A
red
BlockB B
orange
BlockC C
green
Wall #
#000
GoalA !
red #222
................
................
................
................
................
................
......1111......
......1001......
......1001......
......1111......
................
................
................
................
................
................
=======
LEGEND
=======
Block = BlockA or BlockB or BlockC
=======
SOUNDS
=======
================
COLLISIONLAYERS
================
background
MouseClick, MouseDrag
BlockA, BlockB, BlockC, Wall
player
GoalA
DragTarget
Cursor
======
RULES
======
(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]
(Pass movement onto block rigidly, so they can't break apart. See documentation on Rigid Bodies for more info.)
rigid [> Cursor Block] -> [> Cursor > Block]
(Clean up for the start of the next turn, in case these were not cleaned up by the other rules)
[MouseClick] -> []
[MouseDrag] -> []
==============
WINCONDITIONS
==============
all BlockA on GoalA
=======
LEVELS
=======
########
#.....!#
#.a....#
#...b..#
#......#
#...c..#
#......#
########
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment