/// <summary> /// Loads encounters from the default save file location /// </summary> public IEnumerable <EncounterModel> LoadEncounters(IEnumerable <CharacterModel> characters, IEnumerable <ConditionModel> conditions, IEnumerable <MonsterModel> monsters) { List <EncounterModel> encounters = new List <EncounterModel>(); string path = Path.Combine(_saveDataFolder, _encountersSaveFileName); if (File.Exists(path)) { IEncounterPersister encounterPersister = null; byte[] encounterBytes = File.ReadAllBytes(path); int version = BitConverter.ToInt32(encounterBytes.Take(4).ToArray(), 0); if (version == 1) { encounterPersister = DependencyResolver.Resolve <Version1.EncounterPersister>(); } if (encounterPersister != null) { encounters = encounterPersister.GetEncounters(encounterBytes, characters, conditions, monsters).ToList(); } } return(encounters); }
/// <summary> /// Gets a character from the byte array using selected resources /// </summary> public EncounterModel GetEncounter(byte[] encounterBytes, IEnumerable <CharacterModel> characters, IEnumerable <ConditionModel> conditions, IEnumerable <MonsterModel> monsters) { EncounterModel encounter = null; IEncounterPersister encounterPersister = DependencyResolver.Resolve <Version1.EncounterPersister>(); encounter = encounterPersister.GetEncounters(encounterBytes, characters, conditions, monsters).First(); return(encounter); }
/// <summary> /// Gets character bytes /// </summary> public byte[] GetEncounterBytes(EncounterModel encounter) { byte[] encounterBytes = null; IEncounterPersister encounterPersister = DependencyResolver.Resolve <Version1.EncounterPersister>(); encounterBytes = encounterPersister.GetBytes(new EncounterModel[] { encounter }); return(encounterBytes); }
/// <summary> /// Saves encounters to the default save file location /// </summary> public void SaveEncounters(IEnumerable <EncounterModel> encounters) { string path = Path.Combine(_saveDataFolder, _encountersSaveFileName); IEncounterPersister encounterPersister = DependencyResolver.Resolve <Version1.EncounterPersister>(); byte[] encounterBytes = encounterPersister.GetBytes(encounters); File.WriteAllBytes(path, encounterBytes); }