roster: extract to a separate module

This commit is contained in:
rr-
2018-11-05 21:04:39 +01:00
parent 136db3ca14
commit bec02d2b2c
5 changed files with 28 additions and 18 deletions
+3 -8
View File
@@ -1,25 +1,20 @@
import pickle
from pathlib import Path
import xdg
from pqcli.mechanic import Roster
from pqcli.roster import Roster
from pqcli.ui import Ui
SAVE_PATH = Path(xdg.XDG_CONFIG_HOME) / "pqcli" / "save.dat"
def main() -> None:
if SAVE_PATH.exists():
roster = pickle.loads(SAVE_PATH.read_bytes())
else:
roster = Roster()
roster = Roster.load(SAVE_PATH)
try:
Ui(roster).run()
finally:
SAVE_PATH.parent.mkdir(parents=True, exist_ok=True)
SAVE_PATH.write_bytes(pickle.dumps(roster))
roster.save(SAVE_PATH)
if __name__ == "__main__":
-8
View File
@@ -757,14 +757,6 @@ def monster_task(
return KillTask(f"Executing {result}", duration, monster=monster)
class Roster:
def __init__(self) -> None:
self.players: T.List[Player] = []
def add_player(self, player: Player) -> None:
self.players.append(player)
class StatsBuilder:
def __init__(self) -> None:
self.history: T.List[Stats] = []
+23
View File
@@ -0,0 +1,23 @@
import pickle
import typing as T
from pathlib import Path
from pqcli.mechanic import Player
class Roster:
def __init__(self) -> None:
self.players: T.List[Player] = []
def add_player(self, player: Player) -> None:
self.players.append(player)
@staticmethod
def load(path: Path) -> "Roster":
if path.exists():
return pickle.loads(path.read_bytes())
return Roster()
def save(self, path: Path) -> None:
path.parent.mkdir(parents=True, exist_ok=True)
path.write_bytes(pickle.dumps(self))
+1 -1
View File
@@ -2,7 +2,7 @@ import typing as T
import urwid
from pqcli.mechanic import Roster
from pqcli.roster import Roster
from pqcli.ui.exit_view import ExitView
from pqcli.ui.new_game_view import NewGameView
from pqcli.ui.roster_view import RosterView
+1 -1
View File
@@ -2,7 +2,7 @@ import typing as T
import urwid
from pqcli.mechanic import Roster
from pqcli.roster import Roster
from pqcli.ui.button import MenuButton