From 50975ebb0fb2f523ba807887ea85153ac1e7bffe Mon Sep 17 00:00:00 2001 From: KeyLime17 Date: Wed, 30 Apr 2025 04:23:53 -0400 Subject: [PATCH] Initiating Suicide Protocol: > Fixed unit leveling being broken - future be ready for banner bearers to be modified > Added 12 Ingredients to create spices with - Morgul Caps from Mordor/Isengard traders - Fine Bone Dust from Gundabad/Half Troll traders - Blighted Roots from Dol Guldur/Angmar traders - Curing salts from Dwarven Merchants - Miners Lichen from Blue dwarf miners - underroot from Durins folk miners - Willowbark from every florist/shaman ever to exist - brambleberry from any butcher/hunter ever to exist - coldbreath leaf from any brewer or innkeeper ever to exist - Dried mallorn leaves from lothlorien merchants - niphredil seeds from wood elf smiths, dorwinion vintner elves, dorwinion merchants - seregon from rivendell merchants > Made textures for all 12 ingredients, and the 4 final spice products - Gave the spices new names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit > Orc traders will gladly buy your maggoty bread for very bad rates (bad for you) > Bladorthin and red dwarf smiths now know what repair and upgrade kits are > Crafting two of these kits together will make a field repair kit > added field repair kits, they take 10 seconds to apply, but repair 5% of your current armor durability > Orcs no longer should be nerfed by mevans more than they already are > added some achievements > Shinare why did the developer break up with their Enum? Because it just wasn’t their type. 😎 --- .../com/zivilon/cinder_loe/CinderLoE.java | 19 +- .../entity/trader/BladorthinSmith.java | 3 +- .../entity/trader/RedDwarfSmith.java | 4 +- .../cinder_loe/items/FieldRepairKit.java | 62 + .../cinder_loe/items/spiceIngredient.java | 85 ++ .../cinder_loe/mixins/MixinLOTREntityNPC.java | 6 +- .../cinder_loe/mixins/MixinLOTREntityOrc.java | 43 + .../mixins/MixinLOTREntityWarg.java | 16 +- .../overrides/MixinLOTRHiredNPCInfo.java | 2 +- .../MixinLOTRTradeEntriesOverrides.java | 1028 ++++++++++++++++- .../java/com/zivilon/cinder_loe/recipes.java | 18 + .../assets/cinder_loe/lang/en_US.lang | 26 +- .../lotr/textures/items/blighted_root.png | Bin 0 -> 588 bytes .../lotr/textures/items/brambleberry.png | Bin 0 -> 418 bytes .../lotr/textures/items/coldbreath_leaf.png | Bin 0 -> 419 bytes .../lotr/textures/items/curing_salts.png | Bin 0 -> 462 bytes .../lotr/textures/items/dried_mallorn.png | Bin 0 -> 412 bytes .../lotr/textures/items/dried_morgul_caps.png | Bin 0 -> 440 bytes .../lotr/textures/items/field_repair_kit.png | Bin 0 -> 5973 bytes .../lotr/textures/items/fine_bone_dust.png | Bin 0 -> 529 bytes .../lotr/textures/items/miners_lichen.png | Bin 0 -> 385 bytes .../lotr/textures/items/niphredil_seeds.png | Bin 0 -> 542 bytes .../assets/lotr/textures/items/repair_kit.png | Bin 5973 -> 858 bytes .../assets/lotr/textures/items/seregon.png | Bin 0 -> 442 bytes .../lotr/textures/items/spice_dwarven.png | Bin 4410 -> 579 bytes .../lotr/textures/items/spice_elven.png | Bin 4408 -> 594 bytes .../lotr/textures/items/spice_human.png | Bin 4639 -> 525 bytes .../lotr/textures/items/spice_orcish.png | Bin 4620 -> 527 bytes .../assets/lotr/textures/items/underroot.png | Bin 0 -> 731 bytes .../lotr/textures/items/upgrade_kit.png | Bin 858 -> 5973 bytes .../lotr/textures/items/willow_bark.png | Bin 0 -> 511 bytes src/main/resources/mixins.cinder_loe.json | 1 + 32 files changed, 1289 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/zivilon/cinder_loe/items/FieldRepairKit.java create mode 100644 src/main/java/com/zivilon/cinder_loe/items/spiceIngredient.java create mode 100644 src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREntityOrc.java create mode 100644 src/main/resources/assets/lotr/textures/items/blighted_root.png create mode 100644 src/main/resources/assets/lotr/textures/items/brambleberry.png create mode 100644 src/main/resources/assets/lotr/textures/items/coldbreath_leaf.png create mode 100644 src/main/resources/assets/lotr/textures/items/curing_salts.png create mode 100644 src/main/resources/assets/lotr/textures/items/dried_mallorn.png create mode 100644 src/main/resources/assets/lotr/textures/items/dried_morgul_caps.png create mode 100644 src/main/resources/assets/lotr/textures/items/field_repair_kit.png create mode 100644 src/main/resources/assets/lotr/textures/items/fine_bone_dust.png create mode 100644 src/main/resources/assets/lotr/textures/items/miners_lichen.png create mode 100644 src/main/resources/assets/lotr/textures/items/niphredil_seeds.png create mode 100644 src/main/resources/assets/lotr/textures/items/seregon.png create mode 100644 src/main/resources/assets/lotr/textures/items/underroot.png create mode 100644 src/main/resources/assets/lotr/textures/items/willow_bark.png diff --git a/src/main/java/com/zivilon/cinder_loe/CinderLoE.java b/src/main/java/com/zivilon/cinder_loe/CinderLoE.java index 3652b2d..7a072c4 100644 --- a/src/main/java/com/zivilon/cinder_loe/CinderLoE.java +++ b/src/main/java/com/zivilon/cinder_loe/CinderLoE.java @@ -1,6 +1,8 @@ package com.zivilon.cinder_loe; import com.zivilon.cinder_loe.blocks.*; +import com.zivilon.cinder_loe.blocks.plants.cabbageCrop; +import com.zivilon.cinder_loe.blocks.plants.onionCrop; import com.zivilon.cinder_loe.character.CharacterEventListener; import com.zivilon.cinder_loe.character.CharacterRoleAPI; import com.zivilon.cinder_loe.client.render.*; @@ -30,10 +32,10 @@ import com.zivilon.cinder_loe.network.*; import com.zivilon.cinder_loe.potion.LoEPotions; import com.zivilon.cinder_loe.tileentity.*; import com.zivilon.cinder_loe.util.Utilities; -import com.zivilon.cinder_loe.world.biome.CinderBiome; import com.zivilon.cinder_loe.world.event.*; import com.zivilon.cindercore.CinderCore; +import net.minecraft.item.ItemSeedFood; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -182,6 +184,7 @@ public class CinderLoE { public static Item spiceHuman; public static Item spiceOrcish; public static Item spiceDwarven; + public static Item spiceIngredient; // Event/special @@ -206,6 +209,7 @@ public class CinderLoE { // Misc public static Item forgingKit; + public static Item fieldRepairKit; public static Item cinderFurItem; // Common tools/weapons @@ -555,13 +559,14 @@ public class CinderLoE { e.printStackTrace(); } // Food - // onion = new ItemSeedFood(3, 0.3f, CinderLoE.onionCrop, Blocks.farmland).setUnlocalizedName("lotr:onion").setTextureName("lotr:onion"); + //cabbage = new ItemSeedFood(3, 0.3f, CinderLoE.cabbageCrop, Blocks.farmland).setUnlocalizedName("lotr:cabbage").setTextureName("lotr:cabbage");; spice = new CinderItemFood(1, 0.0f, false).setdamageAmount(2).setPotionEffect(Potion.moveSpeed.id, 5,0,100).setUnlocalizedName("lotr:spice").setTextureName("lotr:spice"); spicedHam = new CinderItemFood(9, 0.6f, true).setdamageAmount(2).setPotionEffect(Potion.moveSpeed.id, 15, 0, 100).setUnlocalizedName("lotr:spicedHam").setTextureName("lotr:spicedHam"); // spice = new LOTRItemFood(1, 0.0f, false).setPotionEffect(Potion.moveSpeed.id, 10,0,100).setUnlocalizedName("lotr:spice"); pelmen = new LOTRItemFood(4, 5.0f, true).setUnlocalizedName("lotr:pelmen").setTextureName("lotr:pelmen"); - onion = new LOTRItemFood(3, 0.3f, false).setUnlocalizedName("lotr:onion").setTextureName("lotr:onion"); + onion = new ItemSeedFood(2, 0.3f, onionCrop, Blocks.farmland).setUnlocalizedName("lotr:onion").setTextureName("lotr:onion"); + cabbage = new LOTRItemFood(4, 0.5f, false).setUnlocalizedName("lotr:cabbage").setTextureName("lotr:cabbage"); lightStew = new LOTRItemStew(6, 0.7f, false).setPotionEffect(Potion.damageBoost.id, 60, 0, 100).setUnlocalizedName("lotr:lightStew").setTextureName("lotr:lightStew"); chocolatebar = new LOTRItemFood(4,0.3f, false).setUnlocalizedName("lotr:chocolatebar").setTextureName("lotr:chocolatebar"); @@ -577,6 +582,8 @@ public class CinderLoE { spiceHuman = new Item().setUnlocalizedName("lotr:spice_human").setTextureName("lotr:spice_human"); spiceOrcish = new Item().setUnlocalizedName("lotr:spice_orcish").setTextureName("lotr:spice_orcish"); spiceDwarven = new Item().setUnlocalizedName("lotr:spice_dwarven").setTextureName("lotr:spice_dwarven"); + spiceIngredient = (new spiceIngredient()); + mugElfBrew = (new LoEItemMug(0.0F)).setDrinkStats(20, 1.0F).addPotionEffect(Potion.moveSpeed.id, 60, 1).toxic().setUnlocalizedName("lotr:mugElfBrew"); mugHumanBrew = (new LoEItemMug(0.0F)).setDrinkStats(20, 1.0F).addPotionEffect(Potion.regeneration.id, 60, 1).toxic().setUnlocalizedName("lotr:mugHumanBrew"); mugOrcBrew = (new LoEItemMug(0.0F)).setDrinkStats(20, 1.0F).addPotionEffect(Potion.damageBoost.id, 60, 1).toxic().setUnlocalizedName("lotr:mugOrcBrew"); @@ -661,6 +668,7 @@ public class CinderLoE { ItemRegistration.register(spiceHuman, "spiceHuman",6919); ItemRegistration.register(spiceOrcish, "spiceOrcish",6920); ItemRegistration.register(spiceDwarven, "spiceDwarven",6921); + ItemRegistration.register(spiceIngredient, "spiceIngredient",6922); ItemRegistration.register(spawnEgg, "spawnEgg", 6003); @@ -702,9 +710,11 @@ public class CinderLoE { bootsJade = (new LOTRItemArmor(MATERIAL_JADE, 3)).setUnlocalizedName("lotr:bootsJade").setTextureName("lotr:bootsJade").setCreativeTab(null); forgingKit = (new ForgingKit()); + fieldRepairKit = new FieldRepairKit().setUnlocalizedName("lotr:field_repair_kit").setTextureName("lotr:field_repair_kit"); ItemRegistration.register(frostblade, "frostblade", 6200); ItemRegistration.register(forgingKit,"forgingKit",6001); + ItemRegistration.register(fieldRepairKit,"fieldRepairKit",6002); ItemRegistration.register(whip, "whip", 6110); ItemRegistration.register(daggervoid, "daggerVoid", 6201); ItemRegistration.register(spearsolidgold, "spearsolidgold", 6202); @@ -1160,8 +1170,7 @@ public class CinderLoE { @SideOnly(Side.SERVER) public void onWorldLoad(WorldEvent.Load event) { // == Crop Blocks == - CinderCore.registerItemFallback(Block.getIdFromBlock(onionCrop), Block.getIdFromBlock(LOTRMod.turnipCrop), "cinder_loe", "1.2.1"); - CinderCore.registerItemFallback(Block.getIdFromBlock(cabbageCrop), Block.getIdFromBlock(LOTRMod.lettuceCrop), "cinder_loe", "1.2.1"); + // == Food Items == CinderCore.registerItemFallback(Item.getIdFromItem(onion), Item.getIdFromItem(LOTRMod.turnip), "cinder_loe", "1.2.1"); CinderCore.registerItemFallback(Item.getIdFromItem(cabbage), Item.getIdFromItem(LOTRMod.lettuce), "cinder_loe", "1.2.1"); diff --git a/src/main/java/com/zivilon/cinder_loe/entity/trader/BladorthinSmith.java b/src/main/java/com/zivilon/cinder_loe/entity/trader/BladorthinSmith.java index 1d01f60..293c420 100644 --- a/src/main/java/com/zivilon/cinder_loe/entity/trader/BladorthinSmith.java +++ b/src/main/java/com/zivilon/cinder_loe/entity/trader/BladorthinSmith.java @@ -64,7 +64,8 @@ public class BladorthinSmith extends LOTREntityDorwinionElf implements LOTRTrade new LOTRTradeEntry(new ItemStack(LOTRMod.legsDorwinionElf), 22), new LOTRTradeEntry(new ItemStack(LOTRMod.bootsDorwinionElf), 16), new LOTRTradeEntry(new ItemStack(LOTRMod.dorwinionElfBow), 15), - new LOTRTradeEntry(new ItemStack(Items.arrow, 4), 3) + new LOTRTradeEntry(new ItemStack(Items.arrow, 4), 3), + new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 1), 200), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200) } ); diff --git a/src/main/java/com/zivilon/cinder_loe/entity/trader/RedDwarfSmith.java b/src/main/java/com/zivilon/cinder_loe/entity/trader/RedDwarfSmith.java index 074ea5d..bb87cc3 100644 --- a/src/main/java/com/zivilon/cinder_loe/entity/trader/RedDwarfSmith.java +++ b/src/main/java/com/zivilon/cinder_loe/entity/trader/RedDwarfSmith.java @@ -76,7 +76,9 @@ public class RedDwarfSmith extends LOTREntityDwarf implements LOTRTradeable.Smit new LOTRTradeEntry(new ItemStack(CinderLoE.legsRedDwarf), 30), new LOTRTradeEntry(new ItemStack(CinderLoE.bootsRedDwarf), 22), new LOTRTradeEntry(new ItemStack(CinderLoE.boarArmorRedDwarf), 25), - new LOTRTradeEntry(new ItemStack(CinderLoE.barsRedDwarf, 8), 20) + new LOTRTradeEntry(new ItemStack(CinderLoE.barsRedDwarf, 8), 20), + new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 1), 200), + new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200) } ); diff --git a/src/main/java/com/zivilon/cinder_loe/items/FieldRepairKit.java b/src/main/java/com/zivilon/cinder_loe/items/FieldRepairKit.java new file mode 100644 index 0000000..2fecabe --- /dev/null +++ b/src/main/java/com/zivilon/cinder_loe/items/FieldRepairKit.java @@ -0,0 +1,62 @@ +package com.zivilon.cinder_loe.items; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class FieldRepairKit extends ItemFood { + + private int damageAmount; + public FieldRepairKit() { + super(0, 0.0F, false); // No hunger, no saturation + this.setAlwaysEdible(); // Allow eating even at full hunger + } + + @Override + public int getItemStackLimit() { + return 1; + } + + @Override + public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) { + if (!world.isRemote) { + world.playSoundAtEntity(player, "random.anvil_break", 1.0F, 1.0F); + } + return super.onEaten(stack, world, player); + } + + @Override + protected void onFoodEaten(ItemStack stack, World world, EntityPlayer player) { + if (!world.isRemote) { + for (int i = 0; i < 4; i++) { + ItemStack armor = player.getCurrentArmor(i); + if (armor != null && armor.getItem() instanceof ItemArmor && armor.isItemDamaged()) { + int maxDamage = armor.getMaxDamage(); + int repairAmount = Math.max(1, (int)(maxDamage * 0.05)); + armor.setItemDamage(Math.max(0, armor.getItemDamage() - repairAmount)); + } + } + } + } + + @Override + public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { + if (!player.worldObj.isRemote && count % 20 == 0) { + player.worldObj.playSoundAtEntity(player, "random.anvil_use", 0.7F, 1.0F); + } + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + player.setItemInUse(stack, this.getMaxItemUseDuration(stack)); + return stack; + } + + @Override + public int getMaxItemUseDuration(ItemStack stack) { + return 200; + } +} \ No newline at end of file diff --git a/src/main/java/com/zivilon/cinder_loe/items/spiceIngredient.java b/src/main/java/com/zivilon/cinder_loe/items/spiceIngredient.java new file mode 100644 index 0000000..ecf8021 --- /dev/null +++ b/src/main/java/com/zivilon/cinder_loe/items/spiceIngredient.java @@ -0,0 +1,85 @@ +package com.zivilon.cinder_loe.items; + +import com.zivilon.cinder_loe.LoECreativeTabs; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import java.util.List; + +public class spiceIngredient extends Item { + public IIcon[] icons; + + public spiceIngredient() { + this.setHasSubtypes(true); + setMaxStackSize(64); + this.setMaxDamage(0); + setCreativeTab(LoECreativeTabs.tabMiscLoE); + } + + @Override + public IIcon getIconFromDamage(int damage) { + if (damage < 0 || damage >= icons.length) { + damage = 0; + } + return this.icons[damage]; + } + + @Override + public void registerIcons(IIconRegister iconRegister) { + this.icons = new IIcon[12]; + this.icons[0] = iconRegister.registerIcon("lotr:fine_bone_dust"); + this.icons[1] = iconRegister.registerIcon("lotr:dried_morgul_caps"); + this.icons[2] = iconRegister.registerIcon("lotr:blighted_root"); + this.icons[3] = iconRegister.registerIcon("lotr:coldbreath_leaf"); + this.icons[4] = iconRegister.registerIcon("lotr:brambleberry"); + this.icons[5] = iconRegister.registerIcon("lotr:willow_bark"); + this.icons[6] = iconRegister.registerIcon("lotr:seregon"); + this.icons[7] = iconRegister.registerIcon("lotr:niphredil_seeds"); + this.icons[8] = iconRegister.registerIcon("lotr:dried_mallorn"); + this.icons[9] = iconRegister.registerIcon("lotr:curing_salts"); + this.icons[10] = iconRegister.registerIcon("lotr:underroot"); + this.icons[11] = iconRegister.registerIcon("lotr:miners_lichen"); + } + + @Override + public String getUnlocalizedName(ItemStack item) { + switch(item.getItemDamage()) { + case 0: + return "item.fine_bone_dust"; + case 1: + return "item.dried_morgul_caps"; + case 2: + return "item.blighted_root"; + case 3: + return "item.coldbreath_leaf"; + case 4: + return "item.brambleberry"; + case 5: + return "item.willow_bark"; + case 6: + return "item.seregon"; + case 7: + return "item.niphredil_seeds"; + case 8: + return "item.dried_mallorn"; + case 9: + return "item.curing_salts"; + case 10: + return "item.underroot"; + case 11: + return "item.miners_lichen"; + default: + return "item.fine_bone_dust"; + } + } + + @Override + public void getSubItems(Item item, CreativeTabs tab, List list) { + for (int i = 0; i < icons.length; i++) { + list.add(new ItemStack(item, 1, i)); + } + } +} diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREntityNPC.java b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREntityNPC.java index 88f9530..4736405 100644 --- a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREntityNPC.java +++ b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREntityNPC.java @@ -60,9 +60,7 @@ public abstract class MixinLOTREntityNPC extends EntityCreature implements ILoot if (success) { List drops = DropTable.generate_drops((LOTREntityNPC)(Object)this, new DropContext[]{DropContext.PICKPOCKET}, 0); ItemStack item = drops.get(DropTable.random.nextInt(drops.size())); - if ((LOTREntityNPC)(Object)this instanceof LOTREntityOlogHai) { - } if (entityplayer.inventory.addItemStackToInventory(item)) { last_pickpocket = (int)(System.currentTimeMillis() / 1000L); } else { @@ -70,7 +68,9 @@ public abstract class MixinLOTREntityNPC extends EntityCreature implements ILoot } else { last_pickpocket = (int)(System.currentTimeMillis() / 1000L); ((LOTREntityNPC)(Object)this).setRevengeTarget(entityplayer); - LOTRLevelData.getData(entityplayer).addAchievement(CinderAchievement.pickOlog); + if ((LOTREntityNPC)(Object)this instanceof LOTREntityOlogHai) { + LOTRLevelData.getData(entityplayer).addAchievement(CinderAchievement.pickOlog); + } } return true; } diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREntityOrc.java b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREntityOrc.java new file mode 100644 index 0000000..3e5e790 --- /dev/null +++ b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREntityOrc.java @@ -0,0 +1,43 @@ +package com.zivilon.cinder_loe.mixins; + +import com.zivilon.cinder_loe.CinderLoE; +import lotr.common.LOTRMod; +import lotr.common.enchant.LOTREnchantment; +import lotr.common.enchant.LOTREnchantmentHelper; +import lotr.common.entity.npc.LOTREntityNPC; +import lotr.common.entity.npc.LOTREntityOrc; +import lotr.common.entity.npc.LOTREntityWarg; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + + +@Mixin(LOTREntityOrc.class) +public abstract class MixinLOTREntityOrc extends LOTREntityNPC { + public boolean isWeakOrc = true; + + public MixinLOTREntityOrc(World worldIn) { + super(worldIn); + } + + /** + * @author KeyLime17 + * @reason Mevans + */ + @Overwrite(remap = false) + public int getTotalArmorValue() { + if (this.isWeakOrc) { + return MathHelper.floor_double((double)((double)super.getTotalArmorValue() * 1)); + } + return super.getTotalArmorValue(); + } +} diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREntityWarg.java b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREntityWarg.java index f5e23cb..8a65c72 100644 --- a/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREntityWarg.java +++ b/src/main/java/com/zivilon/cinder_loe/mixins/MixinLOTREntityWarg.java @@ -2,10 +2,13 @@ package com.zivilon.cinder_loe.mixins; import com.zivilon.cinder_loe.CinderLoE; import lotr.common.LOTRMod; +import lotr.common.entity.npc.LOTREntityNPCRideable; import lotr.common.entity.npc.LOTREntityWarg; import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; @@ -20,9 +23,11 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import lotr.common.item.LOTRItemArmor; +import java.util.Random; + @Mixin(LOTREntityWarg.class) -public abstract class MixinLOTREntityWarg extends Entity { +public abstract class MixinLOTREntityWarg extends LOTREntityNPCRideable { public MixinLOTREntityWarg(World worldIn) { super(worldIn); @@ -36,6 +41,15 @@ public abstract class MixinLOTREntityWarg extends Entity { @Shadow public abstract LOTREntityWarg.WargType getWargType(); + @Overwrite(remap = false) + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue((double) MathHelper.getRandomIntegerInRange((Random)this.rand, (int)20, (int)40)); + this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(32.0); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.22); + this.getEntityAttribute(npcAttackDamage).setBaseValue((double)MathHelper.getRandomIntegerInRange((Random)this.rand, (int)3, (int)5)); + } + @Overwrite(remap = false) protected void func_70628_a(boolean flag, int i) { Item furItem = null; diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTRHiredNPCInfo.java b/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTRHiredNPCInfo.java index 0935a31..2a1b796 100644 --- a/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTRHiredNPCInfo.java +++ b/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTRHiredNPCInfo.java @@ -94,7 +94,7 @@ public class MixinLOTRHiredNPCInfo { public void increaseDamageGain(EntityLivingBase gainingEntity) { float damageBoost = 0.25f; - IAttributeInstance attribute = gainingEntity.getEntityAttribute(LOTREntityNPC.npcAttackDamage); + IAttributeInstance attribute = gainingEntity.getEntityAttribute(LOTREntityNPC.npcAttackDamageExtra); attribute.setBaseValue(attribute.getBaseValue() + (double)damageBoost); } diff --git a/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTRTradeEntriesOverrides.java b/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTRTradeEntriesOverrides.java index 0cf1491..87a41c9 100644 --- a/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTRTradeEntriesOverrides.java +++ b/src/main/java/com/zivilon/cinder_loe/mixins/overrides/MixinLOTRTradeEntriesOverrides.java @@ -134,6 +134,32 @@ public abstract class MixinLOTRTradeEntriesOverrides { @Inject(method = "setupTrades1", at = @At("RETURN"), remap = false) private static void newTrades(CallbackInfo ci) { + DWARF_MINER_BUY = + new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.coal, 2), 4), + new LOTRTradeEntry(new ItemStack(Blocks.iron_ore), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.oreCopper), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.oreTin), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.oreSilver), 12), + new LOTRTradeEntry(new ItemStack(Blocks.gold_ore), 22), + new LOTRTradeEntry(new ItemStack(Items.glowstone_dust, 4), 3), + new LOTRTradeEntry(new ItemStack(Blocks.cobblestone, 8), 1), + new LOTRTradeEntry(new ItemStack(Blocks.stone, 8), 1), + new LOTRTradeEntry(new ItemStack(Items.lava_bucket), 20), + new LOTRTradeEntry(new ItemStack(Items.flint), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.sulfur), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.saltpeter), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.diamond), 40), + new LOTRTradeEntry(new ItemStack(LOTRMod.emerald), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.sapphire), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.ruby), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.opal), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.amber), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.amethyst), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.topaz), 12), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 10), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)DWARF_MINER_BUY).setVessels(LOTRFoods.DWARF_DRINK); + DWARF_MINER_SELL = new LOTRTradeEntries(TradeType.SELL, new LOTRTradeEntry(new ItemStack(Items.cooked_beef), 3), new LOTRTradeEntry(new ItemStack(Items.cooked_porkchop), 3), @@ -181,8 +207,31 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(LOTRMod.wargArmorMordor), 25), new LOTRTradeEntry(new ItemStack(CinderLoE.cinderFurItem, 1, 1), 2), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 1), 200), - new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200)); + new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 1), 6666)); ((MixinLOTRTradeEntriesOverrides)(Object)MORDOR_TRADER_BUY).setVessels(LOTRFoods.ORC_DRINK); + + MORDOR_TRADER_SELL = new LOTRTradeEntries(TradeType.SELL, + new LOTRTradeEntry(new ItemStack(LOTRMod.orcSteel), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.blackUrukSteel), 3), + new LOTRTradeEntry(new ItemStack(Items.iron_ingot), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.bronze), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.nauriteGem), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.diamond), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.ruby), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.amber), 10), + new LOTRTradeEntry(new ItemStack(Items.string, 3), 1), + new LOTRTradeEntry(new ItemStack(Items.feather), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.waterskin), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.morgulShroom), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.elfBone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.dwarfBone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.hobbitBone), 1), + new LOTRTradeEntry(new ItemStack(Items.bone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.manFlesh), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.maggotyBread, 2), 2)); + GONDOR_BLACKSMITH_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.gondorianTable), 100), new LOTRTradeEntry(new ItemStack(LOTRMod.swordGondor), 15), @@ -202,6 +251,37 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 1), 200), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200)); ((MixinLOTRTradeEntriesOverrides)(Object)GONDOR_BLACKSMITH_BUY).setVessels(LOTRFoods.GONDOR_DRINK); + + GALADHRIM_TRADER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.swordElven), 21), + new LOTRTradeEntry(new ItemStack(LOTRMod.daggerElven), 13), + new LOTRTradeEntry(new ItemStack(LOTRMod.spearElven), 21), + new LOTRTradeEntry(new ItemStack(LOTRMod.polearmElven), 21), + new LOTRTradeEntry(new ItemStack(LOTRMod.longspearElven), 21), + new LOTRTradeEntry(new ItemStack(LOTRMod.axeElven), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.elvenBow), 21), + new LOTRTradeEntry(new ItemStack(LOTRMod.swordMallorn), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.mallornBow), 17), + new LOTRTradeEntry(new ItemStack(LOTRMod.helmetElven), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.bodyElven), 36), + new LOTRTradeEntry(new ItemStack(LOTRMod.legsElven), 30), + new LOTRTradeEntry(new ItemStack(LOTRMod.bootsElven), 22), + new LOTRTradeEntry(new ItemStack(LOTRMod.planks, 4, 1), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.elanor), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.niphredil), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mallornTorchSilver, 4), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mallornTorchBlue, 4), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mallornTorchGold, 4), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mallornTorchGreen, 4), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.lembas), 16), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMiruvor, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(Items.arrow, 4), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.hithlain), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.chestMallorn), 20), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 8), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)GALADHRIM_TRADER_BUY).setVessels(LOTRFoods.ELF_DRINK); + + URUK_HAI_TRADER_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.urukTable), 100), new LOTRTradeEntry(new ItemStack(LOTRMod.helmetUruk), 24), @@ -231,8 +311,29 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(CinderLoE.cinderFurItem, 1, 0), 2), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 1), 200), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200), - new LOTRTradeEntry(new ItemStack(LOTRMod.wargArmorUruk), 25)); + new LOTRTradeEntry(new ItemStack(LOTRMod.wargArmorUruk), 25), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 1), 6666)); ((MixinLOTRTradeEntriesOverrides)(Object)URUK_HAI_TRADER_BUY).setVessels(LOTRFoods.ORC_DRINK); + + URUK_HAI_TRADER_SELL = new LOTRTradeEntries(TradeType.SELL, + new LOTRTradeEntry(new ItemStack(LOTRMod.urukSteel), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.orcSteel), 3), + new LOTRTradeEntry(new ItemStack(Items.iron_ingot), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.bronze), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.diamond), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.ruby), 12), + new LOTRTradeEntry(new ItemStack(Items.coal, 2, Short.MAX_VALUE), 1), + new LOTRTradeEntry(new ItemStack(Items.leather), 2), + new LOTRTradeEntry(new ItemStack(Items.string, 3), 1), + new LOTRTradeEntry(new ItemStack(Items.feather), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.elfBone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.dwarfBone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.hobbitBone), 1), + new LOTRTradeEntry(new ItemStack(Items.bone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.pipeweed, 3), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.manFlesh), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.maggotyBread, 2), 2)); + ROHAN_BLACKSMITH_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.rohirricTable), 100), new LOTRTradeEntry(new ItemStack(LOTRMod.swordRohan), 15), @@ -258,6 +359,127 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(LOTRMod.horseArmorRohan), 25)); ((MixinLOTRTradeEntriesOverrides)(Object)ROHAN_BLACKSMITH_BUY).setVessels(LOTRFoods.ROHAN_DRINK); + DUNLENDING_BARTENDER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.dunlendingTable), 100), + new LOTRTradeEntry(new ItemStack(Items.cooked_beef), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_porkchop), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonCooked), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_chicken), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerCooked), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitCooked), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitStew), 10), + new LOTRTradeEntry(new ItemStack(Items.bread), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicMug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.waterskin), 2), + new LOTRTradeEntry(new ItemStack(Items.baked_potato, 2), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_fished), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.gammon), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.woodPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMead, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCider, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRum, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAppleJuice), 6), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)DUNLENDING_BARTENDER_BUY).setVessels(LOTRFoods.DUNLENDING_DRINK); + + ROHAN_MEADHOST_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.cooked_beef), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_porkchop), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonCooked), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_chicken), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerCooked), 6), + new LOTRTradeEntry(new ItemStack(Items.bread), 5), + new LOTRTradeEntry(new ItemStack(Items.apple, 2), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.woodPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicMug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.aleHorn), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.aleHornGold), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugWater), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMead, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMilk), 3), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)ROHAN_MEADHOST_BUY).setVessels(LOTRFoods.ROHAN_DRINK); + + BLUE_DWARF_MINER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.coal, 2), 4), + new LOTRTradeEntry(new ItemStack(Blocks.iron_ore), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.oreCopper), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.oreTin), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.oreSilver), 12), + new LOTRTradeEntry(new ItemStack(Blocks.gold_ore), 22), + new LOTRTradeEntry(new ItemStack(Items.glowstone_dust, 4), 3), + new LOTRTradeEntry(new ItemStack(Blocks.cobblestone, 8), 1), + new LOTRTradeEntry(new ItemStack(Items.lava_bucket), 20), + new LOTRTradeEntry(new ItemStack(Items.flint), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.sulfur), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.saltpeter), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.diamond), 40), + new LOTRTradeEntry(new ItemStack(LOTRMod.emerald), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.sapphire), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.ruby), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.opal), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.amber), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.amethyst), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.topaz), 12), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 11), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)BLUE_DWARF_MINER_BUY).setVessels(LOTRFoods.DWARF_DRINK); + + BLUE_DWARF_MINER_SELL = new LOTRTradeEntries(TradeType.SELL, + new LOTRTradeEntry(new ItemStack(Items.cooked_beef), 3), + new LOTRTradeEntry(new ItemStack(Items.cooked_porkchop), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonCooked), 3), + new LOTRTradeEntry(new ItemStack(Items.cooked_chicken), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.gammon), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerCooked), 3), + new LOTRTradeEntry(new ItemStack(Items.cooked_fished), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitCooked), 3), + new LOTRTradeEntry(new ItemStack(Items.bread), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, Short.MAX_VALUE), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMead, 1, Short.MAX_VALUE), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCider, 1, Short.MAX_VALUE), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPerry, 1, Short.MAX_VALUE), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugDwarvenAle, 1, Short.MAX_VALUE), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.pickaxeBlueDwarven), 10)); + + BLUE_DWARF_MERCHANT_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.dwarvenForge), 40), + new LOTRTradeEntry(new ItemStack(LOTRMod.dwarvenRing), 16), + new LOTRTradeEntry(new ItemStack(LOTRMod.swordBlueDwarven), 16), + new LOTRTradeEntry(new ItemStack(LOTRMod.spearBlueDwarven), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.battleaxeBlueDwarven), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.hammerBlueDwarven), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.pikeBlueDwarven), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.daggerBlueDwarven), 13), + new LOTRTradeEntry(new ItemStack(LOTRMod.axeBlueDwarven), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.pickaxeBlueDwarven), 14), + new LOTRTradeEntry(new ItemStack(LOTRMod.shovelBlueDwarven), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mattockBlueDwarven), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.throwingAxeBlueDwarven), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.helmetBlueDwarven), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.bodyBlueDwarven), 36), + new LOTRTradeEntry(new ItemStack(LOTRMod.legsBlueDwarven), 30), + new LOTRTradeEntry(new ItemStack(LOTRMod.bootsBlueDwarven), 22), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugDwarvenAle, 1, 9999), 9), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugDwarvenTonic, 1, 9999), 14), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugDwarvenAle, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugDwarvenAle, 1, 3), 160), + new LOTRTradeEntry(new ItemStack(LOTRMod.dwarfHerb), 10), + new LOTRTradeEntry(new ItemStack(Items.glowstone_dust, 4), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.brick3, 1, 12), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.rock, 8, 3), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.emerald), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.ruby), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.amethyst), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.topaz), 12), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 9), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)BLUE_DWARF_MERCHANT_BUY).setVessels(LOTRFoods.DWARF_DRINK); + + BLUE_DWARF_MERCHANT_SELL = new LOTRTradeEntries(TradeType.SELL, new LOTRTradeEntry(new ItemStack(Items.iron_ingot), 3), new LOTRTradeEntry(new ItemStack(Items.coal, 2, Short.MAX_VALUE), 1), new LOTRTradeEntry(new ItemStack(Items.gold_ingot), 15), new LOTRTradeEntry(new ItemStack(LOTRMod.copper), 3), new LOTRTradeEntry(new ItemStack(LOTRMod.tin), 3), new LOTRTradeEntry(new ItemStack(LOTRMod.bronze), 3), new LOTRTradeEntry(new ItemStack(LOTRMod.diamond), 25), new LOTRTradeEntry(new ItemStack(LOTRMod.sapphire), 12), new LOTRTradeEntry(new ItemStack(LOTRMod.opal), 10), new LOTRTradeEntry(new ItemStack(LOTRMod.pearl), 25), new LOTRTradeEntry(new ItemStack(Items.cooked_beef), 3), new LOTRTradeEntry(new ItemStack(Items.cooked_porkchop), 3), new LOTRTradeEntry(new ItemStack(LOTRMod.muttonCooked), 3), new LOTRTradeEntry(new ItemStack(Items.cooked_chicken), 3), new LOTRTradeEntry(new ItemStack(LOTRMod.gammon), 3), new LOTRTradeEntry(new ItemStack(LOTRMod.deerCooked), 3), new LOTRTradeEntry(new ItemStack(Items.cooked_fished), 3), new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitCooked), 3), new LOTRTradeEntry(new ItemStack(Items.bread), 2)); + ANGMAR_TRADER_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.angmarTable), 100), new LOTRTradeEntry(new ItemStack(LOTRMod.helmetAngmar), 20), @@ -286,7 +508,29 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(CinderLoE.cinderFurItem, 1, 0), 2), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 1), 200), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200), - new LOTRTradeEntry(new ItemStack(LOTRMod.wargArmorAngmar), 25)); + new LOTRTradeEntry(new ItemStack(LOTRMod.wargArmorAngmar), 25), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 2), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)ANGMAR_TRADER_BUY).setVessels(LOTRFoods.ORC_DRINK); + + ANGMAR_TRADER_SELL = new LOTRTradeEntries(TradeType.SELL, + new LOTRTradeEntry(new ItemStack(LOTRMod.orcSteel), 3), + new LOTRTradeEntry(new ItemStack(Items.iron_ingot), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.bronze), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.guldurilCrystal), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.emerald), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.ruby), 12), + new LOTRTradeEntry(new ItemStack(Items.string, 3), 1), + new LOTRTradeEntry(new ItemStack(Items.feather), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.waterskin), 2), + new LOTRTradeEntry(new ItemStack(Items.wheat, 2), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.elfBone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.dwarfBone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.hobbitBone), 1), + new LOTRTradeEntry(new ItemStack(Items.bone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.maggotyBread, 2), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.manFlesh), 3)); + DOL_GULDUR_TRADER_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.dolGuldurTable), 100), @@ -310,9 +554,75 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(LOTRMod.maggotyBread), 4), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 1), 200), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200), - new LOTRTradeEntry(new ItemStack(Items.string), 2)); - ((MixinLOTRTradeEntriesOverrides)(Object)ANGMAR_TRADER_BUY).setVessels(LOTRFoods.ORC_DRINK); + new LOTRTradeEntry(new ItemStack(Items.string), 2), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 2), 6666)); ((MixinLOTRTradeEntriesOverrides)(Object)DOL_GULDUR_TRADER_BUY).setVessels(LOTRFoods.ORC_DRINK); + + DOL_GULDUR_TRADER_SELL = new LOTRTradeEntries(TradeType.SELL, + new LOTRTradeEntry(new ItemStack(LOTRMod.orcSteel), 3), + new LOTRTradeEntry(new ItemStack(Items.iron_ingot), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.bronze), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.guldurilCrystal), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.emerald), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.ruby), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.amethyst), 8), + new LOTRTradeEntry(new ItemStack(Items.feather), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.waterskin), 2), + new LOTRTradeEntry(new ItemStack(Items.wheat, 2), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.elfBone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.dwarfBone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.hobbitBone), 1), + new LOTRTradeEntry(new ItemStack(Items.bone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.maggotyBread, 2), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.manFlesh), 3)); + + HALF_TROLL_SCAVENGER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.halfTrollTable), 100), + new LOTRTradeEntry(new ItemStack(Items.gold_ingot), 22), + new LOTRTradeEntry(new ItemStack(Items.gold_nugget), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.silver), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.silverNugget), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.bronze), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugTorogDraught, 1, 9999), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.scimitarNearHarad), 16), + new LOTRTradeEntry(new ItemStack(LOTRMod.spearNearHarad), 16), + new LOTRTradeEntry(new ItemStack(LOTRMod.swordHarad), 14), + new LOTRTradeEntry(new ItemStack(LOTRMod.spearHarad), 14), + new LOTRTradeEntry(new ItemStack(LOTRMod.helmetNearHarad), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.scimitarOrc), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.battleaxeOrc), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.helmetOrc), 14), + new LOTRTradeEntry(new ItemStack(LOTRMod.scimitarHalfTroll), 16), + new LOTRTradeEntry(new ItemStack(LOTRMod.maceHalfTroll), 16), + new LOTRTradeEntry(new ItemStack(LOTRMod.pikeHalfTroll), 16), + new LOTRTradeEntry(new ItemStack(LOTRMod.daggerHalfTroll), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.daggerHalfTrollPoisoned), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.hammerHalfTroll), 16), + new LOTRTradeEntry(new ItemStack(LOTRMod.swordGondor), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.hammerGondor), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.spearMoredain), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.battleaxeMoredain), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.daggerMoredain), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.clubMoredain), 14), + new LOTRTradeEntry(new ItemStack(LOTRMod.swordMoredain), 15), + new LOTRTradeEntry(new ItemStack(Items.arrow, 4), 3), + new LOTRTradeEntry(new ItemStack(Items.bone), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.orcBone), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.trollBone), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.manFlesh), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.diamond), 40), + new LOTRTradeEntry(new ItemStack(LOTRMod.emerald), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.sapphire), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.ruby), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.opal), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.amber), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.amethyst), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.topaz), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.pearl), 50), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 0), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)HALF_TROLL_SCAVENGER_BUY).setVessels(LOTRFoods.HALF_TROLL_DRINK); + GALADHRIM_SMITH_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.elvenTable), 100), new LOTRTradeEntry(new ItemStack(LOTRMod.swordElven), 18), @@ -355,6 +665,7 @@ public abstract class MixinLOTRTradeEntriesOverrides { ((MixinLOTRTradeEntriesOverrides)(Object)GALADHRIM_SMITH_BUY).setVessels(LOTRFoods.ELF_DRINK); ((MixinLOTRTradeEntriesOverrides)(Object)HIGH_ELF_SMITH_BUY).setVessels(LOTRFoods.ELF_DRINK); ((MixinLOTRTradeEntriesOverrides)(Object)WOOD_ELF_SMITH_BUY).setVessels(LOTRFoods.WOOD_ELF_DRINK); + WOOD_ELF_SMITH_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.woodElvenTable), 100), new LOTRTradeEntry(new ItemStack(LOTRMod.swordWoodElven), 18), @@ -373,7 +684,75 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(LOTRMod.mirkwoodBow), 15), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 1), 200), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200), - new LOTRTradeEntry(new ItemStack(Items.arrow, 4), 3)); + new LOTRTradeEntry(new ItemStack(Items.arrow, 4), 3), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 7), 6666)); + + MOREDAIN_HUNTSMAN_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.lionFur), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.gemsbokHide), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.gemsbokHorn), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhinoHorn), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.lionRaw), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.zebraRaw), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhinoRaw), 6), + new LOTRTradeEntry(new ItemStack(Items.rotten_flesh), 3), + new LOTRTradeEntry(new ItemStack(Items.feather), 3), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 4), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)MOREDAIN_HUNTSMAN_BUY).setVessels(LOTRFoods.MOREDAIN_DRINK); + + IRON_HILLS_MERCHANT_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.dwarvenForge), 40), + new LOTRTradeEntry(new ItemStack(LOTRMod.dwarvenRing), 16), + new LOTRTradeEntry(new ItemStack(LOTRMod.swordDwarven), 16), + new LOTRTradeEntry(new ItemStack(LOTRMod.spearDwarven), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.battleaxeDwarven), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.hammerDwarven), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.pikeDwarven), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.daggerDwarven), 13), + new LOTRTradeEntry(new ItemStack(LOTRMod.axeDwarven), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.pickaxeDwarven), 14), + new LOTRTradeEntry(new ItemStack(LOTRMod.shovelDwarven), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mattockDwarven), 18), + new LOTRTradeEntry(new ItemStack(LOTRMod.throwingAxeDwarven), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.helmetDwarven), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.bodyDwarven), 36), + new LOTRTradeEntry(new ItemStack(LOTRMod.legsDwarven), 30), + new LOTRTradeEntry(new ItemStack(LOTRMod.bootsDwarven), 22), + new LOTRTradeEntry(new ItemStack(LOTRMod.helmetDwarvenSilver), 50), + new LOTRTradeEntry(new ItemStack(LOTRMod.bodyDwarvenSilver), 60), + new LOTRTradeEntry(new ItemStack(LOTRMod.legsDwarvenSilver), 55), + new LOTRTradeEntry(new ItemStack(LOTRMod.bootsDwarvenSilver), 50), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugDwarvenAle, 1, 9999), 9), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugDwarvenTonic, 1, 9999), 14), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugDwarvenAle, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugDwarvenAle, 1, 3), 160), + new LOTRTradeEntry(new ItemStack(LOTRMod.dwarfHerb), 10), + new LOTRTradeEntry(new ItemStack(Items.glowstone_dust, 4), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.brick3, 1, 12), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.cram), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.dalishPastryItem), 16), + new LOTRTradeEntry(new ItemStack(Blocks.cobblestone, 8), 2), + new LOTRTradeEntry(new ItemStack(Blocks.stone, 8), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.amber), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.amethyst), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.topaz), 12), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 9), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)IRON_HILLS_MERCHANT_BUY).setVessels(LOTRFoods.DWARF_DRINK); + + TAUREDAIN_SHAMAN_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.daggerTauredain), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.daggerTauredainPoisoned), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.tauredainBlowgun), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.tauredainDart, 4), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.tauredainDartPoisoned, 4), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.bottlePoison), 10), + new LOTRTradeEntry(new ItemStack(Blocks.sapling, 1, 3), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.sapling6, 1, 0), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugChocolate), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugTauredainCocoa, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugTauredainCure), 20), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)TAUREDAIN_SHAMAN_BUY).setVessels(LOTRFoods.TAUREDAIN_DRINK); DWARF_SMITH_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.dwarvenTable), 100), @@ -406,6 +785,7 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 1), 200), new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200), new LOTRTradeEntry(new ItemStack(LOTRMod.dwarfBars, 8), 20)); + BLUE_DWARF_SMITH_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.blueDwarvenTable), 100), new LOTRTradeEntry(new ItemStack(LOTRMod.blacksmithHammer), 18), @@ -454,6 +834,204 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(LOTRMod.horseArmorDale), 25)); ((MixinLOTRTradeEntriesOverrides)(Object)DALE_BLACKSMITH_BUY).setVessels(LOTRFoods.DALE_DRINK); + DORWINION_VINTNER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.dorwinionTable), 100), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRedWine, 1, 0), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRedWine, 1, 1), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRedWine, 1, 2), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRedWine, 1, 3), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRedWine, 1, 4), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugWhiteWine, 1, 0), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugWhiteWine, 1, 1), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugWhiteWine, 1, 2), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugWhiteWine, 1, 3), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugWhiteWine, 1, 4), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRedGrapeJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugWhiteGrapeJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 2), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 7), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)DORWINION_VINTNER_BUY).setVessels(LOTRFoods.DORWINION_DRINK); + + DORWINION_MERCHANT_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.helmetDorwinion), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.bodyDorwinion), 35), + new LOTRTradeEntry(new ItemStack(LOTRMod.legsDorwinion), 30), + new LOTRTradeEntry(new ItemStack(LOTRMod.bootsDorwinion), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.grapeRed), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.grapeWhite), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.raisins), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRedWine, 1, 9999), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugWhiteWine, 1, 9999), 15), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugRedWine, 1, 2), 160), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugRedWine, 1, 3), 220), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugWhiteWine, 1, 2), 160), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugWhiteWine, 1, 3), 220), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRedGrapeJuice), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugWhiteGrapeJuice), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.banner, 1, LOTRItemBanner.BannerType.DORWINION.bannerID), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.brick5, 1, 2), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 0), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 1), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 2), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 3), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 4), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.doubleFlower, 1, 0), 12), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 7), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)DORWINION_MERCHANT_BUY).setVessels(LOTRFoods.DORWINION_DRINK); + + GONDOR_BARTENDER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.cooked_beef), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_porkchop), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonCooked), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_chicken), 6), + new LOTRTradeEntry(new ItemStack(Items.bread), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicMug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.aleHorn), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.aleHornGold), 8), + new LOTRTradeEntry(new ItemStack(Items.baked_potato, 2), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_fished), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugChocolate), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAppleJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugOrangeJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.gammon), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerCooked), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitCooked), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitStew), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.plate), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCider, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPerry, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMead, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRedWine, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugWhiteWine, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)GONDOR_BARTENDER_BUY).setVessels(LOTRFoods.GONDOR_DRINK); + + GONDOR_BREWER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAle, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAle, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMead, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugMead, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugMead, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCider, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCider, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCider, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPerry, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPerry, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPerry, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPlumKvass, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPlumKvass, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPlumKvass, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCherryLiqueur, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCherryLiqueur, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCherryLiqueur, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCarrotWine, 1, 9999), 12), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCarrotWine, 1, 2), 140), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCarrotWine, 1, 3), 180), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugLemonLiqueur, 1, 9999), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugLimeLiqueur, 1, 9999), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPomegranateWine, 1, 9999), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAppleJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugOrangeJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugChocolate), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugBlueberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugBlackberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRaspberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCranberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugElderberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPomegranateJuice), 10), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)GONDOR_BREWER_BUY).setVessels(LOTRFoods.GONDOR_DRINK); + + GONDOR_FLORIST_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 0), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 1), 8), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 2), 6), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 3), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 4), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 5), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 6), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 7), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 8), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.yellow_flower, 1, 8), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.bluebell, 1, 0), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.marigold, 1, 0), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.lavender, 1, 0), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.double_plant, 1, 0), 15), + new LOTRTradeEntry(new ItemStack((Block)Blocks.double_plant, 1, 1), 8), + new LOTRTradeEntry(new ItemStack((Block)Blocks.double_plant, 1, 4), 8), + new LOTRTradeEntry(new ItemStack((Block)Blocks.double_plant, 1, 5), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.doubleFlower, 1, 1), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 0), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 1), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 2), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 3), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 4), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.doubleFlower, 1, 0), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.haradFlower, 1, 0), 30), + new LOTRTradeEntry(new ItemStack(LOTRMod.haradFlower, 1, 1), 30), + new LOTRTradeEntry(new ItemStack(LOTRMod.haradFlower, 1, 2), 30), + new LOTRTradeEntry(new ItemStack(LOTRMod.haradFlower, 1, 3), 30), + new LOTRTradeEntry(new ItemStack(LOTRMod.doubleFlower, 1, 2), 45), + new LOTRTradeEntry(new ItemStack(LOTRMod.doubleFlower, 1, 3), 45), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 5), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)GONDOR_FLORIST_BUY).setVessels(LOTRFoods.GONDOR_DRINK); + + GONDOR_BUTCHER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.beef), 5), + new LOTRTradeEntry(new ItemStack(Items.porkchop), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.gammon), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonRaw), 5), + new LOTRTradeEntry(new ItemStack(Items.chicken), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitRaw), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerRaw), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.camelRaw), 8), + new LOTRTradeEntry(new ItemStack(Items.leather), 3), + new LOTRTradeEntry(new ItemStack(Items.feather), 3), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 4), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)GONDOR_BUTCHER_BUY).setVessels(LOTRFoods.GONDOR_DRINK); + + ROHAN_BREWER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAle, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAle, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMead, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugMead, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugMead, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCider, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCider, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCider, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPerry, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPerry, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPerry, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPlumKvass, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPlumKvass, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPlumKvass, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAppleJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugOrangeJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugBlueberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugBlackberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRaspberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCranberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugElderberryJuice), 5), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)ROHAN_BREWER_BUY).setVessels(LOTRFoods.ROHAN_DRINK); + + ROHAN_BUTCHER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.beef), 5), + new LOTRTradeEntry(new ItemStack(Items.porkchop), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.gammon), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonRaw), 5), + new LOTRTradeEntry(new ItemStack(Items.chicken), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitRaw), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerRaw), 4), + new LOTRTradeEntry(new ItemStack(Items.leather), 3), + new LOTRTradeEntry(new ItemStack(Items.feather), 3), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 4), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)ROHAN_BUTCHER_BUY).setVessels(LOTRFoods.ROHAN_DRINK);; DUNEDAIN_BLACKSMITH_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.rangerTable), 100), @@ -506,6 +1084,85 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(LOTRMod.horseArmorRhunGold), 25)); ((MixinLOTRTradeEntriesOverrides)(Object)RHUN_BLACKSMITH_BUY).setVessels(LOTRFoods.RHUN_DRINK); + RHUN_BUTCHER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.beef), 5), + new LOTRTradeEntry(new ItemStack(Items.porkchop), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.gammon), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonRaw), 5), + new LOTRTradeEntry(new ItemStack(Items.chicken), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitRaw), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerRaw), 4), + new LOTRTradeEntry(new ItemStack(Items.leather), 3), + new LOTRTradeEntry(new ItemStack(Items.feather), 3), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 4), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)RHUN_BUTCHER_BUY).setVessels(LOTRFoods.RHUN_DRINK); + + RHUN_BREWER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAle, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAle, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMead, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugMead, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugMead, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCider, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCider, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCider, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAraq, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAraq, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAraq, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugSourMilk, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugSourMilk, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugSourMilk, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPlumKvass, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPlumKvass, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPlumKvass, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugVodka, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugVodka, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugVodka, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRedWine, 1, 9999), 15), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugRedWine, 1, 2), 160), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugRedWine, 1, 3), 200), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugWhiteWine, 1, 9999), 15), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugWhiteWine, 1, 2), 160), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugWhiteWine, 1, 3), 200), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPomegranateWine, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPomegranateWine, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPomegranateWine, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAppleJuice), 6), new LOTRTradeEntry(new ItemStack(LOTRMod.mugBlueberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugBlackberryJuice), 5), new LOTRTradeEntry(new ItemStack(LOTRMod.mugRaspberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCranberryJuice), 5), new LOTRTradeEntry(new ItemStack(LOTRMod.mugElderberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRedGrapeJuice), 8), new LOTRTradeEntry(new ItemStack(LOTRMod.mugWhiteGrapeJuice), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPomegranateJuice), 5), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)RHUN_BREWER_BUY).setVessels(LOTRFoods.RHUN_DRINK); + + RHUN_BARTENDER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.cooked_beef), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_porkchop), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonCooked), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_chicken), 6), + new LOTRTradeEntry(new ItemStack(Items.bread), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.oliveBread), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicMug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.gobletCopper), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.gobletWood), 2), + new LOTRTradeEntry(new ItemStack(Items.baked_potato, 2), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_fished), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPomegranateJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerCooked), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitCooked), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.woodPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRedWine, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugWhiteWine, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPomegranateWine, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAraq, 1, 9999), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugSourMilk, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)RHUN_BARTENDER_BUY).setVessels(LOTRFoods.RHUN_DRINK); + RIVENDELL_SMITH_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.rivendellTable), 100), @@ -527,6 +1184,26 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200), new LOTRTradeEntry(new ItemStack(Items.arrow, 4), 3)); ((MixinLOTRTradeEntriesOverrides)(Object)RIVENDELL_SMITH_BUY).setVessels(LOTRFoods.ELF_DRINK); + + RIVENDELL_TRADER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.swordRivendell), 21), + new LOTRTradeEntry(new ItemStack(LOTRMod.daggerRivendell), 13), + new LOTRTradeEntry(new ItemStack(LOTRMod.spearRivendell), 21), + new LOTRTradeEntry(new ItemStack(LOTRMod.polearmRivendell), 21), + new LOTRTradeEntry(new ItemStack(LOTRMod.longspearRivendell), 21), + new LOTRTradeEntry(new ItemStack(LOTRMod.rivendellBow), 21), + new LOTRTradeEntry(new ItemStack(LOTRMod.helmetRivendell), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.bodyRivendell), 36), + new LOTRTradeEntry(new ItemStack(LOTRMod.legsRivendell), 30), + new LOTRTradeEntry(new ItemStack(LOTRMod.bootsRivendell), 22), + new LOTRTradeEntry(new ItemStack(LOTRMod.planks, 4, 9), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.highElvenTorch, 4), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.lembas), 16), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMiruvor, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(Items.arrow, 4), 3), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 6), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)RIVENDELL_TRADER_BUY).setVessels(LOTRFoods.ELF_DRINK); + GUNDABAD_TRADER_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.gundabadTable), 100), new LOTRTradeEntry(new ItemStack(LOTRMod.helmetBronze), 20), @@ -559,8 +1236,33 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200), new LOTRTradeEntry(new ItemStack(CinderLoE.cinderFurItem, 1, 1), 2), new LOTRTradeEntry(new ItemStack(CinderLoE.cinderFurItem, 1, 0), 2), - new LOTRTradeEntry(new ItemStack(LOTRMod.bootsFur), 12)); + new LOTRTradeEntry(new ItemStack(LOTRMod.bootsFur), 12), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 0), 6666)); ((MixinLOTRTradeEntriesOverrides)(Object)GUNDABAD_TRADER_BUY).setVessels(LOTRFoods.ORC_DRINK); + + GUNDABAD_TRADER_SELL = new LOTRTradeEntries(TradeType.SELL, + new LOTRTradeEntry(new ItemStack(LOTRMod.orcSteel), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.urukSteel), 3), + new LOTRTradeEntry(new ItemStack(Items.iron_ingot), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.bronze), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.diamond), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.emerald), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.sapphire), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.ruby), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.opal), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.pearl), 25), + new LOTRTradeEntry(new ItemStack(Items.string, 3), 1), + new LOTRTradeEntry(new ItemStack(Items.feather), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.waterskin), 2), + new LOTRTradeEntry(new ItemStack(Items.wheat, 2), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.elfBone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.dwarfBone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.hobbitBone), 1), + new LOTRTradeEntry(new ItemStack(Items.bone), 1), + new LOTRTradeEntry(new ItemStack(LOTRMod.maggotyBread, 2), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.manFlesh), 3)); + } /** @@ -665,6 +1367,123 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200), new LOTRTradeEntry(new ItemStack(LOTRMod.bronzeCrossbow), 12)); ((MixinLOTRTradeEntriesOverrides)(Object)GULF_BLACKSMITH_BUY).setVessels(LOTRFoods.SOUTHRON_DRINK); + + HARNEDOR_BARTENDER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.cooked_beef), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonCooked), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_porkchop), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_chicken), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerCooked), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitCooked), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitStew), 10), + new LOTRTradeEntry(new ItemStack(Items.cooked_fished), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.camelCooked), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.kebab), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.shishKebab), 8), + new LOTRTradeEntry(new ItemStack(Items.bread), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.oliveBread), 6), + new LOTRTradeEntry(new ItemStack(Items.baked_potato, 2), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.orange), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.plum), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugOrangeJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.woodPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicMug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.gobletCopper), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.gobletWood), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.waterskin), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCider, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAraq, 1, 9999), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugLemonLiqueur, 1, 9999), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugLimeLiqueur, 1, 9999), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCactusLiqueur, 1, 9999), 15), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)HARNEDOR_BARTENDER_BUY).setVessels(LOTRFoods.HARNEDOR_DRINK); + + HARAD_BUTCHER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.beef), 5), + new LOTRTradeEntry(new ItemStack(Items.porkchop), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonRaw), 5), + new LOTRTradeEntry(new ItemStack(Items.chicken), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitRaw), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerRaw), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.camelRaw), 4), + new LOTRTradeEntry(new ItemStack(Items.leather), 3), + new LOTRTradeEntry(new ItemStack(Items.feather), 3), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 4), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)HARAD_BUTCHER_BUY).setVessels(LOTRFoods.SOUTHRON_DRINK); + + HARAD_BREWER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAle, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAle, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCider, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCider, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCider, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAraq, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAraq, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAraq, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCactusLiqueur, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCactusLiqueur, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCactusLiqueur, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugLemonLiqueur, 1, 9999), 12), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugLemonLiqueur, 1, 2), 140), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugLemonLiqueur, 1, 3), 180), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugLimeLiqueur, 1, 9999), 12), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugLimeLiqueur, 1, 2), 140), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugLimeLiqueur, 1, 3), 180), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMead, 1, 9999), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPomegranateWine, 1, 9999), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCherryLiqueur, 1, 9999), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMelonLiqueur, 1, 9999), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugBananaBeer, 1, 9999), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAppleJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugOrangeJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugChocolate), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugBlueberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugBlackberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRaspberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCranberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugElderberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPomegranateJuice), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMangoJuice), 8), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)HARAD_BREWER_BUY).setVessels(LOTRFoods.SOUTHRON_DRINK); + + HARAD_FLORIST_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.haradFlower, 1, 0), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.haradFlower, 1, 1), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.haradFlower, 1, 2), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.haradFlower, 1, 3), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.doubleFlower, 1, 2), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.doubleFlower, 1, 3), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 0), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 1), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 2), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 3), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhunFlower, 1, 4), 20), + new LOTRTradeEntry(new ItemStack(LOTRMod.doubleFlower, 1, 0), 25), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 0), 6), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 4), 10), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 5), 10), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 6), 10), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 7), 10), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 8), 6), + new LOTRTradeEntry(new ItemStack((Block)Blocks.yellow_flower, 1, 8), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.bluebell, 1, 0), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.marigold, 1, 0), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.lavender, 1, 0), 10), + new LOTRTradeEntry(new ItemStack((Block)Blocks.double_plant, 1, 0), 10), + new LOTRTradeEntry(new ItemStack((Block)Blocks.double_plant, 1, 1), 15), + new LOTRTradeEntry(new ItemStack((Block)Blocks.double_plant, 1, 4), 15), + new LOTRTradeEntry(new ItemStack((Block)Blocks.double_plant, 1, 5), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.doubleFlower, 1, 1), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.morgulShroom, 1, 0), 20), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 5), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)HARAD_FLORIST_BUY).setVessels(LOTRFoods.SOUTHRON_DRINK); + NOMAD_ARMOURER_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.nearHaradTable), 100), new LOTRTradeEntry(new ItemStack(LOTRMod.swordHarad), 14), @@ -688,6 +1507,100 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(LOTRMod.bronzeCrossbow), 12)); ((MixinLOTRTradeEntriesOverrides)(Object)NOMAD_ARMOURER_BUY).setVessels(LOTRFoods.NOMAD_DRINK); + GULF_HUNTER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitRaw), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerRaw), 4), + new LOTRTradeEntry(new ItemStack(Items.leather), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.fur), 3), + new LOTRTradeEntry(new ItemStack(Items.feather), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.horn), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.lionFur), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.gemsbokHide), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.gemsbokHorn), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhinoHorn), 15), + new LOTRTradeEntry(new ItemStack(LOTRMod.lionRaw), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.zebraRaw), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhinoRaw), 8), + new LOTRTradeEntry(new ItemStack(Items.rotten_flesh), 3), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 4), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)GULF_HUNTER_BUY).setVessels(LOTRFoods.GULF_HARAD_DRINK); + + SOUTHRON_BARTENDER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.cooked_beef), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonCooked), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_porkchop), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_chicken), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerCooked), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitCooked), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitStew), 10), + new LOTRTradeEntry(new ItemStack(Items.cooked_fished), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.camelCooked), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.kebab), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.shishKebab), 8), + new LOTRTradeEntry(new ItemStack(Items.bread), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.oliveBread), 6), + new LOTRTradeEntry(new ItemStack(Items.baked_potato, 2), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.orange), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.plum), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.lemonCakeItem), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugOrangeJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.woodPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicMug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.gobletCopper), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.gobletWood), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.waterskin), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCider, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAraq, 1, 9999), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugLemonLiqueur, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugLimeLiqueur, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCactusLiqueur, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)SOUTHRON_BARTENDER_BUY).setVessels(LOTRFoods.SOUTHRON_DRINK); + + GULF_BARTENDER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.cooked_beef), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonCooked), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_porkchop), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_chicken), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerCooked), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitCooked), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitStew), 10), + new LOTRTradeEntry(new ItemStack(Items.cooked_fished), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.camelCooked), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.kebab), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.shishKebab), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.lionCooked), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.zebraCooked), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.rhinoCooked), 12), + new LOTRTradeEntry(new ItemStack(Items.bread), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.oliveBread), 6), + new LOTRTradeEntry(new ItemStack(Items.baked_potato, 2), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.orange), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.plum), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.lemonCakeItem), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugOrangeJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.woodPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicMug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.gobletCopper), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.gobletWood), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.waterskin), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.skullCup), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCider, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAraq, 1, 9999), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugLemonLiqueur, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugLimeLiqueur, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCactusLiqueur, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugBananaBeer, 1, 9999), 12), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMangoJuice), 10), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)GULF_BARTENDER_BUY).setVessels(LOTRFoods.GULF_HARAD_DRINK); + TAUREDAIN_SMITH_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.tauredainTable), 100), new LOTRTradeEntry(new ItemStack(LOTRMod.blacksmithHammer), 18), @@ -706,6 +1619,7 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200), new LOTRTradeEntry(new ItemStack(LOTRMod.bronzeBars, 8), 20)); ((MixinLOTRTradeEntriesOverrides)(Object)TAUREDAIN_SMITH_BUY).setVessels(LOTRFoods.TAUREDAIN_DRINK); + WICKED_DWARF_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.blacksmithHammer), 18), new LOTRTradeEntry(new ItemStack(LOTRMod.swordDwarven), 25), @@ -743,6 +1657,7 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200), new LOTRTradeEntry(new ItemStack(LOTRMod.gateDwarven, 1, 0), 12)); ((MixinLOTRTradeEntriesOverrides)(Object)WICKED_DWARF_BUY).setVessels(LOTRFoods.DWARF_DRINK); + BREE_BLACKSMITH_BUY = new LOTRTradeEntries(TradeType.BUY, new LOTRTradeEntry(new ItemStack(LOTRMod.breeTable), 100), new LOTRTradeEntry(new ItemStack(Items.iron_sword), 12), @@ -771,6 +1686,105 @@ public abstract class MixinLOTRTradeEntriesOverrides { new LOTRTradeEntry(new ItemStack(CinderLoE.forgingKit, 1, 0), 200), new LOTRTradeEntry(new ItemStack(LOTRMod.bronzeCrossbow), 12)); ((MixinLOTRTradeEntriesOverrides)(Object)BREE_BLACKSMITH_BUY).setVessels(LOTRFoods.BREE_DRINK); + + BREE_INNKEEPER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.cooked_beef), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_porkchop), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonCooked), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_chicken), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerCooked), 7), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitCooked), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitStew), 10), + new LOTRTradeEntry(new ItemStack(Items.bread), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicMug), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.gobletCopper), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.gobletWood), 2), + new LOTRTradeEntry(new ItemStack(Items.baked_potato, 2), 7), + new LOTRTradeEntry(new ItemStack(Items.cooked_fished), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.gammon), 7), + new LOTRTradeEntry(new ItemStack(Items.mushroom_stew), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.mushroomPie), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.leekSoup), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.plate), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.ceramicPlate), 2), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCider, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPerry, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMead, 1, 9999), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAppleJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.pipeweed, 4), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.hobbitPipe), 25), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)BREE_INNKEEPER_BUY).setVessels(LOTRFoods.BREE_DRINK); + + BREE_BUTCHER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(Items.beef), 5), + new LOTRTradeEntry(new ItemStack(Items.porkchop), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.gammon), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.muttonRaw), 5), + new LOTRTradeEntry(new ItemStack(Items.chicken), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.rabbitRaw), 4), + new LOTRTradeEntry(new ItemStack(LOTRMod.deerRaw), 4), + new LOTRTradeEntry(new ItemStack(Items.leather), 3), + new LOTRTradeEntry(new ItemStack(Items.feather), 3), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 4), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)BREE_BUTCHER_BUY).setVessels(LOTRFoods.BREE_DRINK); + + BREE_BREWER_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAle, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAle, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugAle, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCider, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCider, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCider, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPerry, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPerry, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPerry, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMapleBeer, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugMapleBeer, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugMapleBeer, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugPlumKvass, 1, 9999), 10), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPlumKvass, 1, 2), 120), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugPlumKvass, 1, 3), 170), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugMead, 1, 9999), 12), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugMead, 1, 2), 140), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugMead, 1, 3), 180), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCherryLiqueur, 1, 9999), 12), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCherryLiqueur, 1, 2), 140), + new LOTRTradeEntryBarrel(new ItemStack(LOTRMod.mugCherryLiqueur, 1, 3), 180), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugAppleJuice), 6), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugBlueberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugBlackberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugRaspberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugCranberryJuice), 5), + new LOTRTradeEntry(new ItemStack(LOTRMod.mugElderberryJuice), 5), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 3), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)BREE_BREWER_BUY).setVessels(LOTRFoods.BREE_DRINK); + + BREE_FLORIST_BUY = new LOTRTradeEntries(TradeType.BUY, + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 0), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 1), 8), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 2), 6), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 3), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 4), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 5), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 6), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 7), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.red_flower, 1, 8), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.yellow_flower, 1, 8), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.bluebell, 1, 0), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.marigold, 1, 0), 3), + new LOTRTradeEntry(new ItemStack(LOTRMod.lavender, 1, 0), 3), + new LOTRTradeEntry(new ItemStack((Block)Blocks.double_plant, 1, 0), 10), + new LOTRTradeEntry(new ItemStack((Block)Blocks.double_plant, 1, 1), 8), + new LOTRTradeEntry(new ItemStack((Block)Blocks.double_plant, 1, 4), 8), + new LOTRTradeEntry(new ItemStack((Block)Blocks.double_plant, 1, 5), 8), + new LOTRTradeEntry(new ItemStack(LOTRMod.doubleFlower, 1, 1), 10), + new LOTRTradeEntry(new ItemStack(LOTRMod.doubleFlower, 1, 0), 25), + new LOTRTradeEntry(new ItemStack(LOTRMod.shireHeather, 1, 0), 6), + new LOTRTradeEntry(new ItemStack(CinderLoE.spiceIngredient, 1, 5), 6666)); + ((MixinLOTRTradeEntriesOverrides)(Object)BREE_FLORIST_BUY).setVessels(LOTRFoods.BREE_DRINK); } } diff --git a/src/main/java/com/zivilon/cinder_loe/recipes.java b/src/main/java/com/zivilon/cinder_loe/recipes.java index 4f8fcdc..4080bb1 100644 --- a/src/main/java/com/zivilon/cinder_loe/recipes.java +++ b/src/main/java/com/zivilon/cinder_loe/recipes.java @@ -108,6 +108,24 @@ public class recipes { GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 13), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 13))); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.warDart, 1, 14), new ItemStack(CinderLoE.warDart, 1, 0), new ItemStack(CinderLoE.warDartHeads, 1, 14))); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spiceOrcish), + new ItemStack(CinderLoE.spiceIngredient, 1, 0), + new ItemStack(CinderLoE.spiceIngredient, 1, 1), + new ItemStack(CinderLoE.spiceIngredient, 1, 2))); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spiceHuman), + new ItemStack(CinderLoE.spiceIngredient, 1, 3), + new ItemStack(CinderLoE.spiceIngredient, 1, 4), + new ItemStack(CinderLoE.spiceIngredient, 1, 5))); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spiceElven), + new ItemStack(CinderLoE.spiceIngredient, 1, 6), + new ItemStack(CinderLoE.spiceIngredient, 1, 7), + new ItemStack(CinderLoE.spiceIngredient, 1, 8))); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(CinderLoE.spiceDwarven), + new ItemStack(CinderLoE.spiceIngredient, 1, 9), + new ItemStack(CinderLoE.spiceIngredient, 1, 10), + new ItemStack(CinderLoE.spiceIngredient, 1, 11))); + + OreDictionary.registerOre("vegetable1", CinderLoE.onion); OreDictionary.registerOre("vegetable1", LOTRMod.leek); OreDictionary.registerOre("vegetable2", CinderLoE.cabbage); diff --git a/src/main/resources/assets/cinder_loe/lang/en_US.lang b/src/main/resources/assets/cinder_loe/lang/en_US.lang index 0faae93..30894e0 100644 --- a/src/main/resources/assets/cinder_loe/lang/en_US.lang +++ b/src/main/resources/assets/cinder_loe/lang/en_US.lang @@ -26,6 +26,8 @@ tile.lotr:iceCage.name=Ice Cage tile.forging_station.name=Forging Station tile.lotr:woodpanel.name=Wood Panel +tile.onion.name=Onion Crop + tile.lotr:cinderfur.0.name=Brown Warg Fur Block tile.lotr:cinderfur.1.name=Gray Warg Fur Block tile.lotr:cinderfur.2.name=Black Warg Fur Block @@ -48,6 +50,7 @@ tile.lotr:cinderfurcarpet.8.name=Lioness Fur Carpet item.repair_kit.name=Repair Kit item.upgrade_kit.name=Upgrade Kit +item.lotr:field_repair_kit.name=Field Repair Kit item.cinder_fur_item_0.name=Gray Warg Fur item.cinder_fur_item_1.name=Black Warg Fur item.cinder_fur_item_2.name=White Warg Fur @@ -384,14 +387,27 @@ warband.fac.RENEGADE=renegades pickpocket.cooldown=You need to wait before pickpocketing again. pickpocket.cooldown_alt=Maybe get your hands out of his pants first. -item.lotr:spice_human.name=Mannish spice -item.lotr:spice_elven.name=Elven spice -item.lotr:spice_orcish.name=Orcish spice -item.lotr:spice_dwarven.name=Dwarven spice +item.lotr:spice_human.name=Kings Herbs +item.lotr:spice_elven.name=Silverblend +item.lotr:spice_orcish.name=Morgul Salts +item.lotr:spice_dwarven.name=Stonegrit item.lotr:mugElfBrew.name=Saturated Miruvor item.lotr:mugOrcBrew.name=Concentrated Orc Draught item.lotr:mugHumanBrew.name=Athelas Tea -item.lotr:mugDwarfBrew.name=Dwarven Stout +item.lotr:mugDwarfBrew.name=Dwarven Stout\ +item.fine_bone_dust.name=Fine Bone Dust +item.dried_morgul_caps.name=Dried Morgul Caps +item.blighted_root.name=Blighted Root +item.coldbreath_leaf.name=Coldbreath Leaf +item.brambleberry.name=Brambleberry +item.willow_bark.name=Willow Bark +item.seregon.name=Seregon +item.niphredil_seeds.name=Niphredil Seeds +item.dried_mallorn.name=Dried Mallorn +item.curing_salts.name=Curing Salts +item.underroot.name=Underroot +item.miners_lichen.name=Miner’s Lichen + potion.overdose=Overdose diff --git a/src/main/resources/assets/lotr/textures/items/blighted_root.png b/src/main/resources/assets/lotr/textures/items/blighted_root.png new file mode 100644 index 0000000000000000000000000000000000000000..6a8e20e3235d9e6389c9866f5eeb8bbf5980505b GIT binary patch literal 588 zcmV-S0<-;zP)z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007 zbV*G`2k8VJ0xcI9q;0?e00EFmL_t(I%iWT(OIuMChrgTGqwD1g2ll_!AT;Bg$7ATeUDu4OE?`Qm)aNC z4*f0na4x^^+eUM6 zf-8VMM@o%?ovCSx+b;mP*!z*FlDVS@%9Dw_1r&k4)_nc)82~d7-o1UP`dahhV_nGJ z#e|xNZyu|$fQ8{tzI|_Tc5)2y5P+*I!{kH`@*XDCtgSAqXYEJaFZvc>X@4etHzOw0 zWO7+ZJD6_7+Ul};zrHE4lTrZfPLu@91bG0CT9+0A5IZU5D-kmgJb$QqI&A^=3++zC zQS0*h1xkdpW1HtsxMR&X03%52^p}wLARdy*WibQ6bR!zgTEd(F1SRjf+uaBgYD}n! zos?=cYwGOen3bh@#*Q&4c@jLhXGhg&*3@~gug-gY)$T+b9_$0~YW>sgD_kzP^7oeg a6a5C%E2;z9J_{xQ0000eK@{Ea{HEjtmSN z`?>!lvI6-E$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?d}4kf#9d}Zjfo51s;*b3=G^tAk28_ZrvZCAbW|YuPggY7CB}SW?qXpph*nRJY5_^ zEKVmUNc=l+H2#78%~{GpOF6RA4y7t@I{PE$V8`j3N=Y$1^MZ1DZqE-jTr=Zu&qNL8 zm_Mxl!hf$zuK4mp@bL4@_mXiOdy^^-f1dWR?~GQPt+c&?&=;pQ2U*%yPZgKUTfgIE zf$KY~!>{$%OX}3FkqDXBa_}&-ZOn{`mO}AIr2ZNHPp|m<)RbA7U%5H7#T0BHNbtw^ zuxXA5-sBx#mbzYY<1PiI&{zL^HgA@=|6xyR!jy!h9m<=#9{!k?%%k5DXSnCzr&*1S yjf~69KOC!VE4=le=kb>RBC2XhmktZCG2FQj>3M(4&rd)fGkCiCxvXeK@{Ea{HEjtmSN z`?>!lvI6-E$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?d}4kf#9d}Zjfo51s;*b3=G^tAk28_ZrvZCAbW|YuPggY7CB}ym02vEH-SRWJzX3_ zEKc8@wBPSgfxvP5a9$JD3kO`XJRUD<=6@77Z^8KkkDi=)^eXxTgAKDb-!6-ipT1kS ztmIVr)5n=4^K6WNJMx(JHU>g}`=UK9SdqkcKxvAdC;>l}pRfnH|tboFyt=akR{ E00Og|!vFvP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/textures/items/curing_salts.png b/src/main/resources/assets/lotr/textures/items/curing_salts.png new file mode 100644 index 0000000000000000000000000000000000000000..58f3110efd0881f77a6bdfcbecb4423b1343ef84 GIT binary patch literal 462 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jPK-BC>eK@{Ea{HEjtmSN z`?>!lvI6-E$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?e4uz$3Dlfq`2Xgc%uT&5-~KvX^-Jy0X7ykz*BPV_Bi(0d#?o zr;B5V#p$~jHhLXq5IFX+-g$9?kM&Z`MQNR^f?dwytnmxH53bzjJk8GWo>FqSx%={* zrpe7q^t=SmD0p^>@QST@U}>sivcjVCeu>PT_kGR(=U(7f`NI73>j#^eCrdeK@{Ea{HEjtmSN z`?>!lvI6-E$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?d}4kf#9d}Zjfo51s;*b3=G^tAk28_ZrvZCAbW|YuPggY7C9DU;q$Dowg815c)B=- zSe(8)VQ~LA0OlTBet94TDo^sut%1Zy`Rc)uIZ)PmV`qG z`B)FX3{dL2dgW^Q?|*XlzBeDgoO7Y<`y2aMX`N-Z+h=^cv!BsZhcCh6{)$VkXIVlV zuVhX<^61t1^?OeK@{Ea{HEjtmSN z`?>!lvI6-E$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?d}4kf#9d}Zjfo51s;*b3=G^tAk28_ZrvZCAbW|YuPggY7C9z4R{65Z9YCQ!o-U3d z7N@UHGR$u_5OABX9mcKP6mjMZgEyPi^Z)5-FYf4YC`l@ctEv>XbGUf97;iJ5o3sDD z-F?|VzXh_VyUOe~{J-n2#_Ot&|8jZ#mZ=QsP6CHhS2*hg{pL@#w}$gE{A(eON#HM~?FI5BEFr YyVWY&L{^$E1cn2Hr>mdKI;Vst0O)L`xBvhE literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/textures/items/field_repair_kit.png b/src/main/resources/assets/lotr/textures/items/field_repair_kit.png new file mode 100644 index 0000000000000000000000000000000000000000..1ee5390f0800b170a7d11a41c3f788c48cc8fb42 GIT binary patch literal 5973 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 a7FO$wDNV!2O7}x01vuEb*p^xc?E5cP*l-E} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/textures/items/fine_bone_dust.png b/src/main/resources/assets/lotr/textures/items/fine_bone_dust.png new file mode 100644 index 0000000000000000000000000000000000000000..5a6eb81e02c88e8a31fba98c009ae2cc3a922c1e GIT binary patch literal 529 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jPK-BC>eK@{Ea{HEjtmSN z`?>!lvI6-E$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?d}4kf#9d}Zjfo51s;*b3=G`DAk4@xYmNj^kiEpy*OmPxiyV`h`2o8rhk-5#^>lFz zu{eEq(nfEmLV@G<`abifMmD)NJ6lQK6bKPu^~-Y%7Gx0=a&k81XbM>@7~;|_sOWg* z!ksJkF32l*G+TK%i!HKw^w;F|^+}8NZ83bYZ1>}R^R4&E{MrA3by;?$j?|=$86Mka zhrjBsZttEs-9*?sc}>;dON&-9yl~neXBkk(R1z{dyPf;@Q#OX(pJxLlR-^^zet47- z{fjR>n)%KB*?IYoK572#$TCwrC0e3bu*(*xF<_RFLsrAo{`AW46DHma5t_Y~J8)fq z*3_5p-!dL}`HkVh`Q8(Z)!R)f0`A|5iavHPT{&LE$mE5CI8%dD;Nu^ExEf;q`5H2~ zwXbDRF^clOp8Lw$^14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>0nt8JmZdG`}L zEpB;HCQEfTeML^7-uuRnRe=;^NswPKgTu2MX&_FLx4R2N2dk_Hki%Kv5n0T@z_%ZS z87)|YRe*x*C7!;n>@Qj5Sh-cj9<6)`6e{v`aSV~T+}n3j=&%8Yv#fH#UKaN6|Nn12 zc=l49)ztzAf1bqx|E>#lo|9$pj*>H1IJb0DjNy#v+?^Z-k7sV5d-9cn#*XXrxZktC zN(g>=w|K=__1g^{{1+Lga7Z{ensfMv_G&K8Nax@D;+kF6?An|2s~A6cu`p{ax+e;> Oox#)9&t;ucLK6U8D|*%d literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/textures/items/niphredil_seeds.png b/src/main/resources/assets/lotr/textures/items/niphredil_seeds.png new file mode 100644 index 0000000000000000000000000000000000000000..912122890718df358435328deba257b32b58afed GIT binary patch literal 542 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jPK-BC>eK@{Ea{HEjtmSN z`?>!lvI6-E$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?d}4kf#9d}Zjfo51s;*b3=G^tAk28_ZrvZCAbW|YuPggY7C9CRiQUStz5`v5g)}SBgb^sc(l&l+YnXj!Bz5o7xuCE8L3C$?T4b zzSE@;ptM}b)J3(v&MQuI-?T|r{O2~EE8F?L`rYSw#ShnOz4(5@algCVvf!`A`}^)r zuFOs_xBRhYDx<~j9j`C;Ys_Rc%IAGH&28ed$xBKN=XnWkyB7XrA@8TdI!8ICqn+w+sXx4W&I zk#(Q*Vu;F%3B{HV$HdvMYO8x%JKsC()T)$! a@?TlMc2D_r)kz`)6g!@-elF{r5}E*vf78JL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/textures/items/repair_kit.png b/src/main/resources/assets/lotr/textures/items/repair_kit.png index 1ee5390f0800b170a7d11a41c3f788c48cc8fb42..5f7d42918ff070b597d62ecefde86d398c91d546 100644 GIT binary patch delta 775 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 a7FO$wDNV!2O7}x01vuEb*p^xc?E5cP*l-E} diff --git a/src/main/resources/assets/lotr/textures/items/seregon.png b/src/main/resources/assets/lotr/textures/items/seregon.png new file mode 100644 index 0000000000000000000000000000000000000000..a4f85777d2866f874b1c09edb9468996fb53b369 GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jPK-BC>eK@{Ea{HEjtmSN z`?>!lvI6-E$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?e4;Gmti3T-*y$L<3JJ40*}aI1_o{+5N5n|x9$&6kiEpy*OmPxiySMv=$yW5K-(Dp zdAc};Se(8)$Zx^ySd11_IZ=;*D z&%0*u9k|cLkaxNxV##t}^T7N=3JPbBa=p)G+OjIWCr^WWdGhhon+@-}oOyjqb>@wmKmMMHXIpvNVNz%8y*W4fgKo_1 g{~ho8^ZYB`&E_#H-iS+v0z-nq)78&qol`;+0M22m@c;k- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/lotr/textures/items/spice_dwarven.png b/src/main/resources/assets/lotr/textures/items/spice_dwarven.png index 3b7e29b2f90a55836521bbab0539a55d6fa0dbc9..8a1f92652624eaab1d530c2b4da3288ce7d3c570 100644 GIT binary patch delta 554 zcmV+_0@eMxBEtlbB!2;OQb$4o*~u(_00004XF*Lt006O%3;baP0000WV@Og>004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00006VoOIv07U>V00+b+_&5Ln z010qNS#tmY3labT3lag+-G2N4000McNliru=>#4H7Ywo|Y=6)I00DT@Q%EyPjGWRXSiRPP<`Irm)dh3`h<^)Wt|H|dN;cTXDt8^3lE|K&J7 zmp4=M!)9@1(tqSU&+P3#n4ISsfZ}Y?#3mRV>o@6^CIB8Eo&jjkL;VLko8hc<&cV@9q_f_~ z34DuIT?Jriu%F){>|L!QwTi?a@#Fnxs8HZOmE}H_<$v-@Agc;lRoon3b5=TMs8Fag zh!O;~8d6FoM@Pw|Qf%(-Mny9d6DX~@s8k4QwRi&nUkGg5jzrDLBu_zr(i))@z7UNQ zyh2Jz#(JZb);w#ClrnbhRvf9q5EZ^`L@4#SO9XIT*K{}zPJ4S@p)Um2zE8PaPW&^$ s?cH5$rz1vu-Mzc6YZ}G<*!@fJ7uO$~Bj#xWu?4A{Y?4jLrlcSVkhBd(z-t(tDVyClVTEMFW+8!U z)gmfmIR$%qDs5%vkZPq@JkRUdkHZhNdbV=d1GMKyy;=*k;%Bv0;oc1&!n89t%v}Ft zGyC5~Mo(_q^R;KcYIyF}TR%)+m+RVbyv^9R zpt~#m(zPyG{H=9I4Ei`K@6g)z5OVs~lM3tW-rjQIn5||D(`#F7Ja{7V1~)&U<2T)Ce#CRj%3&~*s#v|=V$$n}gMlH` zFRRrV52eMny>x0xMp9T=c*!T0nTMrG7p=Rjfgz2}?YkSmXZAI&h^H#kUqqeN9N^Fjq^Hj&)xI5Q=MfOMhjp3au zYUx=E-`)_LdN=O=)y}!u=KZDyP5W)z7jf}v?x?~}=e>K~`?e*l7T^?c5fBg?aIh{N+V{cVQG{i5=!+^dZg%TIA#1GQL2gBM9$isHlMI^rY;cNC z3jv%!pb($4*yYjsbf_O!3!g=?3`P7ZLXi%&nk|T);{ifQ2`P?c_}DT9`fM0_cLP2nAWiqeVEA=X+9Pg0HNs^S|3YkKIK@H4P?h+^;=JLdg5Q7*7;Guce zEwG#m5iuznS1RaG6s{w~{yE)d^9a1lGsFVqL*}F0GPx9&Ii0f679Js^41x?f^s^S8 zJlLeN9N^(fc^YJt0hbUz8iJum?A@h&u|FJ!mVsj6gsL96t9;CsSthe(#6qON!8+Z3 zD@gVjO@XyPBx{Us;)*|<(T+g#5!^A_!?F97p_bXKHE?vP=$^@-L&g2I3`et!cJPss zlR!==Fa<*s7(oFWMp8Bk12#fU;sm9(%acbznOq)$a?wD9g5XjX;*d5*4b&P2Q&S=Y zP*a#jt->*lLT*c@Ne!;HkA|4fv#=_u;?Z7-Pz;2E1_X&GLmwE05+jls4Mr*yDvZ$B zG%A`=X= zzZ^!R)$@Q7I6jZ#igl<6fryqP%VyY63?)zoN&pZPSE#f&p~cmCa}z5IV^i|vD?3?|*kdf@)$e$il0<${vIx53w9*56DB;%^HrMGuDHp~?W`_Y-0b zF42XQ%K_m07%JFdIr}rkV7CzpK#~fK#BDUp8!5*$lv0l2DmAPJnz3sLVl29cvkP8| z2lE_|N5~Z{P(N2l;!vvQjMeuR0x=JeG7KlMA<7_YN>nx!tW2C3!_lV5e!@qJUt!dU zfp&v3IJ)2@l#PtSA-=?+^9vqBdH4l)fY1}0jEmn1x+drv7X#x`o~W(~y2i!8xRfWV z>;Fbq@WYQO;DY~vyzo=0emznLKeK{t&u1AV1LAM{M@<`{WSZNU?~zDCW{Bq`$=3R4 zD4Zgg%o$U90)s+>0(u9QZh@jtO@?`Sntz<#s0({FEj%;MQ1{(j!t&_)FQ?7zX{kK8 z$UP%WqHAor78Lz-@#lec=EV0b>ig2>l3k~dEmd;%J=f0f^E|L${;@{tXq>?%-~0ab zVs5AW_m0o14~hEO623MH^U^> z&aJa+vi@^x>YgjRSEY9+bvCw3TXyrS-dot!kl$JHaqI0(F*%X1FU+nxlJw>E4-*Hz zc`I{W{f7q~flX1H_gHH7I$|Sxf8GD}^74TBX)pG_e=GQL7+4svn(St?BnduGg{OFQ R=HgBGLqqB!2;OQb$4o*~u(_00004XF*Lt006O%3;baP0000WV@Og>004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00006VoOIv0Nntg01me#8pi+t z010qNS#tmY3labT3lag+-G2N4000McNliru=>#4H2{AqnAAcSI00EXsL_t(I%gvEH zEJI-w$A4FfmNubjTB#y2iG)Fdp$UTO*|6s z*Fr;+Mnzw4o9k0@4dSM#$0Bi-FX!a{{mwc61Ai5ho-S?D)202Sld_Zf-VzNUWNqW3 zaFd(MN8IHtsDJ4swQIW!$70e)Kwfq-vYe3ei>x$Ad)!<;QdV7n;<_emJp-Vxqfz@7 zFghq}C(qR+RPeYg$crj~{{Fba`B6YK7aN(KnE=4H62NXUAloRk~ z*uc;@=3*nM^aBfX)7Vx5y10AWM@^mkYd~jP1qKezFaUXLVlUqPQhO(!|M${<9BdqrRjzTVyui6cbjcV`?O zlr@*rMlz)%pX(Acj!0bZd~ke$cWp=d7VrkiwQH`=|07-iiIbql!=@aI00000NkvXX Hu0mjfDp%{a literal 4408 zcmeHKc~BH*7H^{h;gSRo)>7$hF&x@6Jts5042Lr#GnEVuh?^nFZtUs)8d~OJreQ|Z z2yz&9%__k%Q3(ZGg|1ein@Bc>gpDq+CPgI}+@K*ISq(*W6EP+#yDIG0Gn|!FZBe!P zkDlu5eeeC=d%y3!SJO4-tjvherJ)FdL>LXa9C(is&X6E@js1R%YXc~ zC-^dHje50}6RA&T{BEDcl<=#YAC(V$^~CLkPdB7i6(nAaSfJQ5a$v#xs;bRNzuEmm zYUqRK5~L6Bb|?I&DmDAUSt6+;-;VrH7xGzUeSM1rJ&&MOz=@}gG_G@d|^IaQoiYc^`NbKWw3?1pqx?ViLS)UYH5>@n}c~Pe*>6+!3WnNfw%ei9}A2r9Wt*egf>dJQEs^K>+ z#jc{h&(3U&nwOS-X@0zZN#b`qj7|F8!Dk=&yhBCzBcqlsI()D^rg8KB+N{p57hckb z{}n59R1(!iH3v$iC-+tj4!7;vbHbb5FtGhr&!urd{^yh>{UZXnXV@3OSv*oU|J)?}I5j7_R@cdcKX})v^$876erFF-pnVKx~uJn9;=+5cW___CP-s|f>dt>h2=HvSv zWfj^@t-8+(R}9^{@y)kaWi2BwA!p3)zcXvzd;(To2?wjoVtR(8opuq$IITeBv%6r~ zAxKJ^&qdLNfJdz$pL1xiq4z$(P>#`H&nirW$)yDaoT1bWHk4-N(xrv8n!(aiLsNVt z1h501LVb3d!$bNsm>-vf&w^Ntp?(#o8R15_@OiwIor<4UAhYABlGW>_*u zw{8pqzG<)mo_CRAvDfPrd1WG}J6|kOtJPvcDwaxdsDXR7IC#p3J3K1|hyaETcxX50 z;yI@S6)-8QvzXUl7+gokVIfeE&)Hpm zD@gVj0(YABcsAV#dIwxH$glE)gFu^~`IBAX{{f`P- zDw6{Ma7NB3a5=4#;A$Bo#i?Yagr?OrLlg2TP)3J`ryMj8pdh%2gE%y!OlDXWi!%yB zfM6J0WmU^?V3n{m1qec+R84_c@8)1tQnsm42~Z4#Vq_FeTjf%mp_Nh`#zo;2tDeEPUQo!%aQN*ArMYxn2j1tDk3H&W*fz`&;a%T=U|*( z&*V}rX9pX2O5jtHESIU}a+xfdkSPecVp8eX!0myxD4jo6>bmuyqHVq~Og$kAv%O==R48>DAiU$yskSa(*P7=yoiGoz9NExx3kded` zeJ8`QTmF}}&^~BNVABnp2m0UQ7X^B111Ji-1zv5OznM_f-xefA2U74*C4lkA39$l8 zbOGha2XKCj73{d2`>A43G094xr150d3X4HPsc{vF6FO%X=v| z$jFC0Latze`nf_A#Spj!wES)L75^M6OSb;7AD4cwkhHt@sZ+Jm@;CZ zT|fp$7o3FRiBUMlmoRjG#$#+Bent-vde+H|_?@L|maZ8wFeByJ>YAl%MhwhIdA7R# zZ*+xDeoO%e{0HQPpGqgXzt+LetRU;tnL1=t_%*g4se_WoU4}dlf`mm2=N#lJ9cF5i=+3&UC;h_z_9I=>o-Vc4*7iX zt%l*+LFE1Z#V>~3Gt@`tBc;tqOe<@;)=+cA=Uu)hdMdQ7O*y!Ae_q92`om|WI~eQa|k?zqj!Tq3}V!0>5i}6 GwDZ4ZSwTVo diff --git a/src/main/resources/assets/lotr/textures/items/spice_human.png b/src/main/resources/assets/lotr/textures/items/spice_human.png index 9310d7c4d4488846bf464d8fbb6df72f7d608893..730d0fd327c0a7f393ab3b9f266810102074c602 100644 GIT binary patch delta 499 zcmV004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00006VoOIv00000008+zyMF)x z010qNS#tmY3labT3lag+-G2N4000McNliru=>#4F82}-laev1E00B`+L_t(I%hi%S zOM+n(hA+R7Ovul&EUY97B1jM{5L%-j&=NI8Lz6!sBWR5#mlhp@=CGhONS8jgh9W~H zOMTU$DAe?62t#?**1D%Noa^SC`yBZ9QvB8s*l`JfOuEd`K}OcE>;?}x`bF&6fZeX@ z*wbPV35LanXMbHZ;30>VY`)laLS-}j8Y*FVGZP7h1wb}m#63F5&E-1|r|xH+W~m!R zJQ~AdGUHyJAaR#KqfueEngEzzECAqhdI7}V)}ul;!R^N(lA%C68l!eyWqWNGW3Qh3 z#1lTJmregF9@iw9beR#WQpm30pXw17V;x&{1>e#fuWX?bFQy!lp}?7RLSSFw;?zv? zTq0BaB$=-(WCpY2YEroh0MDhGEU6FikYZm{g;w)z~|`JWq2@52y7% zX3y-*eE0i)_xpa|@7}Ys)mfQoA(Gh=kw_F`OgCi1Yq)R*PlDg`?mnU5e|x#`&zqWjyF`UBgKUu>{=ChiDj~AFa7kPCYQq=EK*MgbHzg%9V@7S!?zS1L%dqx)&o>be6=P!Qw%_}!IpROFMGXMn%K!$6ISFuiS4r z`@`)AB&l`JUD=(`_PD?DtB(BN68gW#R7E6Qs|6cg3)=Lf<`3I`e}_I_vP*Q_*8j@w zhqut8FB|V!SJu8H-qP3AUAD6E{>Jlji#{<xs@i5nsKUdd)2QF}JC|>2khp zUQ1X)-O<&@#i5~_s&Vjk$FX(IM~+lp@#QR7H-~c>@_#AephxF;Ceq0jX3ud_#@w@P)dTE|13rXhO03l?A3`0|V>{?v9 zSc1g687rA>NF9WLPkL!F&$~#u-0Stqyh<78w#gMbolcJ7avVpY2kI$z@{|vCdZGo0 z0EPj0XgBNPSj`=F=7;y(dpqSCk+HB2rgqGj!H){ z3S6T?H5BY9p#co4Rnj!7)&U&Htpu)AQKKN1xml=6%04~sDYBfR60u_8-^xRIk$s??PML44ai+in|}_0a56E=sF&h0Y{Zgfr+6z2 zfNOwtGMv{lGGt~QAcv;}J{1~5sUy@lp}=spn$V6oI%XKLS=mCc6Q}b8a)o+4WK(DMW}I9yY-R#ZWwDpm+d5F6kK{$)W@bf5$ewH7e` zJRw$Kh%Tm_HURgJLBS5$+3yhptz|T7pr%oc)dKaTpmeB~v8qukqtd8UIE~SmW-Pjg zv+`cb4H9jTN5~ZvsGloj!CSfP)`rg0Q`Aq+soNqTI&Z)k;2N&TN#AlQ#J5N8hUd{f;*^0Lpr++Zt{?kxwXQ3#3 zQ%}j&$Hgs4hx(?z_J?VbySaN0g)ZN#+nM#t{bki%tznAH-<-Vj-lECT^ETdEKKr_R zolWt=jzqOnoKX3@9kx4HKhJmBe`2od3%&WELfjg&JiMYY&JL>!1$joR$s}3`?}Onf T9G7wgeniHUOvAyXqRsyXgA{w! diff --git a/src/main/resources/assets/lotr/textures/items/spice_orcish.png b/src/main/resources/assets/lotr/textures/items/spice_orcish.png index fdeb2f980cc49c70e27fa8653946e2f9cd0c31de..becb69b1edea2e60d0abf3ba7bf31c5db69313ef 100644 GIT binary patch delta 473 zcmV;~0Ve*8B##7;Bv=7+Qb$4o*~u(_00004XF*Lt006O%3;baP0000WV@Og>004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00006VoOIv00000008+zyML4M z5FmdZ0x>qSx*)><00C1;L_t(I%gvHKNJ3EmpBe;N_-BS^EI@ySA5mgoec+_=#!DVQD5w)p!Emjji z>K*VV?N@LPw9-1Jm{mlOGYz$qreX2#JZs{eE`kVa_fLfztGV7(X$vgn)LI8sE z=4Cy-RRK)q0VNar2v2XBE z&4y_$(`)l{jZcQ<9LiR;;Mvc`8*EP%)+NmUYiNGm-CIv@x&PyV%)F+z8tbCtca%|^ zW~X1@%w_x-d7}1w`@M{g-@Kd=a--SLr7UeczWK9=yq3P2jHb3h*42=3ZD63txQLAT z<(>ncurqht&-|^1&$_a^Y4s)MV0+a4*2A^^Gp~P{AD8H7qzDpH!=|NW8`IK8l7T5S z?bxR?e6S+6WApOXoQ?W_qP=@t$nNy?*j01u3tL*}ZuH)iMec3RrZp%LoFsbLG*Y7&B z?BUm$F=?~vKKdl5yCb%s^QtbX{8at7iG%J6|62vhn4YJ1_pQEU>J9JhHs$ucwx{C!EstvID=rTl{xD(R5mAQ! ziOVf3S|9aP^tWyLgHm^M;jTF=zNiN~_Drk#b@PqZKYl}ZZ8?aXw)L#M```{%cyIsr z)(!Q~hE!iW)8W~$f1t7}uJG^1XFQ+2RIWVr+MNF9Grlk*FK|^ojh8mr<{y4)h5y}+ zr$Ztls%qunc-wnr%_mM&e9S-icZe?2wXdNu8a7wNIuEa26o(*`2WK z5F}~2&q>i+0gqaMjdke6-?Y6iMp;HD-k>t!CTAKbVhyD(kXxE%rc1ZdT1LD)S(M}> zA%Gq56za1VJKUsCCl26}@Lmv0#b`i<->MVmnX=I|&IM4VL@B|sbRWB2E>0GqNiN1p z=IAqqA>flvT*UKEQY!U&y%MiN!ntfxnO3Wn;&Q26jzJB~UE<&=ALek!3lKpJJ#f=5 z*2%M+0~IhS3+Lf=VliAtN8+$cNNNIi)fQF16dG<1O5L`gRC19MI2N zxXo}zr8&UOd0aF|-wqsn{CEh49<_IRT*ZNO7+MO7fgP&4p;y@imzhRW_NawGfsM60 z16Gji37R}>9V2T(Y{E()o$-M{^HJOh+9SCKl%bZ%MCv)(BZOzv>%@Y8lHq8UAp^H6 zTCPw605C?$s4yi>$S|#fkz&6bei!V+c8c6F4qYjDuL?VqsTO#p9zApcn|nC@7k?DCHPKtK}Gsi^3=? zL1PSIQ3C~otF)G2Gz?8!(J3nWw=B^1XhH?kT4xcEhTg+ z1PI7sHe{L$P(0@{b6l}bEChuLmZQriI8Y45Q+kRA5EPfINL)$cYO_pD%7yPTTtVXF z^f`vLmi#wuVSLb}V9^b%8~QH^h=Mbf3$_KHf{(>)V3<%eFcu_52UBoU+W`}Z6JiCI z=pxEt191NsZrBky`!mfz6O2X;)HJ5CT3|oPC@n@XRyAg2R2r2^PUAElq;(YC%~^Rb zd&B2@&b(uk#xKRub20BVLIFn|-V z*HvnOY2m0~N(NX7g_2=Za{0t?|M&EQ9YKtwmn0Q7#F1hqNqy^+?p6hH}n5-x}^bZ~3oxX#1MO9zF5n4HP{>Z_No45s{xQpI$ v-thj_nUN2(2Dsx#K849dfIOqsWI~q0`&sZ5j*Gbh9f&bKOMfi2aOZyjI5c^$ diff --git a/src/main/resources/assets/lotr/textures/items/underroot.png b/src/main/resources/assets/lotr/textures/items/underroot.png new file mode 100644 index 0000000000000000000000000000000000000000..dd057f4f0832ba28ea0ebfada7f0c55a8563c12f GIT binary patch literal 731 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 a7FO$wDNV!2O7}x01vuEb*p^xc?E5cP*l-E} delta 775 zcmV+i1Ni*aF4_i=BYy#dX+uL$Nkc;*aB^>EX>4Tx04R}tkv&MmKpe$iQ^g_`2aAd* zWT;MdQ4z;d#UfZJZG~1HOfLO`CJjl7i=*ILaPVWX>fqw6tAnc`2!4P#J2)x2NQwVT z3N2zhIPS;0dyl(!fY7Kg)$ED_s%9CfcudUZR>huI1Tcm{0DnUgGxbDzF$2%>bq^n3 z?;b zkx9)Hhls^u2g@DIN`^{2LmXCAjq-)8%L?Z$&T6H`TKD8H4Cb|!G}md4B90{_kc0>s zHIz|-g$S)0DSswXv>)^Ek2wA$xny#c!N{?IDpW|0AN&t~cWV}=r`)7q4CsEb?T>Mw zXBTMJZTtJ!wwot_{~5T_+Wu+-nENEX-qylLK>s#yaoyJBJ>YT&7=F?vLvkcPO`%W# z-p}Zpa=^eX(7WdL*4oGE1CXJvmT!QALtvsv+3Ozf4kC2+_V1Zie?N;1axDuqmCXR|+Xf5TR(Ql+pEL?Lhx5G=B!v=GN?CGO=;1skVX zSoV86^X376UF*}0{^ore!^bCU0MKFE(-L5eQSUtfz&S^03}>8&s~wR5JLd=hL_|{n zD60BP+e?2UF&ruhGY4q$BLJXl8;U!a!y=;0jAYpM^zuAl@*^_NKZWLIiipN1Gs9X- z6noIM4HZ?b8RvMszr)4Z2F$!;rnQz1uCS;ajM0N@oX?!Tzhd$u&M&V3 zK==KcEbY21OI@v2=-P&Y$iq{=7$n*k6z3e3WvNR5@Rl4Q;~bM8(X|czD5Ay~4Xy`I z;=Ft-fPYaR8cK=l54}r90000EWmrjOO-%qQ00008000000002eQeK@{Ea{HEjtmSN z`?>!lvI6-E$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZKG z?d}4kf#9d}Zjfo51s;*b3=G^tAk28_ZrvZCAbW|YuPggY7CB}?jXR%%O@S_O_H=O! zu{gbVlCS?E2NBov9tMp|W|(Alfthq_iYTeuU-6qf6Va8+Tv>~i(Yf$uu vX-wxc#V+=$DK0+g^JgD-0=He&Z}pY=rM2s7J|0|C4GMlwS3j3^P6