using System.Threading.Tasks; using Godot; namespace Babushka.scripts.CSharp.Common.Temp; /// /// Temporary Duck behaviour to make sure we can use them in the first showcase /// public partial class MVPDuck : Node2D { [Export] private Node2D _penTarget; [Export] private int _transferDelayMs; [Export] private AnimationPlayer _animationPlayer; [Export] private string _flapAnimationName = "flapFlap"; private bool _collected; [Signal] public delegate void DuckCollectedEventHandler(); public void TransferToTargetAfterDelay() { if (!_collected) { MoveAfterDelay(); PlayAnimation(); _collected = true; } } private void PlayAnimation() { _animationPlayer.CurrentAnimation = _flapAnimationName; _animationPlayer.Play(); } public async void MoveAfterDelay() { await ToSignal(GetTree().CreateTimer(1.0f), "timeout"); if(!_penTarget.Equals(null)) Position = _penTarget.GlobalPosition; EmitSignal(SignalName.DuckCollected); } }