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

◆ DrawProj_FlailChains_Old()

static void Terraria.Main.DrawProj_FlailChains_Old ( Projectile proj,
Vector2 mountedCenter )
inlinestaticprivate

Definition at line 32596 of file Main.cs.

32597 {
32598 Vector2 vector = new Vector2(proj.position.X + (float)proj.width * 0.5f, proj.position.Y + (float)proj.height * 0.5f);
32599 float num = mountedCenter.X - vector.X;
32600 float num2 = mountedCenter.Y - vector.Y;
32601 float rotation = (float)Math.Atan2(num2, num) - 1.57f;
32602 if (proj.alpha == 0)
32603 {
32604 int num3 = -1;
32605 if (proj.position.X + (float)(proj.width / 2) < mountedCenter.X)
32606 {
32607 num3 = 1;
32608 }
32609 if (player[proj.owner].direction == 1)
32610 {
32611 player[proj.owner].itemRotation = (float)Math.Atan2(num2 * (float)num3, num * (float)num3);
32612 }
32613 else
32614 {
32615 player[proj.owner].itemRotation = (float)Math.Atan2(num2 * (float)num3, num * (float)num3);
32616 }
32617 }
32618 bool flag = true;
32619 int num4 = 0;
32620 int num5 = 25;
32621 if (proj.type == 757)
32622 {
32623 num5 = 12;
32624 }
32625 while (flag)
32626 {
32627 float num6 = (float)Math.Sqrt(num * num + num2 * num2);
32628 if (num6 < (float)num5)
32629 {
32630 flag = false;
32631 }
32632 else if (float.IsNaN(num6))
32633 {
32634 flag = false;
32635 }
32636 else
32637 {
32638 num6 = ((proj.type == 154 || proj.type == 247) ? (18f / num6) : ((proj.type != 757) ? (12f / num6) : (16f / num6)));
32639 num *= num6;
32640 num2 *= num6;
32641 vector.X += num;
32642 vector.Y += num2;
32643 num = mountedCenter.X - vector.X;
32644 num2 = mountedCenter.Y - vector.Y;
32645 Microsoft.Xna.Framework.Color color = Lighting.GetColor((int)vector.X / 16, (int)(vector.Y / 16f));
32646 if (proj.type == 25)
32647 {
32648 EntitySpriteDraw(TextureAssets.Chain2.Value, new Vector2(vector.X - screenPosition.X, vector.Y - screenPosition.Y), new Microsoft.Xna.Framework.Rectangle(0, 0, TextureAssets.Chain2.Width(), TextureAssets.Chain2.Height()), color, rotation, new Vector2((float)TextureAssets.Chain2.Width() * 0.5f, (float)TextureAssets.Chain2.Height() * 0.5f), 1f, SpriteEffects.None);
32649 }
32650 else if (proj.type == 35)
32651 {
32652 EntitySpriteDraw(TextureAssets.Chain6.Value, new Vector2(vector.X - screenPosition.X, vector.Y - screenPosition.Y), new Microsoft.Xna.Framework.Rectangle(0, 0, TextureAssets.Chain6.Width(), TextureAssets.Chain6.Height()), color, rotation, new Vector2((float)TextureAssets.Chain6.Width() * 0.5f, (float)TextureAssets.Chain6.Height() * 0.5f), 1f, SpriteEffects.None);
32653 }
32654 else if (proj.type == 757)
32655 {
32656 Texture2D value = TextureAssets.Extra[99].Value;
32657 Microsoft.Xna.Framework.Rectangle r = value.Frame(1, 6, 0, num4 % 6);
32658 EntitySpriteDraw(value, new Vector2(vector.X - screenPosition.X, vector.Y - screenPosition.Y), value.Frame(1, 6, 0, num4 % 6), color, rotation, r.Size() / 2f, 1f, SpriteEffects.None);
32659 }
32660 else if (proj.type == 247)
32661 {
32662 EntitySpriteDraw(TextureAssets.Chain19.Value, new Vector2(vector.X - screenPosition.X, vector.Y - screenPosition.Y), new Microsoft.Xna.Framework.Rectangle(0, 0, TextureAssets.Chain19.Width(), TextureAssets.Chain19.Height()), color, rotation, new Vector2((float)TextureAssets.Chain19.Width() * 0.5f, (float)TextureAssets.Chain19.Height() * 0.5f), 1f, SpriteEffects.None);
32663 }
32664 else if (proj.type == 63)
32665 {
32666 EntitySpriteDraw(TextureAssets.Chain7.Value, new Vector2(vector.X - screenPosition.X, vector.Y - screenPosition.Y), new Microsoft.Xna.Framework.Rectangle(0, 0, TextureAssets.Chain7.Width(), TextureAssets.Chain7.Height()), color, rotation, new Vector2((float)TextureAssets.Chain7.Width() * 0.5f, (float)TextureAssets.Chain7.Height() * 0.5f), 1f, SpriteEffects.None);
32667 }
32668 else if (proj.type == 154)
32669 {
32670 EntitySpriteDraw(TextureAssets.Chain13.Value, new Vector2(vector.X - screenPosition.X, vector.Y - screenPosition.Y), new Microsoft.Xna.Framework.Rectangle(0, 0, TextureAssets.Chain13.Width(), TextureAssets.Chain13.Height()), color, rotation, new Vector2((float)TextureAssets.Chain13.Width() * 0.5f, (float)TextureAssets.Chain13.Height() * 0.5f), 1f, SpriteEffects.None);
32671 }
32672 else
32673 {
32674 EntitySpriteDraw(TextureAssets.Chain3.Value, new Vector2(vector.X - screenPosition.X, vector.Y - screenPosition.Y), new Microsoft.Xna.Framework.Rectangle(0, 0, TextureAssets.Chain3.Width(), TextureAssets.Chain3.Height()), color, rotation, new Vector2((float)TextureAssets.Chain3.Width() * 0.5f, (float)TextureAssets.Chain3.Height() * 0.5f), 1f, SpriteEffects.None);
32675 }
32676 }
32677 num4++;
32678 }
32679 }
static double Atan2(double y, double x)
static double Sqrt(double d)
static Asset< Texture2D > Chain2
static Asset< Texture2D > Chain6
static Asset< Texture2D > Chain7
static Asset< Texture2D > Chain19
static Asset< Texture2D >[] Extra
static Asset< Texture2D > Chain3
static Asset< Texture2D > Chain13
static Vector2 screenPosition
Definition Main.cs:1715
static Player[] player
Definition Main.cs:1803
static void EntitySpriteDraw(Texture2D texture, Vector2 position, Microsoft.Xna.Framework.Rectangle? sourceRectangle, Microsoft.Xna.Framework.Color color, float rotation, Vector2 origin, float scale, SpriteEffects effects, float worthless=0f)
Definition Main.cs:34658

References System.Math.Atan2(), Terraria.GameContent.TextureAssets.Chain13, Terraria.GameContent.TextureAssets.Chain19, Terraria.GameContent.TextureAssets.Chain2, Terraria.GameContent.TextureAssets.Chain3, Terraria.GameContent.TextureAssets.Chain6, Terraria.GameContent.TextureAssets.Chain7, Terraria.Main.EntitySpriteDraw(), Terraria.GameContent.TextureAssets.Extra, Terraria.Lighting.GetColor(), Terraria.Main.player, Terraria.Main.screenPosition, System.Math.Sqrt(), System.value, and Microsoft.Xna.Framework.Graphics.Vector2.