Example #1
0
        public void AddToTowerSelctionMenu()
        {
            string towerSelFilePath = TowerSelectFiles[TowerSelPos];

            if (!File.Exists(towerSelFilePath))
            {
                ConsoleHandler.append_Force("Unable to find the Tower Selection file!");
                return;
            }

            string text = CheckJSONFromFile(towerSelFilePath);

            if (!Guard.IsStringValid(text))
            {
                FileInfo file = new FileInfo(towerSelFilePath);
                ConsoleHandler.append_Force("The Tower Select File  " + file.Name + "  has has invalid text/JSON. Unable to add tower to TowerSelectionMenu");
                return;
            }

            ConsoleHandler.append("Creating new tower entry in TowerSelectionMenu");
            TowerSelectionMenu menu    = TowerSelectionMenu.FromJson(text);
            TowerSelectItem    newItem = new TowerSelectItem();
            bool foundBaseTower        = false;

            if (UseBaseTower)
            {
                newItem = TowerSelMenu_DupBaseTower();
                if (!Guard.IsStringValid(newItem.ToString()))
                {
                    foundBaseTower = false;
                    ConsoleHandler.append("Unable to find chosen base tower in tower selection menu files. Using blank values instead.");
                }
                else
                {
                    foundBaseTower = true;
                }
            }

            if (!UseBaseTower || !foundBaseTower)
            {
                newItem = TowerSelMenu_EmptyTower(newItem);
            }

            if (newItem == null)
            {
                return;
            }
            if (menu == null)
            {
                return;
            }

            AddTowerToSelMenu(newItem, menu);
        }
Example #2
0
        private void AddTowerToSelMenu(TowerSelectItem newItem, TowerSelectionMenu menu)
        {
            menu.Items.Add(newItem);
            string text = menu.ToJson();

            StreamWriter serialize = new StreamWriter(TowerSelectFiles[TowerSelPos], false);

            serialize.Write(text);
            serialize.Close();

            ConsoleHandler.append("Tower added to " + TowerSelectFiles[TowerSelPos].Replace(CurrentProjectVariables.PathToProjectFiles, ""));
        }
Example #3
0
        private TowerSelectItem TowerSelMenu_EmptyTower(TowerSelectItem newItem)
        {
            newItem.FactoryName      = TowerName;
            newItem.Icon             = "";
            newItem.KeyboardShortcut = "";
            ConsoleHandler.append("Creating empty TowerSelectMenu entry");
            if (TowerSelPos == TowerSelectMenu_Pos.FixedLeft || TowerSelPos == TowerSelectMenu_Pos.FixedRight)
            {
                newItem.ObjectType = 1;
            }
            else
            {
                newItem.ObjectType = 0;
            }

            return(newItem);
        }
Example #4
0
        private TowerSelectItem TowerSelMenu_DupBaseTower()
        {
            FileInfo        baseTower = new FileInfo(BaseTowerFile);
            TowerSelectItem newItem   = new TowerSelectItem();

            ConsoleHandler.append("Duplicating base TowerSelectMenu entry");
            foreach (var a in TowerSelectFiles)
            {
                string tempText = CheckJSONFromFile(a.Value);

                if (!Guard.IsStringValid(tempText))
                {
                    continue;
                }

                TowerSelectionMenu tempMenu = TowerSelectionMenu.FromJson(tempText);
                if (tempMenu == null)
                {
                    continue;
                }

                foreach (TowerSelectItem item in tempMenu.Items)
                {
                    if (item.FactoryName == baseTower.Name.Replace(".tower", ""))
                    {
                        ConsoleHandler.append("Found base tower's TowerSelect entry in: " + a.Value.Replace(CurrentProjectVariables.PathToProjectFiles, ""));
                        newItem.FactoryName      = TowerName;
                        newItem.Icon             = item.Icon;
                        newItem.KeyboardShortcut = item.KeyboardShortcut;
                        newItem.ObjectType       = item.ObjectType;
                        break;
                    }
                }
            }

            return(newItem);
        }