public void ResetCooldown() { State = PointGeneratorState.Cooldown; cooldownTimer.Restart(); cooldownTimer.Duration = cooldown + UnityEngine.Random.Range(-cooldownRandomModifier, cooldownRandomModifier); spriteRenderer.sprite = cooldownSprite; }
protected override void OnConstruct() { this.spriteRenderer = this.GetComponentInChildren <SpriteRenderer>(); initialSpriteScale = spriteRenderer.transform.localScale; spriteRenderer.transform.localScale = new Vector3(0, 0, 0); this.State = PointGeneratorState.Cooldown; cooldownTimer = new Timer(initialCooldown); spriteRenderer.sprite = cooldownSprite; }
protected override void OnUpdate() { if (Game.Match.State != MatchState.Playing) { return; } if (State == PointGeneratorState.Cooldown) { durationTime = 0; if (cooldownTimer.CheckAndTick(Time.deltaTime)) { State = PointGeneratorState.Full; spriteRenderer.transform.localScale = new Vector3(0, 0, 0); spriteRenderer.sprite = fullSprite; } } else if (State == PointGeneratorState.Full) { durationTime += Time.deltaTime; float size = Mathf.Clamp(durationTime / growDuration, 0, 1); spriteRenderer.transform.localScale = new Vector2(size * initialSpriteScale.x, size * initialSpriteScale.y); } }