88 lines
2.9 KiB
C#
88 lines
2.9 KiB
C#
using System.Collections.Generic;
|
|
using game;
|
|
using asap.core;
|
|
|
|
namespace EventPartner
|
|
{
|
|
public class PlayerInfoPool
|
|
{
|
|
private readonly Dictionary<string, PlayerInfo> _playerInfoDic = new Dictionary<string, PlayerInfo>();
|
|
private readonly FriendService _friendService = GContext.container.Resolve<FriendService>();
|
|
private IEventPartnerArchitecture _arc;
|
|
|
|
public Dictionary<string, PlayerInfo> PlayerInfoDic => _playerInfoDic;
|
|
|
|
public void Init(IEventPartnerArchitecture arc)
|
|
{
|
|
_playerInfoDic.Clear();
|
|
// UnityEngine.Debug.Log($"[EventPartnerStatue] zsq: Init!");
|
|
FillInFriends();
|
|
_arc = arc;
|
|
}
|
|
|
|
public void Add(IEnumerable<PlayerInfo> list)
|
|
{
|
|
foreach (var info in list)
|
|
_playerInfoDic[info.PlayFabId] = info;
|
|
}
|
|
|
|
public void Add(PlayerInfo info)
|
|
{
|
|
_playerInfoDic[info.PlayFabId] = info;
|
|
}
|
|
|
|
public PlayerInfo Get(string playfabId)
|
|
{
|
|
if (_playerInfoDic.ContainsKey(playfabId))
|
|
return _playerInfoDic[playfabId];
|
|
return PlayerInfo.Default;
|
|
}
|
|
|
|
public void FillInFriends()
|
|
{
|
|
foreach (var friend in _friendService.FriendList)
|
|
{
|
|
// UnityEngine.Debug.Log($"[EventPartnerStatue] zsq: {friend.playFabId}");
|
|
// UnityEngine.Debug.Log($"[EventPartnerStatue] zsq: {friend.displayName}");
|
|
// UnityEngine.Debug.Log($"[EventPartnerStatue] zsq: {friend.avatarUrl}");
|
|
// UnityEngine.Debug.Log($"[EventPartnerStatue] zsq: {friend.value / GameCore.LeadboardData.LV_MODELING}");
|
|
_playerInfoDic[friend.playFabId] = new PlayerInfo
|
|
{
|
|
PlayFabId = friend.playFabId,
|
|
DisplayName = friend.displayName,
|
|
AvatarUrl = friend.avatarUrl,
|
|
Level = friend.value / GameCore.LeadboardData.LV_MODELING
|
|
};
|
|
}
|
|
}
|
|
|
|
public void FillInDetail(EventPartnerGatherRequests.EventPartnerGatherDetail detail)
|
|
{
|
|
foreach (var info in detail.Partners)
|
|
{
|
|
AddInfo(info);
|
|
}
|
|
foreach (var info in detail.InvitePartners)
|
|
{
|
|
AddInfo(info);
|
|
}
|
|
foreach (var info in detail.RequestPartners)
|
|
{
|
|
AddInfo(info);
|
|
}
|
|
foreach (var info in detail.RecommendInfoList)
|
|
{
|
|
AddInfo(info);
|
|
}
|
|
}
|
|
|
|
private void AddInfo(PlayerInfo info)
|
|
{
|
|
if (!RobotDataManager.IsRobot(info.PlayFabId))
|
|
_playerInfoDic[info.PlayFabId] = info;
|
|
else
|
|
_playerInfoDic[info.PlayFabId] = _arc.Ctx.GetBotInfo(info.PlayFabId);
|
|
}
|
|
|
|
}
|
|
} |