Skip to content

Instantly share code, notes, and snippets.

@sftrabbit
Created March 6, 2023 16:15
Show Gist options
  • Save sftrabbit/31490eeb106814f3745e282e33104d64 to your computer and use it in GitHub Desktop.
Save sftrabbit/31490eeb106814f3745e282e33104d64 to your computer and use it in GitHub Desktop.
Alphaban (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Alphaban
author Beekie
homepage beekie.itch.io
run_rules_on_level_start
verbose_logging
(https://lospec.com/palette-list/cartoon-candy)
(A - Actor, Alien, Agent)
(B - Boa, Block, Button, Bagel, Bridge)
(C - Crate, Caterpillar, Centipede, Crab)
(D - Donut, Dial)
(E - )
(F - )
(G - Gravity)
(S - Snake)
(X - X-ray)
========
OBJECTS
========
ActiveTile
transparent
Wall
#a766b2
00000
00000
00000
00000
00000
Exit
#45f66e
.....
.....
..0..
.....
.....
Background
#832a85
00000
00000
00000
00000
00000
MoveU
transparent
MoveD
transparent
MoveL
transparent
MoveR
transparent
MoveX
transparent
A1
#45b66e lightgray black #65d67e
.111.
11111
11111
11111
.111.
A2
#45b66e white black #65d67e
00000
01210
01210
00000
.....
ALegs
#45b66e white black #65d67e
.....
.....
.....
.....
.0.0.
AN
#45b66e
00000
..0..
..0..
..0..
..0..
AS
#45b66e
..0..
..0..
..0..
..0..
00000
AE
#45b66e
....0
....0
00000
....0
....0
AW
#45b66e
0....
0....
00000
0....
0....
ANE
#45b66e
0....
.0...
..0..
.0.0.
0...0
ASE
#45b66e
0...0
.0.0.
..0..
.0...
0....
ANW
#45b66e
....0
...0.
..0..
.0.0.
0...0
ASW
#45b66e
0...0
.0.0.
..0..
...0.
....0
Player
transparent
Bridge
Brown
Donut
#ce6b49 #f2ae65 #ffce65 #ffee95 (#d88e56)
.232.
01002
02.02
03212
.000.
RunGravity
transparent
MarkU
transparent
MarkD
transparent
MarkL
transparent
MarkR
transparent
MarkX
transparent
GoBack
transparent
NoFall
transparent
ActiveBorderR
transparent #45b66e
.....
.....
....0
.....
.....
ActiveBorderL
transparent #45b66e
.....
.....
0....
.....
.....
ActiveBorderU
transparent #45b66e
..0..
.....
.....
.....
.....
ActiveBorderD
transparent #45b66e
.....
.....
.....
.....
..0..
BraceL
transparent
BraceR
transparent
BraceU
transparent
BraceD
transparent
=======
LEGEND
=======
. = Background
, = Exit
# = Wall
@ = Player and Wall
A = A1
2 = A2
B = Bridge
D = Donut
MoveDirs = MoveU or MoveD or MoveL or MoveR or MoveX
ActiveBorders = ActiveBorderR or ActiveBorderD or ActiveBorderL or ActiveBorderU
Marks = MarkU or MarkD or MarkL or MarkR or MarkX
MarkNotU = MarkD or MarkL or MarkR or MarkX
MarkNotD = MarkU or MarkL or MarkR or MarkX
MarkNotL = MarkD or MarkU or MarkR or MarkX
MarkNotR = MarkD or MarkL or MarkU or MarkX
MarkNotX = MarkD or MarkL or MarkR or MarkU
AStick = AN or AS or AE or AW or ANE or ASE or ANW or ASW
Solid = A1 or Donut or Wall or AStick or A2
Falls = A1 or Donut or Astick or A2
Moves = A1 or Donut or AStick or A2
Frictiony = Wall
Braces = BraceL or BraceR or BraceU or BraceD
=======
SOUNDS
=======
================
COLLISIONLAYERS
================
Player
Background
Wall
Exit
A1
A2
AN
AS
AE
AW
ANE
ANW
ASE
ASW
ALegs
MoveU
MoveD
MoveL
MoveR
MoveX
MarkU
MarkD
MarkL
MarkR
MarkX
GoBack
Donut
Bridge
RunGravity
NoFall
ActiveTile
ActiveBorderR
ActiveBorderL
ActiveBorderU
ActiveBorderD
BraceL
BraceR
BraceU
BraceD
======
RULES
======
[moving Player][A1] -> [stationary Player][moving A1]
(Gravity setup)
[Player no RunGravity] -> [Player RunGravity]
[RunGravity][moving moves] -> [][moving moves]
(Bracing)
[Wall] -> [Wall BraceL BraceR BraceU BraceD]
right [Moves | BraceR] -> [Moves BraceR | BraceR]
+left [Moves | BraceL] -> [Moves BraceL | BraceL]
+up [Moves | BraceU] -> [Moves BraceU | BraceU]
+down [Moves | BraceD] -> [Moves BraceD | BraceD]
right [Player no RunGravity][> A1 | no ActiveTile][A2 no BraceR] -> [Player no RunGravity][> A1 | no ActiveTile][> A2 no BraceR]
left [Player no RunGravity][> A1 | no ActiveTile][A2 no BraceL] -> [Player no RunGravity][> A1 | no ActiveTile][> A2 no BraceL]
up [Player no RunGravity][> A1 | no ActiveTile][A2 no BraceU] -> [Player no RunGravity][> A1 | no ActiveTile][> A2 no BraceU]
down [Player no RunGravity][> A1 | no ActiveTile][A2 no BraceD] -> [Player no RunGravity][> A1 | no ActiveTile][> A2 no BraceD]
[left A1 BraceL][A2] -> [A1 BraceL][right A2]
[right A1 BraceR][A2] -> [A1 BraceR][left A2]
[up A1 BraceU][A2] -> [A1 BraceU][down A2]
[down A1 BraceD][A2] -> [A1 BraceD][up A2]
[RunGravity][A1 Braces][A2] -> [RunGravity][A1 Braces][A2 Braces]
[RunGravity][A2 Braces][A1] -> [RunGravity][A2 Braces][A1 Braces]
(down [Player no RunGravity][left A1 BraceD | Frictiony][stationary A2] -> [Player no RunGravity][A1 BraceD | Frictiony][right A2]
down [Player no RunGravity][right A1 BraceD | Frictiony][stationary A2] -> [Player no RunGravity][A1 BraceD | Frictiony][left A2])
[Player no RunGravity][left A2 BraceL][A1] -> [Player no RunGravity][A2 BraceL][right A1]
[Player no RunGravity][right A2 BraceR][A1] -> [Player no RunGravity][A2 BraceR][left A1]
[Player no RunGravity][up A2 BraceU][A1] -> [Player no RunGravity][A2 BraceU][down A1]
[Player no RunGravity][down A2 BraceD][A1] -> [Player no RunGravity][A2 BraceD][up A1]
[> Moves | Donut] -> [> Moves | > Donut]
[right Moves BraceR] -> [Moves BraceR]
[left Moves BraceL] -> [Moves BraceL]
[up Moves BraceU] -> [Moves BraceU]
[down Moves BraceD] -> [Moves BraceD]
[RunGravity][Falls no BraceD] -> [RunGravity][down Falls]
[RunGravity][down A2 no BraceD][A1 no BraceD] -> [RunGravity][down A2 no BraceD][down A1 no BraceD]
startloop
[stationary Solid] -> [ Solid MarkX]
up [> Moves | ] -> [> Moves | MarkU]
down [> Moves | ] -> [> Moves | MarkD]
left [> Moves | ] -> [> Moves | MarkL]
right [> Moves | ] -> [> Moves | MarkR]
up [> Moves | MarkNotU] -> [Moves | MarkNotU]
down [> Moves | MarkNotD] -> [Moves | MarkNotD]
left [> Moves | MarkNotL] -> [Moves | MarkNotL]
right [> Moves | MarkNotR] -> [Moves | MarkNotR]
endloop
[Marks] -> []
late [ALegs] -> []
late down [A2 | Frictiony] -> [A2 ALegs | Frictiony]
late down [A2 | A1] -> [A2 ALegs | A1]
(Set up ActiveTile)
late [ActiveTile] -> []
late [ActiveBorders] -> []
(
late right [no ActiveTile|no ActiveTile|no ActiveTile A2|no ActiveTile|no ActiveTile] -> [ActiveTile|ActiveTile|ActiveTile A2|ActiveTile|ActiveTile]
late down [no ActiveTile|no ActiveTile|ActiveTile|no ActiveTile|no ActiveTile] -> [ActiveTile|ActiveTile|ActiveTile|ActiveTile|ActiveTile]
)
late right [no ActiveTile|no ActiveTile A2|no ActiveTile] -> [ActiveTile|ActiveTile A2|ActiveTile]
late down [no ActiveTile|ActiveTile|no ActiveTile] -> [ActiveTile|ActiveTile|ActiveTile]
late right [ActiveTile | no ActiveTile] -> [ActiveTile | no ActiveTile ActiveBorderL]
late left [ActiveTile | no ActiveTile] -> [ActiveTile | no ActiveTile ActiveBorderR]
late up [ActiveTile | no ActiveTile] -> [ActiveTile | no ActiveTile ActiveBorderD]
late down [ActiveTile | no ActiveTile] -> [ActiveTile| no ActiveTile ActiveBorderU]
late [RunGravity] -> []
late [Player] -> again
late [A1 no ActiveTile] -> cancel
late [Braces] -> []
==============
WINCONDITIONS
==============
=======
LEVELS
=======
###############
###############
##@############
##..........###
##......A...###
##......2...###
##..........###
##..........###
##..........###
##..........###
###.......#.###
###.#...#...###
##....#.....###
###############
###############
###############
message A is for Alien
#####
#..,#
#.#.#
#...#
#A#.#
#####
message B is for Bridge
##########
#b.ab.####
#.b..b.###
#b.##.b###
#.b##b.###
#...b...##
#b.b.d.b.#
#.b####b.#
#b.####..#
#.bb.....#
#b..b,..##
##########
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment