Skip to content

Instantly share code, notes, and snippets.

@inventortimer
Created April 23, 2024 15:47
Show Gist options
  • Save inventortimer/5aed93f1001e1485699de78500aad32a to your computer and use it in GitHub Desktop.
Save inventortimer/5aed93f1001e1485699de78500aad32a to your computer and use it in GitHub Desktop.
The Cable Guy (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title The Cable Guy
author 4sandwiches
homepage https://store.steampowered.com/app/2541310/The_Cable_Guy
debug
again_interval 0.1
========
OBJECTS
========
Background
lightgreen green
11111
01111
11101
11111
10111
UnconnectedBluePC
lightblue darkgray
00000
01110
00000
.000.
00000
ConnectedBluePC
lightblue blue
00000
01110
00000
.000.
00000
Wall
brown darkbrown
00010
11111
01000
11111
00010
Server
black orange blue grey
33333
32223
33333
32223
33333
NonActivePlayer
white
00.00
0...0
.....
0...0
00.00
ActiveBluePlayer
blue
00.00
0...0
.....
0...0
00.00
UnconnectedCable
darkblue
.....
.000.
.000.
.000.
.....
ConnectedCableVB
blue
..0..
..0..
..0..
..0..
..0..
ConnectedCableHB
blue
.....
.....
00000
.....
.....
(
ConnectedCableDLB
blue
.....
.....
000..
..0..
..0..
ConnectedCableDRB
blue
.....
.....
..000
..0..
..0..
ConnectedCableULB
blue
..0..
..0..
000..
.....
.....
ConnectedCableURB
blue
..0..
..0..
..000
.....
.....
)
ConnectedCableLVB
blue
..0..
..0..
000..
..0..
..0..
ConnectedCableRVB
blue
..0..
..0..
..000
..0..
..0..
ConnectedCableDHB
blue
.....
.....
00000
..0..
..0..
ConnectedCableUHB
blue
..0..
..0..
00000
.....
.....
ConnectedCableCB
blue
..0..
..0..
00000
..0..
..0..
ConnectedCableDB
blue
.....
.....
..0..
..0..
..0..
ConnectedCableUB
blue
..0..
..0..
..0..
.....
.....
ConnectedCableRB
blue
.....
.....
..000
.....
.....
ConnectedCableLB
blue
.....
.....
000..
.....
.....
SourceD
transparent
SourceU
transparent
SourceL
transparent
SourceR
transparent
EraserL
transparent
EraserR
transparent
EraserD
transparent
EraserU
transparent
EraserML
transparent
EraserMR
transparent
EraserMD
transparent
EraserMU
transparent
=======
LEGEND
=======
player = ActiveBluePlayer or NonActivePlayer
ConnectedBlueCable = ConnectedCableUB or ConnectedCableDB or ConnectedCableLB or ConnectedCableRB
ConnectedBlueCableUnused = ConnectedCableVB or ConnectedCableHB or ConnectedCableLVB or ConnectedCableRVB or ConnectedCableDHB or ConnectedCableUHB or ConnectedCableCB
Source = SourceD or SourceL or SourceR or SourceU
Eraser = EraserD or EraserL or EraserR or EraserU
EraserM = EraserMD or EraserML or EraserMR or EraserMU
. = Background
# = Wall
S = Server
N = NonActivePlayer
A = ActiveBluePlayer
U = UnconnectedBluePC
C = ConnectedBluePC
- = ConnectedCableHB
/ = ConnectedCableVB
=======
SOUNDS
=======
NonActivePlayer move 36772507
================
COLLISIONLAYERS
================
Background
EraserM
Eraser
Source
ConnectedCableUB
ConnectedCableDB
ConnectedCableRB
ConnectedCableLB
UnconnectedCable
UnconnectedBluePC, ConnectedBluePC, Server
ConnectedBlueCableUnused
ActiveBluePlayer, NonActivePlayer, Wall
======
RULES
======
(Player actions)
[Action NonActivePlayer Server] -> [ActiveBluePlayer Server]
[Action ActiveBluePlayer] -> [NonActivePlayer]
([Action NonActivePlayer connectedbluecable] -> [NonActivePlayer Background])
([Action NonActivePlayer connectedbluecable | ... | connectedbluecable] -> [NonActivePlayer | ... | Background])
[Action NonActivePlayer connectedbluecable SourceR] -> [NonActivePlayer Background LEFT EraserL]
[EraserL connectedbluecable SourceR] -> [LEFT EraserL] again (late by one turn, but ok for now)
([stationary EraserL] -> [LEFT EraserL])
([EraserL])
([EraserL] -> [left EraserL])
([EraserL ConnectedBlueCable] -> [EraserL] again)
(Server rules)
(Server = BlueServer, RedServer...)
UP [UP ActiveBluePlayer Server | Background] -> [UP ActiveBluePlayer Server | ConnectedCableDB SourceD Background]
DOWN [DOWN ActiveBluePlayer Server | Background] -> [DOWN ActiveBluePlayer Server | ConnectedCableUB SourceU Background]
LEFT [LEFT ActiveBluePlayer Server | Background] -> [LEFT ActiveBluePlayer Server | ConnectedCableRB SourceR Background]
RIGHT [RIGHT ActiveBluePlayer Server | Background] -> [RIGHT ActiveBluePlayer Server | ConnectedCableLB SourceL Background]
(Cable rules)
(Down)
LEFT [LEFT ActiveBluePlayer ConnectedCableDB | Background] -> [ConnectedCableDB ConnectedCableLB | ActiveBluePlayer ConnectedCableRB SourceR Background]
RIGHT [RIGHT ActiveBluePlayer ConnectedCableDB | Background] -> [ConnectedCableDB ConnectedCableRB | ActiveBluePlayer ConnectedCableLB SourceL Background]
UP [UP ActiveBluePlayer ConnectedCableDB | Background] -> [ConnectedCableDB ConnectedCableUB | ActiveBluePlayer ConnectedCableDB SourceD Background]
DOWN [DOWN ActiveBluePlayer ConnectedCableDB | Background] -> [ActiveBluePlayer ConnectedCableDB | Background]
(Up)
LEFT [LEFT ActiveBluePlayer ConnectedCableUB | Background] -> [ConnectedCableUB ConnectedCableLB | ActiveBluePlayer ConnectedCableRB SourceR Background]
RIGHT [RIGHT ActiveBluePlayer ConnectedCableUB | Background] -> [ConnectedCableUB ConnectedCableRB | ActiveBluePlayer ConnectedCableLB SourceL Background]
DOWN [DOWN ActiveBluePlayer ConnectedCableUB | Background] -> [ConnectedCableUB ConnectedCableDB | ActiveBluePlayer ConnectedCableUB SourceU Background]
UP [UP ActiveBluePlayer ConnectedCableUB | Background] -> [ActiveBluePlayer ConnectedCableUB | Background]
(Left)
RIGHT [RIGHT ActiveBluePlayer ConnectedCableLB | Background] -> [ConnectedCableLB ConnectedCableRB | ActiveBluePlayer ConnectedCableLB SourceL Background]
LEFT [LEFT ActiveBluePlayer ConnectedCableLB | Background] -> [ActiveBluePlayer ConnectedCableLB| Background] (sound)
DOWN [DOWN ActiveBluePlayer ConnectedCableLB | Background] -> [ConnectedCableLB ConnectedCableDB | ActiveBluePlayer ConnectedCableUB SourceU Background]
UP [UP ActiveBluePlayer ConnectedCableLB | Background] -> [ConnectedCableLB ConnectedCableUB | ActiveBluePlayer ConnectedCableDB SourceD Background]
(Right)
LEFT [LEFT ActiveBluePlayer ConnectedCableRB | Background] -> [ConnectedCableRB ConnectedCableLB | ActiveBluePlayer ConnectedCableRB SourceR Background]
RIGHT [RIGHT ActiveBluePlayer ConnectedCableRB | Background] -> [ActiveBluePlayer ConnectedCableRB | Background] (sound)
DOWN [DOWN ActiveBluePlayer ConnectedCableRB | Background] -> [ConnectedCableRB ConnectedCableDB | ActiveBluePlayer ConnectedCableUB SourceU Background]
UP [UP ActiveBluePlayer ConnectedCableRB | Background] -> [ConnectedCableRB ConnectedCableUB | ActiveBluePlayer ConnectedCableDB SourceD Background]
(
LEFT [LEFT ActiveBluePlayer ConnectedCableVB | Background] -> [LEFT ActiveBluePlayer ConnectedCableLVB | ConnectedCableHB SourceR Background]
RIGHT [RIGHT ActiveBluePlayer ConnectedCableVB | Background] -> [RIGHT ActiveBluePlayer ConnectedCableRVB | ConnectedCableHB SourceL Background]
UP [UP ActiveBluePlayer ConnectedCableVB | Background] -> [UP ActiveBluePlayer ConnectedCableVB | ConnectedCableVB SourceU Background]
DOWN [DOWN ActiveBluePlayer ConnectedCableVB | Background] -> [DOWN ActiveBluePlayer ConnectedCableVB | ConnectedCableVB SourceD Background]
)
([> ActiveBluePlayer | connectedbluecable] -> [ActiveBluePlayer | conn])
(
LEFT [LEFT ActiveBluePlayer ConnectedCableRVB | Background] -> [ConnectedCableCB | ActiveBluePlayer ConnectedCableHB Background]
)
(
RIGHT [RIGHT ActiveBluePlayer ConnectedCableUHB | Background] -> [ConnectedCableRVB | ActiveBluePlayer ConnectedCableHB Background]
)
(
RIGHT [RIGHT ActiveBluePlayer ConnectedCableHB | Background] -> [ConnectedCableHB | ActiveBluePlayer ConnectedCableHB Background]
RIGHT [RIGHT ActiveBluePlayer ConnectedCableVB | Background] -> [ConnectedCableDHB | ActiveBluePlayer ConnectedCableHB Background]
UP [UP ActiveBluePlayer ConnectedCableHB | Background] -> [ConnectedCableUHB | ActiveBluePlayer ConnectedCableVB Background]
)
(PC connection)
[ActiveBluePlayer UnconnectedBluePC | ConnectedBlueCable] -> [NonActivePlayer ConnectedBluePC | connectedbluecable]
==============
WINCONDITIONS
==============
No UnconnectedBluePC
=======
LEVELS
=======
............
............
............
......u.....
............
............
......s.....
............
......n.....
............
............
............
............
#######
#..u..#
#.....#
#.....#
#..s..#
#.....#
#..n..#
#.....#
#######
#######
#..u..#
#.....#
#..n..#
#.....#
#..s..#
#######
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment