diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/MobileVehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/MobileVehicleEntity.java index bb3319cff..47b92c47e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/MobileVehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/MobileVehicleEntity.java @@ -141,8 +141,8 @@ public abstract class MobileVehicleEntity extends EnergyVehicleEntity { if (this instanceof HelicopterEntity) { this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, driver == null ? this : driver), (float) (20 * ((lastTickSpeed - 0.3) * (lastTickSpeed - 0.3)))); this.bounceVertical(Direction.getNearest(this.getDeltaMovement().x(), this.getDeltaMovement().y(), this.getDeltaMovement().z()).getOpposite()); - } else if (Mth.abs((float) lastTickVerticalSpeed) > 0.6) { - this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, driver == null ? this : driver), (float) (48 * ((Mth.abs((float) lastTickVerticalSpeed) - 0.6) * (lastTickSpeed - 0.4) * (lastTickSpeed - 0.4)))); + } else if (Mth.abs((float) lastTickVerticalSpeed) > 0.4) { + this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, driver == null ? this : driver), (float) (96 * ((Mth.abs((float) lastTickVerticalSpeed) - 0.4) * (lastTickSpeed - 0.3) * (lastTickSpeed - 0.3)))); if (!this.level().isClientSide) { this.level().playSound(null, this, ModSounds.VEHICLE_STRIKE.get(), this.getSoundSource(), 1, 1); } @@ -151,7 +151,7 @@ public abstract class MobileVehicleEntity extends EnergyVehicleEntity { } if (this.horizontalCollision) { - this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, driver == null ? this : driver), (float) (36 * ((lastTickSpeed - 0.4) * (lastTickSpeed - 0.4)))); + this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, driver == null ? this : driver), (float) (126 * ((lastTickSpeed - 0.4) * (lastTickSpeed - 0.4)))); this.bounceHorizontal(Direction.getNearest(this.getDeltaMovement().x(), this.getDeltaMovement().y(), this.getDeltaMovement().z()).getOpposite()); if (!this.level().isClientSide) { this.level().playSound(null, this, ModSounds.VEHICLE_STRIKE.get(), this.getSoundSource(), 1, 1); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java index d6049b1ab..f0b1f19f7 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java @@ -263,14 +263,24 @@ public abstract class VehicleEntity extends Entity { } else if (!player.isShiftKeyDown()) { if (this.getFirstPassenger() == null) { if (player instanceof FakePlayer) return InteractionResult.PASS; - player.setXRot(this.getXRot()); - player.setYRot(this.getYRot()); + if (this instanceof LandArmorEntity landArmorEntity) { + player.setXRot((float) getXRotFromVector(landArmorEntity.getBarrelVec(1))); + player.setYRot((float) getYRotFromVector(landArmorEntity.getBarrelVec(1))); + } else { + player.setXRot(this.getXRot()); + player.setYRot(this.getYRot()); + } return player.startRiding(this) ? InteractionResult.CONSUME : InteractionResult.PASS; } else if (!(this.getFirstPassenger() instanceof Player)) { if (player instanceof FakePlayer) return InteractionResult.PASS; this.getFirstPassenger().stopRiding(); - player.setXRot(this.getXRot()); - player.setYRot(this.getYRot()); + if (this instanceof LandArmorEntity landArmorEntity) { + player.setXRot((float) getXRotFromVector(landArmorEntity.getBarrelVec(1))); + player.setYRot((float) getYRotFromVector(landArmorEntity.getBarrelVec(1))); + } else { + player.setXRot(this.getXRot()); + player.setYRot(this.getYRot()); + } return player.startRiding(this) ? InteractionResult.CONSUME : InteractionResult.PASS; } if (this.canAddPassenger(player)) { @@ -352,7 +362,7 @@ public abstract class VehicleEntity extends Entity { .immuneTo(DamageTypes.DRAGON_BREATH) .immuneTo(DamageTypes.WITHER) .immuneTo(DamageTypes.WITHER_SKULL) - .reduce(8, ModDamageTypes.VEHICLE_STRIKE); + .reduce(5, ModDamageTypes.VEHICLE_STRIKE); } public void heal(float pHealAmount) {