Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. using Microsoft.Xna.Framework;
  2. using Terraria;
  3. using Terraria.ID;
  4. using Terraria.ModLoader;
  5. using System;
  6.  
  7. namespace Turrets.TurretAmmo
  8. {
  9. public class Bullet : ModProjectile
  10. {
  11. public override void SetStaticDefaults()
  12. {
  13. DisplayName.SetDefault("Turret Bullet");
  14. }
  15. public override void SetDefaults()
  16. {
  17. projectile.CloneDefaults(207);
  18. aiType = 207;
  19. projectile.ranged = true;
  20. }
  21. public void AI()
  22. {
  23. var enemynumber = 0;
  24. var x = 0;
  25. var y = 0;
  26. var score = 100;
  27. var bestscore = 100;
  28. for (int i = 0; i < Main.npc.Length; i++) {
  29. var enemy = Main.npc[i];
  30. 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)));
  31. if (score < bestscore) {
  32. bestscore = score;
  33. x = Convert.ToInt32(enemy.position.X);
  34. y = Convert.ToInt32(enemy.position.Y);
  35. enemynumber = i;
  36. }
  37. }
  38. NPC target = Main.npc[enemynumber];
  39. float shootToX = target.position.X + (float)target.width * 0.5f - projectile.Center.X;
  40. float shootToY = target.position.Y - projectile.Center.Y;
  41. float distance = (float)System.Math.Sqrt((double)(shootToX * shootToX + shootToY * shootToY));
  42. if(distance < 480f && !target.friendly && target.active)
  43. {
  44. distance = 3f / distance;
  45. shootToX *= distance * 5;
  46. shootToY *= distance * 5;
  47. Projectile.NewProjectile(projectile.Center.X, projectile.Center.Y, shootToX, shootToY, 1, 0, 0, Main.myPlayer, 0f, 0f);
  48. Main.PlaySound(2, (int)projectile.position.X, (int)projectile.position.Y, 11);
  49. projectile.ai[0] = 0f;
  50. }
  51. }
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement