From cefcce304746e362dc2a00d92c561b98fab670af Mon Sep 17 00:00:00 2001 From: Noah Stolk <31079637+NoahStolk@users.noreply.github.com> Date: Tue, 30 Aug 2022 21:36:50 +0200 Subject: [PATCH] Remove needless wiki functionality --- .../Extensions/HandLevelExtensions.cs | 23 +--- .../DevilDaggersInfo.Core.Wiki/Upgrades.cs | 18 +-- .../UpgradesV1_0.cs | 15 --- .../UpgradesV2_0.cs | 17 --- .../UpgradesV3_0.cs | 17 --- .../UpgradesV3_1.cs | 17 --- .../UpgradesV3_2.cs | 17 --- .../UpgradeTests.cs | 115 +++--------------- .../Pages/Wiki/EnemiesPage.razor | 17 ++- .../Pages/Wiki/UpgradesPage.razor | 14 +-- 10 files changed, 43 insertions(+), 227 deletions(-) delete mode 100644 src/core/DevilDaggersInfo.Core.Wiki/UpgradesV1_0.cs delete mode 100644 src/core/DevilDaggersInfo.Core.Wiki/UpgradesV2_0.cs delete mode 100644 src/core/DevilDaggersInfo.Core.Wiki/UpgradesV3_0.cs delete mode 100644 src/core/DevilDaggersInfo.Core.Wiki/UpgradesV3_1.cs delete mode 100644 src/core/DevilDaggersInfo.Core.Wiki/UpgradesV3_2.cs diff --git a/src/core/DevilDaggersInfo.Core.Spawnset/Extensions/HandLevelExtensions.cs b/src/core/DevilDaggersInfo.Core.Spawnset/Extensions/HandLevelExtensions.cs index 810980aaa..71f218ea7 100644 --- a/src/core/DevilDaggersInfo.Core.Spawnset/Extensions/HandLevelExtensions.cs +++ b/src/core/DevilDaggersInfo.Core.Spawnset/Extensions/HandLevelExtensions.cs @@ -1,32 +1,13 @@ -using DevilDaggersInfo.Common.Exceptions; using DevilDaggersInfo.Core.Wiki.Objects; using DevilDaggersInfo.Types.Core.Spawnsets; -using DevilDaggersInfo.Types.Core.Wiki; namespace DevilDaggersInfo.Core.Spawnset.Extensions; public static class HandLevelExtensions { - public static int GetStartGems(this HandLevel handLevel) => handLevel switch + public static Upgrade? GetUpgradeByHandLevel(this HandLevel handLevel) { - HandLevel.Level2 => 10, - HandLevel.Level3 => 70, - HandLevel.Level4 => 220, - _ => 0, - }; - - public static Upgrade? GetUpgradeByHandLevel(this HandLevel handLevel, GameVersion gameVersion = GameConstants.CurrentVersion) - { - Upgrade upgrade = Upgrades.GetUpgrades(gameVersion).FirstOrDefault(u => u.Level == (byte)handLevel); + Upgrade upgrade = Upgrades.All.FirstOrDefault(u => u.Level == (byte)handLevel); return upgrade == default ? null : upgrade; } - - public static string ToDisplayString(this HandLevel handLevel) => handLevel switch - { - HandLevel.Level1 => "Level 1", - HandLevel.Level2 => "Level 2", - HandLevel.Level3 => "Level 3", - HandLevel.Level4 => "Level 4", - _ => throw new InvalidEnumConversionException(handLevel), - }; } diff --git a/src/core/DevilDaggersInfo.Core.Wiki/Upgrades.cs b/src/core/DevilDaggersInfo.Core.Wiki/Upgrades.cs index 3ef8c4be6..f04bec9ee 100644 --- a/src/core/DevilDaggersInfo.Core.Wiki/Upgrades.cs +++ b/src/core/DevilDaggersInfo.Core.Wiki/Upgrades.cs @@ -2,14 +2,16 @@ namespace DevilDaggersInfo.Core.Wiki; public static class Upgrades { - // TODO: Figure out Level 3 homing spray for V1. - public static IReadOnlyList GetUpgrades(GameVersion gameVersion) => gameVersion switch + public static readonly Upgrade Level1 = new(GameVersion.V3_2, "Level 1", UpgradeColors.Level1, 1, new(10, 20f), null, new(UpgradeUnlockType.Gems, 0)); + public static readonly Upgrade Level2 = new(GameVersion.V3_2, "Level 2", UpgradeColors.Level2, 2, new(20, 40f), null, new(UpgradeUnlockType.Gems, 10)); + public static readonly Upgrade Level3 = new(GameVersion.V3_2, "Level 3", UpgradeColors.Level3, 3, new(40, 80f), new(20, 40), new(UpgradeUnlockType.Gems, 70)); + public static readonly Upgrade Level4 = new(GameVersion.V3_2, "Level 4", UpgradeColors.Level4, 4, new(60, 106.666f), new(30, 40), new(UpgradeUnlockType.Homing, 150)); + + public static readonly IReadOnlyList All = new List { - GameVersion.V1_0 => UpgradesV1_0.All, - GameVersion.V2_0 => UpgradesV2_0.All, - GameVersion.V3_0 => UpgradesV3_0.All, - GameVersion.V3_1 => UpgradesV3_1.All, - GameVersion.V3_2 => UpgradesV3_2.All, - _ => throw new ArgumentOutOfRangeException(nameof(gameVersion)), + Level1, + Level2, + Level3, + Level4, }; } diff --git a/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV1_0.cs b/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV1_0.cs deleted file mode 100644 index af785b9c9..000000000 --- a/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV1_0.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace DevilDaggersInfo.Core.Wiki; - -public static class UpgradesV1_0 -{ - public static readonly Upgrade Level1 = new(GameVersion.V1_0, "Level 1", UpgradeColors.Level1, 1, new(10, 20f), null, new(UpgradeUnlockType.Gems, 0)); - public static readonly Upgrade Level2 = new(GameVersion.V1_0, "Level 2", UpgradeColors.Level2, 2, new(20, 40f), null, new(UpgradeUnlockType.Gems, 10)); - public static readonly Upgrade Level3 = new(GameVersion.V1_0, "Level 3", UpgradeColors.Level3, 3, new(40, 80f), new(40, 40), new(UpgradeUnlockType.Gems, 70)); - - internal static readonly IReadOnlyList All = new List - { - Level1, - Level2, - Level3, - }; -} diff --git a/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV2_0.cs b/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV2_0.cs deleted file mode 100644 index 4f0325267..000000000 --- a/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV2_0.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace DevilDaggersInfo.Core.Wiki; - -public static class UpgradesV2_0 -{ - public static readonly Upgrade Level1 = new(GameVersion.V2_0, "Level 1", UpgradeColors.Level1, 1, new(10, 20f), null, new(UpgradeUnlockType.Gems, 0)); - public static readonly Upgrade Level2 = new(GameVersion.V2_0, "Level 2", UpgradeColors.Level2, 2, new(20, 40f), null, new(UpgradeUnlockType.Gems, 10)); - public static readonly Upgrade Level3 = new(GameVersion.V2_0, "Level 3", UpgradeColors.Level3, 3, new(40, 80f), new(20, 40), new(UpgradeUnlockType.Gems, 70)); - public static readonly Upgrade Level4 = new(GameVersion.V2_0, "Level 4", UpgradeColors.Level4, 4, new(60, 106.666f), new(30, 40), new(UpgradeUnlockType.Homing, 150)); - - internal static readonly IReadOnlyList All = new List - { - Level1, - Level2, - Level3, - Level4, - }; -} diff --git a/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV3_0.cs b/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV3_0.cs deleted file mode 100644 index f12d129c2..000000000 --- a/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV3_0.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace DevilDaggersInfo.Core.Wiki; - -public static class UpgradesV3_0 -{ - public static readonly Upgrade Level1 = new(GameVersion.V3_0, "Level 1", UpgradeColors.Level1, 1, new(10, 20f), null, new(UpgradeUnlockType.Gems, 0)); - public static readonly Upgrade Level2 = new(GameVersion.V3_0, "Level 2", UpgradeColors.Level2, 2, new(20, 40f), null, new(UpgradeUnlockType.Gems, 10)); - public static readonly Upgrade Level3 = new(GameVersion.V3_0, "Level 3", UpgradeColors.Level3, 3, new(40, 80f), new(20, 40), new(UpgradeUnlockType.Gems, 70)); - public static readonly Upgrade Level4 = new(GameVersion.V3_0, "Level 4", UpgradeColors.Level4, 4, new(60, 106.666f), new(30, 40), new(UpgradeUnlockType.Homing, 150)); - - internal static readonly IReadOnlyList All = new List - { - Level1, - Level2, - Level3, - Level4, - }; -} diff --git a/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV3_1.cs b/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV3_1.cs deleted file mode 100644 index 081559472..000000000 --- a/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV3_1.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace DevilDaggersInfo.Core.Wiki; - -public static class UpgradesV3_1 -{ - public static readonly Upgrade Level1 = new(GameVersion.V3_1, "Level 1", UpgradeColors.Level1, 1, new(10, 20f), null, new(UpgradeUnlockType.Gems, 0)); - public static readonly Upgrade Level2 = new(GameVersion.V3_1, "Level 2", UpgradeColors.Level2, 2, new(20, 40f), null, new(UpgradeUnlockType.Gems, 10)); - public static readonly Upgrade Level3 = new(GameVersion.V3_1, "Level 3", UpgradeColors.Level3, 3, new(40, 80f), new(20, 40), new(UpgradeUnlockType.Gems, 70)); - public static readonly Upgrade Level4 = new(GameVersion.V3_1, "Level 4", UpgradeColors.Level4, 4, new(60, 106.666f), new(30, 40), new(UpgradeUnlockType.Homing, 150)); - - internal static readonly IReadOnlyList All = new List - { - Level1, - Level2, - Level3, - Level4, - }; -} diff --git a/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV3_2.cs b/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV3_2.cs deleted file mode 100644 index 1d4f3c4c3..000000000 --- a/src/core/DevilDaggersInfo.Core.Wiki/UpgradesV3_2.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace DevilDaggersInfo.Core.Wiki; - -public static class UpgradesV3_2 -{ - public static readonly Upgrade Level1 = new(GameVersion.V3_2, "Level 1", UpgradeColors.Level1, 1, new(10, 20f), null, new(UpgradeUnlockType.Gems, 0)); - public static readonly Upgrade Level2 = new(GameVersion.V3_2, "Level 2", UpgradeColors.Level2, 2, new(20, 40f), null, new(UpgradeUnlockType.Gems, 10)); - public static readonly Upgrade Level3 = new(GameVersion.V3_2, "Level 3", UpgradeColors.Level3, 3, new(40, 80f), new(20, 40), new(UpgradeUnlockType.Gems, 70)); - public static readonly Upgrade Level4 = new(GameVersion.V3_2, "Level 4", UpgradeColors.Level4, 4, new(60, 106.666f), new(30, 40), new(UpgradeUnlockType.Homing, 150)); - - internal static readonly IReadOnlyList All = new List - { - Level1, - Level2, - Level3, - Level4, - }; -} diff --git a/src/tests/DevilDaggersInfo.Core.Wiki.Tests/UpgradeTests.cs b/src/tests/DevilDaggersInfo.Core.Wiki.Tests/UpgradeTests.cs index c73093ad2..1ca3e8b45 100644 --- a/src/tests/DevilDaggersInfo.Core.Wiki.Tests/UpgradeTests.cs +++ b/src/tests/DevilDaggersInfo.Core.Wiki.Tests/UpgradeTests.cs @@ -5,122 +5,39 @@ namespace DevilDaggersInfo.Core.Wiki.Tests; [TestClass] public class UpgradeTests { - [TestMethod] - public void TestGetUpgrades() - { - Assert.AreEqual(3, Upgrades.GetUpgrades(GameVersion.V1_0).Count); - Assert.AreEqual(4, Upgrades.GetUpgrades(GameVersion.V2_0).Count); - Assert.AreEqual(4, Upgrades.GetUpgrades(GameVersion.V3_0).Count); - Assert.AreEqual(4, Upgrades.GetUpgrades(GameVersion.V3_1).Count); - Assert.AreEqual(4, Upgrades.GetUpgrades(GameVersion.V3_2).Count); - } - [TestMethod] public void TestLevels() { - Assert.AreEqual(1, UpgradesV1_0.Level1.Level); - Assert.AreEqual(2, UpgradesV1_0.Level2.Level); - Assert.AreEqual(3, UpgradesV1_0.Level3.Level); - - Assert.AreEqual(1, UpgradesV2_0.Level1.Level); - Assert.AreEqual(2, UpgradesV2_0.Level2.Level); - Assert.AreEqual(3, UpgradesV2_0.Level3.Level); - Assert.AreEqual(4, UpgradesV2_0.Level4.Level); - - Assert.AreEqual(1, UpgradesV3_0.Level1.Level); - Assert.AreEqual(2, UpgradesV3_0.Level2.Level); - Assert.AreEqual(3, UpgradesV3_0.Level3.Level); - Assert.AreEqual(4, UpgradesV3_0.Level4.Level); - - Assert.AreEqual(1, UpgradesV3_1.Level1.Level); - Assert.AreEqual(2, UpgradesV3_1.Level2.Level); - Assert.AreEqual(3, UpgradesV3_1.Level3.Level); - Assert.AreEqual(4, UpgradesV3_1.Level4.Level); - - Assert.AreEqual(1, UpgradesV3_2.Level1.Level); - Assert.AreEqual(2, UpgradesV3_2.Level2.Level); - Assert.AreEqual(3, UpgradesV3_2.Level3.Level); - Assert.AreEqual(4, UpgradesV3_2.Level4.Level); + Assert.AreEqual(1, Upgrades.Level1.Level); + Assert.AreEqual(2, Upgrades.Level2.Level); + Assert.AreEqual(3, Upgrades.Level3.Level); + Assert.AreEqual(4, Upgrades.Level4.Level); } [TestMethod] public void TestDefaultDamage() { - Assert.AreEqual(new(10, 20f), UpgradesV1_0.Level1.DefaultDamage); - Assert.AreEqual(new(10, 20f), UpgradesV2_0.Level1.DefaultDamage); - Assert.AreEqual(new(10, 20f), UpgradesV3_0.Level1.DefaultDamage); - Assert.AreEqual(new(10, 20f), UpgradesV3_1.Level1.DefaultDamage); - Assert.AreEqual(new(10, 20f), UpgradesV3_2.Level1.DefaultDamage); - - Assert.AreEqual(new(20, 40f), UpgradesV1_0.Level2.DefaultDamage); - Assert.AreEqual(new(20, 40f), UpgradesV2_0.Level2.DefaultDamage); - Assert.AreEqual(new(20, 40f), UpgradesV3_0.Level2.DefaultDamage); - Assert.AreEqual(new(20, 40f), UpgradesV3_1.Level2.DefaultDamage); - Assert.AreEqual(new(20, 40f), UpgradesV3_2.Level2.DefaultDamage); - - Assert.AreEqual(new(40, 80f), UpgradesV1_0.Level3.DefaultDamage); - Assert.AreEqual(new(40, 80f), UpgradesV2_0.Level3.DefaultDamage); - Assert.AreEqual(new(40, 80f), UpgradesV3_0.Level3.DefaultDamage); - Assert.AreEqual(new(40, 80f), UpgradesV3_1.Level3.DefaultDamage); - Assert.AreEqual(new(40, 80f), UpgradesV3_2.Level3.DefaultDamage); - - Assert.AreEqual(new(60, 106.666f), UpgradesV2_0.Level4.DefaultDamage); - Assert.AreEqual(new(60, 106.666f), UpgradesV3_0.Level4.DefaultDamage); - Assert.AreEqual(new(60, 106.666f), UpgradesV3_1.Level4.DefaultDamage); - Assert.AreEqual(new(60, 106.666f), UpgradesV3_2.Level4.DefaultDamage); + Assert.AreEqual(new(10, 20f), Upgrades.Level1.DefaultDamage); + Assert.AreEqual(new(20, 40f), Upgrades.Level2.DefaultDamage); + Assert.AreEqual(new(40, 80f), Upgrades.Level3.DefaultDamage); + Assert.AreEqual(new(60, 106.666f), Upgrades.Level4.DefaultDamage); } [TestMethod] public void TestHomingDamage() { - Assert.AreEqual(null, UpgradesV1_0.Level1.HomingDamage); - Assert.AreEqual(null, UpgradesV2_0.Level1.HomingDamage); - Assert.AreEqual(null, UpgradesV3_0.Level1.HomingDamage); - Assert.AreEqual(null, UpgradesV3_1.Level1.HomingDamage); - Assert.AreEqual(null, UpgradesV3_2.Level1.HomingDamage); - - Assert.AreEqual(null, UpgradesV1_0.Level2.HomingDamage); - Assert.AreEqual(null, UpgradesV2_0.Level2.HomingDamage); - Assert.AreEqual(null, UpgradesV3_0.Level2.HomingDamage); - Assert.AreEqual(null, UpgradesV3_1.Level2.HomingDamage); - Assert.AreEqual(null, UpgradesV3_2.Level2.HomingDamage); - - Assert.AreEqual(new(40, 40f), UpgradesV1_0.Level3.HomingDamage); - Assert.AreEqual(new(20, 40f), UpgradesV2_0.Level3.HomingDamage); - Assert.AreEqual(new(20, 40f), UpgradesV3_0.Level3.HomingDamage); - Assert.AreEqual(new(20, 40f), UpgradesV3_1.Level3.HomingDamage); - Assert.AreEqual(new(20, 40f), UpgradesV3_2.Level3.HomingDamage); - - Assert.AreEqual(new(30, 40f), UpgradesV2_0.Level4.HomingDamage); - Assert.AreEqual(new(30, 40f), UpgradesV3_0.Level4.HomingDamage); - Assert.AreEqual(new(30, 40f), UpgradesV3_1.Level4.HomingDamage); - Assert.AreEqual(new(30, 40f), UpgradesV3_2.Level4.HomingDamage); + Assert.AreEqual(null, Upgrades.Level1.HomingDamage); + Assert.AreEqual(null, Upgrades.Level2.HomingDamage); + Assert.AreEqual(new(20, 40f), Upgrades.Level3.HomingDamage); + Assert.AreEqual(new(30, 40f), Upgrades.Level4.HomingDamage); } [TestMethod] public void TestUpgradeUnlock() { - Assert.AreEqual(new(UpgradeUnlockType.Gems, 0), UpgradesV1_0.Level1.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Gems, 0), UpgradesV2_0.Level1.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Gems, 0), UpgradesV3_0.Level1.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Gems, 0), UpgradesV3_1.Level1.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Gems, 0), UpgradesV3_2.Level1.UpgradeUnlock); - - Assert.AreEqual(new(UpgradeUnlockType.Gems, 10), UpgradesV1_0.Level2.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Gems, 10), UpgradesV2_0.Level2.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Gems, 10), UpgradesV3_0.Level2.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Gems, 10), UpgradesV3_1.Level2.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Gems, 10), UpgradesV3_2.Level2.UpgradeUnlock); - - Assert.AreEqual(new(UpgradeUnlockType.Gems, 70), UpgradesV1_0.Level3.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Gems, 70), UpgradesV2_0.Level3.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Gems, 70), UpgradesV3_0.Level3.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Gems, 70), UpgradesV3_1.Level3.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Gems, 70), UpgradesV3_2.Level3.UpgradeUnlock); - - Assert.AreEqual(new(UpgradeUnlockType.Homing, 150), UpgradesV2_0.Level4.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Homing, 150), UpgradesV3_0.Level4.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Homing, 150), UpgradesV3_1.Level4.UpgradeUnlock); - Assert.AreEqual(new(UpgradeUnlockType.Homing, 150), UpgradesV3_2.Level4.UpgradeUnlock); + Assert.AreEqual(new(UpgradeUnlockType.Gems, 0), Upgrades.Level1.UpgradeUnlock); + Assert.AreEqual(new(UpgradeUnlockType.Gems, 10), Upgrades.Level2.UpgradeUnlock); + Assert.AreEqual(new(UpgradeUnlockType.Gems, 70), Upgrades.Level3.UpgradeUnlock); + Assert.AreEqual(new(UpgradeUnlockType.Homing, 150), Upgrades.Level4.UpgradeUnlock); } } diff --git a/src/web-client/DevilDaggersInfo.Web.Client/Pages/Wiki/EnemiesPage.razor b/src/web-client/DevilDaggersInfo.Web.Client/Pages/Wiki/EnemiesPage.razor index 1c211f4ca..8f60b135f 100644 --- a/src/web-client/DevilDaggersInfo.Web.Client/Pages/Wiki/EnemiesPage.razor +++ b/src/web-client/DevilDaggersInfo.Web.Client/Pages/Wiki/EnemiesPage.razor @@ -5,7 +5,6 @@ @{ IReadOnlyList enemies = WikiEnemies.GetEnemies(GameConstants.CurrentVersion).Append(EnemiesV2_0.Andras).ToList(); - IReadOnlyList upgrades = Upgrades.GetUpgrades(GameConstants.CurrentVersion); List enemiesDamageStats = new(); foreach (Enemy enemy in enemies) @@ -89,11 +88,11 @@
- @foreach (Upgrade upgrade in upgrades) + @foreach (Upgrade upgrade in Upgrades.All) {
@MarkupUtils.UpgradeString(upgrade)
} - @foreach (Upgrade upgrade in upgrades) + @foreach (Upgrade upgrade in Upgrades.All) {
@MarkupUtils.UpgradeString(upgrade)
} @@ -103,11 +102,11 @@ {
@MarkupUtils.EnemyString(enemy)
@enemy.Hp
- @foreach (Upgrade upgrade in upgrades) + @foreach (Upgrade upgrade in Upgrades.All) {
@((enemy.Hp / upgrade.DefaultDamage.DaggersPerSpraySecond).ToString("0.00"))
} - @foreach (Upgrade upgrade in upgrades) + @foreach (Upgrade upgrade in Upgrades.All) {
@(Math.Ceiling(enemy.Hp / (double)upgrade.DefaultDamage.DaggersPerShot))
} @@ -120,11 +119,11 @@
  • All homing daggers cause 10 damage to most enemies; @MarkupUtils.EnemyString(EnemiesV3_2.Leviathan) and @MarkupUtils.EnemyString(EnemiesV3_2.TheOrb) only take 1 damage from homing daggers. This used to happen to @MarkupUtils.EnemyString(EnemiesV3_2.SpiderEgg1) and @MarkupUtils.EnemyString(EnemiesV3_2.SpiderEgg2) as well, but this was fixed in V3.2.
  • @MarkupUtils.EnemyString(EnemiesV3_2.TheOrb), @MarkupUtils.EnemyString(EnemiesV3_2.SpiderEgg1), and @MarkupUtils.EnemyString(EnemiesV3_2.SpiderEgg2) are the only enemies that are not targeted by any homing daggers.
  • -
  • @MarkupUtils.UpgradeString(UpgradesV3_2.Level4) homing daggers cause splash damage. This means that when they're destroyed, they create a little explosion that can cause damage to near enemies. For example, you only need one @MarkupUtils.UpgradeString(UpgradesV3_2.Level4) homing dagger to kill a @MarkupUtils.EnemyString(EnemiesV3_2.Squid2), as the explosion will destroy the other gem.
  • -
  • Even though @MarkupUtils.EnemyString(EnemiesV3_2.Ghostpede) cannot be damaged by homing daggers (they phase through it), it can still take damage from @MarkupUtils.UpgradeString(UpgradesV3_2.Level4) homing dagger splash damage.
  • -
  • You need 3 @MarkupUtils.UpgradeString(UpgradesV3_2.Level4) homing daggers to kill a @MarkupUtils.EnemyString(EnemiesV3_2.Squid3) gem, but only 1 @MarkupUtils.UpgradeString(UpgradesV3_2.Level3) homing dagger.
  • +
  • @MarkupUtils.UpgradeString(Upgrades.Level4) homing daggers cause splash damage. This means that when they're destroyed, they create a little explosion that can cause damage to near enemies. For example, you only need one @MarkupUtils.UpgradeString(Upgrades.Level4) homing dagger to kill a @MarkupUtils.EnemyString(EnemiesV3_2.Squid2), as the explosion will destroy the other gem.
  • +
  • Even though @MarkupUtils.EnemyString(EnemiesV3_2.Ghostpede) cannot be damaged by homing daggers (they phase through it), it can still take damage from @MarkupUtils.UpgradeString(Upgrades.Level4) homing dagger splash damage.
  • +
  • You need 3 @MarkupUtils.UpgradeString(Upgrades.Level4) homing daggers to kill a @MarkupUtils.EnemyString(EnemiesV3_2.Squid3) gem, but only 1 @MarkupUtils.UpgradeString(Upgrades.Level3) homing dagger.
  • All homing daggers explode upon touch with any enemy, except @(MarkupUtils.EnemyString(EnemiesV3_2.Skull1)). You can kill 4 @(MarkupUtils.EnemyString(EnemiesV3_2.Skull1, true)) with a single homing dagger.
  • -
  • You used to need 10 @MarkupUtils.UpgradeString(UpgradesV3_2.Level4) homing daggers to kill a single @MarkupUtils.EnemyString(EnemiesV3_2.TransmutedSkull1), while one single @MarkupUtils.UpgradeString(UpgradesV3_2.Level3) homing dagger could kill 4 of them. This was fixed in V3.2, and now both @MarkupUtils.UpgradeString(UpgradesV3_2.Level3) and @MarkupUtils.UpgradeString(UpgradesV3_2.Level4) homing daggers can kill exactly one @MarkupUtils.EnemyString(EnemiesV3_2.TransmutedSkull1).
  • +
  • You used to need 10 @MarkupUtils.UpgradeString(Upgrades.Level4) homing daggers to kill a single @MarkupUtils.EnemyString(EnemiesV3_2.TransmutedSkull1), while one single @MarkupUtils.UpgradeString(Upgrades.Level3) homing dagger could kill 4 of them. This was fixed in V3.2, and now both @MarkupUtils.UpgradeString(Upgrades.Level3) and @MarkupUtils.UpgradeString(Upgrades.Level4) homing daggers can kill exactly one @MarkupUtils.EnemyString(EnemiesV3_2.TransmutedSkull1).