using Decimation.Content.Buffs.Buffs; using Microsoft.Xna.Framework; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Terraria; using Terraria.ID; using Terraria.ModLoader; namespace Decimation.Content.Projectiles { internal class Scarab : DecimationProjectile { protected override int Damages => 0; protected override int AnimationFrames => 2; protected override void Init() { projectile.width = 22; projectile.height = 22; projectile.aiStyle = -1; projectile.ignoreWater = true; projectile.tileCollide = false; projectile.penetrate = -1; projectile.timeLeft = int.MaxValue; } public override void AI() { Player player = Main.player[(int)(projectile.ai[0])]; if (!player.HasBuff(ModContent.BuffType())) projectile.Kill(); projectile.velocity.X += Main.rand.Next(-75, 76) * 0.005f; projectile.velocity.Y += Main.rand.Next(-75, 76) * 0.005f; if (projectile.velocity.X > 0.5f) projectile.velocity.X = 0.5f; if (projectile.velocity.Y > 0.5f) projectile.velocity.Y = 0.5f; float x = projectile.position.X; float y = projectile.position.Y; if (x < player.Center.X - 60 || x > player.Center.X + 60) projectile.velocity.X *= -1; if (y < player.Center.Y - 60 || y > player.Center.Y + 60) projectile.velocity.Y *= -1; // Follow the player float diffX = projectile.Center.X - player.Center.X; float diffY = projectile.Center.Y - player.Center.Y; if (diffX > 70) projectile.position.X -= diffX / 60; else if (diffX < -70) projectile.position.X -= diffX / 60; if (diffY > 70) projectile.position.Y -= diffY / 60; else if (diffY < -70) projectile.position.Y -= diffY / 60; } } }