From 8b4e22dfd487f8060eebc6e82ca5dc15c2b2fb7c Mon Sep 17 00:00:00 2001 From: Vasco Lavos Date: Sat, 12 Jul 2014 23:41:15 +0100 Subject: [PATCH] Alfhomancy Rebalance: Part 5. --- .../botania/client/lib/LibResources.java | 1 + .../render/entity/RenderDoppleganger.java | 1 - .../common/crafting/ModCrafingRecipes.java | 11 +++++- .../common/entity/EntityDoppleganger.java | 37 +++++++++++++++--- .../botania/common/lexicon/LexiconData.java | 6 +++ .../vazkii/botania/common/lib/LibLexicon.java | 1 + resources/assets/botania/lang/en_US.lang | 14 +++++-- .../textures/gui/entries/gaiaRitual.png | Bin 0 -> 24568 bytes 8 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 resources/assets/botania/textures/gui/entries/gaiaRitual.png diff --git a/MODSRC/vazkii/botania/client/lib/LibResources.java b/MODSRC/vazkii/botania/client/lib/LibResources.java index a11562b76..30f1ac494 100644 --- a/MODSRC/vazkii/botania/client/lib/LibResources.java +++ b/MODSRC/vazkii/botania/client/lib/LibResources.java @@ -52,6 +52,7 @@ public final class LibResources { public static final String ENTRY_PORTAL3 = PREFIX_ENTRIES + "portal3.png"; public static final String ENTRY_PORTAL4 = PREFIX_ENTRIES + "portal4.png"; public static final String ENTRY_ELVEN_GARDE = PREFIX_ENTRIES + "elvenGarde.png"; + public static final String ENTRY_GAIA_RITUAL = PREFIX_ENTRIES + "gaiaRitual.png"; public static final String MODEL_ALTAR = PREFIX_MODEL + "altar.png"; public static final String MODEL_ALTAR_MOSSY = PREFIX_MODEL + "altarMossy.png"; diff --git a/MODSRC/vazkii/botania/client/render/entity/RenderDoppleganger.java b/MODSRC/vazkii/botania/client/render/entity/RenderDoppleganger.java index 0768c5b5b..de9613e22 100644 --- a/MODSRC/vazkii/botania/client/render/entity/RenderDoppleganger.java +++ b/MODSRC/vazkii/botania/client/render/entity/RenderDoppleganger.java @@ -61,7 +61,6 @@ public class RenderDoppleganger extends RenderBiped { disfiguration = (0.025F + dopple.hurtTime * ((1F - 0.15F) / 20F)) / 2F; grainIntensity = 0.05F + dopple.hurtTime * ((1F - 0.15F) / 10F); } - ShaderHelper.useShader(ShaderHelper.doppleganger, callback); super.doRender(par1Entity, par2, par4, par6, par8, par9); diff --git a/MODSRC/vazkii/botania/common/crafting/ModCrafingRecipes.java b/MODSRC/vazkii/botania/common/crafting/ModCrafingRecipes.java index 8a1e545cc..e1e27fe88 100644 --- a/MODSRC/vazkii/botania/common/crafting/ModCrafingRecipes.java +++ b/MODSRC/vazkii/botania/common/crafting/ModCrafingRecipes.java @@ -159,6 +159,7 @@ public final class ModCrafingRecipes { public static IRecipe recipeLensWeight; public static IRecipe recipeLensPaint; public static List recipesMiniIsland; + public static IRecipe recipeGaiaPylon; public static void init() { // Lexicon Recipe @@ -963,7 +964,15 @@ public final class ModCrafingRecipes { 'S', new ItemStack(ModItems.grassSeeds), 'D', new ItemStack(Blocks.dirt)); recipesMiniIsland = BotaniaAPI.getLatestAddedRecipes(16); - + + // Gaia Pylon Recipe + addOreDictRecipe(new ItemStack(ModBlocks.pylon, 1, 2), + " D ", "EPE", " D ", + 'D', LibOreDict.PIXIE_DUST, + 'E', LibOreDict.ELEMENTIUM, + 'P', new ItemStack(ModBlocks.pylon)); + recipeGaiaPylon = BotaniaAPI.getLatestAddedRecipe(); + // Mana and Terrasteel Block Recipes addOreDictRecipe(new ItemStack(ModBlocks.storage, 1, 0), "III", "III", "III", diff --git a/MODSRC/vazkii/botania/common/entity/EntityDoppleganger.java b/MODSRC/vazkii/botania/common/entity/EntityDoppleganger.java index fe3e23f87..c6fcd295f 100644 --- a/MODSRC/vazkii/botania/common/entity/EntityDoppleganger.java +++ b/MODSRC/vazkii/botania/common/entity/EntityDoppleganger.java @@ -15,12 +15,10 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.entity.boss.IBossDisplayData; @@ -35,14 +33,17 @@ import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import vazkii.botania.common.block.ModBlocks; import vazkii.botania.common.core.helper.Vector3; +import vazkii.botania.common.item.ModItems; import vazkii.botania.common.lib.LibObfuscation; +import cpw.mods.fml.relauncher.ReflectionHelper; public class EntityDoppleganger extends EntityCreature implements IBossDisplayData { public static final int SPAWN_TICKS = 100; - private static final float MAX_HP = 200F; // TODO + private static final float MAX_HP = 200F; private static final String TAG_SOURCE_X = "sourceX"; private static final String TAG_SOURCE_Y = "sourceY"; @@ -52,6 +53,13 @@ public class EntityDoppleganger extends EntityCreature implements IBossDisplayDa private static final String TAG_AGGRO = "aggro"; private static final String TAG_TP_DELAY = "tpDelay"; + private static final int[][] PYLON_LOCATIONS = new int[][] { + { 4, 1, 4 }, + { 4, 1, -4 }, + { -4, 1, 4 }, + { -4, 1, -4 } + }; + boolean spawnLandmines = false; boolean spawnPixies = false; @@ -68,6 +76,17 @@ public class EntityDoppleganger extends EntityCreature implements IBossDisplayDa public static boolean spawn(ItemStack par1ItemStack, World par3World, int par4, int par5, int par6) { Block block = par3World.getBlock(par4, par5, par6); if(block == Blocks.beacon && !par3World.isRemote) { + for(int[] coords : PYLON_LOCATIONS) { + int x = par4 + coords[0]; + int y = par5 + coords[1]; + int z = par6 + coords[2]; + + Block blockat = par3World.getBlock(x, y, z); + int meta = par3World.getBlockMetadata(x, y, z); + if(blockat != ModBlocks.pylon || meta != 2) + return false; + } + par1ItemStack.stackSize--; EntityDoppleganger e = new EntityDoppleganger(par3World); e.setPosition(par4 + 0.5, par5 + 3, par6 + 0.5); @@ -189,7 +208,13 @@ public class EntityDoppleganger extends EntityCreature implements IBossDisplayDa protected boolean canDespawn() { return false; } - + + @Override + protected void dropFewItems(boolean par1, int par2) { + if(par1) + entityDropItem(new ItemStack(ModItems.manaResource, 12, 5), 1F); + } + @Override public void onLivingUpdate() { super.onLivingUpdate(); @@ -275,7 +300,8 @@ public class EntityDoppleganger extends EntityCreature implements IBossDisplayDa } } - // Enderman code + // EntityEnderman code below ============================================================================ + protected boolean teleportRandomly() { double d0 = this.posX + (this.rand.nextDouble() - 0.5D) * 64.0D; double d1 = this.posY + (double)(this.rand.nextInt(64) - 32); @@ -315,6 +341,7 @@ public class EntityDoppleganger extends EntityCreature implements IBossDisplayDa if(this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox).isEmpty() && !this.worldObj.isAnyLiquid(this.boundingBox)) flag = true; + // Prevent out of bounds teleporting ChunkCoordinates source = getSource(); if(vazkii.botania.common.core.helper.MathHelper.pointDistanceSpace(posX, posY, posZ, source.posX, source.posY, source.posZ) > 15) flag = false; diff --git a/MODSRC/vazkii/botania/common/lexicon/LexiconData.java b/MODSRC/vazkii/botania/common/lexicon/LexiconData.java index 33ce9f07d..b286d28f3 100644 --- a/MODSRC/vazkii/botania/common/lexicon/LexiconData.java +++ b/MODSRC/vazkii/botania/common/lexicon/LexiconData.java @@ -26,6 +26,7 @@ import vazkii.botania.common.crafting.ModManaConjurationRecipes; import vazkii.botania.common.crafting.ModManaInfusionRecipes; import vazkii.botania.common.crafting.ModPetalRecipes; import vazkii.botania.common.crafting.ModRuneRecipes; +import vazkii.botania.common.item.ModItems; import vazkii.botania.common.lexicon.page.PageCraftingRecipe; import vazkii.botania.common.lexicon.page.PageElvenRecipe; import vazkii.botania.common.lexicon.page.PageImage; @@ -151,6 +152,7 @@ public final class LexiconData { public static LexiconEntry alfhomancyIntro; public static LexiconEntry elvenMessage; public static LexiconEntry elvenResources; + public static LexiconEntry gaiaRitual; public static LexiconEntry unstableBlocks; public static LexiconEntry decorativeBlocks; @@ -501,6 +503,10 @@ public final class LexiconData { elvenResources = new ALexiconEntry(LibLexicon.ALF_RESOURCES, categoryAlfhomancy); elvenResources.setPriority().setLexiconPages(new PageText("0"), new PageElvenRecipe("1", ModElvenTradeRecipes.dreamwoodRecipe), new PageText("2"), new PageElvenRecipe("3", ModElvenTradeRecipes.elementiumRecipes), new PageElvenRecipe("4", ModElvenTradeRecipes.pixieDustRecipe), new PageElvenRecipe("5", ModElvenTradeRecipes.dragonstoneRecipe), new PageText("6"), new PageElvenRecipe("7", ModElvenTradeRecipes.elvenQuartzRecipe)); + gaiaRitual = new ALexiconEntry(LibLexicon.ALF_GAIA_RITUAL, categoryAlfhomancy); + gaiaRitual.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCrafingRecipes.recipeGaiaPylon), new PageImage("2", LibResources.ENTRY_GAIA_RITUAL), new PageText("3"), new PageText("4")); + LexiconRecipeMappings.map(new ItemStack(ModItems.manaResource, 1, 5), gaiaRitual, 0); + // MISCLENAEOUS ENTRIES unstableBlocks = new BLexiconEntry(LibLexicon.MISC_UNSTABLE_BLOCKS, categoryMisc); unstableBlocks.setLexiconPages(new PageText("0"), new PageImage("1", LibResources.ENTRY_UNSTABLE_BLOCK), new PageCraftingRecipe("2", ModCrafingRecipes.recipesUnstableBlocks), new PageText("3"), new PageImage("4", LibResources.ENTRY_UNSTABLE_BEACON), new PageCraftingRecipe("5", ModCrafingRecipes.recipesManaBeacons), new PageText("6"), new PageCraftingRecipe("7", ModCrafingRecipes.recipesSignalFlares)); diff --git a/MODSRC/vazkii/botania/common/lib/LibLexicon.java b/MODSRC/vazkii/botania/common/lib/LibLexicon.java index ccda3bdcb..f2e9ed729 100644 --- a/MODSRC/vazkii/botania/common/lib/LibLexicon.java +++ b/MODSRC/vazkii/botania/common/lib/LibLexicon.java @@ -129,6 +129,7 @@ public final class LibLexicon { public static final String ALF_INTRO = "aIntro"; public static final String ALF_MESSAGE = "elfMessage"; public static final String ALF_RESOURCES = "elfResources"; + public static final String ALF_GAIA_RITUAL = "gaiaRitual"; public static final String MISC_UNSTABLE_BLOCKS = "unstableBlocks"; public static final String MISC_DECORATIVE_BLOCKS = "decorativeBlocks"; diff --git a/resources/assets/botania/lang/en_US.lang b/resources/assets/botania/lang/en_US.lang index a0a89568a..ec9cc6650 100644 --- a/resources/assets/botania/lang/en_US.lang +++ b/resources/assets/botania/lang/en_US.lang @@ -165,7 +165,7 @@ entity.Botania.botania:signalFlare.name=Signal Flare entity.Botania.botania:pixie.name=Pixie entity.Botania.botania:flameRing.name=Flame Ring entity.Botania.botania:vineBall.name=Vine Ball -entity.Botania.botania:doppleganger.name=Gaia Guardian +entity.Botania.botania:doppleganger.name=Guardian of Gaia entity.Botania.botania:magicLandmine.name=Gaia Trap # BLOCK NAMES @@ -555,7 +555,7 @@ item.botania:travelBelt.name=Soujourner's Sash item.botania:knockbackBelt.name=Tectonic Girdle item.botania:icePendant.name=Snowflake Pendant item.botania:lavaPendant.name=Pyroclast Pendant -item.botania:lifeEssence.name=Gaia Sprit +item.botania:lifeEssence.name=Gaia Spirit item.botania:goldenLaurel.name=Golden Laurel Crown item.botania:redstoneRoot.name=Redstone Root item.botania:magnetRing.name=Ring of Magnetization @@ -1219,7 +1219,7 @@ botania.page.lavaPendant1=Hanako could have used one of these # -- GOLDEN LAUREL CROWN botania.entry.goldenLaurel=Golden Laurel Crown -botania.page.goldenLaurel0=One of the uses for &1Gaia Spritis&0 is to, grant a layer of immortality to one that uses them, while wearing a &1Golden Laurel Crown&0, if the wearer were to die, the crown will shatter, regenerating all of their health and giving them a short period of invincibility. +botania.page.goldenLaurel0=One of the uses for &1Gaia Spririts&0 is to, grant a layer of immortality to one that uses them, while wearing a &1Golden Laurel Crown&0, if the wearer were to die, the crown will shatter, regenerating all of their health and giving them a short period of invincibility. botania.page.goldenLaurel1=Given the theme, probably Viridi # -- RING OF CHORDATA @@ -1295,6 +1295,14 @@ botania.page.elfResources5=Trading for &1Dragonstone&0 botania.page.elfResources6=The &1Elves&0 are also quite keen on the white posh block from the &4Nether&0, &1Nether Quartz&0, the ones they have on their world are tinted green. This quartz works just like any other quartz, be it normal &1Nether Quartz&0 or any of the decorative variants you can find on the &4Decorative Blocks&0 entry under &4Miscelaneous&0. botania.page.elfResources7=Trading for &1Elven Quartz&0 +# -- RITUAL OF GAIA +botania.entry.gaiaRitual=Ritual of Gaia +botania.page.gaiaRitual0=The &4Ritual of Gaia&0 is a procedure often enacted by the elves, which is the only way to acquire &1Gaia Spirits&0, which are essences of the power of the Goddess of Gaia herself.
This ritual required an &4Active&0 &1Beacon&0 with some &1Gaia Pylons&0 (read on) one level above the beacon as the altar, as well as a single &1Terrasteel Ingot&0 as a sacrifice. +botania.page.gaiaRitual1=Creating &1Gaia Pylons&0 +botania.page.gaiaRitual2=Place the pylons (1 block above the beacon) +botania.page.gaiaRitual3=To start the ritual, simply shift-right click the &1Beacon&0 block with a &1Terrasteel Ingot&0, take a step back and prepare to fight for your life. Good preparation is required, as the fight with the &4Guardian of Gaia&0 can be even harder than that of the &4Wither&0. Upon defeating the &4Guardian&0, one can collect their prize, a handful of &1Spirits of Gaia&0. +botania.page.gaiaRitual4=A few pointers to take in mind are as follows. Enchanted &1Elementium Armor&0 is highly recomended, even more so than conventional &1Diamond Armor&0 due to the &1Pixies&0 it can spawn.
The effect on the &1Beacon&0 is nullified during the battle, that should be taken in mind when preparing.
Lastly, stay away from the purple. + # - MISCLANEOUS # -- UNSTABLE CUBE botania.entry.unstableBlocks=Unstable Cubes diff --git a/resources/assets/botania/textures/gui/entries/gaiaRitual.png b/resources/assets/botania/textures/gui/entries/gaiaRitual.png new file mode 100644 index 0000000000000000000000000000000000000000..3a75342a24f43159e7f1ce6fab9fde410ab26835 GIT binary patch literal 24568 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 z