Files
JJBB/Assets/Project/Script/GUI/Guild/GuildWarRightTop.cs

121 lines
3.5 KiB
C#
Raw Permalink Normal View History

2024-08-23 15:49:34 +08:00
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 GuildWarRightTop : MonoBehaviour {
public GameObject Wnd;
public Text guild1Blood;
public Text guild2Blood;
public Image guild1Child;
public Image guild2Child;
public Text timeDown;
private long blood1 = 0;
private long blood2 = 0;
// Use this for initialization
void Awake () {
Hashtable add = new Hashtable();
add["name"] = "GuildMatchTowerBlood";
Games.Events.MessageEventCallBack call = UpdateTowerBlood;
add["callFun"] = call;
Games.Events.EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.GuildWarTowerBlood, add);
Games.Events.EventDispatcher.Instance.Add(Games.Events.EventId.FunctionChangeBaseBtnActive, HideUI);
Hashtable add3 = new Hashtable();
add3["name"] = "CapRightTop";
Games.Events.MessageEventCallBack call3 = UpdateCap;
add3["callFun"] = call3;
Games.Events.EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.GuildWarFirstSceneInfo, add3);
}
void Start()
{
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();
InvokeRepeating("RemainTimeDown", 1, 1);
}
void OnDestroy()
{
Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.GuildWarFirstSceneInfo, "CapRightTop");
Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.GuildWarTowerBlood, "GuildMatchTowerBlood");
Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.GuildWarTowerBlood, "HideUI");
CancelInvoke();
}
public void HideUI(object obj)
{
bool active = (bool)obj;
Wnd.SetActive(!active);
}
long totleNaijiu;
public void FreshBlood()
{
guild1Blood.text = blood1.ToString();
guild2Blood.text = blood2.ToString();
guild1Child.fillAmount = blood1 * 1.0f / totleNaijiu;
guild2Child.fillAmount = blood2 * 1.0f / totleNaijiu;
}
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;
var caps = TableManager.GetServerLvlCap().Values;
foreach (var cap in caps)
{
if (cap.LevelCap == packet.Curlvlcap)
{
long.TryParse(cap.GuildWarTower, out totleNaijiu);
return;
}
}
}
public void UpdateTowerBlood(Hashtable add,Hashtable send)
{
if (send.ContainsKey("data") == false)
return;
GC_UNION_MATCH_TOWER_INFO packet = (GC_UNION_MATCH_TOWER_INFO)send["data"];
if (packet == null)
return;
if (packet.towerhpCount>0)
blood1 = packet.GetTowerhp(0);
if(packet.towerhpCount>1)
blood2 = packet.GetTowerhp(1);
FreshBlood();
}
public void RemainTimeDown()
{
float leaveTime = SceneData.CopyOverTime - Time.time;
timeDown.text = Utils.GetTimeStr1((int)leaveTime);
}
public void Click_WarInfo()
{
UIManager.ShowUI(UIInfo.GuildWarInfo, null, null);
}
}