Added splash screen to ask whether player wants to start new game or load

This commit is contained in:
Kevin Kearney
2019-12-09 01:33:49 -06:00
parent d7b77553d2
commit c899293758
2 changed files with 44 additions and 10 deletions
+26 -7
View File
@@ -5,6 +5,15 @@ from termios import tcflush, TCIFLUSH
import time, sys, os
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
def splash():
print("0) New Game\n1) Load Game\n")
choice = get_num_options(2)
if choice == 1:
return "load"
else:
return "new"
def select_game():
with open(YAML_FILE, 'r') as stream:
data = yaml.safe_load(stream)
@@ -84,14 +93,25 @@ def play_aidungeon_2():
del story_manager.story
print("\n\n")
context, prompt = select_game()
console_print(instructions())
print("\nGenerating story...")
story_manager.start_new_story(prompt, context=context, upload_story=upload_story)
splash_choice = splash()
if splash_choice == "new":
print("\n\n")
context, prompt = select_game()
console_print(instructions())
print("\nGenerating story...")
story_manager.start_new_story(prompt, context=context, upload_story=upload_story)
print("\n")
console_print(str(story_manager.story))
else:
load_ID = input("What is the ID of the saved game? ")
result = story_manager.load_new_story(load_ID)
print("\nLoading Game...\n")
print(result)
print("\n")
console_print(str(story_manager.story))
while True:
tcflush(sys.stdin, TCIFLUSH)
action = input("> ")
@@ -209,4 +229,3 @@ def play_aidungeon_2():
if __name__ == '__main__':
play_aidungeon_2()
+18 -3
View File
@@ -152,13 +152,28 @@ class StoryManager():
def __init__(self, generator):
self.generator = generator
self.story = None
def start_new_story(self, story_prompt, context="", game_state=None, upload_story=False):
block = self.generator.generate(context + story_prompt)
block = cut_trailing_sentence(block)
self.story = Story(context + story_prompt + block, context=context, game_state=game_state, upload_story=upload_story)
return self.story
def load_new_story(self, story_id):
file_name = "story" + story_id + ".json"
cmd = "gsutil cp gs://aidungeonstories/" + file_name + " ."
os.system(cmd)
exists = os.path.isfile(file_name)
if exists:
with open(file_name, 'r') as fp:
game = json.load(fp)
self.story = Story("")
self.story.init_from_dict(game)
return str(self.story)
else:
return "Error: save not found."
def load_story(self, story, from_json=False):
if from_json:
self.story = Story("")
@@ -281,4 +296,4 @@ class ConstrainedStoryManager(StoryManager):
action_result = phrase + " " + self.generator.generate(prompt + " " + phrase, options)
action, result = split_first_sentence(action_result)
return action, result
return action, result