From 142f6a992d7003ceb07db0cdd0cdcd27c5c324ba Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 1 Dec 2024 20:10:43 +0100 Subject: [PATCH] ouugh --- .../java/com/hbm/entity/logic/EntityC130.java | 1 + .../java/com/hbm/itempool/ItemPoolsC130.java | 16 +++++ src/main/java/com/hbm/items/ModItems.java | 2 + .../sedna/factory/GunFactoryClient.java | 5 +- .../weapon/sedna/factory/LegoClient.java | 4 ++ .../weapon/sedna/factory/Orchestras.java | 3 + .../weapon/sedna/factory/XFactory762mm.java | 22 ++++++- .../weapon/sedna/factory/XFactoryEnergy.java | 2 - .../java/com/hbm/main/ResourceManager.java | 1 + .../item/weapon/sedna/ItemRenderMinigun.java | 11 +++- .../com/hbm/util/DamageResistanceHandler.java | 56 +++++++++++++++--- src/main/resources/assets/hbm/lang/de_DE.lang | 4 ++ src/main/resources/assets/hbm/lang/en_US.lang | 4 ++ .../models/weapons/minigun_lacunae.png | Bin 0 -> 10199 bytes 14 files changed, 116 insertions(+), 15 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/weapons/minigun_lacunae.png diff --git a/src/main/java/com/hbm/entity/logic/EntityC130.java b/src/main/java/com/hbm/entity/logic/EntityC130.java index a99521945..0b0927845 100644 --- a/src/main/java/com/hbm/entity/logic/EntityC130.java +++ b/src/main/java/com/hbm/entity/logic/EntityC130.java @@ -52,6 +52,7 @@ public class EntityC130 extends EntityPlaneBase { if(this.payload == C130PayloadType.WEAPONS) { int amount = 1 + rand.nextInt(2); for(int i = 0; i < amount; i++) crate.items.add(ItemPool.getStack(ItemPoolsC130.POOL_WEAPONS, this.rand)); + for(int i = 0; i < 6; i++) crate.items.add(ItemPool.getStack(ItemPoolsC130.POOL_AMMO, this.rand)); } worldObj.spawnEntityInWorld(crate); diff --git a/src/main/java/com/hbm/itempool/ItemPoolsC130.java b/src/main/java/com/hbm/itempool/ItemPoolsC130.java index 4fbfd11ac..d7b19dc98 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsC130.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsC130.java @@ -5,6 +5,7 @@ import static com.hbm.lib.HbmChestContents.weighted; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import net.minecraft.util.WeightedRandomChestContent; @@ -12,6 +13,7 @@ public class ItemPoolsC130 { public static final String POOL_SUPPLIES = "POOL_SUPPLIES"; public static final String POOL_WEAPONS = "POOL_WEAPONS"; + public static final String POOL_AMMO = "POOL_AMMO"; public static void init() { @@ -39,5 +41,19 @@ public class ItemPoolsC130 { weighted(ModItems.gun_panzerschreck, 0, 1, 1, 2), }; }}; + + new ItemPool(POOL_AMMO) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.ammo_standard, EnumAmmo.M357_SP.ordinal(), 12, 12, 10), + weighted(ModItems.ammo_standard, EnumAmmo.M357_FMJ.ordinal(), 6, 6, 10), + weighted(ModItems.ammo_standard, EnumAmmo.M44_SP.ordinal(), 12, 12, 5), + weighted(ModItems.ammo_standard, EnumAmmo.M44_FMJ.ordinal(), 6, 6, 5), + weighted(ModItems.ammo_standard, EnumAmmo.P9_SP.ordinal(), 12, 12, 10), + weighted(ModItems.ammo_standard, EnumAmmo.P9_FMJ.ordinal(), 6, 6, 10), + weighted(ModItems.ammo_standard, EnumAmmo.R762_SP.ordinal(), 6, 6, 5), + weighted(ModItems.ammo_standard, EnumAmmo.G12_BP.ordinal(), 6, 6, 10), + weighted(ModItems.ammo_standard, EnumAmmo.ROCKET_HE.ordinal(), 1, 1, 3), + }; + }}; } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 4e94fb6a1..3ba70a540 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1617,6 +1617,7 @@ public class ModItems { public static Item gun_quadro; public static Item gun_lag; public static Item gun_minigun; + public static Item gun_minigun_lacunae; public static Item gun_missile_launcher; public static Item gun_tesla_cannon; public static Item gun_stg77; @@ -6915,6 +6916,7 @@ public class ModItems { GameRegistry.registerItem(gun_quadro, gun_quadro.getUnlocalizedName()); GameRegistry.registerItem(gun_lag, gun_lag.getUnlocalizedName()); GameRegistry.registerItem(gun_minigun, gun_minigun.getUnlocalizedName()); + GameRegistry.registerItem(gun_minigun_lacunae, gun_minigun_lacunae.getUnlocalizedName()); GameRegistry.registerItem(gun_missile_launcher, gun_missile_launcher.getUnlocalizedName()); GameRegistry.registerItem(gun_tesla_cannon, gun_tesla_cannon.getUnlocalizedName()); GameRegistry.registerItem(gun_stg77, gun_stg77.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java index f9afb903a..998133113 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/GunFactoryClient.java @@ -65,7 +65,8 @@ public class GunFactoryClient { MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun, new ItemRenderShredder(ResourceManager.shredder_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_autoshotgun_sexy, new ItemRenderShredder(ResourceManager.sexy_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_quadro, new ItemRenderQuadro()); - MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun, new ItemRenderMinigun()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun, new ItemRenderMinigun(ResourceManager.minigun_tex)); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_minigun_lacunae, new ItemRenderMinigun(ResourceManager.minigun_lacunae_tex)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_missile_launcher, new ItemRenderMissileLauncher()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_tesla_cannon, new ItemRenderTeslaCannon()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_stg77, new ItemRenderSTG77()); @@ -161,6 +162,7 @@ public class GunFactoryClient { setRendererBulkBeam(LegoClient.RENDER_TAU, tau_uranium); setRendererBulkBeam(LegoClient.RENDER_TAU_CHARGE, tau_uranium_charge); setRendererBulkBeam(LegoClient.RENDER_LASER_RED, energy_las, energy_las_overcharge); + setRendererBulkBeam(LegoClient.RENDER_LASER_PURPLE, energy_lacunae, energy_lacunae_overcharge); setRendererBulk(LegoClient.RENDER_AP_BULLET, coil_tungsten, coil_ferrouranium); @@ -197,6 +199,7 @@ public class GunFactoryClient { ((ItemGunBaseNT) ModItems.gun_quadro) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_lag) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_minigun) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); + ((ItemGunBaseNT) ModItems.gun_minigun_lacunae) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_missile_launcher) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_tesla_cannon) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); ((ItemGunBaseNT) ModItems.gun_stg77) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java index 464f727fc..a0a2c8bbb 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/LegoClient.java @@ -323,6 +323,10 @@ public class LegoClient { renderStandardLaser(bullet, interp, 0x80, 0x15, 0x15); }; + public static BiConsumer RENDER_LASER_PURPLE = (bullet, interp) -> { + renderStandardLaser(bullet, interp, 0x60, 0x15, 0x80); + }; + public static void renderStandardLaser(EntityBulletBeamBase bullet, float interp, int r, int g, int b) { RenderArcFurnace.fullbright(true); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java index 138ef08d1..dcacf6a52 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Orchestras.java @@ -895,6 +895,9 @@ public class Orchestras { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F); if(timer == 1) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } + if(type == AnimType.RELOAD) { + if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); + } if(type == AnimType.INSPECT) { if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverSpin", 1F, 0.75F); } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java index 31b227d53..de794e781 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactory762mm.java @@ -21,6 +21,7 @@ import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; import com.hbm.render.anim.BusAnimationKeyframe.IType; import com.hbm.render.anim.HbmAnimations.AnimType; +import com.hbm.util.DamageResistanceHandler.DamageClass; import net.minecraft.item.ItemStack; @@ -32,6 +33,9 @@ public class XFactory762mm { public static BulletConfig r762_ap; public static BulletConfig r762_du; + public static BulletConfig energy_lacunae; + public static BulletConfig energy_lacunae_overcharge; + public static void init() { SpentCasing casing762 = new SpentCasing(CasingType.BOTTLENECK).setColor(SpentCasing.COLOR_CASE_BRASS); r762_sp = new BulletConfig().setItem(EnumAmmo.R762_SP) @@ -44,6 +48,9 @@ public class XFactory762mm { .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762ap")); r762_du = new BulletConfig().setItem(EnumAmmo.R762_DU).setDoesPenetrate(true).setDamageFalloutByPen(false).setDamage(2.5F).setArmorPiercing(0.25F) .setCasing(casing762.clone().setColor(SpentCasing.COLOR_CASE_44).register("r762du")); + + energy_lacunae = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.LASER).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_lacunae_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setupDamageClass(DamageClass.LASER).setBeam().setReloadCount(40).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); ModItems.gun_carbine = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(3_000).draw(10).inspect(31).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE) @@ -55,7 +62,7 @@ public class XFactory762mm { .setupStandardConfiguration() .anim(LAMBDA_CARBINE_ANIMS).orchestra(Orchestras.ORCHESTRA_CARBIBE) ).setUnlocalizedName("gun_carbine"); - + ModItems.gun_minigun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE) .rec(new Receiver(0) @@ -66,6 +73,16 @@ public class XFactory762mm { .setupStandardConfiguration() .anim(LAMBDA_MINIGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_MINIGUN) ).setUnlocalizedName("gun_minigun"); + ModItems.gun_minigun_lacunae = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig() + .dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE) + .rec(new Receiver(0) + .dmg(10F).delay(1).auto(true).dry(15).reload(15).spread(0.01F).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .mag(new MagazineFullReload(0, 200).addConfigs(energy_lacunae, energy_lacunae_overcharge)) + .offset(1, -0.0625 * 2.5, -0.25D) + .setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) + .setupStandardConfiguration() + .anim(LAMBDA_MINIGUN_ANIMS).orchestra(Orchestras.ORCHESTRA_MINIGUN) + ).setUnlocalizedName("gun_minigun_lacunae"); } public static BiConsumer LAMBDA_SMOKE = (stack, ctx) -> { @@ -113,6 +130,9 @@ public class XFactory762mm { .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 60, 50).addPos(0, 0, 720, 1000, IType.SIN_DOWN)); case CYCLE_DRY: return new BusAnimation() .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 60, 50).addPos(0, 0, 720, 1000, IType.SIN_DOWN)); + case RELOAD: return new BusAnimation() + .addBus("EQUIP", new BusAnimationSequence().addPos(-15, 0, 0, 250, IType.SIN_DOWN).addPos(0, 0, 0, 500, IType.SIN_FULL)) + .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, 60, 50).addPos(0, 0, 720, 1000, IType.SIN_DOWN)); case INSPECT: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(3, 0, 0, 150, IType.SIN_DOWN).addPos(0, 0, 0, 100, IType.SIN_FULL)) .addBus("ROTATE", new BusAnimationSequence().addPos(0, 0, -720, 1000, IType.SIN_DOWN)); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java index 5fdc4324f..84156627b 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/XFactoryEnergy.java @@ -43,11 +43,9 @@ public class XFactoryEnergy { public static BulletConfig energy_tesla; public static BulletConfig energy_tesla_overcharge; - public static BulletConfig energy_tesla_blacklightning; public static BulletConfig energy_las; public static BulletConfig energy_las_overcharge; - public static BulletConfig energy_las_blacklightning; public static BiConsumer LAMBDA_LIGHTNING_HIT = (beam, mop) -> { diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index be21567f3..dffef5372 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -998,6 +998,7 @@ public class ResourceManager { public static final ResourceLocation quadro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro.png"); public static final ResourceLocation quadro_rocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/quadro_rocket.png"); public static final ResourceLocation minigun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/minigun.png"); + public static final ResourceLocation minigun_lacunae_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/minigun_lacunae.png"); public static final ResourceLocation missile_launcher_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/missile_launcher.png"); public static final ResourceLocation tesla_cannon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/tesla_cannon.png"); public static final ResourceLocation stg77_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/stg77.png"); diff --git a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java index b4d55e4ca..ed44d201f 100644 --- a/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java +++ b/src/main/java/com/hbm/render/item/weapon/sedna/ItemRenderMinigun.java @@ -8,8 +8,15 @@ import com.hbm.render.anim.HbmAnimations; import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; public class ItemRenderMinigun extends ItemRenderWeaponBase { + + protected ResourceLocation texture; + + public ItemRenderMinigun(ResourceLocation texture) { + this.texture = texture; + } @Override protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.5F; } @@ -34,7 +41,7 @@ public class ItemRenderMinigun extends ItemRenderWeaponBase { public void renderFirstPerson(ItemStack stack) { ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem(); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.minigun_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); double scale = 0.375D; GL11.glScaled(scale, scale, scale); @@ -101,7 +108,7 @@ public class ItemRenderMinigun extends ItemRenderWeaponBase { GL11.glEnable(GL11.GL_LIGHTING); GL11.glShadeModel(GL11.GL_SMOOTH); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.minigun_tex); + Minecraft.getMinecraft().renderEngine.bindTexture(texture); ResourceManager.minigun.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); } diff --git a/src/main/java/com/hbm/util/DamageResistanceHandler.java b/src/main/java/com/hbm/util/DamageResistanceHandler.java index 8e25d7077..b477d15cd 100644 --- a/src/main/java/com/hbm/util/DamageResistanceHandler.java +++ b/src/main/java/com/hbm/util/DamageResistanceHandler.java @@ -2,6 +2,7 @@ package com.hbm.util; import java.util.HashMap; +import com.hbm.items.ModItems; import com.hbm.util.Tuple.Quartet; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -33,6 +34,43 @@ public class DamageResistanceHandler { public static HashMap itemStats = new HashMap(); public static HashMap, ResistanceStats> setStats = new HashMap(); public static HashMap, ResistanceStats> entityStats = new HashMap(); + + public static void init() { + entityStats.put(EntityCreeper.class, new ResistanceStats().add(KEY_EXPLOSION, 2F, 0.5F)); + + setStats.put(new Quartet(ModItems.steel_helmet, ModItems.steel_plate, ModItems.steel_legs, ModItems.steel_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.titanium_helmet, ModItems.titanium_plate, ModItems.titanium_legs, ModItems.titanium_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.alloy_helmet, ModItems.alloy_plate, ModItems.alloy_legs, ModItems.alloy_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.cobalt_helmet, ModItems.cobalt_plate, ModItems.cobalt_legs, ModItems.cobalt_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.starmetal_helmet, ModItems.starmetal_plate, ModItems.starmetal_legs, ModItems.starmetal_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.zirconium_legs, ModItems.zirconium_legs, ModItems.zirconium_legs, ModItems.zirconium_legs), new ResistanceStats()); + setStats.put(new Quartet(ModItems.dnt_helmet, ModItems.dnt_plate, ModItems.dnt_legs, ModItems.dnt_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.schrabidium_helmet, ModItems.schrabidium_plate, ModItems.schrabidium_legs, ModItems.schrabidium_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.robes_helmet, ModItems.robes_plate, ModItems.robes_legs, ModItems.robes_boots), new ResistanceStats()); + + setStats.put(new Quartet(ModItems.steamsuit_helmet, ModItems.steamsuit_plate, ModItems.steamsuit_legs, ModItems.steamsuit_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.dieselsuit_helmet, ModItems.dieselsuit_plate, ModItems.dieselsuit_legs, ModItems.dieselsuit_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.t45_helmet, ModItems.t45_plate, ModItems.t45_legs, ModItems.t45_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.ajr_helmet, ModItems.ajr_plate, ModItems.ajr_legs, ModItems.ajr_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.ajro_helmet, ModItems.ajro_plate, ModItems.ajro_legs, ModItems.ajro_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.rpa_helmet, ModItems.rpa_plate, ModItems.rpa_legs, ModItems.rpa_boots), new ResistanceStats()); + ResistanceStats bj = new ResistanceStats(); + setStats.put(new Quartet(ModItems.bj_helmet, ModItems.bj_plate, ModItems.bj_legs, ModItems.bj_boots), bj); + setStats.put(new Quartet(ModItems.bj_helmet, ModItems.bj_plate_jetpack, ModItems.bj_legs, ModItems.bj_boots), bj); + setStats.put(new Quartet(ModItems.envsuit_helmet, ModItems.envsuit_plate, ModItems.envsuit_legs, ModItems.envsuit_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.hev_helmet, ModItems.hev_plate, ModItems.hev_legs, ModItems.hev_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.bismuth_helmet, ModItems.bismuth_plate, ModItems.bismuth_legs, ModItems.bismuth_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.fau_helmet, ModItems.fau_plate, ModItems.fau_legs, ModItems.fau_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.dns_helmet, ModItems.dns_plate, ModItems.dns_legs, ModItems.dns_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.trenchmaster_helmet, ModItems.trenchmaster_plate, ModItems.trenchmaster_legs, ModItems.trenchmaster_boots), new ResistanceStats()); + + setStats.put(new Quartet(ModItems.hazmat_helmet, ModItems.hazmat_plate, ModItems.hazmat_legs, ModItems.hazmat_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.hazmat_helmet_red, ModItems.hazmat_plate_red, ModItems.hazmat_legs_red, ModItems.hazmat_boots_red), new ResistanceStats()); + setStats.put(new Quartet(ModItems.hazmat_helmet_grey, ModItems.hazmat_plate_grey, ModItems.hazmat_legs_grey, ModItems.hazmat_boots_grey), new ResistanceStats()); + setStats.put(new Quartet(ModItems.liquidator_helmet, ModItems.liquidator_plate, ModItems.liquidator_legs, ModItems.liquidator_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.hazmat_paa_helmet, ModItems.hazmat_paa_plate, ModItems.hazmat_paa_legs, ModItems.hazmat_paa_boots), new ResistanceStats()); + setStats.put(new Quartet(ModItems.asbestos_helmet, ModItems.asbestos_plate, ModItems.asbestos_legs, ModItems.asbestos_boots), new ResistanceStats()); + } public static enum DamageClass { PHYSICAL, @@ -40,11 +78,8 @@ public class DamageResistanceHandler { EXPLOSIVE, ELECTRIC, LASER, - SUBATOMIC - } - - public static void init() { - entityStats.put(EntityCreeper.class, new ResistanceStats().add(KEY_EXPLOSION, 2F, 0.5F)); + SUBATOMIC, + OTHER } public static void setup(float dt, float dr) { @@ -65,7 +100,10 @@ public class DamageResistanceHandler { float[] vals = getDTDR(e, event.source, amount, currentPDT, currentPDR); float dt = vals[0]; - if(dt > 0 && dt >= event.ammount) event.setCanceled(true); + if(dt > 0 && dt >= event.ammount) { + event.setCanceled(true); + EntityDamageUtil.damageArmorNT(e, amount); + } } @SubscribeEvent @@ -101,10 +139,10 @@ public class DamageResistanceHandler { /// SET HANDLING /// Quartet wornSet = new Quartet( - entity.getEquipmentInSlot(1) != null ? entity.getEquipmentInSlot(1).getItem() : null, - entity.getEquipmentInSlot(2) != null ? entity.getEquipmentInSlot(2).getItem() : null, + entity.getEquipmentInSlot(4) != null ? entity.getEquipmentInSlot(4).getItem() : null, entity.getEquipmentInSlot(3) != null ? entity.getEquipmentInSlot(3).getItem() : null, - entity.getEquipmentInSlot(4) != null ? entity.getEquipmentInSlot(4).getItem() : null + entity.getEquipmentInSlot(2) != null ? entity.getEquipmentInSlot(2).getItem() : null, + entity.getEquipmentInSlot(1) != null ? entity.getEquipmentInSlot(1).getItem() : null ); ResistanceStats setResistance = setStats.get(wornSet); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a71c48bfe..5cb0aba7c 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1160,6 +1160,8 @@ item.ammo_standard.bmg50_du.name=.50 BMG Patrone (Urangeschoss) item.ammo_standard.bmg50_fmj.name=.50 BMG Patrone (Vollmantelgeschoss) item.ammo_standard.bmg50_jhp.name=.50 BMG Patrone (Hohlspitz) item.ammo_standard.bmg50_sp.name=.50 BMG Patrone (Teilmantelgeschoss) +item.ammo_standard.capacitor.name=Kondensator +item.ammo_standard.capacitor_overcharge.name=Kondensator (Überladung) item.ammo_standard.flame_balefire.name=Flammenwerferbrennstoff, Balefire item.ammo_standard.flame_diesel.name=Flammenwerferbrennstoff, Diesel item.ammo_standard.flame_gas.name=Flammenwerferbrennstoff, Gas @@ -2171,6 +2173,7 @@ item.gun_fatman.name=M42 Nukleares Katapult "Fat Man" item.gun_fatman_ammo.name=Miniatombombe (LEGACY) item.gun_fireext.name=Feuerlöscher item.gun_flamer.name=Flammenwerfer +item.gun_flamer_daybreaker.name=Daybreaker item.gun_flamer_topaz.name=Mister Topaz item.gun_flaregun.name=Signalpistole item.gun_flechette.name=Flechet-Gewehr @@ -2210,6 +2213,7 @@ item.gun_maresleg.name=Repetierflinte item.gun_maresleg_akimbo.name=Repetierflinten item.gun_maresleg_broken.name=Broken item.gun_minigun.name=Minigun +item.gun_minigun_lacunae.name=Lacunae item.gun_mirv.name=M42 Nukleares Katapult "Experimentelles MIRV" item.gun_mirv_ammo.name=Achtfaches MIRV (LEGACY) item.gun_missile_launcher.name=Raketenwerfer diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 5d217c811..b6d8a1f6f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1883,6 +1883,8 @@ item.ammo_standard.bmg50_du.name=.50 BMG Round (Depleted Uranium) item.ammo_standard.bmg50_fmj.name=.50 BMG Round (Full Metal Jacket) item.ammo_standard.bmg50_jhp.name=.50 BMG Round (Jacketed Hollow Point) item.ammo_standard.bmg50_sp.name=.50 BMG Round (Soft Point) +item.ammo_standard.capacitor.name=Capacitor +item.ammo_standard.capacitor_overcharge.name=Capacitor (Overcharge) item.ammo_standard.flame_balefire.name=Flamer Fuel, Balefire item.ammo_standard.flame_diesel.name=Flamer Fuel, Diesel item.ammo_standard.flame_gas.name=Flamer Fuel, Gas @@ -2979,6 +2981,7 @@ item.gun_fatman.name=M42 Nuclear Catapult "Fat Man" item.gun_fatman_ammo.name=Mini Nuke (LEGACY) item.gun_fireext.name=Fire Extinguisher item.gun_flamer.name=Flamethrower +item.gun_flamer_daybreaker.name=Daybreaker item.gun_flamer_topaz.name=Mister Topaz item.gun_flaregun.name=Flare Gun item.gun_flechette.name=Flechette Rifle @@ -3019,6 +3022,7 @@ item.gun_maresleg.name=Lever Action Shotgun item.gun_maresleg_akimbo.name=Lever Action Shotguns item.gun_maresleg_broken.name=Broken item.gun_minigun.name=Minigun +item.gun_minigun_lacunae.name=Lacunae item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" item.gun_mirv_ammo.name=Eightfold MIRV (LEGACY) item.gun_missile_launcher.name=Missile Launcher diff --git a/src/main/resources/assets/hbm/textures/models/weapons/minigun_lacunae.png b/src/main/resources/assets/hbm/textures/models/weapons/minigun_lacunae.png new file mode 100644 index 0000000000000000000000000000000000000000..66bfa6d8160341136e828b89bc5def9aaf88f927 GIT binary patch literal 10199 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 Y=&|2$+QlI7^)A5dyw$mKWA}Ui2Xb*)L;wH) literal 0 HcmV?d00001