78 lines
2.1 KiB
C#
78 lines
2.1 KiB
C#
|
using UnityEngine;
|
|||
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System;
|
|||
|
using GCGame.Table;
|
|||
|
|
|||
|
public class ItemCDInfoCtr{
|
|||
|
|
|||
|
public static Dictionary<int, int> itemCdInfoDic = new Dictionary<int, int>();
|
|||
|
|
|||
|
public static ItemCDInfoCtr Instance;
|
|||
|
public static ItemCDInfoCtr GetInstance()
|
|||
|
{
|
|||
|
if (Instance == null)
|
|||
|
Instance = new ItemCDInfoCtr();
|
|||
|
return Instance;
|
|||
|
}
|
|||
|
|
|||
|
public static int GetCurServerTime()
|
|||
|
{
|
|||
|
return (int)(GCGame.Utils.GetServerDateTime() - GCGame.Utils.m_startTime).TotalSeconds;
|
|||
|
}
|
|||
|
|
|||
|
//自己读CoolDownTime (缺点:CD中物品在再次上线的时候,如果还处在CD中,会重新开始计算CD)
|
|||
|
public static void AddItemCDInfo(int itemId)
|
|||
|
{
|
|||
|
Tab_UsableItem usabItem = TableManager.GetUsableItemByID(itemId, 0);
|
|||
|
if (usabItem == null)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
Tab_CoolDownTime coolDown = TableManager.GetCoolDownTimeByID(usabItem.CoolDownId, 0);
|
|||
|
if (coolDown == null)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
AddItemCDInfo(usabItem.CoolDownId, coolDown.CDTime / 1000);
|
|||
|
}
|
|||
|
|
|||
|
public static void AddItemCDInfo(int CDId, int time)
|
|||
|
{
|
|||
|
if (itemCdInfoDic.ContainsKey(CDId))
|
|||
|
{
|
|||
|
itemCdInfoDic[CDId] = GetCurServerTime() + time;
|
|||
|
} else
|
|||
|
{
|
|||
|
itemCdInfoDic.Add(CDId, GetCurServerTime() + time);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static int GetItemCDRemainTime(int itemId)
|
|||
|
{
|
|||
|
Tab_UsableItem usabItem = TableManager.GetUsableItemByID(itemId, 0);
|
|||
|
if (usabItem == null)
|
|||
|
{
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
Tab_CoolDownTime coolDown = TableManager.GetCoolDownTimeByID(usabItem.CoolDownId, 0);
|
|||
|
if (coolDown == null)
|
|||
|
{
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
if (itemCdInfoDic.ContainsKey(usabItem.CoolDownId)
|
|||
|
&& itemCdInfoDic[usabItem.CoolDownId] - GetCurServerTime() > 0)
|
|||
|
{
|
|||
|
return itemCdInfoDic[usabItem.CoolDownId] - GetCurServerTime();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|