コミットメタ情報

リビジョン9e42dfc5d5ca51fd1f2a25c35ba1c3d3a829d55f (tree)
日時2018-05-22 20:24:21
作者Kazuhiro Fujieda <fujieda@user...>
コミッターKazuhiro Fujieda

ログメッセージ

演習の獲得経験値に練習巡洋艦の効果を反映させる

変更サマリ

差分

--- a/KancolleSniffer/MiscTextInfo.cs
+++ b/KancolleSniffer/MiscTextInfo.cs
@@ -113,7 +113,62 @@ namespace KancolleSniffer
113113 var raw = _expTable[Min(s1, _expTable.Length) - 1] / 100.0 +
114114 _expTable[Min(s2, _expTable.Length) - 1] / 300.0;
115115 var exp = raw >= 500 ? 500 + (int)Sqrt(raw - 500) : (int)raw;
116- Text += $"獲得経験値 : {exp}\r\nS勝利 : {(int)(exp * 1.2)}";
116+ var bonus = 1 + TrainingCruiserBonus(_shipInfo.GetShipStatuses(0));
117+ Text += $"獲得経験値 : {(int)(exp * bonus)}\r\nS勝利 : {(int)((int)(exp * 1.2) * bonus)}";
118+ }
119+
120+ private double TrainingCruiserBonus(ShipStatus[] fleet)
121+ {
122+ if (fleet[0].Spec.IsTrainingCruiser)
123+ {
124+ var fsLevel = fleet[0].Level;
125+ if (fleet.Skip(1).Any(s => s.Spec.IsTrainingCruiser))
126+ {
127+ if (fsLevel < 10)
128+ return 0.10;
129+ if (fsLevel < 30)
130+ return 0.13;
131+ if (fsLevel < 60)
132+ return 0.16;
133+ if (fsLevel < 100)
134+ return 0.20;
135+ return 0.25;
136+ }
137+ if (fsLevel < 10)
138+ return 0.05;
139+ if (fsLevel < 30)
140+ return 0.08;
141+ if (fsLevel < 60)
142+ return 0.12;
143+ if (fsLevel < 100)
144+ return 0.15;
145+ return 0.20;
146+ }
147+ var tc = fleet.Count(s => s.Spec.IsTrainingCruiser);
148+ if (tc == 0)
149+ return 0;
150+ var level = fleet.Where(s => s.Spec.IsTrainingCruiser).Max(s => s.Level);
151+ if (tc == 1)
152+ {
153+ if (level < 10)
154+ return 0.03;
155+ if (level < 30)
156+ return 0.05;
157+ if (level < 60)
158+ return 0.07;
159+ if (level < 100)
160+ return 0.10;
161+ return 0.15;
162+ }
163+ if (level < 10)
164+ return 0.04;
165+ if (level < 30)
166+ return 0.06;
167+ if (level < 60)
168+ return 0.08;
169+ if (level < 100)
170+ return 0.12;
171+ return 0.175;
117172 }
118173
119174 public void InspectMapNext(dynamic json)
--- a/KancolleSniffer/ShipMaster.cs
+++ b/KancolleSniffer/ShipMaster.cs
@@ -225,5 +225,7 @@ namespace KancolleSniffer
225225 }
226226
227227 public bool IsRepairShip => ShipType == 19;
228+
229+ public bool IsTrainingCruiser => ShipType == 21;
228230 }
229231 }
\ No newline at end of file
旧リポジトリブラウザで表示