using System.Collections.Generic; using game; using asap.core; namespace EventPartner { public class PlayerInfoPool { private readonly Dictionary _playerInfoDic = new Dictionary(); private readonly FriendService _friendService = GContext.container.Resolve(); private IEventPartnerArchitecture _arc; public Dictionary PlayerInfoDic => _playerInfoDic; public void Init(IEventPartnerArchitecture arc) { _playerInfoDic.Clear(); // UnityEngine.Debug.Log($"[EventPartnerStatue] zsq: Init!"); FillInFriends(); _arc = arc; } public void Add(IEnumerable 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); } } }