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

◆ AI_162_TigerPounce()

void Terraria.Projectile.AI_162_TigerPounce ( )
inlineprivate

Definition at line 38626 of file Projectile.cs.

38627 {
38628 if (ai[0] < 0f)
38629 {
38630 Opacity = 0f;
38631 ai[0] += 1f;
38632 return;
38633 }
38634 bool flag = false;
38635 flag = true;
38636 if (frameCounter == 0)
38637 {
38638 frameCounter = 1;
38639 localAI[0] = base.Center.X;
38640 localAI[1] = base.Center.Y;
38641 flag = true;
38642 }
38643 Vector2 vector = new Vector2(localAI[0], localAI[1]);
38645 float y = Vector2.Distance(vector, vector2) * 1.5f;
38646 float num = 0.1f;
38647 Vector2 value = Vector2.Lerp(vector, vector2, 0f - num) + new Vector2(0f, y);
38648 Vector2 value2 = Vector2.Lerp(vector, vector2, 1f + num) + new Vector2(0f, y);
38649 if (Opacity < 1f)
38650 {
38651 Opacity += 0.1f;
38652 }
38653 int num2 = Math.Sign(vector2.X - vector.X);
38654 rotation += (float)num2 * -0.2f;
38656 if (ai[1] < 1f)
38657 {
38658 ai[1] = 60f;
38659 }
38660 ai[0] += 1f / ai[1];
38662 if (flag)
38663 {
38664 for (float num3 = 0f; num3 < 1f; num3 += 0.5f)
38665 {
38666 if (Main.rand.Next(19) == 0)
38667 {
38668 Vector2 vector4 = base.Center + DirectionTo(vector3).SafeNormalize(Vector2.UnitY) * 100f;
38669 Dust dust = Dust.NewDustPerfect(base.Center + base.Size * Main.rand.NextVector2Square(0f, 1f), 278, Main.rand.NextVector2Circular(3f, 3f), 100, Color.White * 0.4f);
38670 dust.velocity.Y += -0.6f;
38671 dust.velocity += velocity * 0.1f;
38672 Main.rand.Next(5);
38673 dust.velocity = (vector4 - base.Center) * 0.05f;
38674 dust.fadeIn = 0f;
38675 dust.scale = 0.7f;
38676 dust.noGravity = true;
38677 }
38678 }
38679 if (Main.rand.Next(2) == 0)
38680 {
38681 Dust obj = Main.dust[Dust.NewDust(position, width, height, 269)];
38682 obj.fadeIn = 0.7f;
38683 obj.scale = 0.4f;
38684 obj.velocity += velocity * 0.001f;
38685 obj.noLight = true;
38686 }
38687 }
38688 base.Center = vector3;
38689 if (ai[0] >= 1f)
38690 {
38691 Kill();
38692 }
38693 }
static int Sign(decimal value)
Definition Math.cs:1202
Vector2 velocity
Definition Entity.cs:16
Vector2 position
Definition Entity.cs:14
Vector2 DirectionTo(Vector2 Destination)
Definition Entity.cs:197
static Vector2 CatmullRom(Vector2 value1, Vector2 value2, Vector2 value3, Vector2 value4, float amount)
Definition Vector2.cs:273
static float Distance(Vector2 value1, Vector2 value2)
Definition Vector2.cs:91
static Vector2 Lerp(Vector2 value1, Vector2 value2, float amount)
Definition Vector2.cs:227

References Microsoft.Xna.Framework.Vector2.CatmullRom(), Microsoft.Xna.Framework.Vector2.Distance(), Terraria.Main.dust, Microsoft.Xna.Framework.Vector2.Lerp(), Terraria.Dust.NewDust(), Terraria.Dust.NewDustPerfect(), System.obj, Terraria.Main.rand, System.Math.Sign(), Microsoft.Xna.Framework.Vector2.UnitY, System.value, and Microsoft.Xna.Framework.Color.White.