Skip to content

Instantly share code, notes, and snippets.

@Draknek
Last active September 22, 2023 12:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Draknek/bf4be9842212ac2bde63ddfa03841507 to your computer and use it in GitHub Desktop.
Save Draknek/bf4be9842212ac2bde63ddfa03841507 to your computer and use it in GitHub Desktop.
Activation Fascination (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Activation Fascination
author Alan Hazelden
homepage alan.draknek.org
========
OBJECTS
========
Background
lightgreen green
11111
01111
11101
11111
10111
Target
darkblue
.....
.000.
.0.0.
.000.
.....
Wall
brown darkbrown
00010
11111
01000
11111
00010
PlayerRight
#990c33 #ffffff #c83242 #cf5c50 #640821
.000.
.221.
.222.
.333.
.3.3.
PlayerLeft
#990c33 #ffffff #c83242 #cf5c50 #640821
.000.
.122.
.222.
.333.
.3.3.
PlayerUp
#990c33 #ffffff #c83242 #cf5c50 #640821
.000.
.222.
.222.
.333.
.3.3.
PlayerDown
#990c33 #ffffff #c83242 #cf5c50 #640821
.000.
.121.
.222.
.333.
.3.3.
CrateRight
orange brown
00000
01110
01111
01110
00000
Bomb
darkblue white
.....
.00..
0000.
0000.
.00..
BombTriggered
darkblue red
.....
.00..
0110.
0110.
.00..
(RemoveMarker
red)
QuickActionMarker
yellow
BoxEating
blue
BombInBox
darkblue
.....
.....
..0..
.....
.....
PlayerInBox
#990c33
.....
.....
..0..
.....
.....
Explosion
red
.....
.0...
...0.
..0..
.....
ShowCanActivate
yellow
0...0
.....
.....
.....
0...0
=======
LEGEND
=======
PlayerNormal = PlayerLeft or PlayerRight or PlayerUp or PlayerDown
Player = PlayerNormal or PlayerInBox
Crate = CrateRight
InBox = BombInBox or PlayerInBox
Pushable = Crate or Bomb or BombTriggered or PlayerNormal
Solid = Wall or Pushable or Player
Triggerable = Crate or Bomb or BombTriggered
Destroyable = Solid or InBox
. = Background
# = Wall
P = PlayerDown
* = CrateRight
O = Target
! = Bomb
=======
SOUNDS
=======
Crate move 36772507
================
COLLISIONLAYERS
================
Background
Target
Wall, Pushable
InBox, BoxEating
QuickActionMarker, Explosion
ShowCanActivate
======
RULES
======
[ > PlayerInBox ] -> [ PlayerInBox ]
[ action PlayerInBox Crate ] -> [ PlayerInBox action Crate ]
left [ > Player | no Solid ] -> [ | PlayerLeft ]
right [ > Player | no Solid ] -> [ | PlayerRight ]
up [ > Player | no Solid ] -> [ | PlayerUp ]
down [ > Player | no Solid ] -> [ | PlayerDown ]
[ left Player no PlayerLeft ] -> [ PlayerLeft QuickActionMarker ]
[ right Player no PlayerRight ] -> [ PlayerRight QuickActionMarker ]
[ up Player no PlayerUp ] -> [ PlayerUp QuickActionMarker ]
[ down Player no PlayerDown ] -> [ PlayerDown QuickActionMarker ]
left [ action PlayerLeft | Triggerable ] -> [ PlayerLeft | action Triggerable ]
right [ action PlayerRight | Triggerable ] -> [ PlayerRight | action Triggerable ]
up [ action PlayerUp | Triggerable ] -> [ PlayerUp | action Triggerable ]
down [ action PlayerDown | Triggerable ] -> [ PlayerDown | action Triggerable ]
(Quick actions don't take any time, so don't let other objects do things)
[ QuickActionMarker ] [ BombTriggered ] -> [ QuickActionMarker ] [ QuickActionMarker BombTriggered ]
(Pushing)
[ > Player | Pushable ] -> [ > Player | > Pushable ]
[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]
[ > Crate InBox ] -> [ > Crate > InBox ]
[ > Pushable | Wall ] -> cancel
[ > Pushable | no Solid ] -> [ | Pushable ]
[ > InBox | ] -> [ | InBox ]
(Triggered objects)
(Bomb)
[ action BombTriggered ] -> [ Bomb ]
[ Explosion Bomb ] -> [ BombTriggered ]
[ Explosion Destroyable ] -> [ Explosion ]
[ Explosion ] -> [] again
[ | BombTriggered no QuickActionMarker | ] -> [ > Explosion | BombTriggered | < Explosion ]
[ ^ Explosion | no Explosion ] -> [ ^ Explosion | Explosion ]
[ v Explosion | no Explosion ] -> [ v Explosion | Explosion ]
[ moving Explosion ] -> [ Explosion ]
[ BombTriggered no QuickActionMarker ] -> [ Explosion ]
[ Explosion ] -> again
[ Explosion Bomb ] -> [ BombTriggered ]
[ action Bomb ] -> [ BombTriggered ]
(Box triggering)
[ action CrateRight no InBox ] -> [ CrateRight right BoxEating ]
[ action CrateRight InBox ] -> [ CrateRight right InBox ]
(Box eating)
[ > BoxEating | Bomb ] -> [ BombInBox | ]
[ > BoxEating | Player ] -> [ PlayerInBox | ]
[ BoxEating ] -> []
(Box barfing - pushing things out of the way)
[ > InBox | Pushable ] -> [ > InBox | > Pushable ]
[ > Pushable | Pushable ] -> [ > Pushable | > Pushable ]
[ > Crate InBox ] -> [ > Crate > InBox ]
[ > Pushable no InBox | stationary Solid ] -> [ Pushable | Solid ]
+ [ > Pushable > InBox | stationary Solid ] -> [ Pushable InBox | Solid ]
[ > Pushable no InBox | no Solid ] -> [ | Pushable ]
[ > Pushable > InBox | no Solid ] -> [ | Pushable InBox ]
(Box barfing - actual barfing)
[ > BombInBox | no Solid ] -> [ | Bomb ]
left [ > PlayerInBox | no Solid ] -> [ | PlayerLeft ]
right [ > PlayerInBox | no Solid ] -> [ | PlayerRight ]
up [ > PlayerInBox | no Solid ] -> [ | PlayerUp ]
down [ > PlayerInBox | no Solid ] -> [ | PlayerDown ]
[ > InBox ] -> [ InBox ]
(Visual indicator for activatability)
[ ShowCanActivate ] -> []
[ PlayerInBox ] -> [ PlayerInBox ShowCanActivate ]
left [ PlayerLeft | Triggerable ] -> [ PlayerLeft | Triggerable ShowCanActivate ]
right [ PlayerRight | Triggerable ] -> [ PlayerRight | Triggerable ShowCanActivate ]
up [ PlayerUp | Triggerable ] -> [ PlayerUp | Triggerable ShowCanActivate ]
down [ PlayerDown | Triggerable ] -> [ PlayerDown | Triggerable ShowCanActivate ]
(cleanup)
[ QuickActionMarker ] -> []
==============
WINCONDITIONS
==============
all Target on Player
=======
LEVELS
=======
###########
#...###...#
#p!...#...o
#...###...#
###########
######o#
######.#
#..###.#
#.!#...#
#..#####
p.######
########
############
############
##...#######
##.!.###...#
##p!.###...o
##.!.###...#
##...#######
############
############
#########
#########
###.!.###
###*!.###
#...#####
#.p.#...#
#...#...#
######o##
#p#########
#...###...#
###.###...o
###...#...#
###.#######
#.!.#######
#.*.#######
#...#######
###########
#########
##..#...#
##*.#...o
##..#...#
##p######
#...#####
#.!.#####
#...#####
#########
#########
##..#####
#*..#...#
#..##...o
#.!.#...#
##.p#####
#########
############
############
###..#######
###..#######
###..###...#
###*..##...o
####.###...#
##...#######
##p!!#######
##...#######
############
############
(##########
#####...##
##..#...##
#*..#...##
#.p#######
#.!###...#
#.!###...#
#..###...#
#######o##)
message Thanks for playing :)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment