Example #1
0
 public void Activate()
 {
     _state               = AOEState.GROW;
     _currentScale        = minSize;
     _didHitPlayer        = false;
     _scaleDampenVelocity = 0f;
     setScales();
     spriteRenderer.enabled = true;
     // circleCollider.enabled = true;
 }
Example #2
0
    // Update is called once per frame
    void Update()
    {
        if (flipXTimer < flipXFrequency)
        {
            flipXTimer += Time.deltaTime;
            if (flipXTimer >= flipXFrequency)
            {
                spriteRenderer.flipX = !spriteRenderer.flipX;
                flipXTimer           = 0f;
            }
        }

        if (_state == AOEState.GROW)
        {
            _currentScale = Mathf.SmoothDamp(_currentScale, maxSize, ref _scaleDampenVelocity, growthDampening * Time.deltaTime);
            setScales();
            testPlayerDistance();
            if (_currentScale >= (maxSize - errorMargin))
            {
                _state               = AOEState.STAY;
                _stayTicker          = 0f;
                _scaleDampenVelocity = 0f;
            }
        }
        else if (_state == AOEState.STAY)
        {
            testPlayerDistance();
            if (_stayTicker < stayDuration)
            {
                _stayTicker += Time.deltaTime;
            }

            if (_stayTicker >= stayDuration)
            {
                _state = AOEState.SHRINK;
            }
        }
        else if (_state == AOEState.SHRINK)
        {
            _currentScale = Mathf.SmoothDamp(_currentScale, minSize, ref _scaleDampenVelocity, shrinkDampening * Time.deltaTime);
            setScales();
            testPlayerDistance();
            if (_currentScale <= (minSize + errorMargin))
            {
                Deactivate();
            }
        }
    }