using vnxbqy.UI;
|
using System;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
class FlowerGiveWin : ILWindow
|
{
|
|
Button closeBtn;
|
Text flowerCnt;
|
Text tagName;
|
Button pullBtn;
|
Text closeCnt; //亲密度
|
Button giveButton;
|
ScrollerController scroll;
|
Transform listbg;
|
List<Image> selectFlowers = new List<Image>();
|
List<ItemCell> items = new List<ItemCell>();
|
List<Text> addCharms = new List<Text>();
|
List<Text> addTagCharms = new List<Text>();
|
List<Button> flowerBtns = new List<Button>();
|
List<Text> titles = new List<Text>();
|
ButtonEx reduceBtn;
|
ButtonEx addBtn;
|
Slider splitSlider;
|
Text num;
|
|
|
PackModel packModel { get { return ModelCenter.Instance.GetModelEx<PackModel>(); } }
|
StoreModel storeModel { get { return ModelCenter.Instance.GetModelEx<StoreModel>(); } }
|
RoleParticularModel roleModel { get { return ModelCenter.Instance.GetModel<RoleParticularModel>(); } }
|
List<int> giftIDs = new List<int>() { 1, 2, 3 }; // 对应情缘礼物表的礼物编号
|
int selectFlowerID = 1; //对应giftIDs
|
|
|
|
#region Built-in
|
protected override void BindController()
|
{
|
closeBtn = proxy.GetWidgtEx<Button>("CloseButton");
|
flowerCnt = proxy.GetWidgtEx<Text>("flowerCnt");
|
tagName = proxy.GetWidgtEx<Text>("tagName");
|
pullBtn = proxy.GetWidgtEx<Button>("pullBtn");
|
closeCnt = proxy.GetWidgtEx<Text>("closeCnt");
|
giveButton = proxy.GetWidgtEx<Button>("GiveButton");
|
scroll = proxy.GetWidgtEx<ScrollerController>("scroller");
|
listbg = proxy.GetWidgtEx<Transform>("listbg");
|
|
for (int i = 0; i < giftIDs.Count; i++)
|
{
|
selectFlowers.Add(proxy.GetWidgtEx<Image>("selectFlower" + i));
|
items.Add(proxy.GetWidgtEx<ItemCell>("itemcell" + i));
|
addCharms.Add(proxy.GetWidgtEx<Text>("addCharm" + i));
|
addTagCharms.Add(proxy.GetWidgtEx<Text>("addTagCharm" + i));
|
flowerBtns.Add(proxy.GetWidgtEx<Button>("flowers" + i));
|
titles.Add(proxy.GetWidgtEx<Text>("title" + i));
|
}
|
|
reduceBtn = proxy.GetWidgtEx<ButtonEx>("Reducebtn");
|
addBtn = proxy.GetWidgtEx<ButtonEx>("Addbtn");
|
splitSlider = proxy.GetWidgtEx<Slider>("SplitSlider");
|
num = proxy.GetWidgtEx<Text>("NumText");
|
}
|
|
protected override void AddListeners()
|
{
|
closeBtn.SetListener(() => {
|
WindowCenter.Instance.CloseIL<FlowerGiveWin>();
|
});
|
|
pullBtn.SetListener(() => {
|
if (listbg.gameObject.activeSelf)
|
{
|
listbg.SetActiveIL(false);
|
}
|
else
|
{
|
listbg.SetActiveIL(true);
|
scroll.m_Scorller.RefreshActiveCellViews();
|
}
|
});
|
|
|
giveButton.SetListener(() => {
|
GiveFlower();
|
});
|
|
reduceBtn.SetListener(OnClickReduceBtn);
|
addBtn.SetListener(OnClickAddBtn);
|
splitSlider.onValueChanged.AddListener(OnSplitValueChange);
|
}
|
|
protected override void OnPreOpen()
|
{
|
packModel.refreshItemCountEvent += RefreshItemCount;
|
FlowerGiftModel.Instance.OnSelectPlayer += OnSelectPlayer;
|
DTCB308_tagGCGroupPlayers.OnGroupPlayerEvent += OnGroupPlayerEvent;
|
scroll.OnRefreshCell += OnRefreshCell;
|
|
if (proxy.functionOrder != 0)
|
{
|
FlowerGiftModel.Instance.jumpPlayer.playerID = proxy.functionOrder;
|
if (WindowCenter.Instance.IsOpenEx<RankPanel>())
|
{
|
var viewPlayerData = roleModel.GetViewPlayerData(roleModel.viewPlayer);
|
FlowerGiftModel.Instance.jumpPlayer.name = viewPlayerData.rolePropData.Name;
|
}
|
else
|
{
|
FlowerGiftModel.Instance.jumpPlayer.name = PlayerDetails.PlayerName;
|
}
|
}
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
packModel.refreshItemCountEvent -= RefreshItemCount;
|
FlowerGiftModel.Instance.OnSelectPlayer -= OnSelectPlayer;
|
DTCB308_tagGCGroupPlayers.OnGroupPlayerEvent -= OnGroupPlayerEvent;
|
scroll.OnRefreshCell -= OnRefreshCell;
|
proxy.functionOrder = 0;
|
FlowerGiftModel.Instance.jumpPlayer.playerID = 0;
|
FlowerGiftModel.Instance.selectPlayer = new FlowerGiftModel.SelectPlayer()
|
{
|
playerID = 0
|
};
|
}
|
|
#endregion
|
|
public void InitPanel()
|
{
|
int maxValue = packModel.GetItemCountByID(PackType.Item, 600) / 10;
|
|
splitSlider.minValue = 1;
|
splitSlider.maxValue = maxValue;
|
splitSlider.value = 1;
|
num.text = "1";
|
}
|
|
|
private void RefreshWashPointDes()
|
{
|
int giveNum = (int)Math.Max(1, Mathf.Ceil(splitSlider.value));
|
var config = ILLoveGiftConfig.Get(giftIDs[0]);
|
num.text = Mathf.Ceil(giveNum).ToString();
|
items[0].countText.text = Mathf.Ceil(giveNum * config.OnceGiveCnt).ToString();
|
addCharms[0].text = Language.Get("addCharm", (int)(config.AddCharmSelf * giveNum * config.OnceGiveCnt));
|
addTagCharms[0].text = Language.Get("addTagCharm", (int)(config.AddCharmTag * giveNum * config.OnceGiveCnt));
|
}
|
|
public void OnSplitValueChange(float value)
|
{
|
RefreshWashPointDes();
|
}
|
|
public void OnClickAddBtn()
|
{
|
if (splitSlider.value < splitSlider.maxValue)
|
{
|
splitSlider.value++;
|
}
|
|
RefreshWashPointDes();
|
}
|
|
public void OnClickReduceBtn()
|
{
|
if (splitSlider.value > splitSlider.minValue)
|
{
|
splitSlider.value--;
|
}
|
RefreshWashPointDes();
|
}
|
|
void RefreshItemCount(PackType packType, int index, int itemID)
|
{
|
if (packType == PackType.Item && itemID == 600)
|
{
|
flowerCnt.text = packModel.GetItemCountByID(PackType.Item, 600).ToString();
|
InitPanel();
|
}
|
}
|
|
|
void Display()
|
{
|
|
if (FlowerGiftModel.Instance.jumpPlayer.playerID != 0)
|
{
|
FlowerGiftModel.Instance.selectPlayer = new FlowerGiftModel.SelectPlayer()
|
{
|
playerID = FlowerGiftModel.Instance.jumpPlayer.playerID,
|
name = FlowerGiftModel.Instance.jumpPlayer.name,
|
};
|
}
|
CreatPlayerList();
|
if (FlowerGiftModel.Instance.jumpPlayer.playerID == 0 && FlowerGiftModel.Instance.playerList.Count > 0)
|
{
|
FlowerGiftModel.Instance.selectPlayer = new FlowerGiftModel.SelectPlayer()
|
{
|
playerID = FlowerGiftModel.Instance.playerList[0].playerID,
|
name = FlowerGiftModel.Instance.playerList[0].name,
|
};
|
}
|
|
|
flowerCnt.text = packModel.GetItemCountByID(PackType.Item, 600).ToString();
|
if (FlowerGiftModel.Instance.selectPlayer.playerID == 0)
|
{
|
tagName.text = Language.Get("ChatPanel_AddFriendName_1");
|
}
|
else
|
{
|
tagName.text = FlowerGiftModel.Instance.selectPlayer.name;
|
}
|
listbg.SetActiveIL(false);
|
closeCnt.text = FlowerGiftModel.Instance.GetCloseCnt(FlowerGiftModel.Instance.selectPlayer.playerID).ToString();
|
ShowFlowers();
|
|
}
|
|
|
void OnSelectPlayer()
|
{
|
|
tagName.text = FlowerGiftModel.Instance.selectPlayer.name;
|
listbg.SetActiveIL(false);
|
closeCnt.text = FlowerGiftModel.Instance.GetCloseCnt(FlowerGiftModel.Instance.selectPlayer.playerID).ToString();
|
|
}
|
|
void OnGroupPlayerEvent()
|
{
|
closeCnt.text = FlowerGiftModel.Instance.GetCloseCnt(FlowerGiftModel.Instance.selectPlayer.playerID).ToString();
|
}
|
|
|
void GiveFlower()
|
{
|
if (PlayerDatas.Instance.baseData.LV < 30)
|
{
|
SysNotifyMgr.Instance.ShowTip("RuneSpecialHoleLevelError", 30);
|
return;
|
}
|
if (FlowerGiftModel.Instance.selectPlayer.playerID == 0)
|
{
|
SysNotifyMgr.Instance.ShowTip("FlowerNoPlayer");
|
return;
|
}
|
|
var config = ILLoveGiftConfig.Get(selectFlowerID);
|
var hasCnt = packModel.GetItemCountByID(PackType.Item, config.GiftItemID);
|
|
var pack = new IL_CB310_tagCMSendGifts();
|
pack.TagPlayerID = (uint)FlowerGiftModel.Instance.selectPlayer.playerID;
|
pack.GiftNum = (ushort)selectFlowerID;
|
int giveNum = config.OnceGiveCnt;
|
if (selectFlowerID == 1)
|
{
|
giveNum = int.Parse(num.text) * config.OnceGiveCnt;
|
}
|
pack.GiftCount = (uint)giveNum;
|
pack.IsAutoBuy = 1;
|
if (hasCnt >= giveNum)
|
{
|
GameNetSystem.Instance.SendInfo(pack);
|
return;
|
}
|
|
var storeConfig = StoreConfig.GetStoreCfg(config.GiftItemID, 1, 1);
|
var needCnt = config.OnceGiveCnt - hasCnt;
|
var needMoney = (needCnt) * storeConfig.MoneyNumber;
|
|
if ((int)HeroControler.Instance.GetMoneyCntIL(1) < needMoney)
|
{
|
WindowCenter.Instance.Open<RechargeTipWin>();
|
return;
|
}
|
|
int remainCnt = 0;
|
bool isSellOut = storeModel.TryGetIsSellOut(storeConfig, out remainCnt);
|
|
if (isSellOut || (!isSellOut && remainCnt != 0 && needCnt > remainCnt))
|
{
|
SysNotifyMgr.Instance.ShowTip("StoreNotEnough");
|
return;
|
}
|
|
if (!FlowerGiftModel.Instance.giveToggle)
|
{
|
ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("FlowerNoEnough", needMoney, config.GiftItemID, needCnt),
|
Language.Get("ConfirmCancel102"), (Action<bool, bool>)((bool isOk, bool isToggle) =>
|
{
|
if (isOk)
|
{
|
GameNetSystem.Instance.SendInfo(pack);
|
}
|
FlowerGiftModel.Instance.giveToggle = isToggle;
|
}));
|
|
}
|
else
|
{
|
GameNetSystem.Instance.SendInfo(pack);
|
}
|
|
}
|
|
void CreatPlayerList()
|
{
|
FlowerGiftModel.Instance.GetPlayerList();
|
scroll.Refresh();
|
|
if (FlowerGiftModel.Instance.jumpPlayer.playerID != 0)
|
{
|
scroll.AddCell(ScrollerDataType.Header, FlowerGiftModel.Instance.jumpPlayer.playerID);
|
}
|
|
for (int i = 0; i < FlowerGiftModel.Instance.playerList.Count; i++)
|
{
|
if (FlowerGiftModel.Instance.playerList[i].playerID == FlowerGiftModel.Instance.jumpPlayer.playerID)
|
continue;
|
//此处i +1 是为了区分FlowerGiftModel.Instance.jumpPlayer.playerID 为0的情况,刷新调用时-1
|
scroll.AddCell(ScrollerDataType.Header, i + 1);
|
}
|
|
scroll.Restart();
|
scroll.m_Scorller.RefreshActiveCellViews();
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetILBehaviour<FlowerGivePlayerCell>();
|
_cell?.Display(cell.index);
|
}
|
|
void ShowFlowers()
|
{
|
for (int i = 0; i < flowerBtns.Count; i++)
|
{
|
var config = ILLoveGiftConfig.Get(giftIDs[i]);
|
selectFlowers[i].SetActiveIL(giftIDs[i] == selectFlowerID);
|
var model = new ItemCellModel(config.GiftItemID, false, (ulong)config.OnceGiveCnt);
|
items[i].Init(model);
|
addCharms[i].text = Language.Get("addCharm", (int)(config.AddCharmSelf * config.OnceGiveCnt));
|
addTagCharms[i].text = Language.Get("addTagCharm", (int)(config.AddCharmTag * config.OnceGiveCnt));
|
titles[i].text = config.Name;
|
|
int index = i;
|
flowerBtns[i].SetListener(() => {
|
selectFlowerID = giftIDs[index];
|
ShowSelectFlower();
|
});
|
}
|
InitPanel();
|
}
|
|
void ShowSelectFlower()
|
{
|
for (int i = 0; i < flowerBtns.Count; i++)
|
{
|
selectFlowers[i].SetActiveIL(giftIDs[i] == selectFlowerID);
|
}
|
}
|
}
|