Files
MinFt/Client/Assets/Scripts/UI/Setting/FishingMorePanel.cs
2026-04-27 12:07:32 +08:00

265 lines
11 KiB
C#

using asap.core;
using game;
using GameCore;
using TMPro;
using UniRx;
using UnityEngine;
using UnityEngine.UI;
using UnityNative.Sharing;
public class FishingMorePanel : MonoBehaviour
{
Button btn_setting;
Button btn_debug;
Button btn_mask;
Button btn_close;
TMP_Text text_name;
Button btn_event;
Button btn_survey;
Button btn_announcement;
Button btn_signin;
Button btn_travelmap;
Button btn_howtoplay;
Button btn_invite;
//Button btn_redeemCode;
Button btn_mail;
TMP_Text text_version;
TMP_Text text_id;
Button btn_copy;
Head head;
Button headButton;
Button btn_achieve;
private CompositeDisposable disposables = new CompositeDisposable();
private Button btnJoin;
Button btn_social;
GameObject redpoint;
Button btn_support;
//Button btn_leaderboard;
private void Awake()
{
btn_setting = transform.Find("bg/resource/btn_setting").GetComponent<Button>();
btn_debug = transform.Find("bg/btn_debug/btn_green").GetComponent<Button>();
btn_mask = transform.Find("Mask").GetComponent<Button>();
btn_close = transform.Find("bg/btn_close").GetComponent<Button>();
head = transform.Find("bg/btn_head").GetComponent<Head>();
headButton = transform.Find("bg/btn_head").GetComponent<Button>();
text_name = transform.Find("bg/btn_head/text_name").GetComponent<TMP_Text>();
btn_event = transform.Find("bg/resource/btn_event").GetComponent<Button>();
btn_announcement = transform.Find("bg/resource/btn_announcement").GetComponent<Button>();
btn_signin = transform.Find("bg/resource/btn_signin").GetComponent<Button>();
//btn_redeemCode = transform.Find("bg/resource/btn_code").GetComponent<Button>();
btn_mail = transform.Find("bg/resource/btn_mail").GetComponent<Button>();
text_version = transform.Find("bg/player_info/text_version").GetComponent<TMP_Text>();
text_id = transform.Find("bg/player_info/text_id").GetComponent<TMP_Text>();
btn_copy = transform.Find("bg/player_info/text_id/btn_copy").GetComponent<Button>();
btn_debug.gameObject.SetActive(GContext.container.Resolve<IConfig>().Get("GM", "0") == "1");
GContext.container.Resolve<GuideDataCenter>().InspectTriggerGuide("FishingMorePanel");
btn_event.gameObject.SetActive(true);
btn_achieve = transform.Find("bg/resource/btn_achieve").GetComponent<Button>();
btn_survey = transform.Find("bg/resource/btn_survey").GetComponent<Button>();
btnJoin = transform.Find("bg/resource/btn_join").GetComponent<Button>();
btn_travelmap = transform.Find("bg/resource/btn_travelmap").GetComponent<Button>();
//btn_leaderboard = transform.Find("bg/resource/btn_leaderboard").GetComponent<Button>();
btn_howtoplay = transform.Find("bg/resource/btn_howtoplay").GetComponent<Button>();
btn_invite = transform.Find("bg/resource/btn_invite").GetComponent<Button>();
btn_announcement.gameObject.SetActive(false);
btn_social = transform.Find("bg/btn_social/btn_green").GetComponent<Button>();
redpoint = transform.Find("bg/btn_social/btn_green/Ani_Container/redpoint").gameObject;
btn_support = transform.Find("bg/btn_support/btn_signout").GetComponent<Button>();
}
void Start()
{
text_version.text = $"Ver. {VersionTool.FromLocal().ToVerString()}";
text_id.text = $"ID: {GContext.container.Resolve<IUserService>().CustomId}";
//GContext.OnEvent<ChangeLanguageEvent>().Subscribe(OnChangeLanguage).AddTo(disposables);
//OnChangeLanguage();
headButton.onClick.AddListener(async () =>
{
await UIManager.Instance.ShowUI(UITypes.PlayerHeadPopupPanel);
});
btn_debug.onClick.AddListener(async () =>
{
btn_debug.enabled = false;
await UIManager.Instance.GetUIAsync(UITypes.DeBugPanel);
btn_debug.enabled = true;
});
btn_setting.onClick.AddListener(async () =>
{
btn_setting.enabled = false;
await UIManager.Instance.GetUIAsync(UITypes.SettingPopupPanel);
btn_setting.enabled = true;
});
btn_mask.onClick.AddListener(() => { UIManager.Instance.DestroyUI(UITypes.FishingMorePanel); });
btn_close.onClick.AddListener(() => { UIManager.Instance.DestroyUI(UITypes.FishingMorePanel); });
text_name.text = GContext.container.Resolve<IUserService>().DisplayName;
head.SetData(GContext.container.Resolve<IUserService>().AvatarUrl);
btn_announcement.onClick.AddListener(async () =>
{
btn_announcement.enabled = false;
await UIManager.Instance.ShowUI(UITypes.NoticePopupPanel);
btn_announcement.enabled = true;
});
btn_signin.gameObject.SetActive(GContext.container.Resolve<SigninData>().DailySignIsOpen());
btn_signin.onClick.AddListener(async () =>
{
btn_signin.enabled = false;
await UIManager.Instance.ShowUILoad(UITypes.EventSignupPopupPanel_2);
btn_signin.enabled = true;
});
//btn_vip.onClick.AddListener(OnClickVip);
btn_copy.onClick.AddListener(() =>
{
GUIUtility.systemCopyBuffer = GContext.container.Resolve<IUserService>().CustomId;
ToastPanel.Show(LocalizationMgr.GetText("UI_ToastPanel_25"));
});
btn_event.onClick.AddListener(OnClickEvent);
GContext.OnEvent<ChangeAvatarEvent>().Subscribe(OnChangeAvatar).AddTo(disposables);
//btn_redeemCode.gameObject.SetActive(GContext.container.Resolve<RedeemCodeService>().IsUnlock);
//// btn_redeemCode.gameObject.SetActive(false);
//btn_redeemCode.onClick.AddListener(async () =>
//{
//btn_redeemCode.enabled = false;
//await UIManager.Instance.GetUIAsync(UITypes.RedemptionCodePopupPanel);
//btn_redeemCode.enabled = true;
//});
// [REMOVED] Mail module deleted
btn_mail.gameObject.SetActive(false);
// btn_mail.onClick.AddListener(async () =>
// {
// btn_mail.enabled = false;
// await UIManager.Instance.GetUIAsync(UITypes.FishingMailPopupPanel);
// btn_mail.enabled = true;
// });
btn_achieve.onClick.AddListener(async () =>
{
UIManager.Instance.DestroyUI(UITypes.FishingMorePanel);
await UIManager.Instance.ShowUI(UITypes.PlayerGradePanel);
GContext.Publish(new HideHomePanelEvent());
GContext.Publish(new ChangeTabEvent() { index = 1 });
});
// TODO: restore when TravelMapCtrl is available
// btn_travelmap.onClick.AddListener(async () =>
// {
// UIManager.Instance.DestroyUI(UITypes.FishingMorePanel);
// GContext.container.Unregister<TravelMapCtrl>();
//
// var travelMapCtrl = new TravelMapCtrl();
// travelMapCtrl.Init(true);
// GContext.container.RegisterInstance<TravelMapCtrl>(travelMapCtrl);
// await UIManager.Instance.ShowUI(UITypes.TravelMapPanel);
// GContext.Publish(new HideHomePanelEvent());
// GContext.Publish(new MapShowEvent() { isShow = false });
// });
btn_achieve.transform.Find("redpoint").gameObject.SetActive(GContext.container.Resolve<PlayerFishData>().PTSRed());
btn_achieve.gameObject.SetActive(GContext.container.Resolve<PlayerData>().OpenGrade);
btn_survey.onClick.AddListener(async () =>
{
await UIManager.Instance.ShowUI(UITypes.SurveyPopupPanel);
});
object sid = null;
btn_survey.gameObject.SetActive(sid != null);
//vk 主页配好就删
btnJoin.gameObject.SetActive(!ChannelManager.IsRustoreStore && GContext.container.Resolve<FishingEventData>().IsJoinUsPanelOpen);
btnJoin.onClick.AddListener(OnClickBtnJoin);
// Debug.Log($"<color=#fbc21a>Level 41: {GContext.container.Resolve<FishingEventData>().IsJoinUsPanelOpen}</color>");
// Debug.Log($"<color=#fbc21a>FootPrint: {!GContext.container.Resolve<IFootPrintService>().HasFootPrint(EFootPrint.HasCommunityGuidancePanelBeenOpened)}</color>");
var doNeedRedDot = (GContext.container.Resolve<FishingEventData>().IsJoinUsPanelOpen && !GContext.container
.Resolve<IFootPrintService>().HasFootPrint(EFootPrint.HasCommunityGuidancePanelBeenOpened));
RedPointManager.Instance.SetRedPointState("menu.joinus", doNeedRedDot);
//排行榜
//btn_leaderboard.gameObject.SetActive(GContext.container.Resolve<LeadboardData>().IsOpenleaderboard);
//btn_leaderboard.onClick.AddListener(() =>
//{
// _ = UIManager.Instance.ShowUI(UITypes.FishingLeaderboardPanel);
//});
btn_howtoplay.onClick.AddListener(async () =>
{
await UIManager.Instance.ShowUI(new UIType("FishingInfoPopupPanel"));
});
btn_invite.onClick.AddListener(OnClickInviteLink);
btn_social.onClick.AddListener(OnSocial);
btn_support.onClick.AddListener(() =>
{
// AIHelp removed
#if AGG
using (var e = GEvent.TackEvent("click_support"))
{
e.AddContent("button_position", 1);
}
#endif
});
SetRed();
}
void OnClickInviteLink()
{
_ = UIManager.Instance.ShowUI(UITypes.FishingSocialInviteFriendsPopupPanel);
}
void OnSocial()
{
UIManager.Instance.GetUIAsync(UITypes.BindAccountPopupPanel);
PlayerPrefs.SetInt(BindAccountRPDays, NowDays);
redpoint.SetActive(false);
}
int NowDays => (int)(ZZTimeHelper.UtcNow() - new System.DateTime(2026, 2, 1)).TotalDays;
string BindAccountRPDays => "BindAccountRPDays" + GContext.container.Resolve<IUserService>().UserId;
void SetRed()
{
int lv = GContext.container.Resolve<PlayerData>().lv;
if (lv < 100)
{
redpoint.SetActive(false);
return;
}
bool isShow = false; // TYSdkFacade removed - bind account always hidden
if (!isShow)
{
redpoint.SetActive(false);
return;
}
int days = PlayerPrefs.GetInt(BindAccountRPDays, 0);
redpoint.SetActive(NowDays - days >= 7);
}
void OnClickEvent()
{
_ = UIManager.Instance.ShowUI(UITypes.EventReportPopupPanel);
}
void OnChangeAvatar(ChangeAvatarEvent data)
{
head.SetData(GContext.container.Resolve<IUserService>().AvatarUrl);
text_name.text = GContext.container.Resolve<IUserService>().DisplayName;
}
//void OnChangeLanguage(ChangeLanguageEvent changeLanguageEvent = null)
//{
// GContext.Publish(new TitleNewsEvent());
//}
private void OnDestroy()
{
disposables.Dispose();
disposables = null;
}
private async void OnClickBtnJoin()
{
await UIManager.Instance.ShowUI(UITypes.CommunityGuidancePanel);
btnJoin.transform.Find("redpoint").gameObject.SetActive(false);
}
}