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

◆ DrawNPCDirect_Faeling()

static void Terraria.Main.DrawNPCDirect_Faeling ( SpriteBatch mySpriteBatch,
NPC rCurrentNPC,
ref Vector2 screenPos,
int typeCache,
ref Microsoft::Xna::Framework::Color npcColor,
ref Vector2 halfSize,
SpriteEffects npcSpriteEffect )
inlinestaticprivate

Definition at line 24767 of file Main.cs.

24768 {
24769 Texture2D value = TextureAssets.Npc[typeCache].Value;
24770 Vector2 vector = rCurrentNPC.Center - screenPos;
24771 int num = 5;
24772 int horizontalFrames = 4;
24773 float num2 = ((float)rCurrentNPC.whoAmI * 0.11f + (float)timeForVisualEffects / 360f) % 1f;
24774 Microsoft.Xna.Framework.Color color = hslToRgb(num2, 1f, 0.65f);
24775 color.A /= 2;
24776 float rotation = rCurrentNPC.rotation;
24778 Vector2 origin = rectangle.Size() / 2f;
24779 float scale = rCurrentNPC.scale;
24781 Microsoft.Xna.Framework.Color color2 = new Microsoft.Xna.Framework.Color(255, 255, 255, 0) * 1f;
24782 int num3 = rCurrentNPC.oldPos.Length;
24783 int num4 = num3 - 1 - 5;
24784 int num5 = 5;
24785 int num6 = 3;
24786 float num7 = 32f;
24787 float num8 = 16f;
24788 float fromMax = new Vector2(num7, num8).Length();
24789 float num9 = Utils.Remap(Vector2.Distance(rCurrentNPC.oldPos[num4], rCurrentNPC.position), 0f, fromMax, 0f, 100f);
24790 num9 = (int)num9 / 5;
24791 num9 *= 5f;
24792 num9 /= 100f;
24793 num8 *= num9;
24794 num7 *= num9;
24795 float num10 = 9f;
24796 float num11 = 0.5f;
24797 float num12 = (float)Math.PI;
24798 for (int num13 = num4; num13 >= num5; num13 -= num6)
24799 {
24800 Vector2 vector2 = rCurrentNPC.oldPos[num13] - rCurrentNPC.position;
24801 float num14 = Utils.Remap(num13, 0f, num3, 1f, 0f);
24802 float num15 = 1f - num14;
24803 Vector2 spinningpoint = new Vector2((float)Math.Sin((double)((float)rCurrentNPC.whoAmI / 17f) + timeForVisualEffects / (double)num10 + (double)(num14 * 2f * ((float)Math.PI * 2f))) * num8, 0f - num7) * num15;
24804 vector2 += spinningpoint.RotatedBy(num12);
24806 color3.A = 0;
24807 mySpriteBatch.Draw(value, vector + vector2, value2, color3 * num14 * 0.16f, rotation, origin, scale * Utils.Remap(num14 * num14, 0f, 1f, 0f, 2.5f), npcSpriteEffect, 0f);
24808 }
24809 mySpriteBatch.Draw(value, vector, value2, color2, rotation, origin, scale, npcSpriteEffect, 0f);
24812 white.A /= 2;
24813 mySpriteBatch.Draw(value, vector, value3, white, rotation, origin, scale, npcSpriteEffect, 0f);
24814 mySpriteBatch.Draw(value, vector, rectangle, color, rotation, origin, scale, npcSpriteEffect, 0f);
24815 float num16 = MathHelper.Clamp((float)Math.Sin(timeForVisualEffects / 60.0) * 0.3f + 0.3f, 0f, 1f);
24816 float num17 = 0.8f + (float)Math.Sin(timeForVisualEffects / 15.0 * 6.2831854820251465) * 0.3f;
24819 mySpriteBatch.Draw(value, vector, value4, color4, rotation, origin, scale * num17, SpriteEffects.None, 0f);
24822 mySpriteBatch.Draw(value, vector, value5, color5, rotation, origin, scale * num17, SpriteEffects.None, 0f);
24823 }
static float Clamp(float value, float min, float max)
Definition MathHelper.cs:46
static double Sin(double a)
const double PI
Definition Math.cs:16
static Asset< Texture2D >[] Npc
static double timeForVisualEffects
Definition Main.cs:1286
static Microsoft.Xna.Framework.Color hslToRgb(Vector3 hslVector)
Definition Main.cs:44913
static Color Lerp(Color value1, Color value2, float amount)
Definition Color.cs:491
static float Distance(Vector2 value1, Vector2 value2)
Definition Vector2.cs:91

References Microsoft.Xna.Framework.MathHelper.Clamp(), Microsoft.Xna.Framework.Vector2.Distance(), Terraria.Main.hslToRgb(), Microsoft.Xna.Framework.Color.Lerp(), Terraria.GameContent.TextureAssets.Npc, System.Math.PI, Terraria.Utils.Remap(), System.Math.Sin(), Terraria.Main.timeForVisualEffects, System.value, Microsoft.Xna.Framework.Graphics.Vector2, and Microsoft.Xna.Framework.Color.White.

Referenced by Terraria.Main.DrawNPCDirect().