Beispiel #1
0
        private void VoidAttack()
        {
            BasicIdleMovement(blackHoleWhoAmI > -1 ? 0.8f : 0.2f);

            if (timers["ARCHATK"] == 50)             //Spawn projectile
            {
                int p = Projectile.NewProjectile(npc.Center, Vector2.Zero, ModContent.ProjectileType <Projectiles.VoidCastProjectile>(), 60, 1f, Main.myPlayer);
                Main.projectile[p].timeLeft = ArchonAttackMaxTime - 50;

                blackHoleWhoAmI = p;
            }
            else if (timers["ARCHATK"] > 50 && timers["ARCHATK"] < ArchonAttackMaxTime - 100 && blackHoleWhoAmI > -1)             //Control void projectile & break if hit
            {
                if (!BlackHole.active)
                {
                    return;
                }

                BlackHole.velocity = BlackHole.DirectionTo(Target.Center) * 4;

                for (int i = 0; i < Main.maxProjectiles; ++i)
                {
                    Projectile proj = Main.projectile[i];

                    if (i != blackHoleWhoAmI && proj.active && !proj.hostile && proj.friendly && proj.DistanceSQ(BlackHole.Center) < 40 * 40)                     //Detect all friendly projectiles
                    {
                        proj.Kill();
                    }
                }
            }
        }