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

344 lines
13 KiB
C#

using Games.LogicObj;
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using GCGame;
using Module.Log;
using Games.GlobeDefine;
using System.Collections.Generic;
using System;
using GCGame.Table;
public class GuildWarInfo : MonoBehaviour {
public UITagPanel _TagPanel;
public GameObject georgeBtn;//玄霄怒按钮
public GameObject generalBtn;//将军威按钮
//主战场信息
public Text main_generalName; //将军威帮会名称
public Text main_georgeName; //玄霄怒帮会名称
public Text main_generalNaijiu;//将军威耐久
public Text main_georgeNaijiu; //玄霄怒耐久
public Text main_genpersons; //将军威主战场人数
public Text main_geopersons; //玄霄怒主战场人数
public Text main_genKills; //将军威主战场灭敌数
public Text main_geoKills; //玄霄怒主战场灭敌数
public Text main_genkillMax; //将军威主战场杀敌最多
public Text main_geokillMax; //玄霄怒主战场杀敌最多
public Text main_gentower; //将军威箭塔数
public Text main_geotower; //玄霄怒箭塔数
//副战场信息
public Text m_generalName; //将军威帮会名称
public Text m_georgeName; //玄霄怒帮会名称
public Text m_generalNaijiu;//将军威耐久
public Text m_georgeNaijiu; //玄霄怒耐久
public Text m_genpersons; //将军威副战场人数
public Text m_geopersons; //玄霄怒副战场人数
public Text m_genKills; //将军威副战场杀敌最多
public Text m_geoKills; //玄霄怒副战场杀敌最多
public Text m_genkillMax; //将军威副战场灭敌数
public Text m_geokillMax; //玄霄怒副战场灭敌数
public Text m_genkillGodAnim; //将军威副战场杀死神兽数
public Text m_geokillGodAnim; //玄霄怒副战场杀死神兽数
public Text m_gengiveMax; //将军威维修最多者
public Text m_geogiveMax; //玄霄怒维修最多者
public Text m_gengiveCount; //将军威总维修次数
public Text m_geogiveCount; //玄霄怒总维修次数
public GameObject memWargenInfoList; //将军威
public GameObject memWargeoInfoList; //玄霄怒
public UIContainerBase m_WarMain1;
public UIContainerBase m_WarMain2;
public UIContainerBase m_WarFu1;
public UIContainerBase m_WarFu2;
private long generalNaijiu = 0;
private long georgeNaijiu = 0;
private long totleNaijiu = -1;
void Awake()
{
Hashtable add = new Hashtable();
add["name"] = "MemInfoRecv";
Games.Events.MessageEventCallBack call = MainSceneInfo;
add["callFun"] = call;
Games.Events.EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.GuildWarFirstSceneInfo, add);
Hashtable add1 = new Hashtable();
add1["name"] = "MemInfoRecv1";
Games.Events.MessageEventCallBack call1 = MainSceneInfo1;
add1["callFun"] = call1;
Games.Events.EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.GuildWarSecondSceneInfo, add1);
Hashtable add2 = new Hashtable();
add2["name"] = "MemsInfo";
Games.Events.MessageEventCallBack call2 = MemsInfo;
add2["callFun"] = call2;
Games.Events.EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.GuildWarMemSceneInfo, add2);
Hashtable add3 = new Hashtable();
add3["name"] = "Cap";
Games.Events.MessageEventCallBack call3 = UpdateCap;
add3["callFun"] = call3;
Games.Events.EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.GuildWarFirstSceneInfo, add3);
}
void Start()
{
if (Singleton<ObjManager>.Instance.MainPlayer != null)
{
Singleton<ObjManager>.Instance.MainPlayer.GuildWarUnionInfoReq(CG_GUILD_UNION_MATCH_REQ.UNION_MATCH_REQ.FIRST_SCENE_INFO);
Singleton<ObjManager>.Instance.MainPlayer.GuildWarUnionInfoReq(CG_GUILD_UNION_MATCH_REQ.UNION_MATCH_REQ.SECOND_SCENE_INFO);
CG_REQ_SERVER_LVL_CAP packet = (CG_REQ_SERVER_LVL_CAP)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_SERVER_LVL_CAP);
packet.Noparam = 1;
packet.SendPacket();
}
}
public void UpdateCap(Hashtable add, Hashtable send)
{
if (send.ContainsKey("Cap") == false)
return;
GC_RET_SERVER_LVL_CAP packet = (GC_RET_SERVER_LVL_CAP)send["Cap"];
if (packet == null)
return;
foreach(var cap in TableManager.GetServerLvlCap().Values)
{
if(cap.LevelCap == packet.Curlvlcap)
{
long.TryParse(cap.GuildWarTower, out totleNaijiu);
main_generalNaijiu.text = string.Format("{0}/{1}", generalNaijiu, totleNaijiu);
main_georgeNaijiu.text = string.Format("{0}/{1}", georgeNaijiu, totleNaijiu);
return;
}
}
}
List<UnionMatchPlayerInfo> main1List = new List<UnionMatchPlayerInfo>();
List<UnionMatchPlayerInfo> main2List = new List<UnionMatchPlayerInfo>();
void OnDestroy()
{
Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.GuildWarFirstSceneInfo, "MemInfoRecv");
Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.GuildWarSecondSceneInfo, "MemInfoRecv1");
Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.GuildWarMemSceneInfo, "MemsInfo");
Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.GuildWarFirstSceneInfo, "Cap");
}
public void MemsInfo(Hashtable add, Hashtable send)
{
if (send.ContainsKey("data") == false)
return;
GC_UNION_MATCH_FIRST_SCENE_PLAYER_INFO packet = (GC_UNION_MATCH_FIRST_SCENE_PLAYER_INFO)send["data"];
if (packet.Hasinfo==0)
{
main_genkillMax.text = "";
main_geokillMax.text = "";
}
else
{
int killMax1 = 0;
string killerMax1 = StrDictionary.GetClientDictionaryString("#{1006}");
main1List.Clear();
for (int i=0;i<packet.player1Count;i++)
{
UnionMatchPlayerInfo info = packet.GetPlayer1(i);
if(info.Kill > killMax1)
{
killMax1 = info.Kill;
killerMax1 = info.Name;
}
main1List.Add(info);
}
int killMax2 = 0;
string killerMax2 = StrDictionary.GetClientDictionaryString("#{1006}");
main2List.Clear();
for (int i = 0; i < packet.player2Count; i++)
{
UnionMatchPlayerInfo info = packet.GetPlayer2(i);
if (info.Kill > killMax2)
{
killMax2 = info.Kill;
killerMax2 = info.Name;
}
main2List.Add(info);
}
if(memWargenInfoList.activeSelf)
m_WarMain1.InitContentItem(main1List, null, null);
if(memWargeoInfoList.activeSelf)
m_WarMain2.InitContentItem(main2List, null, null);
main_genkillMax.text = killerMax1;
main_geokillMax.text = killerMax2;
}
}
public void MainSceneInfo(Hashtable add,Hashtable send)
{
if (send.ContainsKey("data") == false)
return;
GC_UNION_MATCH_FIRST_SCENE_INFO packet = (GC_UNION_MATCH_FIRST_SCENE_INFO)send["data"];
if (packet == null)
return;
if (packet.guildNameCount >= 1)
{
main_generalName.text = packet.GetGuildName(0);
if(GameManager.gameManager.PlayerDataPool.GuildInfo.GuildName == packet.GetGuildName(0))
{
georgeBtn.SetActive(true);
generalBtn.SetActive(false);
memWargenInfoList.SetActive(true);
memWargeoInfoList.SetActive(false);
}
}
if (packet.guildNameCount >= 2)
{
main_georgeName.text = packet.GetGuildName(1);
if (GameManager.gameManager.PlayerDataPool.GuildInfo.GuildName == packet.GetGuildName(1))
{
georgeBtn.SetActive(false);
generalBtn.SetActive(true);
memWargenInfoList.SetActive(false);
memWargeoInfoList.SetActive(true);
}
}
if(packet.TowerHPCount>=1)
{
generalNaijiu = packet.GetTowerHP(0);
main_generalNaijiu.text = string.Format("{0}/{1}", generalNaijiu, packet.GetTowerHP(2));
}
if (packet.TowerHPCount >= 2)
{
georgeNaijiu = packet.GetTowerHP(1);
main_georgeNaijiu.text = string.Format("{0}/{1}", georgeNaijiu, packet.GetTowerHP(2));
}
if (packet.PeopleCount >= 1)
main_genpersons.text = packet.GetPeople(0).ToString();
if (packet.PeopleCount >= 2)
main_geopersons.text = packet.GetPeople(1).ToString();
main_genKills.text = StrDictionary.GetClientDictionaryString("#{1006}");
main_geoKills.text = StrDictionary.GetClientDictionaryString("#{1006}");
if (packet.TotalKillCount >= 1)
main_genKills.text = packet.GetTotalKill(0).ToString();
if (packet.TotalKillCount >= 2)
main_geoKills.text = packet.GetTotalKill(1).ToString();
if (packet.TowerCountCount >= 1)
main_gentower.text = packet.GetTowerCount(0).ToString();
if (packet.TowerCountCount >= 2)
main_geotower.text = packet.GetTowerCount(1).ToString();
}
public void MainSceneInfo1(Hashtable add, Hashtable send)
{
if (send.ContainsKey("data") == false)
return;
GC_UNION_MATCH_SECOND_SCENE_INFO packet = (GC_UNION_MATCH_SECOND_SCENE_INFO)send["data"];
if (packet == null)
return;
if (packet.guildNameCount >= 1)
m_generalName.text = packet.GetGuildName(0);
if (packet.guildNameCount >= 2)
m_georgeName.text = packet.GetGuildName(1);
if (packet.PeopleCount >= 1)
m_genpersons.text = packet.GetPeople(0).ToString();
if (packet.PeopleCount >= 2)
m_geopersons.text = packet.GetPeople(1).ToString();
if (packet.TotalKillCount >= 1)
m_genKills.text = packet.GetTotalKill(0).ToString();
if (packet.TotalKillCount >= 2)
m_geoKills.text = packet.GetTotalKill(1).ToString();
if (packet.KillBossCount >= 1)
m_genkillGodAnim.text = packet.GetKillBoss(0).ToString();
if (packet.KillBossCount >= 2)
m_geokillGodAnim.text = packet.GetKillBoss(1).ToString();
if (packet.TotalMaintainCount >= 1)
m_gengiveCount.text = packet.GetTotalMaintain(0).ToString();
if (packet.TotalMaintainCount >= 2)
m_geogiveCount.text = packet.GetTotalMaintain(1).ToString();
List<UnionMatchPlayerInfo> main1List = new List<UnionMatchPlayerInfo>();
int killer1Max = 0;
int MaintainMax1 = 0;
string Maintainer1 = "";
string killer1 = StrDictionary.GetClientDictionaryString("#{1006}");
for (int i=0;i<packet.player1Count;i++)
{
UnionMatchPlayerInfo info = packet.GetPlayer1(i);
if (info.Kill > killer1Max)
{
killer1Max = info.Kill;
killer1 = info.Name;
}
if (info.Maintain > MaintainMax1)
{
MaintainMax1 = info.Maintain;
Maintainer1 = info.Name;
}
main1List.Add(info);
}
List<UnionMatchPlayerInfo> main2List = new List<UnionMatchPlayerInfo>();
int killer2Max = 0;
int MaintainMax2 = 0;
string Maintainer2 = "";
string killer2 = StrDictionary.GetClientDictionaryString("#{1006}");
for (int i = 0; i < packet.player2Count; i++)
{
UnionMatchPlayerInfo info = packet.GetPlayer2(i);
if (info.Kill > killer2Max)
{
killer2Max = info.Kill;
killer2 = info.Name;
}
if (info.Maintain > MaintainMax2)
{
MaintainMax2 = info.Maintain;
Maintainer2 = info.Name;
}
main2List.Add(info);
}
m_WarFu1.InitContentItem(main1List, null, null);
m_WarFu2.InitContentItem(main2List, null, null);
m_genkillMax.text = killer1;
m_geokillMax.text = killer2;
m_gengiveMax.text = Maintainer1;
m_geogiveMax.text = Maintainer2;
}
public void ChangeMemInfoWnd_Click()
{
bool gen = memWargenInfoList.activeSelf ? false : true;
memWargenInfoList.SetActive(gen);
memWargeoInfoList.SetActive(!gen);
if (memWargenInfoList.activeSelf)
m_WarMain1.InitContentItem(main1List, null, null);
if (memWargeoInfoList.activeSelf)
m_WarMain2.InitContentItem(main2List, null, null);
georgeBtn.SetActive(gen);
generalBtn.SetActive(!gen);
}
public void Close_Click()
{
UIManager.CloseUI(UIInfo.GuildWarInfo);
}
}