2026-05-09 09:37:34 +08:00
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using FairyGUI;
|
|
|
|
|
using DG.Tweening;
|
|
|
|
|
using System;
|
|
|
|
|
using Spine.Unity;
|
|
|
|
|
using FGUI.ZM_Pass_14;
|
|
|
|
|
using FGUI.ZM_Common_01;
|
|
|
|
|
|
|
|
|
|
namespace BallKingdomCrush
|
|
|
|
|
{
|
|
|
|
|
public class PassViewUI : BaseUI
|
|
|
|
|
{
|
|
|
|
|
private PassViewUICtrl ctrl;
|
|
|
|
|
private PassViewModel model;
|
|
|
|
|
private FGUI.ZM_Pass_14.com_pass_view ui;
|
|
|
|
|
List<PassingTask> passing_list = new List<PassingTask>();
|
|
|
|
|
List<Durationtasks> Durationtasks_list = new List<Durationtasks>();
|
|
|
|
|
List<Passportrewards> Passportrewards_list = new List<Passportrewards>();
|
|
|
|
|
private Vector2 start_pos;
|
|
|
|
|
private Action closeCallback;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public PassViewUI(PassViewUICtrl ctrl) : base(ctrl)
|
|
|
|
|
{
|
|
|
|
|
uiName = UIConst.PassViewUI;
|
|
|
|
|
this.ctrl = ctrl;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void SetUIInfo(UIInfo uiInfo)
|
|
|
|
|
{
|
|
|
|
|
uiInfo.packageName = "ZM_Pass_14";
|
|
|
|
|
uiInfo.assetName = "com_pass_view";
|
|
|
|
|
uiInfo.layerType = UILayerType.Popup;
|
|
|
|
|
uiInfo.isNeedOpenAnim = false;
|
|
|
|
|
uiInfo.isNeedCloseAnim = false;
|
|
|
|
|
uiInfo.isNeedUIMask = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 生命周期
|
|
|
|
|
protected override void OnInit()
|
|
|
|
|
{
|
|
|
|
|
model = ModuleManager.Instance.GetModel(ModelConst.PassViewModel) as PassViewModel;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnClose()
|
|
|
|
|
{
|
|
|
|
|
GameHelper.showGameUI = true;
|
|
|
|
|
HallManager.Instance.UpdateSecondEvent -= upData;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnBind()
|
|
|
|
|
{
|
|
|
|
|
ui = baseUI as FGUI.ZM_Pass_14.com_pass_view;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnOpenBefore(object args)
|
|
|
|
|
{
|
|
|
|
|
if (Screen.safeArea.y != 0)
|
|
|
|
|
{
|
|
|
|
|
ui.gold.y += Screen.safeArea.y;
|
|
|
|
|
ui.close.y += Screen.safeArea.y;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (GameHelper.GetGameday() != DateTime.Now.Day)
|
|
|
|
|
{
|
|
|
|
|
DataMgr.GameTime.Value = 0;
|
|
|
|
|
SaveData.GetSaveObject().time_task_record = new List<int>();
|
|
|
|
|
GameHelper.SetGameday();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HallManager.Instance.UpdateSecondEvent += upData;
|
|
|
|
|
InitView();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnOpen(object args)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnHide()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnDisplay(object args)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 消息
|
|
|
|
|
protected override void AddListener()
|
|
|
|
|
{
|
|
|
|
|
GameDispatcher.Instance.AddListener(GameMsg.IAP_PAY_SUCCESS, pay_success);
|
|
|
|
|
GameDispatcher.Instance.AddListener(GameMsg.Update101, OnUpdate101);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
protected override void RemoveListener()
|
|
|
|
|
{
|
|
|
|
|
GameDispatcher.Instance.RemoveListener(GameMsg.IAP_PAY_SUCCESS, pay_success);
|
|
|
|
|
GameDispatcher.Instance.AddListener(GameMsg.Update101, OnUpdate101);
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
public void OnUpdate101(object a = null)
|
|
|
|
|
{
|
|
|
|
|
com_gold btn_gold = ui.gold as com_gold;
|
|
|
|
|
btn_gold.text_gold.text = $"{DataMgr.Coin.Value:N0}";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void pay_success(object a)
|
|
|
|
|
{
|
|
|
|
|
string type = (string)a;
|
|
|
|
|
if (type == IAPPayManager.PRODUCT_PASS_BONUS)
|
|
|
|
|
{
|
|
|
|
|
DOVirtual.DelayedCall(0.5f, () =>
|
|
|
|
|
{
|
|
|
|
|
SaveData.GetSaveObject().is_get_battlepass = true;
|
|
|
|
|
int gold = 0;
|
|
|
|
|
int _out = 0;
|
|
|
|
|
int _back = 0;
|
|
|
|
|
int _refresh = 0;
|
|
|
|
|
List<int> paylist = SaveData.GetSaveObject().battle_pass_paylist;
|
|
|
|
|
for (int i = 0; i < Passportrewards_list.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
if (GameHelper.GetBattleLv() > i)
|
|
|
|
|
{
|
|
|
|
|
if (Passportrewards_list[i].Paid_rewards_type == 0) gold += Passportrewards_list[i].Paid_rewards_num;
|
|
|
|
|
else if (Passportrewards_list[i].Paid_rewards_type == 1) _out += Passportrewards_list[i].Paid_rewards_num;
|
|
|
|
|
else if (Passportrewards_list[i].Paid_rewards_type == 2) _back += Passportrewards_list[i].Paid_rewards_num;
|
|
|
|
|
else if (Passportrewards_list[i].Paid_rewards_type == 3) _refresh += Passportrewards_list[i].Paid_rewards_num;
|
|
|
|
|
SaveData.GetSaveObject().battle_pass_paylist.Add(i + 1);
|
|
|
|
|
}
|
|
|
|
|
else break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GameDispatcher.Instance.Dispatch(GameMsg.Gold_refresh);
|
|
|
|
|
// GameHelper.AddItemNumber(0, _out);
|
|
|
|
|
// GameHelper.AddItemNumber(1, _back);
|
|
|
|
|
// GameHelper.AddItemNumber(2, _refresh);
|
|
|
|
|
|
|
|
|
|
// GameDispatcher.Instance.Dispatch(GameMsg.Sheep_item_refresh);
|
|
|
|
|
SaveData.SaveDataFunc();
|
|
|
|
|
GameHelper.ShowTips("purchase_succ", true);
|
|
|
|
|
if (gold > 0)
|
|
|
|
|
{
|
|
|
|
|
GetReward(gold, -1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ui.pass_list.numItems = Passportrewards_list.Count;
|
|
|
|
|
ui.btn_recive.visible = false;
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//初始化页面逻辑
|
|
|
|
|
private void InitView()
|
|
|
|
|
{
|
|
|
|
|
ui.close.SetClick(() => { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PassViewUI_Close); });
|
|
|
|
|
|
|
|
|
|
ui.btn_recive.ad_icon.visible = false;
|
|
|
|
|
|
|
|
|
|
ui.gold.GetChild("text_gold").text = $"{DataMgr.Coin.Value:N0}";
|
|
|
|
|
passing_list = ConfigSystem.GetConfig<PassingTask>();
|
|
|
|
|
Durationtasks_list = ConfigSystem.GetConfig<Durationtasks>();
|
|
|
|
|
Passportrewards_list = ConfigSystem.GetConfig<Passportrewards>();
|
|
|
|
|
setPassCom();
|
|
|
|
|
|
|
|
|
|
gotoItem();
|
|
|
|
|
|
|
|
|
|
ui.btn_tips.SetClick(() =>
|
|
|
|
|
{
|
|
|
|
|
ui.t0.Play();
|
|
|
|
|
tips_time = 0;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private int tips_time = 20;
|
|
|
|
|
|
|
|
|
|
void upData()
|
|
|
|
|
{
|
|
|
|
|
ui.remain_time.text = CommonHelper.TimeFormat(
|
|
|
|
|
SaveData.GetSaveObject().battle_pass_time + Passportrewards_list[0].Passportrewards_CD * 24 * 3600 - Convert.ToInt32(GameHelper.GetNowTime()),
|
|
|
|
|
CountDownType.Day);
|
|
|
|
|
|
|
|
|
|
if ((SaveData.GetSaveObject().battle_pass_time + Passportrewards_list[0].Passportrewards_CD * 24 * 3600) < GameHelper.GetNowTime())
|
|
|
|
|
{
|
|
|
|
|
SaveData.GetSaveObject().battle_pass_time = (int)GameHelper.GetNowTime();
|
|
|
|
|
SaveData.GetSaveObject().battle_pass_freelist.Clear();
|
|
|
|
|
SaveData.GetSaveObject().battle_pass_paylist.Clear();
|
|
|
|
|
SaveData.GetSaveObject().is_get_battlepass = false;
|
|
|
|
|
GameHelper.ResetGameExp();
|
|
|
|
|
SaveData.SaveDataFunc();
|
|
|
|
|
setPassCom();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tips_time++;
|
|
|
|
|
if (tips_time > 20)
|
|
|
|
|
{
|
|
|
|
|
ui.t0.Play();
|
|
|
|
|
tips_time = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
void setPassCom()
|
|
|
|
|
{
|
|
|
|
|
if ((SaveData.GetSaveObject().battle_pass_time + Passportrewards_list[0].Passportrewards_CD * 24 * 3600) < GameHelper.GetNowTime())
|
|
|
|
|
{
|
|
|
|
|
SaveData.GetSaveObject().battle_pass_time = (int)GameHelper.GetNowTime();
|
|
|
|
|
GameHelper.ResetGameExp();
|
|
|
|
|
SaveData.GetSaveObject().battle_pass_freelist.Clear();
|
|
|
|
|
SaveData.GetSaveObject().battle_pass_paylist.Clear();
|
|
|
|
|
SaveData.GetSaveObject().is_get_battlepass = false;
|
|
|
|
|
SaveData.SaveDataFunc();
|
|
|
|
|
}
|
|
|
|
|
upData();
|
|
|
|
|
ui.pass_list.itemRenderer = battle_itemRender;
|
|
|
|
|
ui.pass_list.numItems = Passportrewards_list.Count;
|
|
|
|
|
|
|
|
|
|
ui.text_level.text = GameHelper.GetBattleLv().ToString();
|
|
|
|
|
|
|
|
|
|
ui.progress_pass.value = GameHelper.GetGameExp();
|
|
|
|
|
|
|
|
|
|
if (GameHelper.GetBattleLv() >= Passportrewards_list.Count)
|
|
|
|
|
{
|
|
|
|
|
ui.progress_pass.max = Passportrewards_list[GameHelper.GetBattleLv() - 1].Eliminating_quantity;
|
|
|
|
|
ui.progress_pass.text_num.text = GameHelper.GetGameExp().ToString();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ui.progress_pass.max = Passportrewards_list[GameHelper.GetBattleLv()].Eliminating_quantity;
|
|
|
|
|
ui.progress_pass.text_num.text = GameHelper.GetGameExp() + "/" + Passportrewards_list[GameHelper.GetBattleLv()].Eliminating_quantity;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ui.btn_recive.visible = !SaveData.GetSaveObject().is_get_battlepass;
|
|
|
|
|
ui.btn_recive.SetClick(() =>
|
|
|
|
|
{
|
|
|
|
|
// if (!GameHelper.IsGiftSwitch())UnlockPass();
|
|
|
|
|
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PassunlockUI_Open);
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
void setItemUrl(GLoader loader, int urltype)
|
|
|
|
|
{
|
|
|
|
|
if (urltype == 0) loader.url = "ui://ZM_Pass_14/master_pass_box_01_gold";
|
|
|
|
|
else if (urltype == 4) loader.url = "ui://ZM_Pass_14/master_pass_box_02_gold";
|
|
|
|
|
else if (urltype == 1) loader.url = "ui://ZM_Common_01/main_prize_iocn_dj_03";
|
|
|
|
|
else if (urltype == 2) loader.url = "ui://ZM_Common_01/main_prize_iocn_dj_02";
|
|
|
|
|
else if (urltype == 3) loader.url = "ui://ZM_Common_01/main_prize_iocn_dj_01";
|
|
|
|
|
}
|
|
|
|
|
void seItemClick(com_item_award item, int number, int type, int index = 0)
|
|
|
|
|
{
|
|
|
|
|
if (type == 0)
|
|
|
|
|
{
|
|
|
|
|
GetReward(number, index);
|
|
|
|
|
getRewardIndex = -1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
GameHelper.AddItemNumber(type - 1, number);
|
|
|
|
|
GameDispatcher.Instance.Dispatch(GameMsg.Sheep_item_refresh);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ui.pass_list.numItems = Passportrewards_list.Count;
|
|
|
|
|
|
|
|
|
|
GameDispatcher.Instance.Dispatch(GameMsg.RefreshRedDot);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void UnlockPass()
|
|
|
|
|
{
|
|
|
|
|
GameHelper.ShowVideoAd("pass_unlock", isSuccess =>
|
|
|
|
|
{
|
|
|
|
|
if (isSuccess)
|
|
|
|
|
{
|
|
|
|
|
SaveData.GetSaveObject().is_get_battlepass = true;
|
|
|
|
|
int gold = 0;
|
|
|
|
|
int out_ = 0;
|
|
|
|
|
int back_ = 0;
|
|
|
|
|
int refresh_ = 0;
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < Passportrewards_list.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
if (GameHelper.GetBattleLv() > i)
|
|
|
|
|
{
|
|
|
|
|
if (Passportrewards_list[i].Paid_rewards_type == 0) gold += Passportrewards_list[i].Paid_rewards_num;
|
|
|
|
|
else if (Passportrewards_list[i].Paid_rewards_type == 1) out_ += Passportrewards_list[i].Paid_rewards_num;
|
|
|
|
|
else if (Passportrewards_list[i].Paid_rewards_type == 2) back_ += Passportrewards_list[i].Paid_rewards_num;
|
|
|
|
|
else if (Passportrewards_list[i].Paid_rewards_type == 3) refresh_ += Passportrewards_list[i].Paid_rewards_num;
|
|
|
|
|
SaveData.GetSaveObject().battle_pass_paylist.Add(i + 1);
|
|
|
|
|
}
|
|
|
|
|
else break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (gold > 0)
|
|
|
|
|
{
|
|
|
|
|
GetReward(gold);
|
|
|
|
|
// var start = GameHelper.GetUICenterPosition(ui.btn_recive);
|
|
|
|
|
// var end = GameHelper.GetUICenterPosition(ui.gold.GetChild("ani_node"));
|
|
|
|
|
|
|
|
|
|
// var rewardData = new RewardData();
|
|
|
|
|
// var rewardSingleData = new RewardSingleData(101, gold, RewardOrigin.AdTask);
|
|
|
|
|
// rewardData.AddReward(rewardSingleData);
|
|
|
|
|
// rewardData.displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange;
|
|
|
|
|
// rewardData.AddCompleted((isScu) =>
|
|
|
|
|
// {
|
|
|
|
|
// DOVirtual.DelayedCall(0.5f, () =>
|
|
|
|
|
// {
|
|
|
|
|
// var startNum = PreferencesMgr.Instance.Currency101 - gold;
|
|
|
|
|
// DOVirtual.Float((float)startNum, (float)GameHelper.GetGoldNumber(), 1f,
|
|
|
|
|
// value => { ui.gold.GetChild("text_gold").text = ((int)value).ToString(); });
|
|
|
|
|
// });
|
|
|
|
|
// });
|
|
|
|
|
|
|
|
|
|
// GameDispatcher.Instance.Dispatch(GameMsg.GetReward, rewardData);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GameHelper.AddItemNumber(0, out_);
|
|
|
|
|
GameHelper.AddItemNumber(1, back_);
|
|
|
|
|
GameHelper.AddItemNumber(2, refresh_);
|
|
|
|
|
GameDispatcher.Instance.Dispatch(GameMsg.Sheep_item_refresh);
|
|
|
|
|
ui.pass_list.numItems = Passportrewards_list.Count;
|
|
|
|
|
ui.btn_recive.visible = false;
|
|
|
|
|
SaveData.SaveDataFunc();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void GetReward(int awardNum, int index = 0)
|
|
|
|
|
{
|
|
|
|
|
var rewardData = new RewardData();
|
|
|
|
|
var end = GameHelper.GetUICenterPosition((ui.gold as com_gold).img);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var rewardSingleData = new RewardSingleData(101, awardNum, RewardOrigin.Passview, index)
|
|
|
|
|
{
|
|
|
|
|
startPosition = start_pos,
|
|
|
|
|
endPosition = new Vector2(end.x, end.y)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
rewardData.AddReward(rewardSingleData);
|
|
|
|
|
if (index >= 0)
|
|
|
|
|
{
|
|
|
|
|
rewardData.displayType = RewardDisplayType.RewardFly | RewardDisplayType.Dialog |
|
|
|
|
|
RewardDisplayType.ValueChange;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
rewardData.displayType = RewardDisplayType.RewardFly | RewardDisplayType.ValueChange;
|
|
|
|
|
|
|
|
|
|
rewardData.AddCompleted(success =>
|
|
|
|
|
{
|
|
|
|
|
if (success)
|
|
|
|
|
{
|
|
|
|
|
var startNum = DataMgr.Coin.Value - awardNum;
|
|
|
|
|
|
|
|
|
|
DOVirtual.Float((float)startNum, (float)GameHelper.GetGoldNumber(), 1f,
|
|
|
|
|
value => { ui.gold.GetChild("text_gold").text = GameHelper.Get101Str((decimal)value); }).OnComplete(() =>
|
|
|
|
|
{
|
|
|
|
|
// 动画完成时确保最终值被正确设置
|
|
|
|
|
ui.gold.GetChild("text_gold").text = GameHelper.Get101Str((decimal)GameHelper.GetGoldNumber());
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
GameDispatcher.Instance.Dispatch(GameMsg.GetReward, rewardData);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private int getRewardIndex = -1;
|
|
|
|
|
|
|
|
|
|
void gotoItem()
|
|
|
|
|
{
|
|
|
|
|
if (getRewardIndex > 0)
|
|
|
|
|
{
|
|
|
|
|
ui.pass_list.ScrollToView(getRewardIndex - 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void battle_itemRender(int index, GObject obj)
|
|
|
|
|
{
|
|
|
|
|
index++;
|
|
|
|
|
com_pass_item item = (com_pass_item)obj;
|
|
|
|
|
int pass_level = GameHelper.GetBattleLv();
|
|
|
|
|
item.index_text.text = index.ToString();
|
|
|
|
|
item.free_item.type.selectedIndex = 0;
|
|
|
|
|
item.pay_item.type.selectedIndex = 1;
|
|
|
|
|
|
|
|
|
|
List<int> freelist = SaveData.GetSaveObject().battle_pass_freelist;
|
|
|
|
|
List<int> paylist = SaveData.GetSaveObject().battle_pass_paylist;
|
|
|
|
|
if (index > 0)
|
|
|
|
|
{
|
|
|
|
|
item.free_item.number_text.text = "x" + GameHelper.Get101Str(Passportrewards_list[index - 1].Free_rewards_num);
|
|
|
|
|
item.pay_item.number_text.text = "x" + GameHelper.Get101Str(Passportrewards_list[index - 1].Paid_rewards_num);
|
|
|
|
|
if (Passportrewards_list[index - 1].Free_rewards_type == 0)
|
|
|
|
|
{
|
|
|
|
|
setItemUrl(item.free_item.item_loader, 0);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
setItemUrl(item.free_item.item_loader, Passportrewards_list[index - 1].Paid_rewards_type);
|
|
|
|
|
}
|
|
|
|
|
if (Passportrewards_list[index - 1].Paid_rewards_type == 0)
|
|
|
|
|
{
|
|
|
|
|
setItemUrl(item.pay_item.item_loader, 4);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
setItemUrl(item.pay_item.item_loader, Passportrewards_list[index - 1].Paid_rewards_type);
|
|
|
|
|
// if (Passportrewards_list[index - 1].Paid_rewards_type >= 1 && Passportrewards_list[index - 1].Paid_rewards_type <= 3)
|
|
|
|
|
// {
|
|
|
|
|
// item.pay_item.item_loader.SetScale(0.55f, 0.55f);
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
if (index <= pass_level)//等级超过了
|
|
|
|
|
{
|
|
|
|
|
if (freelist.Contains(index))//领取过
|
|
|
|
|
{
|
|
|
|
|
item.free_item.state.selectedIndex = 2;
|
|
|
|
|
item.free_item.ani_node.visible = false;
|
|
|
|
|
item.free_item.SetClick(() => { });
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (getRewardIndex < 0) getRewardIndex = index;
|
|
|
|
|
|
|
|
|
|
item.free_item.state.selectedIndex = 1;
|
|
|
|
|
item.free_item.SetClick(() =>
|
|
|
|
|
{
|
|
|
|
|
freelist.Add(index);
|
|
|
|
|
SaveData.SaveDataFunc();
|
|
|
|
|
seItemClick(item.free_item, Passportrewards_list[index - 1].Free_rewards_num, Passportrewards_list[index - 1].Free_rewards_type, index - 1);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (paylist.Contains(index))//领取过
|
|
|
|
|
{
|
|
|
|
|
item.pay_item.state.selectedIndex = 2;
|
|
|
|
|
item.pay_item.SetClick(() => { });
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (SaveData.GetSaveObject().is_get_battlepass)
|
|
|
|
|
{
|
|
|
|
|
if (getRewardIndex < 0) getRewardIndex = index;
|
|
|
|
|
item.pay_item.state.selectedIndex = 1;
|
|
|
|
|
item.pay_item.SetClick(() =>
|
|
|
|
|
{
|
|
|
|
|
paylist.Add(index);
|
|
|
|
|
SaveData.SaveDataFunc();
|
|
|
|
|
seItemClick(item.pay_item, Passportrewards_list[index - 1].Paid_rewards_num, Passportrewards_list[index - 1].Paid_rewards_type, -1);
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
item.pay_item.state.selectedIndex = 4;
|
|
|
|
|
item.pay_item.SetClick(() =>
|
|
|
|
|
{
|
|
|
|
|
// if (!GameHelper.IsGiftSwitch()) UnlockPass();
|
|
|
|
|
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PassunlockUI_Open);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
item.free_item.state.selectedIndex = 0;//不可领取
|
|
|
|
|
item.free_item.SetClick(() =>
|
|
|
|
|
{
|
|
|
|
|
GameHelper.ShowTips("no_enough_lv_ps", true);
|
|
|
|
|
});
|
|
|
|
|
item.pay_item.SetClick(() =>
|
|
|
|
|
{
|
|
|
|
|
if (SaveData.GetSaveObject().is_get_battlepass)
|
|
|
|
|
{
|
|
|
|
|
GameHelper.ShowTips("no_enough_lv_ps", true);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// if (!GameHelper.IsGiftSwitch()) UnlockPass();
|
|
|
|
|
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PassunlockUI_Open);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
if (SaveData.GetSaveObject().is_get_battlepass)
|
|
|
|
|
{
|
|
|
|
|
item.pay_item.state.selectedIndex = 0;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
item.pay_item.state.selectedIndex = 3;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (index < pass_level)//进度条
|
|
|
|
|
{
|
|
|
|
|
item.is_full.selectedIndex = com_pass_item.Is_full_full;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else if (index >= pass_level)
|
|
|
|
|
{
|
|
|
|
|
item.is_full.selectedIndex = com_pass_item.Is_full_full;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
item.is_full.selectedIndex = com_pass_item.Is_full_full;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (index == 0)
|
|
|
|
|
{
|
|
|
|
|
// item.state.selectedIndex = 3;
|
|
|
|
|
// index++;
|
|
|
|
|
}
|
|
|
|
|
if (index == 1)
|
|
|
|
|
{
|
|
|
|
|
item.state.selectedIndex = 0;
|
|
|
|
|
|
|
|
|
|
if (pass_level > 0)
|
|
|
|
|
{
|
|
|
|
|
item.progress_0_top.height = 154;
|
|
|
|
|
|
|
|
|
|
if (((float)(GameHelper.GetGameExp() - Passportrewards_list[0].Eliminating_quantity) / (Passportrewards_list[1].Eliminating_quantity - Passportrewards_list[0].Eliminating_quantity)) > 0.5)
|
|
|
|
|
{
|
|
|
|
|
item.progress_0_down.height = 175;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
item.progress_0_down.height = (float)(GameHelper.GetGameExp() - Passportrewards_list[0].Eliminating_quantity) / (Passportrewards_list[1].Eliminating_quantity - Passportrewards_list[0].Eliminating_quantity) * 2 * 175;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
item.progress_0_top.height = (float)GameHelper.GetGameExp() / Passportrewards_list[0].Eliminating_quantity * 154;
|
|
|
|
|
item.progress_0_down.height = 0;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (index == Passportrewards_list.Count)
|
|
|
|
|
{
|
|
|
|
|
item.state.selectedIndex = 2;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (((float)(GameHelper.GetGameExp() - Passportrewards_list[index - 2].Eliminating_quantity) / (Passportrewards_list[index - 1].Eliminating_quantity - Passportrewards_list[index - 2].Eliminating_quantity)) > 0.5)
|
|
|
|
|
{
|
|
|
|
|
float height = (((float)(GameHelper.GetGameExp() - Passportrewards_list[index - 2].Eliminating_quantity) / (Passportrewards_list[index - 1].Eliminating_quantity - Passportrewards_list[index - 2].Eliminating_quantity)) - 0.5f) * 2 * 188;
|
|
|
|
|
if (height > 188) height = 188;
|
|
|
|
|
item.progress_2_top.height = height;
|
|
|
|
|
}
|
|
|
|
|
else item.progress_2_top.height = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
item.state.selectedIndex = 1;
|
|
|
|
|
|
|
|
|
|
if (pass_level >= index)
|
|
|
|
|
{
|
|
|
|
|
item.progress_1_top.height = 192;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (pass_level == (index - 1))
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (((float)(GameHelper.GetGameExp() - Passportrewards_list[index - 2].Eliminating_quantity) / (Passportrewards_list[index - 1].Eliminating_quantity - Passportrewards_list[index - 2].Eliminating_quantity)) > 0.5)
|
|
|
|
|
{
|
|
|
|
|
float height = (((float)(GameHelper.GetGameExp() - Passportrewards_list[index - 2].Eliminating_quantity) / (Passportrewards_list[index - 1].Eliminating_quantity - Passportrewards_list[index - 2].Eliminating_quantity)) - 0.5f) * 2 * 192;
|
|
|
|
|
if (height > 192) height = 192;
|
|
|
|
|
item.progress_1_top.height = height;
|
|
|
|
|
}
|
|
|
|
|
else item.progress_1_top.height = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
item.progress_1_top.height = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (pass_level == index)
|
|
|
|
|
{
|
|
|
|
|
if (((float)(GameHelper.GetGameExp() - Passportrewards_list[index - 1].Eliminating_quantity) / (Passportrewards_list[index].Eliminating_quantity - Passportrewards_list[index - 1].Eliminating_quantity)) <= 0.5)
|
|
|
|
|
{
|
|
|
|
|
float height = (float)(GameHelper.GetGameExp() - Passportrewards_list[index - 1].Eliminating_quantity) / (Passportrewards_list[index].Eliminating_quantity - Passportrewards_list[index - 1].Eliminating_quantity) * 2 * 188;
|
|
|
|
|
if (height > 188) height = 188;
|
|
|
|
|
item.progress_1_down.height = height;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
item.progress_1_down.height = 188;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (pass_level > index) item.progress_1_down.height = 188;
|
|
|
|
|
else item.progress_1_down.height = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-04-20 12:06:34 +08:00
|
|
|
}
|