123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using Sfs2X;
- using UnityEngine;
- using UnityEngine.UI;
- public class PlazaroomMemberItemLabel
- {
- public static string PlazaroomMemberItem = "PlazaroomMemberItem";
- public static string Nickname = "Nickname";
- public static string Content = "Content";
- public static string Frame = "Frame";
- public static string VisitButton = "VisitButton";
- public static string VisitButtonTitle = "VisitButtonTitle";
- public static string VisitImagePlus = "VisitImagePlus";
- public static string AddFriendButton = "AddFriendButton";
- public static string AddFriendTitle = "AddFriendTitle";
- public static string SendMessageButton = "SendMessageButton";
- public static string SendMessageText = "SendMessageText";
- public static string NewMessageFlagImage = "NewMessageFlagImage";
- }
- public class PlazaroomMemberItem : MonoBehaviour
- {
- #region Config
- public Text NicknameTitle;
- public Text ContentTitle;
- public Text VisitButtonTitle;
- public Text AddFriendTitle;
- public Text SendMessageText;
- public Image NewMessageFlagImage;
- public Button VisitButton;
- public Button AddFriendButton;
- public Button SendMessageButton;
- private bool Inited;
- private float RefreshTime = 10f;
- private float RefreshTimer;
- private DateTime JoinedRoomTime;
- public AccountData AccountData;
- #endregion
- private void Update()
- {
- RefreshTimer += Time.deltaTime;
- if (RefreshTimer >= RefreshTime)
- {
- RefreshTimer = 0;
- ContentTitle.text = GetContent();
- }
- }
- private void Init()
- {
- if (Inited)
- {
- return;
- }
- else
- {
- Inited = true;
- }
- Dictionary<string, Transform> childDictionary = new Dictionary<string, Transform>();
- Auxiliary.CompileDic(transform, childDictionary);
- NicknameTitle = childDictionary[PlazaroomMemberItemLabel.Nickname].GetComponent<Text>();
- ContentTitle = childDictionary[PlazaroomMemberItemLabel.Content].GetComponent<Text>();
- VisitButtonTitle = childDictionary[PlazaroomMemberItemLabel.VisitButtonTitle].GetComponent<Text>();
- AddFriendTitle = childDictionary[PlazaroomMemberItemLabel.AddFriendTitle].GetComponent<Text>();
- SendMessageText = childDictionary[PlazaroomMemberItemLabel.SendMessageText].GetComponent<Text>();
- NewMessageFlagImage = childDictionary[PlazaroomMemberItemLabel.NewMessageFlagImage].GetComponent<Image>();
- VisitButton = childDictionary[PlazaroomMemberItemLabel.VisitButton].GetComponent<Button>();
- AddFriendButton = childDictionary[PlazaroomMemberItemLabel.AddFriendButton].GetComponent<Button>();
- SendMessageButton = childDictionary[PlazaroomMemberItemLabel.SendMessageButton].GetComponent<Button>();
- LanguageManager.Add(AddFriendTitle, new MulLanStr(LanguageLabel.PlazaroomMemberItem__AddFriend));
- VisitButtonTitle.text = ResourceManager.Get<Text>(ObjectLabel.C_CostLab).text;
- VisitButton.onClick.AddListener(OnVisitButtonClick);
- AddFriendButton.onClick.AddListener(OnAddFriendButtonClick);
- SendMessageButton.onClick.AddListener(OnSendMessageButtonClick);
- FriendPanel.OnFriendListRefresh += RefreshRelationship;
- }
- public void Reset(AccountData accountData, DateTime joinedTime)
- {
- Init();
- AccountData = accountData;
- JoinedRoomTime = joinedTime;
- NicknameTitle.text = accountData.Nickname;
- ContentTitle.text = GetContent();
- AddFriendButton.SetActive(true);
- AddFriendButton.interactable = true;
- SendMessageButton.SetActive(false);
- RefreshRelationship(FriendPanel.FriendAccountDatas);
- }
- private string GetContent()
- {
- int minutes = (int)HttpManager.CurrentDateTime.Subtract(JoinedRoomTime).TotalMinutes;
- if (minutes == 0)
- {
- return Language.GetStr(LanguageLabel.UI__AE_JoinedTime1);
- }
- else if (minutes > 0)
- {
- string content = Language.GetStr(LanguageLabel.UI__AE_JoinedTime0);
- return content.Replace(TransferLabel.Value, minutes.ToString());
- }
- else
- {
- throw new Exception(minutes.ToString());
- }
- }
- public void RefreshRelationship(List<AccountData> accountDatas)
- {
- if (IsFriend(accountDatas))
- {
- AddFriendButton.SetActive(false);
- SendMessageButton.SetActive(true);
- }
- }
- public bool IsFriend(List<AccountData> accountDatas)
- {
- return accountDatas.MyContains(item => AccountData.SerialNumber == item.SerialNumber);
- }
- private void OnVisitButtonClick()
- {
- SFSManager.PlazaRoomController.TryExitToVisit(AccountData.SerialNumber, OnExitToVisit);
- }
- private void OnExitToVisit()
- {
- PlazaroomMemberPanel.ClosePanel();
- }
- private void OnAddFriendButtonClick()
- {
- if (!FriendPanel.IsFriendFull(true))
- {
- AudioManager.PlayClip(ResourceLabel.BtnClip);
- AddFriendButton.interactable = false;
- HttpManager.ApplyBuddy(AccountData.SerialNumber, SendApplySucceed, SendApplyFailed);
- }
- }
- private void SendApplyFailed()
- {
- AddFriendButton.interactable = true;
- Bubble.Show(null, Language.GetStr(LanguageLabel.PlazaroomMemberItem__ConnectError));
- }
- private void SendApplySucceed()
- {
- AddFriendButton.interactable = true;
- Bubble.Show(null, Language.GetStr(LanguageLabel.PlazaroomMemberItem__SendApplySucceed));
- AddFriendButton.SetActive(false);
- }
- private void OnSendMessageButtonClick()
- {
- AudioManager.PlayClip(ResourceLabel.BtnClip);
- MessagePanel.OpenPanel(AccountData);
- }
- }
|