575 lines
20 KiB
C#
575 lines
20 KiB
C#
|
using UnityEngine;
|
|||
|
using System.Collections;
|
|||
|
using UnityEngine.UI;
|
|||
|
using System.Collections.Generic;
|
|||
|
using GCGame.Table;
|
|||
|
using System;
|
|||
|
using Games.Mission;
|
|||
|
|
|||
|
public class CurPageItemInfo
|
|||
|
{
|
|||
|
public int snatchId = -1; //对应SnatchTreasure表的索引ID
|
|||
|
public int curHadCompletedCount = 0; //当前已经完成的组数(还要用来算当前正在出售第几组)
|
|||
|
public int curHadPutIntoCount = 0; //当前本组已经投入的份数
|
|||
|
public int selfHadPutIntoCount = 0; //当前本组自身已经投入的份数
|
|||
|
|
|||
|
public CurPageItemInfo(int _SnatchId, int _CurHadCompletedGroupCouunt, int _CurHadPutIntoCount, int _SelfHadPutIntoCount)
|
|||
|
{
|
|||
|
snatchId = _SnatchId;
|
|||
|
curHadCompletedCount = _CurHadCompletedGroupCouunt;
|
|||
|
curHadPutIntoCount = _CurHadPutIntoCount;
|
|||
|
selfHadPutIntoCount = _SelfHadPutIntoCount;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public class AucationingPanelCtr : MonoBehaviour
|
|||
|
{
|
|||
|
#region
|
|||
|
//类型MenuItem
|
|||
|
public GameObject classMenuItemPrefab;
|
|||
|
public Transform prefabParent;
|
|||
|
|
|||
|
public GameObject aucationItemPrafab;
|
|||
|
public Transform aucationItemParent;
|
|||
|
|
|||
|
//夺宝空间
|
|||
|
public Text aucationSpace;
|
|||
|
|
|||
|
//信息面板
|
|||
|
public Text remainTime;
|
|||
|
public Text itemName;
|
|||
|
public Text hadBeenPutIntoCount;
|
|||
|
public Text shopPriceText;
|
|||
|
public Text onSellCount;
|
|||
|
public Text hasPutIntoCount;
|
|||
|
public Slider curGroupSlider;
|
|||
|
public Text sliderCountValue; //Slider需要显示的数量
|
|||
|
public Button putIntoBtn;
|
|||
|
|
|||
|
public UINumBoardInput numBoard;
|
|||
|
public UICurrencyItem total;
|
|||
|
public UICurrencyItem own;
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
public Dictionary<int, int> MoneytypeNamesTableId = new Dictionary<int, int>()
|
|||
|
{
|
|||
|
{(int)MONEYTYPE.MONEYTYPE_COIN ,6003},
|
|||
|
{(int)MONEYTYPE.MONEYTYPE_YUANBAO ,6001},
|
|||
|
{(int)MONEYTYPE.MONEYTYPE_YUANBAO_BIND ,6002},
|
|||
|
{(int)MONEYTYPE.MONEYTYPE_COIN_BIND ,6004},
|
|||
|
};
|
|||
|
|
|||
|
//最多可以参与的组数是20
|
|||
|
public int allCanPutIntoGroypCount = 20;
|
|||
|
|
|||
|
private int curSelectedSnatchId = -1;
|
|||
|
private int selfTotalPutIntoCount = 1; //默认投入一份
|
|||
|
public static AucationingPanelCtr Instance;
|
|||
|
private void Awake()
|
|||
|
{
|
|||
|
Instance = this;
|
|||
|
GUIData.delMoneyChanged += RefreshRemainMoney;
|
|||
|
}
|
|||
|
|
|||
|
private void OnDestroy()
|
|||
|
{
|
|||
|
Instance = null;
|
|||
|
GUIData.delMoneyChanged -= RefreshRemainMoney;
|
|||
|
}
|
|||
|
|
|||
|
private void OnEnable()
|
|||
|
{
|
|||
|
LoadClassTypeToDic(); //读取全部的类型,并且作为Item推进去
|
|||
|
CountRemainTime(); //计算当前活动的剩余时间
|
|||
|
}
|
|||
|
private Dictionary<int, List<Tab_SnatchTreasure>> snatchAllItemDic = new Dictionary<int, List<Tab_SnatchTreasure>>();
|
|||
|
/// <summary>
|
|||
|
/// 遍历表 读取全部的类型 key值为对应的classTypeId 值为对应的文字描述
|
|||
|
/// </summary>
|
|||
|
public void LoadClassTypeToDic()
|
|||
|
{
|
|||
|
foreach(var item in TableManager.GetSnatchTreasure())
|
|||
|
{
|
|||
|
if(snatchAllItemDic.ContainsKey(item.Key))
|
|||
|
{
|
|||
|
snatchAllItemDic[item.Key].Add(item.Value);
|
|||
|
}else
|
|||
|
{
|
|||
|
List<Tab_SnatchTreasure> list = new List<Tab_SnatchTreasure>();
|
|||
|
list.Add(item.Value);
|
|||
|
snatchAllItemDic.Add(item.Key, list);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
PushMenuItem();
|
|||
|
}
|
|||
|
|
|||
|
private List<GameObject> classMenuItemList = new List<GameObject>();
|
|||
|
public void PushMenuItem()
|
|||
|
{
|
|||
|
if (classMenuItemList.Count > 0)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
Dictionary<int, string> _MenuItemClassItemDic = new Dictionary<int, string>();
|
|||
|
foreach (var item in TableManager.GetSnatchTreasure().Values)
|
|||
|
{
|
|||
|
if (!IsHaveItemToSell(item.Id))
|
|||
|
{
|
|||
|
continue;
|
|||
|
}
|
|||
|
|
|||
|
if (!_MenuItemClassItemDic.ContainsKey(item.ClassifyType))
|
|||
|
_MenuItemClassItemDic.Add(item.ClassifyType, item.ClassifyName);
|
|||
|
}
|
|||
|
|
|||
|
foreach(var item in _MenuItemClassItemDic)
|
|||
|
{
|
|||
|
GameObject classMenuItem = GameObject.Instantiate(classMenuItemPrefab);
|
|||
|
|
|||
|
classMenuItem.transform.SetParent(prefabParent);
|
|||
|
classMenuItem.transform.localPosition = Vector3.zero;
|
|||
|
classMenuItem.transform.localScale = Vector3.one;
|
|||
|
classMenuItem.transform.localRotation = Quaternion.Euler(Vector3.zero);
|
|||
|
|
|||
|
classMenuItemList.Add(classMenuItem);
|
|||
|
classMenuItem.GetComponent<AucationClassItem>().InitItem(item.Key, item.Value);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
if (classMenuItemList.Count > 0)
|
|||
|
{
|
|||
|
ShowClassPage(classMenuItemList[0].GetComponent<AucationClassItem>().classType); //将第一个类型菜单设置为打开
|
|||
|
ClickFirstClassMenuItem();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void ClickFirstClassMenuItem()
|
|||
|
{
|
|||
|
if(classMenuItemList.Count > 0)
|
|||
|
{
|
|||
|
classMenuItemList[0].GetComponent<AucationClassItem>().OnItemClick();
|
|||
|
for (int index = 0; index < classMenuItemList.Count; index++)
|
|||
|
{
|
|||
|
classMenuItemList[index].GetComponent<AucationClassItem>().InitMenuItemState(index == 0);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public bool IsHaveItemToSell(int type)
|
|||
|
{
|
|||
|
foreach (var item in snatchAllItemDic)
|
|||
|
{
|
|||
|
if (/*type == item.Value[0].ClassifyType &&*/ IsInSellTime(item.Value[0].Time))
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
private List<GameObject> autactionItemList = new List<GameObject>();
|
|||
|
//通过ClassType刷新Item
|
|||
|
private int curClassType = -1;
|
|||
|
public void ShowClassPage(int classsType)
|
|||
|
{
|
|||
|
curClassType = classsType;
|
|||
|
//先设置Toggle状态
|
|||
|
for (int index = 0; index < classMenuItemList.Count; index++)
|
|||
|
{
|
|||
|
classMenuItemList[index].GetComponent<AucationClassItem>().InitMenuItemState(
|
|||
|
classMenuItemList[index].GetComponent<AucationClassItem>().classType == classsType ? true : false);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void OnAucationItemClick(int snatchTresureId)
|
|||
|
{
|
|||
|
bool hasItemOn = false;
|
|||
|
for (int index = 0; index < autactionItemList.Count; index++)
|
|||
|
{
|
|||
|
autactionItemList[index].gameObject.GetComponent<AucationItem>().InitItemState(
|
|||
|
autactionItemList[index].gameObject.GetComponent<AucationItem>().snatchTreasureId == snatchTresureId ? true : false);
|
|||
|
}
|
|||
|
for (int index = 0; index < autactionItemList.Count; index++)
|
|||
|
{
|
|||
|
if (autactionItemList[index].gameObject.GetComponent<AucationItem>().itemState)
|
|||
|
{
|
|||
|
hasItemOn = true;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (hasItemOn)
|
|||
|
{
|
|||
|
curSelectedSnatchId = snatchTresureId; //记录当前点击的ID
|
|||
|
} else
|
|||
|
{
|
|||
|
autactionItemList[0].gameObject.GetComponent<AucationItem>().InitItemState(true);
|
|||
|
curSelectedSnatchId = autactionItemList[0].gameObject.GetComponent<AucationItem>().snatchTreasureId;
|
|||
|
}
|
|||
|
selfTotalPutIntoCount = 1; //当前数量重置为1
|
|||
|
InitItemInfoPanel();//根据当前的点击设置Item信息
|
|||
|
|
|||
|
Tab_SnatchTreasure snatchTab = TableManager.GetSnatchTreasureByID(curSelectedSnatchId, 0);
|
|||
|
if (snatchTab == null)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
InitNumBoard();
|
|||
|
SetMoneyInfo();
|
|||
|
}
|
|||
|
|
|||
|
public void InitNumBoard()
|
|||
|
{
|
|||
|
Tab_SnatchTreasure snatchTab = TableManager.GetSnatchTreasureByID(curSelectedSnatchId, 0);
|
|||
|
if (snatchTab == null)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
int totalCanBetNum = snatchTab.TotalBetMaxNum;
|
|||
|
int remainBetNum = 0;
|
|||
|
int canBetNum = 1;
|
|||
|
if (itemInfoDic.ContainsKey(curSelectedSnatchId))
|
|||
|
{
|
|||
|
remainBetNum = (totalCanBetNum - itemInfoDic[curSelectedSnatchId].curHadPutIntoCount);
|
|||
|
if(remainBetNum > (snatchTab.SelfBetMaxNum - itemInfoDic[curSelectedSnatchId].selfHadPutIntoCount))
|
|||
|
{
|
|||
|
canBetNum = snatchTab.SelfBetMaxNum - itemInfoDic[curSelectedSnatchId].selfHadPutIntoCount;
|
|||
|
}else
|
|||
|
{
|
|||
|
canBetNum = remainBetNum;
|
|||
|
}
|
|||
|
//canBetNum = snatchTab.SelfBetMaxNum - itemInfoDic[curSelectedSnatchId].selfHadPutIntoCount - (totalCanBetNum - itemInfoDic[curSelectedSnatchId].curHadCompletedCount);
|
|||
|
}
|
|||
|
if (canBetNum <= 0)
|
|||
|
canBetNum = 0;
|
|||
|
numBoard.Init(1, 1, canBetNum);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public void InitItemInfoPanel()
|
|||
|
{
|
|||
|
if (curSelectedSnatchId == -1)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
Tab_SnatchTreasure snatchTreasureTab = TableManager.GetSnatchTreasureByID(curSelectedSnatchId, 0);
|
|||
|
if (snatchTreasureTab == null)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
Tab_CommonItem commonItem = TableManager.GetCommonItemByID(snatchTreasureTab.ItemId, 0);
|
|||
|
if (commonItem == null)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//初始化信息
|
|||
|
if (!itemInfoDic.ContainsKey(curSelectedSnatchId))
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
itemName.text = commonItem.Name + "X" + snatchTreasureTab.ItemNum.ToString();//当前物品名称
|
|||
|
if(snatchTreasureTab.ShopMoenyNum == -1)
|
|||
|
{
|
|||
|
shopPriceText.text = StrDictionary.GetClientDictionaryString("#{1954}");
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
string moneyDicId = "#{" + MoneytypeNamesTableId[snatchTreasureTab.ShopMoneyType] + "}";
|
|||
|
shopPriceText.text = StrDictionary.GetClientDictionaryString("#{1953}", snatchTreasureTab.ShopMoenyNum, StrDictionary.GetClientDictionaryString(moneyDicId));
|
|||
|
}
|
|||
|
|
|||
|
if (itemInfoDic[curSelectedSnatchId].curHadCompletedCount > snatchTreasureTab.MaxGropOpenPerDay)
|
|||
|
onSellCount.text = StrDictionary.GetClientDictionaryString("#{42300}");
|
|||
|
else
|
|||
|
onSellCount.text = StrDictionary.GetClientDictionaryString("#{42301}", itemInfoDic[curSelectedSnatchId].curHadCompletedCount.ToString(), snatchTreasureTab.MaxGropOpenPerDay.ToString()); //当前正在出售第几组
|
|||
|
|
|||
|
hadBeenPutIntoCount.text = StrDictionary.GetClientDictionaryString("#{42302}", itemInfoDic[curSelectedSnatchId].curHadPutIntoCount.ToString(), snatchTreasureTab.TotalBetMaxNum.ToString()); //当前组份已经被投入了多烧份
|
|||
|
hasPutIntoCount.text = StrDictionary.GetClientDictionaryString("#{42303}", itemInfoDic[curSelectedSnatchId].selfHadPutIntoCount.ToString(), snatchTreasureTab.SelfBetMaxNum.ToString());
|
|||
|
|
|||
|
//设置当前的Slider
|
|||
|
int totalCanPutIntoCount = snatchTreasureTab.TotalBetMaxNum; //当前分组可以被投入的最大份数
|
|||
|
curGroupSlider.value = (float)itemInfoDic[curSelectedSnatchId].curHadPutIntoCount / (float)totalCanPutIntoCount;
|
|||
|
sliderCountValue.text = itemInfoDic[curSelectedSnatchId].curHadPutIntoCount + "/" + totalCanPutIntoCount;
|
|||
|
//设置当前的金钱标志
|
|||
|
}
|
|||
|
|
|||
|
public Dictionary<int, CurPageItemInfo> itemInfoDic = new Dictionary<int, CurPageItemInfo>();
|
|||
|
private int selfHadTotalPutIntoGroup = 0;//当前的全部投入量
|
|||
|
|
|||
|
private int curSeverTime = 0;
|
|||
|
public void GetCurPageItemInfo(GC_SNATCH_RET_CUR_PAGE_ITEM packet)
|
|||
|
{
|
|||
|
curSeverTime = packet.Tm;
|
|||
|
selfHadTotalPutIntoGroup = packet.SelfFinishGroup;
|
|||
|
aucationSpace.text = selfHadTotalPutIntoGroup + "/" + allCanPutIntoGroypCount;
|
|||
|
for (int index = 0; index < packet.itemsCount; index++)
|
|||
|
{
|
|||
|
CurPageItemInfo itemInfo = new CurPageItemInfo(packet.GetItems(index).Index,
|
|||
|
packet.GetItems(index).CurBet,
|
|||
|
packet.GetItems(index).TotalBet,
|
|||
|
packet.GetItems(index).SelfBet);
|
|||
|
|
|||
|
if (itemInfoDic.ContainsKey(packet.GetItems(index).Index))
|
|||
|
{
|
|||
|
itemInfoDic[packet.GetItems(index).Index] = itemInfo;
|
|||
|
} else
|
|||
|
{
|
|||
|
itemInfoDic.Add(packet.GetItems(index).Index, itemInfo);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
ClearAllPrefabAndList();
|
|||
|
|
|||
|
//创建Item
|
|||
|
foreach (var item in snatchAllItemDic)
|
|||
|
{
|
|||
|
if (item.Value[0].ClassifyType == curClassType && IsInSellTime(item.Value[0].Time))
|
|||
|
{
|
|||
|
GameObject aucationItem = GameObject.Instantiate(aucationItemPrafab);
|
|||
|
|
|||
|
aucationItem.transform.SetParent(aucationItemParent);
|
|||
|
aucationItem.transform.localPosition = Vector3.zero;
|
|||
|
aucationItem.transform.localRotation = Quaternion.Euler(Vector3.zero);
|
|||
|
aucationItem.transform.localScale = Vector3.one;
|
|||
|
|
|||
|
//初始化
|
|||
|
aucationItem.GetComponent<AucationItem>().InitItem(item.Value[0]);
|
|||
|
autactionItemList.Add(aucationItem);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
foreach (var info in itemInfoDic)
|
|||
|
{
|
|||
|
for (int index = 0; index < autactionItemList.Count; index++)
|
|||
|
{
|
|||
|
if (info.Key == autactionItemList[index].GetComponent<AucationItem>().snatchTreasureId)
|
|||
|
{
|
|||
|
autactionItemList[index].GetComponent<AucationItem>().InitItemInfo(info.Value);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//默认显示第一个Item的信息
|
|||
|
if (curSelectedSnatchId <= 0)
|
|||
|
{
|
|||
|
curSelectedSnatchId = autactionItemList[0].GetComponent<AucationItem>().snatchTreasureId;
|
|||
|
}
|
|||
|
OnAucationItemClick(curSelectedSnatchId);
|
|||
|
}
|
|||
|
|
|||
|
private int needCostMoney = -1;
|
|||
|
private int curOwnMoney = -1;
|
|||
|
|
|||
|
private int curNeedMoneyCount = 0;
|
|||
|
private MONEYTYPE curNeedMoneyType;
|
|||
|
public void SetMoneyInfo()
|
|||
|
{
|
|||
|
Tab_SnatchTreasure snatchTab = TableManager.GetSnatchTreasureByID(curSelectedSnatchId, 0);
|
|||
|
if (snatchTab == null)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
curNeedMoneyCount = numBoard.Value * snatchTab.MoneyNumPerBet;
|
|||
|
curNeedMoneyType = (MONEYTYPE)snatchTab.BetMoneyType;
|
|||
|
total.ShowCurrency((MONEYTYPE)snatchTab.BetMoneyType, numBoard.Value * snatchTab.MoneyNumPerBet);
|
|||
|
own.ShowOwnCurrency((MONEYTYPE)snatchTab.BetMoneyType);
|
|||
|
}
|
|||
|
|
|||
|
//个人金钱变动,刷新当前的面板
|
|||
|
public void RefreshRemainMoney()
|
|||
|
{
|
|||
|
own.ShowOwnCurrency(curNeedMoneyType);
|
|||
|
}
|
|||
|
|
|||
|
//投入
|
|||
|
public void OnPutIntoBtnClick()
|
|||
|
{
|
|||
|
if (!JudgeMoneyLogic.IsMoneyEnough(curNeedMoneyType, curNeedMoneyCount))
|
|||
|
{
|
|||
|
GUIData.AddNotifyData(String.Format(StrDictionary.GetClientDictionaryString("#{42304}")));
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
Tab_SnatchTreasure snatachTab = TableManager.GetSnatchTreasureByID(curSelectedSnatchId, 0);
|
|||
|
if (snatachTab == null)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if (!itemInfoDic.ContainsKey(curSelectedSnatchId))
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
int selfRemainCount = snatachTab.SelfBetMaxNum - itemInfoDic[curSelectedSnatchId].selfHadPutIntoCount;
|
|||
|
int totalRemainCount = snatachTab.TotalBetMaxNum - itemInfoDic[curSelectedSnatchId].curHadPutIntoCount;
|
|||
|
int remainCanPutintoCount = selfRemainCount < totalRemainCount ? selfRemainCount : totalRemainCount;
|
|||
|
|
|||
|
if(remainCanPutintoCount <= 0)
|
|||
|
{
|
|||
|
if (remainCanPutintoCount == selfRemainCount)
|
|||
|
{
|
|||
|
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{37005}"));
|
|||
|
}else
|
|||
|
{
|
|||
|
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{37010}"));
|
|||
|
}
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
CG_SNATCH_BET_ITEM putInto = (CG_SNATCH_BET_ITEM)PacketDistributed.CreatePacket(MessageID.PACKET_CG_SNATCH_BET_ITEM);
|
|||
|
putInto.SetBetNum(numBoard.Value);
|
|||
|
putInto.SetItemIndexId(curSelectedSnatchId);
|
|||
|
putInto.SendPacket();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private int lastShareTime = 0;
|
|||
|
public void OnShareBtnClick()
|
|||
|
{
|
|||
|
if(lastShareTime > 0)
|
|||
|
{
|
|||
|
if(GlobalData.ServerAnsiTime - lastShareTime < 60)
|
|||
|
{
|
|||
|
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{37103}"));
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
lastShareTime = GlobalData.ServerAnsiTime;
|
|||
|
CG_SHARE_SNATCH_ITEM packet = (CG_SHARE_SNATCH_ITEM)PacketDistributed.CreatePacket(MessageID.PACKET_CG_SHARE_SNATCH_ITEM);
|
|||
|
packet.SetItemIndex(curSelectedSnatchId);
|
|||
|
packet.SendPacket();
|
|||
|
}
|
|||
|
|
|||
|
//是否在出售时间
|
|||
|
public bool IsInSellTime(int day)
|
|||
|
{
|
|||
|
DateTime curServerTime = GCGame.Utils.GetServerDateTime();
|
|||
|
if (day == (int)curServerTime.DayOfWeek)
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
public void ClearAllPrefabAndList()
|
|||
|
{
|
|||
|
for (int index = 0; index < autactionItemList.Count; index++)
|
|||
|
{
|
|||
|
GameObject.Destroy(autactionItemList[index].gameObject);
|
|||
|
}
|
|||
|
autactionItemList.Clear();
|
|||
|
}
|
|||
|
|
|||
|
//计算当前活动的剩余时间
|
|||
|
private int remainSeconds = 0;
|
|||
|
private bool isNeedCountRemainTime = false;
|
|||
|
public void CountRemainTime()
|
|||
|
{
|
|||
|
var activityBaseDic = TableManager.GetActivityBase().Values;
|
|||
|
foreach (var activity in activityBaseDic)
|
|||
|
{
|
|||
|
//当前活动为寻宝任务
|
|||
|
if (activity.ActivityServerType == (int)ActivityDataManager.Activity_Type.ACTIVITY_TYPE_GRAB_TREASURE)
|
|||
|
{
|
|||
|
//记录当前活动的结束时间
|
|||
|
int endTimeFromTab = int.Parse(activity.GetTimebyIndex(0).Split('|')[1]);
|
|||
|
|
|||
|
DateTime curServerTime = GCGame.Utils.GetServerDateTime();
|
|||
|
|
|||
|
int endHour = endTimeFromTab / 100;
|
|||
|
int endMinute = endTimeFromTab % 100;
|
|||
|
|
|||
|
int curHour = curServerTime.Hour;
|
|||
|
int curMinute = curServerTime.Minute;
|
|||
|
int curSecond = curServerTime.Second;
|
|||
|
|
|||
|
remainSeconds = (endHour * 3600 + endMinute * 60 - curHour * 3600 - curMinute * 60 - curSecond); //剩余秒数
|
|||
|
|
|||
|
if (remainSeconds > 0)
|
|||
|
{
|
|||
|
isNeedCountRemainTime = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
isNeedCountRemainTime = false;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
int remainHour = 0;
|
|||
|
int remainMinute = 0;
|
|||
|
int remainSecond = 0;
|
|||
|
string r_Hour = "";
|
|||
|
string r_Minute = "";
|
|||
|
string r_Second = "";
|
|||
|
float countTime = 0.0f;
|
|||
|
void Update()
|
|||
|
{
|
|||
|
if (isNeedCountRemainTime)
|
|||
|
{
|
|||
|
countTime += Time.deltaTime;
|
|||
|
if (countTime >= 1.0f)
|
|||
|
{
|
|||
|
countTime = 1 - countTime;
|
|||
|
remainSeconds -= 1;
|
|||
|
if (remainSeconds > 0)
|
|||
|
{
|
|||
|
if(putIntoBtn.interactable == false)
|
|||
|
{
|
|||
|
putIntoBtn.interactable = true;
|
|||
|
}
|
|||
|
remainHour = (remainSeconds / 3600);
|
|||
|
remainMinute = (remainSeconds - remainHour * 3600) / 60;
|
|||
|
remainSecond = (remainSeconds - remainHour * 3600 - remainMinute * 60);
|
|||
|
|
|||
|
if (remainHour < 10)
|
|||
|
{
|
|||
|
r_Hour = "0" + remainHour.ToString();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
r_Hour = remainHour.ToString();
|
|||
|
}
|
|||
|
|
|||
|
if (remainMinute < 10)
|
|||
|
{
|
|||
|
r_Minute = "0" + remainMinute.ToString();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
r_Minute = remainMinute.ToString();
|
|||
|
}
|
|||
|
|
|||
|
if (remainSecond < 10)
|
|||
|
{
|
|||
|
r_Second = "0" + remainSecond.ToString();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
r_Second = remainSecond.ToString();
|
|||
|
}
|
|||
|
|
|||
|
remainTime.text = r_Hour + ":" + r_Minute + ":" +r_Second;
|
|||
|
}else
|
|||
|
{
|
|||
|
isNeedCountRemainTime = false;
|
|||
|
remainTime.text = "0:00:00";
|
|||
|
putIntoBtn.interactable = false;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|