• R/O
  • HTTP
  • SSH
  • HTTPS

提交

標籤
無標籤

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

修訂5dfd774994b4f0f92ce7319021d03219392741f8 (tree)
時間2020-09-26 02:07:28
作者Kazuhiro Fujieda <fujieda@user...>
CommiterKazuhiro Fujieda

Log Message

SGレーダー(初期型)の装備ボーナスを索敵スコアの計算から除く

Change Summary

差異

--- a/KancolleSniffer.Test/SnifferTest.cs
+++ b/KancolleSniffer.Test/SnifferTest.cs
@@ -233,6 +233,18 @@ namespace KancolleSniffer.Test
233233 }
234234
235235 /// <summary>
236+ /// SGレーダー(初期型)の装備ボーナスを外して索敵スコアを計算する
237+ /// </summary>
238+ [TestMethod]
239+ public void LineOfSightWithSgRadar()
240+ {
241+ var sniffer = new Sniffer();
242+ SniffLogFile(sniffer, "lineofsight_004");
243+ var fleet = sniffer.Fleets[0];
244+ PAssert.That(() => Abs(fleet.GetLineOfSights(1) - 0.93) < 0.01);
245+ }
246+
247+ /// <summary>
236248 /// 触接開始率を正しく計算する
237249 /// </summary>
238250 [TestMethod]
--- a/KancolleSniffer.Test/logs
+++ b/KancolleSniffer.Test/logs
@@ -1 +1 @@
1-Subproject commit 7877795d0035744d2fba262aac91245267b5bd8b
1+Subproject commit 57340ec2ceb0ccd27c8f548bc67320e901dd68f2
--- a/KancolleSniffer.sln.DotSettings
+++ b/KancolleSniffer.sln.DotSettings
@@ -56,4 +56,5 @@
5656 <s:Boolean x:Key="/Default/UserDictionary/Words/=Scrollify/@EntryIndexedValue">True</s:Boolean>
5757 <s:Boolean x:Key="/Default/UserDictionary/Words/=Seiran/@EntryIndexedValue">True</s:Boolean>
5858 <s:Boolean x:Key="/Default/UserDictionary/Words/=taiha/@EntryIndexedValue">True</s:Boolean>
59- <s:Boolean x:Key="/Default/UserDictionary/Words/=Truncator/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
59+ <s:Boolean x:Key="/Default/UserDictionary/Words/=Truncator/@EntryIndexedValue">True</s:Boolean>
60+ <s:Boolean x:Key="/Default/UserDictionary/Words/=Yomi/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
--- a/KancolleSniffer/Model/Fleet.cs
+++ b/KancolleSniffer/Model/Fleet.cs
@@ -216,20 +216,10 @@ namespace KancolleSniffer.Model
216216
217217 public double GetLineOfSights(int factor)
218218 {
219- var result = 0.0;
220- var emptyBonus = 6;
221- foreach (var s in ActualShips.Where(s => !s.Escaped))
222- {
223- emptyBonus--;
224- var itemLoS = 0;
225- foreach (var item in s.AllSlot)
226- {
227- var spec = item.Spec;
228- itemLoS += spec.LoS;
229- result += (spec.LoS + item.LoSLevelBonus) * spec.LoSScaleFactor * factor;
230- }
231- result += Sqrt(s.LoS - itemLoS);
232- }
219+ var actual = ActualShips.Where(s => !s.Escaped).ToArray();
220+ var emptyBonus = 6 - actual.Length;
221+ var result = actual.Sum(s =>
222+ s.AllSlot.Sum(item => item.EffectiveLoS * factor) + Sqrt(s.RawLoS));
233223 return result > 0 ? result - Ceiling(_getHqLevel() * 0.4) + emptyBonus * 2 : 0.0;
234224 }
235225
--- a/KancolleSniffer/Model/ItemSpec.cs
+++ b/KancolleSniffer/Model/ItemSpec.cs
@@ -82,6 +82,8 @@ namespace KancolleSniffer.Model
8282 }
8383 }
8484
85+ public int LoSSgRadarBonus => Id == 315 ? 4 : 0;
86+
8587 public bool IsAircraft
8688 {
8789 get
--- a/KancolleSniffer/Model/ItemStatus.cs
+++ b/KancolleSniffer/Model/ItemStatus.cs
@@ -134,7 +134,9 @@ namespace KancolleSniffer.Model
134134 }
135135 }
136136
137- public double LoSLevelBonus
137+ public double EffectiveLoS => (Spec.LoS + LoSLevelBonus) * Spec.LoSScaleFactor;
138+
139+ private double LoSLevelBonus
138140 {
139141 get
140142 {
--- a/KancolleSniffer/Model/ShipMaster.cs
+++ b/KancolleSniffer/Model/ShipMaster.cs
@@ -39,6 +39,7 @@ namespace KancolleSniffer.Model
3939 Id = (int)entry.api_id,
4040 SortId = entry.api_sort_id() ? (int)entry.api_sort_id : 0,
4141 Name = ShipName(entry),
42+ Yomi = entry.api_yomi,
4243 FuelMax = entry.api_fuel_max() ? (int)entry.api_fuel_max : 0,
4344 BullMax = entry.api_bull_max() ? (int)entry.api_bull_max : 0,
4445 SlotNum = (int)entry.api_slot_num,
--- a/KancolleSniffer/Model/ShipSpec.cs
+++ b/KancolleSniffer/Model/ShipSpec.cs
@@ -21,6 +21,7 @@ namespace KancolleSniffer.Model
2121 public int Id { get; set; }
2222 public int SortId { get; set; }
2323 public string Name { get; set; }
24+ public string Yomi { get; set; }
2425 public int FuelMax { get; set; }
2526 public int BullMax { get; set; }
2627 public int SlotNum { get; set; }
@@ -149,5 +150,31 @@ namespace KancolleSniffer.Model
149150 public bool IsRepairShip => ShipType == 19;
150151
151152 public bool IsTrainingCruiser => ShipType == 21;
153+
154+ public bool HaveSgRadarBonus
155+ {
156+ get
157+ {
158+ switch (Yomi)
159+ {
160+ case "フレッチャー":
161+ case "ジョンストン":
162+ case "サミュエル・B・ロバーツ":
163+ case "コロラド":
164+ case "サウスダコタ":
165+ case "アイオワ":
166+ case "サラトガ":
167+ case "ホーネット":
168+ case "イントレピッド":
169+ case "ガンビア・ベイ":
170+ case "ヒューストン":
171+ case "ヘレナ":
172+ case "アトランタ":
173+ return true;
174+ default:
175+ return false;
176+ }
177+ }
178+ }
152179 }
153180 }
\ No newline at end of file
--- a/KancolleSniffer/Model/ShipStatus.cs
+++ b/KancolleSniffer/Model/ShipStatus.cs
@@ -417,6 +417,9 @@ namespace KancolleSniffer.Model
417417
418418 public int EffectiveBullMax => Max((int)(Spec.BullMax * (Level >= 100 ? 0.85 : 1.0)), 1);
419419
420+ public int RawLoS =>
421+ LoS - AllSlot.Sum(item => item.Spec.LoS + (Spec.HaveSgRadarBonus ? item.Spec.LoSSgRadarBonus : 0));
422+
420423 public object Clone()
421424 {
422425 var r = (ShipStatus)MemberwiseClone();