@@ -153,6 +153,8 @@ object BreakManager : Manager<BreakRequest>(
153153 private val rotated get() = rotationRequest?.done != false
154154
155155 private var breakDelay = 0
156+ private var oldGrimBreakDelay = 0
157+ var bypassingOldGrimBreakDelay = false
156158 var breaksThisTick = 0
157159 private var maxBreaksThisTick = 0
158160
@@ -173,6 +175,7 @@ object BreakManager : Manager<BreakRequest>(
173175 if (primaryBreak?.breaking == false ) primaryBreak = null
174176 breakInfos.forEach { it?.tickChecks() }
175177 if (breakDelay > 0 ) breakDelay--
178+ if (oldGrimBreakDelay > 0 ) oldGrimBreakDelay--
176179 activeRequest = null
177180 breaks = mutableListOf ()
178181 breaksThisTick = 0
@@ -226,6 +229,7 @@ object BreakManager : Manager<BreakRequest>(
226229 primaryBreak = null
227230 secondaryBreak = null
228231 breakDelay = 0
232+ oldGrimBreakDelay = 0
229233 }
230234
231235 immediateRenderer(" BreakManager Immediate Renderer" ) {
@@ -461,6 +465,7 @@ object BreakManager : Manager<BreakRequest>(
461465 request.runSafeAutomated {
462466 if (tickStage !in request.breakConfig.tickStageMask) return false
463467 if (breakDelay > 0 ) return false
468+ if (breakConfig.breakMode == BreakMode .OldGrim && ! bypassingOldGrimBreakDelay && oldGrimBreakDelay > 0 ) return false
464469 if (breaksThisTick >= maxBreaksThisTick) return false
465470
466471 breaks.forEach { ctx ->
@@ -517,6 +522,7 @@ object BreakManager : Manager<BreakRequest>(
517522 primary.apply {
518523 type = Secondary
519524 stopBreakPacket()
525+ if (breakConfig.breakMode == BreakMode .OldGrim ) oldGrimBreakDelay = 6
520526 }
521527 PacketLimitHandler .sentPackets(1 , PacketType .PlayerAction )
522528 return @let
@@ -617,7 +623,11 @@ object BreakManager : Manager<BreakRequest>(
617623 }
618624 }
619625 breaksThisTick++
620- if (info.type == Primary && ! info.vanillaInstantBreakable) breakDelay = info.getBreakDelay()
626+ if (info.type == Primary && ! info.vanillaInstantBreakable) {
627+ breakDelay = breakConfig.breakDelay
628+ if (breakConfig.breakMode == BreakMode .OldGrim ) oldGrimBreakDelay = 6
629+ bypassingOldGrimBreakDelay = info.bypassedDelay
630+ }
621631 info.nullify()
622632 }
623633
@@ -825,8 +835,10 @@ object BreakManager : Manager<BreakRequest>(
825835
826836 var packetCount = 1
827837 info.vanillaInstantBreakable = progress >= 1
828- val isGrim = breakConfig.breakMode == BreakMode .Grim
829- val oldGrim = breakConfig.breakMode == BreakMode .OldGrim && ! info.vanillaInstantBreakable
838+ val breakMode = breakConfig.breakMode
839+ if (breakMode == BreakMode .OldGrim && info.vanillaInstantBreakable && oldGrimBreakDelay > 0 ) return false
840+ val isGrim = breakMode == BreakMode .Grim
841+ val oldGrim = breakMode == BreakMode .OldGrim && ! info.vanillaInstantBreakable
830842 val requiresSecondStop = instantBreakable && ! info.vanillaInstantBreakable
831843
832844 if (isGrim) packetCount++
0 commit comments