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

◆ DrawProj_Flamethrower()

static void Terraria.Main.DrawProj_Flamethrower ( Projectile proj)
inlinestaticprivate

Definition at line 32332 of file Main.cs.

32333 {
32334 bool flag = proj.ai[0] == 1f;
32335 float num = 60f;
32336 float num2 = 12f;
32337 float fromMax = num + num2;
32340 Microsoft.Xna.Framework.Color color = new Microsoft.Xna.Framework.Color(255, 80, 20, 200);
32344 float num3 = 0.35f;
32345 float num4 = 0.7f;
32346 float num5 = 0.85f;
32347 float num6 = ((proj.localAI[0] > num - 10f) ? 0.175f : 0.2f);
32348 if (flag)
32349 {
32350 color = new Microsoft.Xna.Framework.Color(95, 120, 255, 200);
32351 color2 = new Microsoft.Xna.Framework.Color(50, 180, 255, 70);
32352 color3 = new Microsoft.Xna.Framework.Color(95, 160, 255, 100);
32353 color4 = new Microsoft.Xna.Framework.Color(33, 125, 202, 100);
32354 }
32355 int num7 = 3;
32356 int num8 = 2;
32357 int verticalFrames = 7;
32358 float num9 = Utils.Remap(proj.localAI[0], num, fromMax, 1f, 0f);
32359 float num10 = Math.Min(proj.localAI[0], 20f);
32360 float num11 = Utils.Remap(proj.localAI[0], 0f, fromMax, 0f, 1f);
32361 float num12 = Utils.Remap(num11, 0.2f, 0.5f, 0.25f, 1f);
32362 Microsoft.Xna.Framework.Rectangle rectangle = ((!flag) ? value.Frame(1, verticalFrames, 0, 3) : value.Frame(1, verticalFrames, 0, (int)Utils.Remap(num11, 0.5f, 1f, 3f, 5f)));
32363 if (!(num11 < 1f))
32364 {
32365 return;
32366 }
32367 for (int i = 0; i < 2; i++)
32368 {
32369 for (float num13 = 1f; num13 >= 0f; num13 -= num6)
32370 {
32371 transparent = ((num11 < 0.1f) ? Microsoft.Xna.Framework.Color.Lerp(Microsoft.Xna.Framework.Color.Transparent, color, Utils.GetLerpValue(0f, 0.1f, num11, clamped: true)) : ((num11 < 0.2f) ? Microsoft.Xna.Framework.Color.Lerp(color, color2, Utils.GetLerpValue(0.1f, 0.2f, num11, clamped: true)) : ((num11 < num3) ? color2 : ((num11 < num4) ? Microsoft.Xna.Framework.Color.Lerp(color2, color3, Utils.GetLerpValue(num3, num4, num11, clamped: true)) : ((num11 < num5) ? Microsoft.Xna.Framework.Color.Lerp(color3, color4, Utils.GetLerpValue(num4, num5, num11, clamped: true)) : ((!(num11 < 1f)) ? Microsoft.Xna.Framework.Color.Transparent : Microsoft.Xna.Framework.Color.Lerp(color4, Microsoft.Xna.Framework.Color.Transparent, Utils.GetLerpValue(num5, 1f, num11, clamped: true))))))));
32372 float num14 = (1f - num13) * Utils.Remap(num11, 0f, 0.2f, 0f, 1f);
32373 Vector2 vector = proj.Center - screenPosition + proj.velocity * (0f - num10) * num13;
32376 if (!flag)
32377 {
32378 color6.G /= 2;
32379 color6.B /= 2;
32380 color6.A = (byte)Math.Min((float)(int)color5.A + 80f * num14, 255f);
32381 Utils.Remap(proj.localAI[0], 20f, fromMax, 0f, 1f);
32382 }
32383 float num15 = 1f / num6 * (num13 + 1f);
32384 float num16 = proj.rotation + num13 * ((float)Math.PI / 2f) + GlobalTimeWrappedHourly * num15 * 2f;
32385 float num17 = proj.rotation - num13 * ((float)Math.PI / 2f) - GlobalTimeWrappedHourly * num15 * 2f;
32386 switch (i)
32387 {
32388 case 0:
32389 EntitySpriteDraw(value, vector + proj.velocity * (0f - num10) * num6 * 0.5f, rectangle, color6 * num9 * 0.25f, num16 + (float)Math.PI / 4f, rectangle.Size() / 2f, num12, SpriteEffects.None);
32391 break;
32392 case 1:
32393 if (!flag)
32394 {
32395 EntitySpriteDraw(value, vector + proj.velocity * (0f - num10) * num6 * 0.2f, rectangle, color5 * num9 * 0.25f, num16 + (float)Math.PI / 2f, rectangle.Size() / 2f, num12 * 0.75f, SpriteEffects.None);
32396 EntitySpriteDraw(value, vector, rectangle, color5 * num9, num17 + (float)Math.PI / 2f, rectangle.Size() / 2f, num12 * 0.75f, SpriteEffects.None);
32397 }
32398 break;
32399 }
32400 }
32401 }
32402 }
static byte Min(byte val1, byte val2)
Definition Math.cs:912
const double PI
Definition Math.cs:16
static Asset< Texture2D >[] Projectile
static Vector2 screenPosition
Definition Main.cs:1715
static float GlobalTimeWrappedHourly
Definition Main.cs:405
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
static Color Transparent
Definition Color.cs:76
static Color Lerp(Color value1, Color value2, float amount)
Definition Color.cs:491

References Terraria.Main.EntitySpriteDraw(), Terraria.Utils.GetLerpValue(), Terraria.Main.GlobalTimeWrappedHourly, System.Text.RegularExpressions.i, Microsoft.Xna.Framework.Color.Lerp(), System.Math.Min(), System.Math.PI, Terraria.GameContent.TextureAssets.Projectile, Terraria.Utils.Remap(), Terraria.Main.screenPosition, Microsoft.Xna.Framework.Color.Transparent, and System.value.

Referenced by Terraria.Main.DrawProjDirect().