From 72576b390f1d866764f90fb64a703b3ef7ca99d8 Mon Sep 17 00:00:00 2001 From: Derpy666 Date: Sun, 26 Jan 2025 19:49:27 +0200 Subject: [PATCH 1/2] Added Broken Flashlight to Abilities Cooldown --- .../java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt | 1 + .../oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt | 1 + 2 files changed, 2 insertions(+) diff --git a/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt b/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt index cd30f488..7490a7b9 100644 --- a/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt +++ b/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt @@ -59,6 +59,7 @@ enum class ItemAbility( STAR_BOMB("Star Bomb", 8f, set = Set.DEMOLITIONIST, setAmount = 2), STARBLADE("Starblade", 5f, set = Set.HEAVY, setAmount = 2), BEWITCHED_BLOWPIPE("Bewitched Blowpipe", 5f), + BROKEN_FLASHLIGHT("Broken Flashlight", 10f), // No Display LASER_POINT_MINIGUN("Laser Point Minigun", 0.5f, set = Set.HEAVY, setAmount = 2), diff --git a/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt b/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt index 7978c996..4b528ac0 100644 --- a/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt +++ b/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt @@ -92,6 +92,7 @@ object ItemAbilityCooldown { event.soundName == "entity.blaze.shoot" && event.pitch == 1.25f && event.volume == 3f -> { ItemAbility.BARBED_SHOTGUN.onSound() ItemAbility.SHOTGUN.onSound() + ItemAbility.BROKEN_FLASHLIGHT.onSound() } // Wasted Boomstick From 5fa0bfc442bcbc75521ca8d9f00d9f00c38f6a4e Mon Sep 17 00:00:00 2001 From: Derpy666 Date: Sun, 26 Jan 2025 20:30:45 +0200 Subject: [PATCH 2/2] Made Triple P Battery support --- .../vice/features/itemabilities/ItemAbility.kt | 4 ++++ .../features/itemabilities/ItemAbilityCooldown.kt | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt b/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt index 7490a7b9..455e2df3 100644 --- a/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt +++ b/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbility.kt @@ -3,10 +3,12 @@ package net.oxyopia.vice.features.itemabilities import net.minecraft.util.ClickType import net.oxyopia.vice.data.Debugger import net.oxyopia.vice.data.Set +import net.oxyopia.vice.features.itemabilities.ItemAbilityCooldown.hasCharged import net.oxyopia.vice.utils.ItemUtils.getEquippedSets import net.oxyopia.vice.utils.TimeUtils.timeDelta import net.oxyopia.vice.utils.Utils import kotlin.time.Duration.Companion.milliseconds +import kotlin.time.Duration.Companion.seconds /** * Inspired from SkyHanni's similar feature, partially adapted @@ -110,6 +112,8 @@ enum class ItemAbility( diff /= 2 } + if (this == BROKEN_FLASHLIGHT && hasCharged) diff = this.cooldown.toInt().seconds + return maxOf(cooldown - (diff.inWholeMilliseconds / 1000.0f), 0f) } diff --git a/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt b/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt index 4b528ac0..205261c5 100644 --- a/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt +++ b/src/main/java/net/oxyopia/vice/features/itemabilities/ItemAbilityCooldown.kt @@ -40,6 +40,8 @@ object ItemAbilityCooldown { } } + var hasCharged = false + @SubscribeEvent fun onSound(event: SoundEvent) { @@ -317,6 +319,15 @@ object ItemAbilityCooldown { ability.drawStatus(event.x, event.y + 9, event.context) } + @SubscribeEvent + fun onBattery(event: ChatEvent) { + if(event.string.startsWith("+1 Triple P Battery")) { + hasCharged = true + } else { + hasCharged = false + } + } + private fun ItemAbility.drawStatus(x: Int, y: Int, context: DrawContext, centered: Boolean = false, defaultColor: Color = Color.white) { if (!Vice.config.SHOW_ITEMCD_TEXT && Vice.config.ITEMCD_DISPLAY_TYPE != DisplayType.TEXT_ONLY) return if (!Vice.config.ITEM_COOLDOWN_DISPLAY || !displayCooldown) return