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

◆ DrawProj_FlailChains()

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

Definition at line 32503 of file Main.cs.

32504 {
32505 Player player = Main.player[proj.owner];
32507 playerArmPosition -= Vector2.UnitY * player.gfxOffY;
32508 Asset<Texture2D> val = null;
32510 float num = 0f;
32511 switch (proj.type)
32512 {
32513 default:
32514 val = TextureAssets.Chain3;
32515 break;
32516 case 25:
32517 val = TextureAssets.Chain2;
32518 break;
32519 case 35:
32520 val = TextureAssets.Chain6;
32521 break;
32522 case 63:
32523 val = TextureAssets.Chain7;
32524 break;
32525 case 154:
32526 val = TextureAssets.Chain13;
32527 break;
32528 case 247:
32529 val = TextureAssets.Chain19;
32530 break;
32531 case 757:
32532 val = TextureAssets.Extra[99];
32533 sourceRectangle = val.Frame(1, 6);
32534 num = -2f;
32535 break;
32536 case 947:
32537 val = TextureAssets.Chain41;
32538 break;
32539 case 948:
32540 val = TextureAssets.Chain43;
32541 break;
32542 }
32543 Vector2 origin = (sourceRectangle.HasValue ? (sourceRectangle.Value.Size() / 2f) : (val.Size() / 2f));
32544 Vector2 center = proj.Center;
32545 Vector2 v = playerArmPosition.MoveTowards(center, 4f) - center;
32546 Vector2 vector = v.SafeNormalize(Vector2.Zero);
32547 float num2 = (float)(sourceRectangle.HasValue ? sourceRectangle.Value.Height : val.Height()) + num;
32548 float rotation = vector.ToRotation() + (float)Math.PI / 2f;
32549 int num3 = 0;
32550 float num4 = v.Length() + num2 / 2f;
32551 int num5 = 0;
32552 while (num4 > 0f)
32553 {
32554 Microsoft.Xna.Framework.Color color = Lighting.GetColor((int)center.X / 16, (int)(center.Y / 16f));
32555 switch (proj.type)
32556 {
32557 case 757:
32558 sourceRectangle = val.Frame(1, 6, 0, num3 % 6);
32559 break;
32560 case 948:
32561 if (num5 >= 6)
32562 {
32563 val = (val = TextureAssets.Chain41);
32564 }
32565 else if (num5 >= 4)
32566 {
32567 val = (val = TextureAssets.Chain42);
32568 byte b = 140;
32569 if (color.R < b)
32570 {
32571 color.R = b;
32572 }
32573 if (color.G < b)
32574 {
32575 color.G = b;
32576 }
32577 if (color.B < b)
32578 {
32579 color.B = b;
32580 }
32581 }
32582 else
32583 {
32585 }
32586 num5++;
32587 break;
32588 }
32589 spriteBatch.Draw(val.Value, center - screenPosition, sourceRectangle, color, rotation, origin, 1f, SpriteEffects.None, 0f);
32590 center += vector * num2;
32591 num3++;
32592 num4 -= num2;
32593 }
32594 }
const double PI
Definition Math.cs:16
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 Asset< Texture2D > Chain42
static Asset< Texture2D > Chain43
static Asset< Texture2D > Chain41
static Vector2 GetPlayerArmPosition(Projectile proj)
Definition Main.cs:34265
static SpriteBatch spriteBatch
Definition Main.cs:974
static Vector2 screenPosition
Definition Main.cs:1715
static Player[] player
Definition Main.cs:1803

References Microsoft.Xna.Framework.Color.B, Terraria.GameContent.TextureAssets.Chain13, Terraria.GameContent.TextureAssets.Chain19, Terraria.GameContent.TextureAssets.Chain2, Terraria.GameContent.TextureAssets.Chain3, Terraria.GameContent.TextureAssets.Chain41, Terraria.GameContent.TextureAssets.Chain42, Terraria.GameContent.TextureAssets.Chain43, Terraria.GameContent.TextureAssets.Chain6, Terraria.GameContent.TextureAssets.Chain7, Terraria.GameContent.TextureAssets.Extra, Microsoft.Xna.Framework.Color.G, Terraria.Lighting.GetColor(), Terraria.Main.GetPlayerArmPosition(), Microsoft.Xna.Framework.Vector2.Length(), System.Math.PI, Terraria.Main.player, Microsoft.Xna.Framework.Color.R, Terraria.Main.screenPosition, Terraria.Main.spriteBatch, Microsoft.Xna.Framework.Color.White, and Microsoft.Xna.Framework.Vector2.Zero.

Referenced by Terraria.Main.DrawProjDirect().