提取所有载具的伤害免疫

This commit is contained in:
Light_Quanta 2025-05-20 09:50:33 +08:00
parent cd6bc52270
commit 45156fe81c
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
26 changed files with 1172 additions and 381 deletions

View file

@ -3,12 +3,13 @@ package com.atsuishio.superbwarfare.entity.vehicle;
import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.projectile.GunGrenadeEntity;
import com.atsuishio.superbwarfare.entity.projectile.MortarShellEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.*; import com.atsuishio.superbwarfare.entity.vehicle.base.*;
import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier; import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier;
import com.atsuishio.superbwarfare.entity.vehicle.weapon.*; import com.atsuishio.superbwarfare.entity.vehicle.weapon.*;
import com.atsuishio.superbwarfare.init.*; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModParticleTypes;
import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage; import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage;
import com.atsuishio.superbwarfare.tools.*; import com.atsuishio.superbwarfare.tools.*;
import com.mojang.math.Axis; import com.mojang.math.Axis;
@ -30,7 +31,6 @@ import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MoverType; import net.minecraft.world.entity.MoverType;
@ -152,33 +152,7 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity
@Override @Override
public DamageModifier getDamageModifier() { public DamageModifier getDamageModifier() {
return super.getDamageModifier() return super.getDamageModifier()
.multiply(getHealth() > 0.1f ? 0.4f : 0.05f) .custom((source, damage) -> getSourceAngle(source, 0.25f) * damage * (getHealth() > 0.1f ? 0.4f : 0.05f));
.multiply(1.5f, DamageTypes.ARROW)
.multiply(1.5f, DamageTypes.TRIDENT)
.multiply(2.5f, DamageTypes.MOB_ATTACK)
.multiply(2f, DamageTypes.MOB_ATTACK_NO_AGGRO)
.multiply(1.5f, DamageTypes.MOB_PROJECTILE)
.multiply(12.5f, DamageTypes.LAVA)
.multiply(6f, DamageTypes.EXPLOSION)
.multiply(6f, DamageTypes.PLAYER_EXPLOSION)
.multiply(2.4f, ModDamageTypes.CUSTOM_EXPLOSION)
.multiply(2f, ModDamageTypes.PROJECTILE_BOOM)
.multiply(0.75f, ModDamageTypes.MINE)
.multiply(1.5f, ModDamageTypes.CANNON_FIRE)
.multiply(0.25f, ModTags.DamageTypes.PROJECTILE)
.multiply(0.85f, ModTags.DamageTypes.PROJECTILE_ABSOLUTE)
.multiply(15f, ModDamageTypes.VEHICLE_STRIKE)
.custom((source, damage) -> getSourceAngle(source, 0.25f) * damage)
.custom((source, damage) -> {
if (source.getDirectEntity() instanceof MortarShellEntity) {
return 1.25f * damage;
}
if (source.getDirectEntity() instanceof GunGrenadeEntity) {
return 1.5f * damage;
}
return damage;
})
.reduce(7);
} }
@Override @Override

View file

@ -3,7 +3,7 @@ package com.atsuishio.superbwarfare.entity.vehicle;
import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.projectile.*; import com.atsuishio.superbwarfare.entity.projectile.AerialBombEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.ContainerMobileVehicleEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.ContainerMobileVehicleEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.HelicopterEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.HelicopterEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.ThirdPersonCameraPosition; import com.atsuishio.superbwarfare.entity.vehicle.base.ThirdPersonCameraPosition;
@ -15,7 +15,6 @@ import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon;
import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.init.ModTags;
import com.atsuishio.superbwarfare.tools.Ammo; import com.atsuishio.superbwarfare.tools.Ammo;
import com.atsuishio.superbwarfare.tools.CustomExplosion; import com.atsuishio.superbwarfare.tools.CustomExplosion;
import com.atsuishio.superbwarfare.tools.InventoryTool; import com.atsuishio.superbwarfare.tools.InventoryTool;
@ -33,7 +32,6 @@ import net.minecraft.sounds.SoundEvent;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
@ -130,45 +128,13 @@ public class Ah6Entity extends ContainerMobileVehicleEntity implements GeoEntity
@Override @Override
public DamageModifier getDamageModifier() { public DamageModifier getDamageModifier() {
return super.getDamageModifier() return super.getDamageModifier()
.multiply(getHealth() > 0.1f ? 0.7f : 0.05f)
.multiply(0.2f, DamageTypes.ARROW)
.multiply(0.4f, DamageTypes.TRIDENT)
.multiply(0.4f, DamageTypes.MOB_ATTACK)
.multiply(0.4f, DamageTypes.MOB_ATTACK_NO_AGGRO)
.multiply(0.4f, DamageTypes.MOB_PROJECTILE)
.multiply(0.4f, DamageTypes.PLAYER_ATTACK)
.multiply(4, DamageTypes.LAVA)
.multiply(4, DamageTypes.EXPLOSION)
.multiply(4, DamageTypes.PLAYER_EXPLOSION)
.multiply(0.8f, ModDamageTypes.CANNON_FIRE)
.multiply(0.16f, ModTags.DamageTypes.PROJECTILE)
.multiply(10, ModDamageTypes.VEHICLE_STRIKE)
.custom((source, damage) -> { .custom((source, damage) -> {
if (source.getDirectEntity() instanceof CannonShellEntity) {
return 0.9f * damage;
}
if (source.getDirectEntity() instanceof SmallCannonShellEntity) {
return 1.3f * damage;
}
if (source.getDirectEntity() instanceof GunGrenadeEntity) {
return 2.2f * damage;
}
if (source.getDirectEntity() instanceof AerialBombEntity) { if (source.getDirectEntity() instanceof AerialBombEntity) {
return 2f * damage; damage *= 2;
}
if (source.getDirectEntity() instanceof RgoGrenadeEntity) {
return 6f * damage;
}
if (source.getDirectEntity() instanceof HandGrenadeEntity) {
return 5f * damage;
}
if (source.getDirectEntity() instanceof MortarShellEntity) {
return 3f * damage;
} }
damage *= getHealth() > 0.1f ? 0.7f : 0.05f;
return damage; return damage;
}) });
.reduce(2);
} }
@Override @Override

View file

@ -5,9 +5,6 @@ import com.atsuishio.superbwarfare.component.ModDataComponents;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.projectile.AerialBombEntity; import com.atsuishio.superbwarfare.entity.projectile.AerialBombEntity;
import com.atsuishio.superbwarfare.entity.projectile.C4Entity;
import com.atsuishio.superbwarfare.entity.projectile.CannonShellEntity;
import com.atsuishio.superbwarfare.entity.projectile.GunGrenadeEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.CannonEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.CannonEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.EnergyVehicleEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.EnergyVehicleEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.ThirdPersonCameraPosition; import com.atsuishio.superbwarfare.entity.vehicle.base.ThirdPersonCameraPosition;
@ -17,7 +14,6 @@ import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon;
import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.init.ModTags;
import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage; import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage;
import com.atsuishio.superbwarfare.tools.*; import com.atsuishio.superbwarfare.tools.*;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
@ -35,7 +31,6 @@ import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
@ -202,39 +197,13 @@ public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity,
@Override @Override
public DamageModifier getDamageModifier() { public DamageModifier getDamageModifier() {
return super.getDamageModifier() return super.getDamageModifier()
.multiply(0.1f)
.immuneTo(DamageTypes.ARROW)
.immuneTo(DamageTypes.TRIDENT)
.immuneTo(DamageTypes.MOB_ATTACK)
.immuneTo(DamageTypes.MOB_ATTACK_NO_AGGRO)
.immuneTo(DamageTypes.MOB_PROJECTILE)
.immuneTo(DamageTypes.PLAYER_ATTACK)
.immuneTo(ModTags.DamageTypes.PROJECTILE)
.immuneTo(ModDamageTypes.VEHICLE_STRIKE)
.multiply(0.7f, DamageTypes.EXPLOSION)
.multiply(0.2f, ModDamageTypes.CUSTOM_EXPLOSION)
.multiply(0.2f, ModDamageTypes.PROJECTILE_BOOM)
.multiply(0.2f, ModDamageTypes.MINE)
.multiply(0.24f, ModDamageTypes.LUNGE_MINE)
.multiply(0.3f, ModDamageTypes.CANNON_FIRE)
.multiply(0.04f, ModTags.DamageTypes.PROJECTILE_ABSOLUTE)
.custom((source, damage) -> getSourceAngle(source, 3) * damage) .custom((source, damage) -> getSourceAngle(source, 3) * damage)
.custom((source, damage) -> { .custom((source, damage) -> {
if (source.getDirectEntity() instanceof C4Entity) {
return 10f * damage;
}
if (source.getDirectEntity() instanceof AerialBombEntity) { if (source.getDirectEntity() instanceof AerialBombEntity) {
return 8f * damage; return 8f * damage;
} }
if (source.getDirectEntity() instanceof GunGrenadeEntity) {
return 3f * damage;
}
if (source.getDirectEntity() instanceof CannonShellEntity) {
return 3f * damage;
}
return damage; return damage;
}) });
.reduce(12);
} }
@Override @Override

View file

@ -4,8 +4,6 @@ import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.projectile.AerialBombEntity; import com.atsuishio.superbwarfare.entity.projectile.AerialBombEntity;
import com.atsuishio.superbwarfare.entity.projectile.GunGrenadeEntity;
import com.atsuishio.superbwarfare.entity.projectile.MortarShellEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.*; import com.atsuishio.superbwarfare.entity.vehicle.base.*;
import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier; import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier;
import com.atsuishio.superbwarfare.entity.vehicle.weapon.ProjectileWeapon; import com.atsuishio.superbwarfare.entity.vehicle.weapon.ProjectileWeapon;
@ -15,7 +13,6 @@ import com.atsuishio.superbwarfare.entity.vehicle.weapon.WgMissileWeapon;
import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.init.ModTags;
import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage; import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage;
import com.atsuishio.superbwarfare.tools.Ammo; import com.atsuishio.superbwarfare.tools.Ammo;
import com.atsuishio.superbwarfare.tools.CustomExplosion; import com.atsuishio.superbwarfare.tools.CustomExplosion;
@ -36,7 +33,6 @@ import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvent;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
@ -145,37 +141,13 @@ public class Bmp2Entity extends ContainerMobileVehicleEntity implements GeoEntit
@Override @Override
public DamageModifier getDamageModifier() { public DamageModifier getDamageModifier() {
return super.getDamageModifier() return super.getDamageModifier()
.multiply(0.2f)
.multiply(1.5f, DamageTypes.ARROW)
.multiply(1.5f, DamageTypes.TRIDENT)
.multiply(2.5f, DamageTypes.MOB_ATTACK)
.multiply(2f, DamageTypes.MOB_ATTACK_NO_AGGRO)
.multiply(1.5f, DamageTypes.MOB_PROJECTILE)
.multiply(12.5f, DamageTypes.LAVA)
.multiply(6f, DamageTypes.EXPLOSION)
.multiply(6f, DamageTypes.PLAYER_EXPLOSION)
.multiply(2f, ModDamageTypes.CUSTOM_EXPLOSION)
.multiply(2f, ModDamageTypes.PROJECTILE_BOOM)
.multiply(0.7f, ModDamageTypes.MINE)
.multiply(0.9f, ModDamageTypes.LUNGE_MINE)
.multiply(1.5f, ModDamageTypes.CANNON_FIRE)
.multiply(0.1f, ModTags.DamageTypes.PROJECTILE)
.multiply(0.7f, ModTags.DamageTypes.PROJECTILE_ABSOLUTE)
.multiply(8.5f, ModDamageTypes.VEHICLE_STRIKE)
.custom((source, damage) -> getSourceAngle(source, 0.4f) * damage) .custom((source, damage) -> getSourceAngle(source, 0.4f) * damage)
.custom((source, damage) -> { .custom((source, damage) -> {
if (source.getDirectEntity() instanceof AerialBombEntity) { if (source.getDirectEntity() instanceof AerialBombEntity) {
return 2f * damage; return 2f * damage;
} }
if (source.getDirectEntity() instanceof MortarShellEntity) {
return 1.1f * damage;
}
if (source.getDirectEntity() instanceof GunGrenadeEntity) {
return 1.5f * damage;
}
return damage; return damage;
}) });
.reduce(8);
} }
@Override @Override

View file

@ -4,7 +4,6 @@ import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.TargetEntity; import com.atsuishio.superbwarfare.entity.TargetEntity;
import com.atsuishio.superbwarfare.entity.projectile.GunGrenadeEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.AutoAimable; import com.atsuishio.superbwarfare.entity.vehicle.base.AutoAimable;
import com.atsuishio.superbwarfare.entity.vehicle.base.CannonEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.CannonEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.ContainerMobileVehicleEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.ContainerMobileVehicleEntity;
@ -14,7 +13,6 @@ import com.atsuishio.superbwarfare.entity.vehicle.weapon.SmallCannonShellWeapon;
import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon; import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon;
import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModTags;
import com.atsuishio.superbwarfare.item.ContainerBlockItem; import com.atsuishio.superbwarfare.item.ContainerBlockItem;
import com.atsuishio.superbwarfare.tools.*; import com.atsuishio.superbwarfare.tools.*;
import com.mojang.math.Axis; import com.mojang.math.Axis;
@ -31,7 +29,6 @@ import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.*; import net.minecraft.world.entity.*;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.Projectile; import net.minecraft.world.entity.projectile.Projectile;
@ -180,30 +177,7 @@ public class Hpj11Entity extends ContainerMobileVehicleEntity implements GeoEnti
@Override @Override
public DamageModifier getDamageModifier() { public DamageModifier getDamageModifier() {
return super.getDamageModifier() return super.getDamageModifier()
.multiply(0.6f) .custom((source, damage) -> getSourceAngle(source, 1f) * damage);
.multiply(1.5f, DamageTypes.ARROW)
.multiply(1.5f, DamageTypes.TRIDENT)
.multiply(2.5f, DamageTypes.MOB_ATTACK)
.multiply(2f, DamageTypes.MOB_ATTACK_NO_AGGRO)
.multiply(1.5f, DamageTypes.MOB_PROJECTILE)
.multiply(12.5f, DamageTypes.LAVA)
.multiply(6f, DamageTypes.EXPLOSION)
.multiply(6f, DamageTypes.PLAYER_EXPLOSION)
.multiply(1.4f, ModDamageTypes.CUSTOM_EXPLOSION)
.multiply(1f, ModDamageTypes.PROJECTILE_BOOM)
.multiply(0.75f, ModDamageTypes.MINE)
.multiply(1.5f, ModDamageTypes.CANNON_FIRE)
.multiply(0.25f, ModTags.DamageTypes.PROJECTILE)
.multiply(0.85f, ModTags.DamageTypes.PROJECTILE_ABSOLUTE)
.multiply(10f, ModDamageTypes.VEHICLE_STRIKE)
.custom((source, damage) -> getSourceAngle(source, 1f) * damage)
.custom((source, damage) -> {
if (source.getDirectEntity() instanceof GunGrenadeEntity) {
return 1.5f * damage;
}
return damage;
})
.reduce(8);
} }
@Override @Override

View file

@ -4,8 +4,10 @@ import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.TargetEntity; import com.atsuishio.superbwarfare.entity.TargetEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.AutoAimable; import com.atsuishio.superbwarfare.entity.vehicle.base.AutoAimable;
import com.atsuishio.superbwarfare.entity.vehicle.base.EnergyVehicleEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.EnergyVehicleEntity;
import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.*; import com.atsuishio.superbwarfare.init.ModEntities;
import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.item.ContainerBlockItem; import com.atsuishio.superbwarfare.item.ContainerBlockItem;
import com.atsuishio.superbwarfare.tools.CustomExplosion; import com.atsuishio.superbwarfare.tools.CustomExplosion;
import com.atsuishio.superbwarfare.tools.EntityFindUtil; import com.atsuishio.superbwarfare.tools.EntityFindUtil;
@ -24,7 +26,6 @@ import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.*; import net.minecraft.world.entity.*;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.Projectile; import net.minecraft.world.entity.projectile.Projectile;
@ -127,28 +128,6 @@ public class LaserTowerEntity extends EnergyVehicleEntity implements GeoEntity,
return this.entityData.get(OWNER_UUID).orElse(null); return this.entityData.get(OWNER_UUID).orElse(null);
} }
@Override
public DamageModifier getDamageModifier() {
return super.getDamageModifier()
.multiply(0.1f, DamageTypes.ARROW)
.multiply(0.2f, DamageTypes.TRIDENT)
.multiply(0.2f, DamageTypes.MOB_ATTACK)
.multiply(0.2f, DamageTypes.MOB_ATTACK_NO_AGGRO)
.multiply(0.4f, DamageTypes.MOB_PROJECTILE)
.multiply(0.4f, DamageTypes.PLAYER_ATTACK)
.multiply(1.5f, DamageTypes.EXPLOSION)
.multiply(1.5f, DamageTypes.PLAYER_EXPLOSION)
.multiply(0.5f, ModDamageTypes.CUSTOM_EXPLOSION)
.multiply(0.5f, ModDamageTypes.PROJECTILE_BOOM)
.multiply(0.5f, ModDamageTypes.MINE)
.multiply(0.5f, ModDamageTypes.LUNGE_MINE)
.multiply(0.6f, ModDamageTypes.CANNON_FIRE)
.multiply(0.5f, ModTags.DamageTypes.PROJECTILE)
.multiply(0.8f, ModTags.DamageTypes.PROJECTILE_ABSOLUTE)
.multiply(2f, ModDamageTypes.VEHICLE_STRIKE)
.reduce(1);
}
@Override @Override
public @NotNull InteractionResult interact(Player player, @NotNull InteractionHand hand) { public @NotNull InteractionResult interact(Player player, @NotNull InteractionHand hand) {
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();

View file

@ -4,8 +4,6 @@ import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.projectile.AerialBombEntity; import com.atsuishio.superbwarfare.entity.projectile.AerialBombEntity;
import com.atsuishio.superbwarfare.entity.projectile.GunGrenadeEntity;
import com.atsuishio.superbwarfare.entity.projectile.MortarShellEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.ContainerMobileVehicleEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.ContainerMobileVehicleEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.LandArmorEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.LandArmorEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.ThirdPersonCameraPosition; import com.atsuishio.superbwarfare.entity.vehicle.base.ThirdPersonCameraPosition;
@ -17,7 +15,6 @@ import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon;
import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.init.ModTags;
import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage; import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage;
import com.atsuishio.superbwarfare.tools.Ammo; import com.atsuishio.superbwarfare.tools.Ammo;
import com.atsuishio.superbwarfare.tools.CustomExplosion; import com.atsuishio.superbwarfare.tools.CustomExplosion;
@ -35,7 +32,6 @@ import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvent;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
@ -125,36 +121,13 @@ public class Lav150Entity extends ContainerMobileVehicleEntity implements GeoEnt
@Override @Override
public DamageModifier getDamageModifier() { public DamageModifier getDamageModifier() {
return super.getDamageModifier() return super.getDamageModifier()
.multiply(0.2f)
.multiply(1.5f, DamageTypes.ARROW)
.multiply(1.5f, DamageTypes.TRIDENT)
.multiply(2.5f, DamageTypes.MOB_ATTACK)
.multiply(2f, DamageTypes.MOB_ATTACK_NO_AGGRO)
.multiply(1.5f, DamageTypes.MOB_PROJECTILE)
.multiply(12.5f, DamageTypes.LAVA)
.multiply(6f, DamageTypes.EXPLOSION)
.multiply(6f, DamageTypes.PLAYER_EXPLOSION)
.multiply(2.4f, ModDamageTypes.CUSTOM_EXPLOSION)
.multiply(2f, ModDamageTypes.PROJECTILE_BOOM)
.multiply(0.75f, ModDamageTypes.MINE)
.multiply(1.5f, ModDamageTypes.CANNON_FIRE)
.multiply(0.25f, ModTags.DamageTypes.PROJECTILE)
.multiply(0.85f, ModTags.DamageTypes.PROJECTILE_ABSOLUTE)
.multiply(10f, ModDamageTypes.VEHICLE_STRIKE)
.custom((source, damage) -> getSourceAngle(source, 0.25f) * damage) .custom((source, damage) -> getSourceAngle(source, 0.25f) * damage)
.custom((source, damage) -> { .custom((source, damage) -> {
if (source.getDirectEntity() instanceof AerialBombEntity) { if (source.getDirectEntity() instanceof AerialBombEntity) {
return 3f * damage; return 3f * damage;
} }
if (source.getDirectEntity() instanceof MortarShellEntity) {
return 1.25f * damage;
}
if (source.getDirectEntity() instanceof GunGrenadeEntity) {
return 1.5f * damage;
}
return damage; return damage;
}) });
.reduce(7);
} }
@Override @Override

View file

@ -4,7 +4,6 @@ import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.component.ModDataComponents; import com.atsuishio.superbwarfare.component.ModDataComponents;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.projectile.GunGrenadeEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.CannonEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.CannonEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.ThirdPersonCameraPosition; import com.atsuishio.superbwarfare.entity.vehicle.base.ThirdPersonCameraPosition;
import com.atsuishio.superbwarfare.entity.vehicle.base.VehicleEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.VehicleEntity;
@ -14,7 +13,6 @@ import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon;
import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.init.ModTags;
import com.atsuishio.superbwarfare.item.common.ammo.CannonShellItem; import com.atsuishio.superbwarfare.item.common.ammo.CannonShellItem;
import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage; import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage;
import com.atsuishio.superbwarfare.tools.*; import com.atsuishio.superbwarfare.tools.*;
@ -30,7 +28,6 @@ import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MoverType; import net.minecraft.world.entity.MoverType;
@ -182,30 +179,7 @@ public class Mk42Entity extends VehicleEntity implements GeoEntity, CannonEntity
@Override @Override
public DamageModifier getDamageModifier() { public DamageModifier getDamageModifier() {
return super.getDamageModifier() return super.getDamageModifier()
.multiply(0.2f) .custom((source, damage) -> getSourceAngle(source, 1f) * damage);
.multiply(1.5f, DamageTypes.ARROW)
.multiply(1.5f, DamageTypes.TRIDENT)
.multiply(2.5f, DamageTypes.MOB_ATTACK)
.multiply(2f, DamageTypes.MOB_ATTACK_NO_AGGRO)
.multiply(1.5f, DamageTypes.MOB_PROJECTILE)
.multiply(12.5f, DamageTypes.LAVA)
.multiply(6f, DamageTypes.EXPLOSION)
.multiply(6f, DamageTypes.PLAYER_EXPLOSION)
.multiply(2.4f, ModDamageTypes.CUSTOM_EXPLOSION)
.multiply(2f, ModDamageTypes.PROJECTILE_BOOM)
.multiply(0.75f, ModDamageTypes.MINE)
.multiply(1.5f, ModDamageTypes.CANNON_FIRE)
.multiply(0.25f, ModTags.DamageTypes.PROJECTILE)
.multiply(0.85f, ModTags.DamageTypes.PROJECTILE_ABSOLUTE)
.multiply(10f, ModDamageTypes.VEHICLE_STRIKE)
.custom((source, damage) -> getSourceAngle(source, 1f) * damage)
.custom((source, damage) -> {
if (source.getDirectEntity() instanceof GunGrenadeEntity) {
return 1.5f * damage;
}
return damage;
})
.reduce(8);
} }
@Override @Override

View file

@ -4,7 +4,6 @@ import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.component.ModDataComponents; import com.atsuishio.superbwarfare.component.ModDataComponents;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.projectile.GunGrenadeEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.CannonEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.CannonEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.ThirdPersonCameraPosition; import com.atsuishio.superbwarfare.entity.vehicle.base.ThirdPersonCameraPosition;
import com.atsuishio.superbwarfare.entity.vehicle.base.VehicleEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.VehicleEntity;
@ -14,7 +13,6 @@ import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon;
import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.init.ModTags;
import com.atsuishio.superbwarfare.item.common.ammo.CannonShellItem; import com.atsuishio.superbwarfare.item.common.ammo.CannonShellItem;
import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage; import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage;
import com.atsuishio.superbwarfare.tools.*; import com.atsuishio.superbwarfare.tools.*;
@ -30,7 +28,6 @@ import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MoverType; import net.minecraft.world.entity.MoverType;
@ -209,30 +206,7 @@ public class Mle1934Entity extends VehicleEntity implements GeoEntity, CannonEnt
@Override @Override
public DamageModifier getDamageModifier() { public DamageModifier getDamageModifier() {
return super.getDamageModifier() return super.getDamageModifier()
.multiply(0.2f) .custom((source, damage) -> getSourceAngle(source, 1f) * damage);
.multiply(1.5f, DamageTypes.ARROW)
.multiply(1.5f, DamageTypes.TRIDENT)
.multiply(2.5f, DamageTypes.MOB_ATTACK)
.multiply(2f, DamageTypes.MOB_ATTACK_NO_AGGRO)
.multiply(1.5f, DamageTypes.MOB_PROJECTILE)
.multiply(12.5f, DamageTypes.LAVA)
.multiply(6f, DamageTypes.EXPLOSION)
.multiply(6f, DamageTypes.PLAYER_EXPLOSION)
.multiply(2.4f, ModDamageTypes.CUSTOM_EXPLOSION)
.multiply(2f, ModDamageTypes.PROJECTILE_BOOM)
.multiply(0.75f, ModDamageTypes.MINE)
.multiply(1.5f, ModDamageTypes.CANNON_FIRE)
.multiply(0.25f, ModTags.DamageTypes.PROJECTILE)
.multiply(0.85f, ModTags.DamageTypes.PROJECTILE_ABSOLUTE)
.multiply(10f, ModDamageTypes.VEHICLE_STRIKE)
.custom((source, damage) -> getSourceAngle(source, 1f) * damage)
.custom((source, damage) -> {
if (source.getDirectEntity() instanceof GunGrenadeEntity) {
return 1.5f * damage;
}
return damage;
})
.reduce(8);
} }
@Override @Override

View file

@ -4,14 +4,12 @@ import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.projectile.AerialBombEntity; import com.atsuishio.superbwarfare.entity.projectile.AerialBombEntity;
import com.atsuishio.superbwarfare.entity.projectile.GunGrenadeEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.*; import com.atsuishio.superbwarfare.entity.vehicle.base.*;
import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier; import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier;
import com.atsuishio.superbwarfare.entity.vehicle.weapon.LaserWeapon; import com.atsuishio.superbwarfare.entity.vehicle.weapon.LaserWeapon;
import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon; import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon;
import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.init.ModTags;
import com.atsuishio.superbwarfare.network.message.receive.ClientIndicatorMessage; import com.atsuishio.superbwarfare.network.message.receive.ClientIndicatorMessage;
import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage; import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage;
import com.atsuishio.superbwarfare.tools.*; import com.atsuishio.superbwarfare.tools.*;
@ -35,7 +33,6 @@ import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundSource; import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MoverType; import net.minecraft.world.entity.MoverType;
@ -125,34 +122,13 @@ public class PrismTankEntity extends ContainerMobileVehicleEntity implements Geo
@Override @Override
public DamageModifier getDamageModifier() { public DamageModifier getDamageModifier() {
return super.getDamageModifier() return super.getDamageModifier()
.multiply(0.2f)
.multiply(1.5f, DamageTypes.ARROW)
.multiply(1.5f, DamageTypes.TRIDENT)
.multiply(2.5f, DamageTypes.MOB_ATTACK)
.multiply(2f, DamageTypes.MOB_ATTACK_NO_AGGRO)
.multiply(1.5f, DamageTypes.MOB_PROJECTILE)
.multiply(12.5f, DamageTypes.LAVA)
.multiply(6f, DamageTypes.EXPLOSION)
.multiply(6f, DamageTypes.PLAYER_EXPLOSION)
.multiply(2f, ModDamageTypes.CUSTOM_EXPLOSION)
.multiply(2f, ModDamageTypes.PROJECTILE_BOOM)
.multiply(0.7f, ModDamageTypes.MINE)
.multiply(0.9f, ModDamageTypes.LUNGE_MINE)
.multiply(1.5f, ModDamageTypes.CANNON_FIRE)
.multiply(0.1f, ModTags.DamageTypes.PROJECTILE)
.multiply(0.7f, ModTags.DamageTypes.PROJECTILE_ABSOLUTE)
.multiply(4.5f, ModDamageTypes.VEHICLE_STRIKE)
.custom((source, damage) -> getSourceAngle(source, 0.4f) * damage) .custom((source, damage) -> getSourceAngle(source, 0.4f) * damage)
.custom((source, damage) -> { .custom((source, damage) -> {
if (source.getDirectEntity() instanceof AerialBombEntity) { if (source.getDirectEntity() instanceof AerialBombEntity) {
return 2f * damage; return 2f * damage;
} }
if (source.getDirectEntity() instanceof GunGrenadeEntity) {
return 1.5f * damage;
}
return damage; return damage;
}) });
.reduce(9);
} }
@Override @Override

View file

@ -3,7 +3,7 @@ package com.atsuishio.superbwarfare.entity.vehicle;
import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.projectile.*; import com.atsuishio.superbwarfare.entity.projectile.AerialBombEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.*; import com.atsuishio.superbwarfare.entity.vehicle.base.*;
import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier; import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier;
import com.atsuishio.superbwarfare.entity.vehicle.weapon.ProjectileWeapon; import com.atsuishio.superbwarfare.entity.vehicle.weapon.ProjectileWeapon;
@ -11,7 +11,6 @@ import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon;
import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.init.ModTags;
import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage; import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage;
import com.atsuishio.superbwarfare.tools.Ammo; import com.atsuishio.superbwarfare.tools.Ammo;
import com.atsuishio.superbwarfare.tools.CustomExplosion; import com.atsuishio.superbwarfare.tools.CustomExplosion;
@ -26,7 +25,6 @@ import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvent;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
@ -103,44 +101,12 @@ public class SpeedboatEntity extends ContainerMobileVehicleEntity implements Geo
@Override @Override
public DamageModifier getDamageModifier() { public DamageModifier getDamageModifier() {
return super.getDamageModifier() return super.getDamageModifier()
.multiply(0.5f)
.multiply(0.2f, DamageTypes.ARROW)
.multiply(0.4f, DamageTypes.TRIDENT)
.multiply(0.4f, DamageTypes.MOB_ATTACK)
.multiply(0.4f, DamageTypes.MOB_ATTACK_NO_AGGRO)
.multiply(0.4f, DamageTypes.MOB_PROJECTILE)
.multiply(0.4f, DamageTypes.PLAYER_ATTACK)
.multiply(4, DamageTypes.LAVA)
.multiply(4, DamageTypes.EXPLOSION)
.multiply(4, DamageTypes.PLAYER_EXPLOSION)
.multiply(0.8f, ModDamageTypes.CANNON_FIRE)
.multiply(0.16f, ModTags.DamageTypes.PROJECTILE)
.multiply(2, ModDamageTypes.VEHICLE_STRIKE)
.custom((source, damage) -> { .custom((source, damage) -> {
if (source.getDirectEntity() instanceof CannonShellEntity) {
return 0.9f * damage;
}
if (source.getDirectEntity() instanceof SmallCannonShellEntity) {
return 1.3f * damage;
}
if (source.getDirectEntity() instanceof GunGrenadeEntity) {
return 2.2f * damage;
}
if (source.getDirectEntity() instanceof AerialBombEntity) { if (source.getDirectEntity() instanceof AerialBombEntity) {
return 2f * damage; return 2f * damage;
} }
if (source.getDirectEntity() instanceof RgoGrenadeEntity) {
return 6f * damage;
}
if (source.getDirectEntity() instanceof HandGrenadeEntity) {
return 5f * damage;
}
if (source.getDirectEntity() instanceof MortarShellEntity) {
return 4f * damage;
}
return damage; return damage;
}) });
.reduce(2);
} }
@Override @Override

View file

@ -4,7 +4,6 @@ import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.vehicle.base.MobileVehicleEntity; import com.atsuishio.superbwarfare.entity.vehicle.base.MobileVehicleEntity;
import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier;
import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.tools.CustomExplosion; import com.atsuishio.superbwarfare.tools.CustomExplosion;
@ -67,12 +66,6 @@ public class WheelChairEntity extends MobileVehicleEntity implements GeoEntity {
} }
} }
@Override
public DamageModifier getDamageModifier() {
return super.getDamageModifier()
.multiply(2, ModDamageTypes.VEHICLE_STRIKE);
}
@Override @Override
public void addAdditionalSaveData(CompoundTag compound) { public void addAdditionalSaveData(CompoundTag compound) {
super.addAdditionalSaveData(compound); super.addAdditionalSaveData(compound);

View file

@ -3,7 +3,8 @@ package com.atsuishio.superbwarfare.entity.vehicle;
import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.entity.projectile.*; import com.atsuishio.superbwarfare.entity.projectile.AerialBombEntity;
import com.atsuishio.superbwarfare.entity.projectile.SwarmDroneEntity;
import com.atsuishio.superbwarfare.entity.vehicle.base.*; import com.atsuishio.superbwarfare.entity.vehicle.base.*;
import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier; import com.atsuishio.superbwarfare.entity.vehicle.damage.DamageModifier;
import com.atsuishio.superbwarfare.entity.vehicle.weapon.CannonShellWeapon; import com.atsuishio.superbwarfare.entity.vehicle.weapon.CannonShellWeapon;
@ -13,7 +14,6 @@ import com.atsuishio.superbwarfare.entity.vehicle.weapon.VehicleWeapon;
import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModDamageTypes;
import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.init.ModTags;
import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage; import com.atsuishio.superbwarfare.network.message.receive.ShakeClientMessage;
import com.atsuishio.superbwarfare.tools.*; import com.atsuishio.superbwarfare.tools.*;
import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.GlStateManager;
@ -39,7 +39,6 @@ import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundSource; import net.minecraft.sounds.SoundSource;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;
import net.minecraft.world.damagesource.DamageTypes;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MoverType; import net.minecraft.world.entity.MoverType;
@ -212,45 +211,13 @@ public class Yx100Entity extends ContainerMobileVehicleEntity implements GeoEnti
@Override @Override
public DamageModifier getDamageModifier() { public DamageModifier getDamageModifier() {
return super.getDamageModifier() return super.getDamageModifier()
.immuneTo(DamageTypes.ARROW)
.immuneTo(DamageTypes.TRIDENT)
.immuneTo(DamageTypes.MOB_ATTACK)
.immuneTo(DamageTypes.MOB_ATTACK_NO_AGGRO)
.immuneTo(DamageTypes.MOB_PROJECTILE)
.immuneTo(DamageTypes.PLAYER_ATTACK)
.immuneTo(ModTags.DamageTypes.PROJECTILE)
.immuneTo(ModDamageTypes.VEHICLE_STRIKE)
.multiply(0.2f)
.multiply(2f, DamageTypes.EXPLOSION)
.multiply(0.75f, ModDamageTypes.CUSTOM_EXPLOSION)
.multiply(0.75f, ModDamageTypes.PROJECTILE_BOOM)
.multiply(0.5f, ModDamageTypes.MINE)
.multiply(0.5f, ModDamageTypes.LUNGE_MINE)
.multiply(1.5f, ModDamageTypes.CANNON_FIRE)
.multiply(0.15f, ModTags.DamageTypes.PROJECTILE_ABSOLUTE)
.custom((source, damage) -> getSourceAngle(source, 1f) * damage) .custom((source, damage) -> getSourceAngle(source, 1f) * damage)
.custom((source, damage) -> { .custom((source, damage) -> {
if (source.getDirectEntity() instanceof AerialBombEntity) { if (source.getDirectEntity() instanceof AerialBombEntity) {
return 3f * damage; return 3f * damage;
} }
if (source.getDirectEntity() instanceof SmallCannonShellEntity) {
return 0.375f * damage;
}
if (source.getDirectEntity() instanceof C4Entity) {
return 4f * damage;
}
if (source.getDirectEntity() instanceof RpgRocketEntity) {
return 1.5f * damage;
}
if (source.getDirectEntity() instanceof GunGrenadeEntity) {
return 2f * damage;
}
if (source.getDirectEntity() instanceof MortarShellEntity) {
return 2f * damage;
}
return damage; return damage;
}) });
.reduce(9);
} }
@Override @Override

View file

@ -3,5 +3,96 @@
"MaxHealth": 350, "MaxHealth": 350,
"MaxEnergy": 10000000, "MaxEnergy": 10000000,
"UpStep": 0.5, "UpStep": 0.5,
"allowFreeCam": true "allowFreeCam": true,
"DamageModifiers": [
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:arrow"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:trident"
},
{
"Type": "Multiply",
"Value": 2.5,
"Source": "minecraft:mob_attack"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "minecraft:mob_attack_no_aggro"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:mob_projectile"
},
{
"Type": "Multiply",
"Value": 12.5,
"Source": "minecraft:lava"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:explosion"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:player_explosion"
},
{
"Type": "Multiply",
"Value": 2.4,
"Source": "superbwarfare:custom_explosion"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "superbwarfare:projectile_boom"
},
{
"Type": "Multiply",
"Value": 0.75,
"Source": "superbwarfare:mine"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "superbwarfare:cannon_fire"
},
{
"Type": "Multiply",
"Value": 0.25,
"Source": "#superbwarfare:projectile"
},
{
"Type": "Multiply",
"Value": 0.85,
"Source": "#superbwarfare:projectile_absolute"
},
{
"Type": "Multiply",
"Value": 15,
"Source": "superbwarfare:vehicle_strike"
},
{
"Type": "Multiply",
"Value": 1.25,
"Source": "@superbwarfare:mortar_shell"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "@superbwarfare:gun_grenade"
},
{
"Type": "Reduce",
"Value": 7
}
]
} }

View file

@ -3,5 +3,101 @@
"MaxHealth": 250, "MaxHealth": 250,
"MaxEnergy": 5000000, "MaxEnergy": 5000000,
"UpStep": 1.1, "UpStep": 1.1,
"allowFreeCam": true "allowFreeCam": true,
"DamageModifiers": [
{
"Type": "Multiply",
"Value": 0.2,
"Source": "minecraft:arrow"
},
{
"Type": "Multiply",
"Value": 0.4,
"Source": "minecraft:trident"
},
{
"Type": "Multiply",
"Value": 0.4,
"Source": "minecraft:mob_attack"
},
{
"Type": "Multiply",
"Value": 0.4,
"Source": "minecraft:mob_attack_no_aggro"
},
{
"Type": "Multiply",
"Value": 0.4,
"Source": "minecraft:mob_projectile"
},
{
"Type": "Multiply",
"Value": 0.4,
"Source": "minecraft:player_attack"
},
{
"Type": "Multiply",
"Value": 4,
"Source": "minecraft:lava"
},
{
"Type": "Multiply",
"Value": 4,
"Source": "minecraft:explosion"
},
{
"Type": "Multiply",
"Value": 4,
"Source": "minecraft:player_explosion"
},
{
"Type": "Multiply",
"Value": 0.8,
"Source": "superbwarfare:cannon_fire"
},
{
"Type": "Multiply",
"Value": 0.16,
"Source": "#superbwarfare:projectile"
},
{
"Type": "Multiply",
"Value": 10,
"Source": "superbwarfare:vehicle_strike"
},
{
"Type": "Multiply",
"Value": 0.9,
"Source": "@superbwarfare:cannon_shell"
},
{
"Type": "Multiply",
"Value": 1.3,
"Source": "@superbwarfare:small_cannon_shell"
},
{
"Type": "Multiply",
"Value": 2.2,
"Source": "@superbwarfare:gun_grenade"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "@superbwarfare:rgo_grenade"
},
{
"Type": "Multiply",
"Value": 5,
"Source": "@superbwarfare:hand_grenade"
},
{
"Type": "Multiply",
"Value": 3,
"Source": "@superbwarfare:mortar_shell"
},
{
"Type": "Reduce",
"Value": 2
}
]
} }

View file

@ -1,5 +1,97 @@
{ {
"ID": "superbwarfare:annihilator", "ID": "superbwarfare:annihilator",
"MaxHealth": 1200, "MaxHealth": 1200,
"MaxEnergy": 20000000 "MaxEnergy": 20000000,
"DamageModifiers": [
{
"Type": "Multiply",
"Value": 0.1
},
{
"Type": "Immunity",
"Source": "minecraft:arrow"
},
{
"Type": "Immunity",
"Source": "minecraft:trident"
},
{
"Type": "Immunity",
"Source": "minecraft:mob_attack"
},
{
"Type": "Immunity",
"Source": "minecraft:mob_attack_no_aggro"
},
{
"Type": "Immunity",
"Source": "minecraft:mob_projectile"
},
{
"Type": "Immunity",
"Source": "minecraft:player_attack"
},
{
"Type": "Immunity",
"Source": "#superbwarfare:projectile"
},
{
"Type": "Immunity",
"Source": "superbwarfare:vehicle_strike"
},
{
"Type": "Multiply",
"Value": 0.7,
"Source": "minecraft:explosion"
},
{
"Type": "Multiply",
"Value": 0.2,
"Source": "superbwarfare:custom_explosion"
},
{
"Type": "Multiply",
"Value": 0.2,
"Source": "superbwarfare:projectile_boom"
},
{
"Type": "Multiply",
"Value": 0.2,
"Source": "superbwarfare:mine"
},
{
"Type": "Multiply",
"Value": 0.24,
"Source": "superbwarfare:lunge_mine"
},
{
"Type": "Multiply",
"Value": 0.3,
"Source": "superbwarfare:cannon_fire"
},
{
"Type": "Multiply",
"Value": 0.04,
"Source": "#superbwarfare:projectile_absolute"
},
{
"Type": "Multiply",
"Value": 10,
"Source": "@superbwarfare:c4"
},
{
"Type": "Multiply",
"Value": 3,
"Source": "@superbwarfare:gun_grenade"
},
{
"Type": "Multiply",
"Value": 3,
"Source": "@superbwarfare:cannon_shell"
},
{
"Type": "Reduce",
"Value": 12
}
]
} }

View file

@ -2,5 +2,105 @@
"ID": "superbwarfare:bmp_2", "ID": "superbwarfare:bmp_2",
"MaxHealth": 300, "MaxHealth": 300,
"MaxEnergy": 5000000, "MaxEnergy": 5000000,
"UpStep": 2.25 "UpStep": 2.25,
"DamageModifiers": [
{
"Type": "Multiply",
"Value": 0.2
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:arrow"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:trident"
},
{
"Type": "Multiply",
"Value": 2.5,
"Source": "minecraft:mob_attack"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "minecraft:mob_attack_no_aggro"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:mob_projectile"
},
{
"Type": "Multiply",
"Value": 12.5,
"Source": "minecraft:lava"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:explosion"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:player_explosion"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "superbwarfare:custom_explosion"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "superbwarfare:projectile_boom"
},
{
"Type": "Multiply",
"Value": 0.7,
"Source": "superbwarfare:mine"
},
{
"Type": "Multiply",
"Value": 0.9,
"Source": "superbwarfare:lunge_mine"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "superbwarfare:cannon_fire"
},
{
"Type": "Multiply",
"Value": 0.1,
"Source": "#superbwarfare:projectile"
},
{
"Type": "Multiply",
"Value": 0.7,
"Source": "#superbwarfare:projectile_absolute"
},
{
"Type": "Multiply",
"Value": 8.5,
"Source": "#superbwarfare:vehicle_strike"
},
{
"Type": "Multiply",
"Value": 1.1,
"Source": "@superbwarfare:mortar_shell"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "@superbwarfare:gun_grenade"
},
{
"Type": "Reduce",
"Value": 8
}
]
} }

View file

@ -1,5 +1,95 @@
{ {
"ID": "superbwarfare:hpj_11", "ID": "superbwarfare:hpj_11",
"MaxHealth": 350, "MaxHealth": 350,
"MaxEnergy": 5000000 "MaxEnergy": 5000000,
"DamageModifiers": [
{
"Type": "Multiply",
"Value": 0.6
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:arrow"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:trident"
},
{
"Type": "Multiply",
"Value": 2.5,
"Source": "minecraft:mob_attack"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "minecraft:mob_attack_no_aggro"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:mob_projectile"
},
{
"Type": "Multiply",
"Value": 12.5,
"Source": "minecraft:lava"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:explosion"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:player_explosion"
},
{
"Type": "Multiply",
"Value": 1.4,
"Source": "superbwarfare:custom_explosion"
},
{
"Type": "Multiply",
"Value": 1,
"Source": "superbwarfare:projectile_boom"
},
{
"Type": "Multiply",
"Value": 0.75,
"Source": "superbwarfare:mine"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "superbwarfare:cannon_fire"
},
{
"Type": "Multiply",
"Value": 0.25,
"Source": "#superbwarfare:projectile"
},
{
"Type": "Multiply",
"Value": 0.85,
"Source": "#superbwarfare:projectile_absolute"
},
{
"Type": "Multiply",
"Value": 10,
"Source": "superbwarfare:vehicle_strike"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "@superbwarfare:gun_grenade"
},
{
"Type": "Reduce",
"Value": 8
}
]
} }

View file

@ -1,5 +1,91 @@
{ {
"ID": "superbwarfare:laser_tower", "ID": "superbwarfare:laser_tower",
"MaxHealth": 100, "MaxHealth": 100,
"MaxEnergy": 500000 "MaxEnergy": 500000,
"DamageModifiers": [
{
"Type": "Multiply",
"Value": 0.1,
"Source": "minecraft:arrow"
},
{
"Type": "Multiply",
"Value": 0.2,
"Source": "minecraft:trident"
},
{
"Type": "Multiply",
"Value": 0.2,
"Source": "minecraft:mob_attack"
},
{
"Type": "Multiply",
"Value": 0.2,
"Source": "minecraft:mob_attack_no_aggro"
},
{
"Type": "Multiply",
"Value": 0.4,
"Source": "minecraft:mob_projectile"
},
{
"Type": "Multiply",
"Value": 0.4,
"Source": "minecraft:player_attack"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:explosion"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:player_explosion"
},
{
"Type": "Multiply",
"Value": 0.5,
"Source": "superbwarfare:custom_explosion"
},
{
"Type": "Multiply",
"Value": 0.5,
"Source": "superbwarfare:projectile_boom"
},
{
"Type": "Multiply",
"Value": 0.5,
"Source": "superbwarfare:mine"
},
{
"Type": "Multiply",
"Value": 0.5,
"Source": "superbwarfare:lunge_mine"
},
{
"Type": "Multiply",
"Value": 0.6,
"Source": "superbwarfare:cannon_fire"
},
{
"Type": "Multiply",
"Value": 0.5,
"Source": "#superbwarfare:projectile"
},
{
"Type": "Multiply",
"Value": 0.8,
"Source": "#superbwarfare:projectile_absolute"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "superbwarfare:vehicle_strike"
},
{
"Type": "Reduce",
"Value": 1
}
]
} }

View file

@ -2,5 +2,100 @@
"ID": "superbwarfare:lav_150", "ID": "superbwarfare:lav_150",
"MaxHealth": 250, "MaxHealth": 250,
"MaxEnergy": 5000000, "MaxEnergy": 5000000,
"UpStep": 1.5 "UpStep": 1.5,
"DamageModifiers": [
{
"Type": "Multiply",
"Value": 0.2
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:arrow"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:trident"
},
{
"Type": "Multiply",
"Value": 2.5,
"Source": "minecraft:mob_attack"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "minecraft:mob_attack_no_aggro"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:mob_projectile"
},
{
"Type": "Multiply",
"Value": 12.5,
"Source": "minecraft:lava"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:explosion"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:player_explosion"
},
{
"Type": "Multiply",
"Value": 2.4,
"Source": "superbwarfare:custom_explosion"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "superbwarfare:projectile_boom"
},
{
"Type": "Multiply",
"Value": 0.75,
"Source": "superbwarfare:mine"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "superbwarfare:cannon_fire"
},
{
"Type": "Multiply",
"Value": 0.25,
"Source": "#superbwarfare:projectile"
},
{
"Type": "Multiply",
"Value": 0.85,
"Source": "#superbwarfare:projectile_absolute"
},
{
"Type": "Multiply",
"Value": 10,
"Source": "superbwarfare:vehicle_strike"
},
{
"Type": "Multiply",
"Value": 1.25,
"Source": "@superbwarfare:mortar_shell"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "@superbwarfare:gun_grenade"
},
{
"Type": "Reduce",
"Value": 7
}
]
} }

View file

@ -1,4 +1,94 @@
{ {
"ID": "superbwarfare:mk_42", "ID": "superbwarfare:mk_42",
"MaxHealth": 350 "MaxHealth": 350,
"DamageModifiers": [
{
"Type": "Multiply",
"Value": 0.2
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:arrow"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:trident"
},
{
"Type": "Multiply",
"Value": 2.5,
"Source": "minecraft:mob_attack"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "minecraft:mob_attack_no_aggro"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:mob_projectile"
},
{
"Type": "Multiply",
"Value": 12.5,
"Source": "minecraft:lava"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:explosion"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:player_explosion"
},
{
"Type": "Multiply",
"Value": 2.4,
"Source": "superbwarfare:custom_explosion"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "superbwarfare:projectile_boom"
},
{
"Type": "Multiply",
"Value": 0.75,
"Source": "superbwarfare:mine"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "superbwarfare:cannon_fire"
},
{
"Type": "Multiply",
"Value": 0.25,
"Source": "#superbwarfare:explosion"
},
{
"Type": "Multiply",
"Value": 0.85,
"Source": "#superbwarfare:projectile_absolute"
},
{
"Type": "Multiply",
"Value": 10,
"Source": "superbwarfare:vehicle_strike"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "@superbwarfare:gun_grenade"
},
{
"Type": "Reduce",
"Value": 8
}
]
} }

View file

@ -1,4 +1,94 @@
{ {
"ID": "superbwarfare:mle_1934", "ID": "superbwarfare:mle_1934",
"MaxHealth": 350 "MaxHealth": 350,
"DamageModifiers": [
{
"Type": "Multiply",
"Value": 0.2
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:arrow"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:trident"
},
{
"Type": "Multiply",
"Value": 2.5,
"Source": "minecraft:mob_attack"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "minecraft:mob_attack_no_aggro"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:mob_projectile"
},
{
"Type": "Multiply",
"Value": 12.5,
"Source": "minecraft:lava"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:explosion"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:player_explosion"
},
{
"Type": "Multiply",
"Value": 2.4,
"Source": "superbwarfare:custom_explosion"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "superbwarfare:projectile_boom"
},
{
"Type": "Multiply",
"Value": 0.75,
"Source": "superbwarfare:mine"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "superbwarfare:cannon_fire"
},
{
"Type": "Multiply",
"Value": 0.25,
"Source": "#superbwarfare:explosion"
},
{
"Type": "Multiply",
"Value": 0.85,
"Source": "#superbwarfare:projectile_absolute"
},
{
"Type": "Multiply",
"Value": 10,
"Source": "superbwarfare:vehicle_strike"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "@superbwarfare:gun_grenade"
},
{
"Type": "Reduce",
"Value": 8
}
]
} }

View file

@ -2,5 +2,100 @@
"ID": "superbwarfare:prism_tank", "ID": "superbwarfare:prism_tank",
"MaxHealth": 400, "MaxHealth": 400,
"MaxEnergy": 20000000, "MaxEnergy": 20000000,
"UpStep": 2.25 "UpStep": 2.25,
"DamageModifiers": [
{
"Type": "Multiply",
"Value": 0.2
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:arrow"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:trident"
},
{
"Type": "Multiply",
"Value": 2.5,
"Source": "minecraft:mob_attack"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "minecraft:mob_attack_no_aggro"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "minecraft:mob_projectile"
},
{
"Type": "Multiply",
"Value": 12.5,
"Source": "minecraft:lava"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:explosion"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "minecraft:player_explosion"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "superbwarfare:custom_explosion"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "superbwarfare:projectile_boom"
},
{
"Type": "Multiply",
"Value": 0.7,
"Source": "superbwarfare:mine"
},
{
"Type": "Multiply",
"Value": 0.9,
"Source": "superbwarfare:lunge_mine"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "superbwarfare:cannon_fire"
},
{
"Type": "Multiply",
"Value": 0.1,
"Source": "#superbwarfare:explosion"
},
{
"Type": "Multiply",
"Value": 0.7,
"Source": "#superbwarfare:projectile_absolute"
},
{
"Type": "Multiply",
"Value": 4.5,
"Source": "superbwarfare:vehicle_strike"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "@superbwarfare:gun_grenade"
},
{
"Type": "Reduce",
"Value": 9
}
]
} }

View file

@ -1,5 +1,105 @@
{ {
"ID": "superbwarfare:speedboat", "ID": "superbwarfare:speedboat",
"MaxHealth": 200, "MaxHealth": 200,
"MaxEnergy": 500000 "MaxEnergy": 500000,
"DamageModifiers": [
{
"Type": "Multiply",
"Value": 0.5
},
{
"Type": "Multiply",
"Value": 0.2,
"Source": "minecraft:arrow"
},
{
"Type": "Multiply",
"Value": 0.4,
"Source": "minecraft:trident"
},
{
"Type": "Multiply",
"Value": 0.4,
"Source": "minecraft:mob_attack"
},
{
"Type": "Multiply",
"Value": 0.4,
"Source": "minecraft:mob_attack_no_aggro"
},
{
"Type": "Multiply",
"Value": 0.4,
"Source": "minecraft:mob_projectile"
},
{
"Type": "Multiply",
"Value": 0.4,
"Source": "minecraft:player_attack"
},
{
"Type": "Multiply",
"Value": 4,
"Source": "minecraft:lava"
},
{
"Type": "Multiply",
"Value": 4,
"Source": "minecraft:explosion"
},
{
"Type": "Multiply",
"Value": 4,
"Source": "minecraft:player_explosion"
},
{
"Type": "Multiply",
"Value": 0.8,
"Source": "superbwarfare:cannon_fire"
},
{
"Type": "Multiply",
"Value": 0.16,
"Source": "#superbwarfare:explosion"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "superbwarfare:vehicle_strike"
},
{
"Type": "Multiply",
"Value": 0.9,
"Source": "@superbwarfare:cannon_shell"
},
{
"Type": "Multiply",
"Value": 1.3,
"Source": "@superbwarfare:small_cannon_shell"
},
{
"Type": "Multiply",
"Value": 2.2,
"Source": "@superbwarfare:gun_grenade"
},
{
"Type": "Multiply",
"Value": 6,
"Source": "@superbwarfare:rgo_grenade"
},
{
"Type": "Multiply",
"Value": 5,
"Source": "@superbwarfare:hand_grenade"
},
{
"Type": "Multiply",
"Value": 4,
"Source": "@superbwarfare:mortar_shell"
},
{
"Type": "Reduce",
"Value": 2
}
]
} }

View file

@ -2,5 +2,12 @@
"ID": "superbwarfare:wheel_chair", "ID": "superbwarfare:wheel_chair",
"MaxHealth": 30, "MaxHealth": 30,
"MaxEnergy": 24000, "MaxEnergy": 24000,
"UpStep": 1.1 "UpStep": 1.1,
"DamageModifiers": [
{
"Type": "Multiply",
"Value": 2,
"Source": "superbwarfare:vehicle_strike"
}
]
} }

View file

@ -2,5 +2,107 @@
"ID": "superbwarfare:yx_100", "ID": "superbwarfare:yx_100",
"MaxHealth": 500, "MaxHealth": 500,
"MaxEnergy": 20000000, "MaxEnergy": 20000000,
"UpStep": 2.25 "UpStep": 2.25,
"DamageModifiers": [
{
"Type": "Immunity",
"Source": "minecraft:arrow"
},
{
"Type": "Immunity",
"Source": "minecraft:trident"
},
{
"Type": "Immunity",
"Source": "minecraft:mob_attack"
},
{
"Type": "Immunity",
"Source": "minecraft:mob_attack_no_aggro"
},
{
"Type": "Immunity",
"Source": "minecraft:mob_projectile"
},
{
"Type": "Immunity",
"Source": "minecraft:player_attack"
},
{
"Type": "Immunity",
"Source": "#superbwarfare:explosion"
},
{
"Type": "Immunity",
"Source": "superbwarfare:vehicle_strike"
},
{
"Type": "Multiply",
"Value": 0.2
},
{
"Type": "Multiply",
"Value": 2,
"Source": "minecraft:explosion"
},
{
"Type": "Multiply",
"Value": 0.75,
"Source": "superbwarfare:custom_explosion"
},
{
"Type": "Multiply",
"Value": 0.75,
"Source": "superbwarfare:projectile_boom"
},
{
"Type": "Multiply",
"Value": 0.5,
"Source": "superbwarfare:mine"
},
{
"Type": "Multiply",
"Value": 0.5,
"Source": "superbwarfare:lunge_mine"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "superbwarfare:cannon_fire"
},
{
"Type": "Multiply",
"Value": 0.15,
"Source": "#superbwarfare:projectile_absolute"
},
{
"Type": "Multiply",
"Value": 0.375,
"Source": "@superbwarfare:small_cannon_shell"
},
{
"Type": "Multiply",
"Value": 4,
"Source": "@superbwarfare:c4"
},
{
"Type": "Multiply",
"Value": 1.5,
"Source": "@superbwarfare:rpg_rocket"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "@superbwarfare:gun_grenade"
},
{
"Type": "Multiply",
"Value": 2,
"Source": "@superbwarfare:mortar_shell"
},
{
"Type": "Reduce",
"Value": 9
}
]
} }