62 lines
2.0 KiB
C#
62 lines
2.0 KiB
C#
using asap.core;
|
|
using asap.playfab.async;
|
|
using PlayFab.ClientModels;
|
|
using System.Threading.Tasks;
|
|
using UniRx;
|
|
using UnityEngine;
|
|
|
|
namespace game
|
|
{
|
|
public class TitleNewsEvent
|
|
{
|
|
public TaskCompletionSource<TitleNewsItem> titleNewsItemAwait = new TaskCompletionSource<TitleNewsItem>();
|
|
public TitleNewsItem titleNewsItem;
|
|
public bool show;
|
|
}
|
|
public class TileNewsManager
|
|
{
|
|
public TitleNewsItem News;
|
|
public TileNewsManager()
|
|
{
|
|
News = null;
|
|
GContext.OnEvent<TitleNewsEvent>().Subscribe(ReadTitleNews);
|
|
}
|
|
async void ReadTitleNews(TitleNewsEvent titleNewsEvent)
|
|
{
|
|
titleNewsEvent.titleNewsItem = News;
|
|
bool isRod = false;
|
|
GetTitleNewsResult result = await PlayFabClientAsyncAPI.GetTitleNewsAsync(new PlayFab.ClientModels.GetTitleNewsRequest());
|
|
if (result != null && result.News != null && result.News.Count > 0)
|
|
{
|
|
News = result.News[0];
|
|
string newsValue = PlayerPrefs.GetString("TitleNewsEvent");
|
|
string timeStr = News.Timestamp.ToString();
|
|
if (newsValue != timeStr)
|
|
{
|
|
IUserService userService = GContext.container.Resolve<IUserService>();
|
|
if (userService.CreateTime < News.Timestamp)
|
|
{
|
|
isRod = true;
|
|
}
|
|
}
|
|
titleNewsEvent.titleNewsItemAwait.SetResult(result.News[0]);
|
|
}
|
|
else
|
|
{
|
|
News = null;
|
|
titleNewsEvent.titleNewsItemAwait.SetResult(null);
|
|
}
|
|
if (titleNewsEvent.show)
|
|
{
|
|
if (News != null)
|
|
{
|
|
PlayerPrefs.SetString("TitleNewsEvent", News.Timestamp.ToString());
|
|
}
|
|
isRod = false;
|
|
}
|
|
RedPointManager.Instance.SetRedPointState(RedPointName.Announcement, isRod);
|
|
}
|
|
|
|
}
|
|
}
|