diff --git a/tests/test_persistence.py b/tests/test_persistence.py index 1cdc3ff..747e86e 100644 --- a/tests/test_persistence.py +++ b/tests/test_persistence.py @@ -1,6 +1,6 @@ import pytest -from untitled import content, migration, model, persistence, rules +from untitled import content, model, persistence, rules def test_save_load_roundtrip(tmp_path): @@ -28,23 +28,23 @@ def test_save_load_roundtrip(tmp_path): assert loaded.version == content.SAVE_VERSION -def test_migration(): - v1 = { - "version": 1, - "cat": { - "name": "Fry", - "traits": { - "size": "tiny", - "color": "tuxedo", - "eyes": "blue", - "personality": "judges you silently", - }, - }, - } - result = migration.migrate(v1) - assert result["version"] == content.SAVE_VERSION - assert result["cat"]["fullness"] == 100 - assert "last_updated" in result["cat"] +# def test_migration(): +# v1 = { +# "version": 1, +# "cat": { +# "name": "Fry", +# "traits": { +# "size": "tiny", +# "color": "tuxedo", +# "eyes": "blue", +# "personality": "judges you silently", +# }, +# }, +# } +# result = migration.migrate(v1) +# assert result["version"] == content.SAVE_VERSION +# assert result["cat"]["fullness"] == 100 +# assert "last_updated" in result["cat"] def test_decay_and_replenish(): diff --git a/untitled/content.py b/untitled/content.py index bbcb926..5e39f38 100644 --- a/untitled/content.py +++ b/untitled/content.py @@ -1,12 +1,15 @@ STUDIO_NAME = "Untitled Randomness Studios" # Titled Randomness Studios GAME_NAME = "Untitled Cat Game" # Titled Cat Game -SAVE_VERSION = 2 +SAVE_VERSION = 1 HUNGER_DECAY_PER_HOUR = 5 BASE_HAPPINESS_DECAY_PER_HOUR = 2 HUNGER_SADNESS_THRESHOLD = 30 HUNGER_SADNESS_PENALTY_PER_HOUR = 5 + +BASE_INVENTORY = {"food": 0, "medicine": 0, "catnip": 0} + CAT_COLORS = [ "orange tabby", "black", diff --git a/untitled/migration.py b/untitled/migration.py index abf628e..b1f000c 100644 --- a/untitled/migration.py +++ b/untitled/migration.py @@ -1,15 +1,13 @@ -import time + +# def _v1_to_v2(data): +# data["cat"]["fullness"] = 100 +# data["cat"]["happiness"] = 100 +# data["cat"]["last_updated"] = time.time() +# data["version"] = 2 +# return data -def _v1_to_v2(data): - data["cat"]["fullness"] = 100 - data["cat"]["happiness"] = 100 - data["cat"]["last_updated"] = time.time() - data["version"] = 2 - return data - - -_MIGRATIONS = {1: _v1_to_v2} +_MIGRATIONS = {} def migrate(data): diff --git a/untitled/model.py b/untitled/model.py index c832bfe..b27ad27 100644 --- a/untitled/model.py +++ b/untitled/model.py @@ -1,6 +1,8 @@ import time from dataclasses import asdict, dataclass, field +from untitled import content + @dataclass class Cat: @@ -21,13 +23,31 @@ class Cat: @dataclass -class Save: - version: int - cat: Cat +class Player: + money: int = 0 + inventory: dict = field(default_factory=lambda: dict(content.BASE_INVENTORY)) def to_dict(self): return asdict(self) @staticmethod def from_dict(data): - return Save(data["version"], Cat.from_dict(data["cat"])) + return Player(**data) + + +@dataclass +class Save: + version: int + cat: Cat + player: Player + + def to_dict(self): + return asdict(self) + + @staticmethod + def from_dict(data): + return Save( + data["version"], + Cat.from_dict(data["cat"]), + Player.from_dict(data["player"]), + )