先修复一下,错误的场景 删除不必要的钓场资产 修复into场景 update:更新meta文件,修复报错 update:修复资源 修复第一章节建造 修复建造第三章 update:删除多余内容 update:更新README.md update:还原图标 update:更新README update:更新配置
112 lines
4.0 KiB
C#
112 lines
4.0 KiB
C#
using asap.core;
|
|
using cfg;
|
|
using GameCore;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UniRx;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class HomeBtnBattlepass : EventButtonResource
|
|
{
|
|
Button btn_battlePass;
|
|
TMP_Text txt_battlePassTimer;
|
|
TMP_Text text_level;
|
|
private CompositeDisposable Disposables = new CompositeDisposable();
|
|
private void Awake()
|
|
{
|
|
text_level = transform.Find("lock/text_level").GetComponent<TMP_Text>();
|
|
txt_battlePassTimer = transform.Find("text_time").GetComponent<TMP_Text>();
|
|
btn_battlePass = GetComponent<Button>();
|
|
if (GContext.container.Resolve<PlayerData>().lv < GContext.container.Resolve<Tables>().TbGlobalConfig.PreviewUnlockLevel)
|
|
{
|
|
gameObject.SetActive(false);
|
|
return;
|
|
}
|
|
CheckResource(new List<string>() { "BattlePassPanel" });
|
|
GContext.OnEvent<TargetEvent>().Where(_ => _.type == 3 && _.subType == 7).Subscribe(OnEvent_TargetEvent).AddTo(Disposables);
|
|
}
|
|
private void Start()
|
|
{
|
|
btn_battlePass.onClick.AddListener(OnClickBattlePass);
|
|
RefreshBattlePassBtn();
|
|
}
|
|
|
|
IDisposable disposable;
|
|
async void OnClickBattlePass()
|
|
{
|
|
var dataProvider = GContext.container.Resolve<BattlePassDataProvider>();
|
|
if (!dataProvider.IsActivating)
|
|
{
|
|
GameObject panel = await UIManager.Instance.ShowUILoad(new UIType("FeatureUnlockPreviewPopupPanel"));
|
|
FeatureUnlockPreviewPopupPanel featureUnlockPreviewPopupPanel = panel.GetComponent<FeatureUnlockPreviewPopupPanel>();
|
|
featureUnlockPreviewPopupPanel.InitPanel(1);
|
|
return;
|
|
}
|
|
GameObject go = await UIManager.Instance.ShowUILoad(UITypes.BattlePassPanel);
|
|
if (go != null)
|
|
{
|
|
GContext.Publish(new HideHomePanelEvent());
|
|
}
|
|
}
|
|
void OnEvent_TargetEvent(TargetEvent targetEvent)
|
|
{
|
|
if (this == null)
|
|
{
|
|
return;
|
|
}
|
|
RefreshBattlePassBtn();
|
|
}
|
|
void RefreshBattlePassBtn()
|
|
{
|
|
var dataProvider = GContext.container.Resolve<BattlePassDataProvider>();
|
|
btn_battlePass.transform.Find("lock").gameObject.SetActive(!dataProvider.IsActivating);
|
|
if (!dataProvider.IsActivating)
|
|
{
|
|
txt_battlePassTimer.gameObject.SetActive(false);
|
|
FishingEvent rankEvent = GContext.container.Resolve<FishingEventData>().GetEventeByTimType(3, 7);
|
|
if (rankEvent != null)
|
|
{
|
|
text_level.text = LocalizationMgr.GetFormatTextValue("UI_PlayerGradePopupPanel_1", rankEvent.ConditionList[0].Param[0]);
|
|
}
|
|
//战令结束
|
|
return;
|
|
}
|
|
disposable?.Dispose();
|
|
DateTime curTimer = ZZTimeHelper.UtcNow().UtcNowOffset();
|
|
DateTime endTime = GContext.container.Resolve<FishingEventData>().GetEventEndTime(dataProvider.Data.BattlePassRecord.ID);
|
|
TimeSpan duration = endTime - curTimer;
|
|
dataProvider.CheckIfRefreshDailyTask();
|
|
dataProvider.CheckIfRefreshWeekTask();
|
|
txt_battlePassTimer.text = ConvertTools.ConvertTime2(duration);
|
|
disposable = Observable.Interval(TimeSpan.FromSeconds(1))
|
|
.TakeWhile(seconds => seconds < duration.TotalSeconds)
|
|
.Subscribe(x =>
|
|
{
|
|
if (dataProvider.IsActivating)
|
|
{
|
|
txt_battlePassTimer.text = ConvertTools.ConvertTime2(endTime - ZZTimeHelper.UtcNow().UtcNowOffset());
|
|
}
|
|
}, RefreshBattlePass);
|
|
dataProvider.SetRedPoint();
|
|
|
|
}
|
|
void RefreshBattlePass()
|
|
{
|
|
disposable?.Dispose();
|
|
Disposables?.Dispose();
|
|
}
|
|
private void OnDisable()
|
|
{
|
|
RefreshBattlePass();
|
|
}
|
|
protected override void OnLoadEventResource()
|
|
{
|
|
if (GContext.container.Resolve<PlayerData>().lv >= GContext.container.Resolve<Tables>().TbGlobalConfig.PreviewUnlockLevel)
|
|
{
|
|
gameObject.SetActive(true);
|
|
}
|
|
}
|
|
}
|