public void Activate() { _state = AOEState.GROW; _currentScale = minSize; _didHitPlayer = false; _scaleDampenVelocity = 0f; setScales(); spriteRenderer.enabled = true; // circleCollider.enabled = true; }
// 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(); } } }