now you're prepped to commit homicide
@ -95,6 +95,8 @@ public class EntityBulletBeamBase extends Entity implements IEntityAdditionalSpa
|
||||
return;
|
||||
}
|
||||
|
||||
if(config.onUpdate != null) config.onUpdate.accept(this);
|
||||
|
||||
super.onUpdate();
|
||||
|
||||
if(!worldObj.isRemote && this.ticksExisted > config.expires) this.setDead();
|
||||
|
||||
@ -193,7 +193,7 @@ public abstract class EntityThrowableNT extends Entity implements IProjectile {
|
||||
for(int j = 0; j < list.size(); ++j) {
|
||||
Entity entity = (Entity) list.get(j);
|
||||
|
||||
if(entity.canBeCollidedWith() && (entity != thrower || this.ticksInAir >= this.selfDamageDelay())) {
|
||||
if(entity.canBeCollidedWith() && (entity != thrower || this.ticksInAir >= this.selfDamageDelay()) && entity.isEntityAlive()) {
|
||||
double hitbox = 0.3F;
|
||||
AxisAlignedBB aabb = entity.boundingBox.expand(hitbox, hitbox, hitbox);
|
||||
MovingObjectPosition hitMop = aabb.calculateIntercept(pos, nextPos);
|
||||
|
||||
@ -1603,6 +1603,7 @@ public class ModItems {
|
||||
public static Item gun_congolake;
|
||||
public static Item gun_flamer;
|
||||
public static Item gun_uzi;
|
||||
public static Item gun_uzi_akimbo;
|
||||
public static Item gun_spas12;
|
||||
public static Item gun_panzerschreck;
|
||||
public static Item gun_g3;
|
||||
@ -4573,69 +4574,68 @@ public class ModItems {
|
||||
beta = new ItemDrop().setUnlocalizedName("beta").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":beta");
|
||||
//oxy_mask = new ArmorModel(ArmorMaterial.IRON, 7, 0).setUnlocalizedName("oxy_mask").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":oxy_mask");
|
||||
|
||||
schrabidium_helmet = new ArmorFSB(MainRegistry.aMatSchrab, 0, RefStrings.MODID + ":textures/armor/schrabidium_1.png").setCap(4F).setMod(0.1F)
|
||||
schrabidium_helmet = new ArmorFSB(MainRegistry.aMatSchrab, 0, RefStrings.MODID + ":textures/armor/schrabidium_1.png")
|
||||
.addEffect(new PotionEffect(Potion.digSpeed.id, 20, 2))
|
||||
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2))
|
||||
.addEffect(new PotionEffect(Potion.jump.id, 20, 1))
|
||||
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2))
|
||||
.setFireproof(true).setUnlocalizedName("schrabidium_helmet").setTextureName(RefStrings.MODID + ":schrabidium_helmet");
|
||||
.setUnlocalizedName("schrabidium_helmet").setTextureName(RefStrings.MODID + ":schrabidium_helmet");
|
||||
schrabidium_plate = new ArmorFSB(MainRegistry.aMatSchrab, 1, RefStrings.MODID + ":textures/armor/schrabidium_1.png").cloneStats((ArmorFSB) schrabidium_helmet).setUnlocalizedName("schrabidium_plate").setTextureName(RefStrings.MODID + ":schrabidium_plate");
|
||||
schrabidium_legs = new ArmorFSB(MainRegistry.aMatSchrab, 2, RefStrings.MODID + ":textures/armor/schrabidium_2.png").cloneStats((ArmorFSB) schrabidium_helmet).setCap(4F).setMod(0.1F).setUnlocalizedName("schrabidium_legs").setTextureName(RefStrings.MODID + ":schrabidium_legs");
|
||||
schrabidium_boots = new ArmorFSB(MainRegistry.aMatSchrab, 3, RefStrings.MODID + ":textures/armor/schrabidium_1.png").cloneStats((ArmorFSB) schrabidium_helmet).setCap(4F).setMod(0.1F).setUnlocalizedName("schrabidium_boots").setTextureName(RefStrings.MODID + ":schrabidium_boots");
|
||||
bismuth_helmet = new ArmorBismuth(MainRegistry.aMatBismuth, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setCap(8F).setMod(0.3F)
|
||||
.addResistance("fall", 0)
|
||||
schrabidium_legs = new ArmorFSB(MainRegistry.aMatSchrab, 2, RefStrings.MODID + ":textures/armor/schrabidium_2.png").cloneStats((ArmorFSB) schrabidium_helmet).setUnlocalizedName("schrabidium_legs").setTextureName(RefStrings.MODID + ":schrabidium_legs");
|
||||
schrabidium_boots = new ArmorFSB(MainRegistry.aMatSchrab, 3, RefStrings.MODID + ":textures/armor/schrabidium_1.png").cloneStats((ArmorFSB) schrabidium_helmet).setUnlocalizedName("schrabidium_boots").setTextureName(RefStrings.MODID + ":schrabidium_boots");
|
||||
bismuth_helmet = new ArmorBismuth(MainRegistry.aMatBismuth, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png")
|
||||
.addEffect(new PotionEffect(Potion.jump.id, 20, 6))
|
||||
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 6))
|
||||
.addEffect(new PotionEffect(Potion.regeneration.id, 20, 1))
|
||||
.addEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0))
|
||||
.setDashCount(3)
|
||||
.setUnlocalizedName("bismuth_helmet").setTextureName(RefStrings.MODID + ":bismuth_helmet");
|
||||
bismuth_plate = new ArmorBismuth(MainRegistry.aMatBismuth, 1, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) bismuth_helmet).setCap(8F).setMod(0.3F).setUnlocalizedName("bismuth_plate").setTextureName(RefStrings.MODID + ":bismuth_plate");
|
||||
bismuth_legs = new ArmorBismuth(MainRegistry.aMatBismuth, 2, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) bismuth_helmet).setCap(8F).setMod(0.3F).setUnlocalizedName("bismuth_legs").setTextureName(RefStrings.MODID + ":bismuth_legs");
|
||||
bismuth_boots = new ArmorBismuth(MainRegistry.aMatBismuth, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) bismuth_helmet).setCap(8F).setMod(0.3F).setUnlocalizedName("bismuth_boots").setTextureName(RefStrings.MODID + ":bismuth_boots");
|
||||
titanium_helmet = new ArmorFSB(MainRegistry.aMatTitan, 0, RefStrings.MODID + ":textures/armor/titanium_1.png").setMod(0.85F).setUnlocalizedName("titanium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_helmet");
|
||||
bismuth_plate = new ArmorBismuth(MainRegistry.aMatBismuth, 1, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) bismuth_helmet).setUnlocalizedName("bismuth_plate").setTextureName(RefStrings.MODID + ":bismuth_plate");
|
||||
bismuth_legs = new ArmorBismuth(MainRegistry.aMatBismuth, 2, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) bismuth_helmet).setUnlocalizedName("bismuth_legs").setTextureName(RefStrings.MODID + ":bismuth_legs");
|
||||
bismuth_boots = new ArmorBismuth(MainRegistry.aMatBismuth, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) bismuth_helmet).setUnlocalizedName("bismuth_boots").setTextureName(RefStrings.MODID + ":bismuth_boots");
|
||||
titanium_helmet = new ArmorFSB(MainRegistry.aMatTitan, 0, RefStrings.MODID + ":textures/armor/titanium_1.png").setUnlocalizedName("titanium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_helmet");
|
||||
titanium_plate = new ArmorFSB(MainRegistry.aMatTitan, 1, RefStrings.MODID + ":textures/armor/titanium_1.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_plate");
|
||||
titanium_legs = new ArmorFSB(MainRegistry.aMatTitan, 2, RefStrings.MODID + ":textures/armor/titanium_2.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_legs");
|
||||
titanium_boots = new ArmorFSB(MainRegistry.aMatTitan, 3, RefStrings.MODID + ":textures/armor/titanium_1.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_boots").setTextureName(RefStrings.MODID + ":titanium_boots");
|
||||
steel_helmet = new ArmorFSB(MainRegistry.aMatSteel, 0, RefStrings.MODID + ":textures/armor/steel_1.png").setMod(0.9F).setUnlocalizedName("steel_helmet").setTextureName(RefStrings.MODID + ":steel_helmet");
|
||||
steel_helmet = new ArmorFSB(MainRegistry.aMatSteel, 0, RefStrings.MODID + ":textures/armor/steel_1.png").setUnlocalizedName("steel_helmet").setTextureName(RefStrings.MODID + ":steel_helmet");
|
||||
steel_plate = new ArmorFSB(MainRegistry.aMatSteel, 1, RefStrings.MODID + ":textures/armor/steel_1.png").cloneStats((ArmorFSB) steel_helmet).setUnlocalizedName("steel_plate").setTextureName(RefStrings.MODID + ":steel_plate");
|
||||
steel_legs = new ArmorFSB(MainRegistry.aMatSteel, 2, RefStrings.MODID + ":textures/armor/steel_2.png").cloneStats((ArmorFSB) steel_helmet).setUnlocalizedName("steel_legs").setTextureName(RefStrings.MODID + ":steel_legs");
|
||||
steel_boots = new ArmorFSB(MainRegistry.aMatSteel, 3, RefStrings.MODID + ":textures/armor/steel_1.png").cloneStats((ArmorFSB) steel_helmet).setUnlocalizedName("steel_boots").setTextureName(RefStrings.MODID + ":steel_boots");
|
||||
alloy_helmet = new ArmorFSB(MainRegistry.aMatAlloy, 0, RefStrings.MODID + ":textures/armor/alloy_1.png").setMod(0.75F).setUnlocalizedName("alloy_helmet").setTextureName(RefStrings.MODID + ":alloy_helmet");
|
||||
alloy_helmet = new ArmorFSB(MainRegistry.aMatAlloy, 0, RefStrings.MODID + ":textures/armor/alloy_1.png").setUnlocalizedName("alloy_helmet").setTextureName(RefStrings.MODID + ":alloy_helmet");
|
||||
alloy_plate = new ArmorFSB(MainRegistry.aMatAlloy, 1, RefStrings.MODID + ":textures/armor/alloy_1.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_plate").setTextureName(RefStrings.MODID + ":alloy_plate");
|
||||
alloy_legs = new ArmorFSB(MainRegistry.aMatAlloy, 2, RefStrings.MODID + ":textures/armor/alloy_2.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_legs").setTextureName(RefStrings.MODID + ":alloy_legs");
|
||||
alloy_boots = new ArmorFSB(MainRegistry.aMatAlloy, 3, RefStrings.MODID + ":textures/armor/alloy_1.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_boots").setTextureName(RefStrings.MODID + ":alloy_boots");
|
||||
cmb_helmet = new ArmorFSB(MainRegistry.aMatCMB, 0, RefStrings.MODID + ":textures/armor/cmb_1.png").setCap(2F).setThreshold(2F).setMod(0.05F)
|
||||
cmb_helmet = new ArmorFSB(MainRegistry.aMatCMB, 0, RefStrings.MODID + ":textures/armor/cmb_1.png")
|
||||
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2))
|
||||
.addEffect(new PotionEffect(Potion.digSpeed.id, 20, 2))
|
||||
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 4))
|
||||
.setFireproof(true).setUnlocalizedName("cmb_helmet").setTextureName(RefStrings.MODID + ":cmb_helmet");
|
||||
.setUnlocalizedName("cmb_helmet").setTextureName(RefStrings.MODID + ":cmb_helmet");
|
||||
cmb_plate = new ArmorFSB(MainRegistry.aMatCMB, 1, RefStrings.MODID + ":textures/armor/cmb_1.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_plate").setTextureName(RefStrings.MODID + ":cmb_plate");
|
||||
cmb_legs = new ArmorFSB(MainRegistry.aMatCMB, 2, RefStrings.MODID + ":textures/armor/cmb_2.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_legs").setTextureName(RefStrings.MODID + ":cmb_legs");
|
||||
cmb_boots = new ArmorFSB(MainRegistry.aMatCMB, 3, RefStrings.MODID + ":textures/armor/cmb_1.png").cloneStats((ArmorFSB) cmb_helmet).setUnlocalizedName("cmb_boots").setTextureName(RefStrings.MODID + ":cmb_boots");
|
||||
paa_plate = new ArmorFSB(MainRegistry.aMatPaa, 1, RefStrings.MODID + ":textures/armor/paa_1.png").setCap(6F).setMod(0.3F).setNoHelmet(true)
|
||||
paa_plate = new ArmorFSB(MainRegistry.aMatPaa, 1, RefStrings.MODID + ":textures/armor/paa_1.png").setNoHelmet(true)
|
||||
.addEffect(new PotionEffect(Potion.digSpeed.id, 20, 0)).setUnlocalizedName("paa_plate").setTextureName(RefStrings.MODID + ":paa_plate");
|
||||
paa_legs = new ArmorFSB(MainRegistry.aMatPaa, 2, RefStrings.MODID + ":textures/armor/paa_2.png").cloneStats((ArmorFSB) paa_plate).setUnlocalizedName("paa_legs").setTextureName(RefStrings.MODID + ":paa_legs");
|
||||
paa_boots = new ArmorFSB(MainRegistry.aMatPaa, 3, RefStrings.MODID + ":textures/armor/paa_1.png").cloneStats((ArmorFSB) paa_plate).setUnlocalizedName("paa_boots").setTextureName(RefStrings.MODID + ":paa_boots");
|
||||
asbestos_helmet = new ArmorFSB(MainRegistry.aMatAsbestos, 0, RefStrings.MODID + ":textures/armor/asbestos_1.png").setFireproof(true).setOverlay(RefStrings.MODID + ":textures/misc/overlay_asbestos.png").setUnlocalizedName("asbestos_helmet").setTextureName(RefStrings.MODID + ":asbestos_helmet");
|
||||
asbestos_plate = new ArmorFSB(MainRegistry.aMatAsbestos, 1, RefStrings.MODID + ":textures/armor/asbestos_1.png").setFireproof(true).setUnlocalizedName("asbestos_plate").setTextureName(RefStrings.MODID + ":asbestos_plate");
|
||||
asbestos_legs = new ArmorFSB(MainRegistry.aMatAsbestos, 2, RefStrings.MODID + ":textures/armor/asbestos_2.png").setFireproof(true).setUnlocalizedName("asbestos_legs").setTextureName(RefStrings.MODID + ":asbestos_legs");
|
||||
asbestos_boots = new ArmorFSB(MainRegistry.aMatAsbestos, 3, RefStrings.MODID + ":textures/armor/asbestos_1.png").setFireproof(true).setUnlocalizedName("asbestos_boots").setTextureName(RefStrings.MODID + ":asbestos_boots");
|
||||
security_helmet = new ArmorFSB(MainRegistry.aMatSecurity, 0, RefStrings.MODID + ":textures/armor/security_1.png").setMod(0.65F).setProjectileProtection(0.5F).setUnlocalizedName("security_helmet").setTextureName(RefStrings.MODID + ":security_helmet");
|
||||
asbestos_helmet = new ArmorFSB(MainRegistry.aMatAsbestos, 0, RefStrings.MODID + ":textures/armor/asbestos_1.png").setOverlay(RefStrings.MODID + ":textures/misc/overlay_asbestos.png").setUnlocalizedName("asbestos_helmet").setTextureName(RefStrings.MODID + ":asbestos_helmet");
|
||||
asbestos_plate = new ArmorFSB(MainRegistry.aMatAsbestos, 1, RefStrings.MODID + ":textures/armor/asbestos_1.png").setUnlocalizedName("asbestos_plate").setTextureName(RefStrings.MODID + ":asbestos_plate");
|
||||
asbestos_legs = new ArmorFSB(MainRegistry.aMatAsbestos, 2, RefStrings.MODID + ":textures/armor/asbestos_2.png").setUnlocalizedName("asbestos_legs").setTextureName(RefStrings.MODID + ":asbestos_legs");
|
||||
asbestos_boots = new ArmorFSB(MainRegistry.aMatAsbestos, 3, RefStrings.MODID + ":textures/armor/asbestos_1.png").setUnlocalizedName("asbestos_boots").setTextureName(RefStrings.MODID + ":asbestos_boots");
|
||||
security_helmet = new ArmorFSB(MainRegistry.aMatSecurity, 0, RefStrings.MODID + ":textures/armor/security_1.png").setUnlocalizedName("security_helmet").setTextureName(RefStrings.MODID + ":security_helmet");
|
||||
security_plate = new ArmorFSB(MainRegistry.aMatSecurity, 1, RefStrings.MODID + ":textures/armor/security_1.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_plate").setTextureName(RefStrings.MODID + ":security_plate");
|
||||
security_legs = new ArmorFSB(MainRegistry.aMatSecurity, 2, RefStrings.MODID + ":textures/armor/security_2.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_legs").setTextureName(RefStrings.MODID + ":security_legs");
|
||||
security_boots = new ArmorFSB(MainRegistry.aMatSecurity, 3, RefStrings.MODID + ":textures/armor/security_1.png").cloneStats((ArmorFSB) security_helmet).setUnlocalizedName("security_boots").setTextureName(RefStrings.MODID + ":security_boots");
|
||||
cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, 0, RefStrings.MODID + ":textures/armor/cobalt_1.png").setMod(0.7F).setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet");
|
||||
cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, 0, RefStrings.MODID + ":textures/armor/cobalt_1.png").setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet");
|
||||
cobalt_plate = new ArmorFSB(MainRegistry.aMatCobalt, 1, RefStrings.MODID + ":textures/armor/cobalt_1.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_plate").setTextureName(RefStrings.MODID + ":cobalt_plate");
|
||||
cobalt_legs = new ArmorFSB(MainRegistry.aMatCobalt, 2, RefStrings.MODID + ":textures/armor/cobalt_2.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_legs").setTextureName(RefStrings.MODID + ":cobalt_legs");
|
||||
cobalt_boots = new ArmorFSB(MainRegistry.aMatCobalt, 3, RefStrings.MODID + ":textures/armor/cobalt_1.png").cloneStats((ArmorFSB) cobalt_helmet).setUnlocalizedName("cobalt_boots").setTextureName(RefStrings.MODID + ":cobalt_boots");
|
||||
starmetal_helmet = new ArmorFSB(MainRegistry.aMatStarmetal, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setMod(0.5F).setCap(15F)
|
||||
.setFireproof(true).setUnlocalizedName("starmetal_helmet").setTextureName(RefStrings.MODID + ":starmetal_helmet");
|
||||
starmetal_helmet = new ArmorFSB(MainRegistry.aMatStarmetal, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png")
|
||||
.setUnlocalizedName("starmetal_helmet").setTextureName(RefStrings.MODID + ":starmetal_helmet");
|
||||
starmetal_plate = new ArmorFSB(MainRegistry.aMatStarmetal, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_plate").setTextureName(RefStrings.MODID + ":starmetal_plate");
|
||||
starmetal_legs = new ArmorFSB(MainRegistry.aMatStarmetal, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_legs").setTextureName(RefStrings.MODID + ":starmetal_legs");
|
||||
starmetal_boots = new ArmorFSB(MainRegistry.aMatStarmetal, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_boots").setTextureName(RefStrings.MODID + ":starmetal_boots");
|
||||
|
||||
robes_helmet = new ArmorFSB(ArmorMaterial.CHAIN, 0, RefStrings.MODID + ":textures/armor/robes_1.png").setThreshold(1.0F).setUnlocalizedName("robes_helmet").setTextureName(RefStrings.MODID + ":robes_helmet");
|
||||
robes_helmet = new ArmorFSB(ArmorMaterial.CHAIN, 0, RefStrings.MODID + ":textures/armor/robes_1.png").setUnlocalizedName("robes_helmet").setTextureName(RefStrings.MODID + ":robes_helmet");
|
||||
robes_plate = new ArmorFSB(ArmorMaterial.CHAIN, 1, RefStrings.MODID + ":textures/armor/robes_1.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_plate").setTextureName(RefStrings.MODID + ":robes_plate");
|
||||
robes_legs = new ArmorFSB(ArmorMaterial.CHAIN, 2, RefStrings.MODID + ":textures/armor/robes_2.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_legs").setTextureName(RefStrings.MODID + ":robes_legs");
|
||||
robes_boots = new ArmorFSB(ArmorMaterial.CHAIN, 3, RefStrings.MODID + ":textures/armor/robes_1.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_boots").setTextureName(RefStrings.MODID + ":robes_boots");
|
||||
@ -4647,27 +4647,23 @@ public class ModItems {
|
||||
|
||||
ArmorMaterial aMatZirconium = EnumHelper.addArmorMaterial("HBM_ZIRCONIUM", 1000, new int[] { 2, 5, 3, 1 }, 100);
|
||||
aMatZirconium.customCraftingMaterial = ModItems.ingot_zirconium;
|
||||
zirconium_legs = new ArmorFSB(aMatZirconium, 2, RefStrings.MODID + ":textures/armor/zirconium_2.png").setMod(0.0F).setUnlocalizedName("zirconium_legs").setTextureName(RefStrings.MODID + ":zirconium_legs");
|
||||
zirconium_legs = new ArmorFSB(aMatZirconium, 2, RefStrings.MODID + ":textures/armor/zirconium_2.png").setUnlocalizedName("zirconium_legs").setTextureName(RefStrings.MODID + ":zirconium_legs");
|
||||
|
||||
ArmorMaterial aMatDNT = EnumHelper.addArmorMaterial("HBM_DNT_LOLOLOL", 3, new int[] { 1, 1, 1, 1 }, 0);
|
||||
aMatDNT.customCraftingMaterial = ModItems.ingot_dineutronium;
|
||||
dnt_helmet = new ArmorFSB(aMatDNT, 0, RefStrings.MODID + ":textures/armor/dnt_1.png")
|
||||
.setMod(5F).setUnlocalizedName("dnt_helmet").setTextureName(RefStrings.MODID + ":dnt_helmet");
|
||||
.setUnlocalizedName("dnt_helmet").setTextureName(RefStrings.MODID + ":dnt_helmet");
|
||||
dnt_plate = new ArmorFSB(aMatDNT, 1, RefStrings.MODID + ":textures/armor/dnt_1.png").cloneStats((ArmorFSB) dnt_helmet).setUnlocalizedName("dnt_plate").setTextureName(RefStrings.MODID + ":dnt_plate");
|
||||
dnt_legs = new ArmorFSB(aMatDNT, 2, RefStrings.MODID + ":textures/armor/dnt_2.png").cloneStats((ArmorFSB) dnt_helmet).setUnlocalizedName("dnt_legs").setTextureName(RefStrings.MODID + ":dnt_legs");
|
||||
dnt_boots = new ArmorFSB(aMatDNT, 3, RefStrings.MODID + ":textures/armor/dnt_1.png").cloneStats((ArmorFSB) dnt_helmet).setUnlocalizedName("dnt_boots").setTextureName(RefStrings.MODID + ":dnt_boots");
|
||||
|
||||
ArmorMaterial aMatT45 = EnumHelper.addArmorMaterial("HBM_T45", 150, new int[] { 3, 8, 6, 3 }, 0);
|
||||
aMatT45.customCraftingMaterial = ModItems.plate_armor_titanium;
|
||||
t45_helmet = new ArmorT45(aMatT45, 0, 1000000, 10000, 1000, 5).setCap(10F).setMod(0.5F)
|
||||
.setFireproof(true)
|
||||
t45_helmet = new ArmorT45(aMatT45, 0, 1000000, 10000, 1000, 5)
|
||||
.enableVATS(true)
|
||||
.setHasGeigerSound(true)
|
||||
.setHasHardLanding(true)
|
||||
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0))
|
||||
.setBlastProtection(0.5F)
|
||||
.addResistance("monoxide", 0F)
|
||||
.addResistance("fall", 0)
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.setUnlocalizedName("t45_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_helmet");
|
||||
t45_plate = new ArmorT45(aMatT45, 1, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_plate");
|
||||
@ -4676,13 +4672,9 @@ public class ModItems {
|
||||
|
||||
ArmorMaterial aMatDesh = EnumHelper.addArmorMaterial("HBM_DESH", 150, new int[] { 3, 8, 6, 3 }, 0);
|
||||
aMatDesh.customCraftingMaterial = ModItems.ingot_desh;
|
||||
steamsuit_helmet = new ArmorDesh(aMatDesh, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 64_000, 500, 50, 1).setThreshold(5F).setMod(0.8F)
|
||||
.setFireproof(true)
|
||||
steamsuit_helmet = new ArmorDesh(aMatDesh, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 64_000, 500, 50, 1)
|
||||
.setHasHardLanding(true)
|
||||
.addEffect(new PotionEffect(Potion.digSpeed.id, 20, 4))
|
||||
.setBlastProtection(0.5F)
|
||||
.addResistance("monoxide", 0F)
|
||||
.addResistance("fall", 0)
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.setUnlocalizedName("steamsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_helmet");
|
||||
steamsuit_plate = new ArmorDesh(aMatDesh, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.STEAM, 64_000, 500, 50, 1).cloneStats((ArmorFSB) steamsuit_helmet).setUnlocalizedName("steamsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steamsuit_plate");
|
||||
@ -4691,12 +4683,11 @@ public class ModItems {
|
||||
|
||||
ArmorMaterial aMatDiesel = EnumHelper.addArmorMaterial("HBM_BNUUY", 150, new int[] { 3, 8, 6, 3 }, 0);
|
||||
aMatDiesel.customCraftingMaterial = ModItems.plate_copper;
|
||||
dieselsuit_helmet = new ArmorDiesel(aMatDiesel, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 500, 50, 1).setThreshold(2F).setMod(0.7F)
|
||||
dieselsuit_helmet = new ArmorDiesel(aMatDiesel, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 500, 50, 1)
|
||||
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2))
|
||||
.addEffect(new PotionEffect(Potion.jump.id, 20, 2))
|
||||
.enableThermalSight(true)
|
||||
.enableVATS(true)
|
||||
.addResistance("fall", 0)
|
||||
.setUnlocalizedName("dieselsuit_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_helmet");
|
||||
dieselsuit_plate = new ArmorDiesel(aMatDiesel, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", Fluids.DIESEL, 64_000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_plate");
|
||||
dieselsuit_legs = new ArmorDiesel(aMatDiesel, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", Fluids.DIESEL, 64_000, 500, 50, 1).cloneStats((ArmorFSB) dieselsuit_helmet).setUnlocalizedName("dieselsuit_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dieselsuit_legs");
|
||||
@ -4704,57 +4695,40 @@ public class ModItems {
|
||||
|
||||
ArmorMaterial aMatAJR = EnumHelper.addArmorMaterial("HBM_T45AJR", 150, new int[] { 3, 8, 6, 3 }, 100);
|
||||
aMatAJR.customCraftingMaterial = ModItems.plate_armor_ajr;
|
||||
ajr_helmet = new ArmorAJR(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).setMod(0.25F).setCap(6.0F).setThreshold(4F)
|
||||
.setFireproof(true)
|
||||
ajr_helmet = new ArmorAJR(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25)
|
||||
.enableVATS(true)
|
||||
.setHasGeigerSound(true)
|
||||
.setHasHardLanding(true)
|
||||
.addEffect(new PotionEffect(Potion.jump.id, 20, 0))
|
||||
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0))
|
||||
.setBlastProtection(0.25F)
|
||||
.setStep("hbm:step.metal")
|
||||
.setJump("hbm:step.iron_jump")
|
||||
.setFall("hbm:step.iron_land")
|
||||
.addResistance("monoxide", 0F)
|
||||
.addResistance("fall", 0)
|
||||
.setStep("hbm:step.metal").setJump("hbm:step.iron_jump").setFall("hbm:step.iron_land")
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.setUnlocalizedName("ajr_helmet").setTextureName(RefStrings.MODID + ":ajr_helmet");
|
||||
ajr_plate = new ArmorAJR(aMatAJR, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_plate").setTextureName(RefStrings.MODID + ":ajr_plate");
|
||||
ajr_legs = new ArmorAJR(aMatAJR, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_legs").setTextureName(RefStrings.MODID + ":ajr_legs");
|
||||
ajr_boots = new ArmorAJR(aMatAJR, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_boots").setTextureName(RefStrings.MODID + ":ajr_boots");
|
||||
|
||||
ajro_helmet = new ArmorAJRO(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).setMod(0.25F).setCap(6.0F).setThreshold(4F)
|
||||
.setFireproof(true)
|
||||
ajro_helmet = new ArmorAJRO(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25)
|
||||
.enableVATS(true)
|
||||
.setHasGeigerSound(true)
|
||||
.setHasHardLanding(true)
|
||||
.addEffect(new PotionEffect(Potion.jump.id, 20, 0))
|
||||
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 0))
|
||||
.setBlastProtection(0.25F)
|
||||
.setStep("hbm:step.metal")
|
||||
.setJump("hbm:step.iron_jump")
|
||||
.setFall("hbm:step.iron_land")
|
||||
.addResistance("monoxide", 0F)
|
||||
.addResistance("fall", 0)
|
||||
.setStep("hbm:step.metal").setJump("hbm:step.iron_jump").setFall("hbm:step.iron_land")
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.setUnlocalizedName("ajro_helmet").setTextureName(RefStrings.MODID + ":ajro_helmet");
|
||||
ajro_plate = new ArmorAJRO(aMatAJR, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_plate").setTextureName(RefStrings.MODID + ":ajro_plate");
|
||||
ajro_legs = new ArmorAJRO(aMatAJR, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_legs").setTextureName(RefStrings.MODID + ":ajro_legs");
|
||||
ajro_boots = new ArmorAJRO(aMatAJR, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajro_helmet).setUnlocalizedName("ajro_boots").setTextureName(RefStrings.MODID + ":ajro_boots");
|
||||
|
||||
rpa_helmet = new ArmorRPA(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).setMod(0.1F).setCap(6.0F).setThreshold(20F)
|
||||
.setFireproof(true)
|
||||
rpa_helmet = new ArmorRPA(aMatAJR, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25)
|
||||
.enableVATS(true)
|
||||
.setHasGeigerSound(true)
|
||||
.setHasHardLanding(true)
|
||||
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 3))
|
||||
.setBlastProtection(0.25F)
|
||||
.setProjectileProtection(0.25F)
|
||||
.setProtectionLevel(1500)
|
||||
.setStep("hbm:step.powered")
|
||||
.setJump("hbm:step.powered")
|
||||
.setFall("hbm:step.powered")
|
||||
.addResistance("fall", 0)
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.setUnlocalizedName("rpa_helmet").setTextureName(RefStrings.MODID + ":rpa_helmet");
|
||||
rpa_plate = new ArmorRPA(aMatAJR, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) rpa_helmet).setUnlocalizedName("rpa_plate").setTextureName(RefStrings.MODID + ":rpa_plate");
|
||||
@ -4763,8 +4737,7 @@ public class ModItems {
|
||||
|
||||
ArmorMaterial aMatBJ = EnumHelper.addArmorMaterial("HBM_BLACKJACK", 150, new int[] { 3, 8, 6, 3 }, 100);
|
||||
aMatBJ.customCraftingMaterial = ModItems.plate_armor_lunar;
|
||||
bj_helmet = new ArmorBJ(aMatBJ, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).setMod(0.25F).setCap(4.0F).setThreshold(4F)
|
||||
.setFireproof(true)
|
||||
bj_helmet = new ArmorBJ(aMatBJ, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100)
|
||||
.enableVATS(true)
|
||||
.enableThermalSight(true)
|
||||
.setHasGeigerSound(true)
|
||||
@ -4773,12 +4746,9 @@ public class ModItems {
|
||||
.addEffect(new PotionEffect(Potion.jump.id, 20, 0))
|
||||
.addEffect(new PotionEffect(Potion.field_76443_y.id, 20, 0))
|
||||
.addEffect(new PotionEffect(HbmPotion.radx.id, 20, 0))
|
||||
.setBlastProtection(0.5F)
|
||||
.setProtectionLevel(500F)
|
||||
.setStep("hbm:step.metal")
|
||||
.setJump("hbm:step.iron_jump")
|
||||
.setFall("hbm:step.iron_land")
|
||||
.addResistance("fall", 0).setUnlocalizedName("bj_helmet").setTextureName(RefStrings.MODID + ":bj_helmet");
|
||||
.setFall("hbm:step.iron_land").setUnlocalizedName("bj_helmet").setTextureName(RefStrings.MODID + ":bj_helmet");
|
||||
bj_plate = new ArmorBJ(aMatBJ, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate").setTextureName(RefStrings.MODID + ":bj_plate");
|
||||
bj_plate_jetpack = new ArmorBJJetpack(aMatBJ, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate_jetpack").setTextureName(RefStrings.MODID + ":bj_plate_jetpack");
|
||||
bj_legs = new ArmorBJ(aMatBJ, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_legs").setTextureName(RefStrings.MODID + ":bj_legs");
|
||||
@ -4786,12 +4756,9 @@ public class ModItems {
|
||||
|
||||
ArmorMaterial aMatEnv = EnumHelper.addArmorMaterial("HBM_ENV", 150, new int[] { 3, 8, 6, 3 }, 100);
|
||||
aMatEnv.customCraftingMaterial = ModItems.plate_armor_hev;
|
||||
envsuit_helmet = new ArmorEnvsuit(aMatEnv, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0).setMod(0.5F).setThreshold(2.0F)
|
||||
envsuit_helmet = new ArmorEnvsuit(aMatEnv, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0)
|
||||
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1))
|
||||
.addEffect(new PotionEffect(Potion.jump.id, 20, 0))
|
||||
.addResistance("fall", 0.25F)
|
||||
.addResistance("monoxide", 0F)
|
||||
.addResistance("onFire", 0F)
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.setUnlocalizedName("envsuit_helmet").setTextureName(RefStrings.MODID + ":envsuit_helmet");
|
||||
envsuit_plate = new ArmorEnvsuit(aMatEnv, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 100_000, 1_000, 250, 0).cloneStats((ArmorFSB) envsuit_helmet).setUnlocalizedName("envsuit_plate").setTextureName(RefStrings.MODID + ":envsuit_plate");
|
||||
@ -4800,16 +4767,11 @@ public class ModItems {
|
||||
|
||||
ArmorMaterial aMatHEV = EnumHelper.addArmorMaterial("HBM_HEV", 150, new int[] { 3, 8, 6, 3 }, 100);
|
||||
aMatHEV.customCraftingMaterial = ModItems.plate_armor_hev;
|
||||
hev_helmet = new ArmorHEV(aMatHEV, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).setMod(0.20F).setCap(4.0F).setThreshold(2.0F)
|
||||
hev_helmet = new ArmorHEV(aMatHEV, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0)
|
||||
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1))
|
||||
.addEffect(new PotionEffect(Potion.jump.id, 20, 0))
|
||||
.setBlastProtection(0.25F)
|
||||
.setProtectionLevel(500F)
|
||||
.setHasGeigerSound(true)
|
||||
.setHasCustomGeiger(true)
|
||||
.addResistance("fall", 0.5F)
|
||||
.addResistance("monoxide", 0F)
|
||||
.addResistance("onFire", 0F)
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.setUnlocalizedName("hev_helmet").setTextureName(RefStrings.MODID + ":hev_helmet");
|
||||
hev_plate = new ArmorHEV(aMatHEV, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_plate").setTextureName(RefStrings.MODID + ":hev_plate");
|
||||
@ -4821,20 +4783,14 @@ public class ModItems {
|
||||
|
||||
ArmorMaterial aMatFau = EnumHelper.addArmorMaterial("HBM_DIGAMMA", 150, new int[] { 3, 8, 6, 3 }, 100);
|
||||
aMatFau.customCraftingMaterial = ModItems.plate_armor_fau;
|
||||
fau_helmet = new ArmorDigamma(aMatFau, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).setMod(0.25F).setCap(4.0F).setThreshold(2.0F)
|
||||
fau_helmet = new ArmorDigamma(aMatFau, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0)
|
||||
.addEffect(new PotionEffect(Potion.jump.id, 20, 1))
|
||||
.setBlastProtection(0.05F)
|
||||
.setMod(0.05F)
|
||||
.setHasGeigerSound(true)
|
||||
.enableThermalSight(true)
|
||||
.setHasHardLanding(true)
|
||||
.setStep("hbm:step.metal")
|
||||
.setJump("hbm:step.iron_jump")
|
||||
.setFall("hbm:step.iron_land")
|
||||
.setProtectionLevel(1000F)
|
||||
.addResistance("fall", 0F)
|
||||
.addResistance("monoxide", 0F)
|
||||
.setFireproof(true)
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.setUnlocalizedName("fau_helmet").setTextureName(RefStrings.MODID + ":fau_helmet");
|
||||
fau_plate = new ArmorDigamma(aMatFau, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 2500, 0).cloneStats((ArmorFSB) fau_helmet).setFullSetForHide().setUnlocalizedName("fau_plate").setTextureName(RefStrings.MODID + ":fau_plate");
|
||||
@ -4854,7 +4810,6 @@ public class ModItems {
|
||||
.setStep("hbm:step.metal")
|
||||
.setJump("hbm:step.iron_jump")
|
||||
.setFall("hbm:step.iron_land")
|
||||
.setFireproof(true)
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.setUnlocalizedName("dns_helmet").setTextureName(RefStrings.MODID + ":dns_helmet");
|
||||
dns_plate = new ArmorDNT(aMatDNS, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000000, 1000000, 100000, 115).cloneStats((ArmorFSB) dns_helmet).setUnlocalizedName("dns_plate").setTextureName(RefStrings.MODID + ":dns_plate");
|
||||
@ -4863,14 +4818,12 @@ public class ModItems {
|
||||
|
||||
ArmorMaterial aMatTrench = EnumHelper.addArmorMaterial("HBM_TRENCH", 150, new int[] { 3, 8, 6, 3 }, 100);
|
||||
aMatTrench.customCraftingMaterial = ModItems.plate_iron;
|
||||
trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setMod(0.125F).setThreshold(5.0F)
|
||||
trenchmaster_helmet = new ArmorTrenchmaster(aMatTrench, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png")
|
||||
.addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2))
|
||||
.addEffect(new PotionEffect(Potion.digSpeed.id, 20, 1))
|
||||
.addEffect(new PotionEffect(Potion.jump.id, 20, 1))
|
||||
.addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 0))
|
||||
.enableVATS(true)
|
||||
.addResistance("fall", 0F)
|
||||
.setFireproof(true)
|
||||
.setStepSize(1)
|
||||
.hides(EnumPlayerPart.HAT)
|
||||
.setUnlocalizedName("trenchmaster_helmet").setTextureName(RefStrings.MODID + ":trenchmaster_helmet");
|
||||
@ -5243,12 +5196,12 @@ public class ModItems {
|
||||
hazmat_legs_red = new ArmorHazmat(MainRegistry.aMatHaz2, 2, RefStrings.MODID + ":textures/armor/hazmat_2_red.png").setUnlocalizedName("hazmat_legs_red").setTextureName(RefStrings.MODID + ":hazmat_legs_red");
|
||||
hazmat_boots_red = new ArmorHazmat(MainRegistry.aMatHaz2, 3, RefStrings.MODID + ":textures/armor/hazmat_1_red.png").setUnlocalizedName("hazmat_boots_red").setTextureName(RefStrings.MODID + ":hazmat_boots_red");
|
||||
hazmat_helmet_grey = new ArmorHazmatMask(MainRegistry.aMatHaz3, 0, "hbm:textures/models/ModelHazGrey.png")
|
||||
.setFireproof(true).setUnlocalizedName("hazmat_helmet_grey").setTextureName(RefStrings.MODID + ":hazmat_helmet_grey");
|
||||
.setUnlocalizedName("hazmat_helmet_grey").setTextureName(RefStrings.MODID + ":hazmat_helmet_grey");
|
||||
hazmat_plate_grey = new ArmorHazmat(MainRegistry.aMatHaz3, 1, RefStrings.MODID + ":textures/armor/hazmat_1_grey.png").cloneStats((ArmorFSB) hazmat_helmet_grey).setUnlocalizedName("hazmat_plate_grey").setTextureName(RefStrings.MODID + ":hazmat_plate_grey");
|
||||
hazmat_legs_grey = new ArmorHazmat(MainRegistry.aMatHaz3, 2, RefStrings.MODID + ":textures/armor/hazmat_2_grey.png").cloneStats((ArmorFSB) hazmat_helmet_grey).setUnlocalizedName("hazmat_legs_grey").setTextureName(RefStrings.MODID + ":hazmat_legs_grey");
|
||||
hazmat_boots_grey = new ArmorHazmat(MainRegistry.aMatHaz3, 3, RefStrings.MODID + ":textures/armor/hazmat_1_grey.png").cloneStats((ArmorFSB) hazmat_helmet_grey).setUnlocalizedName("hazmat_boots_grey").setTextureName(RefStrings.MODID + ":hazmat_boots_grey");
|
||||
hazmat_paa_helmet = new ArmorHazmatMask(MainRegistry.aMatPaa, 0, RefStrings.MODID + ":textures/armor/hazmat_paa_1.png")
|
||||
.setFireproof(true).setUnlocalizedName("hazmat_paa_helmet").setTextureName(RefStrings.MODID + ":hazmat_paa_helmet");
|
||||
.setUnlocalizedName("hazmat_paa_helmet").setTextureName(RefStrings.MODID + ":hazmat_paa_helmet");
|
||||
hazmat_paa_plate = new ArmorHazmat(MainRegistry.aMatPaa, 1, RefStrings.MODID + ":textures/armor/hazmat_paa_1.png").cloneStats((ArmorFSB) hazmat_paa_helmet).setUnlocalizedName("hazmat_paa_plate").setTextureName(RefStrings.MODID + ":hazmat_paa_plate");
|
||||
hazmat_paa_legs = new ArmorHazmat(MainRegistry.aMatPaa, 2, RefStrings.MODID + ":textures/armor/hazmat_paa_2.png").cloneStats((ArmorFSB) hazmat_paa_helmet).setUnlocalizedName("hazmat_paa_legs").setTextureName(RefStrings.MODID + ":hazmat_paa_legs");
|
||||
hazmat_paa_boots = new ArmorHazmat(MainRegistry.aMatPaa, 3, RefStrings.MODID + ":textures/armor/hazmat_paa_1.png").cloneStats((ArmorFSB) hazmat_paa_helmet).setUnlocalizedName("hazmat_paa_boots").setTextureName(RefStrings.MODID + ":hazmat_paa_boots");
|
||||
@ -5256,9 +5209,6 @@ public class ModItems {
|
||||
ArmorMaterial aMatLiquidator = EnumHelper.addArmorMaterial("HBM_LIQUIDATOR", 750, new int[] { 3, 8, 6, 3 }, 10);
|
||||
aMatLiquidator.customCraftingMaterial = ModItems.plate_lead;
|
||||
liquidator_helmet = new ArmorLiquidatorMask(aMatLiquidator, 0, RefStrings.MODID + ":textures/armor/liquidator_helmet.png")
|
||||
.setThreshold(1.0F)
|
||||
.setBlastProtection(0.25F)
|
||||
.setFireproof(true)
|
||||
.setStep("hbm:step.metal")
|
||||
.setJump("hbm:step.iron_jump")
|
||||
.setFall("hbm:step.iron_land").setUnlocalizedName("liquidator_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":liquidator_helmet");
|
||||
@ -6951,6 +6901,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(gun_congolake, gun_congolake.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_flamer, gun_flamer.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_uzi, gun_uzi.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_uzi_akimbo, gun_uzi_akimbo.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_spas12, gun_spas12.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_panzerschreck, gun_panzerschreck.getUnlocalizedName());
|
||||
GameRegistry.registerItem(gun_g3, gun_g3.getUnlocalizedName());
|
||||
|
||||
@ -3,10 +3,8 @@ package com.hbm.items.armor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
@ -28,7 +26,6 @@ import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemArmor;
|
||||
@ -51,14 +48,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel {
|
||||
private String texture = "";
|
||||
private ResourceLocation overlay = null;
|
||||
public List<PotionEffect> effects = new ArrayList<PotionEffect>();
|
||||
public HashMap<String, Float> resistance = new HashMap<String, Float>();
|
||||
public float blastProtection = -1;
|
||||
public float projectileProtection = -1;
|
||||
public float damageCap = -1;
|
||||
public float damageMod = -1;
|
||||
public float damageThreshold = 0;
|
||||
public float protectionYield = 100F;
|
||||
public boolean fireproof = false;
|
||||
public boolean noHelmet = false;
|
||||
public boolean vats = false;
|
||||
public boolean thermal = false;
|
||||
@ -82,46 +71,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel {
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB addResistance(String damage, float mod) {
|
||||
resistance.put(damage, mod);
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB setCap(float cap) {
|
||||
this.damageCap = cap;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB setMod(float mod) {
|
||||
this.damageMod = mod;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB setThreshold(float threshold) {
|
||||
this.damageThreshold = threshold;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB setProtectionLevel(float damageYield) {
|
||||
this.protectionYield = damageYield;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB setBlastProtection(float blastProtection) {
|
||||
this.blastProtection = blastProtection;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB setProjectileProtection(float projectileProtection) {
|
||||
this.projectileProtection = projectileProtection;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB setFireproof(boolean fire) {
|
||||
this.fireproof = fire;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ArmorFSB setNoHelmet(boolean noHelmet) {
|
||||
this.noHelmet = noHelmet;
|
||||
return this;
|
||||
@ -191,14 +140,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel {
|
||||
|
||||
//lists aren't being modified after instantiation, so there's no need to dereference
|
||||
this.effects = original.effects;
|
||||
this.resistance = original.resistance;
|
||||
this.damageCap = original.damageCap;
|
||||
this.damageMod = original.damageMod;
|
||||
this.damageThreshold = original.damageThreshold;
|
||||
this.protectionYield = original.protectionYield;
|
||||
this.blastProtection = original.blastProtection;
|
||||
this.projectileProtection = original.projectileProtection;
|
||||
this.fireproof = original.fireproof;
|
||||
this.noHelmet = original.noHelmet;
|
||||
this.vats = original.vats;
|
||||
this.thermal = original.thermal;
|
||||
@ -226,82 +167,19 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel {
|
||||
list.add(EnumChatFormatting.GOLD + I18nUtil.resolveKey("armor.fullSetBonus"));
|
||||
|
||||
if(!effects.isEmpty()) {
|
||||
|
||||
for(PotionEffect effect : effects) {
|
||||
list.add(EnumChatFormatting.AQUA + " " + I18n.format(Potion.potionTypes[effect.getPotionID()].getName()));
|
||||
}
|
||||
}
|
||||
|
||||
if(!resistance.isEmpty()) {
|
||||
|
||||
for(Entry<String, Float> struct : resistance.entrySet()) {
|
||||
|
||||
if(struct.getValue() != 0)
|
||||
list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.damageModifier", struct.getValue(), I18n.format(struct.getKey())));
|
||||
else
|
||||
list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.nullDamage", I18n.format(struct.getKey())));
|
||||
}
|
||||
}
|
||||
|
||||
if(blastProtection != -1) {
|
||||
list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.blastProtection", blastProtection));
|
||||
}
|
||||
|
||||
if(projectileProtection != -1) {
|
||||
list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.projectileProtection", projectileProtection));
|
||||
}
|
||||
|
||||
if(damageCap != -1) {
|
||||
list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.cap", damageCap));
|
||||
}
|
||||
|
||||
if(damageMod != -1) {
|
||||
list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.modifier", damageMod));
|
||||
}
|
||||
|
||||
if(damageThreshold > 0) {
|
||||
list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.threshold", damageThreshold));
|
||||
}
|
||||
|
||||
if(fireproof) {
|
||||
list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.fireproof"));
|
||||
}
|
||||
|
||||
if(geigerSound) {
|
||||
list.add(EnumChatFormatting.GOLD + " " + I18nUtil.resolveKey("armor.geigerSound"));
|
||||
}
|
||||
|
||||
if(customGeiger) {
|
||||
list.add(EnumChatFormatting.GOLD + " " + I18nUtil.resolveKey("armor.geigerHUD"));
|
||||
}
|
||||
|
||||
if(vats) {
|
||||
list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.vats"));
|
||||
}
|
||||
|
||||
if(thermal) {
|
||||
list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.thermal"));
|
||||
}
|
||||
|
||||
if(hardLanding) {
|
||||
list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.hardLanding"));
|
||||
}
|
||||
|
||||
if(gravity != 0) {
|
||||
list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.gravity", gravity));
|
||||
}
|
||||
|
||||
if(stepSize != 0) {
|
||||
list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.stepSize", stepSize));
|
||||
}
|
||||
|
||||
if(dashCount > 0) {
|
||||
list.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.dash", dashCount));
|
||||
}
|
||||
|
||||
if(protectionYield != 100F) {
|
||||
list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.yield", protectionYield));
|
||||
}
|
||||
if(geigerSound) list.add(EnumChatFormatting.GOLD + " " + I18nUtil.resolveKey("armor.geigerSound"));
|
||||
if(customGeiger) list.add(EnumChatFormatting.GOLD + " " + I18nUtil.resolveKey("armor.geigerHUD"));
|
||||
if(vats) list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.vats"));
|
||||
if(thermal) list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.thermal"));
|
||||
if(hardLanding) list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.hardLanding"));
|
||||
if(gravity != 0) list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.gravity", gravity));
|
||||
if(stepSize != 0) list.add(EnumChatFormatting.BLUE + " " + I18nUtil.resolveKey("armor.stepSize", stepSize));
|
||||
if(dashCount > 0) list.add(EnumChatFormatting.AQUA + " " + I18nUtil.resolveKey("armor.dash", dashCount));
|
||||
}
|
||||
|
||||
public static boolean hasFSBArmor(EntityPlayer player) {
|
||||
@ -359,80 +237,6 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void handleAttack(LivingAttackEvent event) {
|
||||
|
||||
EntityLivingBase e = event.entityLiving;
|
||||
|
||||
if(e instanceof EntityPlayer) {
|
||||
EntityPlayer player = (EntityPlayer) e;
|
||||
|
||||
if(ArmorFSB.hasFSBArmor(player)) {
|
||||
|
||||
ItemStack plate = player.inventory.armorInventory[2];
|
||||
|
||||
ArmorFSB chestplate = (ArmorFSB) plate.getItem();
|
||||
|
||||
if(chestplate.damageThreshold >= event.ammount && !event.source.isUnblockable()) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
if(chestplate.fireproof && event.source.isFireDamage()) {
|
||||
player.extinguish();
|
||||
event.setCanceled(true);
|
||||
}
|
||||
|
||||
if(chestplate.resistance.get(event.source.getDamageType()) != null && chestplate.resistance.get(event.source.getDamageType()) <= 0) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void handleHurt(LivingHurtEvent event) {
|
||||
|
||||
EntityLivingBase e = event.entityLiving;
|
||||
|
||||
if(e instanceof EntityPlayer) {
|
||||
EntityPlayer player = (EntityPlayer) e;
|
||||
|
||||
if(ArmorFSB.hasFSBArmor(player)) {
|
||||
|
||||
ArmorFSB chestplate = (ArmorFSB) player.inventory.armorInventory[2].getItem();
|
||||
|
||||
//store any damage above the yield
|
||||
float overFlow = Math.max(0, event.ammount - chestplate.protectionYield);
|
||||
//reduce the damage to the yield cap if it exceeds the yield
|
||||
event.ammount = Math.min(event.ammount, chestplate.protectionYield);
|
||||
|
||||
if(!event.source.isUnblockable())
|
||||
event.ammount -= chestplate.damageThreshold;
|
||||
|
||||
if(chestplate.damageMod != -1) {
|
||||
event.ammount *= chestplate.damageMod;
|
||||
}
|
||||
|
||||
if(chestplate.resistance.get(event.source.getDamageType()) != null) {
|
||||
event.ammount *= chestplate.resistance.get(event.source.getDamageType());
|
||||
}
|
||||
|
||||
if(chestplate.blastProtection != -1 && event.source.isExplosion()) {
|
||||
event.ammount *= chestplate.blastProtection;
|
||||
}
|
||||
|
||||
if(chestplate.projectileProtection != -1 && event.source.isProjectile()) {
|
||||
event.ammount *= chestplate.projectileProtection;
|
||||
}
|
||||
|
||||
if(chestplate.damageCap != -1) {
|
||||
event.ammount = Math.min(event.ammount, chestplate.damageCap);
|
||||
}
|
||||
|
||||
//add back anything that was above the protection yield before
|
||||
event.ammount += overFlow;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void handleTick(TickEvent.PlayerTickEvent event) {
|
||||
|
||||
EntityPlayer player = event.player;
|
||||
@ -624,4 +428,7 @@ public class ArmorFSB extends ItemArmor implements IArmorDisableModel {
|
||||
public boolean disablesPart(EntityPlayer player, ItemStack stack, EnumPlayerPart part) {
|
||||
return hidden.contains(part) && (!needsFullSet || hasFSBArmorIgnoreCharge(player));
|
||||
}
|
||||
|
||||
public void handleAttack(LivingAttackEvent event) { }
|
||||
public void handleHurt(LivingHurtEvent event) { }
|
||||
}
|
||||
|
||||
@ -46,7 +46,9 @@ public class BulletConfig implements Cloneable {
|
||||
public ProjectileType pType = ProjectileType.BULLET;
|
||||
|
||||
public float damageMult = 1.0F;
|
||||
public float armorThresholdNegation = 0.0F;
|
||||
public float armorPiercingPercent = 0.0F;
|
||||
public float knockbackMult = 1.0F;
|
||||
public float headshotMult = 1.0F;
|
||||
|
||||
public String damageType = ModDamageSource.s_bullet;
|
||||
@ -103,7 +105,9 @@ public class BulletConfig implements Cloneable {
|
||||
public BulletConfig setProjectiles(int amount) { this.projectilesMin = this.projectilesMax = amount; return this; }
|
||||
public BulletConfig setProjectiles(int min, int max) { this.projectilesMin = min; this.projectilesMax = max; return this; }
|
||||
public BulletConfig setDamage(float damageMult) { this.damageMult = damageMult; return this; }
|
||||
public BulletConfig setThresholdNegation(float armorThresholdNegation) { this.armorThresholdNegation = armorThresholdNegation; return this; }
|
||||
public BulletConfig setArmorPiercing(float armorPiercingPercent) { this.armorPiercingPercent = armorPiercingPercent; return this; }
|
||||
public BulletConfig setKnockback(float knockbackMult) { this.knockbackMult = knockbackMult; 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(boolean proj, boolean fire, boolean explosion, boolean bypass) { this.dmgProj = proj; this.dmgFire = fire; this.dmgExplosion = explosion; this.dmgBypass = bypass; return this; }
|
||||
@ -193,22 +197,17 @@ public class BulletConfig implements Cloneable {
|
||||
if(entity == bullet.getThrower() && bullet.ticksExisted < bullet.selfDamageDelay()) return;
|
||||
if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return;
|
||||
|
||||
DamageSource damageCalc = bullet.config.getDamage(bullet, bullet.getThrower(), false);
|
||||
DamageSource source = bullet.config.getDamage(bullet, bullet.getThrower(), false);
|
||||
|
||||
if(!(entity instanceof EntityLivingBase)) {
|
||||
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, damageCalc, bullet.damage);
|
||||
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, bullet.damage);
|
||||
return;
|
||||
}
|
||||
|
||||
EntityLivingBase living = (EntityLivingBase) entity;
|
||||
float prevHealth = living.getHealth();
|
||||
|
||||
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);
|
||||
}
|
||||
EntityDamageUtil.attackEntityFromNT(living, source, bullet.damage, true, false, bullet.config.knockbackMult, bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent);
|
||||
|
||||
float newHealth = living.getHealth();
|
||||
|
||||
@ -226,22 +225,16 @@ public class BulletConfig implements Cloneable {
|
||||
Entity entity = mop.entityHit;
|
||||
|
||||
if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return;
|
||||
|
||||
DamageSource damageCalc = bullet.config.getDamage(bullet, bullet.getThrower(), false);
|
||||
|
||||
DamageSource source = bullet.config.getDamage(bullet, bullet.getThrower(), false);
|
||||
|
||||
if(!(entity instanceof EntityLivingBase)) {
|
||||
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, damageCalc, bullet.damage);
|
||||
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, 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);
|
||||
}
|
||||
EntityDamageUtil.attackEntityFromNT(living, source, bullet.damage, true, false, bullet.config.knockbackMult, bullet.config.armorThresholdNegation, bullet.config.armorPiercingPercent);
|
||||
}
|
||||
};
|
||||
|
||||
@ -252,21 +245,15 @@ public class BulletConfig implements Cloneable {
|
||||
|
||||
if(entity instanceof EntityLivingBase && ((EntityLivingBase) entity).getHealth() <= 0) return;
|
||||
|
||||
DamageSource damageCalc = beam.config.getDamage(beam, beam.thrower, false);
|
||||
DamageSource source = beam.config.getDamage(beam, beam.thrower, false);
|
||||
|
||||
if(!(entity instanceof EntityLivingBase)) {
|
||||
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, damageCalc, beam.damage);
|
||||
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, source, beam.damage);
|
||||
return;
|
||||
}
|
||||
|
||||
EntityLivingBase living = (EntityLivingBase) entity;
|
||||
|
||||
if(beam.config.armorPiercingPercent == 0) {
|
||||
EntityDamageUtil.attackEntityFromIgnoreIFrame(entity, damageCalc, beam.damage);
|
||||
} else {
|
||||
DamageSource damagePiercing = beam.config.getDamage(beam, beam.thrower, true);
|
||||
EntityDamageUtil.attackArmorPiercing(living, damageCalc, damagePiercing, beam.damage, beam.config.armorPiercingPercent);
|
||||
}
|
||||
EntityDamageUtil.attackEntityFromNT(living, source, beam.damage, true, false, beam.config.knockbackMult, beam.config.armorThresholdNegation, beam.config.armorPiercingPercent);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -53,6 +53,7 @@ public class GunFactoryClient {
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer, new ItemRenderFlamer());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_lag, new ItemRenderLAG());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi, new ItemRenderUzi());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_uzi_akimbo, new ItemRenderUziAkimbo());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_spas12, new ItemRenderSPAS12());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_panzerschreck, new ItemRenderPanzerschreck());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_g3, new ItemRenderG3());
|
||||
@ -206,6 +207,8 @@ public class GunFactoryClient {
|
||||
((ItemGunBaseNT) ModItems.gun_light_revolver_dani) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
|
||||
((ItemGunBaseNT) ModItems.gun_maresleg_akimbo) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR);
|
||||
((ItemGunBaseNT) ModItems.gun_maresleg_akimbo) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
|
||||
((ItemGunBaseNT) ModItems.gun_uzi_akimbo) .getConfig(null, 0).hud(LegoClient.HUD_COMPONENT_DURABILITY_MIRROR, LegoClient.HUD_COMPONENT_AMMO_MIRROR);
|
||||
((ItemGunBaseNT) ModItems.gun_uzi_akimbo) .getConfig(null, 1).hud(LegoClient.HUD_COMPONENT_DURABILITY, LegoClient.HUD_COMPONENT_AMMO);
|
||||
}
|
||||
|
||||
public static void setRendererBulk(BiConsumer<EntityBulletBaseMK4, Float> renderer, BulletConfig... configs) { for(BulletConfig config : configs) config.setRenderer(renderer); }
|
||||
|
||||
@ -613,6 +613,38 @@ public class Orchestras {
|
||||
}
|
||||
};
|
||||
|
||||
public static BiConsumer<ItemStack, LambdaContext> ORCHESTRA_UZI_AKIMBO = (stack, ctx) -> {
|
||||
EntityLivingBase entity = ctx.entity;
|
||||
if(entity.worldObj.isRemote) return;
|
||||
AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex);
|
||||
int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex);
|
||||
|
||||
if(type == AnimType.EQUIP) {
|
||||
if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.openLatch", 1F, 1.25F);
|
||||
}
|
||||
if(type == AnimType.CYCLE) {
|
||||
if(timer == 1) {
|
||||
int mult = ctx.configIndex == 0 ? -1 : 1;
|
||||
SpentCasing casing = ctx.config.getReceivers(stack)[0].getMagazine(stack).getCasing(stack, ctx.inventory);
|
||||
if(casing != null) CasingCreator.composeEffect(entity.worldObj, entity, 0.375, -0.125, -0.375D * mult, 0, 0.18, -0.12 * mult, 0.01, casing.getName());
|
||||
}
|
||||
}
|
||||
if(type == AnimType.CYCLE_DRY) {
|
||||
if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F);
|
||||
if(timer == 8) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F);
|
||||
|
||||
}
|
||||
if(type == AnimType.RELOAD) {
|
||||
if(timer == 4) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magRemove", 1F, 1F);
|
||||
if(timer == 26) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magInsert", 1F, 1F);
|
||||
if(timer == 36) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F);
|
||||
}
|
||||
if(type == AnimType.JAMMED) {
|
||||
if(timer == 17) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F);
|
||||
if(timer == 31) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.pistolCock", 1F, 1F);
|
||||
}
|
||||
};
|
||||
|
||||
public static BiConsumer<ItemStack, LambdaContext> ORCHESTRA_SPAS = (stack, ctx) -> {
|
||||
EntityLivingBase entity = ctx.entity;
|
||||
if(entity.worldObj.isRemote) return;
|
||||
@ -1156,11 +1188,6 @@ public class Orchestras {
|
||||
if(entity.worldObj.isRemote) return;
|
||||
AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex);
|
||||
int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex);
|
||||
boolean aiming = ItemGunBaseNT.getIsAiming(stack);
|
||||
|
||||
if(type == AnimType.CYCLE_DRY) {
|
||||
if(timer == 0) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 0.75F);
|
||||
}
|
||||
|
||||
if(type == AnimType.RELOAD) {
|
||||
if(timer == 20) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.screw", 1F, 1F);
|
||||
|
||||
@ -9,6 +9,7 @@ import com.hbm.items.weapon.sedna.Crosshair;
|
||||
import com.hbm.items.weapon.sedna.GunConfig;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||
import com.hbm.items.weapon.sedna.Receiver;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.GunState;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||
@ -73,10 +74,39 @@ public class XFactory9mm {
|
||||
.setupStandardConfiguration()
|
||||
.anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI)
|
||||
).setUnlocalizedName("gun_uzi");
|
||||
ModItems.gun_uzi_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE,
|
||||
new GunConfig().dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
||||
.rec(new Receiver(0)
|
||||
.dmg(7.5F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F)
|
||||
.mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap))
|
||||
.offset(1, -0.0625 * 2.5, 0.375D)
|
||||
.setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL))
|
||||
.pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD)
|
||||
.decider(GunStateDecider.LAMBDA_STANDARD_DECIDER)
|
||||
.anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI_AKIMBO),
|
||||
new GunConfig().dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
||||
.rec(new Receiver(0)
|
||||
.dmg(7.5F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F)
|
||||
.mag(new MagazineFullReload(1, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap))
|
||||
.offset(1, -0.0625 * 2.5, -0.375D)
|
||||
.setupStandardFire().recoil(Lego.LAMBDA_STANDARD_RECOIL))
|
||||
.ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD)
|
||||
.decider(LAMBDA_SECOND_UZI)
|
||||
.anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI_AKIMBO)
|
||||
).setUnlocalizedName("gun_uzi_akimbo");
|
||||
}
|
||||
|
||||
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_SECOND_UZI = (stack, ctx) -> {
|
||||
int index = ctx.configIndex;
|
||||
GunState lastState = ItemGunBaseNT.getState(stack, index);
|
||||
GunStateDecider.deciderStandardFinishDraw(stack, lastState, index);
|
||||
GunStateDecider.deciderStandardClearJam(stack, lastState, index);
|
||||
GunStateDecider.deciderStandardReload(stack, ctx, lastState, 0, index);
|
||||
GunStateDecider.deciderAutoRefire(stack, ctx, lastState, 0, index, () -> { return ItemGunBaseNT.getSecondary(stack, index) && ItemGunBaseNT.getMode(stack, ctx.configIndex) == 0; });
|
||||
};
|
||||
|
||||
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_SMOKE = (stack, ctx) -> {
|
||||
Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, 0);
|
||||
Lego.handleStandardSmoke(ctx.entity, stack, 2000, 0.05D, 1.1D, ctx.configIndex);
|
||||
};
|
||||
|
||||
@SuppressWarnings("incomplete-switch") public static BiFunction<ItemStack, AnimType, BusAnimation> LAMBDA_GREASEGUN_ANIMS = (stack, type) -> {
|
||||
|
||||
@ -1,8 +1,11 @@
|
||||
package com.hbm.items.weapon.sedna.factory;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import com.hbm.entity.projectile.EntityBulletBeamBase;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.weapon.sedna.BulletConfig;
|
||||
import com.hbm.items.weapon.sedna.Crosshair;
|
||||
@ -14,28 +17,79 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
|
||||
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||
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.ContaminationUtil;
|
||||
import com.hbm.util.EntityDamageUtil;
|
||||
import com.hbm.util.Vec3NT;
|
||||
import com.hbm.util.ContaminationUtil.ContaminationType;
|
||||
import com.hbm.util.ContaminationUtil.HazardType;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
|
||||
public class XFactoryFolly {
|
||||
|
||||
public static BulletConfig folly_sm;
|
||||
|
||||
public static Consumer<Entity> LAMBDA_SM_UPDATE = (entity) -> {
|
||||
if(entity.worldObj.isRemote) return;
|
||||
EntityBulletBeamBase beam = (EntityBulletBeamBase) entity;
|
||||
Vec3NT dir = new Vec3NT(beam.headingX, beam.headingY, beam.headingZ).normalizeSelf();
|
||||
|
||||
if(beam.ticksExisted < 50) {
|
||||
double spacing = 10;
|
||||
double dist = beam.ticksExisted * spacing;
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
data.setString("type", "plasmablast");
|
||||
data.setFloat("r", 0.75F);
|
||||
data.setFloat("g", 0.75F);
|
||||
data.setFloat("b", 0.75F);
|
||||
data.setFloat("pitch", (float) beam.rotationPitch + 90);
|
||||
data.setFloat("yaw", (float) -beam.rotationYaw);
|
||||
data.setFloat("scale", 2F + beam.ticksExisted / (float)(beam.beamLength / spacing) * 3F);
|
||||
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, beam.posX + dir.xCoord * dist, beam.posY + dir.yCoord * dist, beam.posZ + dir.zCoord * dist), new TargetPoint(beam.dimension, beam.posX, beam.posY, beam.posZ, 250));
|
||||
}
|
||||
|
||||
if(entity.ticksExisted != 2) return;
|
||||
|
||||
if(beam.thrower != null) ContaminationUtil.contaminate(beam.thrower, HazardType.RADIATION, ContaminationType.CREATIVE, 150F);
|
||||
|
||||
List<Entity> entities = beam.worldObj.getEntitiesWithinAABBExcludingEntity(beam, beam.boundingBox.addCoord(beam.headingX, beam.headingY, beam.headingZ).expand(1.0D, 1.0D, 1.0D));
|
||||
|
||||
for(int i = 1; i < beam.beamLength; i += 2) {
|
||||
int x = (int) Math.floor(beam.posX + dir.xCoord * i);
|
||||
int y = (int) Math.floor(beam.posY + dir.yCoord * i);
|
||||
int z = (int) Math.floor(beam.posZ + dir.zCoord * i);
|
||||
|
||||
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);
|
||||
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);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public static void init() {
|
||||
|
||||
folly_sm = new BulletConfig().setItem(EnumAmmoSecret.FOLLY_SM).setBeam().setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false);
|
||||
folly_sm = new BulletConfig().setItem(EnumAmmoSecret.FOLLY_SM).setBeam().setLife(100).setVel(2F).setGrav(0.015D).setRenderRotations(false).setSpectral(true).setDoesPenetrate(true)
|
||||
.setOnUpdate(LAMBDA_SM_UPDATE);
|
||||
|
||||
ModItems.gun_folly = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||
.dura(100).draw(40).crosshair(Crosshair.NONE)
|
||||
.dura(0).draw(40).crosshair(Crosshair.NONE)
|
||||
.rec(new Receiver(0)
|
||||
.dmg(15F).delay(26).dry(10).reload(160).jam(0).sound("hbm:weapon.fire.loudestNoiseOnEarth", 100.0F, 1.0F)
|
||||
.dmg(15F).delay(26).dryfire(false).reload(160).jam(0).sound("hbm:weapon.fire.loudestNoiseOnEarth", 100.0F, 1.0F)
|
||||
.mag(new MagazineSingleReload(0, 1).addConfigs(folly_sm))
|
||||
.offset(0.75, -0.0625, -0.1875D)
|
||||
.canFire(LAMBDA_CAN_FIRE).fire(Lego.LAMBDA_STANDARD_FIRE).recoil(Lego.LAMBDA_STANDARD_RECOIL))
|
||||
.canFire(LAMBDA_CAN_FIRE).fire(LAMBDA_FIRE).recoil(Lego.LAMBDA_STANDARD_RECOIL))
|
||||
.setupStandardConfiguration().pt(LAMBDA_TOGGLE_AIM)
|
||||
.anim(LAMBDA_FOLLY_ANIMS).orchestra(Orchestras.ORCHESTRA_FOLLY)
|
||||
).setUnlocalizedName("gun_folly");
|
||||
@ -49,10 +103,15 @@ public class XFactoryFolly {
|
||||
}
|
||||
};
|
||||
|
||||
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_FIRE = (stack, ctx) -> {
|
||||
Lego.doStandardFire(stack, ctx, AnimType.CYCLE, false);
|
||||
};
|
||||
|
||||
public static BiFunction<ItemStack, LambdaContext, Boolean> LAMBDA_CAN_FIRE = (stack, ctx) -> {
|
||||
if(!ItemGunBaseNT.getIsAiming(stack)) return false;
|
||||
if(ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != AnimType.SPINUP) return false;
|
||||
if(ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex) < 100) return false;
|
||||
return ItemGunBaseNT.getIsAiming(stack) && ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0;
|
||||
return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0;
|
||||
};
|
||||
|
||||
@SuppressWarnings("incomplete-switch") public static BiFunction<ItemStack, AnimType, BusAnimation> LAMBDA_FOLLY_ANIMS = (stack, type) -> {
|
||||
|
||||
@ -560,11 +560,8 @@ public class ClientProxy extends ServerProxy {
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_hp, new ItemRenderOverkill());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_euthanasia, new ItemRenderOverkill());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_defabricator, new ItemRenderOverkill());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_bright, ResourceManager.ff_wood));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action, new ItemRenderWeaponFFBolt(ResourceManager.rem700, ResourceManager.rem700_tex));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action_dark, new ItemRenderWeaponFFMaresLeg(ResourceManager.ff_gun_normal, ResourceManager.ff_wood_red));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action_green, new ItemRenderWeaponFFBolt(ResourceManager.rem700poly, ResourceManager.rem700poly_tex));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_lever_action_sonata, new ItemRenderGunAnim());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action_saturnite, new ItemRenderGunAnim());
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_bolt_action_saturnite, new ItemRenderWeaponFFBolt(ResourceManager.rem700sat, ResourceManager.rem700sat_tex));
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.gun_b92, new ItemRenderGunAnim());
|
||||
|
||||
@ -921,6 +921,9 @@ public class MainRegistry {
|
||||
PollutionHandler pollution = new PollutionHandler();
|
||||
MinecraftForge.EVENT_BUS.register(pollution);
|
||||
FMLCommonHandler.instance().bus().register(pollution);
|
||||
|
||||
DamageResistanceHandler dmgHandler = new DamageResistanceHandler();
|
||||
MinecraftForge.EVENT_BUS.register(dmgHandler);
|
||||
|
||||
if(event.getSide() == Side.CLIENT) {
|
||||
HbmKeybinds.register();
|
||||
|
||||
@ -1249,10 +1249,8 @@ public class ResourceManager {
|
||||
public static final ResourceLocation casings_tex = new ResourceLocation(RefStrings.MODID, "textures/particle/casings.png");
|
||||
|
||||
//Bomber
|
||||
public static final ResourceLocation dornier_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_0.png");
|
||||
public static final ResourceLocation dornier_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_1.png");
|
||||
public static final ResourceLocation dornier_2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_2.png");
|
||||
public static final ResourceLocation dornier_3_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_3.png");
|
||||
public static final ResourceLocation dornier_4_tex = new ResourceLocation(RefStrings.MODID, "textures/models/dornier_4.png");
|
||||
public static final ResourceLocation b29_0_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_0.png");
|
||||
public static final ResourceLocation b29_1_tex = new ResourceLocation(RefStrings.MODID, "textures/models/b29_1.png");
|
||||
|
||||
@ -28,36 +28,16 @@ public class RenderBomber extends Render {
|
||||
int i = entity.getDataWatcher().getWatchableObjectByte(16);
|
||||
|
||||
switch(i) {
|
||||
case 0:
|
||||
bindTexture(ResourceManager.dornier_0_tex);
|
||||
break;
|
||||
case 1:
|
||||
bindTexture(ResourceManager.dornier_1_tex);
|
||||
break;
|
||||
case 2:
|
||||
bindTexture(ResourceManager.dornier_2_tex);
|
||||
break;
|
||||
case 3:
|
||||
bindTexture(ResourceManager.dornier_3_tex);
|
||||
break;
|
||||
case 4:
|
||||
bindTexture(ResourceManager.dornier_4_tex);
|
||||
break;
|
||||
case 5:
|
||||
bindTexture(ResourceManager.b29_0_tex);
|
||||
break;
|
||||
case 6:
|
||||
bindTexture(ResourceManager.b29_1_tex);
|
||||
break;
|
||||
case 7:
|
||||
bindTexture(ResourceManager.b29_2_tex);
|
||||
break;
|
||||
case 8:
|
||||
bindTexture(ResourceManager.b29_3_tex);
|
||||
break;
|
||||
default:
|
||||
bindTexture(ResourceManager.dornier_1_tex);
|
||||
break;
|
||||
case 0: bindTexture(ResourceManager.dornier_1_tex); break;
|
||||
case 1: bindTexture(ResourceManager.dornier_1_tex); break;
|
||||
case 2: bindTexture(ResourceManager.dornier_2_tex); break;
|
||||
case 3: bindTexture(ResourceManager.dornier_1_tex); break;
|
||||
case 4: bindTexture(ResourceManager.dornier_4_tex); break;
|
||||
case 5: bindTexture(ResourceManager.b29_0_tex); break;
|
||||
case 6: bindTexture(ResourceManager.b29_1_tex); break;
|
||||
case 7: bindTexture(ResourceManager.b29_2_tex); break;
|
||||
case 8: bindTexture(ResourceManager.b29_3_tex); break;
|
||||
default: bindTexture(ResourceManager.dornier_1_tex); break;
|
||||
}
|
||||
|
||||
GL11.glRotatef((float) Math.sin((entity.ticksExisted + interp) * 0.05) * 10, 1F, 0F, 0F);
|
||||
|
||||
@ -11,6 +11,7 @@ import com.hbm.items.weapon.sedna.mags.IMagazine;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
import com.hbm.util.EntityDamageUtil;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
@ -19,6 +20,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
|
||||
public class ItemRenderFolly extends ItemRenderWeaponBase {
|
||||
|
||||
@ -225,13 +227,24 @@ public class ItemRenderFolly extends ItemRenderWeaponBase {
|
||||
List<String> tty = new ArrayList();
|
||||
long now = System.currentTimeMillis();
|
||||
int time = (int)((now - timeAiming));
|
||||
if(time > 3000) return tty;
|
||||
if(time > 250) tty.add(EnumChatFormatting.GREEN + "POST successful - Code 0");
|
||||
if(time > 500) tty.add(EnumChatFormatting.GREEN + "8,388,608 bytes of RAM installed");
|
||||
if(time > 500) tty.add(EnumChatFormatting.GREEN + "5,187,427 bytes available");
|
||||
if(time > 750) tty.add(EnumChatFormatting.GREEN + "Reticulating splines...");
|
||||
if(time > 1500) tty.add(EnumChatFormatting.GREEN + "No keyboard found!");
|
||||
if(time > 2000) tty.add(EnumChatFormatting.GREEN + "Booting from /dev/sda1...");
|
||||
if(time < 3000) {
|
||||
if(time > 250) tty.add(EnumChatFormatting.GREEN + "POST successful - Code 0");
|
||||
if(time > 500) tty.add(EnumChatFormatting.GREEN + "8,388,608 bytes of RAM installed");
|
||||
if(time > 500) tty.add(EnumChatFormatting.GREEN + "5,187,427 bytes available");
|
||||
if(time > 750) tty.add(EnumChatFormatting.GREEN + "Reticulating splines...");
|
||||
if(time > 1500) tty.add(EnumChatFormatting.GREEN + "No keyboard found!");
|
||||
if(time > 2000) tty.add(EnumChatFormatting.GREEN + "Booting from /dev/sda1...");
|
||||
}
|
||||
if(time > 5000) {
|
||||
EntityPlayer player = MainRegistry.proxy.me();
|
||||
MovingObjectPosition mop = EntityDamageUtil.getMouseOver(player, 250);
|
||||
String target = EnumChatFormatting.GREEN + "Target: ";
|
||||
if(mop.typeOfHit == mop.typeOfHit.MISS) target += "N/A";
|
||||
if(mop.typeOfHit == mop.typeOfHit.BLOCK) target += mop.blockX + "/" + mop.blockY + "/" + mop.blockZ;
|
||||
if(mop.typeOfHit == mop.typeOfHit.ENTITY) target += mop.entityHit.getCommandSenderName();
|
||||
tty.add(target);
|
||||
tty.add(EnumChatFormatting.GREEN + "Angle: " + ((int)(-player.rotationPitch * 100) / 100D));
|
||||
}
|
||||
return tty;
|
||||
}
|
||||
}
|
||||
|
||||
@ -127,6 +127,8 @@ public class ItemRenderMareslegAkimbo extends ItemRenderWeaponBase {
|
||||
|
||||
@Override
|
||||
public void setupInv(ItemStack stack) {
|
||||
GL11.glAlphaFunc(GL11.GL_GREATER, 0F);
|
||||
GL11.glEnable(GL11.GL_ALPHA_TEST);
|
||||
GL11.glScaled(1, 1, -1);
|
||||
GL11.glTranslated(8, 8, 0);
|
||||
double scale = 2.5D;
|
||||
|
||||
@ -0,0 +1,204 @@
|
||||
package com.hbm.render.item.weapon.sedna;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ItemRenderUziAkimbo extends ItemRenderWeaponBase {
|
||||
|
||||
@Override public boolean isAkimbo() { return true; }
|
||||
|
||||
@Override
|
||||
protected float getTurnMagnitude(ItemStack stack) { return ItemGunBaseNT.getIsAiming(stack) ? 2.5F : -0.25F; }
|
||||
|
||||
@Override
|
||||
public float getViewFOV(ItemStack stack, float fov) {
|
||||
float aimingProgress = ItemGunBaseNT.prevAimingProgress + (ItemGunBaseNT.aimingProgress - ItemGunBaseNT.prevAimingProgress) * interp;
|
||||
return fov * (1 - aimingProgress * 0.33F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupFirstPerson(ItemStack stack) {
|
||||
GL11.glTranslated(0, 0, 0.875);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderFirstPerson(ItemStack stack) {
|
||||
|
||||
ItemGunBaseNT gun = (ItemGunBaseNT) stack.getItem();
|
||||
|
||||
float offset = 0.8F;
|
||||
|
||||
for(int i = -1; i <= 1; i += 2) {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
int index = i == -1 ? 0 : 1;
|
||||
standardAimingTransform(stack, -2.25F * offset * i, -1.5F * offset, 2.5F * offset, 0, -4.375 / 8D, 1);
|
||||
|
||||
double scale = 0.25D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
|
||||
double[] equip = HbmAnimations.getRelevantTransformation("EQUIP", index);
|
||||
double[] stockFront = HbmAnimations.getRelevantTransformation("STOCKFRONT", index);
|
||||
double[] stockBack = HbmAnimations.getRelevantTransformation("STOCKBACK", index);
|
||||
double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL", index);
|
||||
double[] lift = HbmAnimations.getRelevantTransformation("LIFT", index);
|
||||
double[] mag = HbmAnimations.getRelevantTransformation("MAG", index);
|
||||
double[] bullet = HbmAnimations.getRelevantTransformation("BULLET", index);
|
||||
double[] slide = HbmAnimations.getRelevantTransformation("SLIDE", index);
|
||||
double[] yeet = HbmAnimations.getRelevantTransformation("YEET", index);
|
||||
double[] speen = HbmAnimations.getRelevantTransformation("SPEEN", index);
|
||||
|
||||
GL11.glTranslated(yeet[0], yeet[1], yeet[2]);
|
||||
GL11.glRotated(speen[0], 0, 0, 1);
|
||||
|
||||
GL11.glTranslated(0, -2, -4);
|
||||
GL11.glRotated(equip[0], 1, 0, 0);
|
||||
GL11.glTranslated(0, 2, 4);
|
||||
|
||||
GL11.glTranslated(0, 0, -6);
|
||||
GL11.glRotated(lift[0], 1, 0, 0);
|
||||
GL11.glTranslated(0, 0, 6);
|
||||
|
||||
GL11.glTranslated(0, 0, recoil[2]);
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
ResourceManager.uzi.renderPart(index == 0 ? "GunMirror" : "Gun");
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0, 0.3125D, -5.75);
|
||||
GL11.glRotated(180 - stockFront[0], 1, 0, 0);
|
||||
GL11.glTranslated(0, -0.3125D, 5.75);
|
||||
ResourceManager.uzi.renderPart("StockFront");
|
||||
|
||||
GL11.glTranslated(0, -0.3125D, -3);
|
||||
GL11.glRotated(-200 - stockBack[0], 1, 0, 0);
|
||||
GL11.glTranslated(0, 0.3125D, 3);
|
||||
ResourceManager.uzi.renderPart("StockBack");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0, 0, slide[2]);
|
||||
ResourceManager.uzi.renderPart("Slide");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(mag[0], mag[1], mag[2]);
|
||||
ResourceManager.uzi.renderPart("Magazine");
|
||||
if(bullet[0] == 1) ResourceManager.uzi.renderPart("Bullet");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
double smokeScale = 0.5;
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0, 0.75, 8.5);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glScaled(smokeScale, smokeScale, smokeScale);
|
||||
this.renderSmokeNodes(gun.getConfig(stack, index).smokeNodes, 0.75D);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0, 0.75, 8.5);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glRotated(90 * gun.shotRand, 1, 0, 0);
|
||||
this.renderMuzzleFlash(gun.lastShot[index], 75, 7.5);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupThirdPerson(ItemStack stack) {
|
||||
super.setupThirdPerson(stack);
|
||||
GL11.glTranslated(0, 1, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupThirdPersonAkimbo(ItemStack stack) {
|
||||
super.setupThirdPersonAkimbo(stack);
|
||||
GL11.glTranslated(0, 1, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupInv(ItemStack stack) {
|
||||
GL11.glAlphaFunc(GL11.GL_GREATER, 0F);
|
||||
GL11.glEnable(GL11.GL_ALPHA_TEST);
|
||||
GL11.glScaled(1, 1, -1);
|
||||
GL11.glTranslated(8, 8, 0);
|
||||
double scale = 1.5D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderEquipped(ItemStack stack) {
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex);
|
||||
ResourceManager.uzi.renderPart("Gun");
|
||||
ResourceManager.uzi.renderPart("StockBack");
|
||||
ResourceManager.uzi.renderPart("StockFront");
|
||||
ResourceManager.uzi.renderPart("Slide");
|
||||
ResourceManager.uzi.renderPart("Magazine");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderEquippedAkimbo(ItemStack stack) {
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex);
|
||||
ResourceManager.uzi.renderPart("GunMirror");
|
||||
ResourceManager.uzi.renderPart("StockBack");
|
||||
ResourceManager.uzi.renderPart("StockFront");
|
||||
ResourceManager.uzi.renderPart("Slide");
|
||||
ResourceManager.uzi.renderPart("Magazine");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderOther(ItemStack stack, ItemRenderType type) {
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.uzi_tex);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(225, 0, 0, 1);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glRotated(25, 1, 0, 0);
|
||||
GL11.glRotated(45, 0, 1, 0);
|
||||
GL11.glTranslated(0, 1, 0);
|
||||
ResourceManager.uzi.renderPart("Gun");
|
||||
ResourceManager.uzi.renderPart("StockBack");
|
||||
ResourceManager.uzi.renderPart("StockFront");
|
||||
ResourceManager.uzi.renderPart("Slide");
|
||||
ResourceManager.uzi.renderPart("Magazine");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glTranslated(0, 0, 5);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotated(225, 0, 0, 1);
|
||||
GL11.glRotated(-90, 0, 1, 0);
|
||||
GL11.glRotated(-90, 1, 0, 0);
|
||||
GL11.glRotated(25, 1, 0, 0);
|
||||
GL11.glRotated(-45, 0, 1, 0);
|
||||
GL11.glTranslated(0, 1, 0);
|
||||
ResourceManager.uzi.renderPart("GunMirror");
|
||||
ResourceManager.uzi.renderPart("StockBack");
|
||||
ResourceManager.uzi.renderPart("StockFront");
|
||||
ResourceManager.uzi.renderPart("Slide");
|
||||
ResourceManager.uzi.renderPart("Magazine");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
}
|
||||
@ -4,12 +4,16 @@ import java.util.HashMap;
|
||||
|
||||
import com.hbm.util.Tuple.Quartet;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.monster.EntityCreeper;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraftforge.event.entity.living.LivingAttackEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingHurtEvent;
|
||||
|
||||
/**
|
||||
* Basic handling/registry class for our custom resistance stats.
|
||||
@ -18,19 +22,73 @@ import net.minecraft.util.MathHelper;
|
||||
* @author hbm
|
||||
*/
|
||||
public class DamageResistanceHandler {
|
||||
|
||||
/** Currently cached DT reduction */
|
||||
public static float currentPDT = 0F;
|
||||
/** Currently cached armor piercing % */
|
||||
public static float currentPDR = 0F;
|
||||
|
||||
public static final String KEY_EXPLOSION = "EXPL";
|
||||
|
||||
public static HashMap<Item, ResistanceStats> itemStats = 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 void init() {
|
||||
entityStats.put(EntityCreeper.class, new ResistanceStats().add(KEY_EXPLOSION, 2F, 0.5F));
|
||||
}
|
||||
|
||||
public static void setup(float dt, float dr) {
|
||||
currentPDT = dt;
|
||||
currentPDR = dr;
|
||||
}
|
||||
|
||||
public static void reset() {
|
||||
currentPDT = 0;
|
||||
currentPDR = 0;
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onEntityAttacked(LivingAttackEvent event) {
|
||||
EntityLivingBase e = event.entityLiving;
|
||||
float amount = event.ammount;
|
||||
|
||||
float[] vals = getDTDR(e, event.source, amount, currentPDT, currentPDR);
|
||||
float dt = vals[0];
|
||||
|
||||
if(dt > 0 && dt >= event.ammount) event.setCanceled(true);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onEntityDamaged(LivingHurtEvent event) {
|
||||
event.ammount = calculateDamage(event.entityLiving, event.source, event.ammount, currentPDT, currentPDR);
|
||||
}
|
||||
|
||||
public static String typeToKey(DamageSource source) {
|
||||
if(source.isExplosion()) return KEY_EXPLOSION;
|
||||
return source.damageType;
|
||||
}
|
||||
|
||||
public static float calculateDamage(EntityLivingBase entity, DamageSource damage, float amount, float pierceDT, float pierce) {
|
||||
if(damage.isDamageAbsolute() || damage.isUnblockable()) return amount;
|
||||
|
||||
String key = damage.damageType;
|
||||
float[] vals = getDTDR(entity, damage, amount, pierceDT, pierce);
|
||||
float dt = vals[0];
|
||||
float dr = vals[1];
|
||||
|
||||
dt = Math.max(0F, dt - pierceDT);
|
||||
if(dt >= amount) return 0F;
|
||||
amount -= dt;
|
||||
dr *= MathHelper.clamp_float(1F - pierce, 0F, 1F);
|
||||
|
||||
System.out.println(dt + " " + dr);
|
||||
|
||||
return amount *= (1F - dr);
|
||||
}
|
||||
|
||||
public static float[] getDTDR(EntityLivingBase entity, DamageSource damage, float amount, float pierceDT, float pierce) {
|
||||
|
||||
String key = typeToKey(damage);
|
||||
float dt = 0;
|
||||
float dr = 0;
|
||||
|
||||
@ -72,14 +130,8 @@ public class DamageResistanceHandler {
|
||||
dr += res.resistance;
|
||||
}
|
||||
}
|
||||
|
||||
/// MATH ///
|
||||
dt = Math.max(0F, dt - pierceDT);
|
||||
if(dt <= amount) return 0F;
|
||||
amount -= dt;
|
||||
dr *= MathHelper.clamp_float(1F - pierce, 0F, 1F);
|
||||
|
||||
return amount *= (1F - dr);
|
||||
return new float[] {dt, dr};
|
||||
}
|
||||
|
||||
public static class ResistanceStats {
|
||||
|
||||
@ -20,27 +20,6 @@ import net.minecraftforge.common.ForgeHooks;
|
||||
|
||||
public class EntityDamageUtil {
|
||||
|
||||
/**
|
||||
* Attacks the given entity twice, based on a piercing percentage. The second hit sets the damage source to bypass armor.
|
||||
* The damage source is modified, so you can't reuse damage source instances.
|
||||
*/
|
||||
@Deprecated public static boolean attackEntityFromArmorPiercing(Entity victim, DamageSource src, float damage, float piercing) {
|
||||
|
||||
if(src.isUnblockable() || piercing == 0) return victim.attackEntityFrom(src, damage);
|
||||
|
||||
if(piercing == 1) {
|
||||
src.setDamageBypassesArmor();
|
||||
return victim.attackEntityFrom(src, damage);
|
||||
}
|
||||
|
||||
boolean ret = false;
|
||||
|
||||
ret |= victim.attackEntityFrom(src, damage * (1F - piercing));
|
||||
src.setDamageBypassesArmor();
|
||||
ret |= victim.attackEntityFrom(src, damage * piercing);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static boolean attackEntityFromIgnoreIFrame(Entity victim, DamageSource src, float damage) {
|
||||
|
||||
if(!victim.attackEntityFrom(src, damage)) {
|
||||
@ -58,24 +37,14 @@ public class EntityDamageUtil {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated public static float getDamageAfterTax(EntityLivingBase living, DamageSource source, float amount) {
|
||||
amount = ForgeHooks.onLivingHurt(living, source, amount);
|
||||
if(amount <= 0) return 0;
|
||||
amount = applyArmorCalculations(living, source, amount);
|
||||
return amount;
|
||||
public static boolean attackEntityFromNT(EntityLivingBase living, DamageSource source, float amount, boolean ignoreIFrame, boolean allowSpecialCancel, double knockbackMultiplier, float pierceDT, float pierce) {
|
||||
DamageResistanceHandler.setup(pierceDT, pierce);
|
||||
boolean ret = attackEntityFromNTInternal(living, source, amount, ignoreIFrame, allowSpecialCancel, knockbackMultiplier);
|
||||
DamageResistanceHandler.reset();
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Deprecated public static boolean attackArmorPiercing(EntityLivingBase living, DamageSource sourceDamageCalc, DamageSource sourceArmorPiercing, float amount, float piercing) {
|
||||
if(piercing <= 0) return living.attackEntityFrom(sourceDamageCalc, amount);
|
||||
//damage intended to pass the armor
|
||||
float afterTax = getDamageAfterTax(living, sourceDamageCalc, amount);
|
||||
//damage removed by the calculation
|
||||
float reduced = Math.max(amount - afterTax, 0F);
|
||||
//damage that would pass + damage tthat wouldn't pass * AP percentage
|
||||
return attackEntityFromIgnoreIFrame(living, sourceArmorPiercing, Math.max(afterTax + (reduced * piercing), 0F));
|
||||
}
|
||||
|
||||
public static boolean attackEntityFromNT(EntityLivingBase living, DamageSource source, float amount, boolean ignoreIFrame, boolean allowSpecialCancel, double knockbackMultiplier) {
|
||||
private static boolean attackEntityFromNTInternal(EntityLivingBase living, DamageSource source, float amount, boolean ignoreIFrame, boolean allowSpecialCancel, double knockbackMultiplier) {
|
||||
if(ForgeHooks.onLivingAttack(living, source, amount) && allowSpecialCancel) return false;
|
||||
if(living.isEntityInvulnerable()) return false;
|
||||
if(living.worldObj.isRemote) return false;
|
||||
@ -89,14 +58,14 @@ public class EntityDamageUtil {
|
||||
|
||||
if(living.hurtResistantTime > living.maxHurtResistantTime / 2.0F && !ignoreIFrame) {
|
||||
if(amount <= living.lastDamage) { return false; }
|
||||
damageEntityNT(living, source, amount - living.lastDamage); //TODO: override
|
||||
damageEntityNT(living, source, amount - living.lastDamage);
|
||||
living.lastDamage = amount;
|
||||
didAttackRegister = false;
|
||||
} else {
|
||||
living.lastDamage = amount;
|
||||
living.prevHealth = living.getHealth();
|
||||
living.hurtResistantTime = living.maxHurtResistantTime;
|
||||
damageEntityNT(living, source, amount); //TODO: override
|
||||
damageEntityNT(living, source, amount);
|
||||
living.hurtTime = living.maxHurtTime = 10;
|
||||
}
|
||||
|
||||
|
||||
@ -1150,9 +1150,12 @@ item.ammo_shell.name=240mm Geschoss
|
||||
item.ammo_shell_apfsds_du.name=240mm APFSDS-DU
|
||||
item.ammo_shell_apfsds_t.name=240mm APFSDS-T
|
||||
item.ammo_shell_explosive.name=240mm HE-Geschoss
|
||||
item.ammo_secret.bmg50_equestrian.name=.50 BMG Zerstörer
|
||||
item.ammo_secret.folly_sm.name=Silberne Kugel
|
||||
item.ammo_secret.g12_equestrian.name=Kaliber 12 Gleisnägel
|
||||
item.ammo_secret.m44_equestrian.name=.44 Magnum Schädelsprenger
|
||||
item.ammo_standard.bmg50_ap.name=.50 BMG Patrone (Panzerbrechend)
|
||||
item.ammo_standard.bmg50_du.name=.50 BMG Patrone (Urangeschoss)
|
||||
item.ammo_standard.bmg50_equestrian.name=.50 BMG Zerstörer
|
||||
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)
|
||||
@ -1165,7 +1168,6 @@ item.ammo_standard.g12_anthrax.name=Kaliber 12 Anthrax
|
||||
item.ammo_standard.g12_bp.name=Kaliber 12 Schwarzpulver
|
||||
item.ammo_standard.g12_bp_magnum.name=Kaliber 12 Schwarzpulver Magnum
|
||||
item.ammo_standard.g12_bp_slug.name=Kaliber 12 Schwarzpulver Laufgeschoss
|
||||
item.ammo_standard.g12_equestrian.name=Kaliber 12 Gleisnägel
|
||||
item.ammo_standard.g12_explosive.name=Kaliber 12 Explosivgeschoss
|
||||
item.ammo_standard.g12_flechette.name=Kaliber 12 Flechett
|
||||
item.ammo_standard.g12_magnum.name=Kaliber 12 Magnum
|
||||
@ -1186,7 +1188,6 @@ item.ammo_standard.m357_jhp.name=.357 Magnumkugel (Hohlspitz)
|
||||
item.ammo_standard.m357_sp.name=.357 Magnumkugel (Teilmantelgeschoss)
|
||||
item.ammo_standard.m44_ap.name=.44 Magnumkugel (Panzerbrechend)
|
||||
item.ammo_standard.m44_bp.name=.44 Magnumkugel (Schwarzpulver)
|
||||
item.ammo_standard.m44_equestrian.name=.44 Magnum Schädelsprenger
|
||||
item.ammo_standard.m44_express.name=.44 Magnumkugel (VMG Express)
|
||||
item.ammo_standard.m44_fmj.name=.44 Magnumkugel (Vollmantelgeschoss)
|
||||
item.ammo_standard.m44_jhp.name=.44 Magnumkugel (Hohlspitz)
|
||||
@ -2171,7 +2172,7 @@ item.gun_fireext.name=Feuerlöscher
|
||||
item.gun_flamer.name=Flammenwerfer
|
||||
item.gun_flaregun.name=Signalpistole
|
||||
item.gun_flechette.name=Flechet-Gewehr
|
||||
item.gun_folly.name=Prototyp Digamma "Irrsinn"
|
||||
item.gun_folly.name=Folly
|
||||
item.gun_g3.name=Sturmgewehr
|
||||
item.gun_greasegun.name=Grease Gun
|
||||
item.gun_hangman.name=Hangman
|
||||
@ -2268,6 +2269,7 @@ item.gun_uac_pistol.name=UAC .45 Pistole
|
||||
item.gun_uboinik.name=Ubojnik
|
||||
item.gun_uboinik_ammo.name=12x70 Schrotmunition (LEGACY)
|
||||
item.gun_uzi.name=Uzi
|
||||
item.gun_uzi_akimbo.name=Uzis
|
||||
item.gun_uzi_ammo.name=.22 lfB Patrone (LEGACY)
|
||||
item.gun_uzi_saturnite.name=Saturnit-Uzi
|
||||
item.gun_uzi_saturnite_silencer.name=Saturnit-Uzi mit Schalldämpfer
|
||||
|
||||
@ -1873,9 +1873,12 @@ item.ammo_shell_apfsds_du.name=240mm APFSDS-DU
|
||||
item.ammo_shell_apfsds_t.name=240mm APFSDS-T
|
||||
item.ammo_shell_explosive.name=240mm HE Shell
|
||||
item.ammo_shell_w9.name=240mm W9 Nuclear Shell
|
||||
item.ammo_secret.bmg50_equestrian.name=.50 BMG Demolisher
|
||||
item.ammo_secret.folly_sm.name=Silver Bullet
|
||||
item.ammo_secret.g12_equestrian.name=12 Gauge Railway Spike Shot
|
||||
item.ammo_secret.m44_equestrian.name=.44 Magnum Head-Exploder
|
||||
item.ammo_standard.bmg50_ap.name=.50 BMG Round (Armor Piercing)
|
||||
item.ammo_standard.bmg50_du.name=.50 BMG Round (Depleted Uranium)
|
||||
item.ammo_standard.bmg50_equestrian.name=.50 BMG Demolisher
|
||||
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)
|
||||
@ -1888,7 +1891,6 @@ item.ammo_standard.g12_anthrax.name=12 Gauge Anthrax Shell
|
||||
item.ammo_standard.g12_bp.name=12 Gauge Black Powder Buckshot
|
||||
item.ammo_standard.g12_bp_magnum.name=12 Gauge Black Powder Magnum Shell
|
||||
item.ammo_standard.g12_bp_slug.name=12 Gauge Black Powder Slug
|
||||
item.ammo_standard.g12_equestrian.name=12 Gauge Railway Spike Shot
|
||||
item.ammo_standard.g12_explosive.name=12 Gauge Explosive Shell
|
||||
item.ammo_standard.g12_flechette.name=12 Gauge Flechette Shell
|
||||
item.ammo_standard.g12_magnum.name=12 Gauge Magnum Shell
|
||||
@ -1909,7 +1911,6 @@ item.ammo_standard.m357_jhp.name=.357 Magnum Round (Jacketed Hollow Point)
|
||||
item.ammo_standard.m357_sp.name=.357 Magnum Round (Soft Point)
|
||||
item.ammo_standard.m44_ap.name=.44 Magnum Round (Armor Piercing)
|
||||
item.ammo_standard.m44_bp.name=.44 Magnum Round (Black Powder)
|
||||
item.ammo_standard.m44_equestrian.name=.44 Magnum Head-Exploder
|
||||
item.ammo_standard.m44_express.name=.44 Magnum Round (FMJ Express)
|
||||
item.ammo_standard.m44_fmj.name=.44 Magnum Round (Full Metal Jacket)
|
||||
item.ammo_standard.m44_jhp.name=.44 Magnum Round (Jacketed Hollow Point)
|
||||
@ -2979,7 +2980,7 @@ item.gun_fireext.name=Fire Extinguisher
|
||||
item.gun_flamer.name=Flamethrower
|
||||
item.gun_flaregun.name=Flare Gun
|
||||
item.gun_flechette.name=Flechette Rifle
|
||||
item.gun_folly.name=Prototype Digamma "Folly"
|
||||
item.gun_folly.name=Folly
|
||||
item.gun_g3.name=Assault Rifle
|
||||
item.gun_glass_cannon.name=The Glass Cannon
|
||||
item.gun_greasegun.name=Grease Gun
|
||||
@ -3078,6 +3079,7 @@ item.gun_uac_pistol.name=UAC .45 Pistol
|
||||
item.gun_uboinik.name=Uboinik
|
||||
item.gun_uboinik_ammo.name=12x70 Buckshot (LEGACY)
|
||||
item.gun_uzi.name=Uzi
|
||||
item.gun_uzi_akimbo.name=Uzis
|
||||
item.gun_uzi_ammo.name=.22 LR Round (LEGACY)
|
||||
item.gun_uzi_saturnite.name=Saturnite Uzi
|
||||
item.gun_uzi_saturnite_silencer.name=Saturnite Uzi with Silencer
|
||||
|
||||
|
Before Width: | Height: | Size: 311 B |
|
Before Width: | Height: | Size: 811 B |
|
Before Width: | Height: | Size: 437 B |
|
Before Width: | Height: | Size: 653 B |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 786 B |
|
Before Width: | Height: | Size: 629 B |