• 0

    posted a message on Modular Bosses - High Quality Epic Bosses - Updated (11/3/2017) - 1.0 Release!

    when will the sand worm boss dimension get worked out? or am i missing something, when i enter the dimension its just a void world, also why does right clicking with the legends sword send me to the dimension?

    Posted in: WIP Mods
  • 0

    posted a message on THE TITANS MOD: The most dangerous bosses in all of Minecraft, even attacking your pc!

    once I get the time. I don't understand why everyone wants to cheat their way to victory. Cheating in the Titans mod only screws up your gameplay.


    using op stuff from another mod isnt cheating, its called "strategy". if you have the access to an item thats op, you use it, thats how the world works bro xD also last i checked the skydaz installer for titans is an older version, that being the version where one shoting witherzilla is still possible xD
    Posted in: Minecraft Mods
  • 0

    posted a message on THE TITANS MOD: The most dangerous bosses in all of Minecraft, even attacking your pc!
    Quote from NICO28MARTINEZ»

    Will you ever add more titans?

    Also just imagine Witherzilla armor and Ender Dragon Zilla armor OMG

    and can make a weapon that kill all titans in one hit because what if someone griefs your world by spawning witherzilla

    Answer all of this please

    Good luck with the next update ;)


    ya an item to kill all titans would be nice for servers, like say a server owner doesnt want wither zilla on the void dimention but doesnt want to spen 50 years killing it... it could simply be a command like /killtitans to stop server lag with the mod. like if you like the command idea
    Posted in: Minecraft Mods
  • 0

    posted a message on THE TITANS MOD: The most dangerous bosses in all of Minecraft, even attacking your pc!

    you are kinda right. orespawn is dying.a lot of people don't play orespawn anymore.they instead play another huge mods such as aoa

    i mainly dont use orespawn because its just so laggy on my laptop, and i like the 1.9 combat so i dont play older version like 1.7 anymore...
    Posted in: Minecraft Mods
  • 0

    posted a message on [Collection] Mithey's Maps ~ Terra Restore and More!

    is the latest version of TR2 compatible with 1.10/1.10.2? or will 1.10 break something with the map, i dont think it will but it might so i ask.

    edit: i am also seeing npc mobs being ether invisible or just flat out not there at all.. like in the first seen i couldnt see the endermen

    Posted in: Maps
  • 0

    posted a message on 1.8+ Engender Mod: Raise an army to defeat your enemies!

    lol titans is cooler than this i guess sorry

    Posted in: WIP Mods
  • 0

    posted a message on THE TITANS MOD: The most dangerous bosses in all of Minecraft, even attacking your pc!
    Quote from randomuser1151»

    This mod looks really cool, but the thing I dislike about it is the same thing I dislike about Orespawn.

    It's gear pretty much breaks every other mod and makes you unkillable.

    I was wondering if it was worth considering making some kind of config option to balance the armor?

    I'm not saying nerf it.... More, give it some major downsides greatly deterring it's use.....

    Some ideas:

    1) constant lightning/explosions around the wearer

    2)constantly spawn monsters around you which rip off your armor and kill you ie the nightmare effect from witchery(this can be added using Loot++)

    3) You explode if you stand still for more than four seconds.

    4) if you haven't hit a titan mob in over a minute, all the armor's buffs turn into negative effects, you die almost instantly and four Blaze/Creeper titan's spawn (after you respawn).

    Or my favourite constantly spawn weaker Titans and damage Immune creepers around the wearer, Titan armor attracts titans right?


    Basically I want anything which will Guarantee that if a player tries to use this armor against a mob from any other mod they die horribly and lose items(possibly blowing up their entire base in the process).....Does this make me a bad person?


    (actually number four was my favourite, person tries to exploit harcadium armor against other mobs, person dies, then several base griefing Titans spawn so they have something to fight)


    dude, the mob is made to be over powered, without the armor as good as it is you die in 1 hit, making it any weaker is just breaking the mod itself
    Posted in: Minecraft Mods
  • 0

    posted a message on THE TITANS MOD: The most dangerous bosses in all of Minecraft, even attacking your pc!

    He's right, you know. This is Witherzilla's entity code:



    package net.minecraft.entity.titan;

    import com.google.common.base.Predicate;
    import com.google.common.base.Predicates;
    import com.google.common.collect.Lists;
    import com.mojang.authlib.GameProfile;

    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;

    import net.minecraft.block.Block;
    import net.minecraft.block.BlockBeacon;
    import net.minecraft.block.BlockCactus;
    import net.minecraft.block.BlockCarrot;
    import net.minecraft.block.BlockCocoa;
    import net.minecraft.block.BlockDoublePlant;
    import net.minecraft.block.BlockEndPortal;
    import net.minecraft.block.BlockFarmland;
    import net.minecraft.block.BlockGrass;
    import net.minecraft.block.BlockLeaves;
    import net.minecraft.block.BlockLilyPad;
    import net.minecraft.block.BlockMelon;
    import net.minecraft.block.BlockPotato;
    import net.minecraft.block.BlockPumpkin;
    import net.minecraft.block.BlockReed;
    import net.minecraft.block.BlockSapling;
    import net.minecraft.block.BlockStem;
    import net.minecraft.block.BlockTallGrass;
    import net.minecraft.block.BlockTorch;
    import net.minecraft.block.BlockVine;
    import net.minecraft.block.material.Material;
    import net.minecraft.command.IEntitySelector;
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.EntityAgeable;
    import net.minecraft.entity.EntityLiving;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.entity.EnumCreatureAttribute;
    import net.minecraft.entity.IEntityLivingData;
    import net.minecraft.entity.IEntityMultiPart;
    import net.minecraft.entity.IRangedAttackMob;
    import net.minecraft.entity.SharedMonsterAttributes;
    import net.minecraft.entity.ai.EntityAIArrowAttack;
    import net.minecraft.entity.ai.EntityAIHurtByTarget;
    import net.minecraft.entity.ai.EntityAILookIdle;
    import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
    import net.minecraft.entity.ai.EntityAISwimming;
    import net.minecraft.entity.ai.EntityAIWander;
    import net.minecraft.entity.ai.EntityAIWatchClosest;
    import net.minecraft.entity.boss.EntityDragon;
    import net.minecraft.entity.boss.EntityDragonPart;
    import net.minecraft.entity.boss.EntityWither;
    import net.minecraft.entity.boss.IBossDisplayData;
    import net.minecraft.entity.effect.EntityLightningBolt;
    import net.minecraft.entity.item.EntityItem;
    import net.minecraft.entity.item.EntityXPOrb;
    import net.minecraft.entity.monster.EntityBlaze;
    import net.minecraft.entity.monster.EntityCaveSpider;
    import net.minecraft.entity.monster.EntityCreeper;
    import net.minecraft.entity.monster.EntityEnderman;
    import net.minecraft.entity.monster.EntityGolem;
    import net.minecraft.entity.monster.EntityMob;
    import net.minecraft.entity.monster.EntityPigZombie;
    import net.minecraft.entity.monster.EntitySilverfish;
    import net.minecraft.entity.monster.EntitySkeleton;
    import net.minecraft.entity.monster.EntitySpider;
    import net.minecraft.entity.monster.EntityZombie;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.entity.player.EntityPlayerMP;
    import net.minecraft.entity.projectile.EntityArrow;
    import net.minecraft.entity.projectile.EntityFireball;
    import net.minecraft.entity.projectile.EntityWitherSkull;
    import net.minecraft.entity.titan.ai.EntityAINearestTargetTitan;
    import net.minecraft.entity.titan.ai.EntityAITitanWander;
    import net.minecraft.entity.titanminion.EntityCreeperLoyalist;
    import net.minecraft.init.Blocks;
    import net.minecraft.init.Items;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraft.potion.Potion;
    import net.minecraft.potion.PotionEffect;
    import net.minecraft.server.MinecraftServer;
    import net.minecraft.stats.AchievementList;
    import net.minecraft.stats.StatBase;
    import net.minecraft.theTitans.DamageSourceExtra;
    import net.minecraft.theTitans.TheTitans;
    import net.minecraft.theTitans.TitanItems;
    import net.minecraft.theTitans.items.ItemAdminiumArmor;
    import net.minecraft.theTitans.items.ItemHarcadiumArmor;
    import net.minecraft.theTitans.items.ItemUltimaBlade;
    import net.minecraft.theTitans.world.WorldProviderVoid;
    import net.minecraft.util.AxisAlignedBB;
    import net.minecraft.util.ChatComponentText;
    import net.minecraft.util.DamageSource;
    import net.minecraft.util.EnumFacing;
    import net.minecraft.util.MathHelper;
    import net.minecraft.util.StatCollector;
    import net.minecraft.util.Vec3;
    import net.minecraft.world.EnumDifficulty;
    import net.minecraft.world.World;
    import net.minecraft.world.WorldProviderEnd;
    import net.minecraft.world.WorldProviderHell;
    import net.minecraft.world.WorldServer;
    import net.minecraft.world.storage.WorldInfo;
    import net.minecraftforge.common.MinecraftForge;
    import net.minecraftforge.event.entity.living.EnderTeleportEvent;

    public class EntityWitherzilla extends EntityTitan implements IRangedAttackMob
    {
    private float[] field_82220_d = new float[2];
    private float[] field_82221_e = new float[2];
    private float[] field_82217_f = new float[2];
    private float[] field_82218_g = new float[2];
    private int[] field_82223_h = new int[2];
    private int[] field_82224_i = new int[2];
    /** Time before the Wither tries to break blocks */
    private int blockBreakCounter;
    public int affectTicks;
    private int attackTimer;
    public boolean spawnedByPlayer;
    public EntityPlayer player;
    private int omegacounter;
    ArrayList allPlayerList = Lists.newArrayList(this.worldObj.playerEntities);
    /** Selector used to determine the entities a wither boss should attack. */
    private static final IEntitySelector attackEntitySelector = new IEntitySelector()
    {
    public boolean isEntityApplicable(Entity p_180027_1_)
    {
    return !(p_180027_1_ instanceof EntityWitherzilla) && !(p_180027_1_ instanceof EntityWitherzillaMinion) && !(p_180027_1_ instanceof EntityWitherTurret);
    }
    };

    public EntityWitherzilla(World worldIn)
    {
    super(worldIn);
    this.setTitanHealth(this.getMaxHealth());
    this.preventEntitySpawning = true;
    this.setSize(8.0F, 12.0F);
    this.isImmuneToFire = true;
    this.noClip = true;
    this.experienceValue = 5000000;
    this.playSound("thetitans:titanBirth", Float.MAX_VALUE, 0.75F);
    this.playSound("thetitans:titanBirth", Float.MAX_VALUE, 0.75F);
    this.playSound("thetitans:titanBirth", Float.MAX_VALUE, 0.75F);
    this.playSound("thetitans:titanBirth", Float.MAX_VALUE, 0.75F);
    }

    protected void applyEntityAI()
    {
    this.tasks.addTask(0, new EntityAISwimming(this));
    this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true));
    this.targetTasks.addTask(0, new EntityAINearestTargetTitan(this, EntityLivingBase.class, 0, false, false, attackEntitySelector));
    }

    public boolean canBeCollidedWith()
    {
    return true;
    }

    protected EntityLivingBase getMinion()
    {
    return new EntityWitherzillaMinion(this.worldObj);
    }

    public int getMinionSpawnRate()
    {
    return TheTitans.WitherzillaMinionSpawnrate;
    }

    public int getParticleCount()
    {
    return 20;
    }

    protected void applyEntityAttributes()
    {
    super.applyEntityAttributes();
    this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.5D);
    this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(Double.MAX_VALUE);
    this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(1.0D);
    }

    public int getRegenTime()
    {
    return 1;
    }

    public float getRegen()
    {
    return 10.0F;
    }

    /**
    * Get this Titan's status
    */
    public EnumTitanStatus getTitanStatus()
    {
    return EnumTitanStatus.GOD;
    }

    /**
    * Returns render size modifier
    */
    public float getRenderSizeModifier()
    {
    return 24.0F;
    }

    protected void entityInit()
    {
    super.entityInit();
    this.dataWatcher.addObject(17, new Integer(0));
    this.dataWatcher.addObject(18, new Integer(0));
    this.dataWatcher.addObject(19, new Integer(0));
    }

    /**
    * Returns the sound this mob makes while it's alive.
    */
    protected String getLivingSound()
    {
    return "thetitans:witherzillaLiving";
    }

    /**
    * Returns the sound this mob makes when it is hurt.
    */
    protected String getHurtSound()
    {
    return "thetitans:witherzillaGrunt";
    }

    /**
    * Returns the sound this mob makes on death.
    */
    protected String getDeathSound()
    {
    return "thetitans:witherzillaDeath";
    }

    /**
    * Checks if the entity's current position is a valid location to spawn this entity.
    */
    public boolean getCanSpawnHere()
    {
    return false;
    }

    /**
    * sets the dead flag. Used when you fall off the bottom of the world.
    */
    protected void kill()
    {
    this.worldObj.playBroadcastSound(1013, (int)this.posX, (int)this.posY, (int)this.posZ, 0);

    if (this.worldObj.provider instanceof WorldProviderVoid || this.worldObj.provider instanceof WorldProviderEnd)
    {
    this.teleportRandomly(true);
    }
    else
    {
    this.teleportRandomly(false);
    }
    }

    public void doLightningAttackTo(Entity entity)
    {
    if (entity != null)
    {
    if (!(entity instanceof EntityTitan) && entity.height > 7.0F || entity.isEntityInvulnerable())
    {
    ((EntityLivingBase)entity).setHealth(0.0F);
    ((EntityLivingBase)entity).attackEntityFrom(DamageSource.outOfWorld, Float.MAX_VALUE);
    }

    if (entity != null && (this.affectTicks >= 600 || entity.height > 7.0F) && !(entity instanceof EntityTitan) && !(entity instanceof EntityPlayer))
    {
    ((EntityLivingBase)entity).setHealth(0.0F);
    for (int i = 0; i < 50; ++i)
    this.attackChoosenEntity(entity, Integer.MAX_VALUE, 2);
    }

    this.faceEntity(((EntityLivingBase)entity), 180, 180);

    if (entity instanceof EntityTitan)
    {
    ((EntityLivingBase)entity).attackEntityFrom(DamageSource.magic, 300.0F);
    }
    else
    {
    ((EntityLivingBase)entity).attackEntityFrom(DamageSource.magic, 10.0F);
    }

    if (entity instanceof EntityMob)
    {
    ((EntityLivingBase)entity).setRevengeTarget(this);
    }

    this.worldObj.addWeatherEffect(new EntityLightningBolt(this.worldObj, this.posX, this.posY + this.getEyeHeight(), this.posZ));
    this.worldObj.addWeatherEffect(new EntityLightningBolt(this.worldObj, entity.posX, entity.posY, entity.posZ));
    entity.hurtResistantTime = 1;
    entity.motionY += 0.5D;

    if (this.rand.nextInt(5) == 0)
    {
    boolean flag = this.worldObj.getGameRules().getGameRuleBooleanValue("mobGriefing");
    this.worldObj.createExplosion(this, entity.posX, entity.posY, entity.posZ, 15, flag);
    }
    }
    }

    /**
    * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons
    * use this to react to sunlight and start to burn.
    */
    public void onLivingUpdate()
    {
    if (this.isInOmegaForm())
    {
    List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(256.0D, 256.0D, 256.0D));

    if (list != null && !list.isEmpty() && this.rand.nextInt(40) == 0)
    {
    for (int i1 = 0; i1 < list.size(); ++i1)
    {
    Entity entity = (Entity)list.get(i1);

    if (entity != null && entity instanceof EntityLivingBase && !(entity instanceof EntityFireball) && !(entity instanceof EntityArrow) && !(entity instanceof EntityHarcadiumArrow) && !(entity instanceof EntityWitherzilla) && !(entity instanceof EntityWitherzillaMinion))
    {
    this.doLightningAttackTo(entity);
    }
    }
    }
    }

    --this.omegacounter;

    this.setSize(8.0F, 12.0F);

    this.worldObj.setWorldTime(this.worldObj.getWorldTime() + 50);

    if (this.ticksExisted % 200 == 0)
    {
    WorldServer worldserver = MinecraftServer.getServer().worldServers[0];
    WorldInfo worldinfo = worldserver.getWorldInfo();

    worldinfo.setRainTime(9999999);
    worldinfo.setThunderTime(1000000);
    worldinfo.setRaining(true);
    worldinfo.setThundering(true);

    EntityPlayer entity = this.worldObj.getClosestPlayerToEntity(this, -1.0D);

    if (this.allPlayerList != null && !this.allPlayerList.isEmpty() && !(this.worldObj.provider instanceof WorldProviderVoid) && this.getAttackTarget() == null && this.worldObj.provider == entity.worldObj.provider)
    {
    for (int i1 = 0; i1 < this.allPlayerList.size(); ++i1)
    {
    this.teleportToEntity(entity, true);
    this.setAttackTarget(entity);
    }
    }

    if (this.allPlayerList != null && !this.allPlayerList.isEmpty())
    {
    for (int i1 = 0; i1 < this.allPlayerList.size(); ++i1)
    {
    entity.travelToDimension(-100);
    entity.timeUntilPortal = Integer.MAX_VALUE;
    ((EntityPlayer)entity).addChatMessage(new ChatComponentText(entity.getCommandSenderName() + " has been banished to the Nether by Witherzilla."));
    }
    }

    if (this.allPlayerList != null && !this.allPlayerList.isEmpty() && this.rand.nextInt(8) == 0 && this.isArmored())
    {
    for (int i1 = 0; i1 < this.allPlayerList.size(); ++i1)
    {
    if (this.worldObj.isRemote)
    {
    MinecraftServer minecraftserver = MinecraftServer.getServer();
    GameProfile gameprofile = minecraftserver.func_152358_ax().func_152655_a(entity.getCommandSenderName());

    EntityPlayerMP entityplayermp = minecraftserver.getConfigurationManager().func_152612_a(entity.getCommandSenderName());

    if (entityplayermp != null && !entity.getDisplayName().equals("Umbrella_Ghast"))
    {
    entityplayermp.playerNetServerHandler.kickPlayerFromServer("You've been banned from this server by Witherzilla for being annoying.");
    }
    }
    else
    {
    if (!entity.getDisplayName().equals("Umbrella_Ghast"))
    {
    throw new IllegalArgumentException("You've been banned from your saved world by Witherzilla for being annoying.");
    }
    }
    }
    }
    }

    if (this.getAttackTarget() != null && this.ticksExisted % 1 == 0 && this.canAttack())
    {
    double d0 = this.getDistanceSqToEntity(this.getAttackTarget());

    if (d0 < (this.width * 3.0F) * (this.width * 3.0F))
    {
    this.swingItem();
    this.attackEntityAsMob(this.getAttackTarget());
    }
    }

    ArrayList listp = Lists.newArrayList(this.worldObj.playerEntities);

    if (listp != null && !listp.isEmpty())
    {
    for (int i1 = 0; i1 < listp.size(); ++i1)
    {
    Entity entity = (Entity)listp.get(i1);

    if (entity != null && entity instanceof EntityPlayer && this.rand.nextInt(400) == 0)
    {
    this.playLivingSound();
    ((EntityPlayer)entity).attackEntityFrom(DamageSource.outOfWorld, 5.0F);
    ((EntityPlayer)entity).addChatMessage(new ChatComponentText(StatCollector.translateToLocal("dialog.witherzilla.taunt." + this.rand.nextInt(6))));
    }
    }
    }

    List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(256.0D, 256.0D, 256.0D));

    if (list != null && !list.isEmpty())
    {
    for (int i1 = 0; i1 < list.size(); ++i1)
    {
    Entity entity = (Entity)list.get(i1);

    if (entity != null && this.getAttackTarget() != null && entity instanceof EntityWitherzillaMinion)
    {
    ((EntityWitherzillaMinion)entity).setAttackTarget(this.getAttackTarget());
    }
    }
    }

    if (TheTitans.NightmareMode == true)
    {
    this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(1000000.0D);
    }
    else
    {
    this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(500000.0D);
    }

    this.setCustomNameTag(StatCollector.translateToLocal("entity.WitherBossTitan.name"));

    if (this.getAttackTarget() != null && (this.affectTicks >= 300 || this.getAttackTarget().height > 7.0F) && !(this.getAttackTarget() instanceof EntityTitan))
    {
    this.doLightningAttackTo(this.getAttackTarget());

    this.getAttackTarget().attackEntityFrom(DamageSource.outOfWorld, 5.0F);

    this.getAttackTarget().hurtResistantTime = 1;
    }

    ++this.affectTicks;

    if (this.affectTicks >= 1010)
    {
    this.affectTicks = 0;
    }

    if (this.getAttackTarget() != null && !this.getAttackTarget().isEntityAlive())
    {
    this.setAttackTarget(null);
    }

    if (this.rand.nextInt(this.getMinionSpawnRate()) == 0 && this.getHealth() > 0 && !this.worldObj.isRemote)
    {
    EntityWitherzillaMinion entitychicken = new EntityWitherzillaMinion(this.worldObj);
    entitychicken.setLocationAndAngles(this.posX, this.posY + this.getEyeHeight(), this.posZ, this.rotationYaw, 0.0F);
    entitychicken.func_82206_m();
    this.worldObj.spawnEntityInWorld(entitychicken);
    entitychicken.addVelocity((double)(-MathHelper.sin(this.rotationYawHead * (float)Math.PI / 180.0F) * 3.0F), 0.0D, (double)(MathHelper.cos(this.rotationYawHead * (float)Math.PI / 180.0F) * 3.0F));
    }

    if (this.rand.nextInt(120) == 0 && this.getAttackTarget() != null && !this.worldObj.isRemote)
    {
    if (TheTitans.NightmareMode == true)
    {
    this.worldObj.newExplosion(this, this.getAttackTarget().posX, this.getAttackTarget().posY, this.getAttackTarget().posZ, 14.0F, true, true);
    }
    else
    {
    this.worldObj.newExplosion(this, this.getAttackTarget().posX, this.getAttackTarget().posY, this.getAttackTarget().posZ, 7.0F, false, this.worldObj.getGameRules().getGameRuleBooleanValue("mobGriefing"));
    }

    this.worldObj.playBroadcastSound(1013, (int)this.posX, (int)this.posY, (int)this.posZ, 0);
    }

    List list11 = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(256.0D, 256.0D, 256.0D));

    if (list11 != null && !list11.isEmpty() && this.worldObj.provider instanceof WorldProviderVoid)
    {
    for (int i1 = 0; i1 < list11.size(); ++i1)
    {
    Entity entity = (Entity)list11.get(i1);

    if (entity != null && entity instanceof EntityWitherTurret && !((EntityWitherTurret)entity).isPlayerCreated())
    {
    super.setPositionAndUpdate(0.0D, 200.0D, 0.0D);

    this.motionY *= 0.0F;

    if (listp != null && !listp.isEmpty())
    {
    for (int i11 = 0; i11 < listp.size(); ++i11)
    {
    Entity entity1 = (Entity)listp.get(i11);

    if (entity1 != null && entity1 instanceof EntityPlayer)
    {
    this.getLookHelper().setLookPositionWithEntity(entity1, 180.0F, 180.0F);
    }
    }
    }
    }
    else
    {
    super.setPositionAndUpdate(this.posX, this.posY, this.posZ);

    this.motionY *= 1.0F;
    }
    }
    }

    if (!this.isArmored())
    {
    this.motionY *= 0.25D;
    }

    double d1;
    double d3;
    double d5;

    if (!this.worldObj.isRemote && this.getWatchedTargetId(0) > 0)
    {
    Entity entity = this.worldObj.getEntityByID(this.getWatchedTargetId(0));

    if (entity != null)
    {
    if (this.posY < entity.posY || !this.isArmored() && !(entity instanceof EntityTitan) && this.posY < entity.posY + 7.0D)
    {
    if (this.motionY < 0.0D)
    {
    this.motionY = 0.0D;
    }

    this.motionY += (0.25D - this.motionY) * 0.25D;
    }

    double d0 = entity.posX - this.posX;
    d1 = entity.posZ - this.posZ;
    d3 = d0 * d0 + d1 * d1;

    this.getLookHelper().setLookPositionWithEntity(entity, 180.0F, 40.0F);

    if (entity instanceof EntityLivingBase && d3 < 10000.0D)
    {
    this.attackEntityWithRangedAttack((EntityLivingBase) entity, 0F);
    }

    if (d3 > 20.0D)
    {
    d5 = (double)MathHelper.sqrt_double(d3);
    this.motionX += (d0 / d5 * 1.5D - this.motionX);
    this.motionZ += (d1 / d5 * 1.5D - this.motionZ);
    this.rotationYaw = (float)Math.atan2(this.motionZ, this.motionX) * (180F / (float)Math.PI) - 90.0F;
    }
    }
    }

    super.onLivingUpdate();
    int i;

    for (i = 0; i < 2; ++i)
    {
    this.field_82218_g[i] = this.field_82221_e[i];
    this.field_82217_f[i] = this.field_82220_d[i];
    }

    int j;

    for (i = 0; i < 2; ++i)
    {
    j = this.getWatchedTargetId(i + 1);
    Entity entity1 = null;

    if (j > 0)
    {
    entity1 = this.worldObj.getEntityByID(j);
    }

    if (entity1 != null)
    {
    d1 = this.func_82214_u(i + 1);
    d3 = this.func_82208_v(i + 1);
    d5 = this.func_82213_w(i + 1);
    double d6 = entity1.posX - d1;
    double d7 = entity1.posY + (double)entity1.getEyeHeight() - d3;
    double d8 = entity1.posZ - d5;
    double d9 = (double)MathHelper.sqrt_double(d6 * d6 + d8 * d8);
    float f = (float)(Math.atan2(d8, d6) * 180.0D / Math.PI) - 90.0F;
    float f1 = (float)(-(Math.atan2(d7, d9) * 180.0D / Math.PI));
    this.field_82220_d[i] = this.func_82204_b(this.field_82220_d[i], f1, 5.0F);
    this.field_82221_e[i] = this.func_82204_b(this.field_82221_e[i], f, 5.0F);
    }
    else
    {
    if (this.rand.nextInt(120) == 0)
    {
    for (j = 0; j < 36; ++j)
    {
    this.field_82220_d[i] = this.func_82204_b(this.field_82220_d[i], this.rand.nextFloat() * 360.0F - 180.0F, 5.0F);
    }
    }

    if (this.rand.nextInt(120) == 0)
    {
    for (j = 0; j < 36; ++j)
    {
    this.field_82221_e[i] = this.func_82204_b(this.field_82221_e[i], this.rand.nextFloat() * 360.0F - 180.0F, 5.0F);
    }
    }
    }
    }

    this.shouldParticlesBeUpward = false;

    boolean flag = this.isArmored();

    for (j = 0; j < 12; ++j)
    {
    double d10 = this.func_82214_u(j);
    double d2 = this.func_82208_v(j);
    double d4 = this.func_82213_w(j);
    this.worldObj.spawnParticle("largesmoke", d10 + this.rand.nextGaussian() * 10.0D, d2 + this.rand.nextGaussian() * 10.0D, d4 + this.rand.nextGaussian() * 10.0D, 0.0D, 0.0D, 0.0D);
    this.worldObj.spawnParticle("largesmoke", d10 + this.rand.nextGaussian() * 10.0D, d2 + this.rand.nextGaussian() * 10.0D, d4 + this.rand.nextGaussian() * 10.0D, 0.0D, 0.0D, 0.0D);
    this.worldObj.spawnParticle("largesmoke", d10 + this.rand.nextGaussian() * 10.0D, d2 + this.rand.nextGaussian() * 10.0D, d4 + this.rand.nextGaussian() * 10.0D, 0.0D, 0.0D, 0.0D);
    this.worldObj.spawnParticle("largesmoke", d10 + this.rand.nextGaussian() * 10.0D, d2 + this.rand.nextGaussian() * 10.0D, d4 + this.rand.nextGaussian() * 10.0D, 0.0D, 0.0D, 0.0D);

    if (flag && this.worldObj.rand.nextInt(4) == 0)
    {
    this.worldObj.spawnParticle("mobSpell", d10 + this.rand.nextGaussian() * 10.0D, d2 + this.rand.nextGaussian() * 10.0D, d4 + this.rand.nextGaussian() * 0.30000001192092896D, 0.699999988079071D, 0.699999988079071D, 0.5D);
    }
    }

    if (this.getInvulTime() > 0)
    {
    for (j = 0; j < 3; ++j)
    {
    this.worldObj.spawnParticle("mobSpell", this.posX + this.rand.nextGaussian() * 24.0D, this.posY + (double)(this.rand.nextFloat() * 70.0F), this.posZ + this.rand.nextGaussian() * 1.0D, 0.699999988079071D, 0.699999988079071D, 0.8999999761581421D);
    }
    }

    if (this.worldObj.isRemote)
    {
    for (int i1 = 0; i1 < this.getParticleCount(); ++i1)
    {
    this.worldObj.spawnParticle(this.getParticles(), this.posX + (this.rand.nextDouble() - 0.5D) * ((double)this.width * 3.0D), this.posY + this.rand.nextDouble() * 72.0D, this.posZ + (this.rand.nextDouble() - 0.5D) * ((double)this.width * 3.0D), 0.0D, 0.5D, 0.0D);
    }
    }

    if (this.worldObj.difficultySetting == EnumDifficulty.PEACEFUL)
    {
    List list1 = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(2.0D, 2.0D, 2.0D));

    if (list1 != null && !list1.isEmpty())
    {
    for (int i1 = 0; i1 < list1.size(); ++i1)
    {
    Entity entity = (Entity)list1.get(i1);

    if (entity instanceof EntityUltimaBlade)
    {
    entity.setDead();
    }
    }
    }
    }
    }

    public boolean attackEntityAsMob(Entity p_70652_1_)
    {
    if (p_70652_1_.height > 8.0F || p_70652_1_ instanceof EntityTitan)
    {
    float f = (float)this.getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue();
    int i = this.getKnockbackAmount();
    this.attackChoosenEntity(p_70652_1_, f, i);
    this.attackChoosenEntity(p_70652_1_, f, i);
    this.attackChoosenEntity(p_70652_1_, f, i);
    this.attackChoosenEntity(p_70652_1_, f, i);
    return super.attackEntityAsMob(p_70652_1_);
    }
    else
    {
    return false;
    }
    }

    protected void updateAITasks()
    {
    --this.attackTimer;

    int i;


    if (this.getInvulTime() > 0)
    {
    i = this.getInvulTime() - 1;

    if (i <= 0)
    {
    this.worldObj.newExplosion(this, this.posX, this.posY, this.posZ, 3000, true, true);

    this.worldObj.playBroadcastSound(1013, (int)this.posX, (int)this.posY, (int)this.posZ, 0);
    this.worldObj.playBroadcastSound(1013, (int)this.posX, (int)this.posY, (int)this.posZ, 0);
    this.worldObj.playBroadcastSound(1013, (int)this.posX, (int)this.posY, (int)this.posZ, 0);
    this.worldObj.playBroadcastSound(1013, (int)this.posX, (int)this.posY, (int)this.posZ, 0);
    }
    }
    super.updateAITasks();
    int i1;

    for (i = 1; i < 3; ++i)
    {
    if (this.ticksExisted >= this.field_82223_h[i - 1])
    {
    this.field_82223_h[i - 1] = this.ticksExisted + this.rand.nextInt(20);

    int k2 = i - 1;
    int l2 = this.field_82224_i[i - 1];
    this.field_82224_i[k2] = this.field_82224_i[i - 1] + 1;

    if (l2 > 15)
    {
    for (int i11 = 0; i11 < 100; ++i11)
    {
    float f = 100.0F;
    float f1 = 20.0F;
    double d0 = MathHelper.getRandomDoubleInRange(this.rand, this.posX - (double)f, this.posX + (double)f);
    double d1 = MathHelper.getRandomDoubleInRange(this.rand, this.posY - (double)f1, this.posY + (double)f1);
    double d2 = MathHelper.getRandomDoubleInRange(this.rand, this.posZ - (double)f, this.posZ + (double)f);
    this.launchWitherSkullToCoords(i + 1, d0, d1, d2, true);
    }
    this.field_82224_i[i - 1] = 0;
    }

    i1 = this.getWatchedTargetId(i);

    if (i1 > 0)
    {
    Entity entity = this.worldObj.getEntityByID(i1);

    if (entity != null && entity.isEntityAlive() && this.getDistanceSqToEntity(entity) <= 200000.0D && this.canEntityBeSeen(entity))
    {
    this.launchWitherSkullToEntity(i + 1, (EntityLivingBase)entity);
    this.field_82223_h[i - 1] = this.ticksExisted;
    this.field_82224_i[i - 1] = 0;
    }
    else
    {
    this.func_82211_c(i, 0);
    }
    }
    else
    {
    List list = this.worldObj.selectEntitiesWithinAABB(EntityLivingBase.class, this.boundingBox.expand(100.0D, 100.0D, 100.0D), attackEntitySelector);

    for (int k1 = 0; k1 < 10 && !list.isEmpty(); ++k1)
    {
    EntityLivingBase entitylivingbase = (EntityLivingBase)list.get(this.rand.nextInt(list.size()));

    if (entitylivingbase != this && entitylivingbase.isEntityAlive() && this.canEntityBeSeen(entitylivingbase))
    {
    if (entitylivingbase instanceof EntityPlayer)
    {
    if (!((EntityPlayer)entitylivingbase).capabilities.disableDamage)
    {
    this.func_82211_c(i, entitylivingbase.getEntityId());
    }
    }
    else
    {
    this.func_82211_c(i, entitylivingbase.getEntityId());
    }

    break;
    }

    list.remove(entitylivingbase);
    }
    }
    }
    }

    if (this.getAttackTarget() != null)
    {
    this.func_82211_c(0, this.getAttackTarget().getEntityId());
    }
    else
    {
    this.func_82211_c(0, 0);
    }

    if (this.blockBreakCounter > 0)
    {
    --this.blockBreakCounter;

    if (this.blockBreakCounter == 0 && this.worldObj.getGameRules().getGameRuleBooleanValue("mobGriefing"))
    {
    i = MathHelper.floor_double(this.posY);
    i1 = MathHelper.floor_double(this.posX);
    int j1 = MathHelper.floor_double(this.posZ);
    boolean flag = false;

    for (int l1 = -1; l1 <= 24; ++l1)
    {
    for (int i2 = -1; i2 <= 24; ++i2)
    {
    for (int j = 0; j <= 72; ++j)
    {
    int j2 = i1 + l1;
    int k = i + j;
    int l = j1 + i2;
    Block block = this.worldObj.getBlock(j2, k, l);

    if (!block.isAir(worldObj, j2, k, l) && block != net.minecraft.init.Blocks.bedrock && block != net.minecraft.init.Blocks.end_portal && block != net.minecraft.init.Blocks.end_portal_frame && block != net.minecraft.init.Blocks.command_block)
    {
    flag = this.worldObj.func_147480_a(j2, k, l, true) || flag;
    }
    }
    }
    }

    if (flag)
    {
    this.destroyBlocksInAABB(this.boundingBox);
    this.worldObj.playAuxSFXAtEntity((EntityPlayer)null, 1012, (int)this.posX, (int)this.posY, (int)this.posZ, 0);
    }
    }
    }
    }

    public void func_82206_m()
    {
    this.setInvulTime(2720);
    }

    /**
    * Called by the /kill command.
    */
    public void onKillCommand()
    {
    ArrayList list11 = Lists.newArrayList(this.worldObj.playerEntities);

    if (list11 != null && !list11.isEmpty())
    {
    for (int i1 = 0; i1 < list11.size(); ++i1)
    {
    Entity entity = (Entity)list11.get(i1);

    if (entity != null && entity instanceof EntityPlayer)
    {
    ((EntityPlayer)entity).addChatMessage(new ChatComponentText(StatCollector.translateToLocal("dialog.witherzilla.killattempt")));
    }
    }
    }
    }

    private double func_82214_u(int p_82214_1_)
    {
    if (p_82214_1_ <= 0)
    {
    return this.posX;
    }
    else
    {
    float f = (this.renderYawOffset + (float)(180 * (p_82214_1_ - 1))) / 180.0F * (float)Math.PI;
    float f1 = MathHelper.cos(f);
    return this.posX + (double)f1 * 32.0D;
    }
    }

    private double func_82208_v(int p_82208_1_)
    {
    return p_82208_1_ <= 0 ? 63.0F : 55.0F;
    }

    private double func_82213_w(int p_82213_1_)
    {
    if (p_82213_1_ <= 0)
    {
    return this.posZ;
    }
    else
    {
    float f = (this.renderYawOffset + (float)(180 * (p_82213_1_ - 1))) / 180.0F * (float)Math.PI;
    float f1 = MathHelper.sin(f);
    return this.posZ + (double)f1 * 32.0D;
    }
    }

    private float func_82204_b(float p_82204_1_, float p_82204_2_, float p_82204_3_)
    {
    float f3 = MathHelper.wrapAngleTo180_float(p_82204_2_ - p_82204_1_);

    if (f3 > p_82204_3_)
    {
    f3 = p_82204_3_;
    }

    if (f3 < -p_82204_3_)
    {
    f3 = -p_82204_3_;
    }

    return p_82204_1_ + f3;
    }

    private void launchWitherSkullToEntity(int p_82216_1_, EntityLivingBase p_82216_2_)
    {
    if (p_82216_2_ instanceof EntityTitan || p_82216_2_.height >= 8.0F)
    {
    double d0 = this.getDistanceSqToEntity(p_82216_2_);

    if (d0 < 512.0D)
    {
    if (this.attackTimer <= 0)
    {
    this.attackTimer = 10;
    this.attackEntityAsMob(p_82216_2_);
    }
    }
    }
    else
    {
    this.launchWitherSkullToCoords(p_82216_1_, p_82216_2_.posX, p_82216_2_.posY + (double)p_82216_2_.getEyeHeight() * 0.5D, p_82216_2_.posZ, p_82216_1_ == 0 && this.rand.nextFloat() < 0.001F);
    }

    this.launchWitherSkullToCoords(p_82216_1_, p_82216_2_.posX, p_82216_2_.posY + (double)p_82216_2_.getEyeHeight() * 0.5D, p_82216_2_.posZ, p_82216_1_ == 0 && this.rand.nextFloat() < 0.001F);
    }

    /**
    * Launches a Wither skull toward (par2, par4, par6)
    */
    private void launchWitherSkullToCoords(int p_82209_1_, double p_82209_2_, double p_82209_4_, double p_82209_6_, boolean p_82209_8_)
    {
    double d3 = this.func_82214_u(p_82209_1_);
    double d4 = this.func_82208_v(p_82209_1_);
    double d5 = this.func_82213_w(p_82209_1_);
    double d6 = p_82209_2_ - d3;
    double d7 = p_82209_4_ - d4;
    double d8 = p_82209_6_ - d5;
    EntityWitherSkull entitywitherskull = new EntityWitherSkull(this.worldObj, this, d6, d7, d8);

    if (p_82209_8_)
    {
    entitywitherskull.setInvulnerable(true);
    }

    entitywitherskull.posY = d4;
    entitywitherskull.posX = d3;
    entitywitherskull.posZ = d5;

    this.worldObj.playSoundEffect(d3, d4, d5, "mob.wither.shoot", 3.0F, 0.8F);

    this.worldObj.spawnEntityInWorld(entitywitherskull);
    }

    /**
    * Attack the specified entity using a ranged attack.
    */
    public void attackEntityWithRangedAttack(EntityLivingBase p_82196_1_, float p_82196_2_)
    {
    if (p_82196_1_ instanceof EntityTitan || p_82196_1_.height >= 8.0F)
    {
    double d0 = this.getDistanceSqToEntity(p_82196_1_);

    if (d0 < 512.0D)
    {
    if (this.attackTimer <= 0)
    {
    this.attackTimer = 1 + this.rand.nextInt(9);
    this.attackEntityAsMob(p_82196_1_);
    }
    }
    }
    else
    {
    this.launchWitherSkullToEntity(0, p_82196_1_);
    }
    }

    public boolean attackEntityFrom(DamageSource source, float amount)
    {
    if (this.rand.nextInt(10) == 0)
    this.omegacounter = 600;

    if (source.getEntity() instanceof EntityWitherzillaMinion || source.getEntity() instanceof EntityWitherzilla || source.isExplosion() && !(source.getEntity() instanceof EntityWitherTurret))
    {
    return false;
    }
    else if (this.isArmored() && !(source.getEntity() instanceof EntityPlayer) && !(source.getEntity() instanceof EntityTitan))
    {
    if (source.getEntity() != null && this.rand.nextInt(10) == 0)
    this.teleportToEntity(source.getEntity(), false);

    return false;
    }
    else
    {
    if (this.blockBreakCounter <= 0)
    {
    this.blockBreakCounter = 1;
    }

    return super.attackEntityFrom(source, amount);
    }
    }

    /**
    * Called when the entity is attacked.
    */
    public boolean attackWitherzillaFrom(DamageSource source, float amount)
    {
    if (source.getEntity() instanceof EntityWitherzillaMinion || source.getEntity() instanceof EntityWitherzilla || source.isExplosion() && !(source.getEntity() instanceof EntityWitherTurret))
    {
    return false;
    }
    else if (this.isArmored() && !(source.getEntity() instanceof EntityPlayer) && !(source.getEntity() instanceof EntityTitan))
    {
    return false;
    }
    else
    {
    if (this.blockBreakCounter <= 0)
    {
    this.blockBreakCounter = 1;
    }

    return super.attackEntityFrom(source, amount);
    }
    }

    /**
    * Drop 0-2 items of this living's type
    */
    protected void dropFewItems(boolean p_70628_1_, int p_70628_2_)
    {
    this.dropItem(Items.diamond, 256);
    this.dropItem(Items.emerald, 256);
    this.dropItem(Items.gold_ingot, 256);
    this.dropItem(Items.iron_ingot, 256);
    this.dropItem(TitanItems.harcadium, 64);
    this.entityDropItem(new ItemStack(Blocks.bedrock, 32, 0), 0.0F);
    this.dropItem(Items.nether_star, 64);

    for (int l = 256; l < 256; ++l)
    {
    this.entityDropItem(new ItemStack(Items.iron_ingot), 12.0F);
    }

    for (int l = 256; l < 256; ++l)
    {
    this.entityDropItem(new ItemStack(Items.gold_ingot), 12.0F);
    }

    for (int l = 256; l < 256; ++l)
    {
    this.entityDropItem(new ItemStack(Items.diamond), 12.0F);
    }

    for (int l = 64; l < 64; ++l)
    {
    this.entityDropItem(new ItemStack(TitanItems.harcadium), 12.0F);
    }

    for (int l = 64; l < 64; ++l)
    {
    this.entityDropItem(new ItemStack(Items.nether_star), 12.0F);
    }

    for (int l = 256; l < 256; ++l)
    {
    this.entityDropItem(new ItemStack(Items.emerald), 12.0F);
    }

    for (int l = 32; l < 32; ++l)
    {
    this.entityDropItem(new ItemStack(Blocks.bedrock), 12.0F);
    }
    }

    /**
    * Makes the entity despawn if requirements are reached
    */
    protected void despawnEntity() {}

    /**
    * Returns the volume for the sounds this mob makes.
    */
    protected float getSoundVolume()
    {
    return 1000.0F;
    }

    @SideOnly(Side.CLIENT)
    public int getBrightnessForRender(float p_70070_1_)
    {
    return 15728880;
    }

    /**
    * Gets how bright this entity is.
    */
    public float getBrightness(float p_70013_1_)
    {
    return 1.0F;
    }

    public void fall(float distance, float damageMultiplier) {}

    /**
    * adds a PotionEffect to the entity
    */
    public void addPotionEffect(PotionEffect p_70690_1_) {}

    @SideOnly(Side.CLIENT)
    public float func_82207_a(int p_82207_1_)
    {
    return this.field_82221_e[p_82207_1_];
    }

    @SideOnly(Side.CLIENT)
    public float func_82210_r(int p_82210_1_)
    {
    return this.field_82220_d[p_82210_1_];
    }

    /**
    * Returns the target entity ID if present, or -1 if not @param par1 The target offset, should be from 0-2
    */
    public int getWatchedTargetId(int p_82203_1_)
    {
    return this.dataWatcher.getWatchableObjectInt(17 + p_82203_1_);
    }

    public void func_82211_c(int p_82211_1_, int p_82211_2_)
    {
    this.dataWatcher.updateObject(17 + p_82211_1_, Integer.valueOf(p_82211_2_));
    }

    /**
    * Returns whether the wither is armored with its boss armor or not by checking whether its health is below half of
    * its maximum.
    */
    public boolean isArmored()
    {
    return this.getHealth() <= this.getMaxHealth() / 2.0F;
    }

    /**
    * Get this Entity's EnumCreatureAttribute
    */
    public EnumCreatureAttribute getCreatureAttribute()
    {
    return EnumCreatureAttribute.UNDEAD;
    }

    /**
    * Called when a player mounts an entity. e.g. mounts a pig, mounts a boat.
    */
    public void mountEntity(Entity entityIn)
    {
    this.ridingEntity = null;
    }

    public StatBase getAchievement()
    {
    return TheTitans.witherzilla;
    }

    /**
    * handles entity death timer, experience orb and particle creation
    */
    protected void onDeathUpdate()
    {
    ++this.deathTicks;

    if (this.deathTicks > 180 && this.deathTicks % 1 == 0)
    {
    float f = (this.rand.nextFloat() - 0.5F) * 24.0F;
    float f1 = (this.rand.nextFloat() - 0.5F) * 80.0F;
    float f2 = (this.rand.nextFloat() - 0.5F) * 24.0F;
    this.worldObj.spawnParticle("hugeexplosion", this.posX + (double)f, this.posY + 2.0D + (double)f1, this.posZ + (double)f2, 0.0D, 0.0D, 0.0D);
    }

    int i;
    int j;

    if (!this.worldObj.isRemote)
    {
    if (this.deathTicks > 100 && this.deathTicks % 1 == 0)
    {
    this.dropItem(Items.gold_ingot, 1);
    this.dropItem(Items.iron_ingot, 1);

    List list11 = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(256.0D, 256.0D, 256.0D));

    if (list11 != null && !list11.isEmpty())
    {
    for (int i1 = 0; i1 < list11.size(); ++i1)
    {
    Entity entity = (Entity)list11.get(i1);

    if (entity != null && entity instanceof EntityWitherzillaMinion)
    {
    ((EntityWitherzillaMinion)entity).attackEntityFrom(DamageSource.outOfWorld, 1.0F);
    }
    }
    }
    }

    if (this.deathTicks > 150 && this.deathTicks % 1 == 0)
    {
    this.dropItem(Items.diamond, 1);
    this.dropItem(Items.emerald, 1);
    this.dropItem(TitanItems.harcadium, 1);
    this.entityDropItem(new ItemStack(Blocks.bedrock, 1, 0), 0.0F);
    }

    if (this.deathTicks > 100 && this.deathTicks % 1 == 0)
    {
    i = 1000;

    while (i > 0)
    {
    this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY, this.posZ, i));
    }
    }

    if (this.deathTicks == 1)
    {
    this.worldObj.playBroadcastSound(1018, (int)this.posX, (int)this.posY, (int)this.posZ, 0);

    ArrayList listp = Lists.newArrayList(this.worldObj.playerEntities);

    if (listp != null && !listp.isEmpty())
    {
    for (int i1 = 0; i1 < listp.size(); ++i1)
    {
    Entity entity = (Entity)listp.get(i1);

    if (entity != null && entity instanceof EntityPlayer)
    {
    ((EntityPlayer)entity).triggerAchievement(TheTitans.witherzilla);

    ItemStack item = new ItemStack(TitanItems.ultimaBlade);
    ((EntityPlayer)entity).entityDropItem(item, 0.0F);
    this.playLivingSound();
    ((EntityPlayer)entity).addChatMessage(new ChatComponentText(StatCollector.translateToLocal("dialog.witherzilla.death")));
    }
    }
    }
    }
    }

    this.moveEntity(0.0D, 0.2D, 0.0D);
    this.renderYawOffset = this.rotationYaw += 20.0F;
    this.renderYawOffset = this.rotationYawHead += 20.0F;

    if (this.deathTicks == 210 && !this.worldObj.isRemote)
    {
    this.dropItem(Items.diamond, 256);
    this.dropItem(Items.emerald, 256);
    this.dropItem(Items.gold_ingot, 256);
    this.dropItem(Items.iron_ingot, 256);
    this.dropItem(TitanItems.harcadium, 64);
    this.entityDropItem(new ItemStack(Blocks.bedrock, 32, 0), 0.0F);
    this.dropItem(Items.nether_star, 64);

    if (!this.worldObj.isRemote)
    {
    Iterator iterator = this.worldObj.getEntitiesWithinAABB(EntityPlayer.class, this.boundingBox.expand(256.0D, 256.0D, 256.0D)).iterator();

    while (iterator.hasNext())
    {
    EntityPlayer entityplayer = (EntityPlayer)iterator.next();
    entityplayer.triggerAchievement(AchievementList.field_150964_J);
    }
    }

    i = 500000;

    while (i > 0)
    {
    j = EntityXPOrb.getXPSplit(i);
    i -= j;
    this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY, this.posZ, j));
    }

    this.createBeaconPortal(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.posZ));

    if (!this.worldObj.isRemote)
    {
    EntityTitanSpirit entitytitan = new EntityTitanSpirit(this.worldObj);
    entitytitan.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, 0.0F);
    this.setDead();
    this.worldObj.spawnEntityInWorld(entitytitan);
    entitytitan.setVesselHunting(true);
    entitytitan.setSpiritType(11);
    }

    List list11 = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(256.0D, 256.0D, 256.0D));

    if (list11 != null && !list11.isEmpty())
    {
    for (int i1 = 0; i1 < list11.size(); ++i1)
    {
    Entity entity = (Entity)list11.get(i1);

    if (entity != null && entity instanceof EntityWitherzillaMinion)
    {
    ((EntityWitherzillaMinion)entity).setDead();
    }
    }
    }
    }
    }

    private void createBeaconPortal(int p_70975_1_, int p_70975_2_)
    {
    byte b0 = 64;
    BlockEndPortal.field_149948_a = true;
    byte b1 = 4;

    for (int k = b0 - 1; k <= b0 + 32; ++k)
    {
    for (int l = p_70975_1_ - b1; l <= p_70975_1_ + b1; ++l)
    {
    for (int i1 = p_70975_2_ - b1; i1 <= p_70975_2_ + b1; ++i1)
    {
    double d0 = (double)(l - p_70975_1_);
    double d1 = (double)(i1 - p_70975_2_);
    double d2 = d0 * d0 + d1 * d1;

    if (d2 <= ((double)b1 - 0.5D) * ((double)b1 - 0.5D))
    {
    if (k < b0)
    {
    if (d2 <= ((double)(b1 - 1) - 0.5D) * ((double)(b1 - 1) - 0.5D))
    {
    this.worldObj.setBlock(l, k, i1, Blocks.bedrock);
    }
    }
    else if (k > b0)
    {
    this.worldObj.setBlock(l, k, i1, Blocks.air);
    }
    else if (d2 > ((double)(b1 - 1) - 0.5D) * ((double)(b1 - 1) - 0.5D))
    {
    this.worldObj.setBlock(l, k, i1, Blocks.bedrock);
    }
    else
    {
    this.worldObj.setBlock(l, k, i1, Blocks.end_portal);
    }
    }
    }
    }
    }

    this.worldObj.setBlock(p_70975_1_, b0 + 0, p_70975_2_, Blocks.bedrock);
    this.worldObj.setBlock(p_70975_1_, b0 + 1, p_70975_2_, Blocks.bedrock);
    this.worldObj.setBlock(p_70975_1_, b0 + 2, p_70975_2_, Blocks.bedrock);
    this.worldObj.setBlock(p_70975_1_ - 1, b0 + 2, p_70975_2_, Blocks.torch);
    this.worldObj.setBlock(p_70975_1_ + 1, b0 + 2, p_70975_2_, Blocks.torch);
    this.worldObj.setBlock(p_70975_1_, b0 + 2, p_70975_2_ - 1, Blocks.torch);
    this.worldObj.setBlock(p_70975_1_, b0 + 2, p_70975_2_ + 1, Blocks.torch);
    this.worldObj.setBlock(p_70975_1_, b0 + 3, p_70975_2_, Blocks.bedrock);
    this.worldObj.setBlock(p_70975_1_, b0 + 4, p_70975_2_, Blocks.diamond_block);
    this.worldObj.setBlock(p_70975_1_ + 1, b0 + 4, p_70975_2_ + 1, Blocks.diamond_block);
    this.worldObj.setBlock(p_70975_1_ + 1, b0 + 4, p_70975_2_, Blocks.diamond_block);
    this.worldObj.setBlock(p_70975_1_ + 1, b0 + 4, p_70975_2_ - 1, Blocks.diamond_block);
    this.worldObj.setBlock(p_70975_1_ - 1, b0 + 4, p_70975_2_ + 1, Blocks.diamond_block);
    this.worldObj.setBlock(p_70975_1_ - 1, b0 + 4, p_70975_2_, Blocks.diamond_block);
    this.worldObj.setBlock(p_70975_1_ - 1, b0 + 4, p_70975_2_ - 1, Blocks.diamond_block);
    this.worldObj.setBlock(p_70975_1_, b0 + 4, p_70975_2_ + 1, Blocks.diamond_block);
    this.worldObj.setBlock(p_70975_1_, b0 + 4, p_70975_2_ - 1, Blocks.diamond_block);
    this.worldObj.setBlock(p_70975_1_, b0 + 5, p_70975_2_, Blocks.beacon);
    }

    protected void collideWithNearbyEntities(){}

    public float getEyeHeight()
    {
    return 63.0F;
    }

    /**
    * Teleport the enderman to a random nearby position
    */
    protected boolean teleportRandomly(boolean bool)
    {
    double d0 = this.posX + (this.rand.nextDouble() - 0.5D) * 64.0D;
    double d2 = this.posZ + (this.rand.nextDouble() - 0.5D) * 64.0D;


    if (bool)
    return this.teleportTo(0D, 200D, 0D);
    else
    return this.teleportTo(d0, 200D, d2);
    }

    /**
    * Teleport the enderman to another entity
    */
    protected boolean teleportToEntity(Entity p_70816_1_, boolean bool)
    {
    Vec3 vec3 = Vec3.createVectorHelper(this.posX - p_70816_1_.posX, this.boundingBox.minY + (double)(this.height / 2.0F) - p_70816_1_.posY + (double)p_70816_1_.getEyeHeight(), this.posZ - p_70816_1_.posZ);
    vec3 = vec3.normalize();
    double d0 = 32.0D;
    double d1 = this.posX + (this.rand.nextDouble() - 0.5D) * 16.0D - vec3.xCoord * d0;
    double d2 = this.posY + (double)(this.rand.nextInt(16) - 8) - vec3.yCoord * d0;
    double d3 = this.posZ + (this.rand.nextDouble() - 0.5D) * 16.0D - vec3.zCoord * d0;

    if (bool)
    return this.teleportTo(p_70816_1_.posX, p_70816_1_.posY, p_70816_1_.posZ);
    else
    return this.teleportTo(d1, d2, d3);
    }

    /**
    * Teleport the enderman
    */
    protected boolean teleportTo(double p_70825_1_, double p_70825_3_, double p_70825_5_)
    {
    EnderTeleportEvent event = new EnderTeleportEvent(this, p_70825_1_, p_70825_3_, p_70825_5_, 0);
    if (MinecraftForge.EVENT_BUS.post(event)){
    return false;
    }

    this.playSound("portal.travel", 10000.0F, this.getSoundPitch());

    if (!this.worldObj.isRemote)
    this.setPosition(p_70825_1_, p_70825_3_, p_70825_5_);

    return true;
    }


    /**
    * Whether or not the current entity is in lava
    */
    public boolean handleLavaMovement()
    {
    return false;
    }

    public boolean isInOmegaForm()
    {
    return omegacounter > 0;
    }
    }
    [/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]


    how do you manage to create this long coding and know what your doing without going insane? xD
    Posted in: Minecraft Mods
  • 0

    posted a message on digital clock texture pack that works

    i have been trying to find a working texture pack that changes the clock to a digital clock, but all the ones i have found ether dont work or are a file type that doesnt work with minecraft(.rar files -.-) if someone knows adigital clock texture pack that works or is willing to make one please tell me! i dont use clocks much in minecraft but a digital clock ingame would be super cool for decoration and to know when its day easy xD

    Posted in: Resource Pack Help
  • 0

    posted a message on 1.8+ Engender Mod: Raise an army to defeat your enemies!

    cool... im gunna check it out right now and let you know if i find some bugs, but right away i can see (i think unless that's intended) some grammar fails in the thread xD but whatever lol


    EDIT: i have played a bit with the mod and found that having allot of these 'minions' causes the game to slow down allot, other than that no bugs or glitches so far, but you might want to try and do something so that we cant fly into the void with the enderdragon one xD

    Posted in: WIP Mods
  • 0

    posted a message on [Collection] Mithey's Maps ~ Terra Restore and More!

    suggestion for the layout of the thread rather than things for the maps, could you change the layout for the different map downloads so its like:

    latest version: [download link]
    older versions (if you want to play them):
    [download links]


    could this be done? i ask because its annoying for me to look for a version of something and never know if i have the right version of the map or not and the older versions part you don't need to add its just an idea xD

    Posted in: Maps
  • 0

    posted a message on 1.8 NEW FLOATING TEXT TECHNIQUE (NO MORE NEED FOR FLOATING HORSES!)
    Quote from RoiMalemort»


    You have to remove Invisibility and Invulnerability to then be able to destroy the Armor Stand. In order to do this, simply use the /entitydata command:

    /entitydata @e[type=ArmorStand,r=5] {Invisible:0, Invulnerable:0}

    you could also do /kill @e[type=ArmorStand] but that will remove all armor stands in the loaded chunks of the world .-.
    Posted in: Commands, Command Blocks and Functions
  • 0

    posted a message on THE TITANS MOD: The most dangerous bosses in all of Minecraft, even attacking your pc!

    this seems awkward but the username and profile pic throws me off with whether or not you're a guy or girl .-. it sounds stupid but that's how it is to me xD sorry if this offends you or something xD :P

    Posted in: Minecraft Mods
  • 0

    posted a message on [Collection] Mithey's Maps ~ Terra Restore and More!

    TR2 bug: i loaded the map on my server and when i got to the main castle area the music from the previous area did not stop playing but the current areas starts playing. so basicly music isn't stopping and then they play at the same time

    Posted in: Maps
  • 0

    posted a message on THE TITANS MOD: The most dangerous bosses in all of Minecraft, even attacking your pc!

    I've got good news and bad news.


    First the bad news...


    The Titans mod is being delayed. I never thought that it would be this difficult. So, I'm taking a small break from it.


    Good news: ANOTHER MOD IS COMING!!!


    This one is called the Engender mod, and it'll involve you crafting a special monster spawner block, from which you create vanilla mobs that are your minions. From the messily Bat to the exploding Creeper to the mighty Wither to even an Ender Dragon mount, you'll get to make a mob army with any mob you want!


    do you plan to make that new mod work with other mods, like titans or even something crazy like orespawn xD
    Posted in: Minecraft Mods
  • To post a comment, please or register a new account.