private void ProcessMeteoriteStorm(float duration) { int meteorites = RandomBetween(meteoriteCountMin, meteoriteCountMax); var scarecrows = new List <Scarecrow> { _scarecrowManager.OuterLeftScarecrow, _scarecrowManager.CentreLeftScarecrow, _scarecrowManager.CentreLeftScarecrow, _scarecrowManager.CentreRightScarecrow, _scarecrowManager.CentreRightScarecrow, _scarecrowManager.OuterRightScarecrow, }; var targets = new ScarecrowPart[meteorites]; for (int i = 0; i < meteorites; i++) { var scarecrow = RandomScarecrow(scarecrows); targets[i] = scarecrow.GetRandomPart(); } var meteoriteVisual = Instantiate(meteoriteShowerVisualPrefab); meteoriteVisual.GetComponent <MeteoriteShowerVisual>().Init(duration, meteorites, targets); StartCoroutine(DelayedMeteorStormEffects(targets, duration)); }
private void ProcessThunderstorm(float duration) { var intactScarecrows = _scarecrowManager.ScarecrowsLeftToRight.Where(s => s.IsIntact).ToList(); int lightningStrikes = RandomBetween(lightningStrikeCountMin, lightningStrikeCountMax); var targets = new ScarecrowPart[lightningStrikes]; for (int i = 0; i < lightningStrikes; i++) { var scarecrow = RandomScarecrow(intactScarecrows); var part = scarecrow.GetRandomPart(); targets[i] = part; } var lightningStormVisual = Instantiate(lightningStormVisualPrefab); lightningStormVisual.GetComponent <LightningStormVisual>().Init(duration, lightningStrikes, targets); StartCoroutine(DelayedThunderstormEffects(targets, duration)); }