You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.5 KiB
Python
97 lines
2.5 KiB
Python
# A Void - Functions
|
|
# by Gorgs Prc
|
|
#
|
|
# Adaptation to IF by log
|
|
# ------------------
|
|
|
|
# Variables
|
|
# ------------------
|
|
|
|
import random
|
|
import os
|
|
import sys
|
|
import json
|
|
from time import sleep
|
|
|
|
global current_room
|
|
global visited_rooms
|
|
global viewedthings
|
|
current_room = "room"
|
|
visited_rooms=[]
|
|
viewedthings=[]
|
|
|
|
with open('voiddata.json', 'r') as f:
|
|
voiddata = json.load(f)
|
|
|
|
class bcolors:
|
|
BLUE = '\033[94m'
|
|
CYAN = '\033[96m'
|
|
GREEN = '\033[92m'
|
|
YELLOW = '\033[93m'
|
|
RED = '\033[91m'
|
|
MAGENTA = '\x1b[35m'
|
|
ENDC = '\033[0m'
|
|
BOLD = '\033[1m'
|
|
UNDERLINE = '\033[4m'
|
|
|
|
|
|
# Funtions
|
|
# ------------------
|
|
|
|
def delayPrint(s):
|
|
for c in s:
|
|
sys.stdout.write(c)
|
|
sys.stdout.flush()
|
|
sleep(0.01)
|
|
print("\n")
|
|
sys.stdout.write(">")
|
|
|
|
def interact(thing):
|
|
print("")
|
|
delayPrint(voiddata[current_room]["items"][thing])
|
|
viewedthings.append(thing)
|
|
|
|
def look():
|
|
roomstring = ", a ".join(voiddata[current_room]["items"])
|
|
delayPrint(f"Looking around this spot, you sight a {roomstring}")
|
|
|
|
def portflip(rooms):
|
|
global current_room
|
|
rooms.remove(current_room)
|
|
current_room = "bar"
|
|
rooms.append(current_room)
|
|
delayPrint("""COMMANDANT (vigorously nodding): That's right, a port-flip! Any port-flip in a storm, what? Ha ha ha!
|
|
BARMAN (as though in pain): I . . . don't .. . think . . . any . .. in .. . stock . . .
|
|
COMMANDANT (jumping up off his stool): What, no port-flips! But only last month I had (laboriously counting out) 1, 2, no, 3 port-flips in this bar!
|
|
BARMAN (almost inaudibly): But now . . . now . . . you can't. . . """)
|
|
|
|
def defaultReply():
|
|
messages = ["You cannot do that", "What?", "That won't work"]
|
|
return random.choice(messages)
|
|
|
|
def nextroom(rooms):
|
|
global current_room
|
|
sleep(1)
|
|
delayPrint(bcolors.RED + voiddata[current_room]["death"] + bcolors.ENDC)
|
|
sleep(1)
|
|
rooms.remove(current_room)
|
|
if len(rooms) == 0:
|
|
gameover()
|
|
current_room = random.choice(rooms)
|
|
print(bcolors.CYAN + "-"*79)
|
|
sleep(1)
|
|
delayPrint("\n" + " "*40 + voiddata[current_room]["intro"])
|
|
print("-"*79 + bcolors.ENDC)
|
|
sleep(1)
|
|
delayPrint(voiddata[current_room]["message"])
|
|
|
|
def gameover():
|
|
print(bcolors.RED + "-"*79 + "\n" + "-"*80 + "\n" + "-"*80 + "\n")
|
|
sleep(1)
|
|
print("\n" + " "*28 + " / \ / \ / \ ")
|
|
print(" "*28 + "( f | i | n )")
|
|
print(" "*28 + " \_/ \_/ \_/ " + "\n")
|
|
sleep(1)
|
|
print("-"*79 + "\n" + "-"*80 + "\n" + "-"*80 + "\n" + bcolors.ENDC)
|
|
exit()
|