player object
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from untitled import content, migration, model, persistence, rules
|
from untitled import content, model, persistence, rules
|
||||||
|
|
||||||
|
|
||||||
def test_save_load_roundtrip(tmp_path):
|
def test_save_load_roundtrip(tmp_path):
|
||||||
@@ -28,23 +28,23 @@ def test_save_load_roundtrip(tmp_path):
|
|||||||
assert loaded.version == content.SAVE_VERSION
|
assert loaded.version == content.SAVE_VERSION
|
||||||
|
|
||||||
|
|
||||||
def test_migration():
|
# def test_migration():
|
||||||
v1 = {
|
# v1 = {
|
||||||
"version": 1,
|
# "version": 1,
|
||||||
"cat": {
|
# "cat": {
|
||||||
"name": "Fry",
|
# "name": "Fry",
|
||||||
"traits": {
|
# "traits": {
|
||||||
"size": "tiny",
|
# "size": "tiny",
|
||||||
"color": "tuxedo",
|
# "color": "tuxedo",
|
||||||
"eyes": "blue",
|
# "eyes": "blue",
|
||||||
"personality": "judges you silently",
|
# "personality": "judges you silently",
|
||||||
},
|
# },
|
||||||
},
|
# },
|
||||||
}
|
# }
|
||||||
result = migration.migrate(v1)
|
# result = migration.migrate(v1)
|
||||||
assert result["version"] == content.SAVE_VERSION
|
# assert result["version"] == content.SAVE_VERSION
|
||||||
assert result["cat"]["fullness"] == 100
|
# assert result["cat"]["fullness"] == 100
|
||||||
assert "last_updated" in result["cat"]
|
# assert "last_updated" in result["cat"]
|
||||||
|
|
||||||
|
|
||||||
def test_decay_and_replenish():
|
def test_decay_and_replenish():
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
STUDIO_NAME = "Untitled Randomness Studios" # Titled Randomness Studios
|
STUDIO_NAME = "Untitled Randomness Studios" # Titled Randomness Studios
|
||||||
GAME_NAME = "Untitled Cat Game" # Titled Cat Game
|
GAME_NAME = "Untitled Cat Game" # Titled Cat Game
|
||||||
|
|
||||||
SAVE_VERSION = 2
|
SAVE_VERSION = 1
|
||||||
|
|
||||||
HUNGER_DECAY_PER_HOUR = 5
|
HUNGER_DECAY_PER_HOUR = 5
|
||||||
BASE_HAPPINESS_DECAY_PER_HOUR = 2
|
BASE_HAPPINESS_DECAY_PER_HOUR = 2
|
||||||
HUNGER_SADNESS_THRESHOLD = 30
|
HUNGER_SADNESS_THRESHOLD = 30
|
||||||
HUNGER_SADNESS_PENALTY_PER_HOUR = 5
|
HUNGER_SADNESS_PENALTY_PER_HOUR = 5
|
||||||
|
|
||||||
|
BASE_INVENTORY = {"food": 0, "medicine": 0, "catnip": 0}
|
||||||
|
|
||||||
CAT_COLORS = [
|
CAT_COLORS = [
|
||||||
"orange tabby",
|
"orange tabby",
|
||||||
"black",
|
"black",
|
||||||
|
|||||||
@@ -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):
|
_MIGRATIONS = {}
|
||||||
data["cat"]["fullness"] = 100
|
|
||||||
data["cat"]["happiness"] = 100
|
|
||||||
data["cat"]["last_updated"] = time.time()
|
|
||||||
data["version"] = 2
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
_MIGRATIONS = {1: _v1_to_v2}
|
|
||||||
|
|
||||||
|
|
||||||
def migrate(data):
|
def migrate(data):
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import time
|
import time
|
||||||
from dataclasses import asdict, dataclass, field
|
from dataclasses import asdict, dataclass, field
|
||||||
|
|
||||||
|
from untitled import content
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Cat:
|
class Cat:
|
||||||
@@ -21,13 +23,31 @@ class Cat:
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Save:
|
class Player:
|
||||||
version: int
|
money: int = 0
|
||||||
cat: Cat
|
inventory: dict = field(default_factory=lambda: dict(content.BASE_INVENTORY))
|
||||||
|
|
||||||
def to_dict(self):
|
def to_dict(self):
|
||||||
return asdict(self)
|
return asdict(self)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def from_dict(data):
|
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"]),
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user