예제 #1
0
        private void UpdateDependence(int n)
        {
            ItemSelectorForm ItemSelect = new ItemSelectorForm();
            DialogResult     R          = ItemSelect.ShowDialog();

            if (R == DialogResult.OK)
            {
                List <int> Returned = ItemSelectorForm.ReturnItems;
                if (Returned.Count == 0)
                {
                    return;
                }
                ;
                for (int i = 0; i < Returned.Count; i++)
                {
                    if (!ItemList[n].Dependence.Contains(Returned[i]))
                    {
                        ItemList[n].Dependence.Add(Returned[i]);
                    }
                    ;
                }
                ;
                FillDependence(n);
            }
            ;
        }
예제 #2
0
        private void UpdateConditional(int n, int?conditionalIndex = null)
        {
            List <int> selectedItems = null;

            if (conditionalIndex.HasValue)
            {
                selectedItems = ItemList[n].Conditional[conditionalIndex.Value];
            }
            ItemSelectorForm ItemSelect = new ItemSelectorForm(selectedItems);
            DialogResult     R          = ItemSelect.ShowDialog();

            if (R == DialogResult.OK)
            {
                List <int> Returned = ItemSelectorForm.ReturnItems;
                if (Returned.Count == 0)
                {
                    return;
                }
                ;
                if (conditionalIndex.HasValue)
                {
                    ItemList[n].Conditional[conditionalIndex.Value] = Returned;
                }
                else
                {
                    ItemList[n].Conditional.Add(Returned);
                }
                FillConditional(n);
            }
            ;
        }
예제 #3
0
        private void button_goto_Click(object sender, EventArgs e)
        {
            var itemSelect = new ItemSelectorForm(checkboxes: false);
            var result     = itemSelect.ShowDialog();

            if (result == DialogResult.OK && ItemSelectorForm.ReturnItems.Any())
            {
                var itemIndex = ItemSelectorForm.ReturnItems.First();
                nItem.Value = itemIndex;
            }
        }
예제 #4
0
 private void mNew_Click(object sender, EventArgs e)
 {
     ItemSelectorForm.ResetItems();
     ITEM_NAMES    = DEFAULT_ITEM_NAMES.ToArray();
     nItem.Minimum = 0;
     nItem.Maximum = ITEM_NAMES.Length - 1;
     ItemList      = new List <ItemLogic>();
     for (int i = 0; i < ITEM_NAMES.Length; i++)
     {
         ItemLogic l = new ItemLogic();
         ItemList.Add(l);
     }
     ;
     nItem.Value = 1;
     nItem.Value = 0;
 }
예제 #5
0
 private void btn_new_item_Click(object sender, EventArgs e)
 {
     using (var newItemForm = new NewItemForm())
     {
         var result = newItemForm.ShowDialog();
         if (result == DialogResult.OK)
         {
             var newList = ITEM_NAMES.ToList();
             newList.Add(newItemForm.ReturnValue);
             ITEM_NAMES    = newList.ToArray();
             nItem.Maximum = ITEM_NAMES.Length - 1;
             ItemList.Add(new ItemLogic());
             nItem.Value = nItem.Maximum;
             ItemSelectorForm.AddItem(newItemForm.ReturnValue);
         }
     }
 }
예제 #6
0
        private void lConditional_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            var index = lConditional.IndexFromPoint(e.Location);

            if (index != ListBox.NoMatches)
            {
                var conditions = ItemList[n].Conditional[index];
                if (conditions.Count == 1)
                {
                    nItem.Value = conditions[0];
                }
                else
                {
                    var itemSelect = new ItemSelectorForm(checkboxes: false, highlightedItems: conditions);
                    var result     = itemSelect.ShowDialog();
                    if (result == DialogResult.OK && ItemSelectorForm.ReturnItems.Any())
                    {
                        var itemIndex = ItemSelectorForm.ReturnItems.First();
                        nItem.Value = itemIndex;
                    }
                }
            }
        }
예제 #7
0
 private void mImport_Click(object sender, EventArgs e)
 {
     if (openLogic.ShowDialog() == DialogResult.OK)
     {
         StreamReader LogicFile = new StreamReader(File.Open(openLogic.FileName, FileMode.Open));
         ItemList = new List <ItemLogic>();
         var logicString = LogicFile.ReadToEnd();
         logicString = Migrator.ApplyMigrations(logicString);
         string[] lines = logicString.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
         ItemSelectorForm.ResetItems();
         ITEM_NAMES = DEFAULT_ITEM_NAMES.ToArray();
         int i = 0;
         while (true)
         {
             if (i == lines.Length)
             {
                 break;
             }
             ;
             if (lines[i].Contains("-"))
             {
                 var itemName = lines[i].Substring(2);
                 if (ItemList.Count >= ITEM_NAMES.Length)
                 {
                     var newList = ITEM_NAMES.ToList();
                     newList.Add(itemName);
                     ItemSelectorForm.AddItem(itemName);
                     ITEM_NAMES = newList.ToArray();
                 }
                 i++;
                 continue;
             }
             else
             {
                 ItemLogic l = new ItemLogic();
                 l.Dependence = new List <int>();
                 if (lines[i] != "")
                 {
                     foreach (string j in lines[i].Split(','))
                     {
                         l.Dependence.Add(Convert.ToInt32(j));
                     }
                     ;
                 }
                 ;
                 l.Conditional = new List <List <int> >();
                 if (lines[i + 1] != "")
                 {
                     foreach (string j in lines[i + 1].Split(';'))
                     {
                         List <int> c = new List <int>();
                         foreach (string k in j.Split(','))
                         {
                             c.Add(Convert.ToInt32(k));
                         }
                         ;
                         l.Conditional.Add(c);
                     }
                     ;
                 }
                 ;
                 l.Time_Needed    = Convert.ToInt32(lines[i + 2]);
                 l.Time_Available = Convert.ToInt32(lines[i + 3]);
                 ItemList.Add(l);
                 i += 4;
             };
         }
         ;
         LogicFile.Close();
         nItem.Value   = 1;
         nItem.Value   = 0;
         nItem.Maximum = ITEM_NAMES.Length - 1;
     }
     ;
 }
예제 #8
0
        private void LoadLogic(string logicString)
        {
            ItemList = new List <ItemLogic>();
            string[] lines = logicString.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
            ItemSelectorForm.ResetItems();
            ITEM_NAMES = DEFAULT_ITEM_NAMES.ToArray();
            int i = 0;

            while (true)
            {
                if (i == lines.Length)
                {
                    break;
                }
                ;
                if (lines[i].Contains("-"))
                {
                    var itemName = lines[i].Substring(2);
                    if (ItemList.Count >= ITEM_NAMES.Length)
                    {
                        var newList = ITEM_NAMES.ToList();
                        newList.Add(itemName);
                        ItemSelectorForm.AddItem(itemName);
                        ITEM_NAMES = newList.ToArray();
                    }
                    i++;
                    continue;
                }
                else
                {
                    ItemLogic l = new ItemLogic();
                    l.Dependence = new List <int>();
                    if (lines[i] != "")
                    {
                        foreach (string j in lines[i].Split(','))
                        {
                            l.Dependence.Add(Convert.ToInt32(j));
                        }
                        ;
                    }
                    ;
                    l.Conditional = new List <List <int> >();
                    if (lines[i + 1] != "")
                    {
                        foreach (string j in lines[i + 1].Split(';'))
                        {
                            List <int> c = new List <int>();
                            foreach (string k in j.Split(','))
                            {
                                c.Add(Convert.ToInt32(k));
                            }
                            ;
                            l.Conditional.Add(c);
                        }
                        ;
                    }
                    ;
                    l.Time_Needed    = Convert.ToInt32(lines[i + 2]);
                    l.Time_Available = Convert.ToInt32(lines[i + 3]);
                    ItemList.Add(l);
                    i += 4;
                };
            }
            ;

            nItem.Maximum = ITEM_NAMES.Length - 1;
            SetIndex((int)nItem.Value);
        }