//////////////////// /// CONSTRUCTORS /// //////////////////// public Phalanx(FormationSettings settings) { this.settings = settings; linkDistance = settings.standardPhalanxLinkDistance; terrainMask = LayerMask.GetMask("Terrain"); }
public static FormationMover AttachTo(GameObject go, FormationSettings formationSettings, LevelSettings levelSettings, int linesCount, int maxColumnsCount) { var mover = go.AddComponent <FormationMover>(); mover._formationSettings = formationSettings; mover._startTime = Time.time; mover._levelSettings = levelSettings; mover._centerBounds = CalculateCenterBounds(formationSettings.AllowedFormationBounds, formationSettings.UnitSize, formationSettings.MaxUnitsDistance, linesCount, maxColumnsCount); return(mover); }
public static FormationExpander AttachTo(GameObject go, FormationSettings formationSettings, List <FormationCell> formationCells, int linesCount, int maxColumnsCount) { var expander = go.AddComponent <FormationExpander>(); expander._formationSettings = formationSettings; expander._formationCells = formationCells; expander._minSize = GetFormationSize(linesCount, maxColumnsCount, formationSettings.UnitSize, formationSettings.MinUnitsDistance); expander._maxSize = GetFormationSize(linesCount, maxColumnsCount, formationSettings.UnitSize, formationSettings.MaxUnitsDistance); return(expander); }
public void Initialize(FormationSettings formationSettings, LevelSettings levelSettings, EnemiesSpawner enemiesSpawner, GameSoundController soundController) { _levelSettings = levelSettings; _enemiesSpawner = enemiesSpawner; _soundController = soundController; var maxColumnsCount = levelSettings.EnemiesLines.Max(line => line.EnemiesInLine); (_formationCells, _incomingWaves) = BuildFormation(levelSettings.EnemiesLines, maxColumnsCount); FormationExpander.AttachTo(gameObject, formationSettings, _formationCells, levelSettings.EnemiesLines.Count, maxColumnsCount); FormationMover.AttachTo(gameObject, formationSettings, levelSettings, levelSettings.EnemiesLines.Count, maxColumnsCount); }