Ejemplo n.º 1
0
        // Changes the manager state to given campaign
        public void SwitchCampaign(string name, bool isVanilla = true, bool isLocalMod = false)
        {
            if (m_campaignsByNames.ContainsKey(name))
            {
                var obs = m_campaignsByNames[name];
                foreach (var campaign in obs)
                {
                    if (campaign.IsVanilla == isVanilla && campaign.IsLocalMod == isLocalMod)
                    {
                        m_activeCampaign = campaign;
                        m_activeCampaignName = name;
                        m_activeCampaignLevelNames.Clear();
                        m_selectedLanguage = m_activeCampaign.DefaultLocalizationLanguage;

                        // Fill the level names in active campaign level names
                        foreach (var campaignSmNode in m_activeCampaign.StateMachine.Nodes)
                        {
                            m_activeCampaignLevelNames.Add(campaignSmNode.Name);
                        }

                        return;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private string GetImagePath(MyObjectBuilder_Campaign campaign)
        {
            string imagePath = campaign.ImagePath;

            if (!campaign.IsVanilla)
            {
                imagePath = Path.Combine(campaign.ModFolderPath, campaign.ImagePath);
                if (!MyFileSystem.FileExists(imagePath))
                {
                    imagePath = Path.Combine(MyFileSystem.ContentPath, campaign.ImagePath);
                }
            }

            return imagePath;
        }
Ejemplo n.º 3
0
        // Universal campaign loading process
        private void LoadCampaignData(MyObjectBuilder_Campaign campaignOb)
        {
            if (m_campaignsByNames.ContainsKey(campaignOb.Name))
            {
                var obs = m_campaignsByNames[campaignOb.Name];

                // check for duplicity
                foreach (var campaign in obs)
                {
                    if (campaign.IsLocalMod == campaignOb.IsLocalMod &&
                        campaign.IsMultiplayer == campaignOb.IsMultiplayer &&
                        campaign.IsVanilla == campaignOb.IsVanilla)
                    {
                        Debug.Fail("Two campaigns of same name and parameters loaded.");
                        return;
                    }
                }

                obs.Add(campaignOb);
            }
            else
            {
                m_campaignsByNames.Add(campaignOb.Name, new List<MyObjectBuilder_Campaign>());
                m_campaignsByNames[campaignOb.Name].Add(campaignOb);
            }
        }
Ejemplo n.º 4
0
        private void CampaignSelectionChanged(MyGuiControlRadioButtonGroup args)
        {
            var button = args.SelectedButton as MyGuiControlCampaignButton;
            if (button != null)
            {
                var campaign = button.UserData as MyObjectBuilder_Campaign;
                if(campaign == null) return;

                m_nameTextbox.Text = campaign.Name;
                m_onlineMode.IsChecked = campaign.IsMultiplayer;
                m_descriptionMultilineText.Text = new StringBuilder(campaign.Description);

                if(!string.IsNullOrEmpty(campaign.Difficulty))
                {
                    if(campaign.Difficulty.StartsWith("Easy"))
                        m_difficultyCombo.SelectItemByIndex(0);
                    else if(campaign.Difficulty.StartsWith("Normal"))
                        m_difficultyCombo.SelectItemByIndex(1);
                    else 
                        m_difficultyCombo.SelectItemByIndex(2);
                }

                m_selectedCampaign = campaign;
            }
        }