Skip to content

Instantly share code, notes, and snippets.

@mageowl
Last active July 6, 2020 19:55
Show Gist options
  • Save mageowl/b836e82cff4b8d0d562e9a433694e52e to your computer and use it in GitHub Desktop.
Save mageowl/b836e82cff4b8d0d562e9a433694e52e to your computer and use it in GitHub Desktop.
Magnetic (PuzzleScript Game)
See comments for link to play.
title Magnetic
text_color #b6bed1
background_color #011136
author OwL
homepage https://seattleowl.com
again_interval 0
========
OBJECTS
========
Background
#42bbe3 #4272e3
00100
00100
11111
00100
00100
Background2
#777777
Target
transparent white
00000
01110
01010
01110
00000
LaserCover
transparent white #42bbe3 #4272e3
00000
01112
00013
01112
00000
Wall
#011136
Player
transparent #ff0051 #d1d1d1
22022
11011
11011
11111
01110
MagnetRight
transparent #ff0051 #d1d1d1
01112
11112
11000
11112
01112
Crate
#777777 #d1d1d1 #a1a1a1
00000
02110
01210
01120
00000
Window
white #777777 transparent
22222
22222
00000
11111
11111
Laser
transparent #e3424d #fa757e
00000
00000
21112
00000
00000
LaserShooter
transparent #d1d1d1 #a1a1a1 #fa757e #00d0ff
00000
11112
14123
11112
00000
CrateUp
transparent
CrateDown
transparent
MagnetUp
transparent
MagnetDown
transparent
MagnetRightMoving
transparent
CrateLeft
green
TempLaser
transparent
=======
LEGEND
=======
. = Background
x = Background2
# = Wall
U = Player and Background2
@ = Crate
O = Target and LaserCover
- = Window
{ = LaserShooter
~ = Laser
C = MagnetRight
* = Target and LaserCover and Laser
AnyLaser = Laser or TempLaser
AWall = Wall or Window
TempCrate = CrateUp or CrateDown or CrateLeft
Magnet = MagnetRight
TempMagnet = MagnetUp or MagnetDown
TempMagnetType = MagnetRightMoving
Collideable = Crate or AWall or Magnet
=======
SOUNDS
=======
================
COLLISIONLAYERS
================
Background
Background2
Target
Player, AWall
Laser, Crate, LaserShooter
TempCrate, LaserCover, TempMagnet
TempMagnetType
TempLaser
MagnetRight
======
RULES
======
(Move crates---------------------------------------------------)
up [> Player | ... | Crate] -> [Player | ... | > CrateUp]
up [< Player | ... | Crate] -> [Player | ... | < CrateDown]
startloop (Move temp crates)
up [CrateUp] -> [> CrateUp]
down [CrateDown] -> [> CrateDown]
left [CrateLeft] -> [> CrateLeft]
right [MagnetRight | ... | TempCrate] -> [MagnetRight | ... | CrateLeft]
endloop
[> TempCrate | Collideable] -> [Crate | Collideable]
(Move magnets--------------------------------------------------)
up [> Player | ... | MagnetRight] -> [Player | ... | > MagnetUp MagnetRightMoving]
up [< Player | ... | MagnetRight] -> [Player | ... | < MagnetDown MagnetRightMoving]
startloop (Move temp magnets)
up [MagnetUp] -> [> MagnetUp]
down [MagnetDown] -> [> MagnetDown]
vertical [> TempMagnet TempMagnetType] -> [> TempMagnet > TempMagnetType]
endloop
[> TempMagnet > MagnetRightMoving | Collideable] -> [MagnetRight | Collideable]
[> TempMagnet no MagnetRightMoving | Collideable] -> [Crate | Collideable]
(Lasers--------------------------------------------------------)
late [Laser] -> []
right late [LaserShooter | no Collideable] -> [LaserShooter | Laser]
right late [AnyLaser | no Collideable] -> [AnyLaser | TempLaser] again
late [TempLaser] -> [Laser]
==============
WINCONDITIONS
==============
all Target on Laser
(Don't let crates dissapear.)
no TempCrate
=======
LEVELS
=======
message LEVEL 1
message Push
#########
#.......#
#.......#
#.......#
#.......#
{~~~@.@.o
#-------#
#xxxuxxx#
#########
message LEVEL 2
message Pull
#########
#.#.....#
{~@.....o
#.......#
#.#.....#
{~~~@...o
#-------#
#xxxuxxx#
#########
message LEVEL 3
message More magnets
#########
{~c.....o
#.......#
#.......#
#.#.....#
{~~~@.@.o
#-------#
#xxxuxxx#
#########
message LEVEL 4
message Tall
#########
#.......#
{~~~@...o
#.......#
####.####
#.......#
{~~~@...o
#.......#
####.####
#.......#
{c......o
#.......#
##c.....#
{~~~~~@.o
#-------#
#xxxuxxx#
#########
@mageowl
Copy link
Author

mageowl commented Jul 6, 2020

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment