private void LoadData(string jsonData) { var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }; Game gameObject = JsonConvert.DeserializeObject <Game>(jsonData, settings); InitializeEventManager(); if (gameObject.Ship != null) { Ship = gameObject.Ship; Ship.InitializeEvents(_eventManager); } if (gameObject.ThreatManager != null) { ThreatManager = gameObject.ThreatManager; ThreatManager.InitializeEvents(_eventManager); } RepromptMessage = gameObject.RepromptMessage; RepeatMessage = gameObject.RepeatMessage; GameState = gameObject.GameState; LastGameState = gameObject.LastGameState; IsGameInProgress = gameObject.IsGameInProgress; RuleSelector = gameObject.RuleSelector; }
public void CreateNewGame(int difficulty) { InitializeEventManager(); IsGameInProgress = true; Message = $"Starting a new game. {SoundFx.Beeping} We have traced the distress call coordinates. Prepare to warp. {SoundFx.Warp} Captain, it looks like we warped into a trap! We need to survive until all external threats are destroyed! "; Ship = new HalcyonShip(); Ship.InitializeEvents(_eventManager); ThreatManager = new ThreatManager(); ThreatManager.InitializeEvents(_eventManager); Ship.InitializeShip(); ThreatManager.Initialize(difficulty); Message += $"Rolling the crew dice. {SoundFx.Dice} "; Ship.RollCrewDice(); GameState = GameState.PlayerTurn; Message += $"We have {Ship.GetAvailableCrewAsString()}. "; Message += Ship.ScannerCount > 0 ? $"Number of locked threats in our scanners is {Ship.ScannerCount}. " : ""; Message += ThreatManager.InternalThreats.Count > 0 ? $"Number of active internal threats is {ThreatManager.InternalThreats.Count}. {ThreatManager.GetThreatsAsString(true, false)}. " : ""; Message += ThreatManager.ExternalThreats.Count > 0 ? $"Number of active external threats is {ThreatManager.ExternalThreats.Count}. {ThreatManager.GetThreatsAsString(false, true)}. " : ""; Message += ThreatManager.ExternalThreats.Count + ThreatManager.InternalThreats.Count < 1 ? "There are no active threats at the moment. " : ""; Message += "What are your orders, captain? "; RepeatMessage = Message; RepromptMessage = $"Awaiting your orders, captain. "; SaveData(); }