//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, April 26, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; //仙玉投资 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; 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 = Config.Instance.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() { if (fairyJadeInvestmentModel.InvestGold < fairyJadeInvestmentModel.RecordSelectNumberMax) { if (fairyJadeInvestmentModel.InvestGold < VipInvestModel.GetInvestGold(3, 0)) { fairyJadeInvestmentModel.SelectNumber = VipInvestModel.GetInvestGold(3, 0); } else if (fairyJadeInvestmentModel.InvestGold < VipInvestModel.GetInvestGold(3, 1)) { fairyJadeInvestmentModel.SelectNumber = VipInvestModel.GetInvestGold(3, 1); } else if (fairyJadeInvestmentModel.InvestGold < VipInvestModel.GetInvestGold(3, 2)) { fairyJadeInvestmentModel.SelectNumber = VipInvestModel.GetInvestGold(3, 2); } else if (fairyJadeInvestmentModel.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 (fairyJadeInvestmentModel.InvestGold <= 0) { m_InvestmentText.text = Language.Get("FairyJadeInvestment_7"); } else { m_InvestmentText.text = string.Format(Language.Get("FairyJadeInvestment_8"), fairyJadeInvestmentModel.InvestGold); } if (fairyJadeInvestmentModel.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 - fairyJadeInvestmentModel.InvestGold); } IsInvestment(); GetMoney(); SetIconKeyImage(); m_TextNumber.text = fairyJadeInvestmentModel.SelectNumber.ToString(); PlayerDatas.Instance.PlayerDataRefreshInfoEvent += 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.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418) FairyJadeInvestmentModel.FairyJadeInfoSeriorsUpdate -= FairyJadeInfoSeriorsUpdate; m_ScrollerController.OnRefreshCell -= OnRefreshGridCell; FairyJadeInvestmentTipWin.SelectNumberRefresh -= SelectNumberRefresh; } private void SelectNumberRefresh() { m_TextNumber.text = fairyJadeInvestmentModel.SelectNumber.ToString(); SetIconKeyImage(); if (fairyJadeInvestmentModel.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 - fairyJadeInvestmentModel.InvestGold); } m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 } protected override void OnAfterClose() { } #endregion private void FairyJadeInfoSeriorsUpdate() { if (fairyJadeInvestmentModel.InvestGold < fairyJadeInvestmentModel.RecordSelectNumberMax) { fairyJadeInvestmentModel.SelectNumber = fairyJadeInvestmentModel.RecordSelectNumberMax; m_SelectButton.gameObject.SetActive(true); } else { fairyJadeInvestmentModel.SelectNumber = fairyJadeInvestmentModel.RecordSelectNumberMax; m_SelectButton.gameObject.SetActive(false); } if (fairyJadeInvestmentModel.InvestGold <= 0) { m_InvestmentText.text = Language.Get("FairyJadeInvestment_7"); } else { m_InvestmentText.text = string.Format(Language.Get("FairyJadeInvestment_8"), fairyJadeInvestmentModel.InvestGold); } if (fairyJadeInvestmentModel.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 - fairyJadeInvestmentModel.InvestGold); } m_TextNumber.text = fairyJadeInvestmentModel.SelectNumber.ToString(); IsInvestment(); m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见 } void OnCreateGridLineCell(ScrollerController gridCtrl)//预制体创建 { gridCtrl.Refresh(); foreach (int key in fairyJadeInvestmentModel.FairyJadeInvestmentDic.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()//是否可投资 { if (fairyJadeInvestmentModel.InvestGold < fairyJadeInvestmentModel.RecordSelectNumberMax) { m_MaxInverstment.SetActive(false); if (fairyJadeInvestmentModel.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()//仙玉投资 { if (PlayerDatas.Instance.baseData.LV > 300) { MessageWin.Inst.ShowFixedTip(Language.Get("HasExceededTheInvestmentGrade_Z")); return; } if (fairyJadeInvestmentModel.InvestGold > 0) { ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), string.Format(Language.Get("FairyJadeInvestment_2"), fairyJadeInvestmentModel.SelectNumber - fairyJadeInvestmentModel.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()//追加投资按钮 { if (fairyJadeInvestmentModel.InvestGold > 0) { ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), string.Format(Language.Get("FairyJadeInvestment_2"), fairyJadeInvestmentModel.SelectNumber - fairyJadeInvestmentModel.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 getFairyJade = (int)UIHelper.GetMoneyCnt(1); if (getFairyJade >= (fairyJade - fairyJadeInvestmentModel.InvestGold)) { fairyJadeInvestmentModel.InvestmentMonthlyInvestment(3, fairyJade); } else { WindowCenter.Instance.Open(); } } private void GetMoney() { m_FairyJadeText.text = UIHelper.GetMoneyCnt(1).ToString(); m_TieTheJadeText.text = UIHelper.GetMoneyCnt(2).ToString(); } private void SelectButton() { WindowCenter.Instance.Open(); } void Updatefighting(PlayerDataRefresh _tCDBPlayerRefresh)//数据的刷新 { switch (_tCDBPlayerRefresh) { case PlayerDataRefresh.Gold: GetMoney(); break; case PlayerDataRefresh.GoldPaper: GetMoney(); break; default: break; } } private void SetIconKeyImage() { var money = fairyJadeInvestmentModel.SelectNumber; if (fairyJadeInvestmentModel.InvestmentAmountDic.ContainsKey(money)) { var type = fairyJadeInvestmentModel.InvestmentAmountDic[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(); } } } } }