\r
using System;\r
using System.Collections.Generic;\r
+using System.Drawing;\r
using System.Linq;\r
+using System.Windows.Forms;\r
\r
namespace KancolleSniffer\r
{\r
public int Category { get; set; }\r
public string Name { get; set; }\r
public int Progress { get; set; }\r
+ public Color Color { get; set; }\r
}\r
\r
public class QuestInfo\r
private DateTime _lastCreared;\r
private readonly SortedDictionary<int, QuestStatus> _quests = new SortedDictionary<int, QuestStatus>();\r
\r
+ private readonly Color[] _color =\r
+ {\r
+ Color.FromArgb(60, 141, 76), Color.FromArgb(232, 57, 41), Color.FromArgb(136, 204, 120),\r
+ Color.FromArgb(52, 147, 185), Color.FromArgb(220, 198, 126), Color.FromArgb(168, 111, 76),\r
+ Color.FromArgb(200, 148, 231), Color.FromArgb(232, 57, 41)\r
+ };\r
+\r
public int QuestCount { get; set; }\r
\r
- public void Inspect(dynamic json)\r
+ public void InspectQuestList(dynamic json)\r
{\r
var resetTime = DateTime.Today.AddHours(5);\r
if (DateTime.Now >= resetTime && _lastCreared < resetTime)\r
}\r
switch (state)\r
{\r
- case 2:\r
- _quests[id] = new QuestStatus {Category = cat, Name = name, Progress = progress};\r
- break;\r
case 1:\r
- case 3:\r
_quests.Remove(id);\r
- continue;\r
+ break;\r
+ case 3:\r
+ progress = 100;\r
+ goto case 2;\r
+ case 2:\r
+ _quests[id] = new QuestStatus\r
+ {\r
+ Category = cat,\r
+ Name = name,\r
+ Progress = progress,\r
+ Color = cat <= _color.Length ? _color[cat - 1] : Control.DefaultBackColor\r
+ };\r
+ break;\r
}\r
}\r
if (_quests.Count <= QuestCount)\r
}\r
}\r
\r
+ public void InspectStop(string request)\r
+ {\r
+ var values = HttpUtility.ParseQueryString(request);\r
+ _quests.Remove(int.Parse(values["api_quest_id"]));\r
+ }\r
+\r
+ public void InspectClearItemGet(string request)\r
+ {\r
+ InspectStop(request);\r
+ }\r
+\r
public QuestStatus[] Quests => _quests.Values.ToArray();\r
}\r
}
\ No newline at end of file