115 lines
3.3 KiB
C#
115 lines
3.3 KiB
C#
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();
|
|
}
|
|
}
|