OSDN Git Service
(root)
/
kancollesniffer
/
KancolleSniffer.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
79ff6ec
)
SGレーダー(初期型)の装備ボーナスを索敵スコアの計算から除く
author
Kazuhiro Fujieda
<fujieda@users.osdn.me>
Fri, 25 Sep 2020 17:00:57 +0000
(
02:00
+0900)
committer
Kazuhiro Fujieda
<fujieda@users.osdn.me>
Fri, 25 Sep 2020 17:07:28 +0000
(
02:07
+0900)
KancolleSniffer.Test/SnifferTest.cs
patch
|
blob
|
history
KancolleSniffer.Test/logs
patch
|
blob
|
history
KancolleSniffer.sln.DotSettings
patch
|
blob
|
history
KancolleSniffer/Model/Fleet.cs
patch
|
blob
|
history
KancolleSniffer/Model/ItemSpec.cs
patch
|
blob
|
history
KancolleSniffer/Model/ItemStatus.cs
patch
|
blob
|
history
KancolleSniffer/Model/ShipMaster.cs
patch
|
blob
|
history
KancolleSniffer/Model/ShipSpec.cs
patch
|
blob
|
history
KancolleSniffer/Model/ShipStatus.cs
patch
|
blob
|
history
diff --git
a/KancolleSniffer.Test/SnifferTest.cs
b/KancolleSniffer.Test/SnifferTest.cs
index
ec3c5ef
..
503b68d
100644
(file)
--- a/
KancolleSniffer.Test/SnifferTest.cs
+++ b/
KancolleSniffer.Test/SnifferTest.cs
@@
-233,6
+233,18
@@
namespace KancolleSniffer.Test
}
\r
\r
/// <summary>
\r
}
\r
\r
/// <summary>
\r
+ /// SGレーダー(初期型)の装備ボーナスを外して索敵スコアを計算する
\r
+ /// </summary>
\r
+ [TestMethod]
\r
+ public void LineOfSightWithSgRadar()
\r
+ {
\r
+ var sniffer = new Sniffer();
\r
+ SniffLogFile(sniffer, "lineofsight_004");
\r
+ var fleet = sniffer.Fleets[0];
\r
+ PAssert.That(() => Abs(fleet.GetLineOfSights(1) - 0.93) < 0.01);
\r
+ }
\r
+
\r
+ /// <summary>
\r
/// 触接開始率を正しく計算する
\r
/// </summary>
\r
[TestMethod]
\r
/// 触接開始率を正しく計算する
\r
/// </summary>
\r
[TestMethod]
\r
diff --git
a/KancolleSniffer.Test/logs
b/KancolleSniffer.Test/logs
index
7877795
..
57340ec
160000
(submodule)
--- a/
KancolleSniffer.Test/logs
+++ b/
KancolleSniffer.Test/logs
@@
-1
+1
@@
-Subproject commit
7877795d0035744d2fba262aac91245267b5bd8b
+Subproject commit
57340ec2ceb0ccd27c8f548bc67320e901dd68f2
diff --git
a/KancolleSniffer.sln.DotSettings
b/KancolleSniffer.sln.DotSettings
index
53f1adb
..
3b54153
100644
(file)
--- a/
KancolleSniffer.sln.DotSettings
+++ b/
KancolleSniffer.sln.DotSettings
@@
-56,4
+56,5
@@
<s:Boolean x:Key="/Default/UserDictionary/Words/=Scrollify/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Seiran/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=taiha/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Scrollify/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=Seiran/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=taiha/@EntryIndexedValue">True</s:Boolean>
- <s:Boolean x:Key="/Default/UserDictionary/Words/=Truncator/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
+ <s:Boolean x:Key="/Default/UserDictionary/Words/=Truncator/@EntryIndexedValue">True</s:Boolean>
+ <s:Boolean x:Key="/Default/UserDictionary/Words/=Yomi/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
diff --git
a/KancolleSniffer/Model/Fleet.cs
b/KancolleSniffer/Model/Fleet.cs
index
85e112f
..
26eb8c3
100644
(file)
--- a/
KancolleSniffer/Model/Fleet.cs
+++ b/
KancolleSniffer/Model/Fleet.cs
@@
-216,20
+216,10
@@
namespace KancolleSniffer.Model
\r
public double GetLineOfSights(int factor)
\r
{
\r
\r
public double GetLineOfSights(int factor)
\r
{
\r
- var result = 0.0;
\r
- var emptyBonus = 6;
\r
- foreach (var s in ActualShips.Where(s => !s.Escaped))
\r
- {
\r
- emptyBonus--;
\r
- var itemLoS = 0;
\r
- foreach (var item in s.AllSlot)
\r
- {
\r
- var spec = item.Spec;
\r
- itemLoS += spec.LoS;
\r
- result += (spec.LoS + item.LoSLevelBonus) * spec.LoSScaleFactor * factor;
\r
- }
\r
- result += Sqrt(s.LoS - itemLoS);
\r
- }
\r
+ var actual = ActualShips.Where(s => !s.Escaped).ToArray();
\r
+ var emptyBonus = 6 - actual.Length;
\r
+ var result = actual.Sum(s =>
\r
+ s.AllSlot.Sum(item => item.EffectiveLoS * factor) + Sqrt(s.RawLoS));
\r
return result > 0 ? result - Ceiling(_getHqLevel() * 0.4) + emptyBonus * 2 : 0.0;
\r
}
\r
\r
return result > 0 ? result - Ceiling(_getHqLevel() * 0.4) + emptyBonus * 2 : 0.0;
\r
}
\r
\r
diff --git
a/KancolleSniffer/Model/ItemSpec.cs
b/KancolleSniffer/Model/ItemSpec.cs
index
5cd6f36
..
f2b5d50
100644
(file)
--- a/
KancolleSniffer/Model/ItemSpec.cs
+++ b/
KancolleSniffer/Model/ItemSpec.cs
@@
-82,6
+82,8
@@
namespace KancolleSniffer.Model
}
\r
}
\r
\r
}
\r
}
\r
\r
+ public int LoSSgRadarBonus => Id == 315 ? 4 : 0;
\r
+
\r
public bool IsAircraft
\r
{
\r
get
\r
public bool IsAircraft
\r
{
\r
get
\r
diff --git
a/KancolleSniffer/Model/ItemStatus.cs
b/KancolleSniffer/Model/ItemStatus.cs
index
8ed38c5
..
4e908b1
100644
(file)
--- a/
KancolleSniffer/Model/ItemStatus.cs
+++ b/
KancolleSniffer/Model/ItemStatus.cs
@@
-134,7
+134,9
@@
namespace KancolleSniffer.Model
}
\r
}
\r
\r
}
\r
}
\r
\r
- public double LoSLevelBonus
\r
+ public double EffectiveLoS => (Spec.LoS + LoSLevelBonus) * Spec.LoSScaleFactor;
\r
+
\r
+ private double LoSLevelBonus
\r
{
\r
get
\r
{
\r
{
\r
get
\r
{
\r
diff --git
a/KancolleSniffer/Model/ShipMaster.cs
b/KancolleSniffer/Model/ShipMaster.cs
index
d1dc0ad
..
bbfa882
100644
(file)
--- a/
KancolleSniffer/Model/ShipMaster.cs
+++ b/
KancolleSniffer/Model/ShipMaster.cs
@@
-39,6
+39,7
@@
namespace KancolleSniffer.Model
Id = (int)entry.api_id,
\r
SortId = entry.api_sort_id() ? (int)entry.api_sort_id : 0,
\r
Name = ShipName(entry),
\r
Id = (int)entry.api_id,
\r
SortId = entry.api_sort_id() ? (int)entry.api_sort_id : 0,
\r
Name = ShipName(entry),
\r
+ Yomi = entry.api_yomi,
\r
FuelMax = entry.api_fuel_max() ? (int)entry.api_fuel_max : 0,
\r
BullMax = entry.api_bull_max() ? (int)entry.api_bull_max : 0,
\r
SlotNum = (int)entry.api_slot_num,
\r
FuelMax = entry.api_fuel_max() ? (int)entry.api_fuel_max : 0,
\r
BullMax = entry.api_bull_max() ? (int)entry.api_bull_max : 0,
\r
SlotNum = (int)entry.api_slot_num,
\r
diff --git
a/KancolleSniffer/Model/ShipSpec.cs
b/KancolleSniffer/Model/ShipSpec.cs
index
fd44535
..
60876c6
100644
(file)
--- a/
KancolleSniffer/Model/ShipSpec.cs
+++ b/
KancolleSniffer/Model/ShipSpec.cs
@@
-21,6
+21,7
@@
namespace KancolleSniffer.Model
public int Id { get; set; }
\r
public int SortId { get; set; }
\r
public string Name { get; set; }
\r
public int Id { get; set; }
\r
public int SortId { get; set; }
\r
public string Name { get; set; }
\r
+ public string Yomi { get; set; }
\r
public int FuelMax { get; set; }
\r
public int BullMax { get; set; }
\r
public int SlotNum { get; set; }
\r
public int FuelMax { get; set; }
\r
public int BullMax { get; set; }
\r
public int SlotNum { get; set; }
\r
@@
-149,5
+150,31
@@
namespace KancolleSniffer.Model
public bool IsRepairShip => ShipType == 19;
\r
\r
public bool IsTrainingCruiser => ShipType == 21;
\r
public bool IsRepairShip => ShipType == 19;
\r
\r
public bool IsTrainingCruiser => ShipType == 21;
\r
+
\r
+ public bool HaveSgRadarBonus
\r
+ {
\r
+ get
\r
+ {
\r
+ switch (Yomi)
\r
+ {
\r
+ case "フレッチャー":
\r
+ case "ジョンストン":
\r
+ case "サミュエル・B・ロバーツ":
\r
+ case "コロラド":
\r
+ case "サウスダコタ":
\r
+ case "アイオワ":
\r
+ case "サラトガ":
\r
+ case "ホーネット":
\r
+ case "イントレピッド":
\r
+ case "ガンビア・ベイ":
\r
+ case "ヒューストン":
\r
+ case "ヘレナ":
\r
+ case "アトランタ":
\r
+ return true;
\r
+ default:
\r
+ return false;
\r
+ }
\r
+ }
\r
+ }
\r
}
\r
}
\ No newline at end of file
}
\r
}
\ No newline at end of file
diff --git
a/KancolleSniffer/Model/ShipStatus.cs
b/KancolleSniffer/Model/ShipStatus.cs
index
36977e3
..
57ce901
100644
(file)
--- a/
KancolleSniffer/Model/ShipStatus.cs
+++ b/
KancolleSniffer/Model/ShipStatus.cs
@@
-417,6
+417,9
@@
namespace KancolleSniffer.Model
\r
public int EffectiveBullMax => Max((int)(Spec.BullMax * (Level >= 100 ? 0.85 : 1.0)), 1);
\r
\r
\r
public int EffectiveBullMax => Max((int)(Spec.BullMax * (Level >= 100 ? 0.85 : 1.0)), 1);
\r
\r
+ public int RawLoS =>
\r
+ LoS - AllSlot.Sum(item => item.Spec.LoS + (Spec.HaveSgRadarBonus ? item.Spec.LoSSgRadarBonus : 0));
\r
+
\r
public object Clone()
\r
{
\r
var r = (ShipStatus)MemberwiseClone();
\r
public object Clone()
\r
{
\r
var r = (ShipStatus)MemberwiseClone();
\r