diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java index ad675f469..1d4e2bfe9 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBeamBase.java @@ -35,6 +35,8 @@ public class EntityBulletBeamBase extends Entity implements IEntityAdditionalSpa this.setSize(0.5F, 0.5F); } + public EntityLivingBase getThrower() { return this.thrower; } + public EntityBulletBeamBase(EntityLivingBase entity, BulletConfig config, float baseDamage, float angularInaccuracy, double sideOffset, double heightOffset, double frontOffset) { this(entity.worldObj); diff --git a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java index 7b6fe25a0..fadc8ee17 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java +++ b/src/main/java/com/hbm/items/weapon/sedna/BulletConfig.java @@ -211,6 +211,31 @@ public class BulletConfig implements Cloneable { } }; + public static BiConsumer LAMBDA_STANDARD_BEAM_HIT = (bullet, mop) -> { + + if(mop.typeOfHit == mop.typeOfHit.ENTITY) { + Entity entity = mop.entityHit; + + if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return; + + DamageSource damageCalc = bullet.config.getDamage(bullet, bullet.getThrower(), false); + + if(!(entity instanceof EntityLivingBase)) { + EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, damageCalc, bullet.damage); + return; + } + + EntityLivingBase living = (EntityLivingBase) entity; + + if(bullet.config.armorPiercingPercent == 0) { + EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, damageCalc, bullet.damage); + } else { + DamageSource damagePiercing = bullet.config.getDamage(bullet, bullet.getThrower(), true); + EntityDamageUtil.attackArmorPiercing(living, damageCalc, damagePiercing, bullet.damage, bullet.config.armorPiercingPercent); + } + } + }; + public static BiConsumer LAMBDA_BEAM_HIT = (beam, mop) -> { if(mop.typeOfHit == mop.typeOfHit.ENTITY) { 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 6f17f3bda..e44256000 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 @@ -1034,5 +1034,24 @@ public class Orchestras { if(entity.worldObj.isRemote) return; AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); + + if(type == AnimType.RELOAD) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 18) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.impact", 0.25F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 38) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + + if(type == AnimType.INSPECT) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 12) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } + + if(type == AnimType.JAMMED) { + if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F); + if(timer == 22) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F); + if(timer == 30) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F); + } }; } 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 c47a2f87e..58a345ae7 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 @@ -91,9 +91,9 @@ public class XFactoryEnergy { energy_tesla_blacklightning = new BulletConfig().setItem(EnumAmmo.CAPACITOR_BLACKLIGHTNING).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true) .setDamage(5F).setOnBeamImpact(LAMBDA_LIGHTNING_HIT); - energy_las = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true); - energy_las_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true); - energy_las_blacklightning = new BulletConfig().setItem(EnumAmmo.CAPACITOR_BLACKLIGHTNING).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true); + energy_las = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_las_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); + energy_las_blacklightning = new BulletConfig().setItem(EnumAmmo.CAPACITOR_BLACKLIGHTNING).setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT); ModItems.gun_tesla_cannon = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() .dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.CIRCLE) @@ -107,9 +107,9 @@ public class XFactoryEnergy { ).setUnlocalizedName("gun_tesla_cannon"); ModItems.gun_lasrifle = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig() - .dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.CIRCLE) + .dura(2_000).draw(10).inspect(26).reloadSequential(true).crosshair(Crosshair.CIRCLE) .rec(new Receiver(0) - .dmg(15F).delay(10).reload(20).jam(19).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) + .dmg(15F).delay(8).reload(44).jam(36).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F) .mag(new MagazineFullReload(0, 24).addConfigs(energy_las, energy_las_overcharge, energy_las_blacklightning)) .offset(0.75, -0.0625 * 1.5, -0.1875) .setupBeamFire().recoil(Lego.LAMBDA_STANDARD_RECOIL)) @@ -143,7 +143,7 @@ public class XFactoryEnergy { case EQUIP: return new BusAnimation() .addBus("EQUIP", new BusAnimationSequence().addPos(60, 0, 0, 0).addPos(0, 0, 0, 500, IType.SIN_DOWN)); case CYCLE: return new BusAnimation() - .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, ItemGunBaseNT.getIsAiming(stack) ? -0.5 : -1, 50, IType.SIN_DOWN).addPos(0, 0, 0, 150, IType.SIN_FULL)) + .addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, -0.5, 50, IType.SIN_DOWN).addPos(0, 0, 0, 150, IType.SIN_FULL)) .addBus("CYCLE", new BusAnimationSequence().addPos(0, 0, 0, 150).addPos(0, 0, 22.5, 350)) .addBus("COUNT", new BusAnimationSequence().addPos(amount, 0, 0, 0)); case RELOAD: return new BusAnimation() diff --git a/src/main/resources/assets/hbm/models/weapons/lasrifle.obj b/src/main/resources/assets/hbm/models/weapons/lasrifle.obj index a46554bbe..5cb099694 100644 --- a/src/main/resources/assets/hbm/models/weapons/lasrifle.obj +++ b/src/main/resources/assets/hbm/models/weapons/lasrifle.obj @@ -2024,58 +2024,58 @@ vt 0.024036 0.230847 vt 0.030765 0.259434 vt 0.028962 0.275939 vt 0.024036 0.288021 -vt 0.338462 0.169811 +vt 0.261538 0.169811 vt 0.030769 0.150943 -vt 0.338462 0.150943 -vt 0.338462 0.075472 +vt 0.261538 0.150943 +vt 0.261538 0.075472 vt 0.030769 0.056604 -vt 0.338462 0.056604 -vt 0.338462 0.018868 +vt 0.261538 0.056604 +vt 0.261538 0.018868 vt 0.030769 -0.000000 -vt 0.338462 -0.000000 -vt 0.338462 0.188679 +vt 0.261538 -0.000000 +vt 0.261538 0.188679 vt 0.030769 0.169811 -vt 0.338462 0.094340 +vt 0.261538 0.094340 vt 0.030769 0.075472 -vt 0.338462 0.132075 +vt 0.261538 0.132075 vt 0.030769 0.113208 -vt 0.338462 0.113208 -vt 0.338462 0.037736 +vt 0.261538 0.113208 +vt 0.261538 0.037736 vt 0.030769 0.018868 -vt 0.338462 0.207547 +vt 0.261538 0.207547 vt 0.030769 0.188679 vt 0.030769 0.094340 vt 0.030769 0.132075 vt 0.030769 0.037736 -vt 0.338462 0.226415 +vt 0.261538 0.226415 vt 0.030769 0.207547 vt 0.030769 0.415094 -vt 0.338462 0.433962 +vt 0.261538 0.433962 vt 0.030769 0.433962 vt 0.030769 0.320755 -vt 0.338462 0.339623 +vt 0.261538 0.339623 vt 0.030769 0.339623 vt 0.030769 0.358491 -vt 0.338462 0.377358 +vt 0.261538 0.377358 vt 0.030769 0.377358 vt 0.030769 0.264151 -vt 0.338462 0.283019 +vt 0.261538 0.283019 vt 0.030769 0.283019 -vt 0.338462 0.452830 +vt 0.261538 0.452830 vt 0.030769 0.452830 -vt 0.338462 0.396226 +vt 0.261538 0.396226 vt 0.030769 0.396226 -vt 0.338462 0.301887 +vt 0.261538 0.301887 vt 0.030769 0.301887 vt 0.030769 0.226415 -vt 0.338462 0.245283 +vt 0.261538 0.245283 vt 0.030769 0.245283 -vt 0.338462 0.415094 -vt 0.338462 0.320755 -vt 0.338462 0.358491 -vt 0.338462 0.264151 +vt 0.261538 0.415094 +vt 0.261538 0.320755 +vt 0.261538 0.358491 +vt 0.261538 0.264151 vt 0.030769 0.226415 -vt 0.338462 0.226415 +vt 0.261538 0.226415 vn 0.0000 0.0000 1.0000 vn -1.0000 0.0000 0.0000 vn -0.8660 0.5000 0.0000 diff --git a/src/main/resources/assets/hbm/textures/models/weapons/lasrifle.png b/src/main/resources/assets/hbm/textures/models/weapons/lasrifle.png index 6d0b45444..7458e6d96 100644 Binary files a/src/main/resources/assets/hbm/textures/models/weapons/lasrifle.png and b/src/main/resources/assets/hbm/textures/models/weapons/lasrifle.png differ