mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
more stupid shit
This commit is contained in:
parent
dcdc2d9032
commit
38ecb23a8e
@ -57,6 +57,7 @@
|
|||||||
* Logistic drones now move at 0.625 blocks/t instead of 0.6. There is no balancing reason for this, I just hate weird numbers like 0.6
|
* Logistic drones now move at 0.625 blocks/t instead of 0.6. There is no balancing reason for this, I just hate weird numbers like 0.6
|
||||||
* Fallout effects now remove snow layers in the same area where they would remove things like small plants and leaves
|
* Fallout effects now remove snow layers in the same area where they would remove things like small plants and leaves
|
||||||
* Adjusted damage values to many swords and some tools
|
* Adjusted damage values to many swords and some tools
|
||||||
|
* Unsats and aromatics can now be filled into gas canisters
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
* The conveyor grabber should no longer skip over items when used in long lines
|
* The conveyor grabber should no longer skip over items when used in long lines
|
||||||
|
|||||||
@ -110,7 +110,7 @@ public class EntityProcessorCross implements IEntityProcessor {
|
|||||||
for(Entry<Entity, Float> entry : damageMap.entrySet()) {
|
for(Entry<Entity, Float> entry : damageMap.entrySet()) {
|
||||||
|
|
||||||
Entity entity = entry.getKey();
|
Entity entity = entry.getKey();
|
||||||
entity.attackEntityFrom(setExplosionSource(explosion.compat), entry.getValue());
|
attackEntity(entity, explosion, entry.getValue());
|
||||||
|
|
||||||
if(damage != null) {
|
if(damage != null) {
|
||||||
double distanceScaled = entity.getDistance(x, y, z) / size;
|
double distanceScaled = entity.getDistance(x, y, z) / size;
|
||||||
@ -121,6 +121,10 @@ public class EntityProcessorCross implements IEntityProcessor {
|
|||||||
return affectedPlayers;
|
return affectedPlayers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void attackEntity(Entity entity, ExplosionVNT source, float amount) {
|
||||||
|
entity.attackEntityFrom(setExplosionSource(source.compat), amount);
|
||||||
|
}
|
||||||
|
|
||||||
public float calculateDamage(double distanceScaled, double density, double knockback, float size) {
|
public float calculateDamage(double distanceScaled, double density, double knockback, float size) {
|
||||||
return (float) ((int) ((knockback * knockback + knockback) / 2.0D * 8.0D * size + 1.0D));
|
return (float) ((int) ((knockback * knockback + knockback) / 2.0D * 8.0D * size + 1.0D));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,14 +1,36 @@
|
|||||||
package com.hbm.explosion.vanillant.standard;
|
package com.hbm.explosion.vanillant.standard;
|
||||||
|
|
||||||
|
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||||
|
import com.hbm.items.weapon.sedna.BulletConfig;
|
||||||
|
import com.hbm.util.DamageResistanceHandler.DamageClass;
|
||||||
|
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
|
||||||
public class EntityProcessorCrossSmooth extends EntityProcessorCross {
|
public class EntityProcessorCrossSmooth extends EntityProcessorCross {
|
||||||
|
|
||||||
protected float fixedDamage;
|
protected float fixedDamage;
|
||||||
|
protected float pierceDT = 0;
|
||||||
|
protected float pierceDR = 0;
|
||||||
|
protected DamageClass clazz = DamageClass.EXPLOSIVE;
|
||||||
|
|
||||||
public EntityProcessorCrossSmooth(double nodeDist, float fixedDamage) {
|
public EntityProcessorCrossSmooth(double nodeDist, float fixedDamage) {
|
||||||
super(nodeDist);
|
super(nodeDist);
|
||||||
this.fixedDamage = fixedDamage;
|
this.fixedDamage = fixedDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public EntityProcessorCrossSmooth setupPiercing(float pierceDT, float pierceDR) {
|
||||||
|
this.pierceDT = pierceDT;
|
||||||
|
this.pierceDR = pierceDR;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void attackEntity(Entity entity, ExplosionVNT source, float amount) {
|
||||||
|
entity.attackEntityFrom(BulletConfig.getDamage(null, source.exploder instanceof EntityLivingBase ? (EntityLivingBase) source.exploder : null, clazz), amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public float calculateDamage(double distanceScaled, double density, double knockback, float size) {
|
public float calculateDamage(double distanceScaled, double density, double knockback, float size) {
|
||||||
return (float) (fixedDamage * (1 - distanceScaled));
|
return (float) (fixedDamage * (1 - distanceScaled));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -307,8 +307,8 @@ public class Fluids {
|
|||||||
NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS, P_FUEL);
|
NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS, P_FUEL);
|
||||||
LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID, P_FUEL);
|
LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID, P_FUEL);
|
||||||
DIESEL_CRACK = new FluidType("DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 450_000), LIQUID, P_FUEL);
|
DIESEL_CRACK = new FluidType("DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 450_000), LIQUID, P_FUEL);
|
||||||
AROMATICS = new FluidType("AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(25_000), LIQUID, VISCOUS, P_GAS);
|
AROMATICS = new FluidType("AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x68A09A, 0xEDCF27)).addTraits(new FT_Flammable(25_000), LIQUID, VISCOUS, P_GAS);
|
||||||
UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(1_000_000), GASEOUS, P_GAS); //acetylene burns as hot as satan's asshole
|
UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x628FAE, 0xEDCF27)).addTraits(new FT_Flammable(1_000_000), GASEOUS, P_GAS); //acetylene burns as hot as satan's asshole
|
||||||
SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID, VISCOUS);
|
SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID, VISCOUS);
|
||||||
XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS);
|
XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS);
|
||||||
ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
|
ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
|
||||||
|
|||||||
@ -1603,6 +1603,7 @@ public class ModItems {
|
|||||||
public static Item gun_congolake;
|
public static Item gun_congolake;
|
||||||
public static Item gun_flamer;
|
public static Item gun_flamer;
|
||||||
public static Item gun_flamer_topaz;
|
public static Item gun_flamer_topaz;
|
||||||
|
public static Item gun_flamer_daybreaker;
|
||||||
public static Item gun_uzi;
|
public static Item gun_uzi;
|
||||||
public static Item gun_uzi_akimbo;
|
public static Item gun_uzi_akimbo;
|
||||||
public static Item gun_spas12;
|
public static Item gun_spas12;
|
||||||
@ -6902,6 +6903,7 @@ public class ModItems {
|
|||||||
GameRegistry.registerItem(gun_congolake, gun_congolake.getUnlocalizedName());
|
GameRegistry.registerItem(gun_congolake, gun_congolake.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(gun_flamer, gun_flamer.getUnlocalizedName());
|
GameRegistry.registerItem(gun_flamer, gun_flamer.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(gun_flamer_topaz, gun_flamer_topaz.getUnlocalizedName());
|
GameRegistry.registerItem(gun_flamer_topaz, gun_flamer_topaz.getUnlocalizedName());
|
||||||
|
GameRegistry.registerItem(gun_flamer_daybreaker, gun_flamer_daybreaker.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(gun_uzi, gun_uzi.getUnlocalizedName());
|
GameRegistry.registerItem(gun_uzi, gun_uzi.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(gun_uzi_akimbo, gun_uzi_akimbo.getUnlocalizedName());
|
GameRegistry.registerItem(gun_uzi_akimbo, gun_uzi_akimbo.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(gun_spas12, gun_spas12.getUnlocalizedName());
|
GameRegistry.registerItem(gun_spas12, gun_spas12.getUnlocalizedName());
|
||||||
|
|||||||
@ -12,11 +12,11 @@ import com.hbm.inventory.RecipesCommon.ComparableStack;
|
|||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
|
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
|
||||||
import com.hbm.lib.ModDamageSource;
|
|
||||||
import com.hbm.particle.SpentCasing;
|
import com.hbm.particle.SpentCasing;
|
||||||
import com.hbm.util.BobMathUtil;
|
import com.hbm.util.BobMathUtil;
|
||||||
import com.hbm.util.EntityDamageUtil;
|
import com.hbm.util.EntityDamageUtil;
|
||||||
import com.hbm.util.TrackerUtil;
|
import com.hbm.util.TrackerUtil;
|
||||||
|
import com.hbm.util.DamageResistanceHandler.DamageClass;
|
||||||
|
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
@ -48,14 +48,10 @@ public class BulletConfig implements Cloneable {
|
|||||||
public float damageMult = 1.0F;
|
public float damageMult = 1.0F;
|
||||||
public float armorThresholdNegation = 0.0F;
|
public float armorThresholdNegation = 0.0F;
|
||||||
public float armorPiercingPercent = 0.0F;
|
public float armorPiercingPercent = 0.0F;
|
||||||
public float knockbackMult = 1.0F;
|
public float knockbackMult = 0.25F;
|
||||||
public float headshotMult = 1.0F;
|
public float headshotMult = 1.0F;
|
||||||
|
|
||||||
public String damageType = ModDamageSource.s_bullet;
|
public DamageClass dmgClass = DamageClass.PHYSICAL;
|
||||||
public boolean dmgProj = true;
|
|
||||||
public boolean dmgFire = false;
|
|
||||||
public boolean dmgExplosion = false;
|
|
||||||
public boolean dmgBypass = false;
|
|
||||||
|
|
||||||
public float ricochetAngle = 5F;
|
public float ricochetAngle = 5F;
|
||||||
public int maxRicochetCount = 2;
|
public int maxRicochetCount = 2;
|
||||||
@ -110,8 +106,7 @@ public class BulletConfig implements Cloneable {
|
|||||||
public BulletConfig setArmorPiercing(float armorPiercingPercent) { this.armorPiercingPercent = armorPiercingPercent; return this; }
|
public BulletConfig setArmorPiercing(float armorPiercingPercent) { this.armorPiercingPercent = armorPiercingPercent; return this; }
|
||||||
public BulletConfig setKnockback(float knockbackMult) { this.knockbackMult = knockbackMult; return this; }
|
public BulletConfig setKnockback(float knockbackMult) { this.knockbackMult = knockbackMult; return this; }
|
||||||
public BulletConfig setHeadshot(float headshotMult) { this.headshotMult = headshotMult; return this; }
|
public BulletConfig setHeadshot(float headshotMult) { this.headshotMult = headshotMult; return this; }
|
||||||
public BulletConfig setDamageType(String type) { this.damageType = type; return this; }
|
public BulletConfig setupDamageClass(DamageClass clazz) { this.dmgClass = clazz; return this; }
|
||||||
public BulletConfig setupDamageClass(boolean proj, boolean fire, boolean explosion, boolean bypass) { this.dmgProj = proj; this.dmgFire = fire; this.dmgExplosion = explosion; this.dmgBypass = bypass; return this; }
|
|
||||||
public BulletConfig setRicochetAngle(float angle) { this.ricochetAngle = angle; return this; }
|
public BulletConfig setRicochetAngle(float angle) { this.ricochetAngle = angle; return this; }
|
||||||
public BulletConfig setRicochetCount(int count) { this.maxRicochetCount = count; return this; }
|
public BulletConfig setRicochetCount(int count) { this.maxRicochetCount = count; return this; }
|
||||||
public BulletConfig setDamageFalloutByPen(boolean falloff) { this.damageFalloffByPen = falloff; return this; }
|
public BulletConfig setDamageFalloutByPen(boolean falloff) { this.damageFalloffByPen = falloff; return this; }
|
||||||
@ -140,17 +135,21 @@ public class BulletConfig implements Cloneable {
|
|||||||
BEAM
|
BEAM
|
||||||
}
|
}
|
||||||
|
|
||||||
public DamageSource getDamage(Entity projectile, EntityLivingBase shooter, boolean bypass) {
|
public static DamageSource getDamage(Entity projectile, EntityLivingBase shooter, DamageClass dmgClass) {
|
||||||
|
|
||||||
DamageSource dmg;
|
DamageSource dmg;
|
||||||
|
|
||||||
if(shooter != null) dmg = new EntityDamageSourceIndirect(damageType, projectile, shooter);
|
if(shooter != null) dmg = new EntityDamageSourceIndirect(dmgClass.name(), projectile, shooter);
|
||||||
else dmg = new DamageSource(damageType);
|
else dmg = new DamageSource(dmgClass.name());
|
||||||
|
|
||||||
if(this.dmgProj) dmg.setProjectile();
|
switch(dmgClass) {
|
||||||
if(this.dmgFire) dmg.setFireDamage();
|
case PHYSICAL: dmg.setProjectile(); break;
|
||||||
if(this.dmgExplosion) dmg.setExplosion();
|
case FIRE: dmg.setFireDamage(); break;
|
||||||
if(this.dmgBypass || bypass) dmg.setDamageBypassesArmor();
|
case EXPLOSIVE: dmg.setExplosion(); break;
|
||||||
|
case ELECTRIC: break;
|
||||||
|
case LASER: break;
|
||||||
|
case SUBATOMIC: break;
|
||||||
|
}
|
||||||
|
|
||||||
return dmg;
|
return dmg;
|
||||||
}
|
}
|
||||||
@ -199,7 +198,7 @@ public class BulletConfig implements Cloneable {
|
|||||||
if(entity == bullet.getThrower() && bullet.ticksExisted < bullet.selfDamageDelay()) return;
|
if(entity == bullet.getThrower() && bullet.ticksExisted < bullet.selfDamageDelay()) return;
|
||||||
if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return;
|
if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return;
|
||||||
|
|
||||||
DamageSource source = bullet.config.getDamage(bullet, bullet.getThrower(), false);
|
DamageSource source = bullet.config.getDamage(bullet, bullet.getThrower(), bullet.config.dmgClass);
|
||||||
|
|
||||||
if(!(entity instanceof EntityLivingBase)) {
|
if(!(entity instanceof EntityLivingBase)) {
|
||||||
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, bullet.damage);
|
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, bullet.damage);
|
||||||
@ -228,7 +227,7 @@ public class BulletConfig implements Cloneable {
|
|||||||
|
|
||||||
if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return;
|
if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return;
|
||||||
|
|
||||||
DamageSource source = bullet.config.getDamage(bullet, bullet.getThrower(), false);
|
DamageSource source = bullet.config.getDamage(bullet, bullet.getThrower(), bullet.config.dmgClass);
|
||||||
|
|
||||||
if(!(entity instanceof EntityLivingBase)) {
|
if(!(entity instanceof EntityLivingBase)) {
|
||||||
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, bullet.damage);
|
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, bullet.damage);
|
||||||
@ -247,7 +246,7 @@ public class BulletConfig implements Cloneable {
|
|||||||
|
|
||||||
if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return;
|
if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return;
|
||||||
|
|
||||||
DamageSource source = beam.config.getDamage(beam, beam.thrower, false);
|
DamageSource source = beam.config.getDamage(beam, beam.thrower, beam.config.dmgClass);
|
||||||
|
|
||||||
if(!(entity instanceof EntityLivingBase)) {
|
if(!(entity instanceof EntityLivingBase)) {
|
||||||
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, beam.damage);
|
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, beam.damage);
|
||||||
|
|||||||
@ -84,7 +84,7 @@ public class GunFactory {
|
|||||||
G40_HE, G40_HEAT, G40_DEMO, G40_INC, G40_PHOSPHORUS,
|
G40_HE, G40_HEAT, G40_DEMO, G40_INC, G40_PHOSPHORUS,
|
||||||
ROCKET_HE, ROCKET_HEAT, ROCKET_DEMO, ROCKET_INC, ROCKET_PHOSPHORUS,
|
ROCKET_HE, ROCKET_HEAT, ROCKET_DEMO, ROCKET_INC, ROCKET_PHOSPHORUS,
|
||||||
FLAME_DIESEL, FLAME_GAS, FLAME_NAPALM, FLAME_BALEFIRE,
|
FLAME_DIESEL, FLAME_GAS, FLAME_NAPALM, FLAME_BALEFIRE,
|
||||||
CAPACITOR, CAPACITOR_OVERCHARGE, CAPACITOR_BLACKLIGHTNING,
|
CAPACITOR, CAPACITOR_OVERCHARGE,
|
||||||
TAU_URANIUM,
|
TAU_URANIUM,
|
||||||
COIL_TUNGSTEN, COIL_FERROURANIUM,
|
COIL_TUNGSTEN, COIL_FERROURANIUM,
|
||||||
NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE
|
NUKE_STANDARD, NUKE_DEMO, NUKE_HIGH, NUKE_TOTS, NUKE_HIVE
|
||||||
|
|||||||
@ -52,6 +52,7 @@ public class GunFactoryClient {
|
|||||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_congolake, new ItemRenderCongoLake());
|
MinecraftForgeClient.registerItemRenderer(ModItems.gun_congolake, new ItemRenderCongoLake());
|
||||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer, new ItemRenderFlamer(ResourceManager.flamethrower_tex));
|
MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer, new ItemRenderFlamer(ResourceManager.flamethrower_tex));
|
||||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer_topaz, new ItemRenderFlamer(ResourceManager.flamethrower_topaz_tex));
|
MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer_topaz, new ItemRenderFlamer(ResourceManager.flamethrower_topaz_tex));
|
||||||
|
MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer_daybreaker, new ItemRenderFlamer(ResourceManager.flamethrower_daybreaker_tex));
|
||||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_lag, new ItemRenderLAG());
|
MinecraftForgeClient.registerItemRenderer(ModItems.gun_lag, new ItemRenderLAG());
|
||||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi, new ItemRenderUzi());
|
MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi, new ItemRenderUzi());
|
||||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_akimbo, new ItemRenderUziAkimbo());
|
MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_akimbo, new ItemRenderUziAkimbo());
|
||||||
@ -183,6 +184,7 @@ public class GunFactoryClient {
|
|||||||
((ItemGunBaseNT) ModItems.gun_congolake) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
|
((ItemGunBaseNT) ModItems.gun_congolake) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
|
||||||
((ItemGunBaseNT) ModItems.gun_flamer) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO_NOCOUNTER);
|
((ItemGunBaseNT) ModItems.gun_flamer) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO_NOCOUNTER);
|
||||||
((ItemGunBaseNT) ModItems.gun_flamer_topaz) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO_NOCOUNTER);
|
((ItemGunBaseNT) ModItems.gun_flamer_topaz) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO_NOCOUNTER);
|
||||||
|
((ItemGunBaseNT) ModItems.gun_flamer_daybreaker) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO_NOCOUNTER);
|
||||||
((ItemGunBaseNT) ModItems.gun_uzi) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
|
((ItemGunBaseNT) ModItems.gun_uzi) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
|
||||||
((ItemGunBaseNT) ModItems.gun_spas12) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
|
((ItemGunBaseNT) ModItems.gun_spas12) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
|
||||||
((ItemGunBaseNT) ModItems.gun_panzerschreck) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
|
((ItemGunBaseNT) ModItems.gun_panzerschreck) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
|
||||||
|
|||||||
@ -230,7 +230,7 @@ public class Lego {
|
|||||||
if(i == 0 && config.blackPowder) BlackPowderHelper.composeEffect(entity.worldObj, mk4.posX, mk4.posY, mk4.posZ, mk4.motionX, mk4.motionY, mk4.motionZ, 10, 0.25F, 0.5F, 10, 0.25F);
|
if(i == 0 && config.blackPowder) BlackPowderHelper.composeEffect(entity.worldObj, mk4.posX, mk4.posY, mk4.posZ, mk4.motionX, mk4.motionY, mk4.motionZ, 10, 0.25F, 0.5F, 10, 0.25F);
|
||||||
entity.worldObj.spawnEntityInWorld(mk4);
|
entity.worldObj.spawnEntityInWorld(mk4);
|
||||||
} else if(config.pType == ProjectileType.BULLET_CHUNKLOADING) {
|
} else if(config.pType == ProjectileType.BULLET_CHUNKLOADING) {
|
||||||
EntityBulletBaseMK4 mk4 = new EntityBulletBaseMK4CL(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset);
|
EntityBulletBaseMK4CL mk4 = new EntityBulletBaseMK4CL(entity, config, damage, spread, sideOffset, heightOffset, forwardOffset);
|
||||||
if(ItemGunBaseNT.getIsLockedOn(stack)) mk4.lockonTarget = entity.worldObj.getEntityByID(ItemGunBaseNT.getLockonTarget(stack));
|
if(ItemGunBaseNT.getIsLockedOn(stack)) mk4.lockonTarget = entity.worldObj.getEntityByID(ItemGunBaseNT.getLockonTarget(stack));
|
||||||
if(i == 0 && config.blackPowder) BlackPowderHelper.composeEffect(entity.worldObj, mk4.posX, mk4.posY, mk4.posZ, mk4.motionX, mk4.motionY, mk4.motionZ, 10, 0.25F, 0.5F, 10, 0.25F);
|
if(i == 0 && config.blackPowder) BlackPowderHelper.composeEffect(entity.worldObj, mk4.posX, mk4.posY, mk4.posZ, mk4.motionX, mk4.motionY, mk4.motionZ, 10, 0.25F, 0.5F, 10, 0.25F);
|
||||||
entity.worldObj.spawnEntityInWorld(mk4);
|
entity.worldObj.spawnEntityInWorld(mk4);
|
||||||
@ -275,7 +275,7 @@ public class Lego {
|
|||||||
public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range) { standardExplode(bullet, mop, range, 1F); }
|
public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range) { standardExplode(bullet, mop, range, 1F); }
|
||||||
public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range, float damageMod) {
|
public static void standardExplode(EntityBulletBaseMK4 bullet, MovingObjectPosition mop, float range, float damageMod) {
|
||||||
ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, range);
|
ExplosionVNT vnt = new ExplosionVNT(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, range);
|
||||||
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage * damageMod));
|
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, bullet.damage * damageMod).setupPiercing(bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent));
|
||||||
vnt.setPlayerProcessor(new PlayerProcessorStandard());
|
vnt.setPlayerProcessor(new PlayerProcessorStandard());
|
||||||
vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F));
|
vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F));
|
||||||
vnt.explode();
|
vnt.explode();
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import com.hbm.render.anim.BusAnimation;
|
|||||||
import com.hbm.render.anim.BusAnimationSequence;
|
import com.hbm.render.anim.BusAnimationSequence;
|
||||||
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
||||||
import com.hbm.render.anim.HbmAnimations.AnimType;
|
import com.hbm.render.anim.HbmAnimations.AnimType;
|
||||||
|
import com.hbm.util.DamageResistanceHandler.DamageClass;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
@ -79,9 +80,9 @@ public class XFactoryAccelerator {
|
|||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
|
|
||||||
tau_uranium = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false)
|
tau_uranium = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false)
|
||||||
.setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT);
|
.setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT);
|
||||||
tau_uranium_charge = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true)
|
tau_uranium_charge = new BulletConfig().setItem(EnumAmmo.TAU_URANIUM).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(5).setRenderRotations(false).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true)
|
||||||
.setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT);
|
.setOnBeamImpact(BulletConfig.LAMBDA_BEAM_HIT);
|
||||||
|
|
||||||
coil_tungsten = new BulletConfig().setItem(EnumAmmo.COIL_TUNGSTEN).setVel(7.5F).setLife(50).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true)
|
coil_tungsten = new BulletConfig().setItem(EnumAmmo.COIL_TUNGSTEN).setVel(7.5F).setLife(50).setDoesPenetrate(true).setDamageFalloutByPen(false).setSpectral(true)
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import com.hbm.render.anim.BusAnimation;
|
|||||||
import com.hbm.render.anim.BusAnimationSequence;
|
import com.hbm.render.anim.BusAnimationSequence;
|
||||||
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
||||||
import com.hbm.render.anim.HbmAnimations.AnimType;
|
import com.hbm.render.anim.HbmAnimations.AnimType;
|
||||||
|
import com.hbm.util.DamageResistanceHandler.DamageClass;
|
||||||
|
|
||||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
@ -88,22 +89,19 @@ public class XFactoryEnergy {
|
|||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
|
|
||||||
energy_tesla = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true)
|
energy_tesla = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true)
|
||||||
.setOnBeamImpact(LAMBDA_LIGHTNING_HIT);
|
.setOnBeamImpact(LAMBDA_LIGHTNING_HIT);
|
||||||
energy_tesla_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true)
|
energy_tesla_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setupDamageClass(DamageClass.ELECTRIC).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true)
|
||||||
.setDamage(1.5F).setOnBeamImpact(LAMBDA_LIGHTNING_HIT);
|
.setDamage(1.5F).setOnBeamImpact(LAMBDA_LIGHTNING_HIT);
|
||||||
energy_tesla_blacklightning = new BulletConfig().setItem(EnumAmmo.CAPACITOR_BLACKLIGHTNING).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true)
|
|
||||||
.setDamage(5F).setOnBeamImpact(LAMBDA_LIGHTNING_HIT);
|
|
||||||
|
|
||||||
energy_las = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT);
|
energy_las = new BulletConfig().setItem(EnumAmmo.CAPACITOR).setupDamageClass(DamageClass.LASER).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT);
|
||||||
energy_las_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT);
|
energy_las_overcharge = new BulletConfig().setItem(EnumAmmo.CAPACITOR_OVERCHARGE).setupDamageClass(DamageClass.LASER).setBeam().setSpread(0.0F).setLife(5).setRenderRotations(false).setDoesPenetrate(true).setOnBeamImpact(BulletConfig.LAMBDA_STANDARD_BEAM_HIT);
|
||||||
energy_las_blacklightning = new BulletConfig().setItem(EnumAmmo.CAPACITOR_BLACKLIGHTNING).setBeam().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()
|
ModItems.gun_tesla_cannon = 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(33).reloadSequential(true).crosshair(Crosshair.CIRCLE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(15F).delay(20).reload(44).jam(19).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F)
|
.dmg(15F).delay(20).reload(44).jam(19).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F)
|
||||||
.mag(new MagazineBelt().addConfigs(energy_tesla, energy_tesla_overcharge, energy_tesla_blacklightning))
|
.mag(new MagazineBelt().addConfigs(energy_tesla, energy_tesla_overcharge))
|
||||||
.offset(0.75, 0, -0.375)
|
.offset(0.75, 0, -0.375)
|
||||||
.setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL))
|
.setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL))
|
||||||
.setupStandardConfiguration()
|
.setupStandardConfiguration()
|
||||||
@ -114,7 +112,7 @@ public class XFactoryEnergy {
|
|||||||
.dura(2_000).draw(10).inspect(26).reloadSequential(true).crosshair(Crosshair.CIRCLE).scopeTexture(scope_luna)
|
.dura(2_000).draw(10).inspect(26).reloadSequential(true).crosshair(Crosshair.CIRCLE).scopeTexture(scope_luna)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(15F).delay(8).reload(44).jam(36).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))
|
.mag(new MagazineFullReload(0, 24).addConfigs(energy_las, energy_las_overcharge))
|
||||||
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
||||||
.setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL))
|
.setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL))
|
||||||
.setupStandardConfiguration()
|
.setupStandardConfiguration()
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import com.hbm.render.anim.BusAnimation;
|
|||||||
import com.hbm.render.anim.BusAnimationSequence;
|
import com.hbm.render.anim.BusAnimationSequence;
|
||||||
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
||||||
import com.hbm.render.anim.HbmAnimations.AnimType;
|
import com.hbm.render.anim.HbmAnimations.AnimType;
|
||||||
|
import com.hbm.util.DamageResistanceHandler.DamageClass;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
@ -49,6 +50,11 @@ public class XFactoryFlamer {
|
|||||||
public static BulletConfig flame_topaz_napalm;
|
public static BulletConfig flame_topaz_napalm;
|
||||||
public static BulletConfig flame_topaz_balefire;
|
public static BulletConfig flame_topaz_balefire;
|
||||||
|
|
||||||
|
public static BulletConfig flame_daybreaker_diesel;
|
||||||
|
public static BulletConfig flame_daybreaker_gas;
|
||||||
|
public static BulletConfig flame_daybreaker_napalm;
|
||||||
|
public static BulletConfig flame_daybreaker_balefire;
|
||||||
|
|
||||||
public static Consumer<Entity> LAMBDA_FIRE = (bullet) -> {
|
public static Consumer<Entity> LAMBDA_FIRE = (bullet) -> {
|
||||||
if(bullet.worldObj.isRemote && MainRegistry.proxy.me().getDistanceToEntity(bullet) < 100) FlameCreator.composeEffectClient(bullet.worldObj, bullet.posX, bullet.posY - 0.125, bullet.posZ, FlameCreator.META_FIRE);
|
if(bullet.worldObj.isRemote && MainRegistry.proxy.me().getDistanceToEntity(bullet) < 100) FlameCreator.composeEffectClient(bullet.worldObj, bullet.posX, bullet.posY - 0.125, bullet.posZ, FlameCreator.META_FIRE);
|
||||||
};
|
};
|
||||||
@ -102,15 +108,28 @@ public class XFactoryFlamer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
flame_diesel = new BulletConfig().setItem(EnumAmmo.FLAME_DIESEL).setLife(100).setVel(1F).setGrav(0.02D).setReloadCount(300).setSelfDamageDelay(20).setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_DIESEL);
|
flame_diesel = new BulletConfig().setItem(EnumAmmo.FLAME_DIESEL).setupDamageClass(DamageClass.FIRE).setLife(100).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20)
|
||||||
flame_gas = new BulletConfig().setItem(EnumAmmo.FLAME_GAS).setLife(10).setSpread(0.05F).setVel(1F).setGrav(0.0D).setReloadCount(300).setSelfDamageDelay(20).setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_GAS);
|
.setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_DIESEL);
|
||||||
flame_napalm = new BulletConfig().setItem(EnumAmmo.FLAME_NAPALM).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(300).setSelfDamageDelay(20).setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_NAPALM);
|
flame_gas = new BulletConfig().setItem(EnumAmmo.FLAME_GAS).setupDamageClass(DamageClass.FIRE).setLife(10).setSpread(0.05F).setVel(1F).setGrav(0.0D).setReloadCount(500).setSelfDamageDelay(20)
|
||||||
flame_balefire = new BulletConfig().setItem(EnumAmmo.FLAME_BALEFIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(300).setSelfDamageDelay(20).setOnUpdate(LAMBDA_BALEFIRE).setOnRicochet(LAMBDA_LINGER_BALEFIRE);
|
.setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_GAS);
|
||||||
|
flame_napalm = new BulletConfig().setItem(EnumAmmo.FLAME_NAPALM).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20)
|
||||||
|
.setOnUpdate(LAMBDA_FIRE).setOnRicochet(LAMBDA_LINGER_NAPALM);
|
||||||
|
flame_balefire = new BulletConfig().setItem(EnumAmmo.FLAME_BALEFIRE).setupDamageClass(DamageClass.FIRE).setLife(200).setVel(1F).setGrav(0.02D).setReloadCount(500).setSelfDamageDelay(20)
|
||||||
|
.setOnUpdate(LAMBDA_BALEFIRE).setOnRicochet(LAMBDA_LINGER_BALEFIRE);
|
||||||
|
|
||||||
flame_topaz_diesel = flame_diesel.clone().setLife(60).setGrav(0.0D).setReloadCount(500).setProjectiles(2).setSpread(0.05F);
|
flame_topaz_diesel = flame_diesel .clone().setProjectiles(2).setSpread(0.05F).setLife(60).setGrav(0.0D);
|
||||||
flame_topaz_gas = flame_gas.clone().setReloadCount(500).setProjectiles(2).setSpread(0.05F);
|
flame_topaz_gas = flame_gas .clone().setProjectiles(2).setSpread(0.05F);
|
||||||
flame_topaz_napalm = flame_napalm.clone().setLife(60).setGrav(0.0D).setReloadCount(500).setProjectiles(2).setSpread(0.05F);
|
flame_topaz_napalm = flame_napalm .clone().setProjectiles(2).setSpread(0.05F).setLife(60).setGrav(0.0D);
|
||||||
flame_topaz_balefire = flame_balefire.clone().setLife(60).setGrav(0.0D).setReloadCount(500).setProjectiles(2).setSpread(0.05F);
|
flame_topaz_balefire = flame_balefire .clone().setProjectiles(2).setSpread(0.05F).setLife(60).setGrav(0.0D);
|
||||||
|
|
||||||
|
flame_daybreaker_diesel = flame_diesel.clone().setLife(200).setVel(2F).setGrav(0.035D)
|
||||||
|
.setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 5F); spawnFire(bullet, mop, 6F, 2F, 200, EntityFireLingering.TYPE_DIESEL); bullet.setDead(); });
|
||||||
|
flame_daybreaker_gas = flame_gas.clone().setLife(200).setVel(2F).setGrav(0.035D)
|
||||||
|
.setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 5F); bullet.setDead(); });
|
||||||
|
flame_daybreaker_napalm = flame_napalm.clone().setLife(200).setVel(2F).setGrav(0.035D)
|
||||||
|
.setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 7.5F); spawnFire(bullet, mop, 6F, 2F, 300, EntityFireLingering.TYPE_DIESEL); bullet.setDead(); });
|
||||||
|
flame_daybreaker_balefire = flame_balefire.clone().setLife(200).setVel(2F).setGrav(0.035D)
|
||||||
|
.setOnImpact((bullet, mop) -> { Lego.standardExplode(bullet, mop, 5F); spawnFire(bullet, mop, 7.5F, 2.5F, 400, EntityFireLingering.TYPE_BALEFIRE); bullet.setDead(); });
|
||||||
|
|
||||||
ModItems.gun_flamer = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_flamer = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE)
|
.dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE)
|
||||||
@ -118,7 +137,7 @@ public class XFactoryFlamer {
|
|||||||
.dmg(10F).delay(1).auto(true).reload(90).jam(17)
|
.dmg(10F).delay(1).auto(true).reload(90).jam(17)
|
||||||
.mag(new MagazineFullReload(0, 300).addConfigs(flame_diesel, flame_gas, flame_napalm, flame_balefire))
|
.mag(new MagazineFullReload(0, 300).addConfigs(flame_diesel, flame_gas, flame_napalm, flame_balefire))
|
||||||
.offset(0.75, -0.0625, -0.25D)
|
.offset(0.75, -0.0625, -0.25D)
|
||||||
.setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL))
|
.setupStandardFire())
|
||||||
.setupStandardConfiguration()
|
.setupStandardConfiguration()
|
||||||
.anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER)
|
.anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER)
|
||||||
).setUnlocalizedName("gun_flamer");
|
).setUnlocalizedName("gun_flamer");
|
||||||
@ -128,10 +147,20 @@ public class XFactoryFlamer {
|
|||||||
.dmg(10F).delay(1).auto(true).reload(90).jam(17)
|
.dmg(10F).delay(1).auto(true).reload(90).jam(17)
|
||||||
.mag(new MagazineFullReload(0, 500).addConfigs(flame_topaz_diesel, flame_topaz_gas, flame_topaz_napalm, flame_topaz_balefire))
|
.mag(new MagazineFullReload(0, 500).addConfigs(flame_topaz_diesel, flame_topaz_gas, flame_topaz_napalm, flame_topaz_balefire))
|
||||||
.offset(0.75, -0.0625, -0.25D)
|
.offset(0.75, -0.0625, -0.25D)
|
||||||
.setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL))
|
.setupStandardFire())
|
||||||
.setupStandardConfiguration()
|
.setupStandardConfiguration()
|
||||||
.anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER)
|
.anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER)
|
||||||
).setUnlocalizedName("gun_flamer_topaz");
|
).setUnlocalizedName("gun_flamer_topaz");
|
||||||
|
ModItems.gun_flamer_daybreaker = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
||||||
|
.dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE)
|
||||||
|
.rec(new Receiver(0)
|
||||||
|
.dmg(10F).delay(10).auto(true).reload(90).jam(17)
|
||||||
|
.mag(new MagazineFullReload(0, 50).addConfigs(flame_daybreaker_diesel, flame_daybreaker_gas, flame_daybreaker_napalm, flame_daybreaker_balefire))
|
||||||
|
.offset(0.75, -0.0625, -0.25D)
|
||||||
|
.setupStandardFire())
|
||||||
|
.setupStandardConfiguration()
|
||||||
|
.anim(LAMBDA_FLAMER_ANIMS).orchestra(Orchestras.ORCHESTRA_FLAMER)
|
||||||
|
).setUnlocalizedName("gun_flamer_daybreaker");
|
||||||
|
|
||||||
ModItems.gun_chemthrower = new ItemGunChemthrower(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_chemthrower = new ItemGunChemthrower(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(90_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(90_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
|
|||||||
@ -31,6 +31,7 @@ import com.hbm.util.EntityDamageUtil;
|
|||||||
import com.hbm.util.Vec3NT;
|
import com.hbm.util.Vec3NT;
|
||||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||||
import com.hbm.util.ContaminationUtil.HazardType;
|
import com.hbm.util.ContaminationUtil.HazardType;
|
||||||
|
import com.hbm.util.DamageResistanceHandler.DamageClass;
|
||||||
|
|
||||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
@ -78,7 +79,7 @@ public class XFactoryFolly {
|
|||||||
for(int ix = x - 1; ix <= x + 1; ix++) for(int iy = y - 1; iy <= y + 1; iy++) for(int iz = z - 1; iz <= z + 1; iz++) {
|
for(int ix = x - 1; ix <= x + 1; ix++) for(int iy = y - 1; iy <= y + 1; iy++) for(int iz = z - 1; iz <= z + 1; iz++) {
|
||||||
if(iy > 0 && iy < 256) beam.worldObj.setBlock(ix, iy, iz, Blocks.air);
|
if(iy > 0 && iy < 256) beam.worldObj.setBlock(ix, iy, iz, Blocks.air);
|
||||||
AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(ix - 1, iy - 1, iz - 1, ix + 2, iy + 2, iz + 2);
|
AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(ix - 1, iy - 1, iz - 1, ix + 2, iy + 2, iz + 2);
|
||||||
for(Entity e : entities) if(e != beam.thrower && e.boundingBox.intersectsWith(aabb)) EntityDamageUtil.attackEntityFromIgnoreIFrame(e, beam.config.getDamage(beam, beam.thrower, true), beam.damage);
|
for(Entity e : entities) if(e != beam.thrower && e.boundingBox.intersectsWith(aabb)) EntityDamageUtil.attackEntityFromIgnoreIFrame(e, beam.config.getDamage(beam, beam.thrower, beam.config.dmgClass), beam.damage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -93,7 +94,7 @@ public class XFactoryFolly {
|
|||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
|
|
||||||
folly_sm = new BulletConfig().setItem(EnumAmmoSecret.FOLLY_SM).setBeam().setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setSpectral(true).setDoesPenetrate(true)
|
folly_sm = new BulletConfig().setItem(EnumAmmoSecret.FOLLY_SM).setupDamageClass(DamageClass.SUBATOMIC).setBeam().setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setSpectral(true).setDoesPenetrate(true)
|
||||||
.setOnUpdate(LAMBDA_SM_UPDATE);
|
.setOnUpdate(LAMBDA_SM_UPDATE);
|
||||||
folly_nuke = new BulletConfig().setItem(EnumAmmoSecret.FOLLY_NUKE).setChunkloading().setLife(600).setVel(4F).setGrav(0.015D)
|
folly_nuke = new BulletConfig().setItem(EnumAmmoSecret.FOLLY_NUKE).setChunkloading().setLife(600).setVel(4F).setGrav(0.015D)
|
||||||
.setOnImpact(LAMBDA_NUKE_IMPACT);
|
.setOnImpact(LAMBDA_NUKE_IMPACT);
|
||||||
|
|||||||
@ -988,6 +988,7 @@ public class ResourceManager {
|
|||||||
public static final ResourceLocation liberator_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/liberator.png");
|
public static final ResourceLocation liberator_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/liberator.png");
|
||||||
public static final ResourceLocation flamethrower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamethrower.png");
|
public static final ResourceLocation flamethrower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamethrower.png");
|
||||||
public static final ResourceLocation flamethrower_topaz_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamethrower_topaz.png");
|
public static final ResourceLocation flamethrower_topaz_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamethrower_topaz.png");
|
||||||
|
public static final ResourceLocation flamethrower_daybreaker_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamethrower_daybreaker.png");
|
||||||
public static final ResourceLocation mike_hawk_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lag.png");
|
public static final ResourceLocation mike_hawk_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/lag.png");
|
||||||
public static final ResourceLocation uzi_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/uzi.png");
|
public static final ResourceLocation uzi_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/uzi.png");
|
||||||
public static final ResourceLocation panzerschreck_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/panzerschreck.png");
|
public static final ResourceLocation panzerschreck_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/panzerschreck.png");
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.hbm.render.item.weapon.sedna;
|
|||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||||
import com.hbm.items.weapon.sedna.mags.IMagazine;
|
import com.hbm.items.weapon.sedna.mags.IMagazine;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
@ -63,6 +64,7 @@ public class ItemRenderFlamer extends ItemRenderWeaponBase {
|
|||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
HbmAnimations.applyRelevantTransformation("Gun");
|
HbmAnimations.applyRelevantTransformation("Gun");
|
||||||
ResourceManager.flamethrower.renderPart("Gun");
|
ResourceManager.flamethrower.renderPart("Gun");
|
||||||
|
if(hasShield(stack)) ResourceManager.flamethrower.renderPart("HeatShield");
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
@ -70,7 +72,6 @@ public class ItemRenderFlamer extends ItemRenderWeaponBase {
|
|||||||
ResourceManager.flamethrower.renderPart("Tank");
|
ResourceManager.flamethrower.renderPart("Tank");
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
|
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
HbmAnimations.applyRelevantTransformation("Gauge");
|
HbmAnimations.applyRelevantTransformation("Gauge");
|
||||||
GL11.glTranslated(1.25, 1.25, 0);
|
GL11.glTranslated(1.25, 1.25, 0);
|
||||||
@ -111,6 +112,11 @@ public class ItemRenderFlamer extends ItemRenderWeaponBase {
|
|||||||
ResourceManager.flamethrower.renderPart("Gun");
|
ResourceManager.flamethrower.renderPart("Gun");
|
||||||
ResourceManager.flamethrower.renderPart("Tank");
|
ResourceManager.flamethrower.renderPart("Tank");
|
||||||
ResourceManager.flamethrower.renderPart("Gauge");
|
ResourceManager.flamethrower.renderPart("Gauge");
|
||||||
|
if(hasShield(stack)) ResourceManager.flamethrower.renderPart("HeatShield");
|
||||||
GL11.glShadeModel(GL11.GL_FLAT);
|
GL11.glShadeModel(GL11.GL_FLAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasShield(ItemStack stack) {
|
||||||
|
return stack.getItem() == ModItems.gun_flamer_daybreaker;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,6 +33,15 @@ public class DamageResistanceHandler {
|
|||||||
public static HashMap<Item, ResistanceStats> itemStats = new HashMap();
|
public static HashMap<Item, ResistanceStats> itemStats = new HashMap();
|
||||||
public static HashMap<Quartet<Item, Item, Item, Item>, ResistanceStats> setStats = new HashMap();
|
public static HashMap<Quartet<Item, Item, Item, Item>, ResistanceStats> setStats = new HashMap();
|
||||||
public static HashMap<Class<? extends Entity>, ResistanceStats> entityStats = new HashMap();
|
public static HashMap<Class<? extends Entity>, ResistanceStats> entityStats = new HashMap();
|
||||||
|
|
||||||
|
public static enum DamageClass {
|
||||||
|
PHYSICAL,
|
||||||
|
FIRE,
|
||||||
|
EXPLOSIVE,
|
||||||
|
ELECTRIC,
|
||||||
|
LASER,
|
||||||
|
SUBATOMIC
|
||||||
|
}
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
entityStats.put(EntityCreeper.class, new ResistanceStats().add(KEY_EXPLOSION, 2F, 0.5F));
|
entityStats.put(EntityCreeper.class, new ResistanceStats().add(KEY_EXPLOSION, 2F, 0.5F));
|
||||||
|
|||||||
@ -48,6 +48,7 @@ public class EntityDamageUtil {
|
|||||||
if(ForgeHooks.onLivingAttack(living, source, amount) && allowSpecialCancel) return false;
|
if(ForgeHooks.onLivingAttack(living, source, amount) && allowSpecialCancel) return false;
|
||||||
if(living.isEntityInvulnerable()) return false;
|
if(living.isEntityInvulnerable()) return false;
|
||||||
if(living.worldObj.isRemote) return false;
|
if(living.worldObj.isRemote) return false;
|
||||||
|
if(living instanceof EntityPlayer && ((EntityPlayer) living).capabilities.disableDamage && !source.canHarmInCreative()) return false;
|
||||||
|
|
||||||
living.entityAge = 0;
|
living.entityAge = 0;
|
||||||
if(living.getHealth() <= 0.0F) return false;
|
if(living.getHealth() <= 0.0F) return false;
|
||||||
@ -151,8 +152,6 @@ public class EntityDamageUtil {
|
|||||||
float armor = amount * (float) i;
|
float armor = amount * (float) i;
|
||||||
damageArmorNT(living, amount);
|
damageArmorNT(living, amount);
|
||||||
amount = armor / 25.0F;
|
amount = armor / 25.0F;
|
||||||
|
|
||||||
//TODO: special handling depending on armor stats
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return amount;
|
return amount;
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.5 KiB |
Loading…
x
Reference in New Issue
Block a user