import pathlib from pydantic import BaseModel from base_mob import BaseMob class CharacterModel(BaseModel): name: str max_pv: int current_pv: int strength: int protection: int speed: int mob_type: int def save_character(character: BaseMob) -> str: filename = f'{character.name}.json' character_model = CharacterModel( name=character.name, max_pv=character.max_pv, current_pv=character.current_pv, strength=character.strength, protection=character.protection, speed=character.speed, mob_type=character.mob_type ) pathlib.Path(filename).write_text( data=character_model.model_dump_json(indent=4), encoding='utf-8' ) return filename def load_character(name: str) -> BaseMob | None: json_data = pathlib.Path(f'{name}.json').read_text(encoding='utf-8') character_model = CharacterModel.model_validate_json(json_data) return BaseMob( name=character_model.name, max_pv=character_model.max_pv, strength=character_model.strength, protection=character_model.protection, speed=character_model.speed, mob_type=character_model.mob_type, )