From 96eb25aa782e63e6fe66fb9b0de7b7d6c6aa440d Mon Sep 17 00:00:00 2001 From: patience Date: Sat, 4 Jul 2026 16:09:22 +0100 Subject: [PATCH] Zombies are faster and aggro for slightly less distance --- .../mc_rebalance/mixin/mob/ZombieRework.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/mob/ZombieRework.java b/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/mob/ZombieRework.java index 3e15d0e..9ede113 100644 --- a/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/mob/ZombieRework.java +++ b/src/main/java/xyz/nearmisses/patience/mc_rebalance/mixin/mob/ZombieRework.java @@ -1,6 +1,8 @@ package xyz.nearmisses.patience.mc_rebalance.mixin.mob; import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.monster.Monster; import net.minecraft.world.entity.monster.Zombie; import net.minecraft.world.level.Level; @@ -8,6 +10,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(Zombie.class) public class ZombieRework extends Monster{ @@ -16,13 +19,27 @@ public class ZombieRework extends Monster{ super(entityType, level); } + @Inject(method="createAttributes", at=@At("RETURN"), cancellable=true) + private static void createAttributes(CallbackInfoReturnable cir) { + cir.setReturnValue(Monster.createMonsterAttributes() + .add(Attributes.FOLLOW_RANGE, 30.0F) // -5 from vanilla + .add(Attributes.MOVEMENT_SPEED, 0.35F) // +.12 from vanilla + .add(Attributes.ATTACK_DAMAGE, 3.0F) + .add(Attributes.ARMOR, 2.0F) + .add(Attributes.SPAWN_REINFORCEMENTS_CHANCE) + ); + } + @Inject(method="tick", at=@At("TAIL")) private void sprintNearToTarget(CallbackInfo ci){ - if(this.getTarget()!=null && this.getTarget().position().distanceTo(this.position())<8){ + if(this.getTarget()!=null && this.getTarget().position().distanceTo(this.position())<12){ this.setSprinting(true); } - if(this.isSprinting() && this.getTarget()==null) { - this.setSprinting(false); + if(this.isSprinting()) { + if(this.canSpawnSprintParticle()){spawnSprintParticle();} + if(this.getTarget()==null) { + this.setSprinting(false); + } } } }