﻿using DG.Tweening;
using UnityEngine;

namespace JasonStorey
{
    public class CanvasGroupVisibility : VisibilityStrategy
    {
        readonly CanvasGroup _canvasGroup;

        public CanvasGroupVisibility(CanvasGroup canvasGroup)
        {
            _canvasGroup = canvasGroup;
        }
        [ContextMenu("Show")]
        public void Show()
        {
            _canvasGroup.DOFade(1, 0.75f).SetEase(Ease.OutQuint);
            IsShowing = true;
        }

        [ContextMenu("Hide")]
        public void Hide()
        {
            _canvasGroup.DOFade(0, 0.5f).SetEase(Ease.OutCubic);
            IsShowing = false;
        }

        [ContextMenu("Turn On")]
        public void TurnOn()
        {
            _canvasGroup.alpha = 1;
            IsShowing = true;
        }

        [ContextMenu("Turn Off")]
        public void TurnOff()
        {
            _canvasGroup.alpha = 0;
            IsShowing = true;
        }
        
        public bool IsShowing { get; private set; }
    }
}