OSDN Git Service

タスクトレイからの復帰時に常に最前面に表示になるのを直す
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / MainForm.cs
index 878fe7b..89ea809 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2013, 2014, 2015 Kazuhiro Fujieda <fujieda@users.sourceforge.jp>\r
+// Copyright (C) 2013, 2014, 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>\r
 // \r
 // This program is part of KancolleSniffer.\r
 //\r
@@ -180,6 +180,7 @@ namespace KancolleSniffer
         {\r
             ShowInTaskbar = true;\r
             WindowState = FormWindowState.Normal;\r
+            TopMost = _config.TopMost; // 最前面に表示されなくなることがあるのを回避する\r
             Activate();\r
         }\r
 \r
@@ -304,6 +305,7 @@ namespace KancolleSniffer
             if (ac >= 10000)\r
                 ac = 9999;\r
             labelAchievement.Text = ac >= 1000 ? ((int)ac).ToString("D") : ac.ToString("F1");\r
+            toolTipAchievement.SetToolTip(labelAchievement, "今月 " + _sniffer.Achievement.ValueOfMonth.ToString("F1"));\r
             UpdateMaterialHistry();\r
             if (_shipListForm.Visible)\r
                 _shipListForm.UpdateList();\r
@@ -378,7 +380,7 @@ namespace KancolleSniffer
         {\r
             var statuses = _sniffer.GetShipStatuses(_currentFleet);\r
             _shipLabels.SetShipInfo(statuses);\r
-            labelAirSuperiority.Text = _sniffer.GetAirSuperiority(_currentFleet).ToString("D");\r
+            labelFighterPower.Text = _sniffer.GetFighterPower(_currentFleet).ToString("D");\r
             UpdateAkashiTimer();\r
             UpdateLoS();\r
             UpdateCondTimers();\r
@@ -418,22 +420,31 @@ namespace KancolleSniffer
         private void UpdateBattleInfo()\r
         {\r
             labelFormation.Text = "";\r
-            labelEnemyAirSuperiority.Text = "";\r
-            labelAirSuperiority.ForeColor = DefaultForeColor;\r
+            labelEnemyFighterPower.Text = "";\r
+            labelFighterPower.ForeColor = DefaultForeColor;\r
+            labelResultRank.Text = "判定";\r
             panelBattleInfo.Visible = _sniffer.Battle.InBattle;\r
             if (!_sniffer.Battle.InBattle)\r
                 return;\r
             panelBattleInfo.BringToFront();\r
-            var color = new[] {DefaultForeColor, DefaultBackColor, Color.Blue, Color.Green, Color.Orange, Color.Red};\r
-            var t = new Timer {Interval = 2000}; // 艦隊が表示されるまで遅延させる\r
-            t.Tick += (sender, args) =>\r
-            {\r
-                labelFormation.Text = _sniffer.Battle.Formation;\r
-                labelEnemyAirSuperiority.Text = _sniffer.Battle.EnemyAirSuperiority.ToString("D");\r
-                labelAirSuperiority.ForeColor = color[_sniffer.Battle.AirBattleResult + 1];\r
-                t.Stop();\r
-            };\r
-            t.Start();\r
+            var battle = _sniffer.Battle;\r
+            var color = new[] { DefaultForeColor, DefaultForeColor, Color.Blue, Color.Green, Color.Orange, Color.Red };\r
+            labelFormation.Text = battle.Formation;\r
+            labelEnemyFighterPower.Text = battle.EnemyFighterPower.ToString("D");\r
+            labelFighterPower.ForeColor = color[battle.AirControlLevel + 1];\r
+            if (_config.AlwaysShowResultRank)\r
+                ShowResultRank();\r
+        }\r
+\r
+        private void ShowResultRank()\r
+        {\r
+            var result = new[] { "完全S", "勝利S", "勝利A", "勝利B", "敗北C", "敗北D", "敗北E" };\r
+            labelResultRank.Text = result[(int)_sniffer.Battle.ResultRank];\r
+        }\r
+\r
+        private void labelResultRank_Click(object sender, EventArgs e)\r
+        {\r
+            ShowResultRank();\r
         }\r
 \r
         private void UpdateChargeInfo()\r
@@ -555,18 +566,31 @@ namespace KancolleSniffer
 \r
         private void UpdateQuestList()\r
         {\r
-            var name = new[] {labelQuest1, labelQuest2, labelQuest3, labelQuest4, labelQuest5};\r
-            var progress = new[] {labelProgress1, labelProgress2, labelProgress3, labelProgress4, labelProgress5};\r
+            var category = new[]\r
+            {\r
+                labelQuestColor1, labelQuestColor2, labelQuestColor3, labelQuestColor4, labelQuestColor5, labelQuestColor6\r
+            };\r
+            var name = new[] {labelQuest1, labelQuest2, labelQuest3, labelQuest4, labelQuest5, labelQuest6};\r
+            var progress = new[] {labelProgress1, labelProgress2, labelProgress3, labelProgress4, labelProgress5, labelProgress6};\r
+            var color = new[]\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)\r
+            };\r
 \r
+            var quests = _sniffer.Quests;\r
             for (var i = 0; i < name.Length; i++)\r
             {\r
-                if (i < _sniffer.Quests.Length)\r
+                if (i < quests.Length)\r
                 {\r
-                    name[i].Text = _sniffer.Quests[i].Name;\r
-                    progress[i].Text = string.Format("{0:D}%", _sniffer.Quests[i].Progress);\r
+                    category[i].BackColor = color[quests[i].Category - 1];\r
+                    name[i].Text = quests[i].Name;\r
+                    progress[i].Text = string.Format("{0:D}%", quests[i].Progress);\r
                 }\r
                 else\r
                 {\r
+                    category[i].BackColor = DefaultBackColor;\r
                     name[i].Text = progress[i].Text = "";\r
                 }\r
             }\r