예제 #1
0
        /// <summary>
        /// Gets scenarios
        /// </summary>
        /// <returns>scenarios list</returns>
        public static IList <ScenarioItem> GetScenarios()
        {
            List <ScenarioItem> list = new List <ScenarioItem>();

            using (DbConnection connection = new OracleConnection(AppSettings.GetConnectionString()))
            {
                connection.Open();
                using (DbCommand cmd = connection.CreateCommand())
                {
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = "SELECT ILC_SCENARIO_ID, NAME, ASSEMBLIES, SCRIPTING_EXPRESSION FROM " +
                                      AppSettings.GetSchemaName() + ".ILC_SCENARIO";

                    using (DbDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            ScenarioItem item = new ScenarioItem();
                            item.id                  = Convert.ToInt32(reader[0]);
                            item.name                = reader[1] as string;
                            item.assemblies          = reader[2] as string;
                            item.scriptingExpression = reader[3] as string;

                            list.Add(item);
                        }
                    }
                }
            }
            return(list);
        }
예제 #2
0
        public void deleteItem(ScenarioItem item)
        {
            item.detachFrom(pictureBox1);
            listBox1.Items.Remove(item.ToString());

            redraw();
        }
예제 #3
0
        private void AddScenarioItem(string mapPathToLoad, string iconThumbnailKey, string iconThumbnailSelectedKey, string iconOverviewKey, string textItemName, string textOverview)
        {
            ScenarioItem scenarioItem = new ScenarioItem(ContentManager, iconThumbnailKey, iconThumbnailSelectedKey, iconOverviewKey, textItemName, textOverview, mapPathToLoad);

            scenarioItem.Clicked += (sender, e) => OnScenarioItemClicked(sender);

            int lastPageNumber = scenarioItemPages.Keys.Count();

            List <ScenarioItem> scenarioItemsOnLastPage;

            if (scenarioItemPages.Keys.Count > 0)
            {
                scenarioItemsOnLastPage = GetScenarioItemsOnPage(lastPageNumber);

                if (scenarioItemsOnLastPage.Count < scenarioItemsPerPage)
                {
                    scenarioItemsOnLastPage.Add(scenarioItem);
                }
                else
                {
                    scenarioItemsOnLastPage = new List <ScenarioItem> {
                        scenarioItem
                    };
                    scenarioItemPages.Add(lastPageNumber + 1, scenarioItemsOnLastPage);
                }
            }
            else
            {
                scenarioItemsOnLastPage = new List <ScenarioItem> {
                    scenarioItem
                };
                scenarioItemPages.Add(1, scenarioItemsOnLastPage);
            }

            int itemsOnLastPageCount = scenarioItemsOnLastPage.Count;

            switch (itemsOnLastPageCount)
            {
            case 1:
                scenarioItem.Position = iconFrame.Position + new Vector(4, 45); break;

            case 2:
                scenarioItem.Position = iconFrame.Position + new Vector(4, 115); break;

            case 3:
                scenarioItem.Position = iconFrame.Position + new Vector(4, 185); break;

            case 4:
                scenarioItem.Position = iconFrame.Position + new Vector(4, 255); break;

            case 5:
                scenarioItem.Position = iconFrame.Position + new Vector(4, 325); break;
            }
        }
예제 #4
0
 public void addScenarioItem(ScenarioItem item, bool select = false)
 {
     item.attachTo(pictureBox1);
     listBox1.Items.Add(item.ToString());
     if (select)
     {
         zoneData.setSelectedItem(item.ToString());
         listBox1.SelectedItem = item.ToString();
     }
     redraw();
 }
예제 #5
0
    public void LoadScenario()
    {
        TextAsset scenarioText = Resources.Load("Scenario/GameNormal") as TextAsset;

        string[] list = scenarioText.text.Split('\n');
        int      i    = 0;

        ScenarioList = new List <ScenarioItem> ();

        foreach (string line in list)
        {
            i++;
            if (i == 1)
            {
                continue;
            }

            string[] values = line.Split(',');
            if (values.Length != 16)
            {
                continue;
            }

            ScenarioItem Item = new ScenarioItem();

            /*
             * number,question,
             * answer1,money1,approval1,power1,economy1,army1,moral1,
             * answer2,money2,approval2,power2,economy2,army2,moral2
             */
            Item.ID = int.Parse(values [0]);

            Item.Question = values [1];

            Item.Answer1   = values [2];
            Item.Money1    = int.Parse(values [3]);
            Item.Approval1 = int.Parse(values [4]);
            Item.Power1    = int.Parse(values [5]);
            Item.Economy1  = int.Parse(values [6]);
            Item.Army1     = int.Parse(values [7]);
            Item.Moral1    = int.Parse(values [8]);

            Item.Answer2   = values [9];
            Item.Money2    = int.Parse(values [10]);
            Item.Approval2 = int.Parse(values [11]);
            Item.Power2    = int.Parse(values [12]);
            Item.Economy2  = int.Parse(values [13]);
            Item.Army2     = int.Parse(values [14]);
            Item.Moral2    = int.Parse(values [15]);

            ScenarioList.Add(Item);
        }
    }
예제 #6
0
        private void RemoveTargetIfNeeded(ScenarioItem player)
        {
            var currentItem = this.GetByCoord(player.X, player.Y);

            if (currentItem != null)
            {
                if (currentItem.ItemType == ScenarioItemType.Target)
                {
                    this.items.Remove(currentItem);
                    this.Score++;
                }
            }
        }
예제 #7
0
 public ScenarioItem setSelectedItem(string s)
 {
     if (s == null)
     {
         return(null);
     }
     if (selectedItem != null)
     {
         selectedItem.setSelected(false);
     }
     selectedItem = scenarioItems.Find(x => x.ToString().Equals(s));
     selectedItem.setSelected(true);
     return(selectedItem);
 }
예제 #8
0
        private static IEnumerable <ScenarioItem> MakeWall(int x, int y, int lenght, DirectionEnum direction, ScenarioItemType itemType = ScenarioItemType.Block)
        {
            List <ScenarioItem> items = new List <ScenarioItem>();
            var block = new ScenarioItem()
            {
                X = x, Y = y, ItemType = itemType
            };

            items.Add(block);
            for (int i = 1; i < lenght; i++)
            {
                block = block.MoveTo(direction);
                items.Add(block);
            }

            return(items);
        }
예제 #9
0
        protected void OnScriptingValidate(object source, ServerValidateEventArgs args)
        {
            ScenarioItem item = new ScenarioItem();

            item.scriptingExpression = args.Value;
            item.id = 0;
            List <ScenarioItem> list = new List <ScenarioItem>();

            list.Add(item);
            try
            {
                ScriptsCompiling.CompileAssembly(list, null);
            }
            catch (CompileErrorException e)
            {
                args.IsValid          = false;
                CustomValidator2.Text = e.Message;
            }
        }
예제 #10
0
 private static string Transform(ScenarioItem item)
 {
     if (item == null)
     {
         return(" ");
     }
     if (item.ItemType == ScenarioItemType.Block)
     {
         return("#");
     }
     if (item.ItemType == ScenarioItemType.Target)
     {
         return("X");
     }
     if (item.ItemType == ScenarioItemType.Player)
     {
         return("!");
     }
     return(" ");
 }
예제 #11
0
        void UpdateLoadedData()
        {
            IPTextBox.Text               = MySandboxGame.ConfigDedicated.IP;
            QueryPortUD.Value            = MySandboxGame.ConfigDedicated.ServerPort;
            serverNameTextBox.Text       = MySandboxGame.ConfigDedicated.ServerName;
            worldNameTextBox.Text        = MySandboxGame.ConfigDedicated.WorldName;
            SteamGroupID.Text            = MySandboxGame.ConfigDedicated.GroupID.ToString();
            adminIDs.Text                = string.Join(Environment.NewLine, MySandboxGame.ConfigDedicated.Administrators.ToArray());
            bannedIDs.Text               = string.Join(Environment.NewLine, MySandboxGame.ConfigDedicated.Banned.ToArray());
            modIdsTextBox.Text           = string.Join(Environment.NewLine, MySandboxGame.ConfigDedicated.Mods.ToArray());
            pauseWhenEmptyCHB.Checked    = MySandboxGame.ConfigDedicated.PauseGameWhenEmpty;
            ignoreLastSessionCHB.Checked = MySandboxGame.ConfigDedicated.IgnoreLastSession;

            scenarioCB.Items.Clear();


            MyDefinitionManager.Static.LoadScenarios();

            var scenarioId = MySandboxGame.ConfigDedicated.Scenario;

            foreach (var scenario in MyDefinitionManager.Static.GetScenarioDefinitions())
            {
                if (scenario.Public)
                {
                    ScenarioItem item = new ScenarioItem()
                    {
                        Definition = scenario
                    };
                    scenarioCB.Items.Add(item);
                    if (scenario.Id == scenarioId)
                    {
                        scenarioCB.SelectedItem = item;
                    }
                }
            }
            if (scenarioCB.Items.Count > 0 && scenarioCB.SelectedIndex == -1)
            {
                scenarioCB.SelectedIndex = 0;
            }
        }
예제 #12
0
        private void OnScenarioItemClicked(object sender)
        {
            foreach (var scenarioItem in GetScenarioItemsOnPage(currentPageNumber))
            {
                if (sender != scenarioItem)
                {
                    scenarioItem.ResetPosition();
                }
                else
                {
                    labelActiveOverview = scenarioItem.LabelOverview;
                    iconActiveOverview  = scenarioItem.IconOverview;

                    iconActiveOverview.Position  = iconFrame.Position + new Vector(354, 50);
                    labelActiveOverview.Position = iconFrame.Position + new Vector(353, 125);

                    selectedScenarioItem = scenarioItem;
                }
            }

            buttonSelect.Position = iconFrame.Position + new Vector(iconFrame.Width - buttonSelect.Width, iconFrame.Height + 3);
            buttonSelect.Visible  = true;
        }
예제 #13
0
        private void ConfigForm_Load(object sender, EventArgs e)
        {
            // hide everything related to service
            HasToExit = false;
            serviceStatusLabel.Hide();
            serviceStatusValueLabel.Hide();
            restartServiceButton.Hide();
            stopServiceButton.Hide();

            if (m_isService)
            {
                // show everything that is related to service
                restartServiceButton.Show();
                stopServiceButton.Show();
                serviceStatusLabel.Show();
                serviceStatusValueLabel.Show();
                serviceStatusValueLabel.Text = "";

                // update service label
                updateServiceStatusLabel();
            }

            MyLoadListResult worldList = new MyLoadListResult();

            m_loadWorldsAsync = new MyLoadListResult();
            timer1.Enabled    = true;

            MySandboxGame.ConfigDedicated.Load();

            IPTextBox.Text               = MySandboxGame.ConfigDedicated.IP;
            QueryPortUD.Value            = MySandboxGame.ConfigDedicated.ServerPort;
            serverNameTextBox.Text       = MySandboxGame.ConfigDedicated.ServerName;
            worldNameTextBox.Text        = MySandboxGame.ConfigDedicated.WorldName;
            SteamGroupID.Text            = MySandboxGame.ConfigDedicated.GroupID.ToString();
            adminIDs.Text                = string.Join(Environment.NewLine, MySandboxGame.ConfigDedicated.Administrators.ToArray());
            bannedIDs.Text               = string.Join(Environment.NewLine, MySandboxGame.ConfigDedicated.Banned.ToArray());
            modIdsTextBox.Text           = string.Join(Environment.NewLine, MySandboxGame.ConfigDedicated.Mods.ToArray());
            pauseWhenEmptyCHB.Checked    = MySandboxGame.ConfigDedicated.PauseGameWhenEmpty;
            ignoreLastSessionCHB.Checked = MySandboxGame.ConfigDedicated.IgnoreLastSession;

            scenarioCB.Items.Clear();

            var scenarioId = MySandboxGame.ConfigDedicated.Scenario;

            MyDefinitionManager.Static.LoadScenarios();

            foreach (var scenario in MyDefinitionManager.Static.GetScenarioDefinitions())
            {
                ScenarioItem item = new ScenarioItem()
                {
                    Definition = scenario
                };
                scenarioCB.Items.Add(item);
                if (scenario.Id == scenarioId)
                {
                    scenarioCB.SelectedItem = item;
                }
            }
            if (scenarioCB.Items.Count > 0 && scenarioCB.SelectedIndex == -1)
            {
                scenarioCB.SelectedIndex = 0;
            }

            asteroidAmountUD.Value = MySandboxGame.ConfigDedicated.AsteroidAmount;
        }
예제 #14
0
 public void GlobShouldConstraintPaths(ScenarioItem scenario)
 {
     Assert.That(scenario.Input.Where(scenario.Glob.IsMatch), Is.EquivalentTo(scenario.Output));
 }
예제 #15
0
        private void ConfigForm_Load(object sender, EventArgs e)
        {
            // hide everything related to service
            HasToExit = false;
            serviceStatusLabel.Hide();
            serviceStatusValueLabel.Hide();
            restartServiceButton.Hide();
            stopServiceButton.Hide();

            if (m_isService)
            {
                // show everything that is related to service
                restartServiceButton.Show();
                stopServiceButton.Show();
                serviceStatusLabel.Show();
                serviceStatusValueLabel.Show();
                serviceStatusValueLabel.Text = "";

                // update service label
                updateServiceStatusLabel();
            }

            MyLoadListResult worldList = new MyLoadListResult();

            m_loadWorldsAsync = new MyLoadListResult();
            timer1.Enabled = true;

            MySandboxGame.ConfigDedicated.Load();

            IPTextBox.Text = MySandboxGame.ConfigDedicated.IP;
            QueryPortUD.Value = MySandboxGame.ConfigDedicated.ServerPort;
            serverNameTextBox.Text = MySandboxGame.ConfigDedicated.ServerName;
            worldNameTextBox.Text = MySandboxGame.ConfigDedicated.WorldName;
            SteamGroupID.Text = MySandboxGame.ConfigDedicated.GroupID.ToString();
            adminIDs.Text = string.Join(Environment.NewLine, MySandboxGame.ConfigDedicated.Administrators.ToArray());
            bannedIDs.Text = string.Join(Environment.NewLine, MySandboxGame.ConfigDedicated.Banned.ToArray());
            modIdsTextBox.Text = string.Join(Environment.NewLine, MySandboxGame.ConfigDedicated.Mods.ToArray());
            pauseWhenEmptyCHB.Checked = MySandboxGame.ConfigDedicated.PauseGameWhenEmpty;
            ignoreLastSessionCHB.Checked = MySandboxGame.ConfigDedicated.IgnoreLastSession;

            scenarioCB.Items.Clear();

            var scenarioId = MySandboxGame.ConfigDedicated.Scenario;
            
            MyDefinitionManager.Static.LoadScenarios();

            foreach (var scenario in MyDefinitionManager.Static.GetScenarioDefinitions())
            {
                ScenarioItem item = new ScenarioItem() { Definition = scenario };
                scenarioCB.Items.Add(item);
                if (scenario.Id == scenarioId)
                    scenarioCB.SelectedItem = item;

            }
            if (scenarioCB.Items.Count > 0 && scenarioCB.SelectedIndex == -1)
                scenarioCB.SelectedIndex = 0;

            asteroidAmountUD.Value = MySandboxGame.ConfigDedicated.AsteroidAmount;
        }
예제 #16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AddedItem" /> class.
 /// </summary>
 /// <param name="item">The item.</param>
 public AddedItem(ScenarioItem item) : base()
 {
     this.Items = new ScenarioItem[] { item };
 }