Files
2024-08-23 15:49:34 +08:00

699 lines
21 KiB
C#

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using Games.GlobeDefine;
using GCGame.Table;
public class Community
{
private static Community _Instance;
public static Community Instance
{
get
{
if (_Instance == null)
_Instance = new Community();
return _Instance;
}
}
private Community() { }
#region resource url
public string HeadPicUpLoadUrl
{
get
{
return ControllUrlManager.ImageUpLoadUrl;
}
}
public string HeadPicDownUrl
{
get
{
return ControllUrlManager.ImageDownLoadUrl;
}
}
public string BlogPicUpLoadUrl
{
get
{
return ControllUrlManager.ImageUpLoadUrl;
}
}
public string BlogPicDownUrl
{
get
{
return ControllUrlManager.ImageDownLoadUrl;
}
}
public string _ApiKey;
public void InitResUrl()
{
if (!string.IsNullOrEmpty(_ApiKey))
return;
CG_REQ_MENGDAO_URL packet = (CG_REQ_MENGDAO_URL)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_MENGDAO_URL);
packet.Nilparam = 1;
packet.SendPacket();
}
public void ResUrlRet(GC_RET_MENGDAO_URL packet)
{
//_HeadPicUpLoadUrl = packet.Headpicuploadurl;
//_HeadPicDownUrl = packet.Headpicdownurl;
//_BlogPicUpLoadUrl = packet.Blogpicuploadcurl;
//_BlogPicDownUrl = packet.Blogpicdownurl;
_ApiKey = packet.Apikey;
}
public string GetHeadIconDownUrl(string name)
{
return /*_HeadPicDownUrl + "?img=" + */name/* + ".png"*/;
}
public string GetHeadIconUpLoadName(string name)
{
return name/* + ".png"*/;
}
public string GetPicDownUrl(string name)
{
return /*_BlogPicDownUrl + "?img=" + */name;
}
public string GetPicUpLoadName(string name)
{
return name/* + ".png"*/;
}
#endregion
#region Blog History
#region my blog opt history
public List<CommunityHistoryMsgInfo> _MyHistoryMsg = new List<CommunityHistoryMsgInfo>();
private int _LastLoadMyHistoryIdx;
public void LoadMoreHistory()
{
CG_REQ_BLOG_HISTORY packet = (CG_REQ_BLOG_HISTORY)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_BLOG_HISTORY);
packet.Maxmsgindex = _LastLoadMyHistoryIdx;
packet.Count = 10;
packet.SendPacket();
}
public void ReLoadMoreHistory()
{
_MyHistoryMsg.Clear();
_LastLoadMyHistoryIdx = -1;
LoadMoreHistory();
}
public void RetHistoryMsg(GC_RET_BLOG_HISTORY packet)
{
for (int i = 0; i < packet.msgidxCount; ++i)
{
CommunityHistoryMsgInfo msgInfo = new CommunityHistoryMsgInfo();
_MyHistoryMsg.Add(msgInfo);
msgInfo.Profession = packet.GetJob(i);
msgInfo.MsgID = packet.GetMsgidx(i);
msgInfo.Name = packet.GetRolename(i);
msgInfo.Level = packet.GetLevel(i);
msgInfo.MsgType = packet.GetType(i);
msgInfo.BlogText = packet.GetContextoutline(i);
msgInfo.MsgText = packet.GetComment(i);
if (!string.IsNullOrEmpty(packet.GetHeadpic(i)))
{
msgInfo.HeadPicName = Community.Instance.GetHeadIconDownUrl(packet.GetHeadpic(i));
}
_LastLoadMyHistoryIdx = msgInfo.MsgID;
}
if (CommunityBlogPageLogic.Instance())
CommunityBlogPageLogic.Instance().UpdateHistoryMsg();
}
#endregion
#region player focus
public List<CommunityOtherPlayerInfo> _CommunityPlayerInfos = new List<CommunityOtherPlayerInfo>();
public void LoadMoreFocus()
{
if (_CommunityPlayerInfos.Count != 0)
return;
CG_REQ_VIEW_MY_INTEREST_LIST packet = (CG_REQ_VIEW_MY_INTEREST_LIST)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_VIEW_MY_INTEREST_LIST);
packet.Nilparam = 1;
packet.SendPacket();
}
public void ReloadFocus()
{
_CommunityPlayerInfos.Clear();
LoadMoreFocus();
}
public void RetLoadFocus(GC_RET_VIEW_MY_INTEREST_LIST packet)
{
_CommunityPlayerInfos.Clear();
for (int i = 0; i < packet.roleguidCount; ++i)
{
CommunityOtherPlayerInfo playerInfo = new CommunityOtherPlayerInfo();
if (GlobeVar.IsGUIDValid(packet.GetRoleguid(i)))
{
_CommunityPlayerInfos.Add(playerInfo);
playerInfo.Profession = packet.GetJob(i);
playerInfo.HeadIconName = packet.GetHeadpic(i);
playerInfo.Name = packet.GetRolename(i);
playerInfo.GUID = packet.GetRoleguid(i);
playerInfo.Level = packet.GetRolelevel(i);
}
}
if (CommunityBlogPageLogic.Instance())
{
if (CommunityBlogPageLogic.Instance()._OtherBlogPanel.activeSelf)
{
CommunityBlogPageLogic.Instance().UpdateFocusBtn();
}
else
{
CommunityLogic.Instance()._EmptyTip.text = "";
CommunityBlogPageLogic.Instance().UpdateFocusList();
CommunityBlogPageLogic.Instance().UpdateFocusBtn();
}
}
}
#endregion
#region Player blog
private ulong _LastLoadPlayerBlogGuid = GlobeVar.INVALID_GUID;
public List<CommunityBlogInfo> _LoadedPlayerBlogs = new List<CommunityBlogInfo>();
public static int _LoadBlogCnt = 10;
public void LoadMoreMyBlog()
{
CG_REQ_VIEW_BLOG_LIST packet = (CG_REQ_VIEW_BLOG_LIST)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_VIEW_BLOG_LIST);
packet.Roleguid = CommunityLogic.CommunityPlayerInfo.GUID;
packet.Curblogguid = _LastLoadPlayerBlogGuid;
packet.Count = _LoadBlogCnt;
packet.Selfonly = 1;
packet.SendPacket();
//RetLoadBlogTest();
}
public void LoadMoreFocusBlog()
{
CG_REQ_VIEW_BLOG_LIST packet = (CG_REQ_VIEW_BLOG_LIST)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_VIEW_BLOG_LIST);
packet.Roleguid = CommunityLogic.CommunityPlayerInfo.GUID;
packet.Curblogguid = _LastLoadPlayerBlogGuid;
packet.Count = _LoadBlogCnt;
packet.Selfonly = 0;
packet.SendPacket();
//RetLoadBlogTest();
}
public void ReLoadMoreMyBlog()
{
_LastLoadPlayerBlogGuid = GlobeVar.INVALID_GUID;
_LoadedPlayerBlogs.Clear();
LoadMoreMyBlog();
}
public void ReLoadMoreFocusBlog()
{
_LastLoadPlayerBlogGuid = GlobeVar.INVALID_GUID;
_LoadedPlayerBlogs.Clear();
LoadMoreFocusBlog();
}
public void RetLoadBlogTest()
{
GC_RET_VIEW_BLOG_LIST packet = new GC_RET_VIEW_BLOG_LIST();
for (int i = 0; i < 10; ++i)
{
var guid = _LastLoadPlayerBlogGuid + 1;
packet.AddBlogguid(guid);
packet.AddContext("Test Contex:" + guid);
StringArray picNames = new StringArray();
picNames.AddVallist("testPhoto");
picNames.AddVallist("testPhoto");
picNames.AddVallist("testPhoto");
picNames.AddVallist("testPhoto");
packet.AddPicnamelist(picNames);
packet.AddHeadpic("testPhoto");
packet.AddRolelevel(i);
packet.AddRoleguid((ulong)i);
packet.AddRolename("RoleName" + i);
packet.AddReprinttimes(i);
packet.AddLiketimes(i);
packet.AddLikedrolelist(new LikedRoleInfoList());
for (int j = 0; j < i; ++j)
{
LikedRoleInfo likeInfo = new LikedRoleInfo();
likeInfo.Roleguid = (ulong)j;
likeInfo.Rolename = "Like" + j;
packet.likedrolelistList[i].AddInfolist(likeInfo);
}
packet.AddCommentlist(new BlogCommentList());
//for (int j = 0; j < i; ++j)
//{
// BlogComment commentInfo = new BlogComment();
// commentInfo.Roleguid = (ulong)j;
// commentInfo.Rolename = "Role" + j;
// commentInfo.Comment = "Comment" + j;
// commentInfo.Desguid = (ulong)(j + 10);
// commentInfo.Desname = "Dest" + j;
// packet.commentlistList[i].AddCommentlist(commentInfo);
//}
packet.AddRecordtime(i * 100);
packet.AddReprintroleguid((ulong)i * 10);
packet.AddReprintroleheadpic("testPhoto");
packet.AddReprintrolename("Forwarding" + i);
packet.AddBlogtype(i % 2);
}
RetLoadBlog(packet);
}
public void RetLoadBlog(GC_RET_VIEW_BLOG_LIST packet)
{
for (int i = 0; i < packet.blogguidCount; ++i)
{
CommunityBlogInfo newBlog = new CommunityBlogInfo();
_LoadedPlayerBlogs.Add(newBlog);
newBlog.GUID = packet.GetBlogguid(i);
newBlog.Profession = packet.GetProf(i);
newBlog.Contex = packet.GetContext(i);
newBlog.HeadIconUrl = packet.GetHeadpic(i);
newBlog.Level = packet.GetRolelevel(i);
newBlog.RoleGuid = packet.GetRoleguid(i);
newBlog.Name = packet.GetRolename(i);
newBlog.ForwardingCnt = packet.GetReprinttimes(i);
newBlog.LikeCnt = packet.GetLiketimes(i);
newBlog.LikeRoles = new List<LikedRoleInfo>();
newBlog.CommentCnt = packet.GetCommenttimes(i);
for (int j = 0; j < packet.GetLikedrolelist(i).infolistCount; ++j)
{
newBlog.LikeRoles.Add(packet.GetLikedrolelist(i).GetInfolist(j));
}
newBlog.Comments = new List<BlogComment>();
for (int j = 0; j < packet.GetCommentlist(i).commentlistCount; ++j)
{
newBlog.Comments.Add(packet.GetCommentlist(i).GetCommentlist(j));
}
newBlog.Time = packet.GetRecordtime(i);
newBlog.ContexImageUrls = new List<string>();
if (GlobeVar.IsGUIDValid(packet.GetReprintroleguid(i)))
{
newBlog.ForwardingBlog = new CommunityBlogInfo();
newBlog.ForwardingBlog.RoleGuid = packet.GetReprintroleguid(i);
newBlog.ForwardingBlog.Name = packet.GetReprintrolename(i);
newBlog.ForwardingBlog.HeadIconUrl = packet.GetReprintroleheadpic(i);
newBlog.ForwardingBlog.Profession = packet.GetReprintrolejob(i);
newBlog.ForwardingBlog.Contex = packet.GetContext(i);
newBlog.Contex = packet.GetReprintcomment(i);
newBlog.ForwardingBlog.Level = packet.GetReprintrolelevel(i);
newBlog.ForwardingBlog.ContexImageUrls = new List<string>();
for (int j = 0; j < packet.GetPicnamelist(i).vallistCount; ++j)
{
newBlog.ForwardingBlog.ContexImageUrls.Add(packet.GetPicnamelist(i).GetVallist(j));
}
}
else
{
newBlog.ContexImageUrls = new List<string>();
for (int j = 0; j < packet.GetPicnamelist(i).vallistCount; ++j)
{
newBlog.ContexImageUrls.Add(packet.GetPicnamelist(i).GetVallist(j));
}
}
_LastLoadPlayerBlogGuid = newBlog.GUID;
}
if (CommunityBlogPageLogic.Instance() && CommunityBlogPageLogic.Instance()._FocusBlogContainer.isActiveAndEnabled)
{
if (packet.blogguidCount == 0)
{
if (Community.Instance._LoadedPlayerBlogs.Count > _LoadBlogCnt)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{39013}"));
}
CommunityBlogPageLogic.Instance().UpdateFocusBlogs();
CommunityBlogPageLogic.Instance().UpdateNoMoreFocus();
}
else
{
CommunityBlogPageLogic.Instance().UpdateFocusBlogs();
}
}
else if(CommunityBlogPageLogic.Instance())
{
if (packet.blogguidCount == 0)
{
if (Community.Instance._LoadedPlayerBlogs.Count > _LoadBlogCnt)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{39013}"));
}
CommunityBlogPageLogic.Instance().UpdatePlayerBlogs();
CommunityBlogPageLogic.Instance().UpdateNoMoreBlogs();
}
else
{
CommunityBlogPageLogic.Instance().UpdatePlayerBlogs();
}
}
}
#endregion
#endregion
#region test send blog
public void TestSendBlog(string sendContex, List<NetDoubleImage> netImage)
{
GC_RET_VIEW_BLOG_LIST packet = new GC_RET_VIEW_BLOG_LIST();
for (int i = 0; i < 1; ++i)
{
var guid = _LastLoadPlayerBlogGuid + 1;
packet.AddBlogguid(guid);
packet.AddContext(sendContex);
StringArray picNames = new StringArray();
for (int j = 0; j< netImage.Count; ++j)
{
picNames.AddVallist(netImage[j].NetImageUrl);
picNames.AddVallist(netImage[j].LargeImageUrl);
}
packet.AddPicnamelist(picNames);
packet.AddHeadpic("testPhoto");
packet.AddRolelevel(i);
packet.AddRoleguid((ulong)i);
packet.AddRolename("RoleName" + i);
packet.AddReprinttimes(i);
packet.AddLiketimes(i);
packet.AddLikedrolelist(new LikedRoleInfoList());
for (int j = 0; j < i; ++j)
{
LikedRoleInfo likeInfo = new LikedRoleInfo();
likeInfo.Roleguid = (ulong)j;
likeInfo.Rolename = "Like" + j;
packet.likedrolelistList[i].AddInfolist(likeInfo);
}
packet.AddCommentlist(new BlogCommentList());
//for (int j = 0; j < i; ++j)
//{
// BlogComment commentInfo = new BlogComment();
// commentInfo.Roleguid = (ulong)j;
// commentInfo.Rolename = "Role" + j;
// commentInfo.Comment = "Comment" + j;
// commentInfo.Desguid = (ulong)(j + 10);
// commentInfo.Desname = "Dest" + j;
// packet.commentlistList[i].AddCommentlist(commentInfo);
//}
packet.AddRecordtime(i * 100);
packet.AddReprintroleguid((ulong)i * 10);
packet.AddReprintroleheadpic("testPhoto");
packet.AddReprintrolename("Forwarding" + i);
packet.AddBlogtype(i % 2);
}
RetLoadBlog(packet);
}
#endregion
#region like and comment
public CommunityBlogItem _OptBlogItem;
private string _TempComment;
public void SetLikeBlog(CommunityBlogItem blogItem)
{
_OptBlogItem = blogItem;
CG_REQ_LIKE_BLOG packet = (CG_REQ_LIKE_BLOG)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_LIKE_BLOG);
packet.Blogguid = _OptBlogItem._BlogInfo.GUID;
packet.Opt = 1;
packet.Targetguid = _OptBlogItem._BlogInfo.RoleGuid;
packet.SendPacket();
}
public void SetDisLikeBlog(CommunityBlogItem blogItem)
{
_OptBlogItem = blogItem;
CG_REQ_LIKE_BLOG packet = (CG_REQ_LIKE_BLOG)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_LIKE_BLOG);
packet.Blogguid = _OptBlogItem._BlogInfo.GUID;
packet.Opt = 0;
packet.Targetguid = _OptBlogItem._BlogInfo.RoleGuid;
packet.SendPacket();
}
public void UpdateLikeBlog(GC_RET_LIKE_BLOG packet)
{
if (_OptBlogItem != null)
{
if(packet.Opt == 1)
_OptBlogItem.AddLike();
else
_OptBlogItem.RemoveLike();
}
}
public void SetCommentBlog(CommunityBlogItem blogItem, string commentContex, ulong targetGuid)
{
_OptBlogItem = blogItem;
CG_REQ_SAVE_COMMENT_BLOG packet = (CG_REQ_SAVE_COMMENT_BLOG)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_SAVE_COMMENT_BLOG);
packet.Blogguid = _OptBlogItem._BlogInfo.GUID;
packet.Comment = commentContex;
packet.Desguid = targetGuid;
packet.Blogownerguid = _OptBlogItem._BlogInfo.RoleGuid;
packet.SendPacket();
_TempComment = commentContex;
}
public void UpdateMyComment(GC_RET_SAVE_COMMENT_BLOG packet)
{
if (_OptBlogItem != null)
{
_OptBlogItem.UpdateMyComment(_TempComment, packet.Index);
}
}
public void ReqDeleteComment(CommunityBlogItem blogItem, int idx)
{
_OptBlogItem = blogItem;
CG_REQ_DELETE_COMMENT_BLOG packet = (CG_REQ_DELETE_COMMENT_BLOG)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_DELETE_COMMENT_BLOG);
packet.Blogguid = _OptBlogItem._BlogInfo.GUID;
packet.Index = idx;
packet.SendPacket();
}
public void RetDeleteComment(GC_RET_DELETE_COMMENT_BLOG packet)
{
var findComment = _OptBlogItem._BlogInfo.Comments.Find((comment) =>
{
if (comment.Index == packet.Index)
return true;
return false;
});
if (findComment != null)
{
_OptBlogItem._BlogInfo.Comments.Remove(findComment);
}
if (_OptBlogItem._BlogInfo.Comments.Count < 4)
{
_OptBlogItem._BlogInfo.CommentCnt = _OptBlogItem._BlogInfo.Comments.Count;
}
else
{
_OptBlogItem._BlogInfo.CommentCnt -= 1;
}
_OptBlogItem._CommentCnt.text = _OptBlogItem._BlogInfo.CommentCnt.ToString();
_OptBlogItem.LoadMoreComment(1);
}
#endregion
#region gitf info
public int _ViewCnt;
public int _GiftCnt;
public int _FlowerCnt;
public void InitGiftInfo(GC_RET_MENGDAO_INFO packet)
{
_ViewCnt = packet.Hot;
_GiftCnt = packet.Giftcount;
_FlowerCnt = packet.Friendlycount;
if (CommunityMsgPageLogic.Instance())
{
CommunityMsgPageLogic.Instance().UpdateGiftCnts();
}
}
public void RetViewSpace(GC_RET_STEP_SPACE packet)
{
//if (packet.Errcode == 0)
//{
// GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{39010}"));
//}
//else
//{
// GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{39009}"));
//}
//if (packet.Iteid > 0)
//{
// Tab_CommonItem itemData = TableManager.GetCommonItemByID(packet.Itemid, 0);
// if (itemData != null)
// {
// GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{39011}", itemData.Name));
// ++_GiftCnt;
// }
//}
//_ViewCnt += packet.Hot;
++_ViewCnt;
if (CommunityMsgPageLogic.Instance())
{
CommunityMsgPageLogic.Instance().UpdateGiftCnts();
}
}
public void RetSetGift(GC_RET_MENGDAO_SET_GIFT packet)
{
_GiftCnt = packet.Giftcount;
if (CommunityMsgPageLogic.Instance())
{
CommunityMsgPageLogic.Instance().UpdateGiftCnts();
}
}
#endregion
#region new msg tip
public bool _HasNewLeaveWord;
public bool _HasNewBlogMsg;
public void SetNewMsg(GC_NOTIFY_NEW_WEIBO_INFO packet)
{
_HasNewBlogMsg = true;
if (ChatFrameLogic.Instance())
{
ChatFrameLogic.Instance()._SpaceTip.SetActive(true);
}
if (CommunityLogic.Instance())
{
CommunityLogic.Instance()._NewMsgTips.SetActive(true);
}
}
public void SetNewMsg(GC_NOTIFY_NEW_WEIBO_LEAVE_WORD packet)
{
_HasNewLeaveWord = true;
if (ChatFrameLogic.Instance())
{
ChatFrameLogic.Instance()._SpaceTip.SetActive(true);
}
if (CommunityLogic.Instance())
{
CommunityLogic.Instance()._LeaveWordTips.SetActive(true);
}
}
public void ResetLeaveWordTip()
{
_HasNewLeaveWord = false;
SetTips();
}
public void ResetBlogMsg()
{
_HasNewBlogMsg = false;
SetTips();
}
public void SetTips()
{
if (ChatFrameLogic.Instance())
{
if (_HasNewLeaveWord == false && _HasNewBlogMsg == false)
{
ChatFrameLogic.Instance()._SpaceTip.SetActive(false);
}
else
{
ChatFrameLogic.Instance()._SpaceTip.SetActive(true);
}
}
if (CommunityLogic.Instance())
{
if (!_HasNewLeaveWord)
{
CommunityLogic.Instance()._LeaveWordTips.SetActive(false);
}
else
{
CommunityLogic.Instance()._LeaveWordTips.SetActive(true);
}
if (!_HasNewBlogMsg)
{
CommunityLogic.Instance()._NewMsgTips.SetActive(false);
}
else
{
CommunityLogic.Instance()._NewMsgTips.SetActive(true);
}
}
}
#endregion
}