diff --git a/src/main/java/assets/hbm/lang/de_DE.lang b/src/main/java/assets/hbm/lang/de_DE.lang index 9c13b2709..2ccf66998 100644 --- a/src/main/java/assets/hbm/lang/de_DE.lang +++ b/src/main/java/assets/hbm/lang/de_DE.lang @@ -2,6 +2,14 @@ achievement.FOEQ.desc=Sende ein Relais in den Mars-...ich meine Duna-Orbit. achievement.FOEQ=Pegasi und Raketensilos achievement.assembly.desc=Bobmazon Level 2 (Fertigungsmaschine) achievement.assembly=Fertigung +achievement.bossCreeper.desc='Nukleare Creeper? Die gibt es?!' +achievement.bossCreeper=Bombe auf vier Beinen +achievement.bossMaskman.desc=Kloppe den dicken Buben. +achievement.bossMaskman=6 Monate verpflichtender Dienst und alles was ich davon habe ist dieses doofe T-Shirt +achievement.bossMeltdown.desc=Mehr schlecht als recht, aber was will man machen. +achievement.bossMeltdown=3,6 Röntgen +achievement.bossWorm.desc=Der Fabstaff. Mein Arsch. Jetzt fang an zu rechnen. +achievement.bossWorm=Disassembling Balls-O-Tron achievement.c20_5.desc=??? achievement.c20_5=Kapitel [ZWANZIG KOMMA FÜNF] achievement.c44.desc=Galvanisch verzinkt! ...das macht in der Übersetzung sowas von keinen Sinn. @@ -251,6 +259,7 @@ death.attack.flamethrower=%1$s wurde von %2$s gegrillt. death.attack.ice=%1$s wurde von %2$s in ein Eis am Stiel verwandelt. death.attack.laser=%1$s wurde von %2$s zerbröselt. death.attack.lead=%1$s starb an Bleivergiftung. +death.attack.lunar=%1$s vergaß lebenswichtige Organe aufzuladen. death.attack.meteorite=%1$s wurde von einem fallenden Stein aus dem Weltall erschlagen. death.attack.mudPoisoning=%1$s starb an Giftschlamm. death.attack.nuclearBlast=%1$s wurde von einer Atomexplosion weggeblasen. @@ -415,7 +424,7 @@ item.ammo_44_star.name=.44 Magnum Patrone (Sternenmetall) item.ammo_4gauge.name=Kaliber 20 Schrot item.ammo_4gauge_balefire.name=23mm Balefire-Granate item.ammo_4gauge_canister.name=23mm Rakete (Katusche) -item.ammo_4gauge_vampire.name=Kaliber 4 Shrot (Krallen) +item.ammo_4gauge_claw.name=Kaliber 4 Shrot (Krallen) item.ammo_4gauge_explosive.name=23mm Granate item.ammo_4gauge_flechette.name=Kaliber 4 Flechet item.ammo_4gauge_flechette_phosphorus.name=Kaliber 4 Flechet (WP) diff --git a/src/main/java/assets/hbm/lang/en_US.lang b/src/main/java/assets/hbm/lang/en_US.lang index a67567dbb..21499a998 100644 --- a/src/main/java/assets/hbm/lang/en_US.lang +++ b/src/main/java/assets/hbm/lang/en_US.lang @@ -2,6 +2,14 @@ achievement.FOEQ.desc=Send a relay into martian...I mean dunaian orbit. achievement.FOEQ=Pegasi and Missile Silos achievement.assembly.desc=Bobmazon Level 2 (Assembly Machine) achievement.assembly=Fabrication +achievement.bossCreeper.desc='There is nuclear creepers? Those are a thing?!' +achievement.bossCreeper=Bomb On Four Legs +achievement.bossMaskman.desc=Bonk the big boy. +achievement.bossMaskman=6 Months of mandatory service and all I got was a lousy t-shirt +achievement.bossMeltdown.desc=More terrible than great, but I take what I can get. +achievement.bossMeltdown=3.6 Roentgen +achievement.bossWorm.desc=The Fabstaff. My ass. You do the math. +achievement.bossWorm=Disassembling Balls-O-Tron achievement.c20_5.desc=??? achievement.c20_5=Chapter [TWENTY POINT FIVE] achievement.c44.desc=Galvanized! I mean, zinc! @@ -251,6 +259,7 @@ death.attack.flamethrower=%1$s was cremated by %2$s. death.attack.ice=%1$s was turned into a popsicle by %2$s. death.attack.laser=%1$s was turned into ash by %2$s. death.attack.lead=%1$s died from lead poisoning. +death.attack.lunar=%1$s forgot to charge their vital organs. death.attack.meteorite=%1$s was hit by a falling rock from outer space. death.attack.mudPoisoning=%1$s died in poisonous mud. death.attack.nuclearBlast=%1$s was blown away by a nuclear explosion. diff --git a/src/main/java/com/hbm/blocks/generic/RedBarrel.java b/src/main/java/com/hbm/blocks/generic/RedBarrel.java index 0f6f456fd..457e409d5 100644 --- a/src/main/java/com/hbm/blocks/generic/RedBarrel.java +++ b/src/main/java/com/hbm/blocks/generic/RedBarrel.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.BlockTaint; +import com.hbm.blocks.machine.BlockFluidBarrel; import com.hbm.explosion.ExplosionThermo; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -69,7 +70,7 @@ public class RedBarrel extends Block { @Override public int getRenderType(){ - return 334081; + return BlockFluidBarrel.renderID; } @Override diff --git a/src/main/java/com/hbm/blocks/generic/YellowBarrel.java b/src/main/java/com/hbm/blocks/generic/YellowBarrel.java index cdcc54743..42914f060 100644 --- a/src/main/java/com/hbm/blocks/generic/YellowBarrel.java +++ b/src/main/java/com/hbm/blocks/generic/YellowBarrel.java @@ -3,6 +3,7 @@ package com.hbm.blocks.generic; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.BlockFluidBarrel; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.saveddata.RadiationSavedData; import cpw.mods.fml.relauncher.Side; @@ -45,7 +46,7 @@ public class YellowBarrel extends Block { @Override public int getRenderType(){ - return 334081; + return BlockFluidBarrel.renderID; } @Override diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 9917edc4d..bac1ffa71 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -51,6 +51,7 @@ public class WorldConfig { public static int meteorStructure = 15000; public static int capsuleStructure = 100; public static int arcticStructure = 500; + public static int jungleStructure = 2000; public static int broadcaster = 5000; public static int minefreq = 64; @@ -115,6 +116,7 @@ public class WorldConfig { meteorStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.20_meteorSpawn", "Spawn meteor dungeon on every nTH chunk", 15000); capsuleStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.21_capsuleSpawn", "Spawn landing capsule on every nTH chunk", 100); arcticStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.22_arcticVaultSpawn", "Spawn artic code vault on every nTH chunk", 500); + jungleStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.23_jungleDungeonSpawn", "Spawn jungle dungeon on every nTH chunk", 2000); final String CATEGORY_METEOR = "05_meteors"; Property propMeteorStrikeChance = config.get(CATEGORY_METEOR, "5.00_meteorStrikeChance", 20 * 60 * 60 * 5); @@ -148,6 +150,7 @@ public class WorldConfig { radfreq = CommonConfig.setDefZero(radfreq, 1000); vaultfreq = CommonConfig.setDefZero(vaultfreq, 1000); meteorStructure = CommonConfig.setDefZero(meteorStructure, 15000); + jungleStructure = CommonConfig.setDefZero(jungleStructure, 1000); capsuleStructure = CommonConfig.setDefZero(capsuleStructure, 100); arcticStructure = CommonConfig.setDefZero(arcticStructure, 500); diff --git a/src/main/java/com/hbm/entity/mob/EntityMaskMan.java b/src/main/java/com/hbm/entity/mob/EntityMaskMan.java index 375b9c2b5..8cb4b3db7 100644 --- a/src/main/java/com/hbm/entity/mob/EntityMaskMan.java +++ b/src/main/java/com/hbm/entity/mob/EntityMaskMan.java @@ -1,10 +1,13 @@ package com.hbm.entity.mob; +import java.util.List; + import com.hbm.entity.mob.ai.EntityAIMaskmanCasualApproach; import com.hbm.entity.mob.ai.EntityAIMaskmanLasergun; import com.hbm.entity.mob.ai.EntityAIMaskmanMinigun; import com.hbm.interfaces.IRadiationImmune; import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAIHurtByTarget; @@ -78,6 +81,17 @@ public class EntityMaskMan extends EntityMob implements IBossDisplayData, IRadia } } + @Override + public void onDeath(DamageSource p_70645_1_) { + super.onDeath(p_70645_1_); + + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, this.boundingBox.expand(50, 50, 50)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.bossMaskman); + } + } + public boolean isAIEnabled() { return true; } diff --git a/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java b/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java index 91f21ad57..b6d695819 100644 --- a/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java +++ b/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java @@ -9,6 +9,7 @@ import com.hbm.explosion.ExplosionParticle; import com.hbm.explosion.ExplosionParticleB; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; import com.hbm.util.ContaminationUtil; import cpw.mods.fml.relauncher.Side; @@ -216,6 +217,12 @@ public class EntityNuclearCreeper extends EntityMob { public void onDeath(DamageSource p_70645_1_) { super.onDeath(p_70645_1_); + + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, this.boundingBox.expand(50, 50, 50)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.bossCreeper); + } if (p_70645_1_.getEntity() instanceof EntitySkeleton || (p_70645_1_.isProjectile() && p_70645_1_.getEntity() instanceof EntityArrow && ((EntityArrow)(p_70645_1_.getEntity())).shootingEntity == null)) { diff --git a/src/main/java/com/hbm/entity/mob/EntityRADBeast.java b/src/main/java/com/hbm/entity/mob/EntityRADBeast.java index c05c786c0..44200eb25 100644 --- a/src/main/java/com/hbm/entity/mob/EntityRADBeast.java +++ b/src/main/java/com/hbm/entity/mob/EntityRADBeast.java @@ -1,8 +1,11 @@ package com.hbm.entity.mob; +import java.util.List; + import com.hbm.interfaces.IRadiationImmune; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; import com.hbm.saveddata.RadiationSavedData; import cpw.mods.fml.relauncher.Side; @@ -10,6 +13,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.monster.EntityMob; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; @@ -169,6 +173,19 @@ public class EntityRADBeast extends EntityMob implements IRadiationImmune { return ModItems.rod_uranium_fuel_depleted; } + @Override + public void onDeath(DamageSource p_70645_1_) { + super.onDeath(p_70645_1_); + + if(this.getMaxHealth() > 150) { + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, this.boundingBox.expand(50, 50, 50)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.bossMeltdown); + } + } + } + protected void dropFewItems(boolean beenHit, int looting) { if(beenHit) { diff --git a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java index b6ba23e96..01c199a41 100644 --- a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java +++ b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java @@ -59,6 +59,14 @@ public abstract class EntityBOTPrimeBase extends EntityWormBaseNT { protected boolean canDespawn() { return false; } + + protected String getHurtSound() { + return "mob.blaze.hit"; + } + + protected String getDeathSound() { + return "hbm:entity.bombDet"; + } protected void laserAttack(Entity target, boolean head) { diff --git a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeHead.java b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeHead.java index 6da337829..456ece367 100644 --- a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeHead.java +++ b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeHead.java @@ -1,6 +1,10 @@ package com.hbm.entity.mob.botprime; +import java.util.List; + import com.hbm.entity.mob.EntityAINearestAttackableTargetNT; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; import net.minecraft.entity.Entity; import net.minecraft.entity.IEntityLivingData; @@ -8,6 +12,7 @@ import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAIHurtByTarget; import net.minecraft.entity.boss.IBossDisplayData; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; @@ -129,6 +134,18 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(dx, dz) * 180.0D / Math.PI); this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(dy, f3) * 180.0D / Math.PI); } + + @Override + public void onDeath(DamageSource p_70645_1_) { + super.onDeath(p_70645_1_); + + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, this.boundingBox.expand(200, 200, 200)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.bossMaskman); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.coin_worm)); + } + } @Override public float getAttackStrength(Entity target) { diff --git a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java index 763554124..50281f9d7 100644 --- a/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/GunNPCFactory.java @@ -201,7 +201,7 @@ public class GunNPCFactory { bullet.dmgMin = 15; bullet.dmgMax = 25; bullet.leadChance = 0; - bullet.ricochetAngle = 90D; + bullet.doesRicochet = false; bullet.setToBolt(BulletConfiguration.BOLT_WORM); return bullet; @@ -217,7 +217,7 @@ public class GunNPCFactory { bullet.dmgMin = 35; bullet.dmgMax = 60; bullet.leadChance = 0; - bullet.ricochetAngle = 90D; + bullet.doesRicochet = false; bullet.setToBolt(BulletConfiguration.BOLT_LASER); return bullet; diff --git a/src/main/java/com/hbm/inventory/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/AssemblerRecipes.java index 5ddd57292..f0fcfcdbd 100644 --- a/src/main/java/com/hbm/inventory/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/AssemblerRecipes.java @@ -344,6 +344,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.missile_incendiary_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack("plateTitanium", 10), new OreDictStack("plateSteel", 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); makeRecipe(new ComparableStack(ModItems.missile_cluster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack("plateTitanium", 10), new OreDictStack("plateSteel", 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); makeRecipe(new ComparableStack(ModItems.missile_buster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack("plateTitanium", 10), new OreDictStack("plateSteel", 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); + makeRecipe(new ComparableStack(ModItems.missile_emp_strong, 1), new AStack[] {new ComparableStack(ModBlocks.emp_bomb, 3), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack("plateTitanium", 10), new OreDictStack("plateSteel", 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); makeRecipe(new ComparableStack(ModItems.missile_burst, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack("plateTitanium", 14), new OreDictStack("plateSteel", 20), new OreDictStack("plateAluminum", 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); makeRecipe(new ComparableStack(ModItems.missile_inferno, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack("plateTitanium", 14), new OreDictStack("plateSteel", 20), new OreDictStack("plateAluminum", 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); makeRecipe(new ComparableStack(ModItems.missile_rain, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_large, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack("plateTitanium", 14), new OreDictStack("plateSteel", 20), new OreDictStack("plateAluminum", 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1), },350); @@ -565,6 +566,17 @@ public class AssemblerRecipes { new ComparableStack(Items.redstone, 3) }, 60); + makeRecipe(new ComparableStack(ModItems.spawn_worm, 1), new AStack[] { + new OreDictStack("blockTitanium", 75), + new ComparableStack(ModItems.motor, 75), + new ComparableStack(ModBlocks.glass_trinitite, 25), + new ComparableStack(Items.redstone, 75), + new ComparableStack(ModItems.wire_gold, 75), + new ComparableStack(ModBlocks.block_polonium, 10), + new ComparableStack(ModItems.plate_armor_titanium, 50), + new ComparableStack(ModItems.coin_worm, 1) + }, 1200); + makeRecipe(new ComparableStack(ModBlocks.block_cap_nuka, 1), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10); makeRecipe(new ComparableStack(ModBlocks.block_cap_quantum, 1), new AStack[] { new ComparableStack(ModItems.cap_quantum, 128) }, 10); makeRecipe(new ComparableStack(ModBlocks.block_cap_sparkle, 1), new AStack[] { new ComparableStack(ModItems.cap_sparkle, 128) }, 10); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index b2eb1b965..5da52fe46 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2712,10 +2712,10 @@ public class ModItems { canned_bark = new ItemLemon(2, 5, false).setUnlocalizedName("canned_bark").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":canned_bark"); can_key = new Item().setUnlocalizedName("can_key").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_key"); - coin_creeper = new ItemCustomLore().setUnlocalizedName("coin_creeper").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_creeper"); - coin_radiation = new ItemCustomLore().setUnlocalizedName("coin_radiation").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_radiation"); - coin_maskman = new ItemCustomLore().setUnlocalizedName("coin_maskman").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_maskman"); - coin_worm = new ItemCustomLore().setUnlocalizedName("coin_worm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_worm"); + coin_creeper = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_creeper").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_creeper"); + coin_radiation = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_radiation").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_radiation"); + coin_maskman = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_maskman").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_maskman"); + coin_worm = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("coin_worm").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coin_worm"); recycled_ground = new Item().setUnlocalizedName("recycled_ground").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_ground"); recycled_rock = new Item().setUnlocalizedName("recycled_rock").setCreativeTab(null).setTextureName(RefStrings.MODID + ":recycled_rock"); @@ -3682,7 +3682,6 @@ public class ModItems { .addEffect(new PotionEffect(Potion.damageBoost.id, 20, 2)) .addEffect(new PotionEffect(Potion.jump.id, 20, 1)) .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 2)) - .addEffect(new PotionEffect(Potion.field_76443_y.id, 20, 0)) .setFireproof(true).setUnlocalizedName("schrabidium_helmet").setTextureName(RefStrings.MODID + ":schrabidium_helmet"); 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"); @@ -3730,7 +3729,7 @@ public class ModItems { 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, 2, 0, 1000000, 10000, 1000).setCap(10F).setMod(0.5F) + t45_helmet = new ArmorT45(aMatT45, 2, 0, 1000000, 10000, 1000, 5).setCap(10F).setMod(0.5F) .setFireproof(true) .enableVATS(true) .setHasGeigerSound(true) @@ -3738,13 +3737,13 @@ public class ModItems { .setBlastProtection(0.5F) .addResistance("fall", 0) .setUnlocalizedName("t45_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_helmet"); - t45_plate = new ArmorT45(aMatT45, 2, 1, 1000000, 10000, 1000).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_plate"); - t45_legs = new ArmorT45(aMatT45, 2, 2, 1000000, 10000, 1000).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_legs"); - t45_boots = new ArmorT45(aMatT45, 2, 3, 1000000, 10000, 1000).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_boots"); + t45_plate = new ArmorT45(aMatT45, 2, 1, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_plate"); + t45_legs = new ArmorT45(aMatT45, 2, 2, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_legs"); + t45_boots = new ArmorT45(aMatT45, 2, 3, 1000000, 10000, 1000, 5).cloneStats((ArmorFSB) t45_helmet).setUnlocalizedName("t45_boots").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":t45_boots"); 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, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000).setMod(0.25F).setCap(6.0F).setThreshold(4F) + ajr_helmet = new ArmorAJR(aMatAJR, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).setMod(0.25F).setCap(6.0F).setThreshold(4F) .setFireproof(true) .enableVATS(true) .setHasGeigerSound(true) @@ -3755,13 +3754,13 @@ public class ModItems { .setJump("hbm:step.iron_jump") .setFall("hbm:step.iron_land") .addResistance("fall", 0).setUnlocalizedName("ajr_helmet").setTextureName(RefStrings.MODID + ":ajr_helmet"); - ajr_plate = new ArmorAJR(aMatAJR, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_plate").setTextureName(RefStrings.MODID + ":ajr_plate"); - ajr_legs = new ArmorAJR(aMatAJR, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 2500000, 10000, 2000).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_legs").setTextureName(RefStrings.MODID + ":ajr_legs"); - ajr_boots = new ArmorAJR(aMatAJR, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_boots").setTextureName(RefStrings.MODID + ":ajr_boots"); + ajr_plate = new ArmorAJR(aMatAJR, 7, 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, 7, 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, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 2500000, 10000, 2000, 25).cloneStats((ArmorFSB) ajr_helmet).setUnlocalizedName("ajr_boots").setTextureName(RefStrings.MODID + ":ajr_boots"); 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, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000).setMod(0.25F).setCap(4.0F).setThreshold(4F) + bj_helmet = new ArmorBJ(aMatBJ, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).setMod(0.25F).setCap(4.0F).setThreshold(4F) .setFireproof(true) .enableVATS(true) .enableThermalSight(true) @@ -3776,13 +3775,13 @@ public class ModItems { .setJump("hbm:step.iron_jump") .setFall("hbm:step.iron_land") .addResistance("fall", 0).setUnlocalizedName("bj_helmet").setTextureName(RefStrings.MODID + ":bj_helmet"); - bj_plate = new ArmorBJ(aMatBJ, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_plate").setTextureName(RefStrings.MODID + ":bj_plate"); - bj_legs = new ArmorBJ(aMatBJ, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 1000).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_legs").setTextureName(RefStrings.MODID + ":bj_legs"); - bj_boots = new ArmorBJ(aMatBJ, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_boots").setTextureName(RefStrings.MODID + ":bj_boots"); + bj_plate = new ArmorBJ(aMatBJ, 7, 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_legs = new ArmorBJ(aMatBJ, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_legs").setTextureName(RefStrings.MODID + ":bj_legs"); + bj_boots = new ArmorBJ(aMatBJ, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000, 100).cloneStats((ArmorFSB) bj_helmet).setUnlocalizedName("bj_boots").setTextureName(RefStrings.MODID + ":bj_boots"); 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, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500).setMod(0.25F).setCap(4.0F).setThreshold(2.0F) + hev_helmet = new ArmorHEV(aMatHEV, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).setMod(0.25F).setCap(4.0F).setThreshold(2.0F) .addEffect(new PotionEffect(Potion.moveSpeed.id, 20, 1)) .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) .setBlastProtection(0.25F) @@ -3790,9 +3789,9 @@ public class ModItems { .setHasGeigerSound(true) .setHasCustomGeiger(true) .addResistance("fall", 0.5F).setUnlocalizedName("hev_helmet").setTextureName(RefStrings.MODID + ":hev_helmet"); - hev_plate = new ArmorHEV(aMatHEV, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_plate").setTextureName(RefStrings.MODID + ":hev_plate"); - hev_legs = new ArmorHEV(aMatHEV, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000, 10000, 2500).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_legs").setTextureName(RefStrings.MODID + ":hev_legs"); - hev_boots = new ArmorHEV(aMatHEV, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_boots").setTextureName(RefStrings.MODID + ":hev_boots"); + hev_plate = new ArmorHEV(aMatHEV, 7, 1, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_plate").setTextureName(RefStrings.MODID + ":hev_plate"); + hev_legs = new ArmorHEV(aMatHEV, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_legs").setTextureName(RefStrings.MODID + ":hev_legs"); + hev_boots = new ArmorHEV(aMatHEV, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png", 1000000, 10000, 2500, 0).cloneStats((ArmorFSB) hev_helmet).setUnlocalizedName("hev_boots").setTextureName(RefStrings.MODID + ":hev_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"); diff --git a/src/main/java/com/hbm/items/armor/ArmorAJR.java b/src/main/java/com/hbm/items/armor/ArmorAJR.java index 15df48ad3..d037e9da2 100644 --- a/src/main/java/com/hbm/items/armor/ArmorAJR.java +++ b/src/main/java/com/hbm/items/armor/ArmorAJR.java @@ -10,8 +10,8 @@ import net.minecraft.item.ItemStack; public class ArmorAJR extends ArmorFSBPowered { - public ArmorAJR(ArmorMaterial material, int layer, int slot, String texture, long maxPower, long chargeRate, long consumption) { - super(material, layer, slot, texture, maxPower, chargeRate, consumption); + public ArmorAJR(ArmorMaterial material, int layer, int slot, String texture, long maxPower, long chargeRate, long consumption, long drain) { + super(material, layer, slot, texture, maxPower, chargeRate, consumption, drain); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/items/armor/ArmorBJ.java b/src/main/java/com/hbm/items/armor/ArmorBJ.java index 094feca1b..e9c8c29fd 100644 --- a/src/main/java/com/hbm/items/armor/ArmorBJ.java +++ b/src/main/java/com/hbm/items/armor/ArmorBJ.java @@ -1,17 +1,21 @@ package com.hbm.items.armor; +import com.hbm.items.ModItems; +import com.hbm.lib.ModDamageSource; import com.hbm.render.model.ModelArmorBJ; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.world.World; public class ArmorBJ extends ArmorFSBPowered { - public ArmorBJ(ArmorMaterial material, int layer, int slot, String texture, long maxPower, long chargeRate, long consumption) { - super(material, layer, slot, texture, maxPower, chargeRate, consumption); + public ArmorBJ(ArmorMaterial material, int layer, int slot, String texture, long maxPower, long chargeRate, long consumption, long drain) { + super(material, layer, slot, texture, maxPower, chargeRate, consumption, drain); } @SideOnly(Side.CLIENT) @@ -30,4 +34,21 @@ public class ArmorBJ extends ArmorFSBPowered { return models[armorSlot]; } + + public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) { + + super.onArmorTick(world, player, itemStack); + + if(this == ModItems.bj_helmet && ArmorFSB.hasFSBArmorIgnoreCharge(player) && !ArmorFSB.hasFSBArmor(player)) { + + ItemStack helmet = player.inventory.armorInventory[3]; + + if(!player.inventory.addItemStackToInventory(helmet)) + player.dropPlayerItemWithRandomChoice(helmet, false); + + player.inventory.armorInventory[3] = null; + + player.attackEntityFrom(ModDamageSource.lunar, 1000); + } + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index 94bbf032d..94c4150e6 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -10,18 +10,21 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { public long maxPower = 1; public long chargeRate; public long consumption; + public long drain; - public ArmorFSBPowered(ArmorMaterial material, int layer, int slot, String texture, long maxPower, long chargeRate, long consumption) { + public ArmorFSBPowered(ArmorMaterial material, int layer, int slot, String texture, long maxPower, long chargeRate, long consumption, long drain) { super(material, layer, slot, texture); this.maxPower = maxPower; this.chargeRate = chargeRate; this.consumption = consumption; + this.drain = drain; this.setMaxDamage(1); } @@ -124,4 +127,11 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { { this.dischargeBattery(stack, damage * consumption); } + + public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) { + + if(this.drain > 0 && ArmorFSB.hasFSBArmor(player)) { + this.dischargeBattery(itemStack, drain); + } + } } diff --git a/src/main/java/com/hbm/items/armor/ArmorHEV.java b/src/main/java/com/hbm/items/armor/ArmorHEV.java index d7b57ef31..5cb63f00a 100644 --- a/src/main/java/com/hbm/items/armor/ArmorHEV.java +++ b/src/main/java/com/hbm/items/armor/ArmorHEV.java @@ -29,8 +29,8 @@ import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; public class ArmorHEV extends ArmorFSBPowered { - public ArmorHEV(ArmorMaterial material, int layer, int slot, String texture, long maxPower, long chargeRate, long consumption) { - super(material, layer, slot, texture, maxPower, chargeRate, consumption); + public ArmorHEV(ArmorMaterial material, int layer, int slot, String texture, long maxPower, long chargeRate, long consumption, long drain) { + super(material, layer, slot, texture, maxPower, chargeRate, consumption, drain); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/items/armor/ArmorT45.java b/src/main/java/com/hbm/items/armor/ArmorT45.java index a9ecfc2e7..7325a5ff8 100644 --- a/src/main/java/com/hbm/items/armor/ArmorT45.java +++ b/src/main/java/com/hbm/items/armor/ArmorT45.java @@ -24,8 +24,8 @@ public class ArmorT45 extends ArmorFSBPowered { @SideOnly(Side.CLIENT) private ModelT45Boots boots; - public ArmorT45(ArmorMaterial material, int layer, int slot, long maxPower, long chargeRate, long consumption) { - super(material, layer, slot, "", maxPower, chargeRate, consumption); + public ArmorT45(ArmorMaterial material, int layer, int slot, long maxPower, long chargeRate, long consumption, long drain) { + super(material, layer, slot, "", maxPower, chargeRate, consumption, drain); } @Override diff --git a/src/main/java/com/hbm/items/special/ItemCustomLore.java b/src/main/java/com/hbm/items/special/ItemCustomLore.java index 875dbf26f..db65597bb 100644 --- a/src/main/java/com/hbm/items/special/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/special/ItemCustomLore.java @@ -18,6 +18,8 @@ import net.minecraft.util.EnumChatFormatting; public class ItemCustomLore extends Item { + EnumRarity rarity; + @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { @@ -430,13 +432,12 @@ public class ItemCustomLore extends Item { this == ModItems.nugget_daffergon || this == ModItems.nugget_verticium || this == ModItems.powder_australium || this == ModItems.powder_weidanium || this == ModItems.powder_reiium || this == ModItems.powder_unobtainium || - this == ModItems.powder_daffergon || this == ModItems.powder_verticium || - this == ModItems.coin_maskman) + this == ModItems.powder_daffergon || this == ModItems.powder_verticium) { return EnumRarity.uncommon; } - return EnumRarity.common; + return this.rarity != null ? rarity : EnumRarity.common; } @Override @@ -455,5 +456,9 @@ public class ItemCustomLore extends Item { return false; } - + + public ItemCustomLore setRarity(EnumRarity rarity) { + this.rarity = rarity; + return this; + } } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index e785e82d9..76e9b022e 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,9 +2,7 @@ package com.hbm.items.tool; import java.util.List; -import com.hbm.blocks.ModBlocks; import com.hbm.lib.Library; -import com.hbm.world.dungeon.ArcticVault; import com.hbm.world.generator.CellularDungeonFactory; import net.minecraft.entity.player.EntityPlayer; @@ -29,15 +27,15 @@ public class ItemWandD extends Item { int z = pos.blockZ; int y = world.getHeightValue(x, z); - /*//new Ruin001().generate_r0(world, world.rand, x, y - 8, z); + //new Ruin001().generate_r0(world, world.rand, x, y - 8, z); CellularDungeonFactory.jungle.generate(world, x, y, z, world.rand); CellularDungeonFactory.jungle.generate(world, x, y + 4, z, world.rand); - CellularDungeonFactory.jungle.generate(world, x, y + 8, z, world.rand);*/ + CellularDungeonFactory.jungle.generate(world, x, y + 8, z, world.rand); //new ArcticVault().trySpawn(world, x, y, z); - for(int ix = x - 10; ix <= x + 10; ix++) { + /*for(int ix = x - 10; ix <= x + 10; ix++) { for(int iz = z - 10; iz <= z + 10; iz++) { if(ix % 2 == 0 && iz % 2 == 0) { @@ -56,7 +54,7 @@ public class ItemWandD extends Item { world.setBlock(ix, y + 1, iz, ModBlocks.spikes); } } - } + }*/ } return stack; diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 4076a02ae..1c191ec67 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -750,6 +750,8 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD { if(!(gcfg.hasSights && player.isSneaking())) RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, ((IHoldableWeapon)player.getHeldItem().getItem()).getCrosshair()); + else + RenderScreenOverlay.renderCustomCrosshairs(event.resolution, Minecraft.getMinecraft().ingameGUI, Crosshair.NONE); } } } diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index bb9a2ef6a..ad87f4004 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -537,6 +537,25 @@ public class HbmWorldGen implements IWorldGenerator { } } + if((biome == BiomeGenBase.jungle || biome == BiomeGenBase.jungleEdge || biome == BiomeGenBase.jungleHills) && + WorldConfig.jungleStructure > 0 && rand.nextInt(WorldConfig.jungleStructure) == 0) { + int x = i + rand.nextInt(16); + int z = j + rand.nextInt(16); + + CellularDungeonFactory.jungle.generate(world, x, 20, z, world.rand); + CellularDungeonFactory.jungle.generate(world, x, 24, z, world.rand); + CellularDungeonFactory.jungle.generate(world, x, 28, z, world.rand); + + if(GeneralConfig.enableDebugMode) + MainRegistry.logger.info("[Debug] Successfully spawned jungle dungeon at " + x + " 10 " + z); + + int y = world.getHeightValue(x, z); + + for(int f = 0; f < 3; f++) + world.setBlock(x, y + f, z, ModBlocks.deco_titanium); + world.setBlock(x, y + 3, z, Blocks.redstone_block); + } + if (WorldConfig.arcticStructure > 0 && rand.nextInt(WorldConfig.arcticStructure) == 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); diff --git a/src/main/java/com/hbm/lib/ModDamageSource.java b/src/main/java/com/hbm/lib/ModDamageSource.java index 76d8048a2..46939fc50 100644 --- a/src/main/java/com/hbm/lib/ModDamageSource.java +++ b/src/main/java/com/hbm/lib/ModDamageSource.java @@ -47,6 +47,7 @@ public class ModDamageSource extends DamageSource { public static DamageSource electricity = (new DamageSource("electricity")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource exhaust = (new DamageSource("exhaust")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource spikes = (new DamageSource("spikes")).setDamageBypassesArmor(); + public static DamageSource lunar = (new DamageSource("lunar")).setDamageIsAbsolute().setDamageBypassesArmor(); public ModDamageSource(String p_i1566_1_) { super(p_i1566_1_); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index ab83cbbe1..32b97e785 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/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 (3731)"; + public static final String VERSION = "1.0.27 BETA (3735)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index d516a70c5..6358c3b7d 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -420,6 +420,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.battery_trixite), new Object[] { " A ", "PTP", "PSP", 'A', ModItems.wire_aluminium, 'P', "plateAluminum", 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite })); GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TRD", "PCW", 'P', ModItems.plate_advanced_alloy, 'C', ModItems.coil_advanced_alloy, 'W', ModItems.wire_advanced_alloy, 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', "ingotTungsten" })); GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TDR", "PCW", 'P', ModItems.plate_advanced_alloy, 'C', ModItems.coil_advanced_alloy, 'W', ModItems.wire_advanced_alloy, 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', "ingotTungsten" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.hev_battery, 4), new Object[] { " W ", "IEI", "ICI", 'W', ModItems.wire_gold, 'I', ModItems.plate_polymer, 'E', ModItems.powder_power, 'C', "dustCobalt" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.hev_battery, 4), new Object[] { " W ", "ICI", "IEI", 'W', ModItems.wire_gold, 'I', ModItems.plate_polymer, 'E', ModItems.powder_power, 'C', "dustCobalt" })); GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.battery_red_cell), new Object[] { "WBW", "PBP", "WBW", 'W', ModItems.wire_aluminium, 'P', "plateAluminum", 'B', ItemBattery.getEmptyBattery(ModItems.battery_generic) })); GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell), new Object[] { "WBW", "PBP", "WBW", 'W', ModItems.wire_red_copper, 'P', "plateCopper", 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced) })); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 3e5205640..4ef606d24 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -183,6 +183,10 @@ public class MainRegistry { public static Achievement horizonsStart; public static Achievement horizonsEnd; public static Achievement horizonsBonus; + public static Achievement bossCreeper; + public static Achievement bossMeltdown; + public static Achievement bossMaskman; + public static Achievement bossWorm; public static int generalOverride = 0; public static int polaroidID = 1; @@ -889,6 +893,11 @@ public class MainRegistry { horizonsEnd = new Achievement("achievement.horizonsEnd", "horizonsEnd", 0, 4, ModItems.sat_gerald, horizonsStart).initIndependentStat().registerStat(); horizonsBonus = new Achievement("achievement.horizonsBonus", "horizonsBonus", 2, 4, ModItems.sat_gerald, horizonsEnd).initIndependentStat().registerStat().setSpecial(); + bossCreeper = new Achievement("achievement.bossCreeper", "bossCreeper", 8, 0, ModItems.coin_creeper, null).initIndependentStat().registerStat(); + bossMeltdown = new Achievement("achievement.bossMeltdown", "bossMeltdown", 9, -1, ModItems.coin_radiation, bossCreeper).initIndependentStat().registerStat(); + bossMaskman = new Achievement("achievement.bossMaskman", "bossMaskman", 9, 1, ModItems.coin_maskman, bossCreeper).initIndependentStat().registerStat(); + bossWorm = new Achievement("achievement.bossWorm", "bossWorm", 11, 1, ModItems.coin_worm, bossMaskman).initIndependentStat().registerStat().setSpecial(); + achRadPoison = new Achievement("achievement.radPoison", "radPoison", -2, 6, ModItems.geiger_counter, null).initIndependentStat().registerStat(); achRadDeath = new Achievement("achievement.radDeath", "radDeath", 0, 6, Items.skull, achRadPoison).initIndependentStat().registerStat().setSpecial(); @@ -919,7 +928,11 @@ public class MainRegistry { horizonsEnd, horizonsBonus, achRadPoison, - achRadDeath + achRadDeath, + bossCreeper, + bossMeltdown, + bossMaskman, + bossWorm })); // MUST be initialized AFTER achievements!! diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index 9d47bff91..5b918a108 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -22,7 +22,6 @@ import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 85be2a588..bb81b857f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -105,8 +105,12 @@ public class TileEntityITER extends TileEntityMachineBase implements IConsumer, ItemFusionShield.setShieldDamage(slots[3], ItemFusionShield.getShieldDamage(slots[3]) + 1); - if(ItemFusionShield.getShieldDamage(slots[3]) > ((ItemFusionShield)slots[3].getItem()).maxDamage) + if(ItemFusionShield.getShieldDamage(slots[3]) > ((ItemFusionShield)slots[3].getItem()).maxDamage) { slots[3] = null; + worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "hbm:block.shutdown", 5F, 1F); + this.isOn = false; + this.markDirty(); + } } int prod = FusionRecipes.getSteamProduction(plasma.getTankType()); diff --git a/src/main/java/com/hbm/world/generator/CellularDungeon.java b/src/main/java/com/hbm/world/generator/CellularDungeon.java index ce8053091..b25685c7c 100644 --- a/src/main/java/com/hbm/world/generator/CellularDungeon.java +++ b/src/main/java/com/hbm/world/generator/CellularDungeon.java @@ -6,7 +6,6 @@ import java.util.Random; import com.hbm.inventory.RecipesCommon.MetaBlock; -import net.minecraft.block.Block; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; diff --git a/src/main/java/com/hbm/world/generator/JungleDungeon.java b/src/main/java/com/hbm/world/generator/JungleDungeon.java index 029def790..7680ff9ce 100644 --- a/src/main/java/com/hbm/world/generator/JungleDungeon.java +++ b/src/main/java/com/hbm/world/generator/JungleDungeon.java @@ -30,12 +30,22 @@ public class JungleDungeon extends CellularDungeon { this.ceiling.add(new MetaBlock(ModBlocks.brick_jungle_cracked)); } - public void generate(World world, int x, int y, int z, Random rand) { + public void generate(final World world, final int x, final int y, final int z, final Random rand) { super.generate(world, x, y, z, rand); TimedGenerator.addOp(world, new ITimedJob() { @Override - public void work() { JungleDungeon.this.hasHole = false; } + public void work() { + + JungleDungeon that = JungleDungeon.this; + + //A hole has not been made -> this is the bottom floor + if(!that.hasHole) { + world.setBlock(x, y, z, ModBlocks.brick_jungle_circle); + } + + that.hasHole = false; + } } ); //since all the building is timed jobs, this has to be as well. timed jobs are ordered so this works! diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 7a3f1b9fb..8c9559dc3 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,12 +3,12 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27-3731", + "version":"1.0.27-3735", "mcversion": "1.7.10", "url": "", "updateUrl": "", "authorList": ["HbMinecraft"], - "credits": "rodolphito, grangerave, Hoboy, Drillgon200, HBM", + "credits": "rodolphito, grangerave, Hoboy, Doctor17, Drillgon200, HBM", "logoFile": "", "screenshots": [], "dependencies": []