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

140 lines
4.6 KiB
C#

using Module.Log;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PvpTeamInfoPanel : MonoBehaviour {
public static PvpTeamInfoPanel Instance;
private void Awake()
{
Instance = this;
}
private void OnEnable()
{
InitContainer();
InitEnemyContainer();
CountRemainTime(GameManager.gameManager.PlayerDataPool.pvpIfo._PvpFightRoomEndTime);
}
private void OnDestroy()
{
Instance = null;
}
public UIContainerBase _SelfRoleInfoItemContainer;
public UIContainerBase _EnemyRoleInfoItemContainer;
public void InitContainer()
{
var pvpInfo = GameManager.gameManager.PlayerDataPool.pvpIfo;
if (pvpInfo._TeamMemberInfoList == null || pvpInfo._TeamMemberInfoList.Count <= 0)
{
return;
}
List<HonorBattlefieldMatchMemberInfo> teamMemberList = new List<HonorBattlefieldMatchMemberInfo>();
for(int index = 0; index < pvpInfo._TeamMemberInfoList.Count; index++)
{
if ((ulong)pvpInfo._TeamMemberInfoList[index].Guid != GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Guid)
teamMemberList.Add(pvpInfo._TeamMemberInfoList[index]);
}
if(teamMemberList.Count > 0)
_SelfRoleInfoItemContainer.InitContentItem(teamMemberList);
}
public void InitEnemyContainer()
{
var pvpInfo = GameManager.gameManager.PlayerDataPool.pvpIfo;
if (pvpInfo._EnemyTeamMemberInfoList == null || pvpInfo._EnemyTeamMemberInfoList.Count <= 0)
{
return;
}
List<HonorBattlefieldMatchMemberInfo> teamMemberList = new List<HonorBattlefieldMatchMemberInfo>();
for (int index = 0; index < pvpInfo._EnemyTeamMemberInfoList.Count; index++)
{
teamMemberList.Add(pvpInfo._EnemyTeamMemberInfoList[index]);
}
if (teamMemberList.Count > 0)
_EnemyRoleInfoItemContainer.InitContentItem(teamMemberList);
}
public void OnPacket(RespHonorBattlefieldMatchUpdateMember info)
{
if(info.RoomId == GameManager.gameManager.PlayerDataPool.pvpIfo._PvpRoomId)
{
_SelfRoleInfoItemContainer.ForeachActiveItem<PvpSelfTeamRoleInfoItem>((item) =>
{
if (item._Guid == info.MemberInfo.Guid)
{
item.RefreshItemInfo(info.MemberInfo);
}
});
}else
{
if(_EnemyRoleInfoItemContainer.GetItemCount() > 0)
{
_EnemyRoleInfoItemContainer.ForeachActiveItem<PvpTeamRoleInfoItem>((item) =>
{
if (item._Guid == info.MemberInfo.Guid)
{
item.RefreshItemInfo(info.MemberInfo);
}
});
}
else
{
_EnemyRoleInfoItemContainer.InitContentItem(GameManager.gameManager.PlayerDataPool.pvpIfo._EnemyTeamMemberInfoList);
_EnemyRoleInfoItemContainer.ForeachActiveItem<PvpTeamRoleInfoItem>((item) =>
{
if (item._Guid == info.MemberInfo.Guid)
{
item.RefreshItemInfo(info.MemberInfo);
}
});
}
}
}
public Text _RemainTime;
private int _CountEndTime;
public void CountRemainTime(int endTime)
{
//Debug.LogError("ServerTime : " + GlobalData.ServerAnsiTime + " ,endTime : " + endTime);
_CountEndTime = endTime;
if(_CountEndTime - GlobalData.ServerAnsiTime > 0)
{
isCountTime = true;
_RemainTime.text = GCGame.Table.StrDictionary.GetClientDictionaryString("#{1794}", _CountEndTime - GlobalData.ServerAnsiTime);
}else
{
isCountTime = false;
}
}
bool isCountTime = false;
private float _CountTime;
private void Update()
{
if(isCountTime)
{
_CountTime += Time.deltaTime;
if (_CountTime >= 1.0f)
{
_CountTime = 1 - _CountTime;
if (_CountEndTime - GlobalData.ServerAnsiTime > 0)
{
_RemainTime.text = GCGame.Table.StrDictionary.GetClientDictionaryString("#{1794}", _CountEndTime - GlobalData.ServerAnsiTime);
}
else
{
isCountTime = false;
_RemainTime.text = GCGame.Table.StrDictionary.GetClientDictionaryString("#{1794}", 0);
}
}
}
}
}