Пример #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;
            }
        }