//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, April 26, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //仙玉投资 namespace Snxxz.UI { public class FairyJadeInvestmentWin : Window { FairyJadeInvestmentModel m_FairyJadeInvestmentModel; FairyJadeInvestmentModel fairyJadeInvestmentModel { get { return m_FairyJadeInvestmentModel ?? (m_FairyJadeInvestmentModel = ModelCenter.Instance.GetModel()); } } VipInvestModel m_VipInvestModel; VipInvestModel VipInvestModel { get { return m_VipInvestModel ?? (m_VipInvestModel = ModelCenter.Instance.GetModel()); } } [SerializeField] ScrollerController m_ScrollerController; [SerializeField] Button m_InvestmentButton;//投资按钮 [SerializeField] GameObject m_MaxInverstment;//最大投资上限 [SerializeField] Button m_RealizedInvestmentButton;//追加投资 [SerializeField] Button m_SelectButton;//额度选择 [SerializeField] Text m_TextNumber; [SerializeField] Text m_FairyJadeText;//当前仙玉 [SerializeField] Text m_TieTheJadeText;//当前绑玉 [SerializeField] Text m_InvestmentText;//当前投资的价格 [SerializeField] Text m_JadeText;//所需投资仙玉 [SerializeField] Image m_Image_AD;//投资图片 [SerializeField] Image m_Image1; [SerializeField] Image m_Image2; [SerializeField] Image m_Image3; [SerializeField] Text m_LvText; public static event Action FairyJadeInvestmentRedPointEvent; #region Built-in private List GearPositionList = new List(); private string[] IconList1 = new string[4]; private string[] IconList2 = new string[4]; private string[] IconList3 = new string[4]; protected override void BindController() { var JadeInves = FuncConfigConfig.Get("JadeInvestIconKey"); int[] GearPosition = ConfigParse.GetMultipleStr(JadeInves.Numerical1); GearPositionList.Clear(); for (int i = 0; i < GearPosition.Length; i++) { GearPositionList.Add(GearPosition[i]); } IconList1 = ConfigParse.GetMultipleStr(JadeInves.Numerical2); IconList2 = ConfigParse.GetMultipleStr(JadeInves.Numerical3); IconList3 = ConfigParse.GetMultipleStr(JadeInves.Numerical4); } protected override void AddListeners() { m_InvestmentButton.AddListener(InvestmentButton); m_RealizedInvestmentButton.AddListener(RealizedInvestment_Button); m_SelectButton.AddListener(SelectButton); } protected override void OnPreOpen() { fairyJadeInvestmentModel.BinningType = fairyJadeInvestmentModel.GetFairyJadeType(); SetText(); int InvestGold = fairyJadeInvestmentModel.GetInvestGold(); if (InvestGold < fairyJadeInvestmentModel.RecordSelectNumberMax) { if (InvestGold < VipInvestModel.GetInvestGold(3, 0)) { fairyJadeInvestmentModel.SelectNumber = VipInvestModel.GetInvestGold(3, 0); } else if (InvestGold < VipInvestModel.GetInvestGold(3, 1)) { fairyJadeInvestmentModel.SelectNumber = VipInvestModel.GetInvestGold(3, 1); } else if (InvestGold < VipInvestModel.GetInvestGold(3, 2)) { fairyJadeInvestmentModel.SelectNumber = VipInvestModel.GetInvestGold(3, 2); } else if (InvestGold < VipInvestModel.GetInvestGold(3, 3)) { fairyJadeInvestmentModel.SelectNumber = VipInvestModel.GetInvestGold(3, 3); } m_SelectButton.gameObject.SetActive(true); } else { fairyJadeInvestmentModel.SelectNumber = fairyJadeInvestmentModel.RecordSelectNumberMax; m_SelectButton.gameObject.SetActive(false); } if (InvestGold <= 0) { m_InvestmentText.text = Language.Get("FairyJadeInvestment_7"); } else { m_InvestmentText.text = string.Format(Language.Get("FairyJadeInvestment_8"), InvestGold); } if (InvestGold >= fairyJadeInvestmentModel.RecordSelectNumberMax) { m_JadeText.gameObject.SetActive(false); } else { m_JadeText.gameObject.SetActive(true); m_JadeText.text = string.Format(Language.Get("FairyJadeInvestment_9"), fairyJadeInvestmentModel.SelectNumber - InvestGold); } IsInvestment(); GetMoney(); SetIconKeyImage(); if (InvestGold >= fairyJadeInvestmentModel.RecordSelectNumberMax) { m_TextNumber.text = fairyJadeInvestmentModel.RecordSelectNumberMax.ToString(); } else { m_TextNumber.text = (fairyJadeInvestmentModel.SelectNumber - InvestGold).ToString(); } PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting;//数据的刷新(h0418) FairyJadeInvestmentModel.FairyJadeInfoSeriorsUpdate += FairyJadeInfoSeriorsUpdate; FairyJadeInvestmentTipWin.SelectNumberRefresh += SelectNumberRefresh; m_ScrollerController.OnRefreshCell += OnRefreshGridCell; OnCreateGridLineCell(m_ScrollerController); m_ScrollerController.JumpIndex(fairyJadeInvestmentModel.JumpInedx); } protected override void OnAfterOpen() { if (fairyJadeInvestmentModel.redPointStre1.state == RedPointState.Simple) { fairyJadeInvestmentModel.IsRedpoint = false; if (FairyJadeInvestmentRedPointEvent != null) { FairyJadeInvestmentRedPointEvent(); } } } protected override void OnPreClose() { PlayerDatas.Instance.playerDataRefreshEvent -= Updatefighting;//数据的刷新(h0418) FairyJadeInvestmentModel.FairyJadeInfoSeriorsUpdate -= FairyJadeInfoSeriorsUpdate; m_ScrollerController.OnRefreshCell -= OnRefreshGridCell; FairyJadeInvestmentTipWin.SelectNumberRefresh -= SelectNumberRefresh; } private void SelectNumberRefresh() { int InvestGold = fairyJadeInvestmentModel.GetInvestGold(); if (InvestGold >= fairyJadeInvestmentModel.RecordSelectNumberMax) { m_TextNumber.text = fairyJadeInvestmentModel.RecordSelectNumberMax.ToString(); } else { m_TextNumber.text = (fairyJadeInvestmentModel.SelectNumber - InvestGold).ToString(); } SetIconKeyImage(); if (InvestGold >= fairyJadeInvestmentModel.RecordSelectNumberMax) { m_JadeText.gameObject.SetActive(false); } else { m_JadeText.gameObject.SetActive(true); m_JadeText.text = string.Format(Language.Get("FairyJadeInvestment_9"), fairyJadeInvestmentModel.SelectNumber - InvestGold); } m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 } protected override void OnAfterClose() { } #endregion private void FairyJadeInfoSeriorsUpdate() { int InvestGold = fairyJadeInvestmentModel.GetInvestGold(); if (InvestGold < fairyJadeInvestmentModel.RecordSelectNumberMax) { fairyJadeInvestmentModel.SelectNumber = fairyJadeInvestmentModel.RecordSelectNumberMax; m_SelectButton.gameObject.SetActive(true); } else { fairyJadeInvestmentModel.SelectNumber = fairyJadeInvestmentModel.RecordSelectNumberMax; m_SelectButton.gameObject.SetActive(false); } if (InvestGold <= 0) { m_InvestmentText.text = Language.Get("FairyJadeInvestment_7"); } else { m_InvestmentText.text = string.Format(Language.Get("FairyJadeInvestment_8"), InvestGold); } if (InvestGold >= fairyJadeInvestmentModel.RecordSelectNumberMax) { m_JadeText.gameObject.SetActive(false); } else { m_JadeText.gameObject.SetActive(true); m_JadeText.text = string.Format(Language.Get("FairyJadeInvestment_9"), fairyJadeInvestmentModel.SelectNumber - InvestGold); } if (InvestGold >= fairyJadeInvestmentModel.RecordSelectNumberMax) { m_TextNumber.text = fairyJadeInvestmentModel.RecordSelectNumberMax.ToString(); } else { m_TextNumber.text = (fairyJadeInvestmentModel.SelectNumber - InvestGold).ToString(); } SetIconKeyImage(); IsInvestment(); m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 } void OnCreateGridLineCell(ScrollerController gridCtrl)//预制体创建 { gridCtrl.Refresh(); int _type = fairyJadeInvestmentModel.BinningType; if (!fairyJadeInvestmentModel.FairyJadeInvestmentTypeDic.ContainsKey(_type)) { return; } var Dit = fairyJadeInvestmentModel.FairyJadeInvestmentTypeDic[_type]; foreach (int key in Dit.Keys) { gridCtrl.AddCell(ScrollerDataType.Header, key); } gridCtrl.Restart(); } void OnRefreshGridCell(ScrollerDataType type, CellView cell) { FairyJadeInvestmentItem fairyJadeInvestmentItem = cell.GetComponent(); int playerlv = cell.index; fairyJadeInvestmentItem.GetPlayerLV(playerlv); } private void IsInvestment()//是否可投资 { int InvestGold = fairyJadeInvestmentModel.GetInvestGold(); if (InvestGold < fairyJadeInvestmentModel.RecordSelectNumberMax) { m_MaxInverstment.SetActive(false); if (InvestGold > 0) { m_Image_AD.SetSprite("XT_VIP_106"); m_InvestmentButton.gameObject.SetActive(false); m_RealizedInvestmentButton.gameObject.SetActive(true); } else { m_Image_AD.SetSprite("XT_VIP_59"); m_InvestmentButton.gameObject.SetActive(true); m_RealizedInvestmentButton.gameObject.SetActive(false); } } else { m_Image_AD.SetSprite("XT_VIP_105"); m_MaxInverstment.SetActive(true); m_InvestmentButton.gameObject.SetActive(false); m_RealizedInvestmentButton.gameObject.SetActive(false); } } private void InvestmentButton()//仙玉投资 { int InvestGold = fairyJadeInvestmentModel.GetInvestGold(); //if (PlayerDatas.Instance.baseData.LV > 300) //{ // ServerTipDetails.DisplayNormalTip(Language.Get("HasExceededTheInvestmentGrade_Z")); // return; //} if (InvestGold > 0) { ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), string.Format(Language.Get("FairyJadeInvestment_2"), fairyJadeInvestmentModel.SelectNumber - InvestGold), (bool isOk) => { if (isOk) { ConsumeFairyJade(fairyJadeInvestmentModel.SelectNumber); } }); } else { ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), string.Format(Language.Get("FairyJadeInvestment_1"), fairyJadeInvestmentModel.SelectNumber), (bool isOk) => { if (isOk) { ConsumeFairyJade(fairyJadeInvestmentModel.SelectNumber); } }); } } private void RealizedInvestment_Button()//追加投资按钮 { int InvestGold = fairyJadeInvestmentModel.GetInvestGold(); if (InvestGold > 0) { ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), string.Format(Language.Get("FairyJadeInvestment_2"), fairyJadeInvestmentModel.SelectNumber - InvestGold), (bool isOk) => { if (isOk) { ConsumeFairyJade(fairyJadeInvestmentModel.SelectNumber); } }); } else { ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), string.Format(Language.Get("FairyJadeInvestment_1"), fairyJadeInvestmentModel.SelectNumber), (bool isOk) => { if (isOk) { ConsumeFairyJade(fairyJadeInvestmentModel.SelectNumber); } }); } } private void ConsumeFairyJade(int fairyJade) { int InvestGold = fairyJadeInvestmentModel.GetInvestGold(); int getFairyJade = (int)UIHelper.GetMoneyCnt(1); if (getFairyJade >= (fairyJade - InvestGold)) { int type = fairyJadeInvestmentModel.BinningType; fairyJadeInvestmentModel.InvestmentMonthlyInvestment(type, fairyJade); } else { WindowCenter.Instance.Open(); } } private void GetMoney() { m_FairyJadeText.text = UIHelper.GetMoneyCnt(1).ToString(); } private void SelectButton() { WindowCenter.Instance.Open(); } void Updatefighting(PlayerDataType _tCDBPlayerRefresh)//数据的刷新 { switch (_tCDBPlayerRefresh) { case PlayerDataType.Gold: GetMoney(); break; case PlayerDataType.GoldPaper: GetMoney(); break; default: break; } } private void SetText() { int Type= fairyJadeInvestmentModel.BinningType; switch (Type) { case 3: m_LvText.text = Language.Get("FairyJade_T1"); break; case 4: m_LvText.text = Language.Get("FairyJade_T2"); break; case 5: m_LvText.text = Language.Get("FairyJade_T3"); break; } } private void SetIconKeyImage() { var money = fairyJadeInvestmentModel.SelectNumber; int ype = fairyJadeInvestmentModel.BinningType; if (fairyJadeInvestmentModel.InvestmentAmountTypeDic.ContainsKey(ype)) { var dit = fairyJadeInvestmentModel.InvestmentAmountTypeDic[ype]; if (dit.ContainsKey(money)) { var type = dit[money]; if (GearPositionList.Contains(type)) { int Inedx = GearPositionList.IndexOf(type); m_Image1.SetSprite(IconList1[Inedx]); m_Image1.SetNativeSize(); m_Image2.SetSprite(IconList2[Inedx]); m_Image2.SetNativeSize(); m_Image3.SetSprite(IconList3[Inedx]); m_Image3.SetNativeSize(); } } } } } }