private static void On_Terraria_Main_DrawProjectiles(On.Terraria.Main.orig_DrawProjectiles orig, Main self) { var matrix = PrimitiveTrailSystem.GetTransformMatrix(); if (PrimitiveTrailSystem.AlphaBlendTrails.Count > 0) { Main.spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, Main.DefaultSamplerState, DepthStencilState.None, Main.instance.Rasterizer, null, Main.GameViewMatrix.TransformationMatrix); { foreach (var trail in PrimitiveTrailSystem.AlphaBlendTrails) { trail.Draw(Main.spriteBatch, matrix); } } Main.spriteBatch.End(); } if (PrimitiveTrailSystem.AdditiveBlendTrails.Count > 0) { Main.spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive, Main.DefaultSamplerState, DepthStencilState.None, Main.instance.Rasterizer, null, Main.GameViewMatrix.TransformationMatrix); { foreach (var trail in PrimitiveTrailSystem.AdditiveBlendTrails) { trail.Draw(Main.spriteBatch, matrix); } } Main.spriteBatch.End(); } orig(self); }
public override void OnSpawn() { var trail = new Content.Trails.RoundedTrail(target: projectile, length: 16 * 7, width: (p) => 16 * (1 - p * 0.8f), color: (p) => Color.Lerp(EffectColor, new Color(11, 26, 138), p) * (1 - p) * 0.4f, additive: true, smoothness: 15); trail.SetDissolveSpeed(0.35f); trail.SetEffectTexture(OrchidHelper.GetExtraTexture(5)); PrimitiveTrailSystem.NewTrail(trail); }
public override void OnSpawn() { var trail = new Content.Trails.TriangularTrail(target: projectile, length: 16 * 5, width: (p) => 5 * (1 - p), color: (p) => BoreanStriderScepterProj.EffectColor * (1 - p) * 0.25f); trail.SetDissolveSpeed(0.35f); PrimitiveTrailSystem.NewTrail(trail); projectile.frame = Main.rand.Next(3); }
public override void OnSpawn() { _trail = new SimpleTrail(target: projectile, length: 16 * 6, width: (progress) => 18, color: (progress) => Color.Lerp(new Color(198, 61, 255), new Color(107, 61, 255), progress) * (1 - progress)); _trail.SetMaxPoints(15); _trail.SetEffectTexture(OrchidHelper.GetExtraTexture(4)); PrimitiveTrailSystem.NewTrail(_trail); projectile.friendly = false; this.IsGreen = false; }
public override void OnSpawn() { _trail = new RoundedTrail ( target: projectile, length: 16 * 10, width: (p) => 4 * (1 - p), color: (p) => EffectColor * (1 - p), additive: true, smoothness: 20 ); PrimitiveTrailSystem.NewTrail(_trail); }
public override void OnSpawn() { var trail = new Content.Trails.RoundedTrail(target: projectile, length: 16 * 10, width: (p) => 10 * (1 - p), color: (p) => EffectColor * (1 - p) * 0.5f, smoothness: 25); PrimitiveTrailSystem.NewTrail(trail); }