Files
MinFt/Client/Assets/Scripts/UI/BattlePass/BPRewardBar.cs
Liubing\LB 3d8d4d18f3 first commit
先修复一下,错误的场景

删除不必要的钓场资产

修复into场景

update:更新meta文件,修复报错

update:修复资源

修复第一章节建造

修复建造第三章

update:删除多余内容

update:更新README.md

update:还原图标

update:更新README

update:更新配置
2026-04-28 02:17:22 +08:00

99 lines
2.5 KiB
C#

using asap.core;
using GameCore;
using TMPro;
using UniRx;
using UnityEngine;
using UnityEngine.UI;
public class BPRewardBar : PanelItemBase<int>
{
#region Field
private BPRewardSlot NormalSlot;
private BPRewardSlot VipSlot;
private GameObject
go_claim,
go_unlock,
go_normal;
private TMP_Text
txt_level;
Transform
btn_buyLevel;
Transform btn_buygrade;
BattlePassDataProvider
_dataProvider;
#endregion
bool isShowBuy;
#region Func
private void Awake()
{
txt_level = transform.Find("grade/text_num").GetComponent<TMP_Text>();
NormalSlot = transform.Find("gift1").GetComponent<BPRewardSlot>();
VipSlot = transform.Find("gift2").GetComponent<BPRewardSlot>();
btn_buyLevel = transform.Find("btn_buygrade").GetComponent<Transform>();
btn_buygrade = transform.parent.parent.Find("buygrade").GetComponent<Transform>();
go_claim = transform.Find("grade/position/claim").gameObject;
go_unlock = transform.Find("grade/position/unlock").gameObject;
go_normal = transform.Find("grade/position/bg").gameObject;
_dataProvider = GContext.container.Resolve<BattlePassDataProvider>();
GContext.OnEvent<BpGetExp>().Subscribe(x =>
{
ChangeState();
}).AddTo(this);
}
public override void OnInit()
{
gameObject.SetActive(true);
txt_level.text = data.ToString();
ChangeState();
NormalSlot.SetData(true, data);
VipSlot.SetData(false, data);
}
public void OnUnlockBpVip()
{
VipSlot.OnUnlockBpVip();
}
private void ChangeState()
{
go_claim.SetActive(false);
go_normal.SetActive(false);
go_unlock.SetActive(false);
if (isShowBuy)
{
btn_buygrade?.gameObject.SetActive(false);
}
isShowBuy = data == _dataProvider.GetBPCurLevel && data != _dataProvider.BPMaxLevel;
if (data == _dataProvider.GetBPCurLevel)
{
go_claim.SetActive(true);
}
else if (data > _dataProvider.GetBPCurLevel)
{
go_unlock.SetActive(true);
}
else
{
go_normal.SetActive(true);
}
}
private void LateUpdate()
{
if (isShowBuy)
{
btn_buygrade?.gameObject.SetActive(true);
btn_buygrade.position = btn_buyLevel.position;
}
}
#endregion
}