调整无人机数值,修复快速点击突破武器射速上限bug

This commit is contained in:
Atsuihsio 2025-01-24 15:59:15 +08:00
parent 163f29be7d
commit 537b845b09
3 changed files with 19 additions and 12 deletions

View file

@ -68,10 +68,10 @@ public class ExplosionConfig {
builder.push("Drone Kamikaze"); builder.push("Drone Kamikaze");
builder.comment("The hit damage of Drone Kamikaze"); builder.comment("The hit damage of Drone Kamikaze");
DRONE_KAMIKAZE_HIT_DAMAGE = builder.defineInRange("drone_kamikaze_hit_damage", 300, 1, 10000000); DRONE_KAMIKAZE_HIT_DAMAGE = builder.defineInRange("drone_kamikaze_hit_damage", 200, 1, 10000000);
builder.comment("The hit damage of Drone Kamikaze with C4"); builder.comment("The hit damage of Drone Kamikaze with C4");
DRONE_KAMIKAZE_HIT_DAMAGE_C4 = builder.defineInRange("drone_kamikaze_hit_damage_c4", 700, 1, 10000000); DRONE_KAMIKAZE_HIT_DAMAGE_C4 = builder.defineInRange("drone_kamikaze_hit_damage_c4", 150, 1, 10000000);
builder.comment("The explosion damage of Drone Kamikaze"); builder.comment("The explosion damage of Drone Kamikaze");
DRONE_KAMIKAZE_EXPLOSION_DAMAGE = builder.defineInRange("drone_kamikaze_explosion_damage", 160, 1, 10000000); DRONE_KAMIKAZE_EXPLOSION_DAMAGE = builder.defineInRange("drone_kamikaze_explosion_damage", 160, 1, 10000000);
@ -84,7 +84,7 @@ public class ExplosionConfig {
builder.push("C4"); builder.push("C4");
builder.comment("The explosion damage of C4"); builder.comment("The explosion damage of C4");
C4_EXPLOSION_DAMAGE = builder.defineInRange("c4_explosion_damage", 500, 1, Integer.MAX_VALUE); C4_EXPLOSION_DAMAGE = builder.defineInRange("c4_explosion_damage", 300, 1, Integer.MAX_VALUE);
builder.comment("The explosion countdown of C4"); builder.comment("The explosion countdown of C4");
C4_EXPLOSION_COUNTDOWN = builder.defineInRange("c4_explosion_countdown", 514, 1, Integer.MAX_VALUE); C4_EXPLOSION_COUNTDOWN = builder.defineInRange("c4_explosion_countdown", 514, 1, Integer.MAX_VALUE);

View file

@ -477,9 +477,11 @@ public class DroneEntity extends MobileVehicleEntity implements GeoEntity {
if (lastTickSpeed > 0.12) { if (lastTickSpeed > 0.12) {
if (this.entityData.get(KAMIKAZE_MODE) != 0 && 20 * lastTickSpeed > this.getHealth()) { if (this.entityData.get(KAMIKAZE_MODE) != 0 && 20 * lastTickSpeed > this.getHealth()) {
if (this.entityData.get(KAMIKAZE_MODE) == 1) { if (this.entityData.get(KAMIKAZE_MODE) == 1) {
target.hurt(ModDamageTypes.causeCustomExplosionDamage(this.level().registryAccess(), this, controller), ExplosionConfig.DRONE_KAMIKAZE_HIT_DAMAGE.get()); target.hurt(ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, controller), ExplosionConfig.DRONE_KAMIKAZE_HIT_DAMAGE.get());
target.invulnerableTime = 0;
} else if (this.entityData.get(KAMIKAZE_MODE) == 2) { } else if (this.entityData.get(KAMIKAZE_MODE) == 2) {
target.hurt(ModDamageTypes.causeCustomExplosionDamage(this.level().registryAccess(), this, controller), ExplosionConfig.DRONE_KAMIKAZE_HIT_DAMAGE_C4.get()); target.hurt(ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, controller), ExplosionConfig.DRONE_KAMIKAZE_HIT_DAMAGE_C4.get());
target.invulnerableTime = 0;
} }
if (controller != null && controller.getMainHandItem().is(ModItems.MONITOR.get())) { if (controller != null && controller.getMainHandItem().is(ModItems.MONITOR.get())) {

View file

@ -291,10 +291,10 @@ public class ClientEventHandler {
if (stack.is(ModItems.LUNGE_MINE.get()) && ((lungeAttack >= 18 && lungeAttack <= 21) || lungeSprint > 0)) { if (stack.is(ModItems.LUNGE_MINE.get()) && ((lungeAttack >= 18 && lungeAttack <= 21) || lungeSprint > 0)) {
Entity lookingEntity = TraceTool.findLookingEntity(player, player.getEntityReach() + 1.5); Entity lookingEntity = TraceTool.findLookingEntity(player, player.getEntityReach() + 1.5);
BlockHitResult result = player.level().clip(new ClipContext(player.getEyePosition(), player.getEyePosition().add(player.getLookAngle().scale(player.getBlockReach() + 1.5)), BlockHitResult result = player.level().clip(new ClipContext(player.getEyePosition(), player.getEyePosition().add(player.getLookAngle().scale(player.getBlockReach() + 0.5)),
ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)); ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player));
Vec3 looking = Vec3.atLowerCornerOf(player.level().clip(new ClipContext(player.getEyePosition(), player.getEyePosition().add(player.getLookAngle().scale(player.getBlockReach() + 1.5)), ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)).getBlockPos()); Vec3 looking = Vec3.atLowerCornerOf(player.level().clip(new ClipContext(player.getEyePosition(), player.getEyePosition().add(player.getLookAngle().scale(player.getBlockReach() + 0.5)), ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)).getBlockPos());
BlockState blockState = player.level().getBlockState(BlockPos.containing(looking.x(), looking.y(), looking.z())); BlockState blockState = player.level().getBlockState(BlockPos.containing(looking.x(), looking.y(), looking.z()));
if (lookingEntity != null) { if (lookingEntity != null) {
@ -302,7 +302,7 @@ public class ClientEventHandler {
lungeSprint = 0; lungeSprint = 0;
lungeAttack = 0; lungeAttack = 0;
lungeDraw = 30; lungeDraw = 30;
} else if (blockState.canOcclude() || blockState.getBlock() instanceof DoorBlock || blockState.getBlock() instanceof CrossCollisionBlock || blockState.getBlock() instanceof BellBlock) { } else if ((blockState.canOcclude() || blockState.getBlock() instanceof DoorBlock || blockState.getBlock() instanceof CrossCollisionBlock || blockState.getBlock() instanceof BellBlock) && lungeSprint == 0) {
ModUtils.PACKET_HANDLER.sendToServer(new LungeMineAttackMessage(1, player.getUUID(), result)); ModUtils.PACKET_HANDLER.sendToServer(new LungeMineAttackMessage(1, player.getUUID(), result));
lungeSprint = 0; lungeSprint = 0;
lungeAttack = 0; lungeAttack = 0;
@ -451,7 +451,7 @@ public class ClientEventHandler {
} }
} else { } else {
if (mode != 0) { if (mode != 0 && clientTimer.getProgress() >= cooldown) {
clientTimer.stop(); clientTimer.stop();
} }
fireSpread = 0; fireSpread = 0;
@ -686,12 +686,17 @@ public class ClientEventHandler {
if ((holdFireVehicle)) { if ((holdFireVehicle)) {
if (!clientTimerVehicle.started()) { if (!clientTimerVehicle.started()) {
clientTimerVehicle.start(); clientTimerVehicle.start();
// 首发瞬间发射
clientTimerVehicle.setProgress((cooldown + 1));
}
if (clientTimerVehicle.getProgress() >= cooldown) {
ModUtils.PACKET_HANDLER.sendToServer(new VehicleFireMessage(0)); ModUtils.PACKET_HANDLER.sendToServer(new VehicleFireMessage(0));
playVehicleClientSounds(player, iVehicle); playVehicleClientSounds(player, iVehicle);
clientTimerVehicle.setProgress((clientTimerVehicle.getProgress() - cooldown));
} }
if (clientTimerVehicle.getProgress() >= cooldown) { } else if (clientTimerVehicle.getProgress() >= cooldown) {
clientTimerVehicle.stop(); clientTimerVehicle.stop();
}
} }
} else { } else {
clientTimerVehicle.stop(); clientTimerVehicle.stop();