//-------------------------------------------------------- 
 | 
//    [Author]:           第二世界 
 | 
//    [  Date ]:           Monday, January 22, 2018 
 | 
//-------------------------------------------------------- 
 | 
  
 | 
using System; 
 | 
using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
  
 | 
using UnityEngine; 
 | 
using UnityEngine.UI; 
 | 
//资源找回框 
 | 
namespace Snxxz.UI 
 | 
{ 
 | 
  
 | 
    public class FindNumberWin : Window 
 | 
    { 
 | 
  
 | 
        #region Built-in 
 | 
        [SerializeField] Button m_CloseBtn;//关闭按钮 
 | 
        [SerializeField] Button m_CancelBtn;//取消 
 | 
        [SerializeField] Button m_ConfirmBtn;//确定 
 | 
        [SerializeField] Button m_BtnReduce;//减 
 | 
        [SerializeField] Button m_BtnPlus;//加 
 | 
        [SerializeField] Slider m_Slider; 
 | 
  
 | 
        [SerializeField] Text m_ResourceName;//资源名 
 | 
        [SerializeField] Text m_RequiredPrice;//所需价格 
 | 
        [SerializeField] Text m_specialText;//特殊显示 
 | 
        [SerializeField] Text m_UpToNumberTxt;//所需的次数 
 | 
        private bool IsOpenBool = true; 
 | 
        private int NeedCostJade = 0;//所需的绑玉 
 | 
        private int NeedCostCopper = 0;//所需的铜钱 
 | 
        private bool _isBool = false;//仙玉找回/铜钱找回 
 | 
        private int number = 0;//找回的次数 
 | 
  
 | 
        protected override void BindController() 
 | 
        { 
 | 
        } 
 | 
  
 | 
        protected override void AddListeners() 
 | 
        { 
 | 
            m_CloseBtn.AddListener(OnClickCloseButon); 
 | 
            m_CancelBtn.AddListener(OnClickCancelBtnButton); 
 | 
            m_ConfirmBtn.AddListener(OnClickConfirmButton); 
 | 
            m_BtnReduce.AddListener(OnClickReduceButton); 
 | 
            m_BtnPlus.AddListener(OnClickPlusButton); 
 | 
            m_Slider.onValueChanged.AddListener(FindNumberSlider); 
 | 
        } 
 | 
  
 | 
        protected override void OnPreOpen() 
 | 
        { 
 | 
            IsOpenBool = true; 
 | 
            FindNumberSlider(); 
 | 
        } 
 | 
  
 | 
        protected override void OnAfterOpen() 
 | 
        { 
 | 
        } 
 | 
  
 | 
        protected override void OnPreClose() 
 | 
        { 
 | 
        } 
 | 
  
 | 
        protected override void OnAfterClose() 
 | 
        { 
 | 
        } 
 | 
        #endregion 
 | 
  
 | 
        ResourcesBackModel resourcesBackModel { get { return   ModelCenter.Instance.GetModel<ResourcesBackModel>(); } } 
 | 
        void OnClickCloseButon() 
 | 
        { 
 | 
            Close(); 
 | 
        } 
 | 
        void OnClickCancelBtnButton() 
 | 
        { 
 | 
            Close(); 
 | 
        } 
 | 
  
 | 
        void OnClickConfirmButton() 
 | 
        { 
 | 
            if (_isBool) 
 | 
            {  
 | 
                RegardsFairyJadeBack(); 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                CMRecoverGain(1, resourcesBackModel.ResourcesBackId, number);  
 | 
                Close(); 
 | 
            } 
 | 
  
 | 
        } 
 | 
  
 | 
        void RegardsFairyJadeBack() 
 | 
        { 
 | 
            var own = (int)UIHelper.GetMoneyCnt(1);//拥有的仙玉 
 | 
            var need = NeedCostJade; 
 | 
            var strLanguage = Language.Get("FairyLand_Func13", NeedCostJade, need); 
 | 
            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), strLanguage, (bool isOk) => 
 | 
            { 
 | 
                if (isOk) 
 | 
                { 
 | 
                    if (own >= need) 
 | 
                    { 
 | 
                        CMRecoverGain(0, resourcesBackModel.ResourcesBackId, number); 
 | 
                        Close(); 
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        if (VersionConfig.Get().isBanShu) 
 | 
                        { 
 | 
                            SysNotifyMgr.Instance.ShowTip("GoldErr"); 
 | 
                            return; 
 | 
                        } 
 | 
                        WindowCenter.Instance.Open<RechargeTipWin>(); 
 | 
                    } 
 | 
                } 
 | 
            });  
 | 
        } 
 | 
  
 | 
        void OnClickReduceButton() 
 | 
        { 
 | 
            m_Slider.value -= 1; 
 | 
        } 
 | 
  
 | 
        void OnClickPlusButton() 
 | 
        { 
 | 
            m_Slider.value += 1; 
 | 
        } 
 | 
  
 | 
        void FindNumberSlider(float _float = 0f) 
 | 
        { 
 | 
            _isBool = ResourcesBackBoxBack.isBool; 
 | 
            var resourcesBackID = resourcesBackModel.ResourcesBackId; 
 | 
            if (_isBool) 
 | 
            { 
 | 
                FairyJadeFind(resourcesBackID);//仙玉 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                CopperCashFind(resourcesBackID);//铜钱 
 | 
            } 
 | 
        } 
 | 
  
 | 
        private void FairyJadeFind(int ResourcesBackID) 
 | 
        { 
 | 
            var resourcesBackClass = resourcesBackModel.ResourcesBackDic[ResourcesBackID]; 
 | 
            m_Slider.interactable = true; 
 | 
            m_Slider.wholeNumbers = true; 
 | 
            int minNumber = 1; 
 | 
            int maxNumber = 0; 
 | 
            maxNumber += resourcesBackClass.RecoverCnt; 
 | 
            maxNumber += resourcesBackClass.ExtraCnt; 
 | 
            if (resourcesBackClass.ExtraCnt > 0) 
 | 
            { 
 | 
                m_ResourceName.text = resourcesBackClass.NameOfActivity + string.Format(Language.Get("ResourceBack_VipExtra"), resourcesBackClass.RecoverCnt, resourcesBackClass.ExtraCnt); 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                m_ResourceName.text = resourcesBackClass.NameOfActivity + string.Format(Language.Get("ResourceBack_NormalTimes"), resourcesBackClass.RecoverCnt); 
 | 
            }  
 | 
  
 | 
            m_Slider.minValue = minNumber; 
 | 
            m_Slider.maxValue = maxNumber; 
 | 
            number = Mathf.CeilToInt(m_Slider.value); 
 | 
            m_UpToNumberTxt.text = number.ToString(); 
 | 
            int needFairyJade = 0; 
 | 
            if (IsOpenBool) 
 | 
            { 
 | 
                m_Slider.value = maxNumber; 
 | 
                IsOpenBool = false; 
 | 
            } 
 | 
            if (m_Slider.value > resourcesBackClass.RecoverCnt) 
 | 
            { 
 | 
                needFairyJade += resourcesBackClass.RecoverCnt * resourcesBackClass.NormalCostJade; 
 | 
                int vipNumber = (Mathf.CeilToInt(m_Slider.value)) - resourcesBackClass.RecoverCnt; 
 | 
                needFairyJade += vipNumber * resourcesBackClass.VipCostJade; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                needFairyJade = (Mathf.CeilToInt(m_Slider.value)) * resourcesBackClass.NormalCostJade; 
 | 
            } 
 | 
            m_RequiredPrice.gameObject.SetActive(true); 
 | 
            if (resourcesBackClass.ExtraCnt > 0) 
 | 
            { 
 | 
                m_RequiredPrice.text = string.Format(Language.Get("ResourceBack_JadeCostExtra"), needFairyJade, resourcesBackClass.NormalCostJade, resourcesBackClass.VipCostJade); 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                m_RequiredPrice.text = string.Format(Language.Get("ResourceBack_JadeCost"), needFairyJade, resourcesBackClass.NormalCostJade); 
 | 
            }  
 | 
  
 | 
            NeedCostJade = needFairyJade; 
 | 
        } 
 | 
        private void CopperCashFind(int resourcesBackID) 
 | 
        { 
 | 
            ResourcesBackClass resourcesBackClass = resourcesBackModel.ResourcesBackDic[resourcesBackID]; 
 | 
            m_Slider.interactable = true; 
 | 
            m_Slider.wholeNumbers = true; 
 | 
            int minNumber = 1; 
 | 
            int maxNumber = 0; 
 | 
            maxNumber = resourcesBackClass.RecoverCnt;  
 | 
  
 | 
            m_ResourceName.text = resourcesBackClass.NameOfActivity + string.Format(Language.Get("ResourceBack_NormalTimes"), maxNumber); 
 | 
            number = Mathf.CeilToInt(m_Slider.value); 
 | 
            m_UpToNumberTxt.text = number.ToString(); 
 | 
            m_Slider.minValue = minNumber; 
 | 
            m_Slider.maxValue = maxNumber; 
 | 
            int needCostCopper = 0; 
 | 
            if (IsOpenBool) 
 | 
            { 
 | 
                m_Slider.value = maxNumber; 
 | 
                IsOpenBool = false; 
 | 
            } 
 | 
            needCostCopper = (Mathf.CeilToInt(m_Slider.value)) * resourcesBackClass.CostCopper;  
 | 
            m_RequiredPrice.gameObject.SetActive(false);  
 | 
            NeedCostCopper = needCostCopper; 
 | 
        } 
 | 
  
 | 
        private void CMRecoverGain(int type, int inedex, int _number) 
 | 
        { 
 | 
            var CA553 = new CA553_tagCMRecoverGain(); 
 | 
            CA553.Type = (byte)type; 
 | 
            byte[] indexList = new byte[] { (byte)inedex }; 
 | 
            CA553.Cnt = (byte)indexList.Length; 
 | 
            CA553.IndexList = indexList; 
 | 
            byte[] recoverCntList = new byte[] { (byte)number }; 
 | 
            CA553.RecoverCntList = recoverCntList; 
 | 
            GameNetSystem.Instance.SendInfo(CA553); 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
} 
 |