| System/Welfare/MultipleRealmPointModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Welfare/NPracticePointWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Welfare/OperationTimeHepler.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/Welfare/MultipleRealmPointModel.cs
@@ -8,6 +8,7 @@ public Redpoint multipleRed = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20908); public string LocalRecord_Key; bool isNewDay = false; bool openNotify = false; public event Action<int> onStateUpate; @@ -29,13 +30,10 @@ public void OnPlayerLoginOk() { openNotify = false; LocalRecord_Key = StringUtility.Contact("MultipleRealmRecord", PlayerDatas.Instance.baseData.PlayerID); OperationTimeHepler.Instance.operationStartEvent -= RefreshOperationState; OperationTimeHepler.Instance.operationStartEvent += RefreshOperationState; OperationTimeHepler.Instance.operationEndEvent -= RefreshOperationState; OperationTimeHepler.Instance.operationEndEvent += RefreshOperationState; OperationTimeHepler.Instance.operationServerCloseEvent -= RefreshOperationClose; OperationTimeHepler.Instance.operationServerCloseEvent += RefreshOperationClose; GlobalTimeEvent.Instance.secondEvent -= SecondEvent; GlobalTimeEvent.Instance.secondEvent += SecondEvent; CheckShowRed(); } @@ -50,7 +48,7 @@ { OperationBase operation; OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipRealmPoint, out operation); return operation != null && operation.SatisfyOpenCondition() && operation.InDay(TimeUtility.ServerNow); return operation != null && (operation as OperationMultipleRealmPoint).InActiveTime(TimeUtility.ServerNow); } } @@ -70,48 +68,45 @@ } } private void RefreshOperationClose(Operation type) private void SecondEvent() { if (type != Operation.MultipRealmPoint) return; CheckShowRed(); if (onStateUpate != null) if (IsOpen && !openNotify) { onStateUpate(8); openNotify = true; CheckShowRed(); if (onStateUpate != null) { onStateUpate(8); } } } private void RefreshOperationState(Operation type, int arg2) { if (type != Operation.MultipRealmPoint) return; CheckShowRed(); if (onStateUpate != null) else if (!IsOpen && openNotify) { onStateUpate(8); openNotify = false; CheckShowRed(); if (onStateUpate != null) { onStateUpate(8); } } } public void CheckShowRed(bool isClick = false) { bool isOpen = OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.MultipRealmPoint); if (!isOpen) return; if (!IsOpen) return; if(!isNewDay) { if (!PlayerPrefs.HasKey(LocalRecord_Key)) { DebugEx.Log("设置记录时间:" + TimeUtility.ServerNow.Day); LocalSave.SetInt(LocalRecord_Key, TimeUtility.ServerNow.Day); isNewDay = true; } else { DebugEx.Log("得到记录时间:" + LocalSave.GetInt(LocalRecord_Key)); if (TimeUtility.ServerNow.Day != LocalSave.GetInt(LocalRecord_Key)) { isNewDay = true; DebugEx.Log("设置记录时间:" + TimeUtility.ServerNow.Day); LocalSave.SetInt(LocalRecord_Key, TimeUtility.ServerNow.Day); } } @@ -119,7 +114,7 @@ if(!isClick) { if (isOpen && isNewDay) if (IsOpen && isNewDay) { multipleRed.state = RedPointState.Simple; } System/Welfare/NPracticePointWin.cs
@@ -70,15 +70,21 @@ private void RefreshSecond() { int seconds = OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.MultipRealmPoint); if (seconds > 0) OperationBase operation; OperationTimeHepler.Instance.TryGetOperationTime(Operation.MultipRealmPoint, out operation); if(operation != null) { remainTimeText.text = StringUtility.Contact("<color=#8DDC11FF>", TimeUtility.SecondsToDHMSCHS(seconds), "</color>"); int seconds = (operation as OperationMultipleRealmPoint).GetRemainTime(TimeUtility.ServerNow); if (seconds > 0) { remainTimeText.text = StringUtility.Contact("<color=#8DDC11FF>", TimeUtility.SecondsToDHMSCHS(seconds), "</color>"); } else { remainTimeText.text = UIHelper.GetTextColorByItemColor(TextColType.Red, Language.Get("XMZZ110")); } } else { remainTimeText.text = UIHelper.GetTextColorByItemColor(TextColType.Red, Language.Get("XMZZ110")); } } } } System/Welfare/OperationTimeHepler.cs
@@ -1320,10 +1320,120 @@ public class OperationMultipleRealmPoint : OperationBase { public int multiplePractice; //倍数 public int startHour = 5; public int startMinute = 0; public int startSecond = 0; public override bool SatisfyOpenCondition() { return PlayerDatas.Instance.baseData.LV >= limitLv; } public bool InActiveTime(DateTime time) { if (time.Year != startDate.year && time.Year != endDate.year) { return false; } if (startDate.year != endDate.year) { if (time.Year == startDate.year) { if (time.Month < startDate.month) { return false; } else if (time.Month == startDate.month && time.Day < startDate.day) { return false; } else if(time.Month == startDate.month && time.Day == startDate.day && time.Hour < startHour) { return false; } else if (time.Month == startDate.month && time.Day == startDate.day && time.Hour == startHour && time.Minute < startMinute) { return false; } else if (time.Month == startDate.month && time.Day == startDate.day && time.Hour == startHour && time.Minute == startMinute && time.Second < startSecond) { return false; } } else if (time.Year == endDate.year) { if (time.Month > endDate.month) { return false; } else if (time.Month == endDate.month && time.Day > endDate.day) { return false; } else if(time.Month == endDate.month && time.Day == endDate.day && time.Hour > startHour) { return false; } else if (time.Month == endDate.month && time.Day == endDate.day && time.Hour == startHour && time.Minute > startMinute) { return false; } else if (time.Month == endDate.month && time.Day == endDate.day && time.Hour == startHour && time.Minute == startMinute && time.Second > startSecond) { return false; } } } else { if (time.Month < startDate.month || (time.Month == startDate.month && time.Day < startDate.day) || (time.Month == startDate.month && time.Day == startDate.day && time.Hour < startHour) || (time.Month == startDate.month && time.Day == startDate.day && time.Hour == startHour && time.Minute < startMinute) || (time.Month == startDate.month && time.Day == startDate.day && time.Hour == startHour && time.Minute == startMinute) && time.Second < startSecond) { return false; } if (time.Month > endDate.month || (time.Month == endDate.month && time.Day > endDate.day) || (time.Month == endDate.month && time.Day == endDate.day && time.Hour > startHour) || (time.Month == endDate.month && time.Day == endDate.day && time.Hour == startHour && time.Minute > startMinute) || (time.Month == endDate.month && time.Day == endDate.day && time.Hour == startHour && time.Minute == startMinute) && time.Second > startSecond) { return false; } } return true; } public int GetRemainTime(DateTime time) { var seconds = 0; if (InActiveTime(time)) { DateTime endTime = new DateTime(endDate.year, endDate.month, endDate.day, startHour, 0, 0); seconds = (int)(endTime - time).TotalSeconds; } return seconds; } } public enum Operation