Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ghostHurt()

void Terraria.Projectile.ghostHurt ( int dmg,
Vector2 Position,
Entity victim )
inline

Definition at line 10646 of file Projectile.cs.

10647 {
10648 if (!magic || damage <= 0)
10649 {
10650 return;
10651 }
10652 int num = damage;
10653 if (dmg <= 1)
10654 {
10655 return;
10656 }
10657 int num2 = -1;
10658 int num3 = 1500;
10659 if (Main.player[Main.myPlayer].ghostDmg > (float)num3)
10660 {
10661 return;
10662 }
10663 Main.player[Main.myPlayer].ghostDmg += num;
10664 int[] array = new int[200];
10665 int num4 = 0;
10666 _ = new int[200];
10667 int num5 = 0;
10668 for (int i = 0; i < 200; i++)
10669 {
10670 if (!Main.npc[i].CanBeChasedBy(this))
10671 {
10672 continue;
10673 }
10674 float num6 = Math.Abs(Main.npc[i].position.X + (float)(Main.npc[i].width / 2) - position.X + (float)(width / 2)) + Math.Abs(Main.npc[i].position.Y + (float)(Main.npc[i].height / 2) - position.Y + (float)(height / 2));
10675 if (num6 < 800f)
10676 {
10677 if (Collision.CanHit(position, 1, 1, Main.npc[i].position, Main.npc[i].width, Main.npc[i].height) && num6 > 50f)
10678 {
10679 array[num5] = i;
10680 num5++;
10681 }
10682 else if (num5 == 0)
10683 {
10684 array[num4] = i;
10685 num4++;
10686 }
10687 }
10688 }
10689 if (num4 != 0 || num5 != 0)
10690 {
10691 num2 = ((num5 <= 0) ? array[Main.rand.Next(num4)] : array[Main.rand.Next(num5)]);
10692 float num7 = Main.rand.Next(-100, 101);
10693 float num8 = Main.rand.Next(-100, 101);
10694 float num9 = (float)Math.Sqrt(num7 * num7 + num8 * num8);
10695 num9 = 4f / num9;
10696 num7 *= num9;
10697 num8 *= num9;
10699 }
10700 }
static double Sqrt(double d)
static double Abs(double value)
Vector2 position
Definition Entity.cs:14
IEntitySource GetProjectileSource_OnHit(Entity victim, int projectileSourceId)
static int NewProjectile(IEntitySource spawnSource, Vector2 position, Vector2 velocity, int Type, int Damage, float KnockBack, int Owner=-1, float ai0=0f, float ai1=0f, float ai2=0f)

References System.Math.Abs(), System.array, Terraria.Collision.CanHit(), Terraria.Projectile.damage, Terraria.Projectile.GetProjectileSource_OnHit(), Terraria.Entity.height, Terraria.Projectile.magic, Terraria.Main.myPlayer, Terraria.Projectile.NewProjectile(), Terraria.Main.npc, Terraria.Projectile.owner, Terraria.Main.player, Terraria.Entity.position, Terraria.Main.rand, System.Math.Sqrt(), Terraria.Entity.width, Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.

Referenced by Terraria.Projectile.Damage().