Пример #1
0
 private void OnDestroy()
 {
     for (int i = 0; i < _fishHandlerCoroutines.Count; i++)
     {
         var coroutine = _fishHandlerCoroutines[i];
         TimingHelpers.CleanlyKillCoroutine(ref coroutine);
     }
 }
Пример #2
0
    private void DecrementWaterLevel(float value, float overTime)
    {
        if (_faucetOn)
        {
            return;
        }

        TimingHelpers.CleanlyKillCoroutine(ref _waterLevelCoroutine);
        _waterLevelCoroutine = Timing.RunCoroutine(HandleWaterLevelChange(_currentWaterLevel - value, overTime));
    }
Пример #3
0
    public void StartPlaying()
    {
        if (_playing)
        {
            return;
        }

        _playing = true;
        TimingHelpers.CleanlyKillCoroutine(ref _audioHandlingCoroutine);
        _audioHandlingCoroutine = Timing.RunCoroutine(Play());
    }
Пример #4
0
    public void Victory()
    {
        IsAlive = false;

        WaterHandler.Instance.StopAllWaterInteractions();
        TimingHelpers.CleanlyKillCoroutine(ref _movingCoroutine);
        AudioManager.Instance.PlayWinJingle();

        Timing.CallDelayed(2f, () =>
        {
            EOGUiWin.SetActive(true);
        });
    }
Пример #5
0
    private void OnCollisionStay2D(Collision2D collision)
    {
        if (!IsAlive)
        {
            return;
        }

        TimingHelpers.CleanlyKillCoroutine(ref _movingCoroutine);
        _movingCoroutine = Timing.RunCoroutine(HandleGoTo(transform.localPosition), Segment.FixedUpdate);

        if (WaterHandler.Instance.WaterEdgeOn)
        {
            KillFishie();
        }
    }
Пример #6
0
    public void KillFishie()
    {
        IsAlive = false;
        WaterHandler.Instance.StopAllWaterInteractions();
        TimingHelpers.CleanlyKillCoroutine(ref _movingCoroutine);
        _animator.SetTrigger("Die");

        AudioManager.Instance.PlayDeath();

        Timing.CallDelayed(2f, () =>
        {
            EOGUi.SetActive(true);
            AudioManager.Instance.PlayLoseJingle();
        });
    }
Пример #7
0
    public void StopAllWaterInteractions()
    {
        _faucetOn = false;

        TimingHelpers.CleanlyKillCoroutine(ref _handleFaucetCoroutine);
        TimingHelpers.CleanlyKillCoroutine(ref _handleWaterCoroutine);
        TimingHelpers.CleanlyKillCoroutine(ref _waterLevelCoroutine);

        AudioManager.Instance.FaucetEffect.EndPlaying();
        AudioManager.Instance.DrainEffect.EndPlaying();
        FillingWaterAnim.SetActive(false);
        DrainingWaterAnim.SetActive(false);
        CanHandleWater = false;
        foreach (var item in WaterTapAnimator)
        {
            item.enabled = false;
        }
    }
Пример #8
0
    public void TurnOnFaucet()
    {
        if (!CanHandleWater || _faucetOn)
        {
            return;
        }

        _faucetOn = true;
        TimingHelpers.CleanlyKillCoroutine(ref _waterLevelCoroutine);
        _handleFaucetCoroutine = Timing.RunCoroutine(HandleFaucet());
        AudioManager.Instance.FaucetEffect.StartPlaying();
        AudioManager.Instance.DrainEffect.EndPlaying();
        FillingWaterAnim.SetActive(true);
        DrainingWaterAnim.SetActive(false);
        foreach (var item in WaterTapAnimator)
        {
            item.enabled = false;
        }
    }
Пример #9
0
 public void MoveTo(Vector3 position)
 {
     TimingHelpers.CleanlyKillCoroutine(ref _movingCoroutine);
     _movingCoroutine = Timing.RunCoroutine(HandleGoTo(position), Segment.FixedUpdate);
 }
Пример #10
0
 private void OnDestroy()
 {
     TimingHelpers.CleanlyKillCoroutine(ref _movingCoroutine);
 }
Пример #11
0
    private IEnumerator <float> HandleCatCoroutine()
    {
        CoroutineHandle?meowing = null;

        if (_round == 4)
        {
            meowing = Timing.RunCoroutine(SpawnAllMeows());
        }
        AudioManager.Instance.CatTheme.StartPlaying();

        foreach (var catWave in CatWaves)
        {
            catWave.SetActive(true);
        }
        yield return(Timing.WaitForSeconds(AudioManager.Instance.CatTheme.StartClip.length));

        foreach (var catWave in CatWaves)
        {
            catWave.SetActive(false);
        }
        Cat.sprite = Cats[_round - 1];
        Cat.gameObject.SetActive(true);
        yield return(Timing.WaitForSeconds(DelayBeforeCatSpawnsAttacks));

        _attacks.Add(Instantiate(CatAttackIndicatorPrefab, transform).GetComponent <Animator>());

        foreach (var attack in _attacks)
        {
            attack.transform.position = WaterHandler.Instance.GetPointInsideWater();
            attack.gameObject.SetActive(true);
        }

        yield return(Timing.WaitForSeconds(DelayBeforeCatAttacksKill));

        foreach (var attack in _attacks)
        {
            attack.SetTrigger("Attack");
        }
        AudioManager.Instance.PlayCatAttack();
        AudioManager.Instance.CatTheme.EndPlaying();
        CatAnimator.SetTrigger("Despawn");

        yield return(Timing.WaitForSeconds(DelayBeforeCatCleanup));

        foreach (var attack in _attacks)
        {
            attack.gameObject.SetActive(false);
        }

        Cat.gameObject.SetActive(false);
        WaterHandler.Instance.ResumeWaterInteractions();

        TimingHelpers.CleanlyKillCoroutine(ref meowing);

        if (_round == 4)
        {
            WaterHandler.Instance.CurrentFish.Victory();
        }

        if (WaterHandler.Instance.CurrentFish.IsAlive)
        {
            IsCatActive = false;
        }
    }
Пример #12
0
 private void OnDestroy()
 {
     TimingHelpers.CleanlyKillCoroutine(ref _handleCatCoroutine);
 }
Пример #13
0
 private void OnDestroy()
 {
     TimingHelpers.CleanlyKillCoroutine(ref _foodSpawner);
 }
Пример #14
0
 private void OnDestroy()
 {
     TimingHelpers.CleanlyKillCoroutine(ref _handleFaucetCoroutine);
     TimingHelpers.CleanlyKillCoroutine(ref _handleWaterCoroutine);
     TimingHelpers.CleanlyKillCoroutine(ref _waterLevelCoroutine);
 }
Пример #15
0
 private void OnDestroy()
 {
     TimingHelpers.CleanlyKillCoroutine(ref _audioHandlingCoroutine);
 }