using vnxbqy.UI;
|
using System;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
//竞技场主购买竞技次数
|
class FosterBuyWin : ILWindow
|
{
|
int m_ItemID = 0;//购买物品ID
|
uint m_Level;
|
int m_Count = 0;
|
int m_CountMax = 0;
|
|
int Unit = 0;
|
int OnePrice = 0;
|
Image m_MoneyIcon;
|
Image m_MoneyIcon1;
|
Text m_ItemInfo;
|
Text m_BuyCountTxt;//准备购买几个
|
Text m_ItemPrice;//单价
|
Text m_ItemAllPrice;//总价
|
|
Button m_ReduceBtn;
|
Button m_AddBtn;
|
Button m_CloseBtn;
|
Button m_BuyBtn;
|
Button m_CancelBtn;
|
Button m_MaxBtn;
|
ItemCell m_ItemCell;
|
|
StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
|
protected override void BindController()
|
{
|
m_ItemCell = proxy.GetWidgtEx<ItemCell>("ItemCell");
|
m_MoneyIcon = proxy.GetWidgtEx<Image>("MoneyIcon");
|
m_MoneyIcon1 = proxy.GetWidgtEx<Image>("MoneyIcon1");
|
m_ItemInfo = proxy.GetWidgtEx<Text>("ItemInfo");
|
m_BuyCountTxt = proxy.GetWidgtEx<Text>("BuyCountTxt");
|
m_ItemPrice = proxy.GetWidgtEx<Text>("ItemPrice");
|
m_ItemAllPrice = proxy.GetWidgtEx<Text>("ItemAllPrice");
|
m_AddBtn = proxy.GetWidgtEx<Button>("Btn_Add");
|
m_ReduceBtn = proxy.GetWidgtEx<Button>("Btn_Reduce");
|
m_BuyBtn = proxy.GetWidgtEx<Button>("Btn_Buy");
|
m_CloseBtn = proxy.GetWidgtEx<Button>("Btn_Close");
|
m_MaxBtn = proxy.GetWidgtEx<Button>("Btn_Max");
|
m_CancelBtn = proxy.GetWidgtEx<Button>("Btn_cancel");
|
}
|
|
protected override void AddListeners()
|
{
|
m_AddBtn.SetListener(() =>
|
{
|
AddBuyCount();
|
});
|
|
m_ReduceBtn.SetListener(() =>
|
{
|
ReduceBuyCount();
|
});
|
|
m_BuyBtn.SetListener(() =>
|
{
|
OnBtnBuy();
|
WindowCenter.Instance.CloseIL<FosterBuyWin>();
|
});
|
m_MaxBtn.SetListener(() =>
|
{
|
AddMax();
|
});
|
|
m_CloseBtn.SetListener(() =>
|
{
|
WindowCenter.Instance.CloseIL<FosterBuyWin>();
|
});
|
m_CancelBtn.SetListener(() =>
|
{
|
WindowCenter.Instance.CloseIL<FosterBuyWin>();
|
});
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
RefreshUI();
|
}
|
|
void RefreshUI()
|
{
|
int m_CountMaxTmp = 0;
|
m_ItemID = FosterModel.Instance.BuyItemID[0];
|
m_Level = FosterModel.Instance.CurrentLevel[0];
|
|
var config = StoreConfig.GetStoreCfgByItemIDEx(m_ItemID, 1);
|
OnePrice = config.MoneyNumber;
|
m_ItemPrice.text = config.MoneyNumber.ToString();
|
|
m_MoneyIcon.SetIconWithMoneyType(config.MoneyType);
|
m_MoneyIcon.SetNativeSize();
|
|
m_MoneyIcon1.SetIconWithMoneyType(config.MoneyType);
|
m_MoneyIcon1.SetNativeSize();
|
|
|
m_ItemCell.Init(new ItemCellModel(m_ItemID));
|
m_ItemCell.button.RemoveAllListeners();
|
m_ItemCell.button.AddListener(() => ItemTipUtility.Show(m_ItemID));
|
|
var itemConfig = ItemConfig.Get(m_ItemID);
|
|
m_ItemInfo.text = itemConfig.ItemName;
|
if (FosterModel.Instance.StateNow == 1)
|
{
|
ILHorseTrainConfig TrainConfig = FosterModel.Instance.GeHorseTrainConfig(1, m_Level);
|
Unit = TrainConfig.EatCntEverytime;
|
m_CountMaxTmp = TrainConfig.EatCntTotal - (int)FosterModel.Instance.CurrentHave[0];
|
}
|
else if (FosterModel.Instance.StateNow == 2)
|
{
|
ILPetTrainConfig TrainConfig = FosterModel.Instance.GePetTrainConfig(1, m_Level);
|
Unit = TrainConfig.EatCntEverytime;
|
m_CountMaxTmp = TrainConfig.EatCntTotal - (int)FosterModel.Instance.CurrentHave[0];
|
}
|
else
|
{
|
int EquipID = FosterModel.Instance.curEquipID;
|
ILLingQiTrainConfig TrainConfig = FosterModel.Instance.GeLingQiTrainConfig(EquipID,1, m_Level);
|
Unit = TrainConfig.EatCntEverytime;
|
m_CountMaxTmp = TrainConfig.EatCntTotal - (int)FosterModel.Instance.CurrentHave[0];
|
}
|
|
if (UIHelper.GetMoneyCnt(config.MoneyType) >= (ulong)(m_CountMaxTmp * OnePrice))
|
{
|
m_CountMax = m_CountMaxTmp;
|
}
|
else
|
{
|
m_CountMax = (int)(UIHelper.GetMoneyCnt(config.MoneyType) / (ulong)(Unit * OnePrice))* Unit;
|
}
|
m_BuyCountTxt.text = Unit.ToString();
|
m_Count = Unit;
|
|
ShowAllPrice(m_Count);
|
}
|
|
void ShowAllPrice(int num)
|
{
|
var config = StoreConfig.GetStoreCfgByItemIDEx(m_ItemID, 1);
|
var totalPrice = config.MoneyNumber * num;
|
m_ItemAllPrice.text = totalPrice.ToString();
|
m_BuyCountTxt.text = num.ToString();
|
}
|
|
public void OnBtnBuy()
|
{
|
var config = StoreConfig.GetStoreCfgByItemIDEx(m_ItemID, 1);
|
if(IsStoreSellOut(m_ItemID) < m_Count)
|
{
|
SysNotifyMgr.Instance.ShowTip("FosterStoreLimit");
|
return;
|
}
|
|
if (UIHelper.GetMoneyCnt(config.MoneyType) >= (ulong)(config.MoneyNumber * m_Count))
|
{
|
FosterModel.Instance.BuyItem(config.ID, m_Count);
|
}
|
else
|
{
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
}
|
}
|
private void AddMax()
|
{
|
if (IsStoreSellOut(m_ItemID) < m_Count)
|
{
|
SysNotifyMgr.Instance.ShowTip("FosterStoreLimit");
|
return;
|
}
|
if(IsStoreSellOut(m_ItemID) < m_CountMax)
|
{
|
m_Count = IsStoreSellOut(m_ItemID);
|
}
|
else
|
{
|
m_Count = m_CountMax;
|
}
|
|
m_BuyCountTxt.text = m_Count.ToString();
|
ShowAllPrice(m_Count);
|
}
|
private void AddBuyCount()
|
{
|
m_Count = m_Count + Unit;
|
if (m_Count >= m_CountMax)
|
m_Count = m_CountMax;
|
ShowAllPrice(m_Count);
|
}
|
|
private void ReduceBuyCount()
|
{
|
m_Count = m_Count - Unit;
|
if (m_Count <= Unit)
|
m_Count = Unit;
|
ShowAllPrice(m_Count);
|
}
|
int IsStoreSellOut(int id)
|
{
|
var config = StoreConfig.GetStoreCfgByItemIDEx(id, 1);
|
if (config.GoumaiNumber[0] == 0)
|
return 999999;//不限购
|
var shopConfig = StoreConfig.GetStoreCfg(id, config.MoneyType, 1);
|
int remainNum;
|
storeModel.TryGetIsSellOut(shopConfig, out remainNum);
|
|
return remainNum;
|
}
|
}
|