roster: extract to a separate module

This commit is contained in:
rr- committed 2018-11-05 21:04:39 +01:00
1 parent 136db3ca14
commit bec02d2b2c
5 files changed
+28 -18

No files matched your search

+3 -8
View File
@@ -1,25 +1,20 @@
import pickle
from pathlib import Path from pathlib import Path
import xdg import xdg
from pqcli.mechanic import Roster from pqcli.roster import Roster
from pqcli.ui import Ui from pqcli.ui import Ui
SAVE_PATH = Path(xdg.XDG_CONFIG_HOME) / "pqcli" / "save.dat" SAVE_PATH = Path(xdg.XDG_CONFIG_HOME) / "pqcli" / "save.dat"
def main() -> None: def main() -> None:
if SAVE_PATH.exists(): roster = Roster.load(SAVE_PATH)
roster = pickle.loads(SAVE_PATH.read_bytes())
else:
roster = Roster()
try: try:
Ui(roster).run() Ui(roster).run()
finally: finally:
SAVE_PATH.parent.mkdir(parents=True, exist_ok=True) roster.save(SAVE_PATH)
SAVE_PATH.write_bytes(pickle.dumps(roster))
if __name__ == "__main__": if __name__ == "__main__":
-8
View File
@@ -757,14 +757,6 @@ def monster_task(
return KillTask(f"Executing {result}", duration, monster=monster) 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: class StatsBuilder:
def __init__(self) -> None: def __init__(self) -> None:
self.history: T.List[Stats] = [] 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 import urwid
from pqcli.mechanic import Roster from pqcli.roster import Roster
from pqcli.ui.exit_view import ExitView from pqcli.ui.exit_view import ExitView
from pqcli.ui.new_game_view import NewGameView from pqcli.ui.new_game_view import NewGameView
from pqcli.ui.roster_view import RosterView from pqcli.ui.roster_view import RosterView
+1 -1
View File
@@ -2,7 +2,7 @@ import typing as T
import urwid import urwid
from pqcli.mechanic import Roster from pqcli.roster import Roster
from pqcli.ui.button import MenuButton from pqcli.ui.button import MenuButton