Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Microsoft.Xna.Framework;
- using Terraria;
- using Terraria.ID;
- using Terraria.ModLoader;
- using System;
- namespace Turrets.TurretAmmo
- {
- public class Bullet : ModProjectile
- {
- public override void SetStaticDefaults()
- {
- DisplayName.SetDefault("Turret Bullet");
- }
- public override void SetDefaults()
- {
- projectile.CloneDefaults(207);
- aiType = 207;
- projectile.ranged = true;
- }
- public void AI()
- {
- var enemynumber = 0;
- var x = 0;
- var y = 0;
- var score = 100;
- var bestscore = 100;
- for (int i = 0; i < Main.npc.Length; i++) {
- var enemy = Main.npc[i];
- score = (Math.Abs(Convert.ToInt32(projectile.Center.X) - Convert.ToInt32(enemy.position.X)) + Math.Abs(Convert.ToInt32(projectile.Center.Y) - Convert.ToInt32(enemy.position.Y)));
- if (score < bestscore) {
- bestscore = score;
- x = Convert.ToInt32(enemy.position.X);
- y = Convert.ToInt32(enemy.position.Y);
- enemynumber = i;
- }
- }
- NPC target = Main.npc[enemynumber];
- float shootToX = target.position.X + (float)target.width * 0.5f - projectile.Center.X;
- float shootToY = target.position.Y - projectile.Center.Y;
- float distance = (float)System.Math.Sqrt((double)(shootToX * shootToX + shootToY * shootToY));
- if(distance < 480f && !target.friendly && target.active)
- {
- distance = 3f / distance;
- shootToX *= distance * 5;
- shootToY *= distance * 5;
- Projectile.NewProjectile(projectile.Center.X, projectile.Center.Y, shootToX, shootToY, 1, 0, 0, Main.myPlayer, 0f, 0f);
- Main.PlaySound(2, (int)projectile.position.X, (int)projectile.position.Y, 11);
- projectile.ai[0] = 0f;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement