internal static void FileOutput(this GameMasterModel gameMasterModel, ILogger logger) { var serializedData = JsonConvert.SerializeObject(gameMasterModel); var sfd = new SaveFileDialog { Filter = "Everyone is John File (*.john)|*.john", DefaultExt = "john", AddExtension = true }; if (sfd.ShowDialog() == true) { try { var path = Path.GetFullPath(sfd.FileName); File.WriteAllText(path, serializedData); logger.LogDataSave(sfd.FileName, false); } catch (Exception ex) { logger.LogDataSave(sfd.FileName, true); MessageBox.Show("There was an error saving the file" + Environment.NewLine + ex.Message, "Error"); } } }
public static void AddWillpowerAll(this GameMasterModel gameMaster, int value) { foreach (var voiceModel in gameMaster.Voices) { gameMaster.AddWillpower(voiceModel, value); } }
public static void RemoveVoice(this GameMasterModel gameMaster, VoiceModel voice) { if (voice != null && gameMaster.Voices.Contains(voice)) { gameMaster.Voices.Remove(voice); gameMaster.ChartModel.UpdateChartValues(); } }
internal static void AddObsessionPoint(this GameMasterModel gameMaster, VoiceModel voice, int value) { if (voice != null && voice.ScoreHistory[gameMaster.Turn].Y + value >= 0) { voice.AddObsessionPoint(gameMaster.Turn, value); } else if (voice != null && voice.ScoreHistory[gameMaster.Turn].Y + value < 0) { voice.AddObsessionPoint(gameMaster.Turn, 0); } }
public static void AddWillpower(this GameMasterModel gameMaster, VoiceModel voice, int value) { if (voice != null && voice.Willpower + value >= 0) { voice.Willpower += value; } else if (voice != null && voice.Willpower + value < 0) { voice.Willpower = 0; } }
internal static void LoadGameData(this GameMasterModel gameMaster, GameMasterModel data, ILogger logger) { // Overwrite gameMaster data with new game data GameMasterModel.Logger = LogFactory.NewLogger(LoggerType.NullLogger); var errorFlag = false; gameMaster.Inventory.Clear(); foreach (var item in data.Inventory) { try { item.Logger = logger; gameMaster.Inventory.Add(item); } catch { errorFlag = true; } } gameMaster.Voices.Clear(); foreach (var voice in data.Voices) { try { voice.Logger = logger; voice.Obsession.Logger = logger; gameMaster.Voices.Add(voice); } catch { errorFlag = true; } } gameMaster.Turn = data.Turn; GameMasterModel.Logger = logger; logger.LogDataLoad(errorFlag); }
public static void AddVoice(this GameMasterModel gameMaster, VoiceModel voice, ILogger logger) { if (voice != null) { var newVoice = new VoiceModel(voice) { Logger = logger, ScoreHistory = new ChartValues <ObservablePoint>() }; // Add zero points from turn 1 to current turn for (var i = 0; i <= gameMaster.Turn; i++) { newVoice.ScoreHistory.Add(new ObservablePoint(i, 0)); } gameMaster.Voices.Add(newVoice); gameMaster.ChartModel.UpdateChartValues(); } }
internal static bool FileInput(this GameMasterModel gameMasterModel, ILogger logger) { var ofd = new OpenFileDialog { Filter = "Everyone is John File (*.john)|*.john" }; if (ofd.ShowDialog() == true) { try { var filePath = Path.GetFullPath(ofd.FileName); var extension = Path.GetExtension(filePath); if (extension == ".john") { var fileData = File.ReadAllText(filePath); var data = JsonConvert.DeserializeObject <GameMasterModel>(fileData); gameMasterModel.LoadGameData(data, logger); gameMasterModel.ChartModel.PlayerData = gameMasterModel.Voices; gameMasterModel.ChartModel.UpdateChartValues(); return(true); } MessageBox.Show("Please open a valid .john file", "Error opening file..."); } catch (Exception ex) { MessageBox.Show("Error inputting file" + Environment.NewLine + ex.Message, "Error"); } } return(false); }
public static void AddItem(this GameMasterModel gameMaster, ItemModel item, ILogger logger) { item.Logger = logger; gameMaster.Inventory.Add(item); }