Skip to content

Instantly share code, notes, and snippets.

@edderiofer
Created August 19, 2018 10:24
Show Gist options
  • Save edderiofer/5e4354d2d3c13d6f0fb67cba1c5a0237 to your computer and use it in GitHub Desktop.
Save edderiofer/5e4354d2d3c13d6f0fb67cba1c5a0237 to your computer and use it in GitHub Desktop.
RE: Treat of the Spectrum (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title RE: Treat of the Spectrum
author edderiofer
homepage http://edderiofer.blogspot.com
norepeat_action
verbose_logging
again_interval 0.2
========
OBJECTS
========
Background .
grey
Wall #
darkgrey
player
transparent black
.000.
.000.
10101
.111.
.1.1.
goal g
orange white
00000
01110
01010
01110
00000
blockred a
red
.....
.000.
.000.
.000.
.....
hdoorredclosed b
red
.....
00000
00000
00000
.....
ldoorredopen c
red
.....
0....
0....
0....
.....
rdoorredopen d
red
.....
....0
....0
....0
.....
vdoorredclosed e
red
.000.
.000.
.000.
.000.
.000.
udoorredopen f
red
.000.
.....
.....
.....
.....
ddoorredopen h
red
.....
.....
.....
.....
.000.
blockwhite i
white
.....
.000.
.000.
.000.
.....
hdoorwhiteclosed j
white
.....
00000
00000
00000
.....
ldoorwhiteopen k
white
.....
0....
0....
0....
.....
rdoorwhiteopen l
white
.....
....0
....0
....0
.....
vdoorwhiteclosed m
white
.000.
.000.
.000.
.000.
.000.
udoorwhiteopen n
white
.000.
.....
.....
.....
.....
ddoorwhiteopen o
white
.....
.....
.....
.....
.000.
actioned
#FFFF00
.....
.....
..0..
.....
.....
winning
transparent
counter
transparent
fired
#FF00FF
.....
.....
..0..
.....
.....
hit
#00FFFF
.....
...0.
..0..
.0...
.....
inventoryred
red transparent
.000.
.000.
10101
.111.
.1.1.
inventorywhite
white transparent
.000.
.000.
10101
.111.
.1.1.
=======
LEGEND
=======
p = player and inventorywhite
doorredclosed = hdoorredclosed or vdoorredclosed
doorredopen = ldoorredopen or rdoorredopen or udoorredopen or ddoorredopen
doorwhiteclosed = hdoorwhiteclosed or vdoorwhiteclosed
doorwhiteopen = ldoorwhiteopen or rdoorwhiteopen or udoorwhiteopen or ddoorwhiteopen
doorclosed = doorredclosed or doorwhiteclosed
dooropen = doorredopen or doorwhiteopen
gunblocker = doorclosed or wall
block = blockred or blockwhite
inventory = inventoryred or inventorywhite
collidable = block or gunblocker
=======
SOUNDS
=======
================
COLLISIONLAYERS
================
Background
goal
Player, Wall, block
dooropen, doorclosed
winning
counter
actioned
fired
hit
inventory
======
RULES
======
(toggling on and off "actioned" state, which allows player to fire)
[action player no actioned ] -> [actioned player]
[action player actioned] -> [no actioned player]
(player fires a projectile)
[actioned > player | no block] -> [no actioned player | > fired]
[actioned > player | block] -> [no actioned player | block hit]
(projectile moves)
[> fired | no gunblocker no block] -> [no fired | > fired]
(if a projectile hits a wall, then cancel the fire; otherwise if it hits a block, the block is marked with "hit")
[> fired | gunblocker] -> cancel
[> fired | block] -> [ | block hit]
(if the player tries to move into a block or a wall or a door, cancel the turn)
[> player | collidable] -> cancel
(makes the inventory move with the player)
[> player inventory | ] -> [ | player inventory]
(at the end of turn, switch "hit" block with inventory)
late [blockred hit][inventorywhite] -> [blockwhite no hit][inventoryred]
late [blockwhite hit][inventoryred] -> [blockred no hit][inventorywhite]
(TODO: Add rules about doors, add win conditions)
(win if win conditions are met) (WARNING: NO WIN CONDITIONS CREATED YET)
late [winning] -> win
(clear things at end of turn)
late [fired] -> []
late [hit] -> []
late [counter] -> []
==============
WINCONDITIONS
==============
=======
LEVELS
=======
.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment