├── .gitattributes
├── .gitignore
├── CodeA.sln
└── PluginBase
├── Base.cs
├── CodeA.csproj
├── Counter.cs
├── Enemy.xml
├── KanColleViewerAssemblies
├── KanColleViewer.Composition.dll
└── KanColleWrapper.dll
├── Model
├── DataModel.cs
└── FileModel.cs
├── Panel.xaml
├── Panel.xaml.cs
├── Properties
└── AssemblyInfo.cs
└── packages.config
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.sln.docstates
8 |
9 | # Build results
10 | [Dd]ebug/
11 | [Dd]ebugPublic/
12 | [Rr]elease/
13 | x64/
14 | build/
15 | bld/
16 | [Bb]in/
17 | [Oo]bj/
18 |
19 | # Roslyn cache directories
20 | *.ide/
21 |
22 | # MSTest test Results
23 | [Tt]est[Rr]esult*/
24 | [Bb]uild[Ll]og.*
25 |
26 | #NUNIT
27 | *.VisualState.xml
28 | TestResult.xml
29 |
30 | # Build Results of an ATL Project
31 | [Dd]ebugPS/
32 | [Rr]eleasePS/
33 | dlldata.c
34 |
35 | *_i.c
36 | *_p.c
37 | *_i.h
38 | *.ilk
39 | *.meta
40 | *.obj
41 | *.pch
42 | *.pdb
43 | *.pgc
44 | *.pgd
45 | *.rsp
46 | *.sbr
47 | *.tlb
48 | *.tli
49 | *.tlh
50 | *.tmp
51 | *.tmp_proj
52 | *.log
53 | *.vspscc
54 | *.vssscc
55 | .builds
56 | *.pidb
57 | *.svclog
58 | *.scc
59 |
60 | # Chutzpah Test files
61 | _Chutzpah*
62 |
63 | # Visual C++ cache files
64 | ipch/
65 | *.aps
66 | *.ncb
67 | *.opensdf
68 | *.sdf
69 | *.cachefile
70 |
71 | # Visual Studio profiler
72 | *.psess
73 | *.vsp
74 | *.vspx
75 |
76 | # TFS 2012 Local Workspace
77 | $tf/
78 |
79 | # Guidance Automation Toolkit
80 | *.gpState
81 |
82 | # ReSharper is a .NET coding add-in
83 | _ReSharper*/
84 | *.[Rr]e[Ss]harper
85 | *.DotSettings.user
86 |
87 | # JustCode is a .NET coding addin-in
88 | .JustCode
89 |
90 | # TeamCity is a build add-in
91 | _TeamCity*
92 |
93 | # DotCover is a Code Coverage Tool
94 | *.dotCover
95 |
96 | # NCrunch
97 | _NCrunch_*
98 | .*crunch*.local.xml
99 |
100 | # MightyMoose
101 | *.mm.*
102 | AutoTest.Net/
103 |
104 | # Web workbench (sass)
105 | .sass-cache/
106 |
107 | # Installshield output folder
108 | [Ee]xpress/
109 |
110 | # DocProject is a documentation generator add-in
111 | DocProject/buildhelp/
112 | DocProject/Help/*.HxT
113 | DocProject/Help/*.HxC
114 | DocProject/Help/*.hhc
115 | DocProject/Help/*.hhk
116 | DocProject/Help/*.hhp
117 | DocProject/Help/Html2
118 | DocProject/Help/html
119 |
120 | # Click-Once directory
121 | publish/
122 |
123 | # Publish Web Output
124 | *.[Pp]ublish.xml
125 | *.azurePubxml
126 | ## TODO: Comment the next line if you want to checkin your
127 | ## web deploy settings but do note that will include unencrypted
128 | ## passwords
129 | #*.pubxml
130 |
131 | # NuGet Packages Directory
132 | packages/*
133 | ## TODO: If the tool you use requires repositories.config
134 | ## uncomment the next line
135 | #!packages/repositories.config
136 |
137 | # Enable "build/" folder in the NuGet Packages folder since
138 | # NuGet packages use it for MSBuild targets.
139 | # This line needs to be after the ignore of the build folder
140 | # (and the packages folder if the line above has been uncommented)
141 | !packages/build/
142 |
143 | # Windows Azure Build Output
144 | csx/
145 | *.build.csdef
146 |
147 | # Windows Store app package directory
148 | AppPackages/
149 |
150 | # Others
151 | sql/
152 | *.Cache
153 | ClientBin/
154 | [Ss]tyle[Cc]op.*
155 | ~$*
156 | *~
157 | *.dbmdl
158 | *.dbproj.schemaview
159 | *.pfx
160 | *.publishsettings
161 | node_modules/
162 |
163 | # RIA/Silverlight projects
164 | Generated_Code/
165 |
166 | # Backup & report files from converting an old project file
167 | # to a newer Visual Studio version. Backup files are not needed,
168 | # because we have git ;-)
169 | _UpgradeReport_Files/
170 | Backup*/
171 | UpgradeLog*.XML
172 | UpgradeLog*.htm
173 |
174 | # SQL Server files
175 | *.mdf
176 | *.ldf
177 |
178 | # Business Intelligence projects
179 | *.rdl.data
180 | *.bim.layout
181 | *.bim_*.settings
182 |
183 | # Microsoft Fakes
184 | FakesAssemblies/
185 |
186 | # LightSwitch generated files
187 | GeneratedArtifacts/
188 | _Pvt_Extensions/
189 | ModelManifest.xml
--------------------------------------------------------------------------------
/CodeA.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Express 2013 for Windows Desktop
4 | VisualStudioVersion = 12.0.31101.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeA", "PluginBase\CodeA.csproj", "{D8A308E0-DC14-451B-B35F-89251838014A}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {D8A308E0-DC14-451B-B35F-89251838014A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {D8A308E0-DC14-451B-B35F-89251838014A}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {D8A308E0-DC14-451B-B35F-89251838014A}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {D8A308E0-DC14-451B-B35F-89251838014A}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | EndGlobal
23 |
--------------------------------------------------------------------------------
/PluginBase/Base.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using System.ComponentModel.Composition;
8 | using Grabacr07.KanColleViewer.Composition;
9 |
10 | namespace CodeA
11 | {
12 | [Export(typeof(IPlugin))]
13 | [Export(typeof(ITool))]
14 | [ExportMetadata("Guid", "320fdf37-1e13-40a5-b5ae-6d7dcd35936b")]
15 | [ExportMetadata("Title", "CodeA")]
16 | [ExportMetadata("Description", "周常计数器")]
17 | [ExportMetadata("Version", "1.3")]
18 | [ExportMetadata("Author", "Mystic Monkey")]
19 | public class Base : IPlugin, ITool
20 | {
21 | private Counter counter;
22 |
23 | public string Name => "CodeA";
24 |
25 | public object View => new Panel() { DataContext = counter };
26 |
27 | public void Initialize()
28 | {
29 | counter = new Counter(Grabacr07.KanColleWrapper.KanColleClient.Current.Proxy);
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PluginBase/CodeA.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {D8A308E0-DC14-451B-B35F-89251838014A}
8 | Library
9 | Properties
10 | CodeA
11 | CodeA
12 | v4.6
13 | 512
14 |
15 |
16 |
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | pdbonly
27 | true
28 | bin\Release\
29 | TRACE
30 | prompt
31 | 4
32 | false
33 |
34 |
35 |
36 | False
37 | KanColleViewerAssemblies\KanColleViewer.Composition.dll
38 | False
39 |
40 |
41 | False
42 | KanColleViewerAssemblies\KanColleWrapper.dll
43 | False
44 |
45 |
46 | ..\packages\LivetCask.1.3.0.0\lib\net45\Livet.dll
47 | False
48 |
49 |
50 | ..\packages\log4net.2.0.3\lib\net40-full\log4net.dll
51 | False
52 |
53 |
54 | ..\packages\LivetCask.1.3.0.0\lib\net45\Microsoft.Expression.Interactions.dll
55 | True
56 | False
57 |
58 |
59 | ..\packages\Nekoxy.1.5.2.20\lib\net45\Nekoxy.dll
60 | False
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 | ..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll
70 | False
71 | False
72 |
73 |
74 | ..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll
75 | False
76 | False
77 |
78 |
79 | ..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll
80 | False
81 | False
82 |
83 |
84 | ..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll
85 | False
86 | False
87 |
88 |
89 | ..\packages\LivetCask.1.3.0.0\lib\net45\System.Windows.Interactivity.dll
90 | True
91 | False
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 | ..\packages\Nekoxy.1.5.2.20\lib\net45\TrotiNet.dll
101 | False
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 | Panel.xaml
111 |
112 |
113 |
114 |
115 |
116 |
117 | Designer
118 | MSBuild:Compile
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
141 |
--------------------------------------------------------------------------------
/PluginBase/Counter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Xml.Serialization;
8 |
9 | using Grabacr07.KanColleWrapper;
10 | using Grabacr07.KanColleWrapper.Models.Raw;
11 | using Grabacr07.KanColleWrapper.Models;
12 | using System.ComponentModel;
13 | using System.Net;
14 |
15 | namespace CodeA
16 | {
17 | public class Counter : INotifyPropertyChanged
18 | {
19 | private static readonly string filePath = Path.Combine(
20 | Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
21 | "grabacr.net",
22 | "KanColleViewer",
23 | "CodeA.xml");
24 | private static readonly string dataPath = Path.Combine(
25 | Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
26 | "grabacr.net",
27 | "KanColleViewer",
28 | "CodeA_Enemy.xml");
29 |
30 | private XmlSerializer serializer = new XmlSerializer(typeof(Model.FileModel));
31 | private FileInfo dataFile;
32 |
33 | // 计数参数
34 | public Model.DataModel Data { get; private set; }
35 |
36 | // 最后一次回母港
37 | private DateTime LastPort = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.Now, "Tokyo Standard Time");
38 |
39 | public Livet.Commands.ViewModelCommand UpdateCommand { get; private set; }
40 |
41 | public Counter(KanColleProxy proxy)
42 | {
43 | // 注册订阅
44 | proxy.api_req_sortie_battleresult.TryParse().Subscribe(x => Battle(x.Data));
45 | proxy.api_req_combined_battle_battleresult.TryParse().Subscribe(x => Battle(x.Data));
46 | proxy.api_port.TryParse().Subscribe(x => Port(x.Data));
47 |
48 | UpdateCommand = new Livet.Commands.ViewModelCommand(update);
49 |
50 | // 检查文件
51 | dataFile = CheckFile();
52 | if (dataFile.Exists)
53 | {
54 | try
55 | {
56 | using (FileStream fs = new FileStream(dataFile.FullName, FileMode.Open))
57 | {
58 | // 读文件
59 | Model.FileModel model = serializer.Deserialize(fs) as Model.FileModel;
60 |
61 | // 比对日期
62 | if (model.Date >= GetResetTime())
63 | {
64 | Fight = model.Fight;
65 | RankS = model.RankS;
66 | EnterBoss = model.EnterBoss;
67 | WinBoss = model.WinBoss;
68 |
69 | Support20 = model.Support20;
70 | Ro = model.Ro;
71 | I = model.I;
72 | }
73 | }
74 | }
75 | catch (InvalidOperationException)
76 | { dataFile.Delete(); }
77 | }
78 |
79 | // 更新敌数据
80 | XmlSerializer serial = new XmlSerializer(typeof(Model.DataModel));
81 | if (File.Exists(dataPath))
82 | {
83 | using (FileStream fs = new FileStream(dataPath, FileMode.Open))
84 | Data = serial.Deserialize(fs) as Model.DataModel;
85 | }
86 | else
87 | {
88 | using (Stream rs = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("CodeA.Enemy.xml"))
89 | Data = serial.Deserialize(rs) as Model.DataModel;
90 | update();
91 | }
92 | }
93 |
94 | private bool Changed = false; // 写文件
95 |
96 | // あ
97 | public int Fight { get; private set; }
98 | public int RankS { get; private set; }
99 | public int EnterBoss { get; private set; }
100 | public int WinBoss { get; private set; }
101 |
102 | // 其它
103 | public int Support20 { get; set; }
104 | public int Ro { get; set; }
105 | public int I { get; set; }
106 |
107 | ///
108 | /// 战斗时调整计数器
109 | ///
110 | /// 战斗结果 (battleresult)
111 | private void Battle(kcsapi_battleresult data)
112 | {
113 | int[] misson =
114 | KanColleClient.Current.Homeport.Quests.Current.Where(i => i != null).Select(i => i.Id).ToArray();
115 |
116 | // あ号
117 | if (misson.Contains(214))
118 | {
119 | Changed = true;
120 | Fight++;
121 | if (data.api_win_rank == "S")
122 | RankS++;
123 | // 进 BOSS
124 | if (Data.Bosses.Contains(data.api_enemy_info.api_deck_name))
125 | {
126 | EnterBoss++;
127 | // BOSS 胜利
128 | if (data.api_win_rank != "C" & data.api_win_rank != "D")
129 | WinBoss++;
130 | }
131 | SetEvent(nameof(Fight), nameof(RankS), nameof(EnterBoss), nameof(WinBoss));
132 | }
133 |
134 | int acCount = data.api_ship_id.Count(i => Data.Supports.Contains(i)),
135 | cvCount = data.api_ship_id.Count(i => Data.Carriers.Contains(i));
136 |
137 | // 20补给
138 | if (misson.Contains(213) & acCount > 0)
139 | {
140 | Changed = true;
141 | Support20 += acCount;
142 | SetEvent(nameof(Support20));
143 | }
144 |
145 | // ろ号
146 | if (misson.Contains(221) & acCount > 0)
147 | {
148 | Changed = true;
149 | Ro += acCount;
150 | SetEvent(nameof(Ro));
151 | }
152 |
153 | // い号
154 | if (misson.Contains(220) & cvCount > 0)
155 | {
156 | Changed = true;
157 | I += cvCount;
158 | SetEvent(nameof(I));
159 | }
160 | }
161 |
162 | ///
163 | /// 回母港时记录信息
164 | ///
165 | /// 母港信息 (port)
166 | private void Port(kcsapi_port data)
167 | {
168 | DateTime jpNow = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.Now, "Tokyo Standard Time");
169 | // 处理不关机爱好者
170 | if (LastPort < GetResetTime() & GetResetTime() < jpNow)
171 | {
172 | if (dataFile.Exists)
173 | dataFile.Delete();
174 | Fight = RankS = EnterBoss = WinBoss = Support20 = Ro = I = 0;
175 | SetEvent(
176 | nameof(Fight),
177 | nameof(RankS),
178 | nameof(EnterBoss),
179 | nameof(WinBoss),
180 | nameof(Support20),
181 | nameof(Ro),
182 | nameof(I));
183 | }
184 |
185 | // 写文件
186 | if (Changed)
187 | {
188 | Changed = false;
189 | using (FileStream fs = new FileStream(dataFile.FullName, FileMode.Create))
190 | serializer.Serialize(fs, new Model.FileModel()
191 | {
192 | Date = jpNow,
193 |
194 | Fight = Fight,
195 | RankS = RankS,
196 | EnterBoss = EnterBoss,
197 | WinBoss = WinBoss,
198 |
199 | Support20 = Support20,
200 | Ro = Ro,
201 | I = I
202 | });
203 | }
204 | LastPort = jpNow;
205 | }
206 |
207 | ///
208 | /// 取重置计数的时间点
209 | ///
210 | /// 周一5时 (UTC+9)
211 | private DateTime GetResetTime()
212 | {
213 | DateTime now = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.Now, "Tokyo Standard Time");
214 |
215 | // 取星期一
216 | int Offset = Convert.ToInt32(now.DayOfWeek);
217 | if (Offset == 0)
218 | Offset = 7;
219 | Offset--;
220 |
221 | return now.Date.AddDays(-Offset).AddHours(5);
222 | }
223 |
224 | ///
225 | /// 从服务器刷新数据
226 | ///
227 | private async void update()
228 | {
229 | try
230 | {
231 | HttpWebRequest HttpWReq = (HttpWebRequest)WebRequest.Create("http://smdhz.github.io/Files/Enemy.xml");
232 | HttpWebResponse HttpWResp = (HttpWebResponse)await HttpWReq.GetResponseAsync();
233 |
234 | XmlSerializer serial = new XmlSerializer(typeof(Model.DataModel));
235 | Data = serial.Deserialize(HttpWResp.GetResponseStream()) as Model.DataModel;
236 | Data.LastUpdate = DateTime.Now;
237 | using (FileStream fs = new FileStream(dataPath, FileMode.Create))
238 | serial.Serialize(fs, Data);
239 | SetEvent(nameof(Data));
240 | HttpWResp.Close();
241 | }
242 | catch (WebException) { }
243 | }
244 |
245 | ///
246 | /// 获取合适的记录文件(OneDrive / 本地)
247 | ///
248 | /// 合适的文件
249 | private FileInfo CheckFile()
250 | {
251 | // 尝试 Win7 OneDrive
252 | string oneDrive = Convert.ToString(Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\OneDrive", "UserFolder", null));
253 | // Win8 OneDrive
254 | if (string.IsNullOrEmpty(oneDrive))
255 | oneDrive = Convert.ToString(Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\SkyDrive", "UserFolder", null));
256 | // 使用本地
257 | if (string.IsNullOrEmpty(oneDrive))
258 | return new FileInfo(filePath);
259 | else
260 | oneDrive += "\\Application Data\\CodeA.xml";
261 |
262 | return new FileInfo(oneDrive);
263 | }
264 |
265 | public event PropertyChangedEventHandler PropertyChanged;
266 | ///
267 | /// 触发 PropertyChanged 事件
268 | ///
269 | /// 发生改变的属性(一个或多个)
270 | private void SetEvent(params string[] property)
271 | {
272 | if (PropertyChanged != null)
273 | foreach (string i in property)
274 | PropertyChanged(this, new PropertyChangedEventArgs(i));
275 | }
276 | }
277 | }
278 |
--------------------------------------------------------------------------------
/PluginBase/Enemy.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 0001-01-01T00:00:00
4 |
5 | 513
6 | 526
7 | 558
8 |
9 |
10 | 510
11 | 523
12 | 560
13 | 512
14 | 525
15 | 528
16 | 565
17 | 579
18 | 614
19 | 615
20 | 616
21 | 617
22 | 618
23 |
24 |
25 | 敵主力艦隊
26 | 敵主力部隊
27 | 敵機動部隊
28 | 敵通商破壊主力艦隊
29 | 敵通商破壊艦隊
30 | 敵主力打撃群
31 | 敵侵攻中核艦隊
32 | 敵北方侵攻艦隊
33 | 敵キス島包囲艦隊
34 | 深海棲艦泊地艦隊
35 | 深海棲艦北方艦隊中枢
36 | 北方増援部隊主力
37 | 東方派遣艦隊
38 | 東方主力艦隊
39 | 敵東方中枢艦隊
40 | リランカ島港湾守備隊
41 | 敵前線司令艦隊
42 | 敵機動部隊本隊
43 | 敵サーモン方面主力艦隊
44 | 敵補給部隊本体
45 | 敵任務部隊本隊
46 | 敵回航中空母
47 | 敵攻略部隊本体
48 | 留守泊地旗艦艦隊
49 |
50 |
--------------------------------------------------------------------------------
/PluginBase/KanColleViewerAssemblies/KanColleViewer.Composition.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smdhz/CodeA/5a216715d682842dde7a0c241233b0a61bc5ca88/PluginBase/KanColleViewerAssemblies/KanColleViewer.Composition.dll
--------------------------------------------------------------------------------
/PluginBase/KanColleViewerAssemblies/KanColleWrapper.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smdhz/CodeA/5a216715d682842dde7a0c241233b0a61bc5ca88/PluginBase/KanColleViewerAssemblies/KanColleWrapper.dll
--------------------------------------------------------------------------------
/PluginBase/Model/DataModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace CodeA.Model
8 | {
9 | [Serializable]
10 | public class DataModel
11 | {
12 | public DateTime LastUpdate { get; set; }
13 |
14 | public List Supports { get; set; } = new List();
15 | public List Carriers { get; set; } = new List();
16 |
17 | public List Bosses { get; set; } = new List();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/PluginBase/Model/FileModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace CodeA.Model
8 | {
9 | [Serializable]
10 | public class FileModel
11 | {
12 | public DateTime Date { get; set; }
13 |
14 | public int Fight { get; set; }
15 | public int RankS { get; set; }
16 | public int EnterBoss { get; set; }
17 | public int WinBoss { get; set; }
18 |
19 | public int Support20 { get; set; }
20 | public int Ro { get; set; }
21 | public int I { get; set; }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/PluginBase/Panel.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | /24
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | /36
48 |
49 |
50 | /6
51 |
52 |
53 | /24
54 |
55 |
56 | /12
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 | /20
70 |
71 |
72 | /50
73 |
74 |
75 | /20
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
--------------------------------------------------------------------------------
/PluginBase/Panel.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace CodeA
17 | {
18 | ///
19 | /// Panel.xaml 的交互逻辑
20 | ///
21 | public partial class Panel : UserControl
22 | {
23 | public Panel()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/PluginBase/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // 有关程序集的常规信息通过以下
6 | // 特性集控制。更改这些特性值可修改
7 | // 与程序集关联的信息。
8 | [assembly: AssemblyTitle("CodeA")]
9 | [assembly: AssemblyDescription("周常计数器")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Monkeysoft")]
12 | [assembly: AssemblyProduct("CodeA")]
13 | [assembly: AssemblyCopyright("Copyleft © 2014")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // 将 ComVisible 设置为 false 使此程序集中的类型
18 | // 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
19 | // 则将该类型上的 ComVisible 特性设置为 true。
20 | [assembly: ComVisible(false)]
21 |
22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 | [assembly: Guid("320fdf37-1e13-40a5-b5ae-6d7dcd35936b")]
24 |
25 | // 程序集的版本信息由下面四个值组成:
26 | //
27 | // 主版本
28 | // 次版本
29 | // 生成号
30 | // 修订号
31 | //
32 | // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
33 | // 方法是按如下所示使用“*”:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.3.4.0")]
36 | [assembly: AssemblyFileVersion("1.3.4.0")]
37 |
--------------------------------------------------------------------------------
/PluginBase/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------