Esempio n. 1
0
    private void EatWord(TunnelWord word)
    {
        bool eatable = word.Eat();

        word.transform.SetParent(transform);
        onWordEatEnd?.Invoke(word);
    }
Esempio n. 2
0
 private void OnPackmanEatEnd(TunnelWord word)
 {
     if (word.eatable)
     {
         _words.Remove(word);
         AudioManager.Instance.PlayOneShot(SoundType.Voice, _eatableSound);
         _successSpree++;
         if (_successSpree >= 3)
         {
             SpeedUp();
             _successSpree = 0;
         }
         AddStar();
         _score++;
         if (!_wordsEaten.Contains(word.word))
         {
             _wordsEaten.Add(word.word);
         }
     }
     else
     {
         AudioManager.Instance.PlayOneShot(SoundType.Voice, _notEatableSound);
         _nErrors++;
         _successSpree = 0;
         SpeedDown();
         DropStar();
     }
 }
Esempio n. 3
0
    private void SpawnWord()
    {
        TunnelWord word = Instantiate(_wordPrefab, _container);

        word.transform.position = GetFreePositionInColumn(_centerTileX + _tunnelSize.x);

        bool eatable = Random.value < _eatableChance;

        if (_eatableWordsSpawned >= _maxEatableInARaw)
        {
            eatable = false;
        }
        else if (_notEatableWordsSpawned >= _maxNotEatableInARaw)
        {
            eatable = true;
        }


        WordData_Thin wd;

        if (eatable)
        {
            do
            {
                wd = _wordsEatable[Random.Range(0, _wordsEatable.Count)];
            } while (wd.GetCleanWord() == _prevEatableWord);

            _prevEatableWord = wd.GetCleanWord();
            _eatableWordsSpawned++;
            _notEatableWordsSpawned = 0;
        }
        else
        {
            do
            {
                wd = _wordsNotEatable[Random.Range(0, _wordsNotEatable.Count)];
            } while (wd.GetCleanWord() == _prevWord);

            _prevWord            = wd.GetCleanWord();
            _eatableWordsSpawned = 0;
            _notEatableWordsSpawned++;
        }

        WordData_Fat wdf = wd.GetFatData();

        word.Init(wd.word, wdf.GetRandomSprite(), wdf.sound, eatable, CommonAssets.Instance.ceraRoundMediumFont, _mgParameters.letters.capitalized, _colorizedSklads);

        _words.Add(word);
        word.onWordAte += OnPackmanEatEnd;

        RemoveOldWords();
    }
Esempio n. 4
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (!_active)
        {
            return;
        }

        TunnelWord word = other.GetComponent <TunnelWord>();

        if (word != null)
        {
            EatWord(word);
        }
        else
        {
            Crash();
        }
    }