diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/itemabilities')
2 files changed, 33 insertions, 10 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt index 81ce2ac2d..de6f1521f 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt @@ -2,6 +2,8 @@ package at.hannibal2.skyhanni.features.itemabilities.abilitycooldown import at.hannibal2.skyhanni.utils.LorenzColor import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.NEUInternalName +import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName enum class ItemAbility( val abilityName: String, @@ -39,6 +41,7 @@ enum class ItemAbility( WITHER_CLOAK(10), HOLY_ICE(4), VOODOO_DOLL_WILTED(3), + FIRE_FURY_STAFF(20), SHADOW_FURY(15, "STARRED_SHADOW_FURY"), // doesn't have a sound @@ -51,7 +54,7 @@ enum class ItemAbility( ECHO("Echo", 3, "Ancestral Spade"); var newVariant = false - var internalNames = mutableListOf<String>() + var internalNames = mutableListOf<NEUInternalName>() constructor( cooldownInSeconds: Int, @@ -59,8 +62,10 @@ enum class ItemAbility( alternativePosition: Boolean = false, ) : this("no name", cooldownInSeconds, actionBarDetection = false, alternativePosition = alternativePosition) { newVariant = true - internalNames.addAll(alternateInternalNames) - internalNames.add(name) + alternateInternalNames.forEach { + internalNames.add(it.asInternalName()) + } + internalNames.add(name.asInternalName()) } fun activate(color: LorenzColor? = null, customCooldown: Int = (cooldownInSeconds * 1000)) { @@ -92,7 +97,7 @@ enum class ItemAbility( } companion object { - fun getByInternalName(internalName: String): ItemAbility? { + fun getByInternalName(internalName: NEUInternalName): ItemAbility? { return entries.firstOrNull { it.newVariant && internalName in it.internalNames } } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt index f09e86164..a664bd0ce 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt @@ -6,7 +6,7 @@ import at.hannibal2.skyhanni.events.* import at.hannibal2.skyhanni.utils.InventoryUtils import at.hannibal2.skyhanni.utils.ItemUtils import at.hannibal2.skyhanni.utils.ItemUtils.cleanName -import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName_old +import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName import at.hannibal2.skyhanni.utils.LorenzColor import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.LorenzUtils.between @@ -25,6 +25,7 @@ class ItemAbilityCooldown { private val youAlignedOthersPattern = "§eYou aligned §r§a.* §r§eother player(s)?!".toPattern() private val WEIRD_TUBA = "WEIRD_TUBA".asInternalName() private val WEIRDER_TUBA = "WEIRDER_TUBA".asInternalName() + private val VOODOO_DOLL_WILTED = "VOODOO_DOLL_WILTED".asInternalName() @SubscribeEvent fun onSoundEvent(event: PlaySoundEvent) { @@ -36,6 +37,11 @@ class ItemAbilityCooldown { ItemAbility.HYPERION.sound() } } + if (event.soundName == "liquid.lavapop") { + if (event.pitch == 1.0f && event.volume == 1f) { + ItemAbility.FIRE_FURY_STAFF.sound() + } + } if (event.soundName == "mob.enderdragon.growl") { if (event.pitch == 1f && event.volume == 1f) { ItemAbility.ICE_SPRAY_WAND.sound() @@ -46,8 +52,12 @@ class ItemAbilityCooldown { ItemAbility.GYROKINETIC_WAND_LEFT.sound() } if (event.pitch == 1f && event.volume == 1f) { - val internalName = InventoryUtils.getItemInHand()?.getInternalName_old() ?: return - if (!internalName.equalsOneOf("SHADOW_FURY", "STARRED_SHADOW_FURY")) return + val internalName = InventoryUtils.getItemInHand()?.getInternalName() ?: return + if (!internalName.equalsOneOf( + "SHADOW_FURY".asInternalName(), + "STARRED_SHADOW_FURY".asInternalName() + ) + ) return ItemAbility.SHADOW_FURY.sound() } @@ -82,11 +92,19 @@ class ItemAbilityCooldown { ItemAbility.VOODOO_DOLL.sound() } } - if (event.soundName == "random.successful_hit") { + if (event.soundName == "random.successful_hit") { // Jinxed Voodoo Doll Hit if (event.volume == 1.0f && event.pitch == 0.7936508f) { ItemAbility.VOODOO_DOLL_WILTED.sound() } } + if (event.soundName == "mob.ghast.scream") { // Jinxed Voodoo Doll Miss + if (event.volume == 1.0f && event.pitch >= 1.6 && event.pitch <= 1.7) { + val recentItems = InventoryUtils.recentItemsInHand.values + if (VOODOO_DOLL_WILTED in recentItems) { + ItemAbility.VOODOO_DOLL_WILTED.sound() + } + } + } if (event.soundName == "random.explode") { if (event.pitch == 4.047619f && event.volume == 0.2f) { ItemAbility.GOLEM_SWORD.sound() @@ -157,7 +175,7 @@ class ItemAbilityCooldown { private fun handleItemClick(itemInHand: ItemStack?) { if (!LorenzUtils.inSkyBlock) return - itemInHand?.getInternalName_old()?.run { + itemInHand?.getInternalName()?.run { ItemAbility.getByInternalName(this)?.setItemClick() } } @@ -321,7 +339,7 @@ class ItemAbilityCooldown { private fun hasAbility(stack: ItemStack): MutableList<ItemAbility> { val itemName: String = stack.cleanName() - val internalName = stack.getInternalName_old() + val internalName = stack.getInternalName() val list = mutableListOf<ItemAbility>() for (ability in ItemAbility.entries) { |
