//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, April 26, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
//仙玉投资
|
namespace vnxbqy.UI
|
{
|
|
public class FairyJadeInvestmentWin : Window
|
{
|
[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_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<int> GearPositionList = new List<int>();
|
private string[] IconList1 = new string[4];
|
private string[] IconList2 = new string[4];
|
private string[] IconList3 = new string[4];
|
|
FairyJadeInvestmentModel model { get { return ModelCenter.Instance.GetModel<FairyJadeInvestmentModel>(); } }
|
VipInvestModel investModel { get { return ModelCenter.Instance.GetModel<VipInvestModel>(); } }
|
|
protected override void BindController()
|
{
|
var JadeInves = FuncConfigConfig.Get("JadeInvestIconKey");
|
int[] GearPosition = ConfigParse.GetMultipleStr<int>(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()
|
{
|
model.fairyInvestType = model.GetFairyInvestType();
|
var maxAmount = investModel.GetMaxInvestAmount(model.fairyInvestType);
|
SetText();
|
int InvestGold = model.GetInvestGold();
|
if (InvestGold < maxAmount)
|
{
|
var maxGear = investModel.GetInvestMaxGear(3);
|
for (int i = 0; i < maxGear; i++)
|
{
|
if (InvestGold < investModel.GetInvestAmount(3, i))
|
{
|
model.selectInvestMoney = investModel.GetInvestAmount(3, i);
|
break;
|
}
|
}
|
m_SelectButton.SetActive(true);
|
}
|
else
|
{
|
model.selectInvestMoney = maxAmount;
|
m_SelectButton.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 >= maxAmount)
|
{
|
m_JadeText.SetActive(false);
|
}
|
else
|
{
|
m_JadeText.SetActive(true);
|
|
m_JadeText.text = string.Format(Language.Get("FairyJadeInvestment_9"), model.selectInvestMoney - InvestGold);
|
}
|
IsInvestment();
|
GetMoney();
|
SetIconKeyImage();
|
if (InvestGold >= maxAmount)
|
{
|
m_TextNumber.text = maxAmount.ToString();
|
}
|
else
|
{
|
m_TextNumber.text = (model.selectInvestMoney - InvestGold).ToString();
|
}
|
PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting;//数据的刷新(h0418)
|
model.fairyInvestUpdate += FairyJadeInfoSeriorsUpdate;
|
FairyJadeInvestmentTipWin.SelectNumberRefresh += SelectNumberRefresh;
|
m_ScrollerController.OnRefreshCell += OnRefreshGridCell;
|
OnCreateGridLineCell(m_ScrollerController);
|
m_ScrollerController.JumpIndex(model.prioritySelectIndex);
|
}
|
|
|
protected override void OnAfterOpen()
|
{
|
if (model.redpoint.state == RedPointState.Simple)
|
{
|
model.IsRedpoint = false;
|
if (FairyJadeInvestmentRedPointEvent != null)
|
{
|
FairyJadeInvestmentRedPointEvent();
|
}
|
}
|
}
|
|
protected override void OnPreClose()
|
{
|
PlayerDatas.Instance.playerDataRefreshEvent -= Updatefighting;//数据的刷新(h0418)
|
model.fairyInvestUpdate -= FairyJadeInfoSeriorsUpdate;
|
m_ScrollerController.OnRefreshCell -= OnRefreshGridCell;
|
FairyJadeInvestmentTipWin.SelectNumberRefresh -= SelectNumberRefresh;
|
}
|
|
private void SelectNumberRefresh()
|
{
|
int InvestGold = model.GetInvestGold();
|
var maxAmount = investModel.GetMaxInvestAmount(model.fairyInvestType);
|
if (InvestGold >= maxAmount)
|
{
|
m_TextNumber.text = maxAmount.ToString();
|
}
|
else
|
{
|
m_TextNumber.text = (model.selectInvestMoney - InvestGold).ToString();
|
}
|
SetIconKeyImage();
|
if (InvestGold >= maxAmount)
|
{
|
m_JadeText.SetActive(false);
|
}
|
else
|
{
|
m_JadeText.SetActive(true);
|
m_JadeText.text = string.Format(Language.Get("FairyJadeInvestment_9"), model.selectInvestMoney - InvestGold);
|
}
|
m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
private void FairyJadeInfoSeriorsUpdate()
|
{
|
int InvestGold = model.GetInvestGold();
|
var maxAmount = investModel.GetMaxInvestAmount(model.fairyInvestType);
|
|
if (InvestGold < maxAmount)
|
{
|
model.selectInvestMoney = maxAmount;
|
m_SelectButton.SetActive(true);
|
}
|
else
|
{
|
model.selectInvestMoney = maxAmount;
|
m_SelectButton.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 >= maxAmount)
|
{
|
m_JadeText.SetActive(false);
|
}
|
else
|
{
|
m_JadeText.SetActive(true);
|
m_JadeText.text = string.Format(Language.Get("FairyJadeInvestment_9"), model.selectInvestMoney - InvestGold);
|
}
|
|
if (InvestGold >= maxAmount)
|
{
|
m_TextNumber.text = maxAmount.ToString();
|
}
|
else
|
{
|
m_TextNumber.text = (model.selectInvestMoney - InvestGold).ToString();
|
}
|
SetIconKeyImage();
|
IsInvestment();
|
m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
|
}
|
|
void OnCreateGridLineCell(ScrollerController gridCtrl)//预制体创建
|
{
|
gridCtrl.Refresh();
|
int _type = model.fairyInvestType;
|
if (!model.fairyInvestItems.ContainsKey(_type))
|
{
|
return;
|
}
|
var Dit = model.fairyInvestItems[_type];
|
foreach (int key in Dit.Keys)
|
{
|
gridCtrl.AddCell(ScrollerDataType.Header, key);
|
}
|
gridCtrl.Restart();
|
}
|
|
void OnRefreshGridCell(ScrollerDataType type, CellView cell)
|
{
|
FairyJadeInvestmentItem fairyJadeInvestmentItem = cell.GetComponent<FairyJadeInvestmentItem>();
|
int playerlv = cell.index;
|
fairyJadeInvestmentItem.Display(playerlv);
|
}
|
|
private void IsInvestment()//是否可投资
|
{
|
int InvestGold = model.GetInvestGold();
|
var maxAmount = investModel.GetMaxInvestAmount(model.fairyInvestType);
|
|
if (InvestGold < maxAmount)
|
{
|
m_MaxInverstment.SetActive(false);
|
|
if (InvestGold > 0)
|
{
|
m_Image_AD.SetSprite("XT_VIP_106");
|
m_InvestmentButton.SetActive(false);
|
m_RealizedInvestmentButton.SetActive(true);
|
}
|
else
|
{
|
m_Image_AD.SetSprite("XT_VIP_59");
|
m_InvestmentButton.SetActive(true);
|
m_RealizedInvestmentButton.SetActive(false);
|
}
|
}
|
else
|
{
|
m_Image_AD.SetSprite("XT_VIP_105");
|
m_MaxInverstment.SetActive(true);
|
m_InvestmentButton.SetActive(false);
|
m_RealizedInvestmentButton.SetActive(false);
|
}
|
}
|
|
private void InvestmentButton()//仙玉投资
|
{
|
var vipLevelLimit = investModel.GetVipLevelLimit(model.fairyInvestType);
|
if (PlayerDatas.Instance.baseData.VIPLv < vipLevelLimit)
|
{
|
ConfirmCancel.ShowRealmPopConfirm(Language.Get("Mail101"),
|
Language.Get("FairyJadeInvestVipLimit", vipLevelLimit),
|
Language.Get("Turntable_4"), () =>
|
{
|
WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc1);
|
});
|
return;
|
}
|
|
|
int InvestGold = model.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"), model.selectInvestMoney - InvestGold), (bool isOk) =>
|
{
|
if (isOk)
|
{
|
ConsumeFairyJade(model.selectInvestMoney);
|
}
|
});
|
}
|
else
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), string.Format(Language.Get("FairyJadeInvestment_1"), model.selectInvestMoney), (bool isOk) =>
|
{
|
if (isOk)
|
{
|
ConsumeFairyJade(model.selectInvestMoney);
|
}
|
});
|
}
|
}
|
|
private void RealizedInvestment_Button()//追加投资按钮
|
{
|
int InvestGold = model.GetInvestGold();
|
if (InvestGold > 0)
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), string.Format(Language.Get("FairyJadeInvestment_2"), model.selectInvestMoney - InvestGold), (bool isOk) =>
|
{
|
if (isOk)
|
{
|
ConsumeFairyJade(model.selectInvestMoney);
|
}
|
});
|
}
|
else
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), string.Format(Language.Get("FairyJadeInvestment_1"), model.selectInvestMoney), (bool isOk) =>
|
{
|
if (isOk)
|
{
|
ConsumeFairyJade(model.selectInvestMoney);
|
}
|
});
|
}
|
|
|
}
|
|
private void ConsumeFairyJade(int fairyJade)
|
{
|
int InvestGold = model.GetInvestGold();
|
int getFairyJade = (int)UIHelper.GetMoneyCnt(1);
|
if (getFairyJade >= (fairyJade - InvestGold))
|
{
|
int type = model.fairyInvestType;
|
model.SendFairyInvest(type, fairyJade);
|
}
|
else
|
{
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
}
|
}
|
private void GetMoney()
|
{
|
m_FairyJadeText.text = UIHelper.GetMoneyCnt(1).ToString();
|
}
|
|
private void SelectButton()
|
{
|
WindowCenter.Instance.Open<FairyJadeInvestmentTipWin>();
|
}
|
|
void Updatefighting(PlayerDataType _tCDBPlayerRefresh)//数据的刷新
|
{
|
switch (_tCDBPlayerRefresh)
|
{
|
case PlayerDataType.Gold:
|
GetMoney();
|
break;
|
case PlayerDataType.GoldPaper:
|
GetMoney();
|
break;
|
default:
|
break;
|
}
|
}
|
|
private void SetText()
|
{
|
int Type= model.fairyInvestType;
|
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 = model.selectInvestMoney;
|
int type = model.fairyInvestType;
|
var gear = investModel.GetInvestGear(type, money);
|
if (GearPositionList.Contains(gear))
|
{
|
int Inedx = GearPositionList.IndexOf(gear);
|
m_Image1.SetSprite(IconList1[Inedx]);
|
m_Image1.SetNativeSize();
|
m_Image2.SetSprite(IconList2[Inedx]);
|
m_Image2.SetNativeSize();
|
m_Image3.SetSprite(IconList3[Inedx]);
|
m_Image3.SetNativeSize();
|
}
|
}
|
}
|
|
}
|
|
|
|
|