Skip to content

Commit

Permalink
feat(Criticals): timer mode (#5463)
Browse files Browse the repository at this point in the history
fixes #5458
  • Loading branch information
1zun4 authored Jan 26, 2025
1 parent e547303 commit 768b119
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,7 @@ import net.ccbluex.liquidbounce.event.events.SprintEvent
import net.ccbluex.liquidbounce.event.handler
import net.ccbluex.liquidbounce.features.module.Category
import net.ccbluex.liquidbounce.features.module.ClientModule
import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.modes.CriticalsBlink
import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.modes.CriticalsJump
import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.modes.CriticalsNoGround
import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.modes.CriticalsPacket
import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.modes.*
import net.ccbluex.liquidbounce.features.module.modules.movement.fly.ModuleFly
import net.ccbluex.liquidbounce.features.module.modules.movement.liquidwalk.ModuleLiquidWalk
import net.ccbluex.liquidbounce.utils.block.collideBlockIntersects
Expand Down Expand Up @@ -59,7 +56,8 @@ object ModuleCriticals : ClientModule("Criticals", Category.COMBAT) {
CriticalsPacket,
CriticalsNoGround,
CriticalsJump,
CriticalsBlink
CriticalsBlink,
CriticalsTimer
)
}.apply(::tagBy)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
* This file is part of LiquidBounce (https://github.com/CCBlueX/LiquidBounce)
*
* Copyright (c) 2015 - 2025 CCBlueX
*
* LiquidBounce is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* LiquidBounce is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with LiquidBounce. If not, see <https://www.gnu.org/licenses/>.
*/
package net.ccbluex.liquidbounce.features.module.modules.combat.criticals.modes

import net.ccbluex.liquidbounce.config.types.Choice
import net.ccbluex.liquidbounce.config.types.ChoiceConfigurable
import net.ccbluex.liquidbounce.event.events.GameTickEvent
import net.ccbluex.liquidbounce.event.handler
import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.ModuleCriticals
import net.ccbluex.liquidbounce.features.module.modules.combat.criticals.ModuleCriticals.wouldDoCriticalHit
import net.ccbluex.liquidbounce.utils.client.Timer
import net.ccbluex.liquidbounce.utils.combat.findEnemy
import net.ccbluex.liquidbounce.utils.kotlin.Priority

object CriticalsTimer : Choice("Timer") {

override val parent: ChoiceConfigurable<*>
get() = ModuleCriticals.modes

private val speed by float("Speed", 0.8f, 0.1f..1.0f)
private val range by float("Range", 4.0f, 0.0f..10.0f)

@Suppress("unused")
private val tickHandler = handler<GameTickEvent> {
world.findEnemy(0.0f..range) ?: return@handler

if (wouldDoCriticalHit(ignoreSprint = true)) {
Timer.requestTimerSpeed(speed, Priority.IMPORTANT_FOR_USAGE_1, ModuleCriticals)
}

}

}


0 comments on commit 768b119

Please sign in to comment.