diff --git a/resources/assets/tinker/lang/en_US.lang b/resources/assets/tinker/lang/en_US.lang index 7a71ef61..2fbfdb43 100644 --- a/resources/assets/tinker/lang/en_US.lang +++ b/resources/assets/tinker/lang/en_US.lang @@ -568,8 +568,16 @@ achievement.tconstruct.beginner=Learning to Tinker achievement.tconstruct.pattern=Stencil Worker achievement.tconstruct.tinkerer=Tinkerer achievement.tconstruct.proTinkerer=Pro Tinkerer +achievement.tconstruct.smelteryMaker=Smeltery Creator +achievement.tconstruct.preparedFight=Prepared to Fight +achievement.tconstruct.enemySlayer=Enemy Slayer +achievement.tconstruct.convenientDuo=Convenient Duo(NYI) achievement.tconstruct.beginner.desc=Open the "Materials and You" manual achievement.tconstruct.pattern.desc=Craft your first blank pattern achievement.tconstruct.tinkerer.desc=Create your first tool achievement.tconstruct.proTinkerer.desc=Craft your first tier 2 tool +achievement.tconstruct.smelteryMaker.desc=Craft a smeltery component +achievement.tconstruct.preparedFight.desc=Create your first weapon +achievement.tconstruct.enemySlayer.desc=Slay an enemy +achievement.tconstruct.convenientDuo=Kill an enemy with a frying pan, and then cook their meat in it diff --git a/resources/assets/tinker/textures/items/achievementIcons/enemySlayer.png b/resources/assets/tinker/textures/items/achievementIcons/enemySlayer.png new file mode 100644 index 00000000..ed167221 Binary files /dev/null and b/resources/assets/tinker/textures/items/achievementIcons/enemySlayer.png differ diff --git a/resources/assets/tinker/textures/items/achievementIcons/preparedFight.png b/resources/assets/tinker/textures/items/achievementIcons/preparedFight.png new file mode 100644 index 00000000..56bc99c9 Binary files /dev/null and b/resources/assets/tinker/textures/items/achievementIcons/preparedFight.png differ diff --git a/src/tconstruct/common/TContent.java b/src/tconstruct/common/TContent.java index 311bf597..d44de802 100644 --- a/src/tconstruct/common/TContent.java +++ b/src/tconstruct/common/TContent.java @@ -2412,6 +2412,9 @@ public class TContent implements IFuelHandler achievements.put("tconstruct.beginner", new Achievement(2001, "tconstruct.beginner", 0, 0, manualBook, null).setIndependent().registerAchievement()); achievements.put("tconstruct.pattern", new Achievement(2002, "tconstruct.pattern", 2, 1, blankPattern, achievements.get("tconstruct.beginner")).registerAchievement()); achievements.put("tconstruct.tinkerer", new Achievement(2003, "tconstruct.tinkerer", 2, 2, new ItemStack(titleIcon, 1, 4096), achievements.get("tconstruct.pattern")).registerAchievement()); - achievements.put("tconstruct.proTinkerer", new Achievement(2004, "tconstruct.proTinkerer", 4, 3, new ItemStack(titleIcon, 1, 4097), achievements.get("tconstruct.tinkerer")).setSpecial().registerAchievement()); + achievements.put("tconstruct.preparedFight", new Achievement(2004, "tconstruct.preparedFight", 1, 3, new ItemStack(titleIcon, 1, 4097), achievements.get("tconstruct.tinkerer")).registerAchievement()); + achievements.put("tconstruct.proTinkerer", new Achievement(2005, "tconstruct.proTinkerer", 4, 3, new ItemStack(titleIcon, 1, 4098), achievements.get("tconstruct.tinkerer")).setSpecial().registerAchievement()); + achievements.put("tconstruct.smelteryMaker", new Achievement(2006, "tconstruct.smelteryMaker", -2, -1, smeltery, achievements.get("tconstruct.beginner")).registerAchievement()); + achievements.put("tconstruct.enemySlayer", new Achievement(2007, "tconstruct.enemySlayer", 0, 5, new ItemStack(titleIcon, 1, 4099), achievements.get("tconstruct.preparedFight")).registerAchievement()); } } diff --git a/src/tconstruct/items/TitleIcon.java b/src/tconstruct/items/TitleIcon.java index 3962470b..a83218c8 100644 --- a/src/tconstruct/items/TitleIcon.java +++ b/src/tconstruct/items/TitleIcon.java @@ -27,7 +27,7 @@ public class TitleIcon extends Item int[] secondaryColor = { 0x1567BF, 0xFFEC6E }; String[] mobNames = { "TConstruct.EdibleSlime", "TConstruct.KingSlime" }; - String[] achievementIconNames = new String[] {"tinkerer", "proTinkerer"}; + String[] achievementIconNames = new String[] {"tinkerer", "preparedFight", "proTinkerer", "enemySlayer"}; Icon[] achievementIcons = new Icon[achievementIconNames.length]; public TitleIcon(int par1) diff --git a/src/tconstruct/util/TCraftingHandler.java b/src/tconstruct/util/TCraftingHandler.java index 34b1a116..a632d75a 100644 --- a/src/tconstruct/util/TCraftingHandler.java +++ b/src/tconstruct/util/TCraftingHandler.java @@ -42,6 +42,7 @@ public class TCraftingHandler implements ICraftingHandler tags.setBoolean("smelteryManual", true); AbilityHelper.spawnItemAtPlayer(player, new ItemStack(TContent.manualBook, 1, 2)); } + player.addStat(TAchievements.achievements.get("tconstruct.smelteryMaker"), 1); } } } diff --git a/src/tconstruct/util/TEventHandler.java b/src/tconstruct/util/TEventHandler.java index 0024e72e..2074937d 100644 --- a/src/tconstruct/util/TEventHandler.java +++ b/src/tconstruct/util/TEventHandler.java @@ -1,5 +1,7 @@ package tconstruct.util; +import tconstruct.achievements.TAchievements; + import java.util.Random; import net.minecraft.block.Block; @@ -402,7 +404,13 @@ public class TEventHandler @ForgeSubscribe public void onLivingDeath (LivingDeathEvent event) { - + Entity cause = event.source.getSourceOfDamage(); + if(cause != null && cause instanceof EntityPlayer){ + EntityPlayer murderer = (EntityPlayer)cause; + if(murderer.getHeldItem().getItem() instanceof Weapon){ + murderer.addStat(TAchievements.achievements.get("tconstruct.enemySlayer"), 1); + } + } } void addDrops (LivingDropsEvent event, ItemStack dropStack) diff --git a/src/tconstruct/util/TEventHandlerAchievement.java b/src/tconstruct/util/TEventHandlerAchievement.java index 4deacfd9..eb04a650 100644 --- a/src/tconstruct/util/TEventHandlerAchievement.java +++ b/src/tconstruct/util/TEventHandlerAchievement.java @@ -5,7 +5,7 @@ import net.minecraftforge.event.ForgeSubscribe; import tconstruct.achievements.TAchievements; import tconstruct.blocks.logic.ToolForgeLogic; import tconstruct.library.event.ToolCraftedEvent; -import tconstruct.library.tools.ToolCore; +import tconstruct.library.tools.*; public class TEventHandlerAchievement { @@ -14,6 +14,10 @@ public class TEventHandlerAchievement { if(event.player != null && !(event.player instanceof FakePlayer)){ event.player.addStat(TAchievements.achievements.get("tconstruct.tinkerer"), 1); + if(event.tool != null && event.tool.getItem() instanceof Weapon){ + event.player.addStat(TAchievements.achievements.get("tconstruct.preparedFight"), 1); + } + if(event.inventory != null && event.inventory instanceof ToolForgeLogic && event.tool.getItem() instanceof ToolCore && ((ToolCore)event.tool.getItem()).durabilityTypeExtra() != 0){ event.player.addStat(TAchievements.achievements.get("tconstruct.proTinkerer"), 1); }