Files
JJBB/Assets/Project/Script/GUI/Community/CommunityMsgPageLogic.cs
2024-08-23 15:49:34 +08:00

410 lines
12 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Games.Item;
using System.Collections.Generic;
using GCGame.Table;
using Games.GlobeDefine;
public class CommunityMsgPageLogic : UIControllerBase<CommunityMsgPageLogic>
{
void OnEnable()
{
SetInstance(this);
InitPage();
}
void OnDisable()
{
SetInstance(null);
}
public void CloseWindow()
{
gameObject.SetActive(false);
}
#region
public GameObject _BasePanel;
public GameObject _ViewPanel;
public GameObject _FlowerPanel;
public void InitPage()
{
InitBasePanel();
}
#endregion
#region base
public Text _ViewCnt;
public Text _PresentCnt;
public Text _FlowerCnt;
public Button _BtnPresent;
public UIContainerBlog _MsgContainer;
public GameObject _OptPanel;
public GameObject _LeaveMsgPanel;
public Text _LeaveMsgTip;
public GameObject _MyOptPanel;
public GameObject _OtherOptPanel;
private CommunityLeaveMsgInfo _SelectedMsg;
public void InitBasePanel()
{
_BasePanel.SetActive(true);
_ViewPanel.SetActive(false);
_FlowerPanel.SetActive(false);
_OptPanel.SetActive(true);
_LeaveMsgPanel.SetActive(false);
UpdateGiftCnts();
_SelectedMsg = null;
if (CommunityLogic.CommunityPlayerInfo.GUID == GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Guid)
{
_MyOptPanel.SetActive(true);
_OtherOptPanel.SetActive(false);
_BtnPresent.gameObject.SetActive(true);
}
else
{
_MyOptPanel.SetActive(false);
_OtherOptPanel.SetActive(true);
_BtnPresent.gameObject.SetActive(false);
}
_LeaveMsgs.Clear();
_MsgContainer.InitContentItem(null);
ReloadMoreMsg();
//_ViewCnt.text = "1";
//_PresentCnt.text = "2";
//_FlowerCnt.text = "3";
//List<CommunityLeaveMsgInfo> leaveMsgs = new List<CommunityLeaveMsgInfo>();
//for (int i = 0; i < 5; ++i)
//{
// CommunityLeaveMsgInfo msgInfo = new CommunityLeaveMsgInfo();
// leaveMsgs.Add(msgInfo);
// msgInfo.GUID = (ulong)i;
// msgInfo.Profession = i;
// msgInfo.Name = "FocusPlayer" + i;
// msgInfo.Level = 100 + i;
// msgInfo.MsgText = "";
// msgInfo.Time = i;
//}
//_MsgContainer.InitContentItem(leaveMsgs, OnReciveMsg);
}
public void UpdateGiftCnts()
{
_ViewCnt.text = Community.Instance._ViewCnt.ToString();
_PresentCnt.text = Community.Instance._GiftCnt.ToString();
_FlowerCnt.text = Community.Instance._FlowerCnt.ToString();
}
public void OnReciveMsg(object msgObj)
{
CommunityLeaveMsgInfo msgInfo = msgObj as CommunityLeaveMsgInfo;
if (msgInfo == null)
return;
_SelectedMsg = msgInfo;
OnBtnShowLeaveMsg();
_LeaveMsgTip.text = StrDictionary.GetClientDictionaryString("#{39006}", msgInfo.Name);
}
public void OnLeaveWord(string leaveWord)
{
CG_REQ_LEAVE_WORD packet = (CG_REQ_LEAVE_WORD)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_LEAVE_WORD);
packet.Roleguid = CommunityLogic.CommunityPlayerInfo.GUID;
packet.Msg = leaveWord;
if (_SelectedMsg != null)
{
packet.Targetguid = _SelectedMsg.GUID;
}
else
{
packet.Targetguid = GlobeVar.INVALID_GUID;
}
packet.SendPacket();
}
public void OnBtnShowLeaveMsg()
{
_OptPanel.SetActive(false);
_LeaveMsgPanel.SetActive(true);
}
public void OnBtnShowOptPanel()
{
_OptPanel.SetActive(true);
_LeaveMsgPanel.SetActive(false);
_SelectedMsg = null;
}
public void OnViewSpace()
{
CG_REQ_STEP_SPACE packet = (CG_REQ_STEP_SPACE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_STEP_SPACE);
packet.Roleguid = CommunityLogic.CommunityPlayerInfo.GUID;
packet.SendPacket();
}
public void OnSendFlower()
{
CommunityGiveFlowerLogic.GiveFlower(CommunityLogic.CommunityPlayerInfo.GUID, CommunityLogic.CommunityPlayerInfo.Name);
//CommunityLogic.Instance()._GiveFlowerPanel.ShowWindow();
}
#endregion
#region load msg
private int _LastLoadMsgIDX = -1;
private List<CommunityLeaveMsgInfo> _LeaveMsgs = new List<CommunityLeaveMsgInfo>();
private static int _ReloadMsg = 10;
public void LoadMoreMsg()
{
CG_REQ_VIEW_LEAVE_WORD_LIST packet = (CG_REQ_VIEW_LEAVE_WORD_LIST)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_VIEW_LEAVE_WORD_LIST);
packet.Roleguid = CommunityLogic.CommunityPlayerInfo.GUID;
packet.Curindex = _LastLoadMsgIDX;
packet.Targetindex = _LastLoadMsgIDX;
packet.Count = _ReloadMsg;
packet.SendPacket();
}
public void ReloadMoreMsg()
{
_LastLoadMsgIDX = -1;
_LeaveMsgs.Clear();
LoadMoreMsg();
}
public void RetLoadMsg(GC_RET_VIEW_LEAVE_WORD_LIST packet)
{
for (int i = 0; i < packet.roleguidlistCount; ++i)
{
CommunityLeaveMsgInfo msgInfo = new CommunityLeaveMsgInfo();
_LeaveMsgs.Add(msgInfo);
msgInfo.MsgIDX = packet.GetIndexlist(i);
msgInfo.GUID = packet.GetRoleguidlist(i);
msgInfo.HeadIconName = packet.GetHeadpiclist(i);
msgInfo.Name = packet.GetNamelist(i);
msgInfo.Level = packet.GetLevellist(i);
msgInfo.MsgText = packet.GetLeavewordlist(i);
msgInfo.Time = packet.GetRecordtimelist(i);
msgInfo.TargetGUID = packet.GetTargetguidlist(i);
msgInfo.TargetName = packet.GetTargetnamelist(i);
msgInfo.Profession = packet.GetJoblist(i);
_LastLoadMsgIDX = msgInfo.MsgIDX;
}
if (packet.roleguidlistCount == 0)
{
if (_LeaveMsgs.Count > _ReloadMsg)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{39013}"));
}
_MsgContainer.IsLoadAllItems = true;
}
_MsgContainer.InitContentItem(_LeaveMsgs, OnReciveMsg);
if (_LeaveMsgs.Count > 0)
{
CommunityLogic.Instance()._EmptyTip.text = "";
}
else
{
CommunityLogic.Instance()._EmptyTip.text = StrDictionary.GetClientDictionaryString("#{39018}");
}
}
#endregion
#region viewer panel
public UIContainerBase _ViewContainer;
public void InitViewPanel()
{
_BasePanel.SetActive(false);
_ViewPanel.SetActive(true);
_FlowerPanel.SetActive(false);
LoadMoreViewHis();
//List<CommunityOtherPlayerInfo> players = new List<CommunityOtherPlayerInfo>();
//for (int i = 0; i < 4; ++i)
//{
// CommunityOtherPlayerInfo playerInfo = new CommunityOtherPlayerInfo();
// players.Add(playerInfo);
// playerInfo.Profession = i;
// playerInfo.Name = "FocusPlayer" + i;
// playerInfo.Level = 100 + i;
//}
//_ViewContainer.InitContentItem(players);
//CommunityLogic.Instance()._EmptyTip.text = "";
}
public void LoadMoreViewHis()
{
CG_REQ_VIEW_STEP_SPACE_HISTORY packet = (CG_REQ_VIEW_STEP_SPACE_HISTORY)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_VIEW_STEP_SPACE_HISTORY);
packet.Roleguid = CommunityLogic.CommunityPlayerInfo.GUID;
packet.SendPacket();
}
public void RetLoadViewHis(GC_RET_VIEW_STEP_SPACE_HISTORY packet)
{
List<CommunityOtherPlayerInfo> players = new List<CommunityOtherPlayerInfo>();
for (int i = 0; i < packet.roleguidlistCount; ++i)
{
CommunityOtherPlayerInfo playerInfo = new CommunityOtherPlayerInfo();
players.Add(playerInfo);
playerInfo.Level = packet.GetLevellist(i);
playerInfo.HeadIconName = packet.GetHeadpiclist(i);
playerInfo.Profession = packet.GetJoblist(i);
playerInfo.Name = packet.GetRolename(i);
playerInfo.GUID = packet.GetRoleguidlist(i);
}
_ViewContainer.InitContentItem(players);
if (players.Count > 0)
{
CommunityLogic.Instance()._EmptyTip.text = "";
}
else
{
CommunityLogic.Instance()._EmptyTip.text = StrDictionary.GetClientDictionaryString("#{39015}");
}
}
public void BackToBase()
{
_BasePanel.SetActive(true);
_ViewPanel.SetActive(false);
_FlowerPanel.SetActive(false);
if (_LeaveMsgs.Count > 0)
{
CommunityLogic.Instance()._EmptyTip.text = "";
}
else
{
CommunityLogic.Instance()._EmptyTip.text = StrDictionary.GetClientDictionaryString("#{39018}");
}
}
#endregion
#region
public UIContainerBase _FlowerContainer;
private int _LastFlowerHisIdx;
private List<CommunityFlowerInfo> _FlowerHisList = new List<CommunityFlowerInfo>();
public void InitFlowerPanel()
{
_BasePanel.SetActive(false);
_ViewPanel.SetActive(false);
_FlowerPanel.SetActive(true);
ReloadFlowerHis();
//List<CommunityFlowerInfo> players = new List<CommunityFlowerInfo>();
//for (int i = 0; i < 4; ++i)
//{
// CommunityFlowerInfo playerInfo = new CommunityFlowerInfo();
// players.Add(playerInfo);
// playerInfo.Profession = i;
// playerInfo.Name = "FocusPlayer" + i;
// playerInfo.Level = 100 + i;
// playerInfo.Time = i * 1000;
// playerInfo.Flower1 = i;
// playerInfo.Flower2 = i;
// playerInfo.Flower3 = i;
// playerInfo.Flower4 = i;
// playerInfo.FlowerTotal = i*10;
//}
//_FlowerContainer.InitContentItem(players);
//CommunityLogic.Instance()._EmptyTip.text = "";
}
public void LoadMoreFlowerHis()
{
CG_REQ_VIEW_GIVE_FLOWER_HISTORY packet = (CG_REQ_VIEW_GIVE_FLOWER_HISTORY)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_VIEW_GIVE_FLOWER_HISTORY);
packet.Roleguid = CommunityLogic.CommunityPlayerInfo.GUID;
packet.Curindex = _LastFlowerHisIdx;
packet.Count = 10;
packet.SendPacket();
}
public void ReloadFlowerHis()
{
_LastFlowerHisIdx = -1;
_FlowerHisList.Clear();
LoadMoreFlowerHis();
}
public void RetFlowerHis(GC_RET_VIEW_GIVE_FLOWER_HISTORY packet)
{
if (!_FlowerPanel.activeSelf)
return;
for (int i = 0; i < packet.indexCount; ++i)
{
CommunityFlowerInfo playerInfo = new CommunityFlowerInfo();
_FlowerHisList.Add(playerInfo);
playerInfo.HeadIconName = packet.GetRoleheadpiclist(i);
playerInfo.Profession = packet.GetJoblist(i);
playerInfo.Name = packet.GetRolenamelist(i);
playerInfo.GUID = packet.GetRoleguidlist(i);
playerInfo.Level = packet.GetRolelevellist(i);
playerInfo.Time = packet.GetLastrecordtime(i);
for (int j = 0; j < packet.GetGiveflowerinfolist(i).countCount; ++j)
{
playerInfo.SetFlowerCnt(packet.GetGiveflowerinfolist(i).GetItemid(j), packet.GetGiveflowerinfolist(i).GetCount(j));
}
playerInfo.FlowerTotal = packet.GetFriendly(i);
_LastFlowerHisIdx = packet.GetIndex(i);
}
_FlowerContainer.InitContentItem(_FlowerHisList);
if (_FlowerHisList.Count > 0)
{
CommunityLogic.Instance()._EmptyTip.text = "";
}
else
{
CommunityLogic.Instance()._EmptyTip.text = StrDictionary.GetClientDictionaryString("#{39016}");
}
}
#endregion
}