Beispiel #1
0
        private void buildButton_Click(object sender, EventArgs e) //build button
        {
            var acc  = getSelectedAcc();
            var vill = getSelectedVillage(acc);

            var indicies = buildingsList.SelectedIndices;

            if (indicies.Count > 0)
            {
                selectedBuilding = vill.Build.Buildings[indicies[0]];
            }
            else
            {
                return;  //no building selected :(
            }
            if (buildRadioButton.Checked)
            {
                var task = new BuildingTask
                {
                    TaskType   = BuildingHelper.BuildingType.General,
                    Level      = (int)buildLevelUpDown.Value,
                    BuildingId = selectedBuilding.Id
                };

                //Create building task, construct new building
                if (selectedBuilding.Type == Classificator.BuildingEnum.Site)
                {
                    Enum.TryParse(buildTypeComboBox.SelectedItem.ToString(), out Classificator.BuildingEnum building);
                    task.Building     = building;
                    task.ConstructNew = true;
                }
                else //upgrade existing building
                {
                    task.Building = selectedBuilding.Type;
                }
                BuildingHelper.AddBuildingTask(acc, vill, task);
            }
            else if (demolishRadioButton.Checked)
            {
                DemolishTask dt = new DemolishTask
                {
                    Building   = selectedBuilding.Type,
                    BuildingId = selectedBuilding.Id,
                    Level      = (int)buildLevelUpDown.Value
                };
                vill.Build.DemolishTasks.Add(dt);
                //TODO: ReStartDemolish
                TaskExecutor.AddTaskIfNotExistInVillage(acc, vill, new DemolishBuilding()
                {
                    ExecuteAt = DateTime.Now, vill = vill
                });
            }
            UpdateBuildTab();
        }
Beispiel #2
0
        private void buildButton_Click(object sender, EventArgs e) //build button
        {
            var acc  = GetSelectedAcc();
            var vill = GetSelectedVillage(acc);

            var indicies = buildingsList.SelectedIndices;

            if (indicies.Count > 0)
            {
                selectedBuilding = vill.Build.Buildings[indicies[0]];
            }
            else
            {
                return;  //no building selected :(
            }
            if (buildRadioButton.Checked)
            {
                var task = new BuildingTask
                {
                    TaskType   = BuildingType.General,
                    Level      = (int)buildLevelUpDown.Value,
                    BuildingId = selectedBuilding.Id
                };

                // Building already planned on this ID
                var plannedBuilding = vill.Build.Tasks.FirstOrDefault(x => x.BuildingId == task.BuildingId);

                //Create building task, construct new building
                if (selectedBuilding.Type == BuildingEnum.Site)
                {
                    if (plannedBuilding == null) // No building has been planned on this ID
                    {
                        Enum.TryParse(buildTypeComboBox.SelectedItem.ToString(), out BuildingEnum building);
                        task.Building     = building;
                        task.ConstructNew = true;
                    }
                    else // Building was already planned
                    {
                        task.Building = plannedBuilding.Building;
                    }
                }
                else //upgrade existing building
                {
                    task.Building = selectedBuilding.Type;
                }

                BuildingHelper.AddBuildingTask(acc, vill, task);
            }
            else if (demolishRadioButton.Checked)
            {
                DemolishTask dt = new DemolishTask
                {
                    Building   = selectedBuilding.Type,
                    BuildingId = selectedBuilding.Id,
                    Level      = (int)buildLevelUpDown.Value
                };
                vill.Build.DemolishTasks.Add(dt);
                //TODO: ReStartDemolish
                TaskExecutor.AddTaskIfNotExistInVillage(acc, vill, new DemolishBuilding()
                {
                    Vill = vill
                });
            }
            UpdateUc();
        }