Beispiel #1
0
        public static TreeCutter CreateNew(ILevelManager level, IBuilding building, TreeCutterType type)
        {
            TreeCutter newCutter = null;

            try {
                newCutter           = new TreeCutter(level, building, type);
                newCutter.healthBar =
                    new HealthBarControl(level, building, 100, new Vector3(0, 3, 0), new Vector2(0.5f, 0.1f), false);
                StaticRangeTarget.CreateNew(newCutter, level, building.Center);

                using (var spawnPoints = building.Tiles[0].GetNeighbours().GetEnumerator()) {
                    for (int i = 0; i < numberOfWorkers; i++)
                    {
                        IUnit workerUnit1 = level.EditorMode ? null : newCutter.SpawnWorkerUnit(spawnPoints);
                        newCutter.workers[i] = new Worker(newCutter, workerUnit1, workerRespawnTime)
                        {
                            DoRespawn = !level.EditorMode
                        };
                    }
                }

                return(newCutter);
            }
            catch (Exception e) {
                newCutter?.Dispose();
                throw;
            }
        }
Beispiel #2
0
        public static Wall CreateNew(ILevelManager level, IBuilding building)
        {
            Wall wall = null;

            try {
                wall = new Wall(level, building);
                wall.ConnectNeighbours();
                wall.healthBar =
                    new HealthBarControl(level, building, 100, new Vector3(0, 5, 0), new Vector2(0.5f, 0.2f), false);
                StaticRangeTarget.CreateNew(wall, level, building.Center);
                return(wall);
            }
            catch (Exception e) {
                wall?.Dispose();
                throw;
            }
        }
Beispiel #3
0
        public static Tower CreateNew(ILevelManager level, IBuilding building)
        {
            Tower newTower = null;

            try {
                newTower = new Tower(level, building);
                newTower.CreatePathfindingNodes();
                StaticRangeTarget.CreateNew(newTower, level, building.Center);
                newTower.healthBar =
                    new HealthBarControl(level, building, 100, new Vector3(0, 5, 0), new Vector2(1f, 0.2f), false);

                return(newTower);
            }
            catch (Exception e) {
                newTower?.Dispose();
                throw;
            }
        }
Beispiel #4
0
        public static Keep CreateNew(ILevelManager level, IBuilding building, KeepType myType)
        {
            Keep newKeep = null;

            try {
                newKeep = new Keep(level, building, myType);
                newKeep.CreatePathfindingNodes();
                StaticRangeTarget.CreateNew(newKeep, level, building.Center);
                newKeep.clicker          = Clicker.CreateNew(newKeep, level);
                newKeep.clicker.Clicked += newKeep.KeepClicked;
                newKeep.healthBar        =
                    new HealthBarControl(level, building, 100, new Vector3(0, 3, 0), new Vector2(2f, 0.2f), false);
                newKeep.window = building.Player == level.HumanPlayer ? new KeepWindow(newKeep) : null;
                return(newKeep);
            }
            catch (Exception e) {
                newKeep?.Dispose();
                throw;
            }
        }
Beispiel #5
0
        public static Gate CreateNew(ILevelManager level, IBuilding building)
        {
            Gate newGate = null;

            try {
                newGate = new Gate(level, building);
                newGate.CreatePathfindingNodes();
                StaticRangeTarget.CreateNew(newGate, level, building.Center);
                newGate.clicker          = Clicker.CreateNew(newGate, level);
                newGate.clicker.Clicked += newGate.OnClicked;
                newGate.healthBar        =
                    new HealthBarControl(level, building, 100, new Vector3(0, 3, 0), new Vector2(2f, 0.2f), false);
                newGate.window = new GateWindow(newGate);

                return(newGate);
            }
            catch (Exception e) {
                newGate?.Dispose();
                throw;
            }
        }