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");
                }
            }
        }
Exemple #2
0
 public static void AddWillpowerAll(this GameMasterModel gameMaster, int value)
 {
     foreach (var voiceModel in gameMaster.Voices)
     {
         gameMaster.AddWillpower(voiceModel, value);
     }
 }
Exemple #3
0
 public static void RemoveVoice(this GameMasterModel gameMaster, VoiceModel voice)
 {
     if (voice != null && gameMaster.Voices.Contains(voice))
     {
         gameMaster.Voices.Remove(voice);
         gameMaster.ChartModel.UpdateChartValues();
     }
 }
Exemple #4
0
 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);
     }
 }
Exemple #5
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;
     }
 }
Exemple #6
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);
        }
Exemple #7
0
        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);
        }
Exemple #9
0
 public static void AddItem(this GameMasterModel gameMaster, ItemModel item, ILogger logger)
 {
     item.Logger = logger;
     gameMaster.Inventory.Add(item);
 }