diff --git a/ElectronicObserver.Core/Types/Attacks/Specials/KongouSpecialAttack.cs b/ElectronicObserver.Core/Types/Attacks/Specials/KongouSpecialAttack.cs index fd5925f09..4f704d26a 100644 --- a/ElectronicObserver.Core/Types/Attacks/Specials/KongouSpecialAttack.cs +++ b/ElectronicObserver.Core/Types/Attacks/Specials/KongouSpecialAttack.cs @@ -22,11 +22,11 @@ public override bool CanTrigger() if (flagship is null) return false; if (!IsKongouClassThirdRemodel(flagship.MasterShip.ShipId)) return false; - if (flagship.HPRate <= 0.5) return false; + if (flagship.HPRate <= 0.25) return false; IShipData? helper = ships[1]; if (helper is null) return false; - if (helper.HPRate <= 0.5) return false; + if (helper.HPRate <= 0.25) return false; return IsValidPair(flagship.MasterShip.ShipId, helper.MasterShip.ShipId); } diff --git a/ElectronicObserver.Core/Types/Attacks/Specials/QueenElizabethSpecialAttack.cs b/ElectronicObserver.Core/Types/Attacks/Specials/QueenElizabethSpecialAttack.cs index 22f4a811f..ffa38a5e0 100644 --- a/ElectronicObserver.Core/Types/Attacks/Specials/QueenElizabethSpecialAttack.cs +++ b/ElectronicObserver.Core/Types/Attacks/Specials/QueenElizabethSpecialAttack.cs @@ -49,7 +49,7 @@ public override double GetTriggerRate() IShipData? helper = ships[1]; if (helper is null) return 0; - double rate = Math.Sqrt(flagship.Level) + Math.Sqrt(helper.Level) + 1.2 * (Math.Sqrt(flagship.LuckTotal) + Math.Sqrt(helper.Level)); + double rate = Math.Sqrt(flagship.Level) + Math.Sqrt(helper.Level) + 1.2 * (Math.Sqrt(flagship.LuckTotal) + Math.Sqrt(helper.LuckTotal)); return (rate + 30) / 100; } diff --git a/ElectronicObserver.Core/Types/Attacks/Specials/RichelieuSpecialAttack.cs b/ElectronicObserver.Core/Types/Attacks/Specials/RichelieuSpecialAttack.cs index 377a84e15..0186c8bda 100644 --- a/ElectronicObserver.Core/Types/Attacks/Specials/RichelieuSpecialAttack.cs +++ b/ElectronicObserver.Core/Types/Attacks/Specials/RichelieuSpecialAttack.cs @@ -49,21 +49,9 @@ public override double GetTriggerRate() IShipData? helper = ships[1]; if (helper is null) return 0; - double rate = Math.Sqrt(flagship.Level) + Math.Sqrt(helper.Level) + 1.2 * (Math.Sqrt(flagship.LuckTotal) + Math.Sqrt(helper.Level)); + double rate = Math.Sqrt(flagship.Level) + Math.Sqrt(helper.Level) + 1.2 * (Math.Sqrt(flagship.LuckTotal) + Math.Sqrt(helper.LuckTotal)); - int deuxGunBonus = 0; - - if (flagship.HasDeuxGun()) - { - deuxGunBonus += 5; - } - - if (helper.HasDeuxGun()) - { - deuxGunBonus += 5; - } - - return (rate + 30 + deuxGunBonus) / 100; + return (rate + 30) / 100; } public override List GetAttacks() diff --git a/ElectronicObserver/Utility/Data/FleetSpecialAttacks.cs b/ElectronicObserver/Utility/Data/FleetSpecialAttacks.cs index 003530fbf..5847ccee7 100644 --- a/ElectronicObserver/Utility/Data/FleetSpecialAttacks.cs +++ b/ElectronicObserver/Utility/Data/FleetSpecialAttacks.cs @@ -9,18 +9,36 @@ public static class FleetSpecialAttacks { public static List GetSpecialAttacks(this IFleetData fleet) { - List attacks = - [ - new NelsonSpecialAttack(fleet), - new NagatoSpecialAttack(fleet), - new ColoradoSpecialAttack(fleet), - new Yamato123SpecialAttack(fleet), - new Yamato12SpecialAttack(fleet), - new KongouSpecialAttack(fleet), - new SubmarineSpecialAttack(fleet), - new RichelieuSpecialAttack(fleet), - new QueenElizabethSpecialAttack(fleet), - ]; + List attacks; + + if (fleet.FleetType is FleetType.Single || fleet.FleetID == 1) + { + attacks = [ + new NelsonSpecialAttack(fleet), + new NagatoSpecialAttack(fleet), + new ColoradoSpecialAttack(fleet), + new Yamato123SpecialAttack(fleet), + new Yamato12SpecialAttack(fleet), + new RichelieuSpecialAttack(fleet), + new QueenElizabethSpecialAttack(fleet), + ]; + + if (fleet.FleetType is FleetType.Single) + { + attacks.Add(new KongouSpecialAttack(fleet)); + } + } + else + { + attacks = [ + new KongouSpecialAttack(fleet), + ]; + } + + if (fleet.FleetType is FleetType.Single) + { + attacks.Add(new SubmarineSpecialAttack(fleet)); + } return attacks .Where(attack => attack.CanTrigger()) diff --git a/ElectronicObserverCoreTests/SpecialAttacks/KongouSpecialAttackTests.cs b/ElectronicObserverCoreTests/SpecialAttacks/KongouSpecialAttackTests.cs index 98fc77a3d..9976492bb 100644 --- a/ElectronicObserverCoreTests/SpecialAttacks/KongouSpecialAttackTests.cs +++ b/ElectronicObserverCoreTests/SpecialAttacks/KongouSpecialAttackTests.cs @@ -36,8 +36,7 @@ public void KongouSpecialAttackTest1() new ShipDataMock(Db.MasterShips[ShipId.HieiKaiNiC]), }); - Assert.Empty(fleet.GetSpecialAttacks()); - Assert.False(specialAttack.CanTrigger()); + Assert.True(specialAttack.CanTrigger()); } [Fact(DisplayName = "Can trigger - Flagship shouha")] @@ -77,8 +76,7 @@ public void KongouSpecialAttackTest6() }, }); - Assert.Empty(fleet.GetSpecialAttacks()); - Assert.False(specialAttack.CanTrigger()); + Assert.True(specialAttack.CanTrigger()); } [Fact(DisplayName = "Can trigger - Helper shouha")]