using vnxbqy.UI; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class OperationQCSY : OperationBase { List> openTimes = new List>(); public override bool SatisfyOpenCondition() { return PlayerDatas.Instance.baseData.LV >= limitLv; } public override string ToDisplayTime() { var textBuilder = OperationTimeHepler.textBuilder; textBuilder.Length = 0; textBuilder.Append(startDate.ToDisplay()); if (startDate != endDate) { textBuilder.Append("—"); textBuilder.Append(endDate.ToDisplay()); } return textBuilder.ToString(); } public override void Reset() { base.Reset(); } public void ParseQCSY(IL_HAA54_tagMCActHorsePetFeastInfo package) { openTimes.Clear(); for (int i = 0; i < package.ActTimeList.Length; i++) { List startEndTime = new List(); startEndTime.Add(int.Parse(package.ActTimeList[i].StartTime.Split(':')[0])); startEndTime.Add(int.Parse(package.ActTimeList[i].StartTime.Split(':')[1])); startEndTime.Add(int.Parse(package.ActTimeList[i].EndtTime.Split(':')[0])); startEndTime.Add(int.Parse(package.ActTimeList[i].EndtTime.Split(':')[1])); openTimes.Add(startEndTime); } } //获取最近的开启时间[时,分] public List GetStartTime() { var hour = TimeUtility.Hour; var minute = TimeUtility.Minute; for (int i = 0; i < openTimes.Count; i++) { var startHour = openTimes[i][0]; var startMinute = openTimes[i][1]; var endHour = openTimes[i][2]; var endMinute = openTimes[i][3]; if (hour > endHour || (hour == endHour && minute > endMinute)) { continue; } return new List { startHour, startMinute }; } return new List { openTimes[openTimes.Count-1][0], openTimes[openTimes.Count - 1][1] }; } public bool IsInAction() { var hour = TimeUtility.Hour; var minute = TimeUtility.Minute; for (int i = 0; i < openTimes.Count; i++) { var startHour = openTimes[i][0]; var startMinute = openTimes[i][1]; var endHour = openTimes[i][2]; var endMinute = openTimes[i][3]; if (startHour == endHour && minute >= startMinute && minute <= endMinute) { return true; } if (hour >= startHour && hour <= endHour) { if (hour == startHour && minute >= startMinute) { return true; } if (hour == endHour && minute <= endMinute) { return true; } } } return false; } }