diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java index 9e6b97432..496ab0c32 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java @@ -15,6 +15,7 @@ import com.hbm.interfaces.Spaghetti; import com.hbm.main.MainRegistry; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -115,6 +116,9 @@ public class EntityNukeExplosionMK3 extends Entity { if(!this.did) { + for(Object player : this.worldObj.playerEntities) + ((EntityPlayer)player).triggerAchievement(MainRegistry.achManhattan); + if(GeneralConfig.enableExtendedLogging && !worldObj.isRemote) MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized mk3 explosion at " + posX + " / " + posY + " / " + posZ + " with strength " + destructionRange + "!"); diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java index ac3bc9816..3ccfd3eda 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java @@ -11,6 +11,7 @@ import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.main.MainRegistry; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -51,6 +52,9 @@ public class EntityNukeExplosionMK4 extends Entity { return; } + for(Object player : this.worldObj.playerEntities) + ((EntityPlayer)player).triggerAchievement(MainRegistry.achManhattan); + if(!worldObj.isRemote && fallout && explosion != null) { //float radMax = (float) (length / 2F * Math.pow(length, 2) / 35F); diff --git a/src/main/java/com/hbm/inventory/SlotMachineOutput.java b/src/main/java/com/hbm/inventory/SlotMachineOutput.java index 06f19f093..941def352 100644 --- a/src/main/java/com/hbm/inventory/SlotMachineOutput.java +++ b/src/main/java/com/hbm/inventory/SlotMachineOutput.java @@ -1,7 +1,13 @@ package com.hbm.inventory; +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class SlotMachineOutput extends Slot { @@ -11,7 +17,48 @@ public class SlotMachineOutput extends Slot { } @Override - public boolean isItemValid(ItemStack p_75214_1_) { + public boolean isItemValid(ItemStack stack) { return false; } + + //ugly but nothing to be done + public static void checkAchievements(EntityPlayer player, ItemStack stack) { + Item item = stack.getItem(); + + if(item == Item.getItemFromBlock(ModBlocks.machine_chemplant)) + player.triggerAchievement(MainRegistry.achChemplant); + if(item == Item.getItemFromBlock(ModBlocks.concrete) || item == Item.getItemFromBlock(ModBlocks.concrete_asbestos)) + player.triggerAchievement(MainRegistry.achConcrete); + if(item == ModItems.ingot_polymer) + player.triggerAchievement(MainRegistry.achPolymer); + if(item == ModItems.ingot_desh) + player.triggerAchievement(MainRegistry.achDesh); + if(item == ModItems.gem_tantalium) + player.triggerAchievement(MainRegistry.achTantalum); + if(item == Item.getItemFromBlock(ModBlocks.machine_centrifuge)) + player.triggerAchievement(MainRegistry.achCentrifuge); + if(item == ModItems.ingot_schrabidium || item == ModItems.nugget_schrabidium) + player.triggerAchievement(MainRegistry.achSchrab); + if(item == Item.getItemFromBlock(ModBlocks.machine_crystallizer)) + player.triggerAchievement(MainRegistry.achAcidizer); + if(item == ModItems.nugget_technetium) + player.triggerAchievement(MainRegistry.achTechnetium); + if(item == Item.getItemFromBlock(ModBlocks.watz_core)) + player.triggerAchievement(MainRegistry.achWatz); + if(item == ModItems.nugget_bismuth) + player.triggerAchievement(MainRegistry.achBismuth); + if(item == ModItems.nugget_am241 || item == ModItems.nugget_am242) + player.triggerAchievement(MainRegistry.achBreeding); + if(item == ModItems.missile_nuclear || item == ModItems.missile_nuclear_cluster || item == ModItems.missile_doomsday || item == ModItems.mp_warhead_10_nuclear || item == ModItems.mp_warhead_10_nuclear_large || item == ModItems.mp_warhead_15_nuclear || item == ModItems.mp_warhead_15_nuclear_shark || item == ModItems.mp_warhead_15_boxcar) + player.triggerAchievement(MainRegistry.achRedBalloons); + if(item == Item.getItemFromBlock(ModBlocks.struct_iter_core)) + player.triggerAchievement(MainRegistry.achFusion); + } + + @Override + public void onPickupFromSlot(EntityPlayer player, ItemStack stack) { + checkAchievements(player, stack); + + this.onSlotChanged(); + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java b/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java index 6c2006573..181422854 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java @@ -48,6 +48,7 @@ public class ContainerCentrifuge extends Container { { ItemStack var5 = var4.getStack(); var3 = var5.copy(); + SlotMachineOutput.checkAchievements(p_82846_1_, var5); if (par2 <= 5) { if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java index 374d5aad2..35ca3c64b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java @@ -44,6 +44,7 @@ public class ContainerCrystallizer extends Container { if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); + SlotMachineOutput.checkAchievements(p_82846_1_, var5); if(par2 <= diFurnace.getSizeInventory() - 1) { if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java b/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java index c087d0f5e..307b41fc0 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java @@ -65,6 +65,7 @@ private TileEntityMachineAssembler assembler; { ItemStack var5 = var4.getStack(); var3 = var5.copy(); + SlotMachineOutput.checkAchievements(p_82846_1_, var5); if (par2 <= 17) { if (!this.mergeItemStack(var5, 18, this.inventorySlots.size(), true)) diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java index 20941ea9f..62ea17d07 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java @@ -76,6 +76,7 @@ private TileEntityMachineChemplant nukeBoy; { ItemStack var5 = var4.getStack(); var3 = var5.copy(); + SlotMachineOutput.checkAchievements(p_82846_1_, var5); if (par2 <= 20) { if (!this.mergeItemStack(var5, 21, this.inventorySlots.size(), true)) diff --git a/src/main/java/com/hbm/inventory/container/ContainerSILEX.java b/src/main/java/com/hbm/inventory/container/ContainerSILEX.java index b8fdcbea8..c632230e1 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerSILEX.java +++ b/src/main/java/com/hbm/inventory/container/ContainerSILEX.java @@ -1,5 +1,6 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotMachineOutput; import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntitySILEX; @@ -26,12 +27,12 @@ public class ContainerSILEX extends Container { //Output this.addSlotToContainer(new Slot(te, 4, 116, 90)); //Output Queue - this.addSlotToContainer(new Slot(te, 5, 134, 72)); - this.addSlotToContainer(new Slot(te, 6, 152, 72)); - this.addSlotToContainer(new Slot(te, 7, 134, 90)); - this.addSlotToContainer(new Slot(te, 8, 152, 90)); - this.addSlotToContainer(new Slot(te, 9, 134, 108)); - this.addSlotToContainer(new Slot(te, 10, 152, 108)); + this.addSlotToContainer(new SlotMachineOutput(te, 5, 134, 72)); + this.addSlotToContainer(new SlotMachineOutput(te, 6, 152, 72)); + this.addSlotToContainer(new SlotMachineOutput(te, 7, 134, 90)); + this.addSlotToContainer(new SlotMachineOutput(te, 8, 152, 90)); + this.addSlotToContainer(new SlotMachineOutput(te, 9, 134, 108)); + this.addSlotToContainer(new SlotMachineOutput(te, 10, 152, 108)); for(int i = 0; i < 3; i++) { @@ -55,6 +56,7 @@ public class ContainerSILEX extends Container { if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); + SlotMachineOutput.checkAchievements(p_82846_1_, var5); if(par2 <= silex.getSizeInventory() - 1) { if(!this.mergeItemStack(var5, silex.getSizeInventory(), this.inventorySlots.size(), true)) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java b/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java index cdf37acbe..a96b12b6a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java @@ -283,11 +283,11 @@ public class GUIScreenBobmazon extends GuiScreen { public enum Requirement { - STEEL(MainRegistry.bobMetalworks), - ASSEMBLY(MainRegistry.bobAssembly), - CHEMICS(MainRegistry.bobChemistry), - OIL(MainRegistry.bobOil), - NUCLEAR(MainRegistry.bobNuclear), + STEEL(MainRegistry.achBlastFurnace), + ASSEMBLY(MainRegistry.achAssembly), + CHEMICS(MainRegistry.achChemplant), + OIL(MainRegistry.achDesh), + NUCLEAR(MainRegistry.achTechnetium), HIDDEN(MainRegistry.bobHidden); private Requirement(Achievement achievement) { diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 02929538e..43041cc50 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -175,27 +175,16 @@ public class MainRegistry { public static Achievement achImpossible; public static Achievement achTOB; public static Achievement achFreytag; - public static Achievement achSelenium; public static Achievement achPotato; public static Achievement achC44; public static Achievement achC20_5; - public static Achievement achSpace; - public static Achievement achFOEQ; public static Achievement achFiend; public static Achievement achFiend2; - public static Achievement achSoyuz; public static Achievement achRadPoison; public static Achievement achRadDeath; public static Achievement achStratum; - public static Achievement achMeltdown; public static Achievement achOmega12; - public static Achievement achRadium; public static Achievement achSomeWounds; - public static Achievement bobMetalworks; - public static Achievement bobAssembly; - public static Achievement bobChemistry; - public static Achievement bobOil; - public static Achievement bobNuclear; public static Achievement bobHidden; public static Achievement horizonsStart; public static Achievement horizonsEnd; @@ -210,7 +199,37 @@ public class MainRegistry { public static Achievement digammaKnow; public static Achievement digammaKauaiMoho; public static Achievement digammaUpOnTop; - + + public static Achievement achBurnerPress; + public static Achievement achBlastFurnace; + public static Achievement achAssembly; + public static Achievement achSelenium; + public static Achievement achChemplant; + public static Achievement achConcrete; + public static Achievement achPolymer; + public static Achievement achDesh; + public static Achievement achTantalum; + public static Achievement achRedBalloons; + public static Achievement achManhattan; + public static Achievement achCentrifuge; + public static Achievement achFOEQ; + public static Achievement achSoyuz; + public static Achievement achSpace; + public static Achievement achSchrab; + public static Achievement achAcidizer; + public static Achievement achRadium; + public static Achievement achTechnetium; + public static Achievement achZIRNOXBoom; + public static Achievement achChicagoPile; + public static Achievement achWatz; + public static Achievement achWatzBoom; + public static Achievement achRBMK; + public static Achievement achRBMKBoom; + public static Achievement achBismuth; + public static Achievement achBreeding; + public static Achievement achFusion; + public static Achievement achMeltdown; + public static int generalOverride = 0; public static int polaroidID = 1; @@ -757,75 +776,84 @@ public class MainRegistry { @EventHandler public static void load(FMLInitializationEvent event) { - achSacrifice = new Achievement("achievement.sacrifice", "sacrifice", 0, -2, ModItems.burnt_bark, null).initIndependentStat().setSpecial().registerStat(); - achImpossible = new Achievement("achievement.impossible", "impossible", 2, -2, ModItems.nothing, null).initIndependentStat().setSpecial().registerStat(); - achTOB = new Achievement("achievement.tasteofblood", "tasteofblood", 0, 0, new ItemStack(ModItems.fluid_icon, 1, FluidType.ASCHRAB.getID()), null).initIndependentStat().setSpecial().registerStat(); + achSacrifice = new Achievement("achievement.sacrifice", "sacrifice", -3, 1, ModItems.burnt_bark, null).initIndependentStat().setSpecial().registerStat(); + achImpossible = new Achievement("achievement.impossible", "impossible", 18, 10, ModItems.nothing, null).initIndependentStat().setSpecial().registerStat(); + achTOB = new Achievement("achievement.tasteofblood", "tasteofblood", 3, 10, new ItemStack(ModItems.fluid_icon, 1, FluidType.ASCHRAB.getID()), null).initIndependentStat().setSpecial().registerStat(); achFreytag = new Achievement("achievement.freytag", "freytag", 0, -4, ModItems.gun_mp40, null).initIndependentStat().setSpecial().registerStat(); - achSelenium = new Achievement("achievement.selenium", "selenium", -2, -4, ModItems.ingot_starmetal, null).initIndependentStat().setSpecial().registerStat(); achPotato = new Achievement("achievement.potato", "potato", -2, -2, ModItems.battery_potatos, null).initIndependentStat().setSpecial().registerStat(); achC44 = new Achievement("achievement.c44", "c44", 2, -4, ModItems.gun_revolver_pip, null).initIndependentStat().setSpecial().registerStat(); - achC20_5 = new Achievement("achievement.c20_5", "c20_5", 4, -4, ModItems.gun_dampfmaschine, null).initIndependentStat().setSpecial().registerStat(); - achSpace = new Achievement("achievement.space", "space", 4, -2, ModItems.missile_carrier, null).initIndependentStat().setSpecial().registerStat(); - achFOEQ = new Achievement("achievement.FOEQ", "FOEQ", 4, 0, ModItems.sat_foeq, null).initIndependentStat().setSpecial().registerStat(); - achFiend = new Achievement("achievement.fiend", "fiend", 6, -2, ModItems.shimmer_sledge, null).initIndependentStat().setSpecial().registerStat(); - achFiend2 = new Achievement("achievement.fiend2", "fiend2", 6, 0, ModItems.shimmer_axe, null).initIndependentStat().setSpecial().registerStat(); - achSoyuz = new Achievement("achievement.soyuz", "soyuz", -2, 0, Items.baked_potato, null).initIndependentStat().setSpecial().registerStat(); + achC20_5 = new Achievement("achievement.c20_5", "c20_5", 3, 6, ModItems.gun_dampfmaschine, null).initIndependentStat().setSpecial().registerStat(); + achFiend = new Achievement("achievement.fiend", "fiend", -6, 8, ModItems.shimmer_sledge, null).initIndependentStat().setSpecial().registerStat(); + achFiend2 = new Achievement("achievement.fiend2", "fiend2", -4, 9, ModItems.shimmer_axe, null).initIndependentStat().setSpecial().registerStat(); achStratum = new Achievement("achievement.stratum", "stratum", -4, -2, new ItemStack(ModBlocks.stone_gneiss), null).initIndependentStat().setSpecial().registerStat(); - achMeltdown = new Achievement("achievement.meltdown", "meltdown", -4, 0, new ItemStack(ModBlocks.iter), null).initIndependentStat().setSpecial().registerStat(); - achOmega12 = new Achievement("achievement.omega12", "omega12", -4, 2, ModItems.particle_digamma, null).initIndependentStat().setSpecial().registerStat(); - achRadium = new Achievement("achievement.radium", "radium", -4, 4, ModItems.coffee_radium, null).initIndependentStat().setSpecial().registerStat(); + achOmega12 = new Achievement("achievement.omega12", "omega12", 17, -1, ModItems.particle_digamma, null).initIndependentStat().setSpecial().registerStat(); - bobMetalworks = new Achievement("achievement.metalworks", "metalworks", -2, 2, ModItems.bob_metalworks, null).initIndependentStat().registerStat(); - bobAssembly = new Achievement("achievement.assembly", "assembly", 0, 2, ModItems.bob_assembly, bobMetalworks).initIndependentStat().registerStat(); - bobChemistry = new Achievement("achievement.chemistry", "chemistry", 2, 2, ModItems.bob_chemistry, bobAssembly).initIndependentStat().registerStat(); - bobOil = new Achievement("achievement.oil", "oil", 4, 2, ModItems.bob_oil, bobChemistry).initIndependentStat().registerStat(); - bobNuclear = new Achievement("achievement.nuclear", "nuclear", 6, 2, ModItems.bob_nuclear, bobOil).initIndependentStat().registerStat(); - bobHidden = new Achievement("achievement.hidden", "hidden", 8, 2, ModItems.gun_dampfmaschine, bobNuclear).initIndependentStat().registerStat(); + bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, ModItems.gun_dampfmaschine, null).initIndependentStat().registerStat(); - horizonsStart = new Achievement("achievement.horizonsStart", "horizonsStart", -2, 4, ModItems.sat_gerald, null).initIndependentStat().registerStat(); - 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(); + horizonsStart = new Achievement("achievement.horizonsStart", "horizonsStart", -5, 4, ModItems.sat_gerald, null).initIndependentStat().registerStat(); + horizonsEnd = new Achievement("achievement.horizonsEnd", "horizonsEnd", -3, 4, ModItems.sat_gerald, horizonsStart).initIndependentStat().registerStat(); + horizonsBonus = new Achievement("achievement.horizonsBonus", "horizonsBonus", -1, 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(); - bossUFO = new Achievement("achievement.bossUFO", "bossUFO", 13, 1, ModItems.coin_ufo, bossWorm).initIndependentStat().registerStat().setSpecial(); + bossCreeper = new Achievement("achievement.bossCreeper", "bossCreeper", -7, 1, ModItems.coin_creeper, null).initIndependentStat().registerStat(); + bossMeltdown = new Achievement("achievement.bossMeltdown", "bossMeltdown", -8, 3, ModItems.coin_radiation, bossCreeper).initIndependentStat().registerStat(); + bossMaskman = new Achievement("achievement.bossMaskman", "bossMaskman", -8, -1, ModItems.coin_maskman, bossCreeper).initIndependentStat().registerStat(); + bossWorm = new Achievement("achievement.bossWorm", "bossWorm", -8, -3, ModItems.coin_worm, bossMaskman).initIndependentStat().registerStat().setSpecial(); + bossUFO = new Achievement("achievement.bossUFO", "bossUFO", -6, -3, ModItems.coin_ufo, bossWorm).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(); achSomeWounds = new Achievement("achievement.someWounds", "someWounds", -2, 10, ModItems.injector_knife, null).initIndependentStat().registerStat(); - digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -2, 8, ModItems.digamma_see, null).initIndependentStat().registerStat(); - digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 0, 8, ModItems.digamma_feel, digammaSee).initIndependentStat().registerStat(); - digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 2, 8, ModItems.digamma_know, digammaFeel).initIndependentStat().registerStat().setSpecial(); - digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 4, 8, ModItems.digamma_kauai_moho, digammaKnow).initIndependentStat().registerStat().setSpecial(); - digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 6, 8, ModItems.digamma_up_on_top, digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); - + digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -1, 8, ModItems.digamma_see, null).initIndependentStat().registerStat(); + digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 1, 8, ModItems.digamma_feel, digammaSee).initIndependentStat().registerStat(); + digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 3, 8, ModItems.digamma_know, digammaFeel).initIndependentStat().registerStat().setSpecial(); + digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 5, 8, ModItems.digamma_kauai_moho, digammaKnow).initIndependentStat().registerStat().setSpecial(); + digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 7, 8, ModItems.digamma_up_on_top, digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); + + //progression achieves + achBurnerPress = new Achievement("achievement.burnerPress", "burnerPress", 0, 0, new ItemStack(ModBlocks.machine_press), null).initIndependentStat().registerStat(); + achBlastFurnace = new Achievement("achievement.blastFurnace", "blastFurnace", 1, 3, new ItemStack(ModBlocks.machine_difurnace_off), achBurnerPress).initIndependentStat().registerStat(); + achAssembly = new Achievement("achievement.assembly", "assembly", 3, -1, new ItemStack(ModBlocks.machine_assembler), achBurnerPress).initIndependentStat().registerStat(); + achSelenium = new Achievement("achievement.selenium", "selenium", 3, 2, ModItems.ingot_starmetal, achBurnerPress).initIndependentStat().setSpecial().registerStat(); + achChemplant = new Achievement("achievement.chemplant", "chemplant", 6, -1, new ItemStack(ModBlocks.machine_chemplant), achAssembly).initIndependentStat().registerStat(); + achConcrete = new Achievement("achievement.concrete", "concrete", 6, -4, new ItemStack(ModBlocks.concrete), achChemplant).initIndependentStat().registerStat(); + achPolymer = new Achievement("achievement.polymer", "polymer", 9, -1, ModItems.ingot_polymer, achChemplant).initIndependentStat().registerStat(); + achDesh = new Achievement("achievement.desh", "desh", 9, 2, ModItems.ingot_desh, achChemplant).initIndependentStat().registerStat(); + achTantalum = new Achievement("achievement.tantalum", "tantalum", 7, 3, ModItems.gem_tantalium, achChemplant).initIndependentStat().setSpecial().registerStat(); + achCentrifuge = new Achievement("achievement.centrifuge", "centrifuge", 12, -2, new ItemStack(ModBlocks.machine_centrifuge), achPolymer).initIndependentStat().registerStat(); + achFOEQ = new Achievement("achievement.FOEQ", "FOEQ", 5, 5, ModItems.sat_foeq, achDesh).initIndependentStat().setSpecial().registerStat(); + achSoyuz = new Achievement("achievement.soyuz", "soyuz", 7, 6, Items.baked_potato, achDesh).initIndependentStat().setSpecial().registerStat(); + achSpace = new Achievement("achievement.space", "space", 9, 7, ModItems.missile_carrier, achDesh).initIndependentStat().setSpecial().registerStat(); + achSchrab = new Achievement("achievement.schrab", "schrab", 11, 3, ModItems.ingot_schrabidium, achDesh).initIndependentStat().registerStat(); + achAcidizer = new Achievement("achievement.acidizer", "acidizer", 11, 5, new ItemStack(ModBlocks.machine_crystallizer), achDesh).initIndependentStat().registerStat(); + achRadium = new Achievement("achievement.radium", "radium", 13, -4, ModItems.coffee_radium, achCentrifuge).initIndependentStat().setSpecial().registerStat(); + achTechnetium = new Achievement("achievement.technetium", "technetium", 15, -2, ModItems.ingot_tcalloy, achCentrifuge).initIndependentStat().registerStat(); + achZIRNOXBoom = new Achievement("achievement.ZIRNOXBoom", "ZIRNOXBoom", 14, -1, ModItems.debris_element, achCentrifuge).initIndependentStat().setSpecial().registerStat(); + achChicagoPile = new Achievement("achievement.chicagoPile", "chicagoPile", 13, 0, ModItems.pile_rod_plutonium, achCentrifuge).initIndependentStat().registerStat(); + achWatz = new Achievement("achievement.watz", "watz", 14, 3, ModItems.pellet_schrabidium, achSchrab).initIndependentStat().registerStat(); + achWatzBoom = new Achievement("achievement.watzBoom", "watzBoom", 14, 5, ModItems.bucket_mud, achWatz).initIndependentStat().setSpecial().registerStat(); + achRBMK = new Achievement("achievement.RBMK", "RBMK", 9, -5, ModItems.rbmk_fuel_ueu, achConcrete).initIndependentStat().registerStat(); + achRBMKBoom = new Achievement("achievement.RBMKBoom", "RBMKBoom", 9, -7, ModItems.debris_fuel, achRBMK).initIndependentStat().setSpecial().registerStat(); + achBismuth = new Achievement("achievement.bismuth", "bismuth", 11, -6, ModItems.ingot_bismuth, achRBMK).initIndependentStat().registerStat(); + achBreeding = new Achievement("achievement.breeding", "breeding", 7, -6, ModItems.ingot_am_mix, achRBMK).initIndependentStat().setSpecial().registerStat(); + achFusion = new Achievement("achievement.fusion", "fusion", 13, -7, new ItemStack(ModBlocks.iter), achBismuth).initIndependentStat().setSpecial().registerStat(); + achMeltdown = new Achievement("achievement.meltdown", "meltdown", 15, -7, ModItems.crystal_energy, achFusion).initIndependentStat().setSpecial().registerStat(); + achRedBalloons = new Achievement("achievement.redBalloons", "redBalloons", 11, 0, ModItems.missile_nuclear, achPolymer).initIndependentStat().setSpecial().registerStat(); + achManhattan = new Achievement("achievement.manhattan", "manhattan", 11, -4, new ItemStack(ModBlocks.nuke_boy), achPolymer).initIndependentStat().setSpecial().registerStat(); + AchievementPage.registerAchievementPage(new AchievementPage("Nuclear Tech", new Achievement[] { achSacrifice, achImpossible, achTOB, achFreytag, - achSelenium, achPotato, achC44, achC20_5, - achSpace, - achFOEQ, achFiend, achFiend2, - achSoyuz, achStratum, - achMeltdown, achOmega12, - achRadium, - bobMetalworks, - bobAssembly, - bobChemistry, - bobOil, - bobNuclear, bobHidden, horizonsStart, horizonsEnd, @@ -842,7 +870,37 @@ public class MainRegistry { digammaFeel, digammaKnow, digammaKauaiMoho, - digammaUpOnTop + digammaUpOnTop, + + achBurnerPress, + achBlastFurnace, + achAssembly, + achSelenium, + achChemplant, + achConcrete, + achPolymer, + achDesh, + achTantalum, + achCentrifuge, + achFOEQ, + achSoyuz, + achSpace, + achSchrab, + achAcidizer, + achRadium, + achTechnetium, + achZIRNOXBoom, + achChicagoPile, + achWatz, + achWatzBoom, + achRBMK, + achRBMKBoom, + achBismuth, + achBreeding, + achFusion, + achMeltdown, + achRedBalloons, + achManhattan })); // MUST be initialized AFTER achievements!! diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 6658debb7..3a39bff72 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -1210,20 +1210,11 @@ public class ModEventHandler { if(item == ModItems.gun_revolver_pip) { e.player.addStat(MainRegistry.achC44, 1); } - if(item == Item.getItemFromBlock(ModBlocks.machine_difurnace_off)) { - e.player.addStat(MainRegistry.bobMetalworks, 1); + if(item == Item.getItemFromBlock(ModBlocks.machine_press)) { + e.player.triggerAchievement(MainRegistry.achBurnerPress); } - if(item == Item.getItemFromBlock(ModBlocks.machine_assembler)) { - e.player.addStat(MainRegistry.bobAssembly, 1); - } - if(item == Item.getItemFromBlock(ModBlocks.brick_concrete)) { - e.player.addStat(MainRegistry.bobChemistry, 1); - } - if(item == Item.getItemFromBlock(ModBlocks.machine_boiler_electric_off)) { - e.player.addStat(MainRegistry.bobOil, 1); - } - if(item == ModItems.ingot_uranium_fuel) { - e.player.addStat(MainRegistry.bobNuclear, 1); + if(item == ModItems.rbmk_fuel_empty) { + e.player.triggerAchievement(MainRegistry.achRBMK); } } @@ -1246,7 +1237,13 @@ public class ModEventHandler { e.player.inventoryContainer.detectAndSendChanges(); } } - + + @SubscribeEvent + public void onItemPickup(PlayerEvent.ItemPickupEvent event) { + if(event.pickedUp.getEntityItem().getItem() == ModItems.canned_jizz) + event.player.triggerAchievement(MainRegistry.achC20_5); + } + @SubscribeEvent public void onBlockBreak(BreakEvent event) { @@ -1270,6 +1267,11 @@ public class ModEventHandler { event.world.setBlock(x, y, z, ModBlocks.gas_coal); } } + + if(event.block == ModBlocks.pink_log && !((EntityPlayerMP) event.getPlayer()).func_147099_x().hasAchievementUnlocked(MainRegistry.achImpossible)) { + event.getPlayer().triggerAchievement(MainRegistry.achImpossible); + event.setExpToDrop(3000); + } } private static final String hash = "41eb77f138ce350932e33b6b26b233df9aad0c0c80c6a49cb9a54ddd8fae3f83"; diff --git a/src/main/java/com/hbm/packet/AnvilCraftPacket.java b/src/main/java/com/hbm/packet/AnvilCraftPacket.java index 228a2bf15..fae9bcad0 100644 --- a/src/main/java/com/hbm/packet/AnvilCraftPacket.java +++ b/src/main/java/com/hbm/packet/AnvilCraftPacket.java @@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilConstructionRecipe; +import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.util.InventoryUtil; @@ -65,9 +66,11 @@ public class AnvilCraftPacket implements IMessage { InventoryUtil.giveChanceStacksToPlayer(p, recipe.output); if(recipe.output.get(0).stack.getItem() == Item.getItemFromBlock(ModBlocks.machine_difurnace_off)) - p.triggerAchievement(MainRegistry.bobMetalworks); + p.triggerAchievement(MainRegistry.achBlastFurnace); if(recipe.output.get(0).stack.getItem() == Item.getItemFromBlock(ModBlocks.machine_assembler)) - p.triggerAchievement(MainRegistry.bobAssembly); + p.triggerAchievement(MainRegistry.achAssembly); + if(recipe.output.get(0).stack.getItem() == ModItems.billet_pu_mix) + p.triggerAchievement(MainRegistry.achChicagoPile); } else { break; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index 563937cc9..f56f8e63c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -22,6 +22,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemZirnoxBreedingRod; import com.hbm.items.machine.ItemZirnoxRod; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityMachineBase; import cpw.mods.fml.relauncher.Side; @@ -357,12 +358,19 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF worldObj.createExplosion(null, this.xCoord, this.yCoord + 3, this.zCoord, 12.0F, true); zirnoxDebris(); ExplosionNukeGeneric.waste(worldObj, this.xCoord, this.yCoord, this.zCoord, 35); - + + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, + AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(50, 50, 50)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.achZIRNOXBoom); + } + if(MobConfig.enableElementals) { @SuppressWarnings("unchecked") - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(100, 100, 100)); + List players2 = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(100, 100, 100)); - for(EntityPlayer player : players) { + for(EntityPlayer player : players2) { player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).setBoolean("radMark", true); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java index 8a68adb01..dd4489c66 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java @@ -30,6 +30,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -649,6 +650,13 @@ public class TileEntityWatzCore extends TileEntity implements ISidedInventory, I this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); } else { + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, + AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(50, 50, 50)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.achWatzBoom); + } + if (rand.nextInt(10) != 0) { for (int i = -3; i <= 3; i++) for (int j = -5; j <= 5; j++) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java index 152cb65cc..aae6cb8c3 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -29,6 +29,7 @@ import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -47,15 +48,6 @@ import net.minecraftforge.common.util.ForgeDirection; */ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacketReceiver { - /* - * ██████╗ ██████╗ ███╗ ███╗██╗ ██╗ - * ██╔══██╗██╔══██╗████╗ ████║██║ ██╔╝ - * ██████╔╝██████╔╝██╔████╔██║█████╔╝ - * ██╔══██╗██╔══██╗██║╚██╔╝██║██╔═██╗ - * ██║ ██║██████╔╝██║ ╚═╝ ██║██║ ██╗ - * ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ - */ - public double heat; public int water; @@ -469,6 +461,13 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke worldObj.playSoundEffect(avgX + 0.5, yCoord + 1, avgZ + 0.5, "hbm:block.rbmk_explosion", 50.0F, 1.0F); + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, + AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(50, 50, 50)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.achRBMKBoom); + } + if(RBMKBase.digamma) { EntitySpear spear = new EntitySpear(worldObj); spear.posX = avgX + 0.5; diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 070947f09..f6a6dbe91 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1,7 +1,15 @@ +achievement.acidizer.desc=oof ow my skin +achievement.acidizer=Acidic +achievement.assembly.desc=Wait, it's already 1 am? +achievement.assembly=The Factory Grows 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.breeding.desc=Thank you, god bless you, and god bless the United States of America. +achievement.breeding=Ironic +achievement.bismuth.desc=Remember when people complained about this for a month? I do. +achievement.bismuth=Bismuth +achievement.blastFurnace.desc=They salvaged a sunken dreadnought for Explorer 1. +achievement.blastFurnace=Coal and Iron achievement.bossCreeper.desc='There is nuclear creepers? Those are a thing?!' achievement.bossCreeper=Bomb On Four Legs achievement.bossMaskman.desc=Bonk the big boy. @@ -12,12 +20,22 @@ achievement.bossWorm.desc=The Fabstaff. My ass. You do the math. achievement.bossWorm=Disassembling Balls-O-Tron achievement.bossUFO.desc=Yo, what do we have here? A huge spacecraft pulling up to the bloockship? achievement.bossUFO=Ayy Lmao +achievement.burnerPress.desc=Pressure pushing down on me, on you +achievement.burnerPress=Under Pressure achievement.c20_5.desc=??? achievement.c20_5=Chapter [TWENTY POINT FIVE] achievement.c44.desc=Galvanized! I mean, zinc! achievement.c44=Chapter 44 -achievement.chemistry.desc=Bobmazon Level 3 (Concrete Bricks) -achievement.chemistry=Chemistry +achievement.centrifuge.desc=centrifugal force is fake don't @ me +achievement.centrifuge=Centripetal Force +achievement.chemplant.desc=Now you're thinking with chemicals! +achievement.chemplant=The Factory Grows Pt. 2 +achievement.chicagoPile.desc="How were the natives?" / "Very friendly." +achievement.chicagoPile=The navigator landed in the New World +achievement.concrete.desc=A Bolshevik's favorite. +achievement.concrete=Old Reliable +achievement.desh.desc="Come on then, you lot. Places to go!" +achievement.desh=Le Verrier achievement.digammaFeel.desc=the hollow within. achievement.digammaFeel=The Terror of Feeling achievement.digammaKauaiMoho.desc=Everything is awful, here's some hot choccy. @@ -34,6 +52,8 @@ achievement.fiend2=Delinquent 2: Delinquent Harder achievement.fiend=Delinquent achievement.freytag.desc=Herold's life guards achievement.freytag=Freytag +achievement.fusion.desc=A dance of deuterons, tritons, and energy. +achievement.fusion=Fusion achievement.hidden.desc=Kill a tainted creeper with a falling boxcar. achievement.hidden=Hidden Catalog achievement.horizonsBonus.desc=honest to god what the hell is wrong with you @@ -44,16 +64,14 @@ achievement.horizonsStart.desc=Send a lad to the moon. achievement.horizonsStart=Apogee achievement.impossible.desc=You can't get this achievement. achievement.impossible=Literally impossible +achievement.manhattan.desc=8:15, August 6th, 1945 +achievement.manhattan=The Manhattan Project achievement.meltdown.desc=You got this far, how could you mess this up? achievement.meltdown=Rapid Unscheduled Disassembly -achievement.metalworks.desc=Bobmazon Level 1 (Blast Furnace) -achievement.metalworks=Metalworks -achievement.nuclear.desc=Bobmazon Level 5 (Uranium Fuel) -achievement.nuclear=Atomic Science -achievement.oil.desc=Bobmazon Level 4 (Electric Boiler) -achievement.oil=Petroleum achievement.omega12.desc=Solve the problem of continued life on this wretched planet. achievement.omega12=Omega-12 Particle Accelerator +achievement.polymer.desc=Delicious, delicious microplastics. +achievement.polymer=Teflon achievement.potato.desc=You stabbed me! What is WRONG with yo-WOOOAAH achievement.potato=Rogue AI achievement.radDeath.desc=Marie Curie invented the theory of radioactivity, the treatment of radioactivity, and dying of radioactivity. @@ -62,8 +80,16 @@ achievement.radium.desc=YOU'RE FIRED FOR POURING RADIUM IN MY COFFEE! achievement.radium=MISTER INCREDIBLE achievement.radPoison.desc=Suffer the effects of radiation poisoning. achievement.radPoison=Yay, Radiation! +achievement.RBMKBoom.desc=What is the cost of lies? +achievement.RBMKBoom=It is 15,000. +achievement.RBMK.desc=He's delusional, get him to the infirmary. +achievement.RBMK=3.6 Roentegen? +achievement.redBalloons.desc="This is what we've waited for. This is it, boys, this is war." +achievement.redBalloons=99 Red Balloons achievement.sacrifice.desc=Face the fire and live. achievement.sacrifice=Sororicide +achievement.schrab.desc=Regardless, I wouldn't look at it for too long. +achievement.schrab=Island of Stability achievement.selenium.desc=Yeah. achievement.selenium=XVIII The Moon achievement.stratum.desc=Hit the brakes, Mitts. @@ -74,8 +100,18 @@ achievement.soyuz.desc=Become crunchy. achievement.soyuz=Baked Potato achievement.space.desc=Fail in every way possible and waste funds worth 90 million dollars. achievement.space=The Final Front-ah forget it +achievement.tantalum.desc=An elusive, yet ever-needed element. +achievement.tantalum="Tantalium" achievement.tasteofblood.desc=is not part of any testing protocol. achievement.tasteofblood=The Taste of Blood +achievement.technetium.desc=Haha, charade you are +achievement.technetium=Big Man, Pig Man +achievement.watzBoom.desc=Drain your septic tank next time. +achievement.watzBoom=Disgusting +achievement.watz.desc=Fólkvangr fields possibly included. +achievement.watz=The Power of Element-126 +achievement.ZIRNOXBoom.desc=cope, seethe, mald +achievement.ZIRNOXBoom=CIRNOX armor.blastProtection=Damage modifier of %s against explosions armor.cap=Hard damage cap of %s