修复智慧芯片锁定超出范围bug

This commit is contained in:
Atsuishio 2025-07-16 00:59:08 +08:00 committed by Light_Quanta
parent 6616a7286f
commit f75350fd2d
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959

View file

@ -1537,11 +1537,12 @@ public class ClientEventHandler {
&& drawTime < 0.01
&& !ClickHandler.isEditing) {
if (!player.isShiftKeyDown()) {
int intelligentChipLevel = data.perk.getLevel(ModPerks.INTELLIGENT_CHIP);
int intelligentChipLevel = GunData.from(stack).perk.getLevel(ModPerks.INTELLIGENT_CHIP);
double seekRange = 32 + 8 * (intelligentChipLevel - 1);
if (intelligentChipLevel > 0) {
if (ClientEventHandler.entity == null || !entity.isAlive()) {
ClientEventHandler.entity = SeekTool.seekLivingEntity(player, player.level(), 32 + 8 * (intelligentChipLevel - 1), 16 / customZoom);
ClientEventHandler.entity = SeekTool.seekLivingEntity(player, player.level(), seekRange, 16 / customZoom);
}
if (entity != null && entity.isAlive()) {
Vec3 targetVec = new Vec3(Mth.lerp(event.getPartialTick(), entity.xo, entity.getX()), Mth.lerp(event.getPartialTick(), entity.yo + entity.getEyeHeight(), entity.getEyeY()), Mth.lerp(event.getPartialTick(), entity.zo, entity.getZ()));
@ -1552,6 +1553,10 @@ public class ClientEventHandler {
var hasGravity = data.perk.getLevel(ModPerks.MICRO_MISSILE) <= 0;
Vec3 toVec = RangeTool.calculateFiringSolution(playerVec, targetVec, entity.getDeltaMovement(), data.velocity(), hasGravity ? 0.03 : 0);
look(player, toVec);
if (player.distanceTo(entity) > seekRange) {
entity = null;
}
}
}
} else {