Beispiel #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;
                    }
                }
            }
        }
Beispiel #2
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);
            }
        }
Beispiel #3
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;
            }
        }
        private void AddCampaignButton(MyObjectBuilder_Campaign campaign, bool isLocalMod = false, bool isWorkshopMod = false)
        {
            var button = new MyGuiControlContentButton(campaign.Name, GetImagePath(campaign))
            {
                UserData      = campaign,
                IsLocalMod    = isLocalMod,
                IsWorkshopMod = isWorkshopMod,
            };

            m_campaignTypesGroup.Add(button);
            m_campaignList.Controls.Add(button);
        }
Beispiel #5
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);
        }
        private string GetImagePath(MyObjectBuilder_Campaign campaign)
        {
            string imagePath = campaign.ImagePath;

            if (string.IsNullOrEmpty(campaign.ImagePath))
            {
                return(string.Empty);
            }

            if (!campaign.IsVanilla)
            {
                imagePath = campaign.ModFolderPath != null?Path.Combine(campaign.ModFolderPath, campaign.ImagePath) : string.Empty;

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

            return(imagePath);
        }