This repository has been archived on 2026-06-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
The-Adventure-Game/classes/GameBoard.py
T
daniel156161 d67e7a44cd add load and save functions to classes
move files
update character creater to allowing to stack  classes
2024-04-04 03:35:44 +02:00

64 lines
1.9 KiB
Python

from classes.Character.CharacterCreater import CharacterCreater
from classes.SavedState import SavedState
from classes.Map import Map
from simple_term_menu import TerminalMenu
from tabulate import tabulate
import logging
import os
LOGGING = logging.getLogger(__name__)
class GameBoard:
def __init__(self, config:dict, save_state_file:dict, map_file:dict):
self.config = config
self.save_state_file = save_state_file
self.map_file = map_file
def print_story(self, story:str):
print(story)
def find_game_state(self):
if os.path.exists(self.save_state_file['path']):
self.saved_state = SavedState.load_from_file(self.save_state_file)
else:
self.saved_state = SavedState()
self.saved_state.add_player(CharacterCreater.create_character(self.config["player"], self.config["create_character_message"]))
self.saved_state.save_to_file(self.save_state_file)
print()
self.map = Map.load_from_file(self.map_file)
return self.saved_state
def save_game_state(self):
self.saved_state.save_to_file(self.save_state_file)
def replace_keyword_into_place_story(self, place:dict):
story:str = place['story']
story.replace("SPECIES", self.saved_state.get_player().get_species_name())
story.replace("CHARACTER_NAME", self.saved_state.get_player().get_name())
return story
def by_the_place(self):
return self.map.by_the_place(self.saved_state.get_place(), self.saved_state.get_chapter(), self.saved_state.get_story_moves())
def user_input(self):
while True:
try:
place = self.by_the_place()
LOGGING.debug(place)
print(self.replace_keyword_into_place_story(place))
print()
choice = input(f"{place['name']} || What do you like to do? ")
if choice != None:
break
LOGGING.debug(choice)
self.check_user_input(choice)
except KeyboardInterrupt:
break
def check_user_input(self, choice:str):
pass