Начинающий
- Статус
- Онлайн
- Регистрация
- 27 Май 2024
- Сообщения
- 342
- Реакции
- 1
это тот самый дик клиент перепаст килкивчера сделол килку еле как пофиксил ошибки запускаю думаю щас будет бить в итоге ничего просто включил она не бьет
уже все перепробовал ничо не помогает
Код:package im.expensive.functions.impl.combat; import im.expensive.Expensive; import im.expensive.events.EventInput; import im.expensive.events.EventMotion; import im.expensive.events.EventPacket; import im.expensive.events.EventTarget; import im.expensive.events.EventUpdate; import im.expensive.events.MovingEvent; import im.expensive.events.WorldEvent; import im.expensive.functions.api.Category; import im.expensive.functions.api.Function; import im.expensive.functions.api.FunctionRegister; import im.expensive.functions.settings.Setting; import im.expensive.functions.settings.impl.BooleanSetting; import im.expensive.functions.settings.impl.ModeListSetting; import im.expensive.functions.settings.impl.ModeSetting; import im.expensive.functions.settings.impl.SliderSetting; import im.expensive.utils.animations.AnimationNew; import im.expensive.utils.animations.Easing; import im.expensive.utils.math.SensUtils; import im.expensive.utils.math.StopWatch; import im.expensive.utils.player.InventoryUtil; import im.expensive.utils.player.MoveUtils; import im.expensive.utils.player.RayTraceUtils; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import net.minecraft.block.material.Material; import net.minecraft.client.entity.player.ClientPlayerEntity; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.enchantment.Enchantments; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.MobEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.inventory.container.ClickType; import net.minecraft.item.ArmorItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.network.IPacket; import net.minecraft.network.play.client.CAnimateHandPacket; import net.minecraft.network.play.client.CHeldItemChangePacket; import net.minecraft.potion.Effects; import net.minecraft.tags.FluidTags; import net.minecraft.util.Hand; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.vector.Vector2f; import net.minecraft.util.math.vector.Vector3d; import net.optifine.util.WorldUtils; @FunctionRegister( name = "Attack Aura", type = Category.Combat ) public class KillAura extends Function { private final ModeSetting type = new ModeSetting("Тип", "Плавная", new String[]{"Плавная", "Резкая"}); public final SliderSetting attackRange = new SliderSetting("Дистанция аттаки", 3.0F, 3.0F, 6.0F, 0.1F); final ModeListSetting targets = new ModeListSetting("Таргеты", new BooleanSetting[]{new BooleanSetting("Игроки", true), new BooleanSetting("Голые", true), new BooleanSetting("Мобы", false), new BooleanSetting("Друзья", false)}); final BooleanSetting onlySpaceCritical = new BooleanSetting("Только в прыжке", true); final ModeListSetting options = new ModeListSetting("Опции", new BooleanSetting[]{new BooleanSetting("Только криты", true), new BooleanSetting("Ломать щит", true), new BooleanSetting("Отжимать щит", true), new BooleanSetting("Тпс синх", false), new BooleanSetting("Коррекция движения", true), new BooleanSetting("Бэк Треки", true), new BooleanSetting("Проверка наводки", false)}); final ModeSetting correctionType = new ModeSetting("Тип коррекции", "Незаметный", new String[]{"Незаметный", "Сфокусированный"}); final ModeSetting hands = new ModeSetting("Бить рукой", "Правой", new String[]{"Правой", "Левой"}); private final StopWatch stopWatch = new StopWatch(); public Vector2f rotateVector = new Vector2f(0.0F, 0.0F); public static LivingEntity target; private Entity selected; Vector2f fakerotate = new Vector2f(0.0F, 0.0F); int ticks = 0; boolean isRotated; final AutoPotion autoPotion; AnimationNew animationNew; StopWatch timerTimes; public double lastSpeed; public boolean attack; boolean testABoolean; public boolean targetAir; StopWatch axyenno; public float speed; boolean axyeenn; public boolean attacksave; public boolean savePacket; public Vector3d test; boolean targetVisible; private final CopyOnWriteArrayList<IPacket> packets; StopWatch arara; StopWatch test1; public KillAura(AutoPotion autoPotion) { this.animationNew = new AnimationNew(Easing.EASE_OUT_EXPO, 100L); this.timerTimes = new StopWatch(); this.lastSpeed = (double)0.0F; this.attack = false; this.testABoolean = false; this.axyenno = new StopWatch(); this.speed = 0.0F; this.axyeenn = false; this.attacksave = false; this.savePacket = false; this.test = Vector3d.ZERO; this.packets = new CopyOnWriteArrayList(); this.arara = new StopWatch(); this.test1 = new StopWatch(); this.autoPotion = autoPotion; this.addSettings(new Setting[]{this.type, this.attackRange, this.targets, this.options, this.correctionType, this.onlySpaceCritical, this.hands}); } @EventTarget public void onInput(EventInput eventInput) { if ((Boolean)this.options.get(4).get() && this.correctionType.is("Незаметный") && target != null && mc.player != null && !mc.player.isElytraFlying() && Expensive.getInstance().getFunctionRegistry().getFreeCam().player == null) { MoveUtils.fixMovement(eventInput, this.rotateVector.x); } } @EventTarget public void onUpdate(EventUpdate e) { if (target == null || !this.isValid(target)) { this.updateTarget(); } if ((Boolean)this.options.get(5).get()) { this.resolvePlayers(); } if ((Boolean)this.options.get(5).get()) { this.releaseResolver(); } if (target != null && this.timerTimes.isReached(200L)) { double dx = getTarget().getPosX() - getTarget().prevPosX; double dy = getTarget().getPosY() - getTarget().prevPosY; double dz = getTarget().getPosZ() - getTarget().prevPosZ; double distance = Math.sqrt(dx * dx + dy * dy + dz * dz); double speed22 = distance * (double)20.0F; this.lastSpeed = speed22; this.timerTimes.reset(); } if (target != null && (!this.autoPotion.isState() || !this.autoPotion.isActive())) { this.isRotated = false; if (this.shouldPlayerFalling() && this.stopWatch.hasTimeElapsed()) { if (false && RayTraceUtils.rayTraceSingleEntity(this.rotateVector.x, this.rotateVector.y, (double)(Float)this.attackRange.get(), target) || !(Boolean)this.options.get(6).get() || this.type.is("Резкая") || mc.player.isElytraFlying()) { this.updateAttack(); this.ticks = 1; } } else { this.attack = false; } if ((!this.type.is("Резкая") || mc.player.isElytraFlying()) && !Expensive.getInstance().getFunctionRegistry().getElytraFly().flying) { if (!this.isRotated) { this.updateRotation(1.0F); } } else if (this.ticks > 0) { this.attack = true; this.updateRotation(1.0F); --this.ticks; } else { this.reset(); this.attack = false; } } else { this.stopWatch.setLastMS(0L); this.reset(); } } public void resolvePlayers() { for(PlayerEntity player : mc.world.getPlayers()) { if (player instanceof ClientPlayerEntity entity) { entity.resolve(); } } } public void releaseResolver() { for(PlayerEntity player : mc.world.getPlayers()) { if (player instanceof ClientPlayerEntity entity) { entity.releaseResolver(); } } } @EventTarget public void Moving(MovingEvent event) { if (target != null) { this.testABoolean = !this.collisionPredict(target.getPositionVec(), target); } } private double getDegree(LivingEntity entity) { Vector3d vec = this.getVector3d(mc.player, entity, true); double yaw = MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - (double)90.0F); double delta = MathHelper.wrapDegrees(yaw - (double)this.rotateVector.x); if (Math.abs(delta) > (double)180.0F) { delta -= Math.signum(delta) * (double)360.0F; } return Math.abs(delta); } public boolean collisionPredict(Vector3d to, LivingEntity target) { boolean prevCollision = mc.world.getCollisionShapes(target, target.getBoundingBox().shrink((double)0.0625F)).toList().isEmpty(); Vector3d backUp = new Vector3d(target.getPosX(), target.getPosY(), target.getPosZ()); target.setPosition(to.x, to.y, to.z); boolean collision = mc.world.getCollisionShapes(target, mc.player.getBoundingBox().shrink((double)0.0625F)).toList().isEmpty() && prevCollision; target.setPosition(backUp.x, backUp.y, backUp.z); return collision; } @EventTarget private void onWalking(EventMotion e) { if (target != null && (!this.autoPotion.isState() || !this.autoPotion.isActive())) { float yaw = this.rotateVector.x; float pitch = this.rotateVector.y; float fakeyaw = this.fakerotate.x; float fakepitch = this.fakerotate.y; e.setYaw(yaw); e.setPitch(pitch); mc.player.rotationYawHead = yaw; mc.player.renderYawOffset = yaw; mc.player.rotationPitchHead = pitch; } } private void updateTarget() { List<LivingEntity> targets = new ArrayList(); for(Entity entity : mc.world.getAllEntities()) { if (entity instanceof LivingEntity living) { if (this.isValid(living)) { targets.add(living); } } } if (targets.isEmpty()) { target = null; } else if (targets.size() == 1) { target = (LivingEntity)targets.get(0); } else { targets.sort(Comparator.comparingDouble((object) -> { if (object instanceof PlayerEntity player) { return -this.getEntityArmor(player); } else if (object instanceof LivingEntity base) { return (double)(-base.getTotalArmorValue()); } else { return (double)0.0F; } }).thenComparing((object, object2) -> { double d2 = this.getEntityHealth((LivingEntity)object); double d3 = this.getEntityHealth((LivingEntity)object2); return Double.compare(d2, d3); }).thenComparing((object, object2) -> { double d2 = (double)mc.player.getDistance((LivingEntity)object); double d3 = (double)mc.player.getDistance((LivingEntity)object2); return Double.compare(d2, d3); })); target = (LivingEntity)targets.get(0); } } private void updateRotation(float speed) { Vector3d vec3d = this.getVector3d(mc.player, target, true); Vector3d fakeVec3d = this.getVector3d(mc.player, target, false); float rawYaw = (float)MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec3d.z, vec3d.x)) - (double)90.0F); float rawPitch = (float)MathHelper.wrapDegrees(Math.toDegrees(-Math.atan2(vec3d.y, Math.hypot(vec3d.x, vec3d.z)))); float yawDelta = MathHelper.wrapDegrees(rawYaw - this.rotateVector.x); float pitchDelta = MathHelper.wrapDegrees(rawPitch - this.rotateVector.y); if (Math.abs(yawDelta) > 180.0F) { yawDelta -= Math.signum(yawDelta) * 360.0F; } float additionYaw = MathHelper.clamp(yawDelta, -180.0F * speed, 180.0F * speed); float additionPitch = MathHelper.clamp(pitchDelta, -90.0F * speed, 90.0F * speed); float yaw = this.rotateVector.x + additionYaw; float pitch = this.rotateVector.y + additionPitch; float x1 = (float)SensUtils.getSensitivity((double)yaw); float x2 = (float)SensUtils.getSensitivity((double)MathHelper.clamp(pitch, -89.0F, 89.0F)); float fakeRawYaw = (float)MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(fakeVec3d.z, fakeVec3d.x)) - (double)90.0F); float fakeRawPitch = (float)MathHelper.wrapDegrees(Math.toDegrees(-Math.atan2(fakeVec3d.y, Math.hypot(fakeVec3d.x, fakeVec3d.z)))); float fakeYawDelta = MathHelper.wrapDegrees(fakeRawYaw - this.fakerotate.x); float fakePitchDelta = MathHelper.wrapDegrees(fakeRawPitch - this.fakerotate.y); if (Math.abs(fakeYawDelta) > 180.0F) { fakeYawDelta -= Math.signum(fakeYawDelta) * 360.0F; } float fakeAdditionYaw = MathHelper.clamp(fakeYawDelta, -180.0F * speed, 180.0F * speed); float fakeAdditionPitch = MathHelper.clamp(fakePitchDelta, -90.0F * speed, 90.0F * speed); float fakeYaw = this.fakerotate.x + fakeAdditionYaw; float fakePitch = this.fakerotate.y + fakeAdditionPitch; float fakeX1 = (float)SensUtils.getSensitivity((double)fakeYaw); float fakeX2 = (float)SensUtils.getSensitivity((double)MathHelper.clamp(fakePitch, -90.0F, 90.0F)); this.rotateVector.x = x1; this.rotateVector.y = x2; this.fakerotate.x = fakeX1; this.fakerotate.y = fakeX2; if ((Boolean)this.options.get(4).get()) { mc.player.rotationPitchOffset = x2; mc.player.rotationYawOffset = x1; } } @EventTarget private void onRender(WorldEvent event) { } private Vector3d getVector3d(LivingEntity me, LivingEntity to, boolean targetAir) { float dist = 0.0F; if (target != null) { double dx = getTarget().getPosX() - getTarget().prevPosX; double dy = getTarget().getPosY() - getTarget().prevPosY; double dz = getTarget().getPosZ() - getTarget().prevPosZ; double distance = Math.sqrt(dx * dx + dy * dy + dz * dz); dist = (float)distance; } if (this.axyenno.isReached(1000L) && mc.player.isElytraFlying()) { this.axyeenn = true; this.axyenno.reset(); } if (this.stopWatch.getTime() > 100L) { this.attacksave = true; } else if (this.stopWatch.getTime() < 100L) { this.attacksave = false; } this.speed = dist; boolean xuy = target != null && targetAir && Expensive.getInstance().getFunctionRegistry().getElytraTarget().vibor.getIndex() == 1 ? this.lastSpeed >= (double)20.0F : target.isElytraFlying() && mc.player.isElytraFlying() && !Expensive.getInstance().getFunctionRegistry().getFly().isState() && !Expensive.getInstance().getFunctionRegistry().getFreeCam().isState() && (Boolean)Expensive.getInstance().getFunctionRegistry().getElytraTarget().target.get(); float SpeedBypass = xuy ? 3.0F + (Float)Expensive.getInstance().getFunctionRegistry().getElytraTarget().distance.get() : 0.0F; Vector3d targetPos = to.getPositionVec().add(to.getForward().normalize().scale((double)SpeedBypass)); Vector3d vec = target.getPositionVec().add((double)0.0F, MathHelper.clamp(mc.player.getEyePosition(mc.getRenderPartialTicks()).y - target.getPosY(), (double)0.0F, (double)target.getHeight() * (MathHelper.getStrictDistance(target) / (double)Math.max(mc.playerController.extendedReach() ? 6.0F : 3.0F, (Float)this.attackRange.get()))), (double)0.0F).subtract(mc.player.getEyePosition(mc.getRenderPartialTicks())).normalize(); this.targetAir = xuy; return targetAir && xuy ? new Vector3d(targetPos.getX() - me.getPosX(), targetPos.getY() - me.getPosY(), targetPos.getZ() - me.getPosZ()) : vec; } @EventTarget public void aragyntang(EventMotion e) { } @EventTarget public void ogogo(EventPacket e) { } private Vector3d getBestVec(LivingEntity LivingEntity2, double dst) { if (LivingEntity2.getDistanceSq(LivingEntity2) > (double)36.0F) { return null; } else { Vector3d headPoint = this.getDeltaForCord(KillAura.HitBox.Head, LivingEntity2); Vector3d chestPoint = this.getDeltaForCord(KillAura.HitBox.Chest, LivingEntity2); Vector3d leggsPoint = this.getDeltaForCord(KillAura.HitBox.Leggs, LivingEntity2); if (mc.player.isElytraFlying()) { return headPoint; } else { ArrayList<Vector3d> arrayList = new ArrayList(Arrays.asList(headPoint, chestPoint, leggsPoint)); if (arrayList.isEmpty()) { return null; } else { arrayList.sort((point1, point2) -> (int)((Math.abs(this.getDeltaForCoord(this.rotateVector, point1).y) - Math.abs(this.getDeltaForCoord(this.rotateVector, point2).y)) * 1000.0F)); return (Vector3d)arrayList.get(0); } } } } private Vector3d getDeltaForCord(HitBox a2, LivingEntity trgt) { double var10000; switch (a2) { case Head -> var10000 = (double)trgt.getEyeHeight(); case Chest -> var10000 = (double)(trgt.getEyeHeight() / 2.0F); case Leggs -> var10000 = 0.05; default -> throw new IncompatibleClassChangeError(); } double d2 = var10000; return trgt.getPositionVec().add((double)0.0F, d2, (double)0.0F); } private Vector2f getDeltaForCoord(Vector2f vector2f2, Vector3d jE2) { double d2 = jE2.x - mc.player.getPosX(); double d3 = jE2.y - mc.player.getEyePosition(1.0F).y; double d4 = jE2.z - mc.player.getPosZ(); double d5 = Math.sqrt(d2 * d2 + d4 * d4); float f2 = (float)MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(d4, d2)) - (double)90.0F); float f3 = (float)(-Math.toDegrees(Math.atan2(d3, d5))); float f4 = MathHelper.wrapDegrees(f2 - vector2f2.x); float f5 = f3 - vector2f2.y; return new Vector2f(f4, f5); } private void updateAttack() { if (mc.player.isBlocking() && (Boolean)this.options.getValueByName("Отжимать щит").get()) { mc.playerController.onStoppedUsingItem(mc.player); mc.player.swingArm(Hand.MAIN_HAND); mc.playerController.attackEntity(mc.player, target); mc.player.connection.sendPacket(new CAnimateHandPacket(Hand.MAIN_HAND)); } this.stopWatch.setLastMS(460L); mc.playerController.attackEntity(mc.player, target); mc.player.swingArm(this.hands.getIndex() == 0 ? Hand.MAIN_HAND : Hand.OFF_HAND); LivingEntity var2 = target; if (var2 instanceof PlayerEntity player) { if ((Boolean)this.options.getValueByName("Ломать щит").get()) { this.breakShieldPlayer(player); } } } private boolean shouldPlayerFalling() { boolean onSpace = !(Boolean)this.onlySpaceCritical.get() && mc.player.isOnGround() && !mc.gameSettings.keyBindJump.isKeyDown(); boolean reasonForAttack = mc.player.isPotionActive(Effects.BLINDNESS) || mc.player.isOnLadder() || mc.player.isInWater() && mc.player.areEyesInFluid(FluidTags.WATER) || mc.player.isRidingHorse() || mc.player.abilities.isFlying || WorldUtils.isInMaterial(Material.WEB) || mc.player.isElytraFlying() || mc.player.isInLava() && mc.player.areEyesInFluid(FluidTags.LAVA) || mc.player.isPotionActive(Effects.LEVITATION) || mc.player.isPassenger(); double dist = (double)0.0F; float cooldown = mc.player.getCooledAttackStrength(0.5f); if (cooldown < 0.9f) return false; dist = mc.player.getDistanceEyePos(target); if (!(dist >= (double)(Float)this.attackRange.get()) && mc.player.getCooledAttackStrength((Boolean)this.options.get(3).get() ? -Expensive.getInstance().getTPSCalcNew().getAdjustTicks() + 1.5F : 1.5F) >= 0.93F) { if (Expensive.getInstance().getFunctionRegistry().getFreeCam().player != null) { return true; } else if (!reasonForAttack && (Boolean)this.options.getValueByName("Только криты").get()) { return onSpace || !mc.player.isOnGround() && mc.player.fallDistance > 0.0F; } else { return true; } } else { return false; } } private boolean isValid(LivingEntity entity) { if (entity instanceof ClientPlayerEntity) { return false; } else if (entity.ticksExisted < 3) { return false; } else if (mc.player.getDistanceEyePos(entity) > (double)((Float)this.attackRange.get() + (float)(mc.player.isElytraFlying() && !Expensive.getInstance().getFunctionRegistry().getElytraFly().flying ? 30 : 0))) { return false; } else { if (entity instanceof PlayerEntity) { PlayerEntity p = (PlayerEntity)entity; if (AntiBot.checkBot(entity)) { return false; } if (!(Boolean)this.targets.getValueByName("Друзья").get() && Expensive.getInstance().getFriendStorage().isFriend(p.getName().getString()) || p.getName().getString().equals("Friend")) { return false; } if (p.getName().getString().equalsIgnoreCase(mc.player.getName().getString())) { return false; } } if (entity.isAlive()) { if (entity instanceof MobEntity && (Boolean)this.targets.getValueByName("Мобы").get()) { return true; } if (entity.botEntity) { if (entity instanceof PlayerEntity && (Boolean)this.targets.getValueByName("Игроки").get()) { return true; } if (entity instanceof PlayerEntity && entity.getTotalArmorValue() == 0 && (Boolean)this.targets.getValueByName("Голые").get()) { return true; } } } return false; } } private void breakShieldPlayer(PlayerEntity entity) { if (entity.isBlocking()) { int invSlot = InventoryUtil.getInstance().getAxeInInventory(false); int hotBarSlot = InventoryUtil.getInstance().getAxeInInventory(true); if (hotBarSlot == -1 && invSlot != -1) { int bestSlot = InventoryUtil.getInstance().findBestSlotInHotBar(); mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player); mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player); mc.player.connection.sendPacket(new CHeldItemChangePacket(bestSlot)); mc.playerController.attackEntity(mc.player, entity); mc.player.swingArm(Hand.MAIN_HAND); mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem)); mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player); mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player); } if (hotBarSlot != -1) { mc.player.connection.sendPacket(new CHeldItemChangePacket(hotBarSlot)); mc.playerController.attackEntity(mc.player, entity); mc.player.swingArm(Hand.MAIN_HAND); mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem)); } } } private void reset() { if (!(Boolean)this.options.get(4).get() || (Boolean)this.options.get(4).get()) { mc.player.rotationYawOffset = (float)Integer.MIN_VALUE; mc.player.rotationPitchOffset = (float)Integer.MIN_VALUE; } this.rotateVector = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch); this.fakerotate = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch); } public boolean isEnable() { super.onEnable(); this.savePacket = true; this.reset(); target = null; return false; } public void onDisable() { super.onDisable(); this.attack = false; this.savePacket = true; this.reset(); this.stopWatch.setLastMS(0L); target = null; } private double getEntityArmor(PlayerEntity entityPlayer2) { double d2 = (double)0.0F; for(int i2 = 0; i2 < 4; ++i2) { ItemStack is = (ItemStack)entityPlayer2.inventory.armorInventory.get(i2); if (is.getItem() instanceof ArmorItem) { d2 += this.getProtectionLvl(is); } } return d2; } private double getProtectionLvl(ItemStack stack) { Item item = stack.getItem(); if (item instanceof ArmorItem i) { double protectionLevel = (double) i.getDamageReduceAmount(); if (stack.isEnchanted()) { protectionLevel += (double) EnchantmentHelper.getEnchantmentLevel(Enchantments.PROTECTION, stack) * 0.25D; } return protectionLevel; } else { return 0.0D; } } private double getEntityHealth(LivingEntity ent) { if (ent instanceof PlayerEntity player) { return (double)(Expensive.getInstance().getFunctionRegistry().getGetHealth().isState() ? PlayerEntity.getHealthFromScoreboard(player)[0] : player.getHealth() + player.getAbsorptionAmount()) * (this.getEntityArmor(player) / (double)20.0F); } else { return Expensive.getInstance().getFunctionRegistry().getGetHealth().isState() ? (double)PlayerEntity.getHealthFromScoreboard(ent)[0] : (double)(ent.getHealth() + ent.getAbsorptionAmount()); } } public ModeSetting getType() { return this.type; } public ModeListSetting getOptions() { return this.options; } public StopWatch getStopWatch() { return this.stopWatch; } public static LivingEntity getTarget() { return target; } private static enum HitBox { Head, Chest, Leggs; private HitBox() { } } }