Example #1
0
        /// <summary>
        /// Execute a one shot task or start executing a continuous task
        /// </summary>
        public override void StartExecuting()
        {
            TaskOwner.SetAttackTarget(TaskOwner.GetAITarget());

            if (Field_48395_a)
            {
                List <Entity>        list     = TaskOwner.WorldObj.GetEntitiesWithinAABB(TaskOwner.GetType(), AxisAlignedBB.GetBoundingBoxFromPool(TaskOwner.PosX, TaskOwner.PosY, TaskOwner.PosZ, TaskOwner.PosX + 1, TaskOwner.PosY + 1, TaskOwner.PosZ + 1).Expand(Field_48379_d, 4, Field_48379_d));
                IEnumerator <Entity> iterator = list.GetEnumerator();

                do
                {
                    if (!iterator.MoveNext())
                    {
                        break;
                    }

                    Entity       entity       = iterator.Current;
                    EntityLiving entityliving = (EntityLiving)entity;

                    if (TaskOwner != entityliving && entityliving.GetAttackTarget() == null)
                    {
                        entityliving.SetAttackTarget(TaskOwner.GetAITarget());
                    }
                }while (true);
            }

            base.StartExecuting();
        }
        /// <summary>
        /// Returns whether the EntityAIBase should begin execution.
        /// </summary>
        public override bool ShouldExecute()
        {
            EntityLiving entityliving = Attacker.GetAttackTarget();

            if (entityliving == null)
            {
                return(false);
            }

            if (ClassTarget != null && !ClassTarget.IsAssignableFrom(entityliving.GetType()))
            {
                return(false);
            }
            else
            {
                EntityTarget  = entityliving;
                Field_48265_g = Attacker.GetNavigator().Func_48679_a(EntityTarget);
                return(Field_48265_g != null);
            }
        }
        /// <summary>
        /// Returns whether the EntityAIBase should begin execution.
        /// </summary>
        public override bool ShouldExecute()
        {
            EntityLiving entityliving = TheEntity.GetAttackTarget();

            if (entityliving == null)
            {
                return(false);
            }
            else
            {
                Field_48362_c = entityliving;
                return(true);
            }
        }
        /// <summary>
        /// Returns whether the EntityAIBase should begin execution.
        /// </summary>
        public override bool ShouldExecute()
        {
            EntityLiving entityliving = EntityHost.GetAttackTarget();

            if (entityliving == null)
            {
                return(false);
            }
            else
            {
                AttackTarget = entityliving;
                return(true);
            }
        }