41 lines
1.7 KiB
C#
41 lines
1.7 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: Terraria.Graphics.EmpressBladeDrawer
|
|
// Assembly: Terraria, Version=1.4.0.5, Culture=neutral, PublicKeyToken=null
|
|
// MVID: 67F9E73E-0A81-4937-A22C-5515CD405A83
|
|
// Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe
|
|
|
|
using Microsoft.Xna.Framework;
|
|
using Terraria.DataStructures;
|
|
using Terraria.Graphics.Shaders;
|
|
|
|
namespace Terraria.Graphics
|
|
{
|
|
public struct EmpressBladeDrawer
|
|
{
|
|
public const int TotalIllusions = 1;
|
|
public const int FramesPerImportantTrail = 60;
|
|
private static VertexStrip _vertexStrip = new VertexStrip();
|
|
public Color ColorStart;
|
|
public Color ColorEnd;
|
|
|
|
public void Draw(Projectile proj)
|
|
{
|
|
double num = (double) proj.ai[1];
|
|
MiscShaderData miscShaderData = GameShaders.Misc["EmpressBlade"];
|
|
miscShaderData.UseShaderSpecificData(new Vector4(1f, 0.0f, 0.0f, 0.6f));
|
|
miscShaderData.Apply(new DrawData?());
|
|
EmpressBladeDrawer._vertexStrip.PrepareStrip(proj.oldPos, proj.oldRot, new VertexStrip.StripColorFunction(this.StripColors), new VertexStrip.StripHalfWidthFunction(this.StripWidth), -Main.screenPosition + proj.Size / 2f, new int?(proj.oldPos.Length), true);
|
|
EmpressBladeDrawer._vertexStrip.DrawTrail();
|
|
Main.pixelShader.CurrentTechnique.Passes[0].Apply();
|
|
}
|
|
|
|
private Color StripColors(float progressOnStrip)
|
|
{
|
|
Color color = Color.Lerp(this.ColorStart, this.ColorEnd, Utils.GetLerpValue(0.0f, 0.7f, progressOnStrip, true)) * (1f - Utils.GetLerpValue(0.0f, 0.98f, progressOnStrip, true));
|
|
color.A /= (byte) 2;
|
|
return color;
|
|
}
|
|
|
|
private float StripWidth(float progressOnStrip) => 36f;
|
|
}
|
|
}
|