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

◆ DrawProj_TerraBlade2()

void Terraria.Main.DrawProj_TerraBlade2 ( Projectile proj)
inlineprivate

Definition at line 26011 of file Main.cs.

26012 {
26013 Vector2 vector = proj.Center - screenPosition;
26016 Vector2 origin = rectangle.Size() / 2f;
26017 float num = proj.scale * 1.1f;
26018 SpriteEffects effects = ((!(proj.ai[0] >= 0f)) ? SpriteEffects.FlipVertically : SpriteEffects.None);
26019 float num2 = proj.localAI[0] / proj.ai[1];
26020 float num3 = Utils.Remap(num2, 0f, 0.6f, 0f, 1f) * Utils.Remap(num2, 0.6f, 1f, 1f, 0f);
26021 float num4 = 0.975f;
26022 float num5 = Lighting.GetColor(proj.Center.ToTileCoordinates()).ToVector3().Length() / (float)Math.Sqrt(3.0);
26023 num5 = 0.5f + num5 * 0.5f;
26024 num5 = Utils.Remap(num5, 0.2f, 1f, 0f, 1f);
26025 Microsoft.Xna.Framework.Color color = new Microsoft.Xna.Framework.Color(45, 124, 205);
26026 spriteBatch.Draw(val.Value, vector, rectangle, color * num5 * num3, proj.rotation + proj.ai[0] * ((float)Math.PI / 4f) * -1f * (1f - num2), origin, num * 0.95f, effects, 0f);
26029 Microsoft.Xna.Framework.Color color4 = Microsoft.Xna.Framework.Color.White * num3 * 0.5f;
26030 color4.A = (byte)((float)(int)color4.A * (1f - num5));
26032 color5.G = (byte)((float)(int)color5.G * num5);
26033 color5.B = (byte)((float)(int)color5.R * (0.25f + num5 * 0.75f));
26034 spriteBatch.Draw(val.Value, vector, rectangle, color5 * 0.15f, proj.rotation + proj.ai[0] * 0.01f, origin, num, effects, 0f);
26035 spriteBatch.Draw(val.Value, vector, rectangle, color3 * num5 * num3 * 0.3f, proj.rotation, origin, num, effects, 0f);
26036 spriteBatch.Draw(val.Value, vector, rectangle, color2 * num5 * num3 * 0.5f, proj.rotation, origin, num * num4, effects, 0f);
26037 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);
26038 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);
26039 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);
26040 for (float num6 = 0f; num6 < 12f; num6 += 1f)
26041 {
26042 float num7 = proj.rotation + proj.ai[0] * (num6 - 2f) * ((float)Math.PI * -2f) * 0.025f + Utils.Remap(num2, 0f, 1f, 0f, (float)Math.PI / 4f) * proj.ai[0];
26043 Vector2 drawpos = vector + num7.ToRotationVector2() * ((float)val.Width() * 0.5f - 6f) * num;
26044 float num8 = num6 / 12f;
26045 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)) * num, Vector2.One * num);
26046 }
26047 Vector2 drawpos2 = vector + (proj.rotation + Utils.Remap(num2, 0f, 1f, 0f, (float)Math.PI / 4f) * proj.ai[0]).ToRotationVector2() * ((float)val.Width() * 0.5f - 4f) * num;
26048 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)) * num, Vector2.One * num * 1.5f);
26049 }
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

References Terraria.Main.DrawPrettyStarSparkle(), Terraria.Lighting.GetColor(), 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().