Beispiel #1
0
        /// <summary>
        /// Called when the throwable hits a block or entity.
        /// </summary>
        protected override void OnImpact(MovingObjectPosition par1MovingObjectPosition)
        {
            if (par1MovingObjectPosition.EntityHit != null)
            {
                if (!par1MovingObjectPosition.EntityHit.AttackEntityFrom(DamageSource.CauseThrownDamage(this, Thrower), 0))
                {
                    ;
                }
            }

            for (int i = 0; i < 32; i++)
            {
                WorldObj.SpawnParticle("portal", PosX, PosY + Rand.NextFloat() * 2, PosZ, Rand.NextGaussian(), 0.0F, Rand.NextGaussian());
            }

            if (!WorldObj.IsRemote)
            {
                if (Thrower != null)
                {
                    Thrower.SetPositionAndUpdate(PosX, PosY, PosZ);
                    Thrower.FallDistance = 0.0F;
                    Thrower.AttackEntityFrom(DamageSource.Fall, 5);
                }

                SetDead();
            }
        }
        /// <summary>
        /// Called when the throwable hits a block or entity.
        /// </summary>
        protected override void OnImpact(MovingObjectPosition par1MovingObjectPosition)
        {
            if (par1MovingObjectPosition.EntityHit != null)
            {
                sbyte byte0 = 0;

                if (par1MovingObjectPosition.EntityHit is EntityBlaze)
                {
                    byte0 = 3;
                }

                if (!par1MovingObjectPosition.EntityHit.AttackEntityFrom(DamageSource.CauseThrownDamage(this, Thrower), byte0))
                {
                    ;
                }
            }

            for (int i = 0; i < 8; i++)
            {
                WorldObj.SpawnParticle("snowballpoof", PosX, PosY, PosZ, 0.0F, 0.0F, 0.0F);
            }

            if (!WorldObj.IsRemote)
            {
                SetDead();
            }
        }
Beispiel #3
0
        /// <summary>
        /// Called when the throwable hits a block or entity.
        /// </summary>
        protected override void OnImpact(MovingObjectPosition par1MovingObjectPosition)
        {
            if (par1MovingObjectPosition.EntityHit != null)
            {
                if (!par1MovingObjectPosition.EntityHit.AttackEntityFrom(DamageSource.CauseThrownDamage(this, Thrower), 0))
                {
                    ;
                }
            }

            if (!WorldObj.IsRemote && Rand.Next(8) == 0)
            {
                sbyte byte0 = 1;

                if (Rand.Next(32) == 0)
                {
                    byte0 = 4;
                }

                for (int j = 0; j < byte0; j++)
                {
                    EntityChicken entitychicken = new EntityChicken(WorldObj);
                    entitychicken.SetGrowingAge(-24000);
                    entitychicken.SetLocationAndAngles(PosX, PosY, PosZ, RotationYaw, 0.0F);
                    WorldObj.SpawnEntityInWorld(entitychicken);
                }
            }

            for (int i = 0; i < 8; i++)
            {
                WorldObj.SpawnParticle("snowballpoof", PosX, PosY, PosZ, 0.0F, 0.0F, 0.0F);
            }

            if (!WorldObj.IsRemote)
            {
                SetDead();
            }
        }