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

◆ DrawProj_TerraBlade2Shot()

void Terraria.Main.DrawProj_TerraBlade2Shot ( Projectile proj)
inlineprivate

Definition at line 26051 of file Main.cs.

26052 {
26053 Vector2 vector = proj.Center - screenPosition;
26056 Vector2 origin = rectangle.Size() / 2f;
26057 float scale = proj.scale;
26058 SpriteEffects spriteEffects = ((!(proj.ai[0] >= 0f)) ? SpriteEffects.FlipVertically : SpriteEffects.None);
26059 SpriteEffects effects = spriteEffects ^ SpriteEffects.FlipVertically;
26060 float num = Utils.Remap(proj.localAI[0], 0f, proj.ai[1] + 30f, 0f, 1f);
26061 float opacity = proj.Opacity;
26062 float num2 = 0.975f;
26063 float num3 = Lighting.GetColor(proj.Center.ToTileCoordinates()).ToVector3().Length() / (float)Math.Sqrt(3.0);
26064 num3 = 0.5f + num3 * 0.5f;
26065 num3 = Utils.Remap(num3, 0.2f, 1f, 0f, 1f);
26066 Microsoft.Xna.Framework.Color color = new Microsoft.Xna.Framework.Color(45, 124, 205);
26067 spriteBatch.Draw(val.Value, vector, rectangle, color * num3 * opacity, proj.rotation + proj.ai[0] * ((float)Math.PI / 4f) * 0.5f * -1f * (1f - num), origin, scale * 0.95f, spriteEffects, 0f);
26068 spriteBatch.Draw(val.Value, vector, rectangle, color * num3 * opacity, proj.rotation + proj.ai[0] * ((float)Math.PI / 4f) * 0.5f * 1f * (1f - num), origin, scale * 0.95f, effects, 0f);
26071 Microsoft.Xna.Framework.Color color4 = Microsoft.Xna.Framework.Color.White * opacity * 0.5f;
26072 color4.A = (byte)((float)(int)color4.A * (1f - num3));
26074 color5.G = (byte)((float)(int)color5.G * num3);
26075 color5.B = (byte)((float)(int)color5.R * (0.25f + num3 * 0.75f));
26076 spriteBatch.Draw(val.Value, vector, rectangle, color5 * 0.15f, proj.rotation + proj.ai[0] * 0.01f, origin, scale, spriteEffects, 0f);
26077 spriteBatch.Draw(val.Value, vector, rectangle, color5 * 0.15f, proj.rotation + proj.ai[0] * -0.01f, origin, scale, effects, 0f);
26078 float num4 = 1f - num;
26079 float num5 = 0.25f;
26080 float num6 = 0.15f;
26081 float num7 = 0.05f;
26082 spriteBatch.Draw(val.Value, vector, rectangle, color3 * num3 * opacity * 0.3f, proj.rotation + proj.ai[0] * num5 * num4, origin, scale, spriteEffects, 0f);
26083 spriteBatch.Draw(val.Value, vector, rectangle, color3 * num3 * opacity * 0.3f, proj.rotation + (0f - proj.ai[0]) * num5 * num4, origin, scale, effects, 0f);
26084 spriteBatch.Draw(val.Value, vector, rectangle, color2 * num3 * opacity * 0.5f, proj.rotation + proj.ai[0] * num6 * num4, origin, scale * num2, spriteEffects, 0f);
26085 spriteBatch.Draw(val.Value, vector, val.Frame(1, 4, 0, 3), Microsoft.Xna.Framework.Color.White * 0.6f * opacity, proj.rotation + proj.ai[0] * num7 * num4, origin, scale, spriteEffects, 0f);
26086 spriteBatch.Draw(val.Value, vector, val.Frame(1, 4, 0, 3), Microsoft.Xna.Framework.Color.White * 0.5f * opacity, proj.rotation + proj.ai[0] * -0.05f, origin, scale * 0.8f, spriteEffects, 0f);
26087 spriteBatch.Draw(val.Value, vector, val.Frame(1, 4, 0, 3), Microsoft.Xna.Framework.Color.White * 0.4f * opacity, proj.rotation + proj.ai[0] * -0.1f, origin, scale * 0.6f, spriteEffects, 0f);
26088 for (float num8 = -9f; num8 < 9f; num8 += 1f)
26089 {
26090 float num9 = proj.rotation + proj.ai[0] * num8 * ((float)Math.PI * -2f) * 0.025f;
26091 Vector2 drawpos = vector + num9.ToRotationVector2() * ((float)val.Width() * 0.5f - 6f) * scale;
26092 float num10 = Math.Abs(num8) / 9f;
26093 DrawPrettyStarSparkle(proj.Opacity, SpriteEffects.None, drawpos, new Microsoft.Xna.Framework.Color(255, 255, 255, 0) * opacity * num10, color3, num, 0f, 0.5f, 0.5f, 1f, num9, new Vector2(0f, Utils.Remap(num, 0f, 1f, 3f, 0f)) * scale, Vector2.One * scale);
26094 }
26095 for (float num11 = -1f; num11 <= 1f; num11 += 0.5f)
26096 {
26097 if (num11 != 0f)
26098 {
26099 Vector2 drawpos2 = vector + (proj.rotation + num11 * (float)Math.PI * 0.75f * num).ToRotationVector2() * ((float)val.Width() * 0.5f - 4f) * scale;
26100 float num12 = Utils.Remap(Math.Abs(num11), 0f, 1f, 1f, 0.5f);
26101 DrawPrettyStarSparkle(proj.Opacity, SpriteEffects.None, drawpos2, new Microsoft.Xna.Framework.Color(255, 255, 255, 0) * opacity * 0.5f, color3, num, 0f, 0.5f, 0.5f, 0.75f, (float)Math.PI / 4f, new Vector2(Utils.Remap(num, 0f, 1f, 4f, 1f)) * scale * num12, Vector2.One * scale * num12);
26102 DrawPrettyStarSparkle(proj.Opacity, SpriteEffects.None, drawpos2, new Microsoft.Xna.Framework.Color(255, 255, 255, 0) * opacity * 0.5f, color3, num, 0f, 0.5f, 0.5f, 0.75f, 0f, new Vector2(2f, Utils.Remap(num, 0f, 1f, 4f, 1f)) * scale * num12, Vector2.One * scale * num12);
26103 }
26104 }
26105 Vector2 drawpos3 = vector + proj.rotation.ToRotationVector2() * ((float)val.Width() * 0.5f - 4f) * scale;
26106 DrawPrettyStarSparkle(proj.Opacity, SpriteEffects.None, drawpos3, new Microsoft.Xna.Framework.Color(255, 255, 255, 0) * opacity * 0.5f, color3, num, 0f, 0.5f, 0.5f, 1f, (float)Math.PI / 4f, new Vector2(Utils.Remap(num, 0f, 1f, 4f, 1f)) * scale, Vector2.One * scale * 1.5f);
26107 DrawPrettyStarSparkle(proj.Opacity, SpriteEffects.None, drawpos3, new Microsoft.Xna.Framework.Color(255, 255, 255, 0) * opacity * 0.5f, color3, num, 0f, 0.5f, 0.5f, 1f, 0f, new Vector2(2f, Utils.Remap(num, 0f, 1f, 4f, 1f)) * scale, Vector2.One * scale * 1.5f);
26108 }
static double Sqrt(double d)
static double Abs(double value)
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 System.Math.Abs(), 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().