Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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();
        }