public TurretPosition GetLeftmostPositionWithTurret(int maxQuantity, int quantity = 0) { if (quantity >= maxQuantity) { return(this); } if (leftPosition.turrets.Count > 0) { return(leftPosition.GetLeftmostPositionWithTurret(maxQuantity, quantity + 1)); } else { return(this); } }
public void PlaceTurret(TurretPosition pos) { Turret newTurret = Instantiate(turretPrefab, pos.positionObject.transform); newTurret.transform.localRotation = Quaternion.identity; newTurret.transform.localPosition = new Vector3(0, turretHeightOffset * pos.turrets.Count, 0); newTurret.gameObject.name = "New Turret"; newTurret.SetTurretType(Turret.TurretType.Basic); newTurret.myPosition = pos; newTurret.transform.localScale *= 2.0f; pos.turrets.Add(newTurret); ghostTurretInstance.gameObject.SetActive(false); List <TurretPosition> positions = pos.GetLeftmostPositionWithTurret(spokes - 1).GetTurrets(spokes - 1); foreach (TurretPosition position in positions) { position.SetTurretType(positions.Count); } TurretSoundManager.Instance.PlaySound("TurretBuild", true); }