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