备份CatanBuilding瘦身独立工程
This commit is contained in:
102
Assets/Scripts/UI/Social/ClubChat/PromptedLike.cs
Normal file
102
Assets/Scripts/UI/Social/ClubChat/PromptedLike.cs
Normal file
@@ -0,0 +1,102 @@
|
||||
using asap.core;
|
||||
using cfg;
|
||||
using game;
|
||||
using GameCore;
|
||||
using System;
|
||||
using TMPro;
|
||||
using UniRx;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class PromptedLike : MonoBehaviour
|
||||
{
|
||||
public TMP_Text text_prompted;
|
||||
public Button btn_like;
|
||||
public GameObject icon;
|
||||
public GameObject icon_done;
|
||||
public TMP_Text text_num;
|
||||
|
||||
IUserService userService;
|
||||
string playFabId;
|
||||
IDisposable disposable;
|
||||
string multilingual;
|
||||
string mapName;
|
||||
ClubService clubService;
|
||||
long cursorId;
|
||||
int num;
|
||||
bool isEnable = true;
|
||||
private void Awake()
|
||||
{
|
||||
userService = GContext.container.Resolve<IUserService>();
|
||||
disposable = GContext.OnEvent<GetClubPlayInfoEvent>().Where(x => x.id == playFabId).Subscribe(SetAvatar);
|
||||
}
|
||||
private void Start()
|
||||
{
|
||||
icon.SetActive(true);
|
||||
icon_done.SetActive(false);
|
||||
btn_like.onClick.AddListener(() =>
|
||||
{
|
||||
SetBtnState(true);
|
||||
num++;
|
||||
text_num.text = num.ToString();
|
||||
clubService.SendLike(cursorId);
|
||||
});
|
||||
}
|
||||
void SetBtnState(bool like)
|
||||
{
|
||||
btn_like.enabled = !like;
|
||||
icon.SetActive(!like);
|
||||
icon_done.SetActive(like);
|
||||
}
|
||||
public void Init(long cursorId, string message, ClubService clubService)
|
||||
{
|
||||
btn_like.enabled = false;
|
||||
this.cursorId = cursorId;
|
||||
string[] str = message.Split('_');
|
||||
playFabId = str[0];
|
||||
int mapIndex = int.Parse(str[1]);
|
||||
var data = GContext.container.Resolve<Tables>().TbMapData.DataList[mapIndex];
|
||||
mapName = $"{mapIndex + 1}.{LocalizationMgr.GetText(data.Name_l10n_key)}";
|
||||
|
||||
multilingual = LocalizationMgr.GetText("UI_FishingSocialPanel_25");
|
||||
if (playFabId == userService.UserId)
|
||||
{
|
||||
text_prompted.text = multilingual.SafeFormat(userService.DisplayName, mapName);
|
||||
}
|
||||
else
|
||||
{
|
||||
PlayInfo clubPlayInfo = userService.GetPlayInfo(playFabId);
|
||||
if (clubPlayInfo != null)
|
||||
{
|
||||
text_prompted.text = multilingual.SafeFormat(clubPlayInfo.name, mapName);
|
||||
}
|
||||
}
|
||||
this.clubService = clubService;
|
||||
//点赞
|
||||
SetLike();
|
||||
}
|
||||
async void SetLike()
|
||||
{
|
||||
(bool islike, int likeNum) = await clubService.GetLikeCount(cursorId);
|
||||
if (!isEnable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
num = likeNum;
|
||||
text_num.text = likeNum.ToString();
|
||||
SetBtnState(islike);
|
||||
}
|
||||
void SetAvatar(GetClubPlayInfoEvent getClubPlayInfoEvent)
|
||||
{
|
||||
if (getClubPlayInfoEvent.id == playFabId)
|
||||
{
|
||||
text_prompted.text = multilingual.SafeFormat(getClubPlayInfoEvent.name, mapName);
|
||||
}
|
||||
}
|
||||
private void OnDestroy()
|
||||
{
|
||||
isEnable = false;
|
||||
disposable?.Dispose();
|
||||
disposable = null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user