OSDN Git Service

当日5時からと月曜5時からのバケツの増減を表示する
authorKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Mon, 28 Jul 2014 12:13:07 +0000 (21:13 +0900)
committerKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Wed, 30 Jul 2014 12:52:58 +0000 (21:52 +0900)
KancolleSniffer/ItemInfo.cs
KancolleSniffer/MainForm.Designer.cs
KancolleSniffer/MainForm.cs
KancolleSniffer/MainForm.resx
KancolleSniffer/Sniffer.cs
KancolleSniffer/Status.cs

index d91d622..a5872e6 100644 (file)
@@ -15,6 +15,7 @@
 // You should have received a copy of the GNU General Public License\r
 // along with this program; if not, see <http://www.gnu.org/licenses/>.\r
 \r
+using System;\r
 using System.Collections.Generic;\r
 using System.Web;\r
 \r
@@ -31,13 +32,36 @@ namespace KancolleSniffer
         private int _nowShips;\r
         private readonly Dictionary<int, ItemSpec> _itemSpecs = new Dictionary<int, ItemSpec>();\r
         private readonly Dictionary<int, int> _itemIds = new Dictionary<int, int>();\r
+        private int _numBuckets;\r
+        private DateTime _bucketsLastSetTime;\r
 \r
         public int MaxShips { get; private set; }\r
         public int MarginShips { get; set; }\r
         public bool NeedRing { get; set; }\r
         public int NowItems { get; set; }\r
         public int MaxItems { get; private set; }\r
-        public int NumBuckets { get; set; }\r
+        public int BucketsOnMonday { get; set; }\r
+        public int BucketsInMorning { get; set; }\r
+\r
+        public int NumBuckets\r
+        {\r
+            get\r
+            {\r
+                return _numBuckets;\r
+            }\r
+            set\r
+            {\r
+                var morning = DateTime.Today.AddHours(5);\r
+                var dow = (int)morning.DayOfWeek;\r
+                var monday = morning.AddDays(dow == 0 ? -6 : -dow + 1);\r
+                if (DateTime.Now >= monday && _bucketsLastSetTime < monday)\r
+                    BucketsOnMonday = _numBuckets;\r
+                if (DateTime.Now >= morning && _bucketsLastSetTime < morning)\r
+                    BucketsInMorning = _numBuckets;\r
+                _numBuckets = value;\r
+                _bucketsLastSetTime = DateTime.Now;\r
+            }\r
+        }\r
 \r
         public int NowShips\r
         {\r
@@ -140,5 +164,19 @@ namespace KancolleSniffer
         {\r
             return _itemSpecs[id];\r
         }\r
+\r
+        public void SaveState(Status status)\r
+        {\r
+            status.BucketsOnMonday = BucketsOnMonday;\r
+            status.BucketsInMorning = BucketsInMorning;\r
+            status.BacketsLastSetTime = _bucketsLastSetTime;\r
+        }\r
+\r
+        public void LoadSate(Status status)\r
+        {\r
+            BucketsOnMonday = status.BucketsOnMonday;\r
+            BucketsInMorning = status.BucketsInMorning;\r
+            _bucketsLastSetTime = status.BacketsLastSetTime;\r
+        }\r
     }\r
 }
\ No newline at end of file
index 1cb1100..9cfbb81 100644 (file)
@@ -184,6 +184,8 @@ namespace KancolleSniffer
             this.labelFleet3 = new System.Windows.Forms.Label();\r
             this.labelCheckFleet2 = new System.Windows.Forms.Label();\r
             this.labelFleet2 = new System.Windows.Forms.Label();\r
+            this.labelBucketHistoryButton = new System.Windows.Forms.Label();\r
+            this.labelBucketHistory = new System.Windows.Forms.Label();\r
             this.panelHeadquarters.SuspendLayout();\r
             this.panelFleet1.SuspendLayout();\r
             this.panelBattleInfo.SuspendLayout();\r
@@ -199,6 +201,7 @@ namespace KancolleSniffer
             // \r
             this.panelHeadquarters.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
             this.panelHeadquarters.Controls.Add(this.labelLogin);\r
+            this.panelHeadquarters.Controls.Add(this.labelBucketHistoryButton);\r
             this.panelHeadquarters.Controls.Add(this.labelResetAchievement);\r
             this.panelHeadquarters.Controls.Add(this.labelAchievement);\r
             this.panelHeadquarters.Controls.Add(this.label28);\r
@@ -215,11 +218,10 @@ namespace KancolleSniffer
             // \r
             // labelLogin\r
             // \r
-            this.labelLogin.AutoSize = true;\r
             this.labelLogin.Font = new System.Drawing.Font("MS UI Gothic", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));\r
-            this.labelLogin.Location = new System.Drawing.Point(3, 3);\r
+            this.labelLogin.Location = new System.Drawing.Point(6, 3);\r
             this.labelLogin.Name = "labelLogin";\r
-            this.labelLogin.Size = new System.Drawing.Size(203, 26);\r
+            this.labelLogin.Size = new System.Drawing.Size(210, 26);\r
             this.labelLogin.TabIndex = 23;\r
             this.labelLogin.Text = "艦これにログインしてください。\r\nログイン中ならログインし直してください。";\r
             // \r
@@ -227,7 +229,7 @@ namespace KancolleSniffer
             // \r
             this.labelResetAchievement.AutoSize = true;\r
             this.labelResetAchievement.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
-            this.labelResetAchievement.Location = new System.Drawing.Point(191, 15);\r
+            this.labelResetAchievement.Location = new System.Drawing.Point(200, 15);\r
             this.labelResetAchievement.Name = "labelResetAchievement";\r
             this.labelResetAchievement.Size = new System.Drawing.Size(15, 14);\r
             this.labelResetAchievement.TabIndex = 8;\r
@@ -236,17 +238,16 @@ namespace KancolleSniffer
             // \r
             // labelAchievement\r
             // \r
-            this.labelAchievement.Location = new System.Drawing.Point(159, 18);\r
+            this.labelAchievement.Location = new System.Drawing.Point(168, 18);\r
             this.labelAchievement.Name = "labelAchievement";\r
             this.labelAchievement.Size = new System.Drawing.Size(31, 12);\r
             this.labelAchievement.TabIndex = 7;\r
-            this.labelAchievement.Text = "0.0";\r
             this.labelAchievement.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
             // \r
             // label28\r
             // \r
             this.label28.AutoSize = true;\r
-            this.label28.Location = new System.Drawing.Point(161, 3);\r
+            this.label28.Location = new System.Drawing.Point(170, 3);\r
             this.label28.Name = "label28";\r
             this.label28.Size = new System.Drawing.Size(29, 12);\r
             this.label28.TabIndex = 6;\r
@@ -1494,12 +1495,35 @@ namespace KancolleSniffer
             this.labelFleet2.Text = "第二艦隊";\r
             this.labelFleet2.Click += new System.EventHandler(this.labelFleet_Click);\r
             // \r
+            // labelBucketHistoryButton\r
+            // \r
+            this.labelBucketHistoryButton.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+            this.labelBucketHistoryButton.Font = new System.Drawing.Font("MS UI Gothic", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));\r
+            this.labelBucketHistoryButton.Image = ((System.Drawing.Image)(resources.GetObject("labelBucketHistoryButton.Image")));\r
+            this.labelBucketHistoryButton.Location = new System.Drawing.Point(146, 15);\r
+            this.labelBucketHistoryButton.Name = "labelBucketHistoryButton";\r
+            this.labelBucketHistoryButton.Size = new System.Drawing.Size(14, 14);\r
+            this.labelBucketHistoryButton.TabIndex = 9;\r
+            this.labelBucketHistoryButton.Click += new System.EventHandler(this.labelBucketHistoryButton_Click);\r
+            // \r
+            // labelBucketHistory\r
+            // \r
+            this.labelBucketHistory.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+            this.labelBucketHistory.Location = new System.Drawing.Point(106, 36);\r
+            this.labelBucketHistory.Name = "labelBucketHistory";\r
+            this.labelBucketHistory.Size = new System.Drawing.Size(61, 28);\r
+            this.labelBucketHistory.TabIndex = 42;\r
+            this.labelBucketHistory.Text = "+100 今日\r\n+100 今週";\r
+            this.labelBucketHistory.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
+            this.labelBucketHistory.Visible = false;\r
+            // \r
             // MainForm\r
             // \r
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);\r
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
             this.ClientSize = new System.Drawing.Size(250, 484);\r
             this.ContextMenuStrip = this.contextMenuStripToolTip;\r
+            this.Controls.Add(this.labelBucketHistory);\r
             this.Controls.Add(this.labelCheckFleet2);\r
             this.Controls.Add(this.labelFleet2);\r
             this.Controls.Add(this.labelCheckFleet3);\r
@@ -1687,6 +1711,8 @@ namespace KancolleSniffer
         private System.Windows.Forms.Label label29;\r
         private System.Windows.Forms.Label labelEnemyAirSuperiority;\r
         private System.Windows.Forms.Label label30;\r
+        private System.Windows.Forms.Label labelBucketHistoryButton;\r
+        private System.Windows.Forms.Label labelBucketHistory;\r
     }\r
 }\r
 \r
index e4889af..2345fea 100644 (file)
@@ -19,6 +19,7 @@ using System;
 using System.Drawing;\r
 using System.IO;\r
 using System.Linq;\r
+using System.Runtime.InteropServices;\r
 using System.Windows.Forms;\r
 using Codeplex.Data;\r
 using Fiddler;\r
@@ -404,5 +405,26 @@ namespace KancolleSniffer
             _sniffer.Achievement.Reset();\r
             UpdateItemInfo();\r
         }\r
+\r
+        private void labelBucketHistoryButton_Click(object sender, EventArgs e)\r
+        {\r
+            if (labelBucketHistory.Visible)\r
+            {\r
+                labelBucketHistory.Visible = false;\r
+                labelBucketHistoryButton.BackColor = DefaultBackColor;\r
+            }\r
+            else\r
+            {\r
+                labelBucketHistory.Visible = true;\r
+                labelBucketHistoryButton.BackColor = SystemColors.ActiveCaption;\r
+                var day = _sniffer.Item.NumBuckets - _sniffer.Item.BucketsInMorning;\r
+                var week = _sniffer.Item.NumBuckets - _sniffer.Item.BucketsOnMonday;\r
+                if (day >= 1000)\r
+                    day = 999;\r
+                if (week >= 1000)\r
+                    week = 999;\r
+                labelBucketHistory.Text = string.Format("{0:+#;-#;±0} 今日\n{1:+#;-#;±0} 今週", day, week);\r
+            }\r
+        }\r
     }\r
 }
\ No newline at end of file
index cb15ca2..ac5d78d 100644 (file)
   <resheader name="writer">\r
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
   </resheader>\r
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
+  <data name="labelBucketHistoryButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+    <value>\r
+        iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+        YQUAAAAJcEhZcwAAFxEAABcRAcom8z8AAAA9SURBVChTdYxBDgAgCMP2NH/u05SRzEyFJrtAWgQztprx\r
+        h2GHd/wlVSVtUVWOLbxy2cIrny1olragaTawAaZHH+EhWPx/AAAAAElFTkSuQmCC\r
+</value>\r
+  </data>\r
   <metadata name="timerMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>17, 17</value>\r
   </metadata>\r
   <metadata name="contextMenuStripToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>269, 17</value>\r
   </metadata>\r
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
   <data name="notifyIconMain.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
     <value>\r
         AAABAAQAQEAAAAEAIAAoQAAARgAAACAgAAABACAAKBAAAG5AAAAYGAAAAQAgACgJAACWUAAAEBAAAAEA\r
index 7338362..b7c8dde 100644 (file)
@@ -59,6 +59,7 @@ namespace KancolleSniffer
         public void SaveState()\r
         {\r
             _achievement.SaveState(_status);\r
+            _itemInfo.SaveState(_status);\r
             _status.Save();\r
         }\r
 \r
@@ -66,6 +67,7 @@ namespace KancolleSniffer
         {\r
             _status.Load();\r
             _achievement.LoadState(_status);\r
+            _itemInfo.LoadSate(_status);\r
         }\r
 \r
         public Update Sniff(string url, string request, dynamic json)\r
index bd41d00..18e44d9 100644 (file)
@@ -29,6 +29,9 @@ namespace KancolleSniffer
 \r
         public int ExperiencePoint { get; set; }\r
         public DateTime LastResetTime { get; set; }\r
+        public int BucketsInMorning { get; set; }\r
+        public int BucketsOnMonday { get; set; }\r
+        public DateTime BacketsLastSetTime { get; set; }\r
 \r
         public void Load()\r
         {\r