OSDN Git Service

各種報告書の表を列単位で検索可能にする
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / Model / CellInfo.cs
1 // Copyright (C) 2018 Kazuhiro Fujieda <fujieda@users.osdn.me>\r
2 //\r
3 // Licensed under the Apache License, Version 2.0 (the "License");\r
4 // you may not use this file except in compliance with the License.\r
5 // You may obtain a copy of the License at\r
6 //\r
7 //    http://www.apache.org/licenses/LICENSE-2.0\r
8 //\r
9 // Unless required by applicable law or agreed to in writing, software\r
10 // distributed under the License is distributed on an "AS IS" BASIS,\r
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
12 // See the License for the specific language governing permissions and\r
13 // limitations under the License.\r
14 \r
15 namespace KancolleSniffer.Model\r
16 {\r
17     public class CellInfo\r
18     {\r
19         private int _battleCount;\r
20 \r
21         public string Next { get; set; }\r
22 \r
23         public string Current { get; set; }\r
24 \r
25         private string _info;\r
26 \r
27         public void Port()\r
28         {\r
29             Current = Next = _info;\r
30             _info = "";\r
31         }\r
32 \r
33         public void StartBattle()\r
34         {\r
35             Current = Next = _info;\r
36         }\r
37 \r
38         public void StartPractice()\r
39         {\r
40             Current = Next = _info;\r
41         }\r
42 \r
43         public void InspectMapStart(dynamic json)\r
44         {\r
45             _battleCount = 0;\r
46             InspectMapNext(json);\r
47         }\r
48 \r
49         public void InspectMapNext(dynamic json)\r
50         {\r
51             Current = _info;\r
52             SetInfo(json);\r
53             Next = "次" + _info;\r
54         }\r
55 \r
56         private void SetInfo(dynamic json)\r
57         {\r
58             switch ((int)json.api_color_no)\r
59             {\r
60                 case 2:\r
61                     _info = "資源";\r
62                     break;\r
63                 case 3:\r
64                     _info = "渦潮";\r
65                     break;\r
66                 case 4:\r
67                     switch ((int)json.api_event_id)\r
68                     {\r
69                         case 4:\r
70                             _battleCount++;\r
71                             _info = $"{BattleCount}戦目";\r
72                             break;\r
73                         case 6:\r
74                             _info = "気のせい";\r
75                             break;\r
76                     }\r
77                     break;\r
78                 case 5:\r
79                     _info = "ボス戦";\r
80                     break;\r
81                 case 6:\r
82                     _info = "揚陸地点";\r
83                     break;\r
84                 case 7:\r
85                     _battleCount++;\r
86                     _info = $"{BattleCount}戦目(航空)";\r
87                     break;\r
88                 case 8:\r
89                     _info = "護衛成功";\r
90                     break;\r
91                 case 9:\r
92                     _info = "航空偵察";\r
93                     break;\r
94                 case 10:\r
95                     _battleCount++;\r
96                     _info = $"{BattleCount}戦目(空襲)";\r
97                     break;\r
98                 case 11:\r
99                     _battleCount++;\r
100                     _info = $"{BattleCount}戦目(夜戦)";\r
101                     break;\r
102             }\r
103         }\r
104 \r
105         private string BattleCount => ((char)('0' + _battleCount)).ToString();\r
106     }\r
107 }