diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/VehicleHudOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/VehicleHudOverlay.java index 829e5fd6c..4960dbca4 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/VehicleHudOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/VehicleHudOverlay.java @@ -178,7 +178,8 @@ public class VehicleHudOverlay implements LayeredDraw.Layer { RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); RenderSystem.setShaderColor(1, 1, 1, 1); - scopeScale = Mth.lerp(deltaTracker.getGameTimeDeltaPartialTick(true), scopeScale, 1F); + float partialTick = deltaTracker.getGameTimeDeltaPartialTick(true); + scopeScale = Mth.lerp(partialTick, scopeScale, 1F); float scale = scopeScale; if (Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON || ClientEventHandler.zoomVehicle) { @@ -194,12 +195,12 @@ public class VehicleHudOverlay implements LayeredDraw.Layer { // 炮塔方向 poseStack.pushPose(); - poseStack.rotateAround(Axis.ZP.rotationDegrees(Mth.lerp(deltaTracker.getGameTimeDeltaPartialTick(true), iLand.turretYRotO(), iLand.turretYRot())), w / 2f + 112, h - 56, 0); + poseStack.rotateAround(Axis.ZP.rotationDegrees(Mth.lerp(partialTick, iLand.turretYRotO(), iLand.turretYRot())), w / 2f + 112, h - 56, 0); preciseBlit(guiGraphics, Mod.loc("textures/screens/land/body.png"), w / 2f + 96, h - 72, 0, 0.0F, 32, 32, 32, 32); poseStack.popPose(); // 时速 - guiGraphics.drawString(mc.font, Component.literal(FormatTool.format0D(mobileVehicle.getDeltaMovement().length() * 72, " km/h")), + guiGraphics.drawString(mc.font, Component.literal(FormatTool.format0D(mobileVehicle.getDeltaMovement().dot(mobileVehicle.getViewVector(partialTick)) * 72, " km/h")), w / 2 + 160, h / 2 - 48, 0x66FF00, false); // 低电量警告 @@ -253,7 +254,7 @@ public class VehicleHudOverlay implements LayeredDraw.Layer { renderKillIndicator(guiGraphics, w, h); } else if (Minecraft.getInstance().options.getCameraType() == CameraType.THIRD_PERSON_BACK && !ClientEventHandler.zoomVehicle) { - Vec3 p = RenderHelper.worldToScreen(new Vec3(Mth.lerp(deltaTracker.getGameTimeDeltaPartialTick(true), player.xo, player.getX()), Mth.lerp(deltaTracker.getGameTimeDeltaPartialTick(true), player.yo + player.getEyeHeight(), player.getEyeY()), Mth.lerp(deltaTracker.getGameTimeDeltaPartialTick(true), player.zo, player.getZ())).add(iLand.getBarrelVec(deltaTracker.getGameTimeDeltaPartialTick(true)).scale(192)), cameraPos); + Vec3 p = RenderHelper.worldToScreen(new Vec3(Mth.lerp(partialTick, player.xo, player.getX()), Mth.lerp(partialTick, player.yo + player.getEyeHeight(), player.getEyeY()), Mth.lerp(partialTick, player.zo, player.getZ())).add(iLand.getBarrelVec(partialTick).scale(192)), cameraPos); // 第三人称准星 if (p != null) { poseStack.pushPose(); diff --git a/src/main/java/com/atsuishio/superbwarfare/data/vehicle/DefaultVehicleData.java b/src/main/java/com/atsuishio/superbwarfare/data/vehicle/DefaultVehicleData.java index ac32751b9..7d80d4f62 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/vehicle/DefaultVehicleData.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/vehicle/DefaultVehicleData.java @@ -33,4 +33,7 @@ public class DefaultVehicleData { @SerializedName("DamageModifiers") public List damageModifiers = List.of(); + + @SerializedName("Mass") + public float mass = 1; } diff --git a/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleData.java b/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleData.java index 73fe49b91..e6e74bfd6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleData.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleData.java @@ -56,6 +56,10 @@ public class VehicleData { return data.allowFreeCam; } + public float mass() { + return data.mass; + } + public DamageModifier damageModifier() { var modifier = new DamageModifier(); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java index d88d1b2e4..abb32c260 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java @@ -452,7 +452,8 @@ public class Bmp2Entity extends ContainerMobileVehicleEntity implements GeoEntit this.setYRot((float) (this.getYRot() - (isInWater() && !onGround() ? 2.5 : 6) * entityData.get(DELTA_ROT))); if (this.isInWater() || onGround()) { - this.setDeltaMovement(this.getDeltaMovement().add(getViewVector(1).scale((!isInWater() && !onGround() ? 0.13f : (isInWater() && !onGround() ? 2 : 2.4f)) * this.entityData.get(POWER)))); + float power = this.entityData.get(POWER) * Mth.clamp(1 + (s0 > 0 ? 1 : -1) * getXRot() / 35, 0, 2); + this.setDeltaMovement(this.getDeltaMovement().add(getViewVector(1).scale((!isInWater() && !onGround() ? 0.13f : (isInWater() && !onGround() ? 2 : 2.4f)) * power))); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java index 3ec22f4e1..39fb6c71f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java @@ -340,7 +340,8 @@ public class Lav150Entity extends ContainerMobileVehicleEntity implements GeoEnt this.setYRot((float) (this.getYRot() - Math.max((isInWater() && !onGround() ? 5 : 10) * this.getDeltaMovement().horizontalDistance(), 0) * this.getRudderRot() * (this.entityData.get(POWER) > 0 ? 1 : -1))); if (this.isInWater() || onGround()) { - this.setDeltaMovement(this.getDeltaMovement().add(getViewVector(1).scale((!isInWater() && !onGround() ? 0.05f : (isInWater() && !onGround() ? 0.3f : 1)) * this.entityData.get(POWER)))); + float power = this.entityData.get(POWER) * Mth.clamp(1 + (s0 > 0 ? 1 : -1) * getXRot() / 35, 0, 2); + this.setDeltaMovement(this.getDeltaMovement().add(getViewVector(1).scale((!isInWater() && !onGround() ? 0.05f : (isInWater() && !onGround() ? 0.3f : 1)) * power))); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/PrismTankEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/PrismTankEntity.java index ad8fd4721..3243e92ac 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/PrismTankEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/PrismTankEntity.java @@ -501,7 +501,8 @@ public class PrismTankEntity extends ContainerMobileVehicleEntity implements Geo this.setYRot((float) (this.getYRot() - (isInWater() && !onGround() ? 2.5 : 6) * entityData.get(DELTA_ROT))); if (this.isInWater() || onGround()) { - this.setDeltaMovement(this.getDeltaMovement().add(getViewVector(1).scale((!isInWater() && !onGround() ? 0.13f : (isInWater() && !onGround() ? 2 : 2.4f)) * this.entityData.get(POWER)))); + float power = this.entityData.get(POWER) * Mth.clamp(1 + (s0 > 0 ? 1 : -1) * getXRot() / 35, 0, 2); + this.setDeltaMovement(this.getDeltaMovement().add(getViewVector(1).scale((!isInWater() && !onGround() ? 0.13f : (isInWater() && !onGround() ? 2 : 2.4f)) * power))); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/WheelChairEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/WheelChairEntity.java index 6a749a827..06eec2109 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/WheelChairEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/WheelChairEntity.java @@ -188,7 +188,8 @@ public class WheelChairEntity extends MobileVehicleEntity implements GeoEntity { this.setLeftWheelRot((float) (this.getLeftWheelRot() - 1.25 * s0) - 0.015f * Mth.clamp(0.4f * diffY, -5f, 5f)); this.setRightWheelRot((float) (this.getRightWheelRot() - 1.25 * s0) + 0.015f * Mth.clamp(0.4f * diffY, -5f, 5f)); - this.setDeltaMovement(this.getDeltaMovement().add(getViewVector(1).scale((this.onGround() ? 1 : 0.1) * this.entityData.get(POWER)))); + float power = this.entityData.get(POWER) * Mth.clamp(1 + (s0 > 0 ? 1 : -1) * getXRot() / 35, 0, 2); + this.setDeltaMovement(this.getDeltaMovement().add(getViewVector(1).scale((this.onGround() ? 1 : 0.1) * power))); } public void moveWithOutPower(Player player, boolean forward) { diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100Entity.java index 50243c346..c8ecfd64b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Yx100Entity.java @@ -287,9 +287,9 @@ public class Yx100Entity extends ContainerMobileVehicleEntity implements GeoEnti if (this.onGround()) { float f0 = 0.54f + 0.25f * Mth.abs(90 - (float) calculateAngle(this.getDeltaMovement(), this.getViewVector(1))) / 90; this.setDeltaMovement(this.getDeltaMovement().add(this.getViewVector(1).normalize().scale(0.05 * getDeltaMovement().dot(getViewVector(1))))); - this.setDeltaMovement(this.getDeltaMovement().multiply(f0, 0.85, f0)); + this.setDeltaMovement(this.getDeltaMovement().multiply(f0, 0.99, f0)); } else { - this.setDeltaMovement(this.getDeltaMovement().multiply(0.98, 0.95, 0.98)); + this.setDeltaMovement(this.getDeltaMovement().multiply(0.98, 0.99, 0.98)); } if (this.isInWater()) { @@ -729,7 +729,8 @@ public class Yx100Entity extends ContainerMobileVehicleEntity implements GeoEnti this.setYRot((float) (this.getYRot() - (isInWater() && !onGround() ? 2.5 : 6) * entityData.get(DELTA_ROT))); if (this.isInWater() || onGround()) { - this.setDeltaMovement(this.getDeltaMovement().add(getViewVector(1).scale((!isInWater() && !onGround() ? 0.13f : (isInWater() && !onGround() ? 2 : 2.4f)) * this.entityData.get(POWER)))); + float power = this.entityData.get(POWER) * Mth.clamp(1 + (s0 > 0 ? 1 : -1) * getXRot() / 35, 0, 2); + this.setDeltaMovement(this.getDeltaMovement().add(getViewVector(1).scale((!isInWater() && !onGround() ? 0.13f : (isInWater() && !onGround() ? 2 : 2.4f)) * power))); } } 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 51266b002..bd4cc353e 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 @@ -650,8 +650,7 @@ public abstract class MobileVehicleEntity extends EnergyVehicleEntity implements if (!this.canCrushEntities()) return; if (velocity.horizontalDistance() < 0.25) return; if (isRemoved()) return; - var frontBox = getBoundingBox().move(velocity.scale(0.6)); - var velAdd = velocity.add(0, 0, 0).scale(0.9); + var frontBox = getBoundingBox().move(velocity); var entities = level().getEntities(EntityTypeTest.forClass(Entity.class), frontBox, entity -> entity != this && entity != getFirstPassenger() && entity.getVehicle() == null) @@ -668,17 +667,37 @@ public abstract class MobileVehicleEntity extends EnergyVehicleEntity implements .toList(); for (var entity : entities) { - double entitySize = entity.getBbWidth() * entity.getBbHeight(); - double thisSize = this.getBbWidth() * this.getBbHeight(); - double f = Math.min(entitySize / thisSize, 2) * 0.5; - double f1 = Math.min(thisSize / entitySize, 4) * 2; + double entitySize = entity.getBoundingBox().getSize(); + double thisSize = this.getBoundingBox().getSize(); + double f; + double f1; - if (velocity.length() > 0.3 && getBoundingBox().distanceToSqr(entity.getBoundingBox().getCenter()) < 1) { + // TODO 给非载具实体也设置质量 + + if (entity instanceof VehicleEntity vehicle) { + f = Mth.clamp(vehicle.getMass() / getMass(), 0.25, 4); + f1 = Mth.clamp(getMass() / vehicle.getMass(), 0.25, 4); + } else { + f = Mth.clamp(entitySize / thisSize, 0.25, 4); + f1 = Mth.clamp(thisSize / entitySize, 0.25, 4); + + } + + float v = (float) velocity.dot(position().vectorTo(entity.position())); + var velAdd = position().vectorTo(entity.position()).normalize().scale(0.1 * v); + + if (Mth.abs(v) > 0.1) { if (!this.level().isClientSide) { this.level().playSound(null, this, ModSounds.VEHICLE_STRIKE.get(), this.getSoundSource(), 1, 1); } + + entity.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, this.getFirstPassenger() == null ? this : this.getFirstPassenger()), (float) (f1 * 8 * (Mth.abs(v) - 0.2))); + if (entity instanceof VehicleEntity) { + this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), entity, entity.getFirstPassenger() == null ? entity : entity.getFirstPassenger()), (float) (f * 8 * (Mth.abs(v) - 0.2))); + } + if (!(entity instanceof TargetEntity)) { - this.pushNew(-f * velAdd.x, -f * velAdd.y, -f * velAdd.z); + this.pushNew(-0.3f * f * velAdd.x, -0.3f * f * velAdd.y, -0.3f * f * velAdd.z); } if (entity instanceof MobileVehicleEntity mobileVehicle) { @@ -686,11 +705,6 @@ public abstract class MobileVehicleEntity extends EnergyVehicleEntity implements } else { entity.push(f1 * velAdd.x, f1 * velAdd.y, f1 * velAdd.z); } - - entity.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, this.getFirstPassenger() == null ? this : this.getFirstPassenger()), (float) (thisSize * 20 * ((velocity.length() - 0.3) * (velocity.length() - 0.3)))); - if (entities instanceof VehicleEntity) { - this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), entity, entity.getFirstPassenger() == null ? entity : entity.getFirstPassenger()), (float) (entitySize * 10 * ((velocity.length() - 0.3) * (velocity.length() - 0.3)))); - } } else { entity.push(0.3 * f1 * velAdd.x, 0.3 * f1 * velAdd.y, 0.3 * f1 * velAdd.z); } 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 232461a33..3a3333ce1 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 @@ -978,6 +978,10 @@ public abstract class VehicleEntity extends Entity { return getEyePosition(); } + public float getMass() { + return data().mass(); + } + /** * 玩家在载具上的灵敏度调整 * diff --git a/src/main/resources/data/superbwarfare/vehicles/a_10a.json b/src/main/resources/data/superbwarfare/vehicles/a_10a.json index 9850365b0..037aead85 100644 --- a/src/main/resources/data/superbwarfare/vehicles/a_10a.json +++ b/src/main/resources/data/superbwarfare/vehicles/a_10a.json @@ -3,6 +3,7 @@ "MaxHealth": 350, "MaxEnergy": 10000000, "UpStep": 0.5, + "Mass": 11.4, "AllowFreeCam": true, "DamageModifiers": [ { diff --git a/src/main/resources/data/superbwarfare/vehicles/ah_6.json b/src/main/resources/data/superbwarfare/vehicles/ah_6.json index 81bc8e200..f3ddb4194 100644 --- a/src/main/resources/data/superbwarfare/vehicles/ah_6.json +++ b/src/main/resources/data/superbwarfare/vehicles/ah_6.json @@ -3,6 +3,7 @@ "MaxHealth": 250, "MaxEnergy": 5000000, "UpStep": 1.1, + "Mass": 1.2, "AllowFreeCam": true, "DamageModifiers": [ { diff --git a/src/main/resources/data/superbwarfare/vehicles/annihilator.json b/src/main/resources/data/superbwarfare/vehicles/annihilator.json index 6018cda72..0d24e7507 100644 --- a/src/main/resources/data/superbwarfare/vehicles/annihilator.json +++ b/src/main/resources/data/superbwarfare/vehicles/annihilator.json @@ -2,6 +2,7 @@ "ID": "superbwarfare:annihilator", "MaxHealth": 1200, "MaxEnergy": 20000000, + "Mass": 2774, "DamageModifiers": [ { "Type": "Multiply", diff --git a/src/main/resources/data/superbwarfare/vehicles/bmp_2.json b/src/main/resources/data/superbwarfare/vehicles/bmp_2.json index 137b0a8e3..8e46fd4b0 100644 --- a/src/main/resources/data/superbwarfare/vehicles/bmp_2.json +++ b/src/main/resources/data/superbwarfare/vehicles/bmp_2.json @@ -3,6 +3,7 @@ "MaxHealth": 300, "MaxEnergy": 5000000, "UpStep": 2.25, + "Mass": 14.6, "DamageModifiers": [ { "Type": "Multiply", @@ -85,7 +86,7 @@ }, { "Type": "Multiply", - "Value": 8.5, + "Value": 10, "Source": "#superbwarfare:vehicle_strike" }, { diff --git a/src/main/resources/data/superbwarfare/vehicles/drone.json b/src/main/resources/data/superbwarfare/vehicles/drone.json index 48b8a3d28..33a5348c8 100644 --- a/src/main/resources/data/superbwarfare/vehicles/drone.json +++ b/src/main/resources/data/superbwarfare/vehicles/drone.json @@ -1,4 +1,5 @@ { "ID": "superbwarfare:drone", - "MaxHealth": 5 + "MaxHealth": 5, + "Mass": 0.0005 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/vehicles/hpj_11.json b/src/main/resources/data/superbwarfare/vehicles/hpj_11.json index d221eedac..f7f5b9655 100644 --- a/src/main/resources/data/superbwarfare/vehicles/hpj_11.json +++ b/src/main/resources/data/superbwarfare/vehicles/hpj_11.json @@ -2,6 +2,7 @@ "ID": "superbwarfare:hpj_11", "MaxHealth": 350, "MaxEnergy": 5000000, + "Mass": 30, "DamageModifiers": [ { "Type": "Multiply", @@ -79,7 +80,7 @@ }, { "Type": "Multiply", - "Value": 10, + "Value": 5, "Source": "superbwarfare:vehicle_strike" }, { diff --git a/src/main/resources/data/superbwarfare/vehicles/laser_tower.json b/src/main/resources/data/superbwarfare/vehicles/laser_tower.json index 4b459f63b..941b426bc 100644 --- a/src/main/resources/data/superbwarfare/vehicles/laser_tower.json +++ b/src/main/resources/data/superbwarfare/vehicles/laser_tower.json @@ -2,6 +2,7 @@ "ID": "superbwarfare:laser_tower", "MaxHealth": 100, "MaxEnergy": 500000, + "Mass": 0.5, "DamageModifiers": [ { "Type": "Multiply", @@ -80,7 +81,7 @@ }, { "Type": "Multiply", - "Value": 2, + "Value": 5, "Source": "superbwarfare:vehicle_strike" }, { diff --git a/src/main/resources/data/superbwarfare/vehicles/lav_150.json b/src/main/resources/data/superbwarfare/vehicles/lav_150.json index 55bdb850e..9d0cdc9ac 100644 --- a/src/main/resources/data/superbwarfare/vehicles/lav_150.json +++ b/src/main/resources/data/superbwarfare/vehicles/lav_150.json @@ -3,6 +3,7 @@ "MaxHealth": 250, "MaxEnergy": 5000000, "UpStep": 1.5, + "Mass": 13.6, "DamageModifiers": [ { "Type": "Multiply", @@ -80,7 +81,7 @@ }, { "Type": "Multiply", - "Value": 10, + "Value": 6, "Source": "superbwarfare:vehicle_strike" }, { diff --git a/src/main/resources/data/superbwarfare/vehicles/mk_42.json b/src/main/resources/data/superbwarfare/vehicles/mk_42.json index a88159fe8..5bfb72949 100644 --- a/src/main/resources/data/superbwarfare/vehicles/mk_42.json +++ b/src/main/resources/data/superbwarfare/vehicles/mk_42.json @@ -1,6 +1,7 @@ { "ID": "superbwarfare:mk_42", "MaxHealth": 350, + "Mass": 61.4, "DamageModifiers": [ { "Type": "Multiply", @@ -78,7 +79,7 @@ }, { "Type": "Multiply", - "Value": 10, + "Value": 5, "Source": "superbwarfare:vehicle_strike" }, { diff --git a/src/main/resources/data/superbwarfare/vehicles/mle_1934.json b/src/main/resources/data/superbwarfare/vehicles/mle_1934.json index 6bbfb6c2f..f90420d5f 100644 --- a/src/main/resources/data/superbwarfare/vehicles/mle_1934.json +++ b/src/main/resources/data/superbwarfare/vehicles/mle_1934.json @@ -1,6 +1,7 @@ { "ID": "superbwarfare:mle_1934", "MaxHealth": 350, + "Mass": 100, "DamageModifiers": [ { "Type": "Multiply", @@ -78,7 +79,7 @@ }, { "Type": "Multiply", - "Value": 10, + "Value": 5, "Source": "superbwarfare:vehicle_strike" }, { diff --git a/src/main/resources/data/superbwarfare/vehicles/mortar.json b/src/main/resources/data/superbwarfare/vehicles/mortar.json index a39e656da..e7c9f02e6 100644 --- a/src/main/resources/data/superbwarfare/vehicles/mortar.json +++ b/src/main/resources/data/superbwarfare/vehicles/mortar.json @@ -1,4 +1,5 @@ { "ID": "superbwarfare:mortar", - "MaxHealth": 100 + "MaxHealth": 100, + "Mass": 0.05 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/vehicles/prism_tank.json b/src/main/resources/data/superbwarfare/vehicles/prism_tank.json index 9017a3d97..ccfcc08da 100644 --- a/src/main/resources/data/superbwarfare/vehicles/prism_tank.json +++ b/src/main/resources/data/superbwarfare/vehicles/prism_tank.json @@ -3,6 +3,7 @@ "MaxHealth": 400, "MaxEnergy": 20000000, "UpStep": 2.25, + "Mass": 25, "DamageModifiers": [ { "Type": "Multiply", @@ -85,7 +86,7 @@ }, { "Type": "Multiply", - "Value": 4.5, + "Value": 5, "Source": "superbwarfare:vehicle_strike" }, { diff --git a/src/main/resources/data/superbwarfare/vehicles/speedboat.json b/src/main/resources/data/superbwarfare/vehicles/speedboat.json index 1b35ed33a..464ba2b8f 100644 --- a/src/main/resources/data/superbwarfare/vehicles/speedboat.json +++ b/src/main/resources/data/superbwarfare/vehicles/speedboat.json @@ -2,6 +2,7 @@ "ID": "superbwarfare:speedboat", "MaxHealth": 200, "MaxEnergy": 500000, + "Mass": 0.7, "DamageModifiers": [ { "Type": "Multiply", diff --git a/src/main/resources/data/superbwarfare/vehicles/tom_6.json b/src/main/resources/data/superbwarfare/vehicles/tom_6.json index c6884b0dd..38fbd480a 100644 --- a/src/main/resources/data/superbwarfare/vehicles/tom_6.json +++ b/src/main/resources/data/superbwarfare/vehicles/tom_6.json @@ -3,6 +3,7 @@ "MaxHealth": 40, "MaxEnergy": 100000, "UpStep": 0.5, + "Mass": 0.02, "AllowFreeCam": true, "DamageModifiers": [ { diff --git a/src/main/resources/data/superbwarfare/vehicles/wheel_chair.json b/src/main/resources/data/superbwarfare/vehicles/wheel_chair.json index 65285751f..bc6df2b9e 100644 --- a/src/main/resources/data/superbwarfare/vehicles/wheel_chair.json +++ b/src/main/resources/data/superbwarfare/vehicles/wheel_chair.json @@ -3,6 +3,7 @@ "MaxHealth": 30, "MaxEnergy": 24000, "UpStep": 1.1, + "Mass": 0.03, "DamageModifiers": [ { "Type": "Multiply", diff --git a/src/main/resources/data/superbwarfare/vehicles/yx_100.json b/src/main/resources/data/superbwarfare/vehicles/yx_100.json index 8ec56ea35..a15ea1fb1 100644 --- a/src/main/resources/data/superbwarfare/vehicles/yx_100.json +++ b/src/main/resources/data/superbwarfare/vehicles/yx_100.json @@ -3,6 +3,7 @@ "MaxHealth": 500, "MaxEnergy": 20000000, "UpStep": 2.25, + "Mass": 70, "DamageModifiers": [ { "Type": "Immunity", @@ -33,12 +34,13 @@ "Source": "#superbwarfare:projectile" }, { - "Type": "Immunity", - "Source": "superbwarfare:vehicle_strike" + "Type": "Multiply", + "Value": 0.2 }, { "Type": "Multiply", - "Value": 0.2 + "Value": 2.5, + "Source": "superbwarfare:vehicle_strike" }, { "Type": "Multiply",