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

◆ DrawProj_TrueExcalibur()

void Terraria.Main.DrawProj_TrueExcalibur ( Projectile proj)
inlineprivate

Definition at line 25914 of file Main.cs.

25915 {
25916 Vector2 vector = proj.Center - screenPosition;
25919 Vector2 origin = rectangle.Size() / 2f;
25920 float num = proj.scale * 1.1f;
25921 SpriteEffects effects = ((!(proj.ai[0] >= 0f)) ? SpriteEffects.FlipVertically : SpriteEffects.None);
25922 float num2 = proj.localAI[0] / proj.ai[1];
25923 float num3 = Utils.Remap(num2, 0f, 0.6f, 0f, 1f) * Utils.Remap(num2, 0.6f, 1f, 1f, 0f);
25924 float num4 = 0.975f;
25925 float amount = num3;
25926 float fromValue = Lighting.GetColor(proj.Center.ToTileCoordinates()).ToVector3().Length() / (float)Math.Sqrt(3.0);
25927 fromValue = Utils.Remap(fromValue, 0.2f, 1f, 0f, 1f);
25929 spriteBatch.Draw(val.Value, vector, rectangle, color * fromValue * num3, proj.rotation + proj.ai[0] * ((float)Math.PI / 4f) * -1f * (1f - num2), origin, num, effects, 0f);
25932 Microsoft.Xna.Framework.Color color4 = Microsoft.Xna.Framework.Color.White * num3 * 0.5f;
25933 color4.A = (byte)((float)(int)color4.A * (1f - fromValue));
25935 color5.G = (byte)((float)(int)color5.G * fromValue);
25936 color5.B = (byte)((float)(int)color5.R * (0.25f + fromValue * 0.75f));
25937 spriteBatch.Draw(val.Value, vector, rectangle, color5 * 0.15f, proj.rotation + proj.ai[0] * 0.01f, origin, num, effects, 0f);
25938 spriteBatch.Draw(val.Value, vector, rectangle, color3 * fromValue * num3 * 0.3f, proj.rotation, origin, num, effects, 0f);
25939 spriteBatch.Draw(val.Value, vector, rectangle, color2 * fromValue * num3 * 0.5f, proj.rotation, origin, num * num4, effects, 0f);
25940 spriteBatch.Draw(val.Value, vector, val.Frame(1, 4, 0, 3), Microsoft.Xna.Framework.Color.White * 0.6f * num3, proj.rotation + proj.ai[0] * 0.01f, origin, num, effects, 0f);
25941 spriteBatch.Draw(val.Value, vector, val.Frame(1, 4, 0, 3), Microsoft.Xna.Framework.Color.White * 0.5f * num3, proj.rotation + proj.ai[0] * -0.05f, origin, num * 0.8f, effects, 0f);
25942 spriteBatch.Draw(val.Value, vector, val.Frame(1, 4, 0, 3), Microsoft.Xna.Framework.Color.White * 0.4f * num3, proj.rotation + proj.ai[0] * -0.1f, origin, num * 0.6f, effects, 0f);
25943 float num5 = num * 0.75f;
25944 for (float num6 = 0f; num6 < 12f; num6 += 1f)
25945 {
25946 float num7 = proj.rotation + proj.ai[0] * num6 * ((float)Math.PI * -2f) * 0.025f + Utils.Remap(num2, 0f, 0.6f, 0f, 0.95504415f) * proj.ai[0];
25947 Vector2 drawpos = vector + num7.ToRotationVector2() * ((float)val.Width() * 0.5f - 6f) * num;
25948 float num8 = num6 / 12f;
25949 DrawPrettyStarSparkle(proj.Opacity, SpriteEffects.None, drawpos, new Microsoft.Xna.Framework.Color(255, 255, 255, 0) * num3 * num8, color3, num2, 0f, 0.5f, 0.5f, 1f, num7, new Vector2(0f, Utils.Remap(num2, 0f, 1f, 3f, 0f)) * num5, Vector2.One * num5);
25950 }
25951 Vector2 drawpos2 = vector + (proj.rotation + Utils.Remap(num2, 0f, 0.6f, 0f, 0.95504415f) * proj.ai[0]).ToRotationVector2() * ((float)val.Width() * 0.5f - 4f) * num;
25952 DrawPrettyStarSparkle(proj.Opacity, SpriteEffects.None, drawpos2, new Microsoft.Xna.Framework.Color(255, 255, 255, 0) * num3 * 0.5f, color3, num2, 0f, 0.5f, 0.5f, 1f, 0f, new Vector2(2f, Utils.Remap(num2, 0f, 1f, 4f, 1f)) * num5, Vector2.One * num5);
25953 }
static double Sqrt(double d)
const double PI
Definition Math.cs:16
static Asset< Texture2D >[] Projectile
static void DrawPrettyStarSparkle(float opacity, SpriteEffects dir, Vector2 drawpos, Microsoft.Xna.Framework.Color drawColor, Microsoft.Xna.Framework.Color shineColor, float flareCounter, float fadeInStart, float fadeInEnd, float fadeOutStart, float fadeOutEnd, float rotation, Vector2 scale, Vector2 fatness)
Definition Main.cs:32485
static SpriteBatch spriteBatch
Definition Main.cs:974
static Vector2 screenPosition
Definition Main.cs:1715
static Color Lerp(Color value1, Color value2, float amount)
Definition Color.cs:491

References Terraria.Main.DrawPrettyStarSparkle(), Terraria.Lighting.GetColor(), Microsoft.Xna.Framework.Color.Lerp(), Microsoft.Xna.Framework.Vector2.One, System.Math.PI, Terraria.GameContent.TextureAssets.Projectile, Terraria.Utils.Remap(), Terraria.Main.screenPosition, Terraria.Main.spriteBatch, and System.Math.Sqrt().

Referenced by Terraria.Main.DrawProjDirect().