| System/KnapSack/KnapsackTimeCDMgr.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/FlashRushToBuyCoolDown.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/FlashRushToBuyModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/FlashSaleItemCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/KnapSack/KnapsackTimeCDMgr.cs
@@ -9,6 +9,7 @@ public class KnapsackTimeCDMgr : SingletonMonobehaviour<KnapsackTimeCDMgr> { private List<ItemCDCool> itemCDList = new List<ItemCDCool>(); private List<NormalCDCool> normalCDList = new List<NormalCDCool>(); public event Action<string> RefresCoolTimeAct; public event Action<string> RefreshItemOverdueTimeAct; public event Action<string> RefreshItemOverdueAct; @@ -18,6 +19,12 @@ { CheckItemCoolTime(TimeRefreshType.Frame); var minute = DateTime.Now.Minute; var second = DateTime.Now.Second; if(second != secondBuf) { CheckNormalCoolTime(TimeRefreshType.Second); secondBuf = second; } if (minute != minuteBuf) { CheckItemCoolTime(TimeRefreshType.Minute); @@ -61,6 +68,33 @@ } private void CheckNormalCoolTime(TimeRefreshType type) { for (int i = 0; i < normalCDList.Count; i++) { double remianCD = normalCDList[i].GetRemainTime(); switch (type) { case TimeRefreshType.Frame: break; case TimeRefreshType.Second: if(normalCDList[i].func != null) { normalCDList[i].func(normalCDList[i].code,(int)remianCD); } break; case TimeRefreshType.Minute: break; } if (remianCD <= 0) { UnRegister(normalCDList[i].code); } } } public void Register(string guid,int itemId,double cdTime) { int index; @@ -75,12 +109,35 @@ } } public void Register(int code,double cdTime,Action<int,int> func) { int index; if (ContainsNormalCD(code, out index)) { normalCDList[index].SetTime(cdTime); } else { NormalCDCool cool = new NormalCDCool(code,cdTime,func); normalCDList.Add(cool); } } public void UnRegister(string guid) { int index; if (ContainsItemCD(guid, out index)) { itemCDList.RemoveAt(index); } } public void UnRegister(int code) { int index; if (ContainsNormalCD(code, out index)) { normalCDList.RemoveAt(index); } } @@ -92,6 +149,16 @@ return itemCDList[index]; } return null; } public int GetNormalCDTime(int code) { int index; if (ContainsNormalCD(code, out index)) { return (int)normalCDList[index].GetRemainTime(); } return 0; } List<ItemCDCool> typeCoollist = new List<ItemCDCool>(); @@ -119,6 +186,20 @@ for (int i = 0; i < itemCDList.Count; i++) { if (itemCDList[i].guid == guid) { index = i; return true; } } return false; } private bool ContainsNormalCD(int code,out int index) { index = 0; for (int i = 0; i < normalCDList.Count; i++) { if (normalCDList[i].code == code) { index = i; return true; @@ -166,4 +247,35 @@ } } public class NormalCDCool { public int code; public double totalTime; public DateTime startTime { get; private set; } public Action<int,int> func; public NormalCDCool(int code,double totalTime,Action<int,int> func) { this.code = code; this.totalTime = totalTime; this.startTime = DateTime.Now; this.func = func; } public void SetTime(double totalTime) { this.totalTime = totalTime; this.startTime = DateTime.Now; } public double GetRemainTime() { double remainTime = totalTime - (DateTime.Now - startTime).TotalSeconds; if (remainTime <= 0) { remainTime = 0; } return remainTime; } } } System/OpenServerActivity/FlashRushToBuyCoolDown.cs
@@ -11,11 +11,6 @@ [SerializeField] Text timeText; FlashRushToBuyModel rushToBuyModel { get { return ModelCenter.Instance.GetModel<FlashRushToBuyModel>(); } } bool isReplace = false; bool isStartReplace = false; private void Awake() { GlobalTimeEvent.Instance.halfMinuteEvent += UpdateHalfMinute; } private void OnEnable() { @@ -29,12 +24,6 @@ GlobalTimeEvent.Instance.secondEvent -= SecondEvent; } private void UpdateHalfMinute() { if (!isStartReplace) return; isReplace = !isReplace; } private void SecondEvent() { @@ -49,7 +38,6 @@ OperationTime operationTime; OperationFlashRushToBuy.FlashSaleShop saleShop; FlashRushToBuyModel.FlashRushToBuySate flashState = rushToBuyModel.GetActivityState(out seconds,out operationTime,out saleShop); isStartReplace = false; switch (flashState) { case FlashRushToBuyModel.FlashRushToBuySate.NoOpen: @@ -57,8 +45,8 @@ case FlashRushToBuyModel.FlashRushToBuySate.InAdvance: if(seconds <= 3600) { isStartReplace = true; if(!isReplace) int split = (3600 - seconds)/30 % 2; if(split == 0) { timeText.text = Language.Get("FlashRushToBuy106", TimeUtility.SecondsToHMS(seconds)); } System/OpenServerActivity/FlashRushToBuyModel.cs
@@ -158,10 +158,14 @@ } } } for (int i = 0; i < appointmentInfo.GoodsCount; i++) { var saleItemInfo = appointmentInfo.GoodsList[i]; if (appointmentInfo.GoodsCount < 2 && saleItemInfo.State == 1) { SysNotifyMgr.Instance.ShowTip("FlashRushToBuy1"); } for (int j = 0; j < operation.flashShops.Count; j++) { var saleItems = operation.flashShops[j].items; System/OpenServerActivity/FlashSaleItemCell.cs
@@ -29,7 +29,8 @@ OperationFlashRushToBuy.FlashSaleItem saleItem; int buyState = -1; float cdTime = 10; int cdTime = 0; int code = 0; private void OnEnable() { battleModel.RefreshGameRecInfoAct += UpdateFullServerBuy; @@ -51,6 +52,7 @@ if (rushToBuyModel.presentFlashShop == null) return; saleItem = rushToBuyModel.presentFlashShop.items[cell.index]; code = rushToBuyModel.presentFlashShop.dayIndex * 1000 + rushToBuyModel.presentFlashShop.timeIndex * 100 + cell.index; ItemCellModel cellModel = new ItemCellModel(saleItem.itemId,true,(ulong)saleItem.itemCount,saleItem.isBind); itemBaisc.Init(cellModel); itemBaisc.cellBtn.RemoveAllListeners(); @@ -87,6 +89,12 @@ private void UpdateAppointmentInfo(int shopGuid) { if (saleItem == null || shopGuid != saleItem.shopGuid) return; if(saleItem.isAppointment == 1) { cdTime = 10; KnapsackTimeCDMgr.Instance.Register(code, cdTime, RefreshCD); } UpdateSaleItem(); } @@ -104,42 +112,44 @@ btnBgImg.SetSprite("SecondBtn1"); btnStateText.gameObject.SetActive(true); cdText.gameObject.SetActive(false); btnBgImg.material = MaterialUtility.GetUIDefaultGraphicMaterial(); switch (buyState) { case -1: if(saleItem.isAppointment == 0) { cdTime = 10; btnStateText.text = Language.Get("FlashRushToBuy101"); flashSaleBtn.AddListener(() => { rushToBuyModel.SendFlashSaleAppointment(saleItem.shopGuid, 1); }); } else { btnBgImg.SetSprite("BlackBtn"); RefreshCD(code,KnapsackTimeCDMgr.Instance.GetNormalCDTime(code)); btnStateText.gameObject.SetActive(false); cdText.gameObject.SetActive(true); btnBgImg.SetSprite("BlackBtn"); RefreshCD(cdTime); TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.FlashRushToBuyAppointment,cdTime, RefreshCD); flashSaleBtn.AddListener(CancelAppointment); } break; case 0: cdTime = 10; btnStateText.text = Language.Get("FlashRushToBuy102"); flashSaleBtn.AddListener(() => { storeModel.SendBuyShopItem(storeConfig,saleItem.itemCount); }); break; } } private void RefreshCD(float time) private void RefreshCD(int code,int time) { if (this.code != code) return; cdTime = time; if (cdTime <= 0) { btnBgImg.material = MaterialUtility.GetUIDefaultGraphicMaterial(); cdText.text = Language.Get("FlashRushToBuy103"); } else { btnBgImg.material = MaterialUtility.GetDefaultSpriteGrayMaterial(); cdText.text = Language.Get("FlashRushToBuy104",time); } } @@ -161,7 +171,8 @@ { int fullSeverRemain = 0; int sellState = GetSellSate(out fullSeverRemain); fullServerRemainNum.text = fullSeverRemain.ToString(); string fullSeverRemainStr = fullSeverRemain > 0 ? fullSeverRemain.ToString() : UIHelper.GetTextColorByItemColor(TextColType.Red, fullSeverRemain.ToString()); fullServerRemainNum.text = fullSeverRemainStr; switch (sellState) { case 0: