using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using Module.Log; using GCGame.Table; using System; // 旗状态 public class CaptureFlagItem : UIItemBase { public class CaptureFlagData { public Tab_CrossSerFlagPoint tabCrossSerFlagPoint; public int CampIndex; public int PointID;//据点 public int GuardID;//守卫 public int State; public int CDTime; } public GameObject Effect1; public GameObject Effect2; public Image CDImage; public Image campImg; public TimeDownText countDown; CaptureFlagData _captureFlagData = new CaptureFlagData(); private float CDOverTime = 0; private float CDTotleTime = 0; bool LastIsZli = false; int needShowEffect = 0; public override void Show(Hashtable hash) { _captureFlagData = hash["InitObj"] as CaptureFlagData; if (_captureFlagData == null) return; Refresh(); base.Show(hash); } private void Update() { if(needShowEffect > 0) { needShowEffect--; if(needShowEffect<=0) { needShowEffect = 0; Effect2.SetActive(true); } } if(CDOverTime - Time.realtimeSinceStartup > 0) { CDImage.fillAmount = (CDOverTime - Time.realtimeSinceStartup) / CDTotleTime; } } public override void Refresh() { int curCamp = CaptureFlagStatePanelCtr.GetCurCamp(); LoadAssetBundle.Instance.SetImageSprite(campImg, CaptureFlagStatePanelCtr.GetSpriteNameByCamp(_captureFlagData.CampIndex,false)); if (_captureFlagData.CDTime > 0) { //中立 Tab_CrossSerFlagConfig tab = TableManager.GetCrossSerFlagConfigByID(0, 0); float leavetime = _captureFlagData.CDTime + tab.BuffTime - GlobalData.ServerAnsiTime; CDImage.gameObject.SetActive(true); if (CDOverTime - Time.realtimeSinceStartup <= 0) { CDImage.fillAmount = 1; CDTotleTime = leavetime; CDOverTime = leavetime + Time.realtimeSinceStartup; countDown.Init("", CDOverTime, 0, 5845, null, TimeDownText.TimeFormat.number); LastIsZli = true; } Effect2.SetActive(false); needShowEffect = -1; return; } if (_captureFlagData.CampIndex == curCamp) { //已占领 countDown.Init(string.Format("{0}", StrDictionary.GetClientDictionaryString("#{5843}"))); Effect2.SetActive(false); needShowEffect = -1; CDImage.gameObject.SetActive(false); if (LastIsZli) Effect1.SetActive(true); } else { //可争夺 countDown.Init(string.Format("{0}", StrDictionary.GetClientDictionaryString("#{5842}"))); CDImage.gameObject.SetActive(false); if (LastIsZli) { Effect1.SetActive(true); needShowEffect = 20; } else { needShowEffect = 20; } } LastIsZli = false; base.Refresh(); } }