Created
April 1, 2023 14:33
-
-
Save RazThePenguin/5a76aff3716b87dd5e30212065d9169f to your computer and use it in GitHub Desktop.
Better Off Together vC0.8 (Puzzlescript Plus Script)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Play this game by pasting the script in https://auroriax.github.io/PuzzleScript/editor.html |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
title Better Off Together vC0.8 | |
author By Penguin Fox Studios | |
homepage www.puzzlescript.net | |
background_color #080815 | |
text_color #169c39 | |
sprite_size 8 | |
realtime_interval 0.2 | |
again_interval 0.2 | |
run_rules_on_level_start | |
level_select_unlocked_ahead all | |
level_select | |
level_select_solve_symbol V | |
continue_is_level_select | |
youtube dZtmv6mmV8E | |
= | |
OBJECTS | |
= | |
Background | |
#182418 #212130 | |
01010101 | |
10101010 | |
01010101 | |
10101010 | |
01010101 | |
10101010 | |
01010101 | |
10101010 | |
FrenWinner | |
transparent | |
FWinner0 | |
yellow orange white white white | |
00000000 | |
04444440 | |
04333340 | |
04322340 | |
04322340 | |
04333340 | |
04444440 | |
00000000 | |
FWinner1 copy:FWinner0 | |
yellow white orange white white | |
FWinner2 copy:FWinner0 | |
yellow white white orange white | |
FWinner3 copy:FWinner0 | |
yellow white white white orange | |
PlayerWinner | |
transparent | |
PWinner0 copy:Fwinner0 | |
pink lightred white white white | |
PWinner1 copy:FWinner0 | |
pink white lightred white white | |
PWinner2 copy:FWinner0 | |
pink white white lightred white | |
PWinner3 copy:FWinner0 | |
pink white white white lightred | |
Wall | |
lightgray grey darkgray #606060 #585858 | |
22222223 | |
21000014 | |
20000004 | |
20000004 | |
20000004 | |
20000004 | |
21000014 | |
34444444 | |
Temp | |
transparent | |
Player | |
red pink white black grey | |
..3223.. | |
..2222.. | |
..2332.. | |
...22... | |
..1001.. | |
..1001.. | |
..1101.. | |
..4..4.. | |
Enemy copy:Player | |
pink red white black grey | |
Fren | |
#eb8931 #a46422 #493c2b #fb9941 #f39139 | |
33333334 | |
31222210 | |
32122120 | |
32211220 | |
32211220 | |
32122120 | |
31222210 | |
40000000 | |
ClingyFren copy:Fren | |
green darkgreen darkbrown green green | |
CFren copy:Fren | |
green darkgreen darkbrown green green | |
RoombaU | |
grey darkgrey white white darkgray | |
00000000 | |
01122110 | |
01322310 | |
03322330 | |
04422440 | |
01422410 | |
01122110 | |
00000000 | |
RoombaD copy:RoombaU | |
grey darkgrey white darkgrey white | |
RoombaL | |
grey darkgrey white white darkgray | |
00000000 | |
01134110 | |
01334410 | |
02222220 | |
02222220 | |
01334410 | |
01134110 | |
00000000 | |
RoombaR copy:RoombaL | |
grey darkgrey white darkgrey white | |
Spike | |
#182418 #212130 #080808 | |
01010101 | |
10222210 | |
02222221 | |
12222220 | |
02222221 | |
12222220 | |
01222201 | |
10101010 | |
Hole | |
transparent transparent darkgray #606060 #585858 | |
22000023 | |
21000014 | |
00000000 | |
00000000 | |
00000000 | |
00000000 | |
21000014 | |
34000044 | |
Pit | |
#182418 #212130 | |
01010101 | |
10101010 | |
01010101 | |
10101010 | |
01010101 | |
10101010 | |
01010101 | |
10101010 | |
BefriendedPit | |
#eb8931 #a46422 #493c2b #fb9941 #f39139 | |
00000000 | |
01222210 | |
02122120 | |
02211220 | |
02211220 | |
02122120 | |
01222210 | |
00000000 | |
Button0 | |
red | |
Button1 | |
green | |
Button2 | |
blue | |
Door0 | |
lightred | |
Door1 | |
lightgreen | |
Door2 | |
lightblue | |
OpenDoor0 | |
darkred | |
OpenDoor1 | |
darkgreen | |
OpenDoor2 | |
darkblue | |
Darkness | |
#000000c0 | |
InstantWin | |
transparent | |
StopWinConTrigger | |
transparent | |
= | |
LEGEND | |
= | |
Roomba = RoombaU or RoombaD or RoombaL or RoombaR | |
RCollider = Wall or Player or Fren or ClingyFren or Roomba or Hole or Pit | |
. = Background | |
# = Wall | |
p = Player | |
e = Enemy | |
* = Fren | |
& = ClingyFren | |
a = RoombaU | |
b = RoombaL | |
k = PlayerWinner and PWinner0 | |
o = FrenWinner and FWinner0 | |
s = Spike | |
h = Hole | |
x = Pit and Darkness | |
0 = Button0 | |
~ = Door0 | |
1 = Button1 | |
! = Door1 | |
2 = Button2 | |
" = Door2 | |
¤ = InstantWin | |
% = StopWinConTrigger | |
FWanim = FWinner0 or FWinner1 or FWinner2 or FWinner3 | |
FWinny = FrenWinner or StopWinConTrigger or ClingyFren | |
PWanim = PWinner0 or PWinner1 or PWinner2 or PWinner3 | |
PWinny = PlayerWinner | |
Frens = Fren or ClingyFren | |
Thing = Fren or Wall | |
= | |
SOUNDS | |
= | |
sfx0 75271700 | |
Player move 18403104 | |
Player cantmove 53390302 | |
Fren move 36175107 | |
Fren cantmove 5481108 | |
ClingyFren move 36175107 | |
ClingyFren cantmove 18235108 | |
Roomba move 37997307 | |
startgame 18235108 | |
closemessage 72405508 | |
endlevel 53601508 | |
= | |
COLLISIONLAYERS | |
= | |
Background | |
Temp | |
FrenWinner, PlayerWinner | |
FWanim, PWanim | |
Spike, Hole, Pit, BefriendedPit | |
Darkness | |
InstantWin | |
StopWinConTrigger | |
Button0, Button1, Button2 | |
OpenDoor0, OpenDoor1, OpenDoor2 | |
Player, Enemy, Wall, Fren, ClingyFren, CFren, Roomba, Door0, Door1, Door2 | |
= | |
RULES | |
= | |
[ stationary Player ] [ FWinner3 ] -> [ Player ] [ FWinner0 ] | |
[ stationary Player ] [ FWinner2 ] -> [ Player ] [ FWinner3 ] | |
[ stationary Player ] [ FWinner1 ] -> [ Player ] [ FWinner2 ] | |
[ stationary Player ] [ FWinner0 ] -> [ Player ] [ FWinner1 ] | |
[ stationary Player ] [ PWinner3 ] -> [ Player ] [ PWinner0 ] | |
[ stationary Player ] [ PWinner2 ] -> [ Player ] [ PWinner3 ] | |
[ stationary Player ] [ PWinner1 ] -> [ Player ] [ PWinner2 ] | |
[ stationary Player ] [ PWinner0 ] -> [ Player ] [ PWinner1 ] | |
up [ RoombaU | RCollider ] -> [ RoombaD | RCollider ] | |
down [ RoombaD | RCollider ] -> [ RoombaU | RCollider ] | |
[ moving Player ] [ RoombaU ] -> [ moving Player ] [ Up RoombaU ] | |
[ moving Player ] [ RoombaD ] -> [ moving Player ] [ Down RoombaD ] | |
left [ RoombaL | RCollider ] -> [ RoombaR | RCollider ] | |
right [ RoombaR | RCollider ] -> [ RoombaL | RCollider ] | |
[ moving Player ] [ RoombaL ] -> [ moving Player ] [ Left RoombaL ] | |
[ moving Player ] [ RoombaR ] -> [ moving Player ] [ Right RoombaR ] | |
[ ^ Roomba | Fren ] -> [ ^ Roomba | ^ Fren ] | |
[ v Roomba | Fren ] -> [ v Roomba | v Fren ] | |
[ ^ Player | Fren ] -> [ ^ Player | ^ Fren ] | |
[ v Player | Fren ] -> [ v Player | v Fren ] | |
[ ^ Roomba | ClingyFren ] -> [ ^ Roomba | ^ ClingyFren ] | |
[ v Roomba | ClingyFren ] -> [ v Roomba | v ClingyFren ] | |
[ ^ Player | ClingyFren ] -> [ ^ Player | ^ ClingyFren ] | |
[ v Player | ClingyFren ] -> [ v Player | v ClingyFren ] | |
[ < Player | ClingyFren ] -> [ < Player | < ClingyFren ] | |
[ Enemy | ... | Player ] -> [ > Enemy | ... | Player ] | |
[ > Enemy | Player ] -> [ Enemy | ] | |
[ > Player | Spike ] -> [ Player | Spike ] | |
[ > Player | Pit ] -> [ Player | Pit ] | |
[ > Fren | Hole ] -> [ Fren | Hole ] | |
[ > ClingyFren | Hole ] -> [ ClingyFren | Hole ] | |
late [ Fren Pit ] -> [ BefriendedPit ] | |
[ > Fren | FrenWinner ] -> sfx0 | |
[ > ClingyFren | FrenWinner ] -> sfx0 | |
[ > Player | PlayerWinner ] -> sfx0 | |
[ Player InstantWin ] -> win | |
late [ no Fren no ClingyFren no Player no Roomba Button0 ] [ Opendoor0 ] -> [ Button0 ] [ Door0 ] | |
late [ no Fren no ClingyFren no Player no Roomba Button0 ] [ Opendoor1 ] -> [ Button1 ] [ Door1 ] | |
late [ no Fren no ClingyFren no Player no Roomba Button0 ] [ Opendoor2 ] -> [ Button2 ] [ Door2 ] | |
late [ Fren Button0 ] [ Door0 ] -> [ Fren Button0 ] [ Opendoor0 ] | |
late [ Fren Button1 ] [ Door1 ] -> [ Fren Button1 ] [ Opendoor1 ] | |
late [ Fren Button2 ] [ Door2 ] -> [ Fren Button2 ] [ Opendoor2 ] | |
late [ ClingyFren Button0 ] [ Door0 ] -> [ ClingyFren Button0 ] [ Opendoor0 ] | |
late [ ClingyFren Button1 ] [ Door1 ] -> [ ClingyFren Button1 ] [ Opendoor1 ] | |
late [ ClingyFren Button2 ] [ Door2 ] -> [ ClingyFren Button2 ] [ Opendoor2 ] | |
late [ Player Button0 ] [ Door0 ] -> [ Player Button0 ] [ Opendoor0 ] | |
late [ Player Button1 ] [ Door1 ] -> [ Player Button1 ] [ Opendoor1 ] | |
late [ Player Button2 ] [ Door2 ] -> [ Player Button2 ] [ Opendoor2 ] | |
late [ Roomba Button0 ] [ Door0 ] -> [ Roomba Button0 ] [ Opendoor0 ] | |
late [ Roomba Button1 ] [ Door1 ] -> [ Roomba Button1 ] [ Opendoor1 ] | |
late [ Roomba Button2 ] [ Door2 ] -> [ Roomba Button2 ] [ Opendoor2 ] | |
= | |
WINCONDITIONS | |
= | |
all FWinny on Frens | |
all PWinny on Player | |
= | |
LEVELS | |
= | |
section # Prologue # | |
message "I woke up somewhere strange." | |
message "The walls are barren, the lights blinding white and the room empty." | |
message "Except something that seemed useless at first." | |
######### | |
#.....¤.# | |
#.p..¤*¤# | |
#.....¤%# | |
######### | |
section # Octant 1 # | |
message Septant 1 - "Friends Amidst Turmoil" | |
message "We were alone with no one except a familiar crate to cling onto." | |
message "They were our only companion in this deafeningly silent labyrinth, designed for even the most resillient of humanity to perish under their own insanity." | |
message "Can I do this?" | |
section Level 1-1 | |
message Level 1-1 - "Hello Friend" | |
######### | |
#.......# | |
#.p.*.o.# | |
#.......# | |
######### | |
section Level 1-2 | |
message Level 1-2 - "Cornering Crate" | |
######### | |
#.......# | |
#.*.....# | |
#.......# | |
######..# | |
#.......# | |
#.o.p...# | |
#.......# | |
######### | |
section Level 1-3 | |
message Level 1-3 - "Snap" | |
######## | |
o.#..... | |
*....... | |
p......# | |
######## | |
section Level 1-4 | |
message Level 1-4 - "Try to Speedrun This" | |
######## | |
#..#...o | |
#......# | |
#...##.# | |
#.#....# | |
#..#..## | |
#.#...*# | |
p......# | |
######## | |
section Level 1-5 | |
message Level 1-5 - "Distanced" | |
..#..o..#.#*. | |
&.#.......#.. | |
..#o.#.#.*#.. | |
.*#.......#.& | |
.*#.#..*.p#&. | |
section Level 1-6 | |
message Level 1-6 - "Sort In" | |
####### | |
#..#.o# | |
#....## | |
#*..#o# | |
#.**..# | |
##....# | |
#o.p.## | |
####### | |
section Level 1-7 | |
message Level 1-7 - "Clover" | |
#####o..# | |
...*..#.# | |
.p..*.o.# | |
...*..#.# | |
#####o..# | |
section Level 1-8 | |
message Level 1-8 - "Excluded" | |
####### | |
##.o..# | |
#..*..# | |
#o*p*## | |
#..*..# | |
##.o..# | |
####### | |
section Level 1-9 | |
message Level 1-9 - "Unnecessary" | |
######### | |
##.....o# | |
#*.#*o.*# | |
#*.o*#.*# | |
#o..p..## | |
######### | |
section Level 1-10 | |
message Level 1-10 - "Zig" | |
#...#### | |
#p..#..# | |
#***o..# | |
#..o...# | |
#.o#.#.# | |
#......# | |
######## | |
section # Octant 2 # | |
message Septant 2 - "Friends Amidst Trust" | |
message "After spending some time together, we advanced onwards towards the next section of this maze." | |
message "We discovered a scheme where we have to let go of each other to progress, to guide before to split." | |
message "And some of our companions were too afraid to make such faithful trust, clinging to us like leeches." | |
section Level 2-1 | |
message Level 2-1 - "Incompatible" | |
####k#### | |
#..#.#..# | |
#...*...# | |
#.......# | |
#...#...# | |
#...o...# | |
####p#### | |
section Level 2-2 | |
message Level 2-2 - "Cornered Crate" | |
######### | |
#.*.....# | |
#.k.....# | |
#.......# | |
######..# | |
#.......# | |
#.o.p...# | |
#.......# | |
######### | |
section Level 2-3 | |
message Level 2-3 - "Leniency" | |
######### | |
#p..*#..# | |
##.....o# | |
#......## | |
#o.....## | |
#.##*..k# | |
######### | |
section Level 2-4 | |
message Level 2-4 - "Pullaway" | |
######## | |
#......# | |
#.###ok# | |
#......# | |
#..##### | |
#p....&# | |
######## | |
section Level 2-5 | |
message Level 2-5 - "Out of My Way" | |
..#o...o#&h | |
#&#*...*#.# | |
#.#.....#*# | |
h.#p&o.k#*. | |
section Level 2-6 | |
message Level 2-6 - "Turn of Phrase" | |
######### | |
##....ok# | |
#.#....o# | |
#...#...# | |
#&p...#.# | |
#.&....## | |
######### | |
section Level 2-7 | |
message Level 2-7 - "Border" | |
.########. | |
.#&.....k. | |
...&...... | |
#...&....# | |
#....&...# | |
......&... | |
.p.....&#. | |
.########. | |
section Level 2-8 | |
message Level 2-8 - "Included" | |
####### | |
#o.#..# | |
#..&..# | |
##&p&k# | |
#..&..# | |
#o.#..# | |
####### | |
section Level 2-9 | |
message Level 2-9 - "Slander" | |
#o..## | |
#....# | |
#*&..# | |
#.*&.# | |
#..*&# | |
#....# | |
#k..p# | |
section Level 2-10 | |
message Level 2-10 - "Zag" | |
#...#### | |
#p..#..# | |
#&**k..# | |
#..o...# | |
#.o#.#.# | |
#o.....# | |
######## | |
section # Octant 3 # | |
message Septant 3 - "Friends Amidst Barriers" | |
message "Every new crate felt like a new friend waiting to be told their story." | |
message "We were starting to gain a bearing towards this twisting maze." | |
message "However, they had anticipated this as our dear companions were blocked from following our lead." | |
section Level 3-1 | |
message Level 3-1 - "File Size Limit" | |
###### | |
#...## | |
#...o# | |
#...h# | |
###..# | |
#ph.*# | |
###### | |
section Level 3-2 | |
message Level 3-2 - "HOPO" | |
######## | |
#o.....# | |
#*...h.# | |
#p.h...# | |
#*...h.# | |
#o.....# | |
######## | |
section Level 3-3 | |
message Level 3-3 - "Fitting In" | |
####### | |
#..h..# | |
#..h..# | |
#.##..o | |
#.##..# | |
#h##..# | |
#**...o | |
#p...## | |
####### | |
section Level 3-4 | |
message Level 3-4 - "Electrical Lanes" | |
##ph*h.h.ho## | |
#h.h.h*hoh.h# | |
#h.h.hoh*h.h# | |
##khoh.h.h*## | |
section Level 3-5 | |
message Level 3-5 - " | |
section Level 3-6 | |
message Level 3-6 - "Just Swap Around" | |
####### | |
....... | |
h.&...o | |
&p.h.ok | |
h.&...o | |
....... | |
####### | |
section Level 3-7 | |
message Level 3-7 - "Handholding" | |
########## | |
#..&....o# | |
#&p......# | |
#..&....o# | |
#...###..# | |
#.....h..# | |
#o.h.....# | |
########## | |
section Level 3-8 | |
message Level 3-8 - "3x3" | |
h#h#h#h#h | |
#o.o.ok.# | |
h.h.h.hkh | |
#*.*.&.o# | |
h.h.h.h.h | |
#..*.*.o# | |
h.h.h.h.h | |
#p...*.o# | |
h#h#h#h#h | |
section Level 3-9 | |
message Level 3-9 - "Surrounded" | |
########### | |
#o.......o# | |
#.h..*..h.# | |
#o..*.*..o# | |
#.h*.p.*h.# | |
#o..*.*..o# | |
#.h..*..h.# | |
#o.......o# | |
########### | |
section Level 3-10 | |
message Level 3-10 - "Ohohohoho" | |
########### | |
#..*.p.*..# | |
#..*...*..# | |
#..hh*hh..# | |
#.........# | |
#h..#h#..h# | |
#.........# | |
#ohohohoho# | |
########### | |
section # Octant 4 # | |
message Septant 4 - "Friends Amidst Faith" | |
section Level 4-1 | |
message Level 4-1 - "Hello (Second) Friend" | |
######### | |
#k......# | |
#o......# | |
######.a# | |
#*......# | |
#p......# | |
######### | |
section Level 4-2 | |
message Level 4-2 - "Get Off" | |
######### | |
#...o...# | |
#...&...# | |
#...p...# | |
#.......# | |
#.......# | |
#...b...# | |
######### | |
section Level 4-3 | |
message Level 4-3 - "Press Space to Wait" | |
(the level's title is self-explanatory lmao) | |
section Level 4-4 | |
message Level 4-4 - "Press Z to Undo" | |
(player is lured to a trap where the crate is pushed by the roomba making it inaccessible, making them have to undo) | |
section Level 4-5 | |
message Level 4-5 - "Press R to Restart" | |
(hehe, but also a level that combines the previous ideas to train the player) | |
section Level 4-6 | |
message Level 4-6 - "Noclip" | |
(use the "if a roomba goes away from this tile in the next turn, the player can go there in next turn" mechanic) | |
section Level 4-10 | |
message Level 4-10 - "What" | |
####### | |
#bb.bp# | |
#ab.ba# | |
#..a..# | |
#ab.aa# | |
#kb.bb# | |
####### | |
section # Octant 5 # | |
message Septant 5 - "Friends Amidst Enemies" | |
message "As we marched deeper into the bowels of this facility, we developed an affection towards our dear friend" | |
message "However, another lifeless being has greeted us." | |
message "With fiendly intents towards our great escape." | |
section Level 5-1 | |
message Level 5-1 - "Sort Out" | |
###### | |
#p...# | |
#.h..# | |
#.s..# | |
#*..o# | |
###### | |
section Level 5-2 | |
message Level 5-2 - "Human Life Limit" | |
###### | |
#ss.## | |
#s...o | |
#.h.h# | |
#.#..# | |
#p#s*# | |
###### | |
section Level 5-X | |
message Level 5-X - "Diamond Grid" | |
######### | |
#o..s..o# | |
#...*...# | |
#h.*p*.h# | |
#...*...# | |
#o..s..o# | |
######### | |
section # Octant 6 # | |
message Septant 6 - "Friends Amidst Loss" | |
message "The light in the facility had grown brighter, like the bond between us. Am I seeing things, or is my friend actually alive?" | |
message "Throughout all challenges we've faced, we've always been able to make it out together." | |
message "I am afraid of letting them go, yet I know they'll force me." | |
section Level 6-1 | |
message Level 6-1 - "Trench" | |
######### | |
#...x...# | |
#.*.x.o.# | |
#...x...# | |
#.p.x.*.# | |
#...x...# | |
######### | |
section Level 6-2 | |
message Level 6-2 - "Crate Loadout Division" | |
######## | |
##.h#### | |
#...*..# | |
#..#.h*# | |
#.p#.h.# | |
#..#h#h# | |
#....xx# | |
#.....*o | |
######## | |
section Level 6-3 | |
message Level 6-3 - "Swiss Floor" | |
######## | |
#kox..*# | |
#o.....# | |
#x.hh..# | |
#phx...# | |
#&x..h*# | |
######## | |
section # Octant 7 # | |
section # Octant 8 # | |
section # Finale # | |
message Finale - "Friends Amidst Friends" | |
message "After a long, perilous journey with many highs and lows." | |
message "We were finally on the home stretch, only having to endure one last challenge." | |
message "I can do this. We can. Together." | |
section Level F-1 | |
message Level F-1 - "Helping Hand" | |
####### | |
#....o# | |
#....## | |
#p....# | |
#*...k# | |
#p...k# | |
####### | |
section Level F-2 | |
message Level F-2 - "Dual Mirror" | |
######### | |
#p....h.# | |
#...h...# | |
#&h....o# | |
######### | |
#ps....o# | |
#...s...# | |
#&....s.# | |
######### | |
section Level F-3 | |
message Level F-3 - "Hook" | |
########## | |
#*..##...# | |
#..sh....# | |
#p..s...p# | |
#...#h.ss# | |
#o..##.x*# | |
########## | |
section Level F-4 | |
message Level F-4 - "Wall" | |
###### | |
#p.oo# | |
#....# | |
#&**&# | |
#....# | |
#oo.p# | |
###### | |
section Level F-5 | |
message Level F-5 - "O.K." | |
####### | |
#k.p.o# | |
#.....# | |
#**.**# | |
#.....# | |
#o.p.k# | |
####### | |
section Level F-6 | |
message Level F-6 - "Kopkxs" | |
############ | |
k.xh...s.*.. | |
op.s..h....p | |
k.xh...s.*.. | |
############ | |
section Level F-10 | |
message Level F-10 - "K.O." | |
####### | |
#k.*.*# | |
#..p..# | |
#op.p*# | |
#..p..# | |
#o.o.k# | |
####### | |
section # The End # | |
message Haha funni story for ending | |
section # Credits # | |
message Credits - "Better Off Together" | |
message Constant: Game Designer, Puzzle Designer, 10% Programming | |
message Raz: 90% Programming, Sprite Animator, QA Playtester | |
message Prod: Programming Assistant, QA Playtester, MVP | |
message Dedicated to Prism Ghost for bonding us! This all wouldn't happen without you <3 | |
message Special thanks to PuzzleScript for creating a beginner-friendly engine and allowing us to steal code. :P | |
message Thanks for playing our first game! :D | |
message ...unless... | |
section # Out of Bounds # | |
message Out of Bounds - "Friends Amidst Secrets" | |
section Level B-10 | |
message Level B-10 - "Thanks for Playing" | |
*...........* | |
....oo.oo.... | |
...o**o**o... | |
..o*..*..*o.. | |
.o*.......*o. | |
..o*..p..*o.. | |
...o*...*o... | |
....o*.*o.... | |
.....o*o..... | |
......o...... | |
*.....k.....* |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment