using BX;
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// 
/// 设置面板
/// 
public class SetUpUI : UIBaseClass
{
    /// 
    /// 关闭按钮
    /// 
    public Button closeBtn;
    public Image voiceIcon;
    public Image shankIcon;
    public Image musicIcon;
    public Button voiceBtn;
    public Button shankBtn;
    public Button musicBtn;
    public Slider voiceSlider;
    public Slider shankSlider;
    public Slider musicSlider;
    private bool isVoice;
    private bool isMusic;
    private bool isShank;
    public Button infoBtn;
    private void Start()
    {
        CloseBtnListener();
        VoiceBtnListener();
        MusicBtnListener();
        ShankBtnListener();
        InfoBtnListener();
    }
    public override void OnShow()
    {
        base.OnShow();
        voiceSlider.value = UserDataManager.Instance.userData.soundSwitchData.isOpenSEMusic ? 1 : 0;
        isVoice = UserDataManager.Instance.userData.soundSwitchData.isOpenSEMusic;
        musicSlider.value = UserDataManager.Instance.userData.soundSwitchData.isOpenBKMusic ? 1 : 0;
        isMusic = UserDataManager.Instance.userData.soundSwitchData.isOpenBKMusic;
        shankSlider.value = UserDataManager.Instance.userData.soundSwitchData.isOpenShake ? 1 : 0;
        isShank = UserDataManager.Instance.userData.soundSwitchData.isOpenShake;
        SetIcon();
    }
    /// 
    /// 设置图片
    /// 
    public void SetIcon()
    {
        voiceIcon.sprite = UserDataManager.Instance.userData.soundSwitchData.isOpenSEMusic ? YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "SetUpOpen"): YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "SetUpHide");
        shankIcon.sprite = UserDataManager.Instance.userData.soundSwitchData.isOpenShake ? YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "SetUpOpen"): YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "SetUpHide");
        musicIcon.sprite = UserDataManager.Instance.userData.soundSwitchData.isOpenBKMusic ? YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "SetUpOpen"): YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "SetUpHide");
    }
    /// 
    /// 关闭按钮逻辑
    /// 
    private void CloseBtnListener()
    {
        closeBtn.onClick.AddListener(() =>
        {
            HideMe();
        });
    }
    /// 
    /// Info监听
    /// 
    private void InfoBtnListener()
    {
        infoBtn.onClick.AddListener(() =>
        {
            BXSdk.Instance.OpenPrivacyURL("https://www.game.pricacy");
        });
    }
    /// 
    /// 音效按钮监听
    /// 
    private void VoiceBtnListener()
    {
        voiceBtn.onClick.AddListener(() =>
        {
            isVoice = !isVoice;
            UserDataManager.Instance.userData.soundSwitchData.SetIsOpenSEMusic(isVoice);
            float value=isVoice?0:1;
            float end = isVoice ?1:0;
            DOTween.To(() => value, x => value = x, end, 0.3f).OnUpdate(() => 
            {
                voiceSlider.value = value;
            }).SetUpdate(true);
            SetIcon();
        });
    }
    /// 
    /// 背景音乐按钮监听
    /// 
    private void MusicBtnListener()
    {
        musicBtn.onClick.AddListener(() =>
        {
            isMusic = !isMusic;
            UserDataManager.Instance.userData.soundSwitchData.SetIsOpenBKMusic(isMusic);
            AudioManager.Instance.SetBkMusicClip();
            float value = isMusic ? 0 : 1;
            float end = isMusic ? 1 : 0;
            DOTween.To(() => value, x => value = x, end, 0.3f).OnUpdate(() =>
            {
                musicSlider.value = value;
            }).SetUpdate(true);
            SetIcon();
        });
    }
    /// 
    /// 震动按钮监听
    /// 
    private void ShankBtnListener()
    {
        shankBtn.onClick.AddListener(() =>
        {
            isShank = !isShank;
            UserDataManager.Instance.userData.soundSwitchData.SetIsOpenShake(isShank);
            float value = isShank ? 0 : 1;
            float end = isShank ? 1 : 0;
            DOTween.To(() => value, x => value = x, end, 0.3f).OnUpdate(() =>
            {
                shankSlider.value = value;
            }).SetUpdate(true);
            SetIcon();
        });
    }
}