From 2c971fe2c82cfe4a1446a4335ae1168de2bcdf91 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Mon, 27 Jan 2025 02:11:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=BD=BD=E5=85=B7=E6=95=B0?= =?UTF-8?q?=E5=80=BC=E5=B9=B3=E8=A1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 4 + .../config/server/VehicleConfig.java | 20 ++-- .../superbwarfare/entity/ClaymoreEntity.java | 6 +- .../entity/projectile/GunGrenadeEntity.java | 4 +- .../projectile/JavelinMissileEntity.java | 6 +- .../entity/projectile/RgoGrenadeEntity.java | 2 +- .../entity/projectile/RpgRocketEntity.java | 2 +- .../projectile/SmallCannonShellEntity.java | 6 +- .../entity/vehicle/Ah6Entity.java | 66 +++++++++---- .../entity/vehicle/Bmp2Entity.java | 93 +++++++++++++------ .../entity/vehicle/DroneEntity.java | 10 -- .../entity/vehicle/Lav150Entity.java | 66 +++++++++---- .../entity/vehicle/MobileVehicleEntity.java | 6 +- .../entity/vehicle/SpeedboatEntity.java | 74 ++++++++++----- .../entity/vehicle/Tom6Entity.java | 10 -- .../entity/vehicle/VehicleEntity.java | 17 ---- .../entity/vehicle/WheelChairEntity.java | 10 -- .../superbwarfare/tools/CustomExplosion.java | 4 +- .../superbwarfare/tools/ProjectileTool.java | 2 +- .../assets/superbwarfare/geo/bmp2.geo.json | 83 +++++++++-------- .../data/superbwarfare/guns/javelin.json | 6 +- .../data/superbwarfare/guns/rpg.json | 6 +- .../guns/secondary_cataclysm.json | 4 +- 23 files changed, 296 insertions(+), 211 deletions(-) diff --git a/build.gradle b/build.gradle index 7ff6a629c..828c16a66 100644 --- a/build.gradle +++ b/build.gradle @@ -111,6 +111,10 @@ dependencies { implementation fg.deobf("curse.maven:oculus-581495:6020952") implementation fg.deobf("curse.maven:embeddium-908741:5681725") + + implementation fg.deobf("curse.maven:timeless-and-classics-zero-1028108:6069384") + + implementation fg.deobf("curse.maven:create-328085:5838779") } mixin { diff --git a/src/main/java/com/atsuishio/superbwarfare/config/server/VehicleConfig.java b/src/main/java/com/atsuishio/superbwarfare/config/server/VehicleConfig.java index b5e73d2e6..8c568466d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/config/server/VehicleConfig.java +++ b/src/main/java/com/atsuishio/superbwarfare/config/server/VehicleConfig.java @@ -63,7 +63,7 @@ public class VehicleConfig { builder.push("mk_42"); builder.comment("The HealthPoint of MK-42"); - MK42_HP = builder.defineInRange("mk_42_hp", 700, 1, 10000000); + MK42_HP = builder.defineInRange("mk_42_hp", 200, 1, 10000000); builder.comment("The AP shell damage of MK-42"); MK42_AP_DAMAGE = builder.defineInRange("mk_42_ap_damage", 300, 1, 10000000); @@ -88,7 +88,7 @@ public class VehicleConfig { builder.push("mle_1934"); builder.comment("The HealthPoint of MLE-1934"); - MLE1934_HP = builder.defineInRange("mle_1934_hp", 800, 1, 10000000); + MLE1934_HP = builder.defineInRange("mle_1934_hp", 200, 1, 10000000); builder.comment("The AP shell damage of MLE-1934"); MLE1934_AP_DAMAGE = builder.defineInRange("mle_1934_ap_damage", 350, 1, 10000000); @@ -113,7 +113,7 @@ public class VehicleConfig { builder.push("annihilator"); builder.comment("The HealthPoint of Annihilator"); - ANNIHILATOR_HP = builder.defineInRange("annihilator_hp", 4000, 1, 10000000); + ANNIHILATOR_HP = builder.defineInRange("annihilator_hp", 800, 1, 10000000); builder.comment("The energy cost of Annihilator per shoot"); ANNIHILATOR_SHOOT_COST = builder.defineInRange("annihilator_shoot_cost", 2000000, 0, 2147483647); @@ -126,7 +126,7 @@ public class VehicleConfig { builder.push("speedboat"); builder.comment("The HealthPoint of Speedboat"); - SPEEDBOAT_HP = builder.defineInRange("speedboat_hp", 500, 1, 10000000); + SPEEDBOAT_HP = builder.defineInRange("speedboat_hp", 200, 1, 10000000); builder.comment("The energy cost of Speedboat per tick"); SPEEDBOAT_ENERGY_COST = builder.defineInRange("speedboat_energy_cost", 16, 0, 2147483647); @@ -142,7 +142,7 @@ public class VehicleConfig { builder.push("ah_6"); builder.comment("The HealthPoint of AH-6"); - AH_6_HP = builder.defineInRange("ah_6_hp", 500, 1, 10000000); + AH_6_HP = builder.defineInRange("ah_6_hp", 250, 1, 10000000); builder.comment("The min energy cost of AH-6 per tick"); AH_6_MIN_ENERGY_COST = builder.defineInRange("ah_6_min_energy_cost", 64, 0, 2147483647); @@ -170,7 +170,7 @@ public class VehicleConfig { builder.push("lav_150"); builder.comment("The HealthPoint of Lav_150"); - LAV_150_HP = builder.defineInRange("lav_150_hp", 850, 1, 10000000); + LAV_150_HP = builder.defineInRange("lav_150_hp", 250, 1, 10000000); builder.comment("The energy cost of Lav_150 per tick"); LAV_150_ENERGY_COST = builder.defineInRange("lav_150_energy_cost", 64, 0, 2147483647); @@ -179,7 +179,7 @@ public class VehicleConfig { LAV_150_MAX_ENERGY = builder.defineInRange("lav_150_max_energy", 3000000, 0, 2147483647); builder.comment("The cannon damage of Lav_150"); - LAV_150_CANNON_DAMAGE = builder.defineInRange("lav_150_cannon_damage", 40, 1, 10000000); + LAV_150_CANNON_DAMAGE = builder.defineInRange("lav_150_cannon_damage", 45, 1, 10000000); builder.comment("The rocket explosion damage of Lav_150"); LAV_150_CANNON_EXPLOSION_DAMAGE = builder.defineInRange("lav_150_cannon_explosion_damage", 12, 1, 10000000); @@ -192,7 +192,7 @@ public class VehicleConfig { builder.push("tom_6"); builder.comment("The HealthPoint of Tom_6"); - TOM_6_HP = builder.defineInRange("tom_6_hp", 50, 1, 10000000); + TOM_6_HP = builder.defineInRange("tom_6_hp", 40, 1, 10000000); builder.comment("The energy cost of Tom_6 per tick"); TOM_6_ENERGY_COST = builder.defineInRange("tom_6_energy_cost", 16, 0, 2147483647); @@ -211,7 +211,7 @@ public class VehicleConfig { builder.push("bmp_2"); builder.comment("The HealthPoint of Bmp_2"); - BMP_2_HP = builder.defineInRange("bmp_2_hp", 1000, 1, 10000000); + BMP_2_HP = builder.defineInRange("bmp_2_hp", 300, 1, 10000000); builder.comment("The energy cost of Bmp_2 per tick"); BMP_2_ENERGY_COST = builder.defineInRange("bmp_2_energy_cost", 64, 0, 2147483647); @@ -226,7 +226,7 @@ public class VehicleConfig { BMP_2_CANNON_EXPLOSION_DAMAGE = builder.defineInRange("bmp_2_cannon_explosion_damage", 15, 1, 10000000); builder.comment("The rocket explosion radius of Bmp_2"); - BMP_2_CANNON_EXPLOSION_RADIUS = builder.defineInRange("bmp_2_cannon_explosion_radius", 4d, 1d, 10000000d); + BMP_2_CANNON_EXPLOSION_RADIUS = builder.defineInRange("bmp_2_cannon_explosion_radius", 3.2d, 1d, 10000000d); builder.pop(); } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/ClaymoreEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/ClaymoreEntity.java index 015eca347..0a8cb2958 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/ClaymoreEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/ClaymoreEntity.java @@ -197,7 +197,7 @@ public class ClaymoreEntity extends Entity implements GeoEntity, AnimatedEntity, ModUtils.queueServerWork(1, () -> { if (!level.isClientSide()) - triggerExplode(target); + triggerExplode(); }); } } @@ -241,10 +241,10 @@ public class ClaymoreEntity extends Entity implements GeoEntity, AnimatedEntity, } } - private void triggerExplode(Entity target) { + private void triggerExplode() { CustomExplosion explosion = new CustomExplosion(this.level(), this, ModDamageTypes.causeMineDamage(this.level().registryAccess(), this.getOwner()), 140f, - target.getX(), target.getY(), target.getZ(), 4f, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(1); + this.getX(), this.getEyeY(), this.getZ(), 4f, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(1); explosion.explode(); net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); explosion.finalizeExplosion(false); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/GunGrenadeEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/GunGrenadeEntity.java index cce5fb8eb..f1bf76bad 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/GunGrenadeEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/GunGrenadeEntity.java @@ -98,9 +98,9 @@ public class GunGrenadeEntity extends ThrowableItemProjectile implements GeoEnti } if (entity instanceof Monster monster) { - monster.hurt(ModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this, this.getOwner()), 1.2f * this.damage * damageMultiplier); + monster.hurt(ModDamageTypes.causeCannonFireDamage(this.level().registryAccess(), this, this.getOwner()), 1.2f * this.damage * damageMultiplier); } else { - entity.hurt(ModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this, this.getOwner()), damage); + entity.hurt(ModDamageTypes.causeCannonFireDamage(this.level().registryAccess(), this, this.getOwner()), damage); } if (entity instanceof LivingEntity) { diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/JavelinMissileEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/JavelinMissileEntity.java index 23c99620c..a0e0794b9 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/JavelinMissileEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/JavelinMissileEntity.java @@ -263,9 +263,9 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo this, this.getOwner()), explosion_damage, - result.getLocation().x, - result.getLocation().y, - result.getLocation().z, + this.getX(), + this.getEyeY(), + this.getZ(), explosion_radius, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP). setDamageMultiplier(this.monsterMultiplier); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RgoGrenadeEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RgoGrenadeEntity.java index 3e00fb8e8..86910922d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RgoGrenadeEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RgoGrenadeEntity.java @@ -113,7 +113,7 @@ public class RgoGrenadeEntity extends ThrowableItemProjectile implements GeoEnti public static void causeRgoExplode(ThrowableItemProjectile projectile, @Nullable DamageSource source, Entity entity, float damage, float radius, float damageMultiplier) { CustomExplosion explosion = new CustomExplosion(projectile.level(), projectile, source, damage, - entity.getX(), entity.getY(), entity.getZ(), radius, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(damageMultiplier); + projectile.getX(), projectile.getY(), projectile.getZ(), radius, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(damageMultiplier); explosion.explode(); net.minecraftforge.event.ForgeEventFactory.onExplosionStart(projectile.level(), explosion); explosion.finalizeExplosion(false); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RpgRocketEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RpgRocketEntity.java index 4db31816c..e287ce52c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RpgRocketEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RpgRocketEntity.java @@ -178,7 +178,7 @@ public class RpgRocketEntity extends ThrowableItemProjectile implements GeoEntit public static void causeRpgExplode(ThrowableItemProjectile projectile, @Nullable DamageSource source, Entity target, float damage, float radius, float damageMultiplier) { CustomExplosion explosion = new CustomExplosion(projectile.level(), projectile, source, damage, - target.getX(), target.getY(), target.getZ(), radius, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(damageMultiplier); + projectile.getX(), projectile.getY(), projectile.getZ(), radius, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(damageMultiplier); explosion.explode(); net.minecraftforge.event.ForgeEventFactory.onExplosionStart(projectile.level(), explosion); explosion.finalizeExplosion(false); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/SmallCannonShellEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/SmallCannonShellEntity.java index 1e8abacbf..dca740caa 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/SmallCannonShellEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/SmallCannonShellEntity.java @@ -118,9 +118,9 @@ public class SmallCannonShellEntity extends ThrowableItemProjectile implements G this, this.getOwner()), explosionDamage, - result.getLocation().x, - result.getLocation().y, - result.getLocation().z, + this.getX(), + this.getEyeY(), + this.getZ(), explosionRadius, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP). setDamageMultiplier(1.25f); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java index b77c75978..bc9827e28 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Ah6Entity.java @@ -27,6 +27,7 @@ import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.damagesource.DamageTypes; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; @@ -130,23 +131,62 @@ public class Ah6Entity extends ContainerMobileEntity implements GeoEntity, IHeli if (this.level() instanceof ServerLevel serverLevel) { sendParticle(serverLevel, ModParticleTypes.FIRE_STAR.get(), this.getX(), this.getY() + 2.5, this.getZ(), 4, 0.2, 0.2, 0.2, 0.2, false); } + + if (source.is(DamageTypes.ARROW)) { + amount *= 0.1f; + } + if (source.is(DamageTypes.TRIDENT)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.MOB_ATTACK)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.MOB_ATTACK_NO_AGGRO)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.MOB_PROJECTILE)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.PLAYER_ATTACK)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.LAVA)) { + amount *= 2f; + } + if (source.is(DamageTypes.EXPLOSION)) { + amount *= 3.5f; + } + if (source.is(DamageTypes.PLAYER_EXPLOSION)) { + amount *= 3.5f; + } + + if (source.is(ModDamageTypes.CUSTOM_EXPLOSION)) { + amount *= 0.5f; + } if (source.is(ModDamageTypes.PROJECTILE_BOOM)) { - amount *= 1f; + amount *= 0.5f; + } + if (source.is(ModDamageTypes.MINE)) { + amount *= 0.5f; + } + if (source.is(ModDamageTypes.LUNGE_MINE)) { + amount *= 0.5f; } if (source.is(ModDamageTypes.CANNON_FIRE)) { - amount *= 1.5f; + amount *= 0.6f; } - if (source.is(ModDamageTypes.GUN_FIRE)) { - amount *= 0.3f; + if (source.is(ModTags.DamageTypes.PROJECTILE)) { + amount *= 0.08f; } - if (source.is(ModDamageTypes.GUN_FIRE_ABSOLUTE)) { - amount *= 0.7f; + if (source.is(ModTags.DamageTypes.PROJECTILE_ABSOLUTE)) { + amount *= 0.5f; } if (source.is(ModDamageTypes.VEHICLE_STRIKE)) { - amount *= 4f; + amount *= 5f; } + this.level().playSound(null, this.getOnPos(), ModSounds.HIT.get(), SoundSource.PLAYERS, 1, 1); - this.hurt(0.75f * Math.max(amount - 5, 0)); + this.hurt(Math.max(amount - 2, 0)); return true; } @@ -651,16 +691,6 @@ public class Ah6Entity extends ContainerMobileEntity implements GeoEntity, IHeli return super.getDismountLocationForPassenger(passenger); } - @Override - public float ignoreExplosionHorizontalKnockBack() { - return -0.5f; - } - - @Override - public float ignoreExplosionVerticalKnockBack() { - return -0.9f; - } - @Override public boolean isDriver(Player player) { return player == this.getFirstPassenger(); 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 04a30b0a3..2e4fd789e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Bmp2Entity.java @@ -27,6 +27,7 @@ import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.damagesource.DamageTypes; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; @@ -135,25 +136,64 @@ public class Bmp2Entity extends ContainerMobileEntity implements GeoEntity, ICha if (this.level() instanceof ServerLevel serverLevel) { sendParticle(serverLevel, ModParticleTypes.FIRE_STAR.get(), this.getX(), this.getY() + 2.5, this.getZ(), 4, 0.2, 0.2, 0.2, 0.2, false); } - if (source.is(ModDamageTypes.PROJECTILE_BOOM)) { - amount *= 1.2f; + + if (source.is(DamageTypes.ARROW)) { + amount *= 0.1f; } - if (source.is(ModDamageTypes.CANNON_FIRE)) { - amount *= 2f; + if (source.is(DamageTypes.TRIDENT)) { + amount *= 0.1f; } - if (source.is(ModDamageTypes.GUN_FIRE)) { - amount *= 0.2f; - } - if (source.is(ModDamageTypes.GUN_FIRE_ABSOLUTE)) { + if (source.is(DamageTypes.MOB_ATTACK)) { amount *= 0.3f; } - if (source.is(ModDamageTypes.VEHICLE_STRIKE)) { + if (source.is(DamageTypes.MOB_ATTACK_NO_AGGRO)) { + amount *= 0.15f; + } + if (source.is(DamageTypes.MOB_PROJECTILE)) { + amount *= 0.15f; + } + if (source.is(DamageTypes.PLAYER_ATTACK)) { + amount *= 0.1f; + + } + if (source.is(DamageTypes.LAVA)) { + amount *= 2.5f; + } + if (source.is(DamageTypes.EXPLOSION)) { + amount *= 2f; + } + + if (source.is(DamageTypes.PLAYER_EXPLOSION)) { + amount *= 2f; + } + + if (source.is(ModDamageTypes.CUSTOM_EXPLOSION)) { amount *= 0.4f; } + if (source.is(ModDamageTypes.PROJECTILE_BOOM)) { + amount *= 0.4f; + } + if (source.is(ModDamageTypes.MINE)) { + amount *= 0.14f; + } + if (source.is(ModDamageTypes.LUNGE_MINE)) { + amount *= 0.14f; + } + if (source.is(ModDamageTypes.CANNON_FIRE)) { + amount *= 0.3f; + } + if (source.is(ModTags.DamageTypes.PROJECTILE)) { + amount *= 0.02f; + } + if (source.is(ModTags.DamageTypes.PROJECTILE_ABSOLUTE)) { + amount *= 0.14f; + } + if (source.is(ModDamageTypes.VEHICLE_STRIKE)) { + amount *= 1.7f; + } this.level().playSound(null, this.getOnPos(), ModSounds.HIT.get(), SoundSource.PLAYERS, 1, 1); - this.hurt(0.5f * Math.max(amount - 13, 0)); - + this.hurt(Math.max(amount - 8, 0)); return true; } @@ -434,12 +474,17 @@ public class Bmp2Entity extends ContainerMobileEntity implements GeoEntity, ICha if (backInputDown) { this.entityData.set(POWER, Math.max(this.entityData.get(POWER) - (this.entityData.get(POWER) > 0 ? 0.016f : 0.0024f), -0.16f)); - } - - if (rightInputDown) { - this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) - 0.1f); - } else if (this.leftInputDown) { - this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) + 0.1f); + if (rightInputDown) { + this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) + 0.1f); + } else if (this.leftInputDown) { + this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) - 0.1f); + } + } else { + if (rightInputDown) { + this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) - 0.1f); + } else if (this.leftInputDown) { + this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) + 0.1f); + } } if (this.forwardInputDown || this.backInputDown) { @@ -461,8 +506,8 @@ public class Bmp2Entity extends ContainerMobileEntity implements GeoEntity, ICha this.setLeftWheelRot((float) ((this.getLeftWheelRot() - 1.25 * s0) + Mth.clamp(0.75f * this.entityData.get(DELTA_ROT), -5f, 5f))); this.setRightWheelRot((float) ((this.getRightWheelRot() - 1.25 * s0) - Mth.clamp(0.75f * this.entityData.get(DELTA_ROT), -5f, 5f))); - this.entityData.set(TRACK_L, (float) ((entityData.get(TRACK_L) - 1.7 * Math.PI * s0) + Mth.clamp(0.75f * Math.PI * this.entityData.get(DELTA_ROT), -5f, 5f))); - this.entityData.set(TRACK_R, (float) ((entityData.get(TRACK_R) - 1.7 * Math.PI * s0) - Mth.clamp(0.75f * Math.PI * this.entityData.get(DELTA_ROT), -5f, 5f))); + this.entityData.set(TRACK_L, (float) ((entityData.get(TRACK_L) - 1.9 * Math.PI * s0) + Mth.clamp(0.4f * Math.PI * this.entityData.get(DELTA_ROT), -5f, 5f))); + this.entityData.set(TRACK_R, (float) ((entityData.get(TRACK_R) - 1.9 * Math.PI * s0) - Mth.clamp(0.4f * Math.PI * this.entityData.get(DELTA_ROT), -5f, 5f))); if (this.isInWater() || onGround()) { @@ -662,16 +707,6 @@ public class Bmp2Entity extends ContainerMobileEntity implements GeoEntity, ICha return this.cache; } - @Override - public float ignoreExplosionHorizontalKnockBack() { - return -0.9f; - } - - @Override - public float ignoreExplosionVerticalKnockBack() { - return -0.9f; - } - @Override public int getMaxEnergy() { return MAX_ENERGY; diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/DroneEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/DroneEntity.java index affdf7442..06cb733ad 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/DroneEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/DroneEntity.java @@ -598,16 +598,6 @@ public class DroneEntity extends MobileVehicleEntity implements GeoEntity { return this.cache; } - @Override - public float ignoreExplosionHorizontalKnockBack() { - return 0; - } - - @Override - public float ignoreExplosionVerticalKnockBack() { - return 0; - } - @Override public void onRemovedFromWorld() { if (this.level() instanceof ServerLevel serverLevel) { 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 4a9495e44..83bec8466 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Lav150Entity.java @@ -27,6 +27,7 @@ import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.damagesource.DamageTypes; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; @@ -133,25 +134,62 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC if (this.level() instanceof ServerLevel serverLevel) { sendParticle(serverLevel, ModParticleTypes.FIRE_STAR.get(), this.getX(), this.getY() + 2.5, this.getZ(), 4, 0.2, 0.2, 0.2, 0.2, false); } - if (source.is(ModDamageTypes.PROJECTILE_BOOM)) { - amount *= 1.5f; + + if (source.is(DamageTypes.ARROW)) { + amount *= 0.1f; } - if (source.is(ModDamageTypes.CANNON_FIRE)) { + if (source.is(DamageTypes.TRIDENT)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.MOB_ATTACK)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.MOB_ATTACK_NO_AGGRO)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.MOB_PROJECTILE)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.PLAYER_ATTACK)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.LAVA)) { amount *= 2.5f; } - if (source.is(ModDamageTypes.GUN_FIRE)) { + if (source.is(DamageTypes.EXPLOSION)) { + amount *= 2f; + } + if (source.is(DamageTypes.PLAYER_EXPLOSION)) { + amount *= 2f; + } + + if (source.is(ModDamageTypes.CUSTOM_EXPLOSION)) { amount *= 0.4f; } - if (source.is(ModDamageTypes.GUN_FIRE_ABSOLUTE)) { - amount *= 0.6f; + if (source.is(ModDamageTypes.PROJECTILE_BOOM)) { + amount *= 0.4f; + } + if (source.is(ModDamageTypes.MINE)) { + amount *= 0.15f; + } + if (source.is(ModDamageTypes.LUNGE_MINE)) { + amount *= 0.15f; + } + if (source.is(ModDamageTypes.CANNON_FIRE)) { + amount *= 0.3f; + } + if (source.is(ModTags.DamageTypes.PROJECTILE)) { + amount *= 0.05f; + } + if (source.is(ModTags.DamageTypes.PROJECTILE_ABSOLUTE)) { + amount *= 0.17f; } if (source.is(ModDamageTypes.VEHICLE_STRIKE)) { - amount *= 0.7f; + amount *= 2f; } this.level().playSound(null, this.getOnPos(), ModSounds.HIT.get(), SoundSource.PLAYERS, 1, 1); - this.hurt(0.5f * Math.max(amount - 10, 0)); - + this.hurt(Math.max(amount - 7, 0)); return true; } @@ -679,16 +717,6 @@ public class Lav150Entity extends ContainerMobileEntity implements GeoEntity, IC return this.cache; } - @Override - public float ignoreExplosionHorizontalKnockBack() { - return -0.9f; - } - - @Override - public float ignoreExplosionVerticalKnockBack() { - return -0.9f; - } - @Override public int getMaxEnergy() { return MAX_ENERGY; diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/MobileVehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/MobileVehicleEntity.java index cd1c8e717..ae09038c3 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/MobileVehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/MobileVehicleEntity.java @@ -86,10 +86,10 @@ public class MobileVehicleEntity extends EnergyVehicleEntity { if ((verticalCollision)) { if (this instanceof IHelicopterEntity) { - this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, this.getFirstPassenger() == null ? this : this.getFirstPassenger()), (float) (100 * ((lastTickSpeed - 0.3) * (lastTickSpeed - 0.3)))); + this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, this.getFirstPassenger() == null ? this : this.getFirstPassenger()), (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, this.getFirstPassenger() == null ? this : this.getFirstPassenger()), (float) (240 * ((Mth.abs((float) lastTickVerticalSpeed) - 0.6) * (lastTickSpeed - 0.4) * (lastTickSpeed - 0.4)))); + this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, this.getFirstPassenger() == null ? this : this.getFirstPassenger()), (float) (48 * ((Mth.abs((float) lastTickVerticalSpeed) - 0.6) * (lastTickSpeed - 0.4) * (lastTickSpeed - 0.4)))); if (!this.level().isClientSide) { this.level().playSound(null, this, ModSounds.VEHICLE_STRIKE.get(), this.getSoundSource(), 1, 1); } @@ -98,7 +98,7 @@ public class MobileVehicleEntity extends EnergyVehicleEntity { } if (this.horizontalCollision) { - this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, this.getFirstPassenger() == null ? this : this.getFirstPassenger()), (float) (180 * ((lastTickSpeed - 0.4) * (lastTickSpeed - 0.4)))); + this.hurt(ModDamageTypes.causeVehicleStrikeDamage(this.level().registryAccess(), this, this.getFirstPassenger() == null ? this : this.getFirstPassenger()), (float) (36 * ((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/SpeedboatEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/SpeedboatEntity.java index 388ee09f0..b8ae9ac31 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/SpeedboatEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/SpeedboatEntity.java @@ -25,6 +25,7 @@ import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.damagesource.DamageTypes; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; @@ -121,21 +122,62 @@ public class SpeedboatEntity extends ContainerMobileEntity implements GeoEntity, if (this.level() instanceof ServerLevel serverLevel) { sendParticle(serverLevel, ModParticleTypes.FIRE_STAR.get(), this.getX(), this.getY() + 2.5, this.getZ(), 4, 0.2, 0.2, 0.2, 0.2, false); } - if (source.is(ModDamageTypes.PROJECTILE_BOOM)) { + + if (source.is(DamageTypes.ARROW)) { + amount *= 0.1f; + } + if (source.is(DamageTypes.TRIDENT)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.MOB_ATTACK)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.MOB_ATTACK_NO_AGGRO)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.MOB_PROJECTILE)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.PLAYER_ATTACK)) { + amount *= 0.2f; + } + if (source.is(DamageTypes.LAVA)) { amount *= 2f; } - if (source.is(ModDamageTypes.CANNON_FIRE)) { - amount *= 3f; + if (source.is(DamageTypes.EXPLOSION)) { + amount *= 3.5f; } - if (source.is(ModDamageTypes.GUN_FIRE)) { - amount *= 0.3f; + if (source.is(DamageTypes.PLAYER_EXPLOSION)) { + amount *= 3.5f; } - if (source.is(ModDamageTypes.GUN_FIRE_ABSOLUTE)) { - amount *= 0.7f; - } - this.level().playSound(null, this.getOnPos(), ModSounds.HIT.get(), SoundSource.PLAYERS, 1, 1); - this.hurt(0.5f * Math.max(amount - 3, 0)); + if (source.is(ModDamageTypes.CUSTOM_EXPLOSION)) { + amount *= 0.5f; + } + if (source.is(ModDamageTypes.PROJECTILE_BOOM)) { + amount *= 0.5f; + } + if (source.is(ModDamageTypes.MINE)) { + amount *= 0.5f; + } + if (source.is(ModDamageTypes.LUNGE_MINE)) { + amount *= 0.5f; + } + if (source.is(ModDamageTypes.CANNON_FIRE)) { + amount *= 0.6f; + } + if (source.is(ModTags.DamageTypes.PROJECTILE)) { + amount *= 0.08f; + } + if (source.is(ModTags.DamageTypes.PROJECTILE_ABSOLUTE)) { + amount *= 0.5f; + } + if (source.is(ModDamageTypes.VEHICLE_STRIKE)) { + amount *= 5f; + } + + this.level().playSound(null, this.getOnPos(), ModSounds.HIT.get(), SoundSource.PLAYERS, 1, 1); + this.hurt(Math.max(amount - 2, 0)); return true; } @@ -230,7 +272,7 @@ public class SpeedboatEntity extends ContainerMobileEntity implements GeoEntity, .headShot(2f) .zoom(false); - projectile.bypassArmorRate(0.9f); + projectile.bypassArmorRate(1f); projectile.setPos(this.xo - this.getViewVector(1).scale(0.54).x - this.getDeltaMovement().x, this.yo + 3.0, this.zo - this.getViewVector(1).scale(0.54).z - this.getDeltaMovement().z); projectile.shoot(player, player.getLookAngle().x, player.getLookAngle().y + (zooming() ? 0.002f : -0.009f), player.getLookAngle().z, 20, (float) 0.4); @@ -475,16 +517,6 @@ public class SpeedboatEntity extends ContainerMobileEntity implements GeoEntity, return this.cache; } - @Override - public float ignoreExplosionHorizontalKnockBack() { - return -0.5f; - } - - @Override - public float ignoreExplosionVerticalKnockBack() { - return -0.9f; - } - @Override public int getMaxPassengers() { return 5; diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Tom6Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Tom6Entity.java index 4945da639..3a5da3cb7 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Tom6Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Tom6Entity.java @@ -331,16 +331,6 @@ public class Tom6Entity extends MobileVehicleEntity implements GeoEntity { this.discard(); } - @Override - public float ignoreExplosionHorizontalKnockBack() { - return -0.2f; - } - - @Override - public float ignoreExplosionVerticalKnockBack() { - return -0.3f; - } - @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/VehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/VehicleEntity.java index 30a0116e8..c812b8cb2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/VehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/VehicleEntity.java @@ -147,27 +147,18 @@ public class VehicleEntity extends Entity { return false; if (source.is(DamageTypes.DROWN)) return false; - if (source.is(DamageTypes.LIGHTNING_BOLT)) - return false; - if (source.is(DamageTypes.FALLING_ANVIL)) - return false; if (source.is(DamageTypes.DRAGON_BREATH)) return false; if (source.is(DamageTypes.WITHER)) return false; if (source.is(DamageTypes.WITHER_SKULL)) return false; - if (source.is(DamageTypes.ON_FIRE)) - return false; - if (source.is(DamageTypes.IN_FIRE)) - return false; if (source.is(ModDamageTypes.VEHICLE_STRIKE)) { amount -= 20; crash = true; } else { crash = false; } - if (source.getEntity() != null) { this.entityData.set(LAST_ATTACKER_UUID, source.getEntity().getStringUUID()); } @@ -323,14 +314,6 @@ public class VehicleEntity extends Entity { public void travel() { } - public float ignoreExplosionHorizontalKnockBack() { - return -1f; - } - - public float ignoreExplosionVerticalKnockBack() { - return -1f; - } - // From Immersive_Aircraft public Matrix4f getVehicleTransform() { Matrix4f transform = new Matrix4f(); 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 4ad11cd44..0e3048e35 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/WheelChairEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/WheelChairEntity.java @@ -277,16 +277,6 @@ public class WheelChairEntity extends MobileVehicleEntity implements GeoEntity { this.discard(); } - @Override - public float ignoreExplosionHorizontalKnockBack() { - return -0.2f; - } - - @Override - public float ignoreExplosionVerticalKnockBack() { - return -0.3f; - } - @Override public void registerControllers(AnimatableManager.ControllerRegistrar data) { } diff --git a/src/main/java/com/atsuishio/superbwarfare/tools/CustomExplosion.java b/src/main/java/com/atsuishio/superbwarfare/tools/CustomExplosion.java index 1fc50de8f..45ce1dc0e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/tools/CustomExplosion.java +++ b/src/main/java/com/atsuishio/superbwarfare/tools/CustomExplosion.java @@ -200,12 +200,10 @@ public class CustomExplosion extends Explosion { d11 = damagePercent; } - xDistance *= d11; yDistance *= d11; - zDistance *= d11; if (entity instanceof VehicleEntity vehicle && !bullet) { - Vec3 knockbackVec = new Vec3(vehicle.ignoreExplosionHorizontalKnockBack() * xDistance, vehicle.ignoreExplosionVerticalKnockBack() * yDistance, vehicle.ignoreExplosionHorizontalKnockBack() * zDistance); + Vec3 knockbackVec = new Vec3(0, -0.2 * yDistance, 0); vehicle.setDeltaMovement(vehicle.getDeltaMovement().add(knockbackVec)); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/tools/ProjectileTool.java b/src/main/java/com/atsuishio/superbwarfare/tools/ProjectileTool.java index 01ddf7d47..751b1f340 100644 --- a/src/main/java/com/atsuishio/superbwarfare/tools/ProjectileTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/tools/ProjectileTool.java @@ -13,7 +13,7 @@ public class ProjectileTool { public static void causeCustomExplode(ThrowableItemProjectile projectile, @Nullable DamageSource source, Entity target, float damage, float radius, float damageMultiplier) { CustomExplosion explosion = new CustomExplosion(projectile.level(), projectile, source, damage, - target.getX(), target.getY(), target.getZ(), radius, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(damageMultiplier); + projectile.getX(), projectile.getEyeY(), projectile.getZ(), radius, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(damageMultiplier); explosion.explode(); net.minecraftforge.event.ForgeEventFactory.onExplosionStart(projectile.level(), explosion); explosion.finalizeExplosion(false); diff --git a/src/main/resources/assets/superbwarfare/geo/bmp2.geo.json b/src/main/resources/assets/superbwarfare/geo/bmp2.geo.json index 7fdb722a7..7c61e20b5 100644 --- a/src/main/resources/assets/superbwarfare/geo/bmp2.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/bmp2.geo.json @@ -8909,8 +8909,25 @@ { "name": "trackL", "parent": "root", - "pivot": [30, 24.43117, 54.91481], + "pivot": [30, 24.43117, 54.91481] + }, + { + "name": "bone21", + "parent": "trackL", + "pivot": [30, 20.09532, -60.28029], "cubes": [ + { + "origin": [26.9, 20.70298, -61.02558], + "size": [6.2, 1.1, 6.4], + "pivot": [30, 20.27286, -60.10428], + "rotation": [45.25, 0, 0], + "uv": { + "east": {"uv": [93, 61], "uv_size": [-1, 1]}, + "west": {"uv": [63, 92], "uv_size": [-1, 1]}, + "up": {"uv": [84, 65], "uv_size": [2, -1]}, + "down": {"uv": [84, 65], "uv_size": [2, 1]} + } + }, { "origin": [26.9, 24.13117, -57.33519], "size": [6.2, 1.1, 114.5], @@ -8948,9 +8965,9 @@ } }, { - "origin": [26.9, 11.49318, 55.14941], - "size": [6.2, 1.1, 17.75], - "pivot": [30, 11.03655, 55.75669], + "origin": [26.9, 11.49316, 53.24941], + "size": [6.2, 1.1, 19.15], + "pivot": [30, 11.03653, 55.25669], "rotation": [-147.75, 0, 0], "uv": { "east": {"uv": [92, 61], "uv_size": [1, 1]}, @@ -8960,8 +8977,8 @@ } }, { - "origin": [26.9, 2.58572, 40.8747], - "size": [6.2, 1.1, 83.25], + "origin": [26.9, 2.58572, 41.3747], + "size": [6.2, 1.1, 82.75], "pivot": [30, 2.12908, 41.48198], "rotation": [180, 0, 0], "uv": { @@ -8973,7 +8990,7 @@ }, { "origin": [26.9, 12.03349, 51.02174], - "size": [6.2, 1.1, 6.15], + "size": [6.2, 1.1, 5.15], "pivot": [30, 11.60338, 56.50044], "rotation": [-135.25, 0, 0], "uv": { @@ -9018,18 +9035,6 @@ "up": {"uv": [84, 65], "uv_size": [2, -1]}, "down": {"uv": [84, 65], "uv_size": [2, 1]} } - }, - { - "origin": [26.9, 20.70298, -61.02558], - "size": [6.2, 1.1, 6.4], - "pivot": [30, 20.27286, -60.10428], - "rotation": [45.25, 0, 0], - "uv": { - "east": {"uv": [93, 61], "uv_size": [-1, 1]}, - "west": {"uv": [63, 92], "uv_size": [-1, 1]}, - "up": {"uv": [84, 65], "uv_size": [2, -1]}, - "down": {"uv": [84, 65], "uv_size": [2, 1]} - } } ] }, @@ -10339,10 +10344,22 @@ "pivot": [-30, 24.43117, 54.91481] }, { - "name": "bone21", + "name": "bone45", "parent": "trackR", - "pivot": [-30, 20.27286, -60.10428], + "pivot": [-30, 20.09532, -60.28029], "cubes": [ + { + "origin": [-33.1, 20.70298, -61.02558], + "size": [6.2, 1.1, 6.4], + "pivot": [-30, 20.27286, -60.10428], + "rotation": [45.25, 0, 0], + "uv": { + "east": {"uv": [62, 92], "uv_size": [1, 1]}, + "west": {"uv": [92, 61], "uv_size": [1, 1]}, + "up": {"uv": [86, 65], "uv_size": [-2, -1]}, + "down": {"uv": [86, 65], "uv_size": [-2, 1]} + } + }, { "origin": [-33.1, 24.13117, -57.33519], "size": [6.2, 1.1, 114.5], @@ -10380,9 +10397,9 @@ } }, { - "origin": [-33.1, 11.49318, 55.14941], - "size": [6.2, 1.1, 17.75], - "pivot": [-30, 11.03655, 55.75669], + "origin": [-33.1, 11.49316, 53.24941], + "size": [6.2, 1.1, 19.15], + "pivot": [-30, 11.03653, 55.25669], "rotation": [-147.75, 0, 0], "uv": { "east": {"uv": [63, 92], "uv_size": [-1, 1]}, @@ -10392,8 +10409,8 @@ } }, { - "origin": [-33.1, 2.58572, 40.8747], - "size": [6.2, 1.1, 83.25], + "origin": [-33.1, 2.58572, 41.3747], + "size": [6.2, 1.1, 82.75], "pivot": [-30, 2.12908, 41.48198], "rotation": [180, 0, 0], "uv": { @@ -10405,7 +10422,7 @@ }, { "origin": [-33.1, 12.03349, 51.02174], - "size": [6.2, 1.1, 6.15], + "size": [6.2, 1.1, 5.15], "pivot": [-30, 11.60338, 56.50044], "rotation": [-135.25, 0, 0], "uv": { @@ -10450,18 +10467,6 @@ "up": {"uv": [86, 65], "uv_size": [-2, -1]}, "down": {"uv": [86, 65], "uv_size": [-2, 1]} } - }, - { - "origin": [-33.1, 20.70298, -61.02558], - "size": [6.2, 1.1, 6.4], - "pivot": [-30, 20.27286, -60.10428], - "rotation": [45.25, 0, 0], - "uv": { - "east": {"uv": [62, 92], "uv_size": [1, 1]}, - "west": {"uv": [92, 61], "uv_size": [1, 1]}, - "up": {"uv": [86, 65], "uv_size": [-2, -1]}, - "down": {"uv": [86, 65], "uv_size": [-2, 1]} - } } ] }, diff --git a/src/main/resources/data/superbwarfare/guns/javelin.json b/src/main/resources/data/superbwarfare/guns/javelin.json index 55e458af2..3db439e9d 100644 --- a/src/main/resources/data/superbwarfare/guns/javelin.json +++ b/src/main/resources/data/superbwarfare/guns/javelin.json @@ -4,7 +4,7 @@ "Magazine": 1, "Weight": 10, "EmptyReloadTime": 78, - "Damage": 300, - "ExplosionDamage": 100, - "ExplosionRadius": 6 + "Damage": 450, + "ExplosionDamage": 50, + "ExplosionRadius": 4 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/rpg.json b/src/main/resources/data/superbwarfare/guns/rpg.json index 650a5fa0f..cf7cc6f98 100644 --- a/src/main/resources/data/superbwarfare/guns/rpg.json +++ b/src/main/resources/data/superbwarfare/guns/rpg.json @@ -2,9 +2,9 @@ "Spread": 5, "RecoilX": 0.008, "RecoilY": 0.018, - "Damage": 200, - "ExplosionDamage": 150, - "ExplosionRadius": 10, + "Damage": 250, + "ExplosionDamage": 130, + "ExplosionRadius": 7, "Velocity": 4, "Magazine": 1, "Weight": 7, diff --git a/src/main/resources/data/superbwarfare/guns/secondary_cataclysm.json b/src/main/resources/data/superbwarfare/guns/secondary_cataclysm.json index 89f2c38ea..1d7c584c5 100644 --- a/src/main/resources/data/superbwarfare/guns/secondary_cataclysm.json +++ b/src/main/resources/data/superbwarfare/guns/secondary_cataclysm.json @@ -2,9 +2,9 @@ "Spread": 1.5, "RecoilX": 0.004, "RecoilY": 0.023, - "Damage": 50, + "Damage": 30, "ExplosionDamage": 50, - "ExplosionRadius": 7, + "ExplosionRadius": 5, "Velocity": 3.75, "Magazine": 8, "Weight": 9,