//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, June 11, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
|
public class InvestWin : ILWindow
|
{
|
|
Text m_LoginMoney;
|
Text m_LevelMoney;
|
Text m_BossMoney;
|
|
//标语
|
Transform m_LevelAD;
|
Transform m_LoginAD;
|
Transform m_BossAD;
|
|
Button m_LevelTitle;
|
Image m_SelectLogin;
|
Button m_LoginTitle;
|
Image m_SelectLevel;
|
Button m_BossTitle;
|
Image m_SelectBoss;
|
Button m_Invest;
|
Image m_State;
|
Text m_Price;
|
ScrollerController m_ScrollControl;
|
TextEx orgPrice;
|
|
#region Built-in
|
protected override void BindController()
|
{
|
m_LoginMoney = proxy.GetWidgtEx<Text>("loginmoney");
|
m_LevelMoney = proxy.GetWidgtEx<Text>("levelmoney");
|
m_BossMoney = proxy.GetWidgtEx<Text>("bossmoney");
|
|
m_LevelAD = proxy.GetWidgtEx<Transform>("levelAD");
|
m_LoginAD = proxy.GetWidgtEx<Transform>("loginAD");
|
m_BossAD = proxy.GetWidgtEx<Transform>("bossAD");
|
|
m_LevelTitle = proxy.GetWidgtEx<Button>("LevelButton");
|
m_LoginTitle = proxy.GetWidgtEx<Button>("LoginButton");
|
m_BossTitle = proxy.GetWidgtEx<Button>("BossButton");
|
m_SelectLogin = proxy.GetWidgtEx<Image>("selectLogin");
|
m_SelectLevel = proxy.GetWidgtEx<Image>("selectLevel");
|
m_SelectBoss = proxy.GetWidgtEx<Image>("selectBoss");
|
|
m_Invest = proxy.GetWidgtEx<Button>("BuyButton");
|
m_State = proxy.GetWidgtEx<Image>("state");
|
|
m_Price = proxy.GetWidgtEx<Text>("price");
|
m_ScrollControl = proxy.GetWidgtEx<ScrollerController>("Scroller");
|
|
var obj = m_Invest.FindComponent("Text", "GameObject/Txt_orgPrice");
|
if (obj != null)
|
orgPrice = obj as TextEx;
|
}
|
|
protected override void AddListeners()
|
{
|
m_ScrollControl.OnRefreshCell += OnRefreshCell;
|
m_Invest.AddListener(OnInvest);
|
}
|
|
protected override void OnPreOpen()
|
{
|
InvestModel.Instance.selectType = InvestModel.Instance.GetSelectType();
|
|
InvestModel.Instance.onSelectUpdate += OnSelectUpdate;
|
InvestModel.Instance.onInvestUpdate += OnInvestUpdate;
|
PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
|
|
|
}
|
|
|
protected override void OnAfterOpen()
|
{
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
InvestModel.Instance.onSelectUpdate -= OnSelectUpdate;
|
InvestModel.Instance.onInvestUpdate -= OnInvestUpdate;
|
PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
void Display()
|
{
|
DisplayBase();
|
DisplayInvests();
|
DisplayInvestState();
|
}
|
|
void DisplayBase()
|
{
|
m_LoginMoney.text = InvestModel.Instance.GetTotalIncome(InvestModel.InvestType_Login).ToString();
|
m_LevelMoney.text = InvestModel.Instance.GetTotalIncome(InvestModel.InvestType_Level).ToString();
|
m_BossMoney.text = InvestModel.Instance.GetTotalIncome(InvestModel.InvestType_Boss).ToString();
|
|
m_LoginAD.SetActiveIL(InvestModel.Instance.selectType == InvestModel.InvestType_Login);
|
m_LevelAD.SetActiveIL(InvestModel.Instance.selectType == InvestModel.InvestType_Level);
|
m_BossAD.SetActiveIL(InvestModel.Instance.selectType == InvestModel.InvestType_Boss);
|
m_SelectLogin.SetActiveIL(InvestModel.Instance.selectType == InvestModel.InvestType_Login);
|
m_SelectLevel.SetActiveIL(InvestModel.Instance.selectType == InvestModel.InvestType_Level);
|
m_SelectBoss.SetActiveIL(InvestModel.Instance.selectType == InvestModel.InvestType_Boss);
|
|
m_LoginTitle.SetActiveIL(InvestModel.Instance.hasInvestType(InvestModel.InvestType_Login));
|
m_LevelTitle.SetActiveIL(InvestModel.Instance.hasInvestType(InvestModel.InvestType_Level));
|
m_BossTitle.SetActiveIL(InvestModel.Instance.hasInvestType(InvestModel.InvestType_Boss));
|
|
m_LoginTitle.SetListener(()=> {
|
InvestModel.Instance.selectType = InvestModel.InvestType_Login;
|
});
|
m_LevelTitle.SetListener(() => {
|
InvestModel.Instance.selectType = InvestModel.InvestType_Level;
|
});
|
m_BossTitle.SetListener(() => {
|
InvestModel.Instance.selectType = InvestModel.InvestType_Boss;
|
});
|
var orderInfoId = InvestModel.Instance.GetOrderInfoId(InvestModel.Instance.selectType);
|
var config = OrderInfoConfig.Get(orderInfoId);
|
m_Price.text = Language.Get("MonthWeekPrice", UIHelper.GetMoneyFormat(config.PayRMBNum));
|
if (orgPrice != null)
|
{
|
orgPrice.SetActiveIL(PlayerDatas.Instance.baseData.IsActive90Off);
|
orgPrice.text = Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(config.m_PayRMBNum));
|
}
|
}
|
|
void DisplayInvests()
|
{
|
var jumpIndex = -1;
|
var index = 0;
|
m_ScrollControl.Refresh();
|
var typeList = InvestModel.Instance.GetIdsByType(InvestModel.Instance.selectType);
|
for (int i = 0; i < typeList.Count; i++)
|
{
|
var investID = typeList[i];
|
m_ScrollControl.AddCell(ScrollerDataType.Header, investID);
|
var state = InvestModel.Instance.GetSingleInvestState(InvestModel.Instance.selectType, investID);
|
if (state == 2)
|
{
|
jumpIndex = index;
|
}
|
if (jumpIndex == -1 && state == 1)
|
{
|
jumpIndex = index;
|
}
|
index++;
|
}
|
|
m_ScrollControl.Restart();
|
|
if (jumpIndex != -1)
|
{
|
m_ScrollControl.JumpIndex(jumpIndex);
|
}
|
}
|
|
void DisplayInvestState()
|
{
|
bool isbuy = InvestModel.Instance.IsInvested(InvestModel.Instance.selectType);
|
m_Invest.SetActiveIL(!isbuy);
|
m_State.SetActiveIL(isbuy);
|
}
|
|
|
private void OnInvest()
|
{
|
InvestModel.Instance.SendInvest(InvestModel.Instance.selectType);
|
}
|
|
private void OnSelectUpdate()
|
{
|
Display();
|
}
|
|
private void OnInvestUpdate()
|
{
|
m_ScrollControl.m_Scorller.RefreshActiveCellViews();
|
DisplayInvestState();
|
}
|
|
private void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var invest = cell.GetILBehaviour<investCell>();
|
invest.Display(cell.index);
|
}
|
|
private void PlayerDataRefreshEvent(PlayerDataType dataType)
|
{
|
if (dataType == PlayerDataType.LV && InvestModel.Instance.selectType == InvestModel.InvestType_Level)
|
{
|
m_ScrollControl.m_Scorller.RefreshActiveCellViews();
|
}
|
}
|
|
}
|