public static List <(uint, HuntOrderStatus)> GetDailyStatus() { int[] dailyOrderTypes = new[] { 0, 1, 2, 3, 6, 7, 8, 10, 11, 12 }; var result = new List <(uint, HuntOrderStatus)>(); foreach (var orderType in dailyOrderTypes.Where((HuntHelper.OrderTypeUnlocked))) { bool accepted = HuntHelper.GetAcceptedHunts()[orderType]; var orderTypeObj = HuntHelper.GetMobHuntOrderType(orderType); var dailies = HuntHelper.GetCurrentDailyHunts(orderType); var serverDailies = HuntHelper.GetServerDailyHunts(orderType); var oldDailies = dailies.Where((t, i) => t.NpcID != serverDailies[i].NpcID).Any(); if (!accepted && dailies.Count == 0) { result.Add(((uint, HuntOrderStatus))(orderType, HuntOrderStatus.NotAccepted)); continue; } //LogCritical($"oldDilies = {oldDailies} count server {serverDailies.Count}"); if ((accepted && dailies.All(i => i.IsFinished)) || !accepted) { if (accepted && dailies.All(i => i.IsFinished) && !oldDailies) { // Log($"{orderTypeObj.Item.CurrentLocaleName} - Only Fates left for today's dailies so done"); result.Add(((uint, HuntOrderStatus))(orderType, HuntOrderStatus.OnlyFatesLeft)); } else if (accepted && dailies.All(i => i.IsFinished)) { // Log($"{orderTypeObj.Item.CurrentLocaleName} - Only Fates left for old dailies so should yeet and get new ones"); result.Add(((uint, HuntOrderStatus))(orderType, HuntOrderStatus.OnlyFatesLeftOld)); } else if (!accepted && dailies.All(i => i.IsFinished && i.CurrentKills > 0) && oldDailies) { // Log($"{orderTypeObj.Item.CurrentLocaleName} - Not Accepted and last accepted were old and we so should get new ones?"); result.Add(((uint, HuntOrderStatus))(orderType, HuntOrderStatus.NotAcceptedOld)); } else if (!accepted && dailies.All(i => i.IsFinished && i.CurrentKills > 0) && !oldDailies) { //Log($"{orderTypeObj.Item.CurrentLocaleName} - Finished today's dailies"); result.Add(((uint, HuntOrderStatus))(orderType, HuntOrderStatus.Complete)); } else { //Log($"{orderTypeObj.Item.CurrentLocaleName} - {dailies.All(i => i.IsFinished && i.CurrentKills > 0)} {dailies.All(i => i.IsFinished)} {oldDailies} Have not accepted today's hunts"); result.Add(((uint, HuntOrderStatus))(orderType, HuntOrderStatus.NotAccepted)); } continue; } if (dailies.Any(i => !i.IsFinished) && oldDailies) { // Log($"{orderTypeObj.Item.CurrentLocaleName} - Unfinished old dailies"); result.Add(((uint, HuntOrderStatus))(orderType, HuntOrderStatus.UnFinishedOld)); } else if (dailies.Any(i => !i.IsFinished) && !oldDailies) { // Log($"{orderTypeObj.Item.CurrentLocaleName} - Unfinished current dailies"); result.Add(((uint, HuntOrderStatus))(orderType, HuntOrderStatus.Unfinished)); } else { // Log($"All possible {orderTypeObj.Item.CurrentLocaleName} dailies done {dailies.Count()}"); result.Add(((uint, HuntOrderStatus))(orderType, HuntOrderStatus.Complete)); } } return(result); }