diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 494cc4106..08d39073a 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -73,6 +73,9 @@ tool.ability.hammer=AoE tool.ability.smelter=Auto-Ofen tool.ability.shredder=Auto-Brecher tool.ability.cnetrifuge=Auto-Zentrifuge +weapon.ability.radiation=Radioaktive Schneide +weapon.ability.vampire=Vampir +weapon.ability.stun=Betäubend hbmfluid.none=Nichts hbmfluid.water=Wasser @@ -2118,6 +2121,11 @@ item.desh_pickaxe.name=Arbeitslegierungsspitzhacke item.desh_axe.name=Arbeitslegierungsaxt item.desh_shovel.name=Arbeitslegierungsschaufel item.desh_hoe.name=Arbeitslegierungsfeldhacke +item.cobalt_sword.name=Kobaltschwert +item.cobalt_pickaxe.name=Kobaltspitzhacke +item.cobalt_axe.name=Kobaltaxt +item.cobalt_shovel.name=Kobaltschaufel +item.cobalt_hoe.name=Kobaltfeldhacke tile.red_cable.name=Rotes Kupferkabel diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index ebd3a6ecc..c4e02f670 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -73,6 +73,9 @@ tool.ability.hammer=AoE tool.ability.smelter=Auto-Smelter tool.ability.shredder=Auto-Shredder tool.ability.centrifuge=Auto-Centrifuge +weapon.ability.radiation=Radioactive Blade +weapon.ability.vampire=Vampire +weapon.ability.stun=Stunning hbmfluid.none=None hbmfluid.water=Water @@ -2118,6 +2121,11 @@ item.desh_pickaxe.name=Worker's Alloy Pickaxe item.desh_axe.name=Worker's Alloy Axe item.desh_shovel.name=Worker's Alloy Shovel item.desh_hoe.name=Worker's Alloy Hoe +item.cobalt_sword.name=Cobalt Sword +item.cobalt_pickaxe.name=Cobalt Pickaxe +item.cobalt_axe.name=Cobalt Axe +item.cobalt_shovel.name=Cobalt Shovel +item.cobalt_hoe.name=Cobalt Hoe tile.red_cable.name=Red Copper Cable diff --git a/assets/hbm/sounds.json b/assets/hbm/sounds.json index 8a3d931fe..f23f29ce0 100644 --- a/assets/hbm/sounds.json +++ b/assets/hbm/sounds.json @@ -55,7 +55,7 @@ "music.recordLambdaCore": {"category": "record", "sounds": [{"name": "music/recordLambdaCore", "stream": true}]}, "music.recordSectorSweep": {"category": "record", "sounds": [{"name": "music/recordSectorSweep", "stream": true}]}, "music.recordVortalCombat": {"category": "record", "sounds": [{"name": "music/recordVortalCombat", "stream": true}]}, - "music.transmission": {"category": "record", "sounds": [{"name": "music/transmission", "stream": true}]}, + "music.transmission": {"category": "record", "sounds": [{"name": "music/recordGlass", "stream": true}]}, "weapon.tauShoot": {"category": "player", "sounds": [{"name": "weapon/tauShoot", "stream": false}]}, "weapon.tauChargeLoop2": {"category": "player", "sounds": [{"name": "weapon/tauChargeLoop2", "stream": true}]}, @@ -122,6 +122,7 @@ "weapon.tesla": {"category": "block", "sounds": ["weapon/tesla1", "weapon/tesla2", "weapon/tesla3", "weapon/tesla4"]}, "weapon.teslaShoot": {"category": "player", "sounds": [{"name": "weapon/teslaShoot", "stream": false}]}, "weapon.flamerReload": {"category": "player", "sounds": [{"name": "weapon/flamerReload", "stream": false}]}, + "weapon.stop": {"category": "player", "sounds": ["weapon/stop1", "weapon/stop2"]}, "weapon.reloadTurret": {"category": "player", "sounds": [{"name": "weapon/reloadTurret", "stream": false}]}, "weapon.switchmode1": {"category": "player", "sounds": [{"name": "weapon/switchmode1", "stream": false}]}, diff --git a/assets/hbm/sounds/music/recordGlass.ogg b/assets/hbm/sounds/music/recordGlass.ogg new file mode 100644 index 000000000..f37147ccb Binary files /dev/null and b/assets/hbm/sounds/music/recordGlass.ogg differ diff --git a/assets/hbm/sounds/weapon/stop1.ogg b/assets/hbm/sounds/weapon/stop1.ogg new file mode 100644 index 000000000..975a6b930 Binary files /dev/null and b/assets/hbm/sounds/weapon/stop1.ogg differ diff --git a/assets/hbm/sounds/weapon/stop2.ogg b/assets/hbm/sounds/weapon/stop2.ogg new file mode 100644 index 000000000..d200c4cfe Binary files /dev/null and b/assets/hbm/sounds/weapon/stop2.ogg differ diff --git a/assets/hbm/textures/items/cobalt_pickaxe.png b/assets/hbm/textures/items/cobalt_pickaxe.png new file mode 100644 index 000000000..20f6d6bd1 Binary files /dev/null and b/assets/hbm/textures/items/cobalt_pickaxe.png differ diff --git a/assets/hbm/textures/items/fragment_cobalt.png b/assets/hbm/textures/items/fragment_cobalt.png index 55306026e..bca9299a1 100644 Binary files a/assets/hbm/textures/items/fragment_cobalt.png and b/assets/hbm/textures/items/fragment_cobalt.png differ diff --git a/assets/hbm/textures/items/powder_cobalt.png b/assets/hbm/textures/items/powder_cobalt.png index fbfacc574..0b3eacc5c 100644 Binary files a/assets/hbm/textures/items/powder_cobalt.png and b/assets/hbm/textures/items/powder_cobalt.png differ diff --git a/assets/hbm/textures/items/powder_cobalt_tiny.png b/assets/hbm/textures/items/powder_cobalt_tiny.png index 951d383ed..7b4c8cf40 100644 Binary files a/assets/hbm/textures/items/powder_cobalt_tiny.png and b/assets/hbm/textures/items/powder_cobalt_tiny.png differ diff --git a/assets/hbm/textures/items/schrabidium_axe.png b/assets/hbm/textures/items/schrabidium_axe.png index 66632c793..6b9149a9d 100644 Binary files a/assets/hbm/textures/items/schrabidium_axe.png and b/assets/hbm/textures/items/schrabidium_axe.png differ diff --git a/assets/hbm/textures/items/schrabidium_hoe.png b/assets/hbm/textures/items/schrabidium_hoe.png index 5434410f0..4604bafcc 100644 Binary files a/assets/hbm/textures/items/schrabidium_hoe.png and b/assets/hbm/textures/items/schrabidium_hoe.png differ diff --git a/assets/hbm/textures/items/schrabidium_pickaxe.png b/assets/hbm/textures/items/schrabidium_pickaxe.png index f59ab8e6c..5e0703ab1 100644 Binary files a/assets/hbm/textures/items/schrabidium_pickaxe.png and b/assets/hbm/textures/items/schrabidium_pickaxe.png differ diff --git a/assets/hbm/textures/items/schrabidium_shovel.png b/assets/hbm/textures/items/schrabidium_shovel.png index f203ff8cf..1041a4387 100644 Binary files a/assets/hbm/textures/items/schrabidium_shovel.png and b/assets/hbm/textures/items/schrabidium_shovel.png differ diff --git a/assets/hbm/textures/items/schrabidium_sword.png b/assets/hbm/textures/items/schrabidium_sword.png index a96a9e88e..9a9aa8574 100644 Binary files a/assets/hbm/textures/items/schrabidium_sword.png and b/assets/hbm/textures/items/schrabidium_sword.png differ diff --git a/assets/hbm/textures/items/starmetal_boots.png b/assets/hbm/textures/items/starmetal_boots.png new file mode 100644 index 000000000..2a6b6e53d Binary files /dev/null and b/assets/hbm/textures/items/starmetal_boots.png differ diff --git a/assets/hbm/textures/items/starmetal_helmet.png b/assets/hbm/textures/items/starmetal_helmet.png new file mode 100644 index 000000000..5ea3e184b Binary files /dev/null and b/assets/hbm/textures/items/starmetal_helmet.png differ diff --git a/assets/hbm/textures/items/starmetal_legs.png b/assets/hbm/textures/items/starmetal_legs.png new file mode 100644 index 000000000..365785c9d Binary files /dev/null and b/assets/hbm/textures/items/starmetal_legs.png differ diff --git a/assets/hbm/textures/items/starmetal_plate.png b/assets/hbm/textures/items/starmetal_plate.png new file mode 100644 index 000000000..5e45234ef Binary files /dev/null and b/assets/hbm/textures/items/starmetal_plate.png differ diff --git a/com/hbm/handler/WeaponAbility.java b/com/hbm/handler/WeaponAbility.java new file mode 100644 index 000000000..2965ba2cd --- /dev/null +++ b/com/hbm/handler/WeaponAbility.java @@ -0,0 +1,107 @@ +package com.hbm.handler; + +import com.hbm.items.tool.ItemToolAbility; +import com.hbm.lib.Library; + +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; + +public abstract class WeaponAbility { + + public abstract void onHit(World world, EntityPlayer player, Entity victim, ItemToolAbility tool); + public abstract String getName(); + public abstract String getFullName(); + + public static class RadiationAbility extends WeaponAbility { + + float rad; + + public RadiationAbility(float rad) { + this.rad = rad; + } + + @Override + public void onHit(World world, EntityPlayer player, Entity victim, ItemToolAbility tool) { + + Library.applyRadData(victim, rad); + } + + @Override + public String getName() { + return "weapon.ability.radiation"; + } + + @Override + public String getFullName() { + return I18n.format(getName()) + " (" + rad + ")"; + } + } + + public static class VampireAbility extends WeaponAbility { + + float amount; + + public VampireAbility(float amount) { + this.amount = amount; + } + + @Override + public void onHit(World world, EntityPlayer player, Entity victim, ItemToolAbility tool) { + + if(victim instanceof EntityLivingBase) { + + EntityLivingBase living = (EntityLivingBase) victim; + + living.setHealth(living.getHealth() - amount); + player.heal(amount); + } + } + + @Override + public String getName() { + return "weapon.ability.vampire"; + } + + @Override + public String getFullName() { + return I18n.format(getName()) + " (" + amount + ")"; + } + } + + public static class StunAbility extends WeaponAbility { + + int duration; + + public StunAbility(int duration) { + this.duration = duration; + } + + @Override + public void onHit(World world, EntityPlayer player, Entity victim, ItemToolAbility tool) { + + if(victim instanceof EntityLivingBase) { + + EntityLivingBase living = (EntityLivingBase) victim; + + living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, duration * 20, 4)); + living.addPotionEffect(new PotionEffect(Potion.weakness.id, duration * 20, 4)); + } + } + + @Override + public String getName() { + return "weapon.ability.stun"; + } + + @Override + public String getFullName() { + return I18n.format(getName()) + " (" + duration + ")"; + } + } + +} diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index ccdd332b5..bb7a0313f 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -5333,12 +5333,18 @@ public class MachineRecipes { break; case DYN_SCHRAB: output[0] = new ItemStack(ModItems.ingot_schrabidium, 1); + output[1] = new ItemStack(ModItems.powder_desh, 12); + output[2] = new ItemStack(ModItems.powder_desh_mix, 12); break; case DYN_EUPH: output[0] = new ItemStack(ModItems.nugget_euphemium, 12); + output[1] = new ItemStack(ModItems.powder_schrabidium, 4); + output[2] = new ItemStack(ModItems.powder_power, 4); break; case DYN_DNT: output[0] = new ItemStack(ModItems.ingot_dineutronium, 1); + output[1] = new ItemStack(ModItems.powder_euphemium, 8); + output[2] = new ItemStack(ModItems.powder_nitan_mix, 8); break; case CORDITE: output[0] = new ItemStack(ModItems.cordite, 4); diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 4caf0e73e..46b9bb283 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -3,6 +3,7 @@ package com.hbm.items; import com.hbm.blocks.ModBlocks; import com.hbm.handler.BucketHandler; import com.hbm.handler.ToolAbility; +import com.hbm.handler.WeaponAbility; import com.hbm.handler.guncfg.Gun12GaugeFactory; import com.hbm.handler.guncfg.Gun20GaugeFactory; import com.hbm.handler.guncfg.Gun22LRFactory; @@ -1553,6 +1554,11 @@ public class ModItems { public static Item desh_axe; public static Item desh_shovel; public static Item desh_hoe; + public static Item cobalt_sword; + public static Item cobalt_pickaxe; + public static Item cobalt_axe; + public static Item cobalt_shovel; + public static Item cobalt_hoe; public static Item matchstick; @@ -3336,8 +3342,6 @@ public class ModItems { t45_plate = new ArmorT45(MainRegistry.aMatT45, 2, 1).setUnlocalizedName("t45_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_plate"); t45_legs = new ArmorT45(MainRegistry.aMatT45, 2, 2).setUnlocalizedName("t45_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_legs"); t45_boots = new ArmorT45(MainRegistry.aMatT45, 2, 3).setUnlocalizedName("t45_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_boots"); - - chainsaw = new ModAxe(MainRegistry.enumToolMaterialChainsaw).setUnlocalizedName("chainsaw").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":chainsaw"); schrabidium_helmet = new ArmorFSB(MainRegistry.aMatSchrab, 7, 0, RefStrings.MODID + ":textures/armor/schrabidium_1.png").setCap(4F).setMod(0.1F) .addEffect(new PotionEffect(Potion.digSpeed.id, 20, 2)) @@ -3348,7 +3352,7 @@ public class ModItems { schrabidium_plate = new ArmorFSB(MainRegistry.aMatSchrab, 7, 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, 7, 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, 7, 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"); - titanium_helmet = new ArmorFSB(MainRegistry.aMatTitan, 7, 0, RefStrings.MODID + ":textures/armor/titanium_1.png").setMod(0.75F).setUnlocalizedName("titanium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_helmet"); + titanium_helmet = new ArmorFSB(MainRegistry.aMatTitan, 7, 0, RefStrings.MODID + ":textures/armor/titanium_1.png").setMod(0.85F).setUnlocalizedName("titanium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_helmet"); titanium_plate = new ArmorFSB(MainRegistry.aMatTitan, 7, 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, 7, 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, 7, 3, RefStrings.MODID + ":textures/armor/titanium_1.png").cloneStats((ArmorFSB) titanium_helmet).setUnlocalizedName("titanium_boots").setTextureName(RefStrings.MODID + ":titanium_boots"); @@ -3356,7 +3360,7 @@ public class ModItems { steel_plate = new ArmorFSB(MainRegistry.aMatSteel, 7, 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, 7, 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, 7, 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, 7, 0, RefStrings.MODID + ":textures/armor/alloy_1.png").setMod(0.6F).setUnlocalizedName("alloy_helmet").setTextureName(RefStrings.MODID + ":alloy_helmet"); + alloy_helmet = new ArmorFSB(MainRegistry.aMatAlloy, 7, 0, RefStrings.MODID + ":textures/armor/alloy_1.png").setMod(0.75F).setUnlocalizedName("alloy_helmet").setTextureName(RefStrings.MODID + ":alloy_helmet"); alloy_plate = new ArmorFSB(MainRegistry.aMatAlloy, 7, 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, 7, 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, 7, 3, RefStrings.MODID + ":textures/armor/alloy_1.png").cloneStats((ArmorFSB) alloy_helmet).setUnlocalizedName("alloy_boots").setTextureName(RefStrings.MODID + ":alloy_boots"); @@ -3378,109 +3382,135 @@ public class ModItems { security_plate = new ArmorFSB(MainRegistry.aMatSecurity, 7, 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, 7, 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, 7, 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, 7, 0, RefStrings.MODID + ":textures/armor/cobalt_1.png").setMod(0.5F).setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet"); + cobalt_helmet = new ArmorFSB(MainRegistry.aMatCobalt, 7, 0, RefStrings.MODID + ":textures/armor/cobalt_1.png").setMod(0.75F).setUnlocalizedName("cobalt_helmet").setTextureName(RefStrings.MODID + ":cobalt_helmet"); cobalt_plate = new ArmorFSB(MainRegistry.aMatCobalt, 7, 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, 7, 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, 7, 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, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setMod(0.5F).setUnlocalizedName("starmetal_helmet").setTextureName(RefStrings.MODID + ":starmetal_helmet"); + starmetal_helmet = new ArmorFSB(MainRegistry.aMatStarmetal, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png").setMod(0.5F).setCap(15F).setUnlocalizedName("starmetal_helmet").setTextureName(RefStrings.MODID + ":starmetal_helmet"); starmetal_plate = new ArmorFSB(MainRegistry.aMatStarmetal, 7, 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, 7, 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, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_boots").setTextureName(RefStrings.MODID + ":starmetal_boots"); jackt = new ModArmor(MainRegistry.aMatSteel, 7, 1).setUnlocalizedName("jackt").setTextureName(RefStrings.MODID + ":jackt"); jackt2 = new ModArmor(MainRegistry.aMatSteel, 7, 1).setUnlocalizedName("jackt2").setTextureName(RefStrings.MODID + ":jackt2"); + + chainsaw = new ItemToolAbility(25, -0.05, MainRegistry.enumToolMaterialChainsaw, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.RecursionAbility(5)).setUnlocalizedName("chainsaw").setTextureName(RefStrings.MODID + ":chainsaw"); - schrabidium_sword = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialSchrabidium, EnumToolType.SWORD).setUnlocalizedName("schrabidium_sword").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":schrabidium_sword"); + schrabidium_sword = new ItemToolAbility(150, 0, MainRegistry.enumToolMaterialSchrabidium, EnumToolType.SWORD) + .addHitAbility(new WeaponAbility.RadiationAbility(50F)) + .addHitAbility(new WeaponAbility.VampireAbility(2F)).setUnlocalizedName("schrabidium_sword").setTextureName(RefStrings.MODID + ":schrabidium_sword"); - schrabidium_pickaxe = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialSchrabidium, EnumToolType.PICKAXE) + schrabidium_pickaxe = new ItemToolAbility(20, 0, MainRegistry.enumToolMaterialSchrabidium, EnumToolType.PICKAXE) + .addHitAbility(new WeaponAbility.RadiationAbility(15F)) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(10)) .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()).setUnlocalizedName("schrabidium_pickaxe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":schrabidium_pickaxe"); + .addBreakAbility(new ToolAbility.ShredderAbility()).setUnlocalizedName("schrabidium_pickaxe").setTextureName(RefStrings.MODID + ":schrabidium_pickaxe"); - schrabidium_axe = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialSchrabidium, EnumToolType.AXE) + schrabidium_axe = new ItemToolAbility(25, 0, MainRegistry.enumToolMaterialSchrabidium, EnumToolType.AXE) + .addHitAbility(new WeaponAbility.RadiationAbility(15F)) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(10)) .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()).setUnlocalizedName("schrabidium_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":schrabidium_axe"); + .addBreakAbility(new ToolAbility.ShredderAbility()).setUnlocalizedName("schrabidium_axe").setTextureName(RefStrings.MODID + ":schrabidium_axe"); - schrabidium_shovel = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialSchrabidium, EnumToolType.SHOVEL) + schrabidium_shovel = new ItemToolAbility(15, 0, MainRegistry.enumToolMaterialSchrabidium, EnumToolType.SHOVEL) + .addHitAbility(new WeaponAbility.RadiationAbility(15F)) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(10)) .addBreakAbility(new ToolAbility.SmelterAbility()) - .addBreakAbility(new ToolAbility.ShredderAbility()).setUnlocalizedName("schrabidium_shovel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":schrabidium_shovel"); + .addBreakAbility(new ToolAbility.ShredderAbility()).setUnlocalizedName("schrabidium_shovel").setTextureName(RefStrings.MODID + ":schrabidium_shovel"); - schrabidium_hoe = new HoeSchrabidium(MainRegistry.enumToolMaterialSchrabidium).setUnlocalizedName("schrabidium_hoe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":schrabidium_hoe"); + schrabidium_hoe = new HoeSchrabidium(MainRegistry.enumToolMaterialSchrabidium).setUnlocalizedName("schrabidium_hoe").setTextureName(RefStrings.MODID + ":schrabidium_hoe"); - titanium_sword = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialTitanium, EnumToolType.SWORD).setUnlocalizedName("titanium_sword").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_sword"); - titanium_pickaxe = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialTitanium, EnumToolType.PICKAXE).setUnlocalizedName("titanium_pickaxe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_pickaxe"); - titanium_axe = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialTitanium, EnumToolType.AXE).setUnlocalizedName("titanium_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_axe"); - titanium_shovel = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialTitanium, EnumToolType.SHOVEL).setUnlocalizedName("titanium_shovel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_shovel"); - titanium_hoe = new ModHoe(MainRegistry.enumToolMaterialTitanium).setUnlocalizedName("titanium_hoe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":titanium_hoe"); - steel_sword = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.SWORD).setUnlocalizedName("steel_sword").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steel_sword"); - steel_pickaxe = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.PICKAXE).setUnlocalizedName("steel_pickaxe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steel_pickaxe"); - steel_axe = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.AXE).setUnlocalizedName("steel_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steel_axe"); - steel_shovel = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.SHOVEL).setUnlocalizedName("steel_shovel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steel_shovel"); - steel_hoe = new ModHoe(MainRegistry.enumToolMaterialSteel).setUnlocalizedName("steel_hoe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":steel_hoe"); + titanium_sword = new ItemToolAbility(6.5F, 0, MainRegistry.enumToolMaterialTitanium, EnumToolType.SWORD).setUnlocalizedName("titanium_sword").setTextureName(RefStrings.MODID + ":titanium_sword"); + titanium_pickaxe = new ItemToolAbility(4.5F, 0, MainRegistry.enumToolMaterialTitanium, EnumToolType.PICKAXE).setUnlocalizedName("titanium_pickaxe").setTextureName(RefStrings.MODID + ":titanium_pickaxe"); + titanium_axe = new ItemToolAbility(5.5F, 0, MainRegistry.enumToolMaterialTitanium, EnumToolType.AXE).setUnlocalizedName("titanium_axe").setTextureName(RefStrings.MODID + ":titanium_axe"); + titanium_shovel = new ItemToolAbility(3.5F, 0, MainRegistry.enumToolMaterialTitanium, EnumToolType.SHOVEL).setUnlocalizedName("titanium_shovel").setTextureName(RefStrings.MODID + ":titanium_shovel"); + titanium_hoe = new ModHoe(MainRegistry.enumToolMaterialTitanium).setUnlocalizedName("titanium_hoe").setTextureName(RefStrings.MODID + ":titanium_hoe"); + steel_sword = new ItemToolAbility(6F, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.SWORD).setUnlocalizedName("steel_sword").setTextureName(RefStrings.MODID + ":steel_sword"); + steel_pickaxe = new ItemToolAbility(4F, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.PICKAXE).setUnlocalizedName("steel_pickaxe").setTextureName(RefStrings.MODID + ":steel_pickaxe"); + steel_axe = new ItemToolAbility(5F, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.AXE).setUnlocalizedName("steel_axe").setTextureName(RefStrings.MODID + ":steel_axe"); + steel_shovel = new ItemToolAbility(3F, 0, MainRegistry.enumToolMaterialSteel, EnumToolType.SHOVEL).setUnlocalizedName("steel_shovel").setTextureName(RefStrings.MODID + ":steel_shovel"); + steel_hoe = new ModHoe(MainRegistry.enumToolMaterialSteel).setUnlocalizedName("steel_hoe").setTextureName(RefStrings.MODID + ":steel_hoe"); - alloy_sword = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialAlloy, EnumToolType.SWORD).setUnlocalizedName("alloy_sword").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":alloy_sword"); + alloy_sword = new ItemToolAbility(9F, 0, MainRegistry.enumToolMaterialAlloy, EnumToolType.SWORD) + .addHitAbility(new WeaponAbility.StunAbility(2)).setUnlocalizedName("alloy_sword").setTextureName(RefStrings.MODID + ":alloy_sword"); - alloy_pickaxe = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialAlloy, EnumToolType.PICKAXE) - .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_pickaxe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":alloy_pickaxe"); + alloy_pickaxe = new ItemToolAbility(6F, 0, MainRegistry.enumToolMaterialAlloy, EnumToolType.PICKAXE) + .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_pickaxe").setTextureName(RefStrings.MODID + ":alloy_pickaxe"); - alloy_axe = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialAlloy, EnumToolType.AXE) - .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":alloy_axe"); + alloy_axe = new ItemToolAbility(7F, 0, MainRegistry.enumToolMaterialAlloy, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_axe").setTextureName(RefStrings.MODID + ":alloy_axe"); - alloy_shovel = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialAlloy, EnumToolType.SHOVEL) - .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_shovel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":alloy_shovel"); + alloy_shovel = new ItemToolAbility(5F, 0, MainRegistry.enumToolMaterialAlloy, EnumToolType.SHOVEL) + .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("alloy_shovel").setTextureName(RefStrings.MODID + ":alloy_shovel"); - alloy_hoe = new ModHoe(MainRegistry.enumToolMaterialAlloy).setUnlocalizedName("alloy_hoe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":alloy_hoe"); + alloy_hoe = new ModHoe(MainRegistry.enumToolMaterialAlloy).setUnlocalizedName("alloy_hoe").setTextureName(RefStrings.MODID + ":alloy_hoe"); - cmb_sword = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.SWORD).setUnlocalizedName("cmb_sword").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cmb_sword"); + cmb_sword = new ItemToolAbility(50F, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.SWORD) + .addHitAbility(new WeaponAbility.StunAbility(2)) + .addHitAbility(new WeaponAbility.VampireAbility(2F)).setUnlocalizedName("cmb_sword").setTextureName(RefStrings.MODID + ":cmb_sword"); - cmb_pickaxe = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.PICKAXE) + cmb_pickaxe = new ItemToolAbility(10F, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.PICKAXE) .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()).setUnlocalizedName("cmb_pickaxe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cmb_pickaxe"); + .addBreakAbility(new ToolAbility.SmelterAbility()).setUnlocalizedName("cmb_pickaxe").setTextureName(RefStrings.MODID + ":cmb_pickaxe"); - cmb_axe = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.AXE) + cmb_axe = new ItemToolAbility(12.5F, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.AXE) .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()).setUnlocalizedName("cmb_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cmb_axe"); + .addBreakAbility(new ToolAbility.SmelterAbility()).setUnlocalizedName("cmb_axe").setTextureName(RefStrings.MODID + ":cmb_axe"); - cmb_shovel = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.SHOVEL) + cmb_shovel = new ItemToolAbility(8F, 0, MainRegistry.enumToolMaterialCmb, EnumToolType.SHOVEL) .addBreakAbility(new ToolAbility.RecursionAbility(5)) - .addBreakAbility(new ToolAbility.SmelterAbility()).setUnlocalizedName("cmb_shovel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cmb_shovel"); + .addBreakAbility(new ToolAbility.SmelterAbility()).setUnlocalizedName("cmb_shovel").setTextureName(RefStrings.MODID + ":cmb_shovel"); - cmb_hoe = new ModHoe(MainRegistry.enumToolMaterialCmb).setUnlocalizedName("cmb_hoe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cmb_hoe"); + cmb_hoe = new ModHoe(MainRegistry.enumToolMaterialCmb).setUnlocalizedName("cmb_hoe").setTextureName(RefStrings.MODID + ":cmb_hoe"); - elec_sword = new ItemToolAbilityPower(5, 0, MainRegistry.enumToolMaterialElec, EnumToolType.SWORD, 500000, 1000, 100).setUnlocalizedName("elec_sword").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":elec_sword_anim"); + elec_sword = new ItemToolAbilityPower(15F, 0, MainRegistry.enumToolMaterialElec, EnumToolType.SWORD, 500000, 1000, 100) + .addHitAbility(new WeaponAbility.StunAbility(5)).setUnlocalizedName("elec_sword").setTextureName(RefStrings.MODID + ":elec_sword_anim"); - elec_pickaxe = new ItemToolAbilityPower(5, 0, MainRegistry.enumToolMaterialElec, EnumToolType.PICKAXE, 500000, 1000, 100) + elec_pickaxe = new ItemToolAbilityPower(10F, 0, MainRegistry.enumToolMaterialElec, EnumToolType.PICKAXE, 500000, 1000, 100) .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)).setUnlocalizedName("elec_pickaxe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":elec_drill_anim"); + .addBreakAbility(new ToolAbility.RecursionAbility(5)).setUnlocalizedName("elec_pickaxe").setTextureName(RefStrings.MODID + ":elec_drill_anim"); - elec_axe = new ItemToolAbilityPower(5, 0, MainRegistry.enumToolMaterialElec, EnumToolType.AXE, 500000, 1000, 100) + elec_axe = new ItemToolAbilityPower(12.5F, 0, MainRegistry.enumToolMaterialElec, EnumToolType.AXE, 500000, 1000, 100) .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)).setUnlocalizedName("elec_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":elec_chainsaw_anim"); + .addBreakAbility(new ToolAbility.RecursionAbility(5)).setUnlocalizedName("elec_axe").setTextureName(RefStrings.MODID + ":elec_chainsaw_anim"); - elec_shovel = new ItemToolAbilityPower(5, 0, MainRegistry.enumToolMaterialElec, EnumToolType.SHOVEL, 500000, 1000, 100) + elec_shovel = new ItemToolAbilityPower(7.5F, 0, MainRegistry.enumToolMaterialElec, EnumToolType.SHOVEL, 500000, 1000, 100) .addBreakAbility(new ToolAbility.HammerAbility(2)) - .addBreakAbility(new ToolAbility.RecursionAbility(5)).setUnlocalizedName("elec_shovel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":elec_shovel_anim"); + .addBreakAbility(new ToolAbility.RecursionAbility(5)).setUnlocalizedName("elec_shovel").setTextureName(RefStrings.MODID + ":elec_shovel_anim"); - desh_sword = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialDesh, EnumToolType.SWORD).setUnlocalizedName("desh_sword").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":desh_sword"); + desh_sword = new ItemToolAbility(15F, 0, MainRegistry.enumToolMaterialDesh, EnumToolType.SWORD) + .addHitAbility(new WeaponAbility.StunAbility(2)).setUnlocalizedName("desh_sword").setTextureName(RefStrings.MODID + ":desh_sword"); - desh_pickaxe = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialDesh, EnumToolType.PICKAXE) + desh_pickaxe = new ItemToolAbility(5F, 0, MainRegistry.enumToolMaterialDesh, EnumToolType.PICKAXE) .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("desh_pickaxe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":desh_pickaxe"); + .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("desh_pickaxe").setTextureName(RefStrings.MODID + ":desh_pickaxe"); - desh_axe = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialDesh, EnumToolType.AXE) + desh_axe = new ItemToolAbility(6.5F, 0, MainRegistry.enumToolMaterialDesh, EnumToolType.AXE) .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("desh_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":desh_axe"); + .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("desh_axe").setTextureName(RefStrings.MODID + ":desh_axe"); - desh_shovel = new ItemToolAbility(5, 0, MainRegistry.enumToolMaterialDesh, EnumToolType.SHOVEL) + desh_shovel = new ItemToolAbility(4F, 0, MainRegistry.enumToolMaterialDesh, EnumToolType.SHOVEL) .addBreakAbility(new ToolAbility.HammerAbility(1)) - .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("desh_shovel").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":desh_shovel"); + .addBreakAbility(new ToolAbility.RecursionAbility(3)).setUnlocalizedName("desh_shovel").setTextureName(RefStrings.MODID + ":desh_shovel"); - desh_hoe = new ModHoe(MainRegistry.enumToolMaterialDesh).setUnlocalizedName("desh_hoe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":desh_hoe"); + desh_hoe = new ModHoe(MainRegistry.enumToolMaterialDesh).setUnlocalizedName("desh_hoe").setTextureName(RefStrings.MODID + ":desh_hoe"); + + cobalt_sword = new ItemToolAbility(12F, 0, MainRegistry.enumToolMaterialCobalt, EnumToolType.SWORD).setUnlocalizedName("cobalt_sword").setTextureName(RefStrings.MODID + ":cobalt_sword"); + + cobalt_pickaxe = new ItemToolAbility(4F, 0, MainRegistry.enumToolMaterialCobalt, EnumToolType.PICKAXE) + .addBreakAbility(new ToolAbility.RecursionAbility(4)).setUnlocalizedName("cobalt_pickaxe").setTextureName(RefStrings.MODID + ":cobalt_pickaxe"); + + cobalt_axe = new ItemToolAbility(6F, 0, MainRegistry.enumToolMaterialCobalt, EnumToolType.AXE) + .addBreakAbility(new ToolAbility.RecursionAbility(4)).setUnlocalizedName("cobalt_axe").setTextureName(RefStrings.MODID + ":cobalt_axe"); + + cobalt_shovel = new ItemToolAbility(3.5F, 0, MainRegistry.enumToolMaterialCobalt, EnumToolType.SHOVEL) + .addBreakAbility(new ToolAbility.RecursionAbility(4)).setUnlocalizedName("cobalt_shovel").setTextureName(RefStrings.MODID + ":cobalt_shovel"); + + cobalt_hoe = new ModHoe(MainRegistry.enumToolMaterialCobalt).setUnlocalizedName("cobalt_hoe").setTextureName(RefStrings.MODID + ":cobalt_hoe"); mask_of_infamy = new MaskOfInfamy(ArmorMaterial.IRON, 8, 0).setUnlocalizedName("mask_of_infamy").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_of_infamy"); @@ -5060,6 +5090,11 @@ public class ModItems { GameRegistry.registerItem(titanium_axe, titanium_axe.getUnlocalizedName()); GameRegistry.registerItem(titanium_shovel, titanium_shovel.getUnlocalizedName()); GameRegistry.registerItem(titanium_hoe, titanium_hoe.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_sword, cobalt_sword.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_pickaxe, cobalt_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_axe, cobalt_axe.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_shovel, cobalt_shovel.getUnlocalizedName()); + GameRegistry.registerItem(cobalt_hoe, cobalt_hoe.getUnlocalizedName()); GameRegistry.registerItem(alloy_sword, alloy_sword.getUnlocalizedName()); GameRegistry.registerItem(alloy_pickaxe, alloy_pickaxe.getUnlocalizedName()); GameRegistry.registerItem(alloy_axe, alloy_axe.getUnlocalizedName()); diff --git a/com/hbm/items/tool/ItemToolAbility.java b/com/hbm/items/tool/ItemToolAbility.java index aeae1625c..f68e5f70d 100644 --- a/com/hbm/items/tool/ItemToolAbility.java +++ b/com/hbm/items/tool/ItemToolAbility.java @@ -9,17 +9,21 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import com.hbm.handler.ToolAbility; +import com.hbm.handler.WeaponAbility; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; +import net.minecraft.item.EnumAction; +import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemTool; import net.minecraft.nbt.NBTTagCompound; @@ -34,10 +38,12 @@ import net.minecraftforge.event.world.BlockEvent; public class ItemToolAbility extends ItemTool { private EnumToolType toolType; + private EnumRarity rarity = EnumRarity.common; //was there a reason for this to be private? protected float damage; protected double movement; private List breakAbility = new ArrayList() {{ add(null); }}; + private List hitAbility = new ArrayList(); public static enum EnumToolType { @@ -79,6 +85,38 @@ public class ItemToolAbility extends ItemTool { this.breakAbility.add(breakAbility); return this; } + + public ItemToolAbility addHitAbility(WeaponAbility weaponAbility) { + this.hitAbility.add(weaponAbility); + return this; + } + + // + public ItemToolAbility setRarity(EnumRarity rarity) { + this.rarity = rarity; + return this; + } + + public EnumRarity getRarity(ItemStack stack) { + return this.rarity != EnumRarity.common ? this.rarity : super.getRarity(stack); + } + + public boolean hitEntity(ItemStack stack, EntityLivingBase victim, EntityLivingBase attacker) { + + if(!attacker.worldObj.isRemote && !this.hitAbility.isEmpty() && attacker instanceof EntityPlayer && canOperate(stack)) { + + for(WeaponAbility ability : this.hitAbility) { + ability.onHit(attacker.worldObj, (EntityPlayer) attacker, victim, this); + } + } + + if(this.toolType == EnumToolType.SWORD) + stack.damageItem(1, attacker); + else + stack.damageItem(2, attacker); + + return true; + } @Override public boolean onBlockStartBreak(ItemStack stack, int x, int y, int z, EntityPlayer player) { @@ -228,12 +266,24 @@ public class ItemToolAbility extends ItemTool { list.add("Right click to cycle through abilities!"); list.add("Sneak-click to turn abilitty off!"); } + + if(!this.hitAbility.isEmpty()) { + + list.add("Weapon modifiers: "); + + for(WeaponAbility ability : this.hitAbility) { + list.add(" " + EnumChatFormatting.RED + ability.getFullName()); + } + } } public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - if(world.isRemote || this.breakAbility.isEmpty() || !canOperate(stack)) - return stack; + if(this.toolType == EnumToolType.SWORD) + player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); + + if(world.isRemote || this.breakAbility.size() < 2 || !canOperate(stack)) + return super.onItemRightClick(stack, world, player); int i = getAbility(stack); i++; @@ -254,6 +304,20 @@ public class ItemToolAbility extends ItemTool { return stack; } + public int getMaxItemUseDuration(ItemStack stack) { + if(this.toolType == EnumToolType.SWORD) + return 72000; + else + return super.getMaxItemUseDuration(stack); + } + + public EnumAction getItemUseAction(ItemStack stack) { + if(this.toolType == EnumToolType.SWORD) + return EnumAction.block; + else + return super.getItemUseAction(stack); + } + private ToolAbility getCurrentAbility(ItemStack stack) { int ability = getAbility(stack) % this.breakAbility.size(); diff --git a/com/hbm/items/tool/WeaponSpecial.java b/com/hbm/items/tool/WeaponSpecial.java index 0519897d4..57a5d0d53 100644 --- a/com/hbm/items/tool/WeaponSpecial.java +++ b/com/hbm/items/tool/WeaponSpecial.java @@ -143,6 +143,9 @@ public class WeaponSpecial extends ItemSword { } } } + + if(this == ModItems.stopsign || this == ModItems.sopsign) + world.playSoundAtEntity(entity, "hbm:weapon.stop", 1.0F, 1.0F); return false; } diff --git a/com/hbm/lib/RefStrings.java b/com/hbm/lib/RefStrings.java index b188b18c0..de11ada78 100644 --- a/com/hbm/lib/RefStrings.java +++ b/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (3493)"; + public static final String VERSION = "1.0.27 BETA (3514)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 321322dcb..9a27edf34 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -1074,11 +1074,11 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_plate, 1), new Object[] { "E E", "EEE", "EEE", 'E', ModItems.ingot_schrabidium }); GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', ModItems.ingot_schrabidium }); GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_boots, 1), new Object[] { "E E", "E E", 'E', ModItems.ingot_schrabidium }); - GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_sword, 1), new Object[] { "I", "I", "S", 'I', ModItems.ingot_schrabidium, 'S', Items.stick }); - GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_pickaxe, 1), new Object[] { "III", " S ", " S ", 'I', ModItems.ingot_schrabidium, 'S', Items.stick }); - GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_axe, 1), new Object[] { "II", "IS", " S", 'I', ModItems.ingot_schrabidium, 'S', Items.stick }); - GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_shovel, 1), new Object[] { "I", "S", "S", 'I', ModItems.ingot_schrabidium, 'S', Items.stick }); - GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_hoe, 1), new Object[] { "II", " S", " S", 'I', ModItems.ingot_schrabidium, 'S', Items.stick }); + GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_sword, 1), new Object[] { "I", "W", "S", 'I', ModBlocks.block_schrabidium, 'W', ModItems.desh_sword, 'S', ModItems.ingot_polymer }); + GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_pickaxe, 1), new Object[] { "SWS", " P ", " P ", 'S', ModItems.blades_schrabidium, 'W', ModItems.desh_pickaxe, 'P', ModItems.ingot_polymer }); + GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_axe, 1), new Object[] { "SW", "SP", " P", 'S', ModItems.blades_schrabidium, 'W', ModItems.desh_axe, 'P', ModItems.ingot_polymer }); + GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_shovel, 1), new Object[] { "S", "W", "P", 'S', ModItems.blades_schrabidium, 'W', ModItems.desh_shovel, 'P', ModItems.ingot_polymer }); + GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_hoe, 1), new Object[] { "IW", " S", " S", 'I', ModItems.ingot_schrabidium, 'W', ModItems.desh_hoe, 'S', ModItems.ingot_polymer }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.steel_helmet, 1), new Object[] { "EEE", "E E", 'E', "ingotSteel" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.steel_plate, 1), new Object[] { "E E", "EEE", "EEE", 'E', "ingotSteel" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.steel_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', "ingotSteel" })); @@ -1097,6 +1097,11 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.titanium_axe, 1), new Object[] { "II", "IS", " S", 'I', ModItems.ingot_titanium, 'S', Items.stick }); GameRegistry.addRecipe(new ItemStack(ModItems.titanium_shovel, 1), new Object[] { "I", "S", "S", 'I', ModItems.ingot_titanium, 'S', Items.stick }); GameRegistry.addRecipe(new ItemStack(ModItems.titanium_hoe, 1), new Object[] { "II", " S", " S", 'I', ModItems.ingot_titanium, 'S', Items.stick }); + GameRegistry.addRecipe(new ItemStack(ModItems.cobalt_sword, 1), new Object[] { "I", "I", "S", 'I', ModItems.ingot_cobalt, 'S', Items.stick }); + GameRegistry.addRecipe(new ItemStack(ModItems.cobalt_pickaxe, 1), new Object[] { "III", " S ", " S ", 'I', ModItems.ingot_cobalt, 'S', Items.stick }); + GameRegistry.addRecipe(new ItemStack(ModItems.cobalt_axe, 1), new Object[] { "II", "IS", " S", 'I', ModItems.ingot_cobalt, 'S', Items.stick }); + GameRegistry.addRecipe(new ItemStack(ModItems.cobalt_shovel, 1), new Object[] { "I", "S", "S", 'I', ModItems.ingot_cobalt, 'S', Items.stick }); + GameRegistry.addRecipe(new ItemStack(ModItems.cobalt_hoe, 1), new Object[] { "II", " S", " S", 'I', ModItems.ingot_cobalt, 'S', Items.stick }); GameRegistry.addRecipe(new ItemStack(ModItems.alloy_helmet, 1), new Object[] { "EEE", "E E", 'E', ModItems.ingot_advanced_alloy }); GameRegistry.addRecipe(new ItemStack(ModItems.alloy_plate, 1), new Object[] { "E E", "EEE", "EEE", 'E', ModItems.ingot_advanced_alloy }); GameRegistry.addRecipe(new ItemStack(ModItems.alloy_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', ModItems.ingot_advanced_alloy }); @@ -1115,10 +1120,10 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.cmb_axe, 1), new Object[] { "II", "IS", " S", 'I', ModItems.ingot_combine_steel, 'S', Items.stick }); GameRegistry.addRecipe(new ItemStack(ModItems.cmb_shovel, 1), new Object[] { "I", "S", "S", 'I', ModItems.ingot_combine_steel, 'S', Items.stick }); GameRegistry.addRecipe(new ItemStack(ModItems.cmb_hoe, 1), new Object[] { "II", " S", " S", 'I', ModItems.ingot_combine_steel, 'S', Items.stick }); - GameRegistry.addRecipe(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ModItems.ingot_polymer, 'D', ModItems.ingot_dura_steel, 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_generic }); - GameRegistry.addRecipe(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ModItems.ingot_polymer, 'D', ModItems.ingot_dura_steel, 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_generic }); - GameRegistry.addRecipe(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ModItems.ingot_polymer, 'D', ModItems.ingot_dura_steel, 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_generic }); - GameRegistry.addRecipe(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ModItems.ingot_polymer, 'D', ModItems.ingot_dura_steel, 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_generic }); + GameRegistry.addRecipe(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ModItems.ingot_polymer, 'D', ModItems.ingot_dura_steel, 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + GameRegistry.addRecipe(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ModItems.ingot_polymer, 'D', ModItems.ingot_dura_steel, 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + GameRegistry.addRecipe(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ModItems.ingot_polymer, 'D', ModItems.ingot_dura_steel, 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); + GameRegistry.addRecipe(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ModItems.ingot_polymer, 'D', ModItems.ingot_dura_steel, 'R', ModItems.bolt_dura_steel, 'M', ModItems.motor, 'B', ModItems.battery_lithium }); GameRegistry.addRecipe(new ItemStack(ModItems.desh_sword, 1), new Object[] { "I", "I", "S", 'I', ModItems.ingot_desh, 'S', Items.stick }); GameRegistry.addRecipe(new ItemStack(ModItems.desh_pickaxe, 1), new Object[] { "III", " S ", " S ", 'I', ModItems.ingot_desh, 'S', Items.stick }); GameRegistry.addRecipe(new ItemStack(ModItems.desh_axe, 1), new Object[] { "II", "IS", " S", 'I', ModItems.ingot_desh, 'S', Items.stick }); @@ -1132,6 +1137,10 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.cobalt_plate, 1), new Object[] { "E E", "EEE", "EEE", 'E', ModItems.ingot_cobalt }); GameRegistry.addRecipe(new ItemStack(ModItems.cobalt_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', ModItems.ingot_cobalt }); GameRegistry.addRecipe(new ItemStack(ModItems.cobalt_boots, 1), new Object[] { "E E", "E E", 'E', ModItems.ingot_cobalt }); + GameRegistry.addRecipe(new ItemStack(ModItems.starmetal_helmet, 1), new Object[] { "EEE", "E E", 'E', ModItems.ingot_starmetal }); + GameRegistry.addRecipe(new ItemStack(ModItems.starmetal_plate, 1), new Object[] { "E E", "EEE", "EEE", 'E', ModItems.ingot_starmetal }); + GameRegistry.addRecipe(new ItemStack(ModItems.starmetal_legs, 1), new Object[] { "EEE", "E E", "E E", 'E', ModItems.ingot_starmetal }); + GameRegistry.addRecipe(new ItemStack(ModItems.starmetal_boots, 1), new Object[] { "E E", "E E", 'E', ModItems.ingot_starmetal }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.jetpack_boost, 1), new Object[] { "PTP", "SLS", "W W", 'P', "plateSteel", 'T', ModItems.tank_steel, 'S', ModItems.pipes_steel, 'L', Items.leather, 'W', ModItems.thruster_small })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.jetpack_fly, 1), new Object[] { "PTP", "SLS", "W W", 'P', "plateSteel", 'T', ModItems.cap_aluminium, 'S', ModItems.pipes_steel, 'L', ModItems.jetpack_boost, 'W', ModItems.thruster_small })); @@ -1559,6 +1568,7 @@ public class CraftingManager { GameRegistry.addSmelting(ModItems.powder_lanthanium, new ItemStack(ModItems.ingot_lanthanium), 1.0F); GameRegistry.addSmelting(ModItems.powder_actinium, new ItemStack(ModItems.ingot_actinium), 1.0F); GameRegistry.addSmelting(ModItems.powder_desh, new ItemStack(ModItems.ingot_desh), 1.0F); + GameRegistry.addSmelting(ModItems.powder_dineutronium, new ItemStack(ModItems.ingot_dineutronium), 5.0F); GameRegistry.addSmelting(ModItems.powder_coal, new ItemStack(ModItems.coke), 1.0F); GameRegistry.addSmelting(ModItems.briquette_lignite, new ItemStack(ModItems.coke), 1.0F); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index b8de4872e..6be1fb797 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -90,12 +90,13 @@ public class MainRegistry public static ToolMaterial enumToolMaterialSchrabidium = EnumHelper.addToolMaterial("SCHRABIDIUM", 3, 10000, 50.0F, 100.0F, 200); public static ToolMaterial enumToolMaterialHammer = EnumHelper.addToolMaterial("SCHRABIDIUMHAMMER", 3, 0, 50.0F, 999999996F, 200); public static ToolMaterial enumToolMaterialChainsaw = EnumHelper.addToolMaterial("CHAINSAW", 3, 1500, 50.0F, 22.0F, 0); - public static ToolMaterial enumToolMaterialSteel = EnumHelper.addToolMaterial("STEEL", 2, 500, 7.5F, 2.0F, 10); - public static ToolMaterial enumToolMaterialTitanium = EnumHelper.addToolMaterial("TITANIUM", 3, 750, 9.0F, 2.5F, 15); - public static ToolMaterial enumToolMaterialAlloy= EnumHelper.addToolMaterial("ALLOY", 3, 2000, 15.0F, 5.0F, 5); + public static ToolMaterial enumToolMaterialSteel = EnumHelper.addToolMaterial("HBM_STEEL", 2, 500, 7.5F, 2.0F, 10); + public static ToolMaterial enumToolMaterialTitanium = EnumHelper.addToolMaterial("HBM_TITANIUM", 3, 750, 9.0F, 2.5F, 15); + public static ToolMaterial enumToolMaterialAlloy= EnumHelper.addToolMaterial("HBM_ALLOY", 3, 2000, 15.0F, 5.0F, 5); public static ToolMaterial enumToolMaterialCmb = EnumHelper.addToolMaterial("CMB", 3, 8500, 40.0F, 55F, 100); public static ToolMaterial enumToolMaterialElec = EnumHelper.addToolMaterial("ELEC", 3, 0, 30.0F, 12.0F, 2); public static ToolMaterial enumToolMaterialDesh = EnumHelper.addToolMaterial("DESH", 2, 0, 7.5F, 2.0F, 10); + public static ToolMaterial enumToolMaterialCobalt = EnumHelper.addToolMaterial("HBM_COBALT", 3, 750, 9.0F, 2.5F, 15); public static ToolMaterial enumToolMaterialSaw = EnumHelper.addToolMaterial("SAW", 2, 750, 2.0F, 3.5F, 25); public static ToolMaterial enumToolMaterialBat = EnumHelper.addToolMaterial("BAT", 0, 500, 1.5F, 3F, 25); @@ -1457,6 +1458,11 @@ public class MainRegistry HazmatRegistry.instance.registerHazmat(ModItems.security_plate, 0.4F); HazmatRegistry.instance.registerHazmat(ModItems.security_legs, 0.3F); HazmatRegistry.instance.registerHazmat(ModItems.security_boots, 0.1F); + + HazmatRegistry.instance.registerHazmat(ModItems.starmetal_helmet, 0.6F); + HazmatRegistry.instance.registerHazmat(ModItems.starmetal_plate, 1.2F); + HazmatRegistry.instance.registerHazmat(ModItems.starmetal_legs, 0.9F); + HazmatRegistry.instance.registerHazmat(ModItems.starmetal_boots, 0.3F); HazmatRegistry.instance.registerHazmat(ModItems.jackt, 0.3F); HazmatRegistry.instance.registerHazmat(ModItems.jackt2, 0.3F);