Merge branch 'map_generation' into 'master'
Map generation Closes #5 See merge request ynerant/squirrel-battle!35
This commit is contained in:
@ -5,7 +5,6 @@ import curses
|
||||
import json
|
||||
from json import JSONDecodeError
|
||||
import os
|
||||
from random import randint
|
||||
import sys
|
||||
from typing import Any, List, Optional
|
||||
|
||||
@ -13,6 +12,7 @@ from . import menus
|
||||
from .entities.player import Player
|
||||
from .enums import DisplayActions, GameMode, KeyValues
|
||||
from .interfaces import Logs, Map
|
||||
from .mapgeneration import broguelike
|
||||
from .resources import ResourceManager
|
||||
from .settings import Settings
|
||||
from .translations import gettext as _, Translator
|
||||
@ -55,16 +55,14 @@ class Game:
|
||||
"""
|
||||
Creates a new game on the screen.
|
||||
"""
|
||||
# TODO generate a new map procedurally
|
||||
self.maps = []
|
||||
self.map_index = 0
|
||||
self.map = Map.load(ResourceManager.get_asset_path("example_map.txt"))
|
||||
self.map = broguelike.Generator().run()
|
||||
self.map.logs = self.logs
|
||||
self.logs.clear()
|
||||
self.player = Player()
|
||||
self.map.add_entity(self.player)
|
||||
self.player.move(self.map.start_y, self.map.start_x)
|
||||
self.map.spawn_random_entities(randint(3, 10))
|
||||
self.inventory_menu.update_player(self.player)
|
||||
|
||||
@property
|
||||
@ -201,9 +199,9 @@ class Game:
|
||||
self.map_index = 0
|
||||
return
|
||||
while self.map_index >= len(self.maps):
|
||||
# TODO: generate a new map
|
||||
self.maps.append(Map.load(ResourceManager.get_asset_path(
|
||||
"example_map_2.txt")))
|
||||
m = broguelike.Generator().run()
|
||||
m.logs = self.logs
|
||||
self.maps.append(m)
|
||||
new_map = self.map
|
||||
new_map.floor = self.map_index
|
||||
old_map.remove_entity(self.player)
|
||||
@ -420,10 +418,13 @@ class Game:
|
||||
try:
|
||||
self.map_index = d["map_index"]
|
||||
self.maps = [Map().load_state(map_dict) for map_dict in d["maps"]]
|
||||
for i, m in enumerate(self.maps):
|
||||
m.floor = i
|
||||
m.logs = self.logs
|
||||
except KeyError as error:
|
||||
self.message = _("Some keys are missing in your save file.\n"
|
||||
"Your save seems to be corrupt. It got deleted.")\
|
||||
+ f"\n{error}"
|
||||
+ f"\n{error}"
|
||||
os.unlink(ResourceManager.get_config_path("save.json"))
|
||||
self.display_actions(DisplayActions.UPDATE)
|
||||
return
|
||||
|
Reference in New Issue
Block a user