//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, January 22, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using TableConfig; 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 GetItemPathModel _GetItemPath; GetItemPathModel GetItemPath { get { return _GetItemPath ?? (_GetItemPath = ModelCenter.Instance.GetModel()); } } ResourcesBackModel m_ResourcesBackModel; ResourcesBackModel resourcesBackModel { get { return m_ResourcesBackModel ?? (m_ResourcesBackModel = ModelCenter.Instance.GetModel()); } } void OnClickCloseButon() { Close(); } void OnClickCancelBtnButton() { Close(); } void OnClickConfirmButton() { if (_isBool) { int getCostJade = (int)UIHelper.GetMoneyCnt(2); if (getCostJade >= NeedCostJade) { CMRecoverGain(0, resourcesBackModel.ResourcesBackId, number); Close(); } else { RegardsFairyJadeBack(); } } else { int copperCash = (int)UIHelper.GetMoneyCnt(3); ; if (copperCash >= NeedCostCopper) { CMRecoverGain(1, resourcesBackModel.ResourcesBackId, number); Close(); } else { GetItemPath.SetChinItemModel(2100); } } } void RegardsFairyJadeBack( ) { int getCostJade = (int)UIHelper.GetMoneyCnt(2);//拥有的绑玉 int getJade= (int)UIHelper.GetMoneyCnt(1);//拥有的仙玉 int CostJade = NeedCostJade - getCostJade; string strLanguage = string.Format(Language.Get("FairyLand_Func13"), getCostJade, NeedCostJade, CostJade); ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), strLanguage, (bool isOk) => { if (isOk) { if (getJade >= CostJade) { CMRecoverGain(0, resourcesBackModel.ResourcesBackId, number); Close(); } else { if (VersionConfig.Get().isBanShu) { SysNotifyMgr.Instance.ShowTip("GoldErr"); return; } WindowCenter.Instance.Open(); } } }); } void OnClickReduceButton() { m_Slider.value -= 1; } void OnClickPlusButton() { m_Slider.value += 1; } void FindNumberSlider(float _float = 0f) { _isBool = ResourcesBackBoxBack.isBool; int resourcesBackID = resourcesBackModel.ResourcesBackId; if (_isBool) { FairyJadeFind(resourcesBackID);//仙玉 } else { CopperCashFind(resourcesBackID);//铜钱 } } private void FairyJadeFind(int ResourcesBackID) { ResourcesBackClass 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; } 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.text = string.Format(Language.Get("ResourceBack_CopperCost"), needCostCopper); NeedCostCopper = needCostCopper; } private void CMRecoverGain(int type, int inedex, int _number) { CA553_tagCMRecoverGain 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); } } }