diff --git a/src/main/java/assets/hbm/lang/de_DE.lang b/src/main/java/assets/hbm/lang/de_DE.lang index a0ba81593..f76db9a60 100644 --- a/src/main/java/assets/hbm/lang/de_DE.lang +++ b/src/main/java/assets/hbm/lang/de_DE.lang @@ -1007,6 +1007,7 @@ item.fins_flat.name=Flache Stahlabdeckung item.fins_quad_titanium.name=Kleine Titanflossen item.fins_small_steel.name=Kleine Stahlgitterfinnen item.fins_tri_steel.name=Große Stahlflossen +item.five_htp.name=Enteramintabletten item.flame_conspiracy.name=Verschwörungstheorie item.flame_opinion.name=Eigene Meinung item.flame_politics.name=Politisches Thema @@ -2215,6 +2216,7 @@ potion.hbm_phosphorus=Phosphorverbrennung potion.hbm_radaway=Radaway potion.hbm_radiation=Kontaminiert potion.hbm_radx=Rad-X +potion.hbm_stability=Stabilität potion.hbm_taint=Verdorben potion.hbm_telekinesis=! ! ! diff --git a/src/main/java/assets/hbm/lang/en_US.lang b/src/main/java/assets/hbm/lang/en_US.lang index db70a7c02..db2f16561 100644 --- a/src/main/java/assets/hbm/lang/en_US.lang +++ b/src/main/java/assets/hbm/lang/en_US.lang @@ -1013,6 +1013,7 @@ item.fins_flat.name=Flat Steel Casing item.fins_quad_titanium.name=Small Titanium Fins item.fins_small_steel.name=Small Steel Grid Fins item.fins_tri_steel.name=Large Steel Fins +item.five_htp.name=Enteramine Pills item.flame_conspiracy.name=Conspiracy Theory item.flame_opinion.name=Own Opinion item.flame_politics.name=Political Topic @@ -2221,6 +2222,7 @@ potion.hbm_phosphorus=Phosphorus Burns potion.hbm_radaway=Radaway potion.hbm_radiation=Contaminated potion.hbm_radx=Rad-X +potion.hbm_stability=Stability potion.hbm_taint=Tainted potion.hbm_telekinesis=! ! ! diff --git a/src/main/java/assets/hbm/textures/gui/potions.png b/src/main/java/assets/hbm/textures/gui/potions.png index b9c1dd0d1..b82b2e1d4 100644 Binary files a/src/main/java/assets/hbm/textures/gui/potions.png and b/src/main/java/assets/hbm/textures/gui/potions.png differ diff --git a/src/main/java/assets/hbm/textures/items/5htp.png b/src/main/java/assets/hbm/textures/items/5htp.png new file mode 100644 index 000000000..26a907322 Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/5htp.png differ diff --git a/src/main/java/com/hbm/config/PotionConfig.java b/src/main/java/com/hbm/config/PotionConfig.java index 195e48ca3..66020734f 100644 --- a/src/main/java/com/hbm/config/PotionConfig.java +++ b/src/main/java/com/hbm/config/PotionConfig.java @@ -13,6 +13,7 @@ public class PotionConfig { public static int radawayID = 68; public static int telekinesisID = 69; public static int phosphorusID = 70; + public static int stabilityID = 71; public static void loadFromConfig(Configuration config) { @@ -26,5 +27,6 @@ public class PotionConfig { radawayID = CommonConfig.createConfigInt(config, CATEGORY_POTION, "8.06_radawayPotionID", "What potion ID the radaway effect will have", 68); telekinesisID = CommonConfig.createConfigInt(config, CATEGORY_POTION, "8.07_telekinesisPotionID", "What potion ID the telekinesis effect will have", 69); phosphorusID = CommonConfig.createConfigInt(config, CATEGORY_POTION, "8.08_phosphorusPotionID", "What potion ID the phosphorus effect will have", 70); + stabilityID = CommonConfig.createConfigInt(config, CATEGORY_POTION, "8.09_stabilityPotionID", "What potion ID the stability effect will have", 71); } } diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 56d52104b..d6e871289 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -109,6 +109,9 @@ public class ConsumableRecipes { GameRegistry.addRecipe(new ItemStack(ModItems.pill_iodine, 8), new Object[] { "IF", 'I', ModItems.powder_iodine, 'F', ModItems.fluorite }); GameRegistry.addRecipe(new ItemStack(ModItems.plan_c, 1), new Object[] { "PFP", 'P', ModItems.powder_poison, 'F', ModItems.fluorite }); GameRegistry.addRecipe(new ItemStack(ModItems.radx, 1), new Object[] { "P", "F", 'P', ModItems.powder_coal, 'F', ModItems.fluorite }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.xanax, 1), new Object[] { ModItems.powder_coal, ModItems.niter, ModItems.powder_bromine }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.fmn, 1), new Object[] { ModItems.powder_coal, ModItems.powder_polonium, ModItems.powder_strontium }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.five_htp, 1), new Object[] { ModItems.powder_coal, ModItems.powder_euphemium, ModItems.canteen_fab }); //Med bags GameRegistry.addRecipe(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', Items.leather, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.syringe_antidote }); diff --git a/src/main/java/com/hbm/extprop/HbmLivingProps.java b/src/main/java/com/hbm/extprop/HbmLivingProps.java index b820c5cff..724147e4d 100644 --- a/src/main/java/com/hbm/extprop/HbmLivingProps.java +++ b/src/main/java/com/hbm/extprop/HbmLivingProps.java @@ -4,6 +4,7 @@ import java.util.UUID; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; +import com.hbm.potion.HbmPotion; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -68,7 +69,12 @@ public class HbmLivingProps implements IExtendedEntityProperties { return getData(entity).digamma; } + //TODO: move all the checking into the contamination util public static void setDigamma(EntityLivingBase entity, float digamma) { + + if(entity.isPotionActive(HbmPotion.stability.id)) + return; + getData(entity).digamma = digamma; float healthMod = (float)Math.pow(0.5, digamma) - 1F; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index f6ef5c291..2e11e21b7 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -708,6 +708,7 @@ public class ModItems { public static Item radx; public static Item xanax; public static Item fmn; + public static Item five_htp; public static Item med_bag; public static Item pill_iodine; public static Item plan_c; @@ -2775,6 +2776,7 @@ public class ModItems { radx = new ItemPill(0).setUnlocalizedName("radx").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radx"); xanax = new ItemPill(0).setUnlocalizedName("xanax").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":xanax_2"); fmn = new ItemPill(0).setUnlocalizedName("fmn").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":tablet"); + five_htp = new ItemPill(0).setUnlocalizedName("five_htp").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":5htp"); pill_iodine = new ItemPill(0).setUnlocalizedName("pill_iodine").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pill_iodine"); plan_c = new ItemPill(0).setUnlocalizedName("plan_c").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":plan_c"); stealth_boy = new ItemStarterKit().setUnlocalizedName("stealth_boy").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":stealth_boy"); @@ -6168,6 +6170,7 @@ public class ModItems { GameRegistry.registerItem(pill_iodine, pill_iodine.getUnlocalizedName()); GameRegistry.registerItem(xanax, xanax.getUnlocalizedName()); GameRegistry.registerItem(fmn, fmn.getUnlocalizedName()); + GameRegistry.registerItem(five_htp, five_htp.getUnlocalizedName()); GameRegistry.registerItem(plan_c, plan_c.getUnlocalizedName()); GameRegistry.registerItem(stealth_boy, stealth_boy.getUnlocalizedName()); GameRegistry.registerItem(gas_mask_filter, gas_mask_filter.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/food/ItemPill.java b/src/main/java/com/hbm/items/food/ItemPill.java index 97f971fb2..8932959ab 100644 --- a/src/main/java/com/hbm/items/food/ItemPill.java +++ b/src/main/java/com/hbm/items/food/ItemPill.java @@ -58,6 +58,11 @@ public class ItemPill extends ItemFood { HbmLivingProps.setDigamma(player, Math.min(digamma, 2F)); player.addPotionEffect(new PotionEffect(Potion.blindness.id, 60, 0)); } + + if(this == ModItems.five_htp) { + HbmLivingProps.setDigamma(player, 0); + player.addPotionEffect(new PotionEffect(HbmPotion.stability.id, 10 * 60 * 20, 0)); + } } } @@ -78,6 +83,9 @@ public class ItemPill extends ItemFood { if(this == ModItems.fmn) { list.add("Removes all DRX above 2,000mDRX"); } + if(this == ModItems.five_htp) { + list.add("Removes all DRX, Stability for 10 minutes"); + } } @Override diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 60c14710f..b76cd358c 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1154,7 +1154,7 @@ public class ClientProxy extends ServerProxy { if("anim".equals(type)) { - if("crucible".equals(data.getString("mode"))) { + if("crucible".equals(data.getString("mode")) && player.getHeldItem() != null) { BusAnimation animation = new BusAnimation() .addBus("GUARD_ROT", new BusAnimationSequence() diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index fee470a65..4868fb4bd 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -306,8 +306,9 @@ public class ModEventHandler prevArmor = (ItemStack[]) ReflectionHelper.findField(EntityLivingBase.class, "field_82180_bT", "previousEquipment").get(event.entityLiving); } catch(Exception e) { } - if(event.entityLiving instanceof EntityPlayer && prevArmor != null && (prevArmor[0] == null || !ItemStack.areItemStacksEqual(prevArmor[0], event.entityLiving.getHeldItem())) - && event.entityLiving.getHeldItem() != null && event.entityLiving.getHeldItem().getItem() instanceof IEquipReceiver) { + if(event.entityLiving instanceof EntityPlayer && prevArmor != null && event.entityLiving.getHeldItem() != null + && (prevArmor[0] == null || prevArmor[0].getItem() != event.entityLiving.getHeldItem().getItem()) + && event.entityLiving.getHeldItem().getItem() instanceof IEquipReceiver) { ((IEquipReceiver)event.entityLiving.getHeldItem().getItem()).onEquip((EntityPlayer) event.entityLiving); } diff --git a/src/main/java/com/hbm/potion/HbmPotion.java b/src/main/java/com/hbm/potion/HbmPotion.java index 7613cb3a2..84b8b557a 100644 --- a/src/main/java/com/hbm/potion/HbmPotion.java +++ b/src/main/java/com/hbm/potion/HbmPotion.java @@ -33,6 +33,7 @@ public class HbmPotion extends Potion { public static HbmPotion radaway; public static HbmPotion telekinesis; public static HbmPotion phosphorus; + public static HbmPotion stability; public HbmPotion(int id, boolean isBad, int color) { super(id, isBad, color); @@ -48,6 +49,7 @@ public class HbmPotion extends Potion { radaway = registerPotion(PotionConfig.radawayID, false, 0xBB4B00, "potion.hbm_radaway", 7, 0); telekinesis = registerPotion(PotionConfig.telekinesisID, true, 0x00F3FF, "potion.hbm_telekinesis", 0, 1); phosphorus = registerPotion(PotionConfig.phosphorusID, true, 0xFFFF00, "potion.hbm_phosphorus", 1, 1); + stability = registerPotion(PotionConfig.stabilityID, false, 0xD0D0D0, "potion.hbm_stability", 2, 1); } public static HbmPotion registerPotion(int id, boolean isBad, int color, String name, int x, int y) {