using Godot; using System; public partial class ClickEffect : Effect { public bool _available; public int _calls = 0, _maxCalls = 0; public float _timerSeconds; public Timer _timer; public override void _Ready() { base._Ready(); _timer = GetNode("Timer"); } public override void _Process(double delta) { base._Process(delta); if (_contact._button._phone._running) { _contact._button._progressBar.Value = Math.Round(_timer.TimeLeft / _timerSeconds * 100, 0); } } public override void Fire() { base.Fire(); if (_available && (_calls <= _maxCalls || _maxCalls == 0)) { _calls++; _timer.Start(_timerSeconds); } } public override void End() { _contact._button._progressBar.Value = 0; } public virtual void SetTimer(int SECONDS) { _timerSeconds = SECONDS; } public override void Start() { base.Start(); _available = false; _calls = 0; _timer.Start(_timerSeconds); } private void OnTimerTimeout() { if (_calls <= _maxCalls || _maxCalls == 0) { _available = true; } } }