Example #1
0
    IEnumerator InputGenerationCoroutine()
    {
        Vector2 randomLocation = new Vector2(
            UnityEngine.Random.Range(-codingBugGenerationLimit.x, codingBugGenerationLimit.x),
            UnityEngine.Random.Range(-codingBugGenerationLimit.y, codingBugGenerationLimit.y)
            );
        GameObject bugObject = Instantiate(prefabBug, randomLocation, Quaternion.identity);
        CodingBug  script    = bugObject.GetComponent <CodingBug>();

        script.SetData(codingBugGenerationLimit,
                       playerAvatar.transform,
                       _isThreatened);
        bugObject.transform.SetParent(transform);

        float randomTime  = _random.Next(minGenDuration, maxGenDuration);
        float elapsedTime = Time.time - _startTime;

        if (elapsedTime > gameplayDuration * 0.8)
        {
            randomTime   /= 4;
            _isThreatened = true;
        }
        else if (elapsedTime > gameplayDuration / 2)
        {
            randomTime /= 2;
        }

        yield return(new WaitForSeconds(randomTime));

        _inputGenerationCoroutine = InputGenerationCoroutine();
        StartCoroutine(_inputGenerationCoroutine);
    }
Example #2
0
    IEnumerator GameplayTimer()
    {
        _startTime = Time.time;
        yield return(new WaitForSeconds(gameplayDuration));

        if (_inputGenerationCoroutine != null)
        {
            StopCoroutine(_inputGenerationCoroutine);
        }

        foreach (Transform child in transform)
        {
            CodingBug script = child.GetComponent <CodingBug>();

            if (script != null)
            {
                script.enabled = false;
            }
        }

        _state = State.Result;
        playerAvatar.Freeze();
        playerData.SetBugLeft(transform.childCount);

        _currentDialog = resultDialog;
        _currentDialog.ApplyCharacter(_characterData);
        _currentDialog.Display(playerData, _characterData);
    }