using System;
using System.Threading.Tasks;
using UnityEngine;

namespace Gyvr.Mythril2D
{
    [Serializable]
    public class ToggleMount : ICommand
    {
        [SerializeField] private Mount m_mount;

        public async Task Execute()
        {
            if (m_mount == null)
            {
                Debug.LogWarning("ToggleMount: Mount reference not assigned.");
                return;
            }

            if (m_mount.IsMounted)
            {
                m_mount.DismountPlayer();
            }
            else
            {
                CharacterBase player = GameManager.Player;
                if (player != null)
                {
                    m_mount.MountPlayer(player);
                }
            }

            await Task.CompletedTask;
        }
    }
}
