def displayPacks(self, numPages=1, page=0): self.disp.clearScreen() self.disp.displayHeader("Data Packs") startOptions = page * 9 endOptions = 9 + (page * 9) listOfOptions = self.dataPackSettings["packsToLoad"][ startOptions:endOptions] firstOption = listOfOptions.pop(0) enabled = "ENABLED" if firstOption[1] else "DISABLED" firstOption = loadJson(self.dataPackSettings["folder"] + firstOption[0] + "/meta.json") packName = firstOption["name"] packDesc = firstOption["desc"] packAuth = firstOption["author"] packType = firstOption["packType"].upper() self.disp.display(f'1. {packName:<50} {enabled:>18}') self.disp.display(f'\tPack Type: {packType}', 0) self.disp.display(f'\t{packDesc}', 0) self.disp.display(f'\tBy: {packAuth}', 0) i = 1 for pack in listOfOptions: i += 1 enabled = "ENABLED" if pack[1] else "DISABLED" pack = loadJson(self.dataPackSettings["folder"] + pack[0] + "meta.json") packName = pack["name"] packDesc = pack["desc"] packAuth = pack["author"] self.disp.display(f'{i}. {packName:<50} {enabled:>18}') self.disp.display(f'\t{packDesc}', 0) self.disp.display(f'\tBy {packAuth}', 0) self.disp.display( "Input pack # to toggle. Changes to enabled data packs take effect on screen exit." ) pagebreak = 1 if page < numPages: self.disp.display("12. for next page of settings") pagebreak = 0 if page > 0: self.disp.display("11. for previous page of settings", pagebreak) pagebreak = 0 self.disp.display("0. to exit", pagebreak) self.disp.closeDisplay() return listOfOptions
def loadAllDataFiles(self): print("Loading Datapack...") print("\tLoading Tilesets...") for tileset in self.metadata["Tiles"]: print("\t\t{}".format(tileset)) tileFolder = self.metadata["TileFolder"] loadString = "{}{}{}.json".format(self.folder, tileFolder, tileset) tilesetfile = loadJson(loadString) for tile in tilesetfile["Tiles"]: self.tiles[tile["tileid"]] = tile print("\tLoading Regions...") for region in self.metadata["Regions"]: print("\t\t{}".format(region)) regionFolder = self.metadata["RegionFolder"] loadString = "{}{}{}.json".format(self.folder, regionFolder, region) self.regions[region] = loadJson(loadString) print("\tLoading Procs...") for proc in self.metadata["Procs"]: print("\t\t{}".format(region)) procFolder = self.metadata["ProcFolder"] loadString = "{}{}{}.json".format(self.folder, procFolder, proc) self.procs[proc] = loadJson(loadString) print("Finished loading datapack files.")
def __init__(self, settings, debug=False): self.settings = settings self.debug = debug # Get some display variables self.mapSettings = settings.getSetting("MapScreen") self.mapWidth = self.mapSettings["ScreenWidth"] self.mapHeight = self.mapSettings["ScreenWidth"] self.hudSettings = settings.getSetting("HUDScreen") self.hudWidth = self.hudSettings["ScreenWidth"] self.hudHeight = self.hudSettings["ScreenWidth"] self.toastSettings = settings.getSetting("ToastScreen") self.toastWidth = self.toastSettings["ScreenWidth"] self.toastHeight = self.toastSettings["ScreenHeight"] # Create the toasting object self.toaster = ToastObject(self.toastHeight, self.toastWidth) # Get data pack info resFolder = self.settings.getSetting("ResourceFolder") dataPackFolder = "{}{}/".format( resFolder, self.settings.getSetting("DefaultDataPack")) dataPackMetaFile = "{}meta.json".format(dataPackFolder) loadedDataPackMetaFile = loadJson(dataPackMetaFile) dataPackInfo = DatapackObject(loadedDataPackMetaFile, dataPackFolder) # Create the gamemap self.gameMap = MapObject(dataPackInfo, self.mapWidth, self.mapHeight) self.gameMap.generateRegion() # Create the player playername = self.settings.getSetting("DefaultPlayerName") self.player = PlayerObject(playername) self.player.coordX = int(self.mapWidth / 2) - 1 self.player.coordY = int(self.mapHeight / 2) - 1 self.toDraw = [] self.backlog = [] self.toaster.toast("Welcome to Roguelike Me") self.toaster.toast("This game is an obvious work in progress.")
saveJson(settingsFile, game.settings) game.initialLoad(RES_FOLDER, SETTINGS) def openDataPacks(game, settingsFile): game.openDataPacks() saveJson(settingsFile, game.settings) game.initialLoad(RES_FOLDER, SETTINGS) # This code runs with main.py is opened if __name__ == "__main__": # Loads some resource stuff RES_FOLDER = "res/" SETTINGS_FILE = RES_FOLDER + "settings.json" SETTINGS = loadJson("{}".format(SETTINGS_FILE)) # Inital game / menu loading game = Game() game.initialLoad(RES_FOLDER, SETTINGS) appRunning = True while appRunning and game.disp.window_is_open: game.displayMainMenu() try: # cmd = int(input()) cmd = game.disp.get_input(True) print(cmd) except ValueError: cmd = -1 except:
def initialLoad(self, folder="res/", settingsdata={}): '''This does all of the heavy duty loading. Once this is complete, all game data is loaded until the game is closed, which cuts down on load times.''' self.cleanDataPackInfo() global DELAY, DEBUG, EVENTDELAY self.settings = settingsdata self.loadGameSettings() DELAY = self.settings["DELAY"] EVENTDELAY = self.settings["EVENTDELAY"] DEBUG = self.settings["DEBUG"] DISPLAYSETTINGS = self.settings["DISPLAYSETTINGS"] DEBUGDISPLAY = self.gameSettings["DEBUGDISPLAY"] # Set up the display with a delay and whether or not to debug if not self.displayIsInitialized: self.disp.initiate_window( f'Project: EMPTY v{self.settings["VERSION"]}', DISPLAYSETTINGS, DELAY, self.gameSettings["DELAYENABLED"], DEBUGDISPLAY) self.displayIsInitialized = True else: self.disp.set_settings(DISPLAYSETTINGS, DELAY, self.gameSettings["DELAYENABLED"], DEBUGDISPLAY) self.loadDataPackSettings() packs = self.dataPackSettings["packsToLoad"] self.starter = self.dataPackSettings["start"] print("\nLoading assets...") for pack in packs: if pack[1]: pack = pack[0] print("Loading pack \"{}\"...".format(pack)) self.packs[pack] = loadJson("%s%s/meta.json" % (folder, pack)) if "gameLogo" in self.packs[pack].keys(): self.logos.append(self.packs[pack]["gameLogo"]) if "gameDesc" in self.packs[pack].keys(): for desc in self.packs[pack]["gameDesc"]: self.descs.append(desc) # Asset loading for w in self.packs[pack]["weapons"]: self.weapons[w] = loadJson("%s%s/weapons/%s.json" % (folder, pack, w)) self.disp.dprint("Loaded asset %s" % w) for a in self.packs[pack]["armor"]: self.armor[a] = loadJson("%s%s/armor/%s.json" % (folder, pack, a)) self.disp.dprint("Loaded asset %s" % a) for m in self.packs[pack]["misc"]: self.misc[m] = loadJson("%s%s/misc/%s.json" % (folder, pack, m)) self.disp.dprint("Loaded asset %s" % m) for a in self.packs[pack]["areas"]: self.areas[a] = loadJson("%s%s/areas/%s.json" % (folder, pack, a)) self.disp.dprint("Loaded asset %s" % a) for r in self.packs[pack]["races"]: raceData = loadJson("%s%s/races/%s.json" % (folder, pack, r)) self.races[raceData["id"]] = raceData self.disp.dprint("Loaded asset %s" % r) for n in self.packs[pack]["npcs"]: self.npcs[n] = loadJson("%s%s/npcs/%s.json" % (folder, pack, n)) self.disp.dprint("Loaded asset %s" % n) for e in self.packs[pack]["enemies"]: self.enemies[e] = loadJson("%s%s/enemies/%s.json" % (folder, pack, e)) self.disp.dprint("Loaded asset %s" % e) for q in self.packs[pack]["quests"]: self.quests[q] = loadJson("%s%s/quests/%s.json" % (folder, pack, q)) self.disp.dprint("Loaded asset %s" % q) for e in self.packs[pack]["events"]: self.events[e] = loadJson("%s%s/events/%s.json" % (folder, pack, e)) self.disp.dprint("Loaded asset %s" % e) for m in self.packs[pack]["modifiers"]: mods = loadJson("%s%s/%s.json" % (folder, pack, m)) for mod in mods.keys(): self.modifiers[mod] = Modifier(mod, mods[mod]) print("Finished loading assets.") # Adds all loaded quests into a list of possible quests, as well as # loads thems into actual objects for quest in self.quests.keys(): self.possibleQuests.append(Quest(self.quests[quest])) if DEBUG: for q in self.possibleQuests: self.disp.dprint(q) self.loadStartingArea() # Sets up the player variables and also gives the player some starting gear. # Spawns in an extra weapon for the player to switch between. self.loadPlayer() self.loaded = True
def __init__(self, fileLoc, loadResFolder=True): print("Loading settings from {}".format(fileLoc)) self.parsed = loadJson(fileLoc) if loadResFolder: self.resourceFolder = self.parsed["ResourceFolder"]