api_list = new[]\r
{\r
new {api_no = 228, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0},\r
- new {api_no = 230, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0},\r
+ new {api_no = 230, api_category = 2, api_state = 2, api_title = "", api_progress_flag = 0}\r
}\r
}));\r
// 潜水艦3\r
{\r
new ShipStatus {NowHp = 0, MaxHp = 27, Spec = new ShipSpec {Id = 1532, ShipType = 13}},\r
new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}},\r
- new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}},\r
+ new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}}\r
}, new ShipStatus[0]);\r
questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
PAssert.That(() =>\r
questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
.SequenceEqual(new[] {new {Id = 702, Now = 1}, new {Id = 703, Now = 1}}));\r
}\r
+\r
+ /// <summary>\r
+ /// 文字列表記にする\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void ToStringTest()\r
+ {\r
+ var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
+ var status = new Status\r
+ {\r
+ QuestCountList = new[]\r
+ {\r
+ new QuestCount {Id = 211, Now = 2},\r
+ new QuestCount {Id = 214, NowArray = new[] {20, 7, 10, 8}},\r
+ new QuestCount {Id = 854, NowArray = new[] {1, 1, 1, 1}}\r
+ }\r
+ };\r
+ questInfo.LoadState(status);\r
+ PAssert.That(() => status.QuestCountList[0].ToString() == "2/3");\r
+ PAssert.That(() => status.QuestCountList[1].ToString() == "20/36 7/6 10/24 8/12");\r
+ var z = status.QuestCountList[2];\r
+ PAssert.That(() => z.ToString() == "4/4");\r
+ PAssert.That(() => z.ToToolTip() == "2-4 6-1 6-3 6-4");\r
+ z.NowArray = new[] {0, 0, 0, 0};\r
+ PAssert.That(() => z.ToToolTip() == "");\r
+ }\r
}\r
}
\ No newline at end of file
private readonly Config _config = new Config();\r
private readonly ConfigDialog _configDialog;\r
private readonly ProxyManager _proxyManager;\r
+ private readonly ToolTip _toolTip = new ToolTip {ShowAlways = true};\r
private int _currentFleet;\r
private bool _combinedFleet;\r
private readonly Label[] _labelCheckFleets;\r
{\r
count[i].Text = "";\r
count[i].ForeColor = Color.Black;\r
+ _toolTip.SetToolTip(count[i], "");\r
continue;\r
}\r
- count[i].Text = c.NowArray != null ? $"{string.Join("|", c.NowArray)}" : $"{c.Now}/{c.Max}";\r
- count[i].ForeColor =\r
- (c.NowArray?.Zip(c.Spec.MaxArray, (n, m) => n >= m).All(x => x) ?? c.Now >= c.Spec.Max)\r
- ? CUDColor.Green\r
- : Color.Black;\r
+ count[i].Text = c.ToString();\r
+ count[i].ForeColor = c.Cleared ? CUDColor.Green : Color.Black;\r
+ _toolTip.SetToolTip(count[i], c.ToToolTip());\r
}\r
else\r
{\r
category[i].BackColor = DefaultBackColor;\r
name[i].Text = count[i].Text = progress[i].Text = "";\r
+ _toolTip.SetToolTip(count[i], "");\r
}\r
}\r
}\r
public int Id { get; set; }\r
public int Now { get; set; }\r
public int[] NowArray { get; set; }\r
- public int Max => Spec.Max;\r
\r
[XmlIgnore]\r
public QuestSpec Spec { get; set; }\r
break;\r
}\r
var now = Now + Spec.Shift;\r
- var max = Max + Spec.Shift;\r
+ var max = Spec.Max + Spec.Shift;\r
var low = (int)Ceiling(max * progress / 100.0);\r
var high = (int)Ceiling(max * next / 100.0);\r
if (now < low)\r
}\r
return false;\r
}\r
+\r
+ public override string ToString()\r
+ {\r
+ if (Id == 854)\r
+ return $"{NowArray.Count(n => n == 1)}/{Spec.MaxArray.Length}";\r
+ return NowArray != null\r
+ ? string.Join(" ", NowArray.Zip(Spec.MaxArray, (n, m) => $"{n}/{m}"))\r
+ : $"{Now}/{Spec.Max}";\r
+ }\r
+\r
+ public string ToToolTip()\r
+ {\r
+ return Id != 854\r
+ ? ""\r
+ : string.Join(" ",\r
+ new[] {"2-4", "6-1", "6-3", "6-4"}.Zip(NowArray, (map, flag) => flag == 1 ? map : "")\r
+ .Where(s => !string.IsNullOrEmpty(s)));\r
+ }\r
+\r
+ public bool Cleared => NowArray?.Zip(Spec.MaxArray, (n, m) => n >= m).All(x => x) ?? Now >= Spec.Max;\r
}\r
\r
// @formatter:off\r