调整载具数值平衡
This commit is contained in:
parent
18f0817289
commit
2c971fe2c8
23 changed files with 296 additions and 211 deletions
|
@ -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 {
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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) {
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"Magazine": 1,
|
||||
"Weight": 10,
|
||||
"EmptyReloadTime": 78,
|
||||
"Damage": 300,
|
||||
"ExplosionDamage": 100,
|
||||
"ExplosionRadius": 6
|
||||
"Damage": 450,
|
||||
"ExplosionDamage": 50,
|
||||
"ExplosionRadius": 4
|
||||
}
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Add table
Reference in a new issue