From dd175c073880f0ebeb22d830dd6c4cc498b92ee6 Mon Sep 17 00:00:00 2001 From: SkippZzMods Date: Mon, 2 Feb 2026 23:49:25 -0500 Subject: [PATCH 1/5] files added --- Assets/Items/Magnet/UnstableCapacitator.png | Bin 0 -> 615 bytes Assets/Noise/ElectricNoise.png | Bin 0 -> 65491 bytes Content/GUI/Tooltip.cs | 2 +- .../Magnet/Accessories.UnstableCapacitator.cs | 538 ++++++++++++++++++ Effects/Source/ElectricExplosion.fx | 89 +++ Localization/en-US_Mods.StarlightRiver.hjson | 23 + 6 files changed, 651 insertions(+), 1 deletion(-) create mode 100644 Assets/Items/Magnet/UnstableCapacitator.png create mode 100644 Assets/Noise/ElectricNoise.png create mode 100644 Content/Items/Magnet/Accessories.UnstableCapacitator.cs create mode 100644 Effects/Source/ElectricExplosion.fx diff --git a/Assets/Items/Magnet/UnstableCapacitator.png b/Assets/Items/Magnet/UnstableCapacitator.png new file mode 100644 index 0000000000000000000000000000000000000000..59ecbf9f511ef4592892a1ab42d9d47b2c0ea1bc GIT binary patch literal 615 zcmV-t0+{`YP)<00001b5ch_0Itp) z=>Px%AxT6*R7i=ib#a0h=o?0K^qHckcW~$Lh(7g9O`|2mM2`r-*(SEzstux z=UlEaboDL(XHRDUc>3b4LjWB*aMS>J^xz->`+}H)DC8x1{_x(OhNZ_(02m*wIRJx0 zVM8yGmt^=_9su*sWdPp2{H7RsO3wgTSiGW;=_B$6gk<@`d6#fDuk5d9bG`>@Bl`ai z+I2@>yF7ML-t=2N#7(UZnPs~zQ#-EMgTZ*F|V0O?m%Wp)SK-DV6{|G*6Y7H zNFUM2$&UuW_$Us*!eShN+qfMpRT7fTsq4VbOb%Q7HBY~_y#zq_ks>bHeSRgA>WGBo z*xC#L9ov2AC2HA42VnBnDK|2IQz4T+5ebRpPtO!*eT(3`LUNFDF=HGFvUMIi|%HFvg=PWL$g@puw|TCEz$ zDETWZ@6k%MtB*1ncib(@0-#(j`>rb$waWVLD3$5~z_x7%Ael@AGFGcw0GOt!`8~32 zTM2lp;Z=WsS|MsQ8t5g8L?Qq*n@!(@aM=BkwOTFTzoq!~5rsk>07Rp1wQ{*Lz)pwP z>vaHPvFM)rT4xP_uC8tXDwPeVy*AqGK>ON=egc((wQ(ZCMKk~a002ovPDHLkV1iDq B6vqGn literal 0 HcmV?d00001 diff --git a/Assets/Noise/ElectricNoise.png b/Assets/Noise/ElectricNoise.png new file mode 100644 index 0000000000000000000000000000000000000000..d3cd4408b9011d3331ab4622c530d397eeff790d GIT binary patch literal 65491 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 d00008000000002eQ AssetDirectory.MagnetItem + Name; + public override void Load() + { + StarlightProjectile.OnHitNPCEvent += OnHitProjectile; + } + + public override void Unload() + { + StarlightProjectile.OnHitNPCEvent -= OnHitProjectile; + } + public UnstableCapacitator() : base("Unstable Capacitator", + "-5% magic critical strike chance\n" + + "Critically striking enemies with magic weapons consume all of your mana to cast a lightning explosion\n" + + "The explosion deals more damage based on how much mana was consumed") { } + + public override void SafeUpdateEquip(Player Player) + { + Player.GetCritChance(DamageClass.Magic) -= 5; + } + + private void OnHitProjectile(Projectile proj, NPC target, NPC.HitInfo info, int damageDone) + { + if (Equipped(Main.player[proj.owner])) + { + Player Player = Main.player[proj.owner]; + + if (proj.DamageType == DamageClass.Magic && info.Crit) + { + int manaUsed = Player.statMana; + + Player.statMana = 0; + + Projectile.NewProjectile(proj.GetSource_OnHit(target), Main.player[proj.owner].Center, Vector2.UnitY * -5f, ModContent.ProjectileType(), 0, 0f, proj.owner); + + Projectile.NewProjectile(proj.GetSource_OnHit(target), target.Center + new Vector2(Main.rand.NextFloat(-30f, 30f), -500f), Vector2.Zero, + ModContent.ProjectileType(), manaUsed, 5f, proj.owner, target.whoAmI); + } + } + } + } + + public class UnstableCapacitatorIcon : ModProjectile + { + public override string Texture => AssetDirectory.MagnetItem + "UnstableCapacitator"; + public override void SetStaticDefaults() + { + DisplayName.SetDefault("Icon"); + } + + public override void SetDefaults() + { + Projectile.width = 18; + Projectile.height = 20; + + Projectile.friendly = false; + Projectile.hostile = false; + + Projectile.penetrate = -1; + + Projectile.ignoreWater = true; + Projectile.tileCollide = false; + + Projectile.timeLeft = 60; + } + + public override void AI() + { + Projectile.Center = Main.player[Projectile.owner].Center + new Vector2(0f, -MathHelper.Lerp(0f, 60f, Eases.EaseCircularOut(1f - Projectile.timeLeft / 60f))); + } + + public override bool PreDraw(ref Color lightColor) + { + Texture2D tex = Assets.Items.Magnet.UnstableCapacitator.Value; + Texture2D starTex = Assets.StarTexture_Alt.Value; + Texture2D bloomTex = Assets.Masks.GlowSoftAlpha.Value; + + SpriteBatch sb = Main.spriteBatch; + + sb.Draw(tex, Projectile.Center - Main.screenPosition, null, lightColor * (Projectile.timeLeft / 60f), 0f, tex.Size() / 2f, 1f, 0f, 0f); + + if (Projectile.timeLeft > 40) + { + float lerper = (Projectile.timeLeft - 40) / 20f; + + sb.Draw(bloomTex, Projectile.Center - new Vector2(0f, 12f) - Main.screenPosition, null, new Color(255, 50, 255, 0) * lerper, 0f, bloomTex.Size() / 2f, 1f, 0f, 0f); + + sb.Draw(starTex, Projectile.Center - new Vector2(0f, 12f) - Main.screenPosition, null, new Color(255, 50, 255, 0) * lerper, 0f, starTex.Size() / 2f, 1f, 0f, 0f); + sb.Draw(starTex, Projectile.Center - new Vector2(0f, 12f) - Main.screenPosition, null, new Color(255, 255, 255, 0) * lerper, 0f, starTex.Size() / 2f, 1f, 0f, 0f); + } + + return false; + } + } + + public class UnstableCapacitatorBolt : ModProjectile + { + public int deathTimer; + public int flashTimer; + + private List cache; + private Trail trail; + private Trail trail2; + + public Vector2 startPos; + public override string Texture => AssetDirectory.Invisible; + public int TargetWhoAmI => (int)Projectile.ai[0]; + public float Progress => 1f - Projectile.timeLeft / 30f; + + public override void SetStaticDefaults() + { + DisplayName.SetDefault("Lightning Explosion"); + } + + public override void SetDefaults() + { + Projectile.Size = new Vector2(6); + + Projectile.DamageType = DamageClass.Magic; + + Projectile.hostile = false; + Projectile.friendly = false; + + Projectile.tileCollide = false; + + // five frame lifetime + + Projectile.timeLeft = 30; + Projectile.extraUpdates = 6; + } + + public override void OnSpawn(IEntitySource source) + { + SoundHelper.PlayPitched("Magic/LightningCast", 1.2f, 2f, Projectile.Center); + + startPos = Projectile.Center; + flashTimer = 90; + } + + public override void AI() + { + if (Main.netMode != NetmodeID.Server) + { + ManageCaches(); + ManageTrail(); + } + + if (flashTimer > 0) + flashTimer--; + + if (deathTimer > 0) + { + Projectile.timeLeft = 2; + + deathTimer--; + + if (deathTimer == 1) + Projectile.Kill(); + + return; + } + + + Projectile.Center = Vector2.Lerp(startPos, Main.npc[TargetWhoAmI].Center, Progress) + Main.rand.NextVector2Circular(25f, 25f); + + Dust.NewDustPerfect(Projectile.Center, ModContent.DustType(), Projectile.position.DirectionTo(Projectile.oldPosition), 0, Color.Lerp(new Color(200, 20, 255, 0), new Color(255, 255, 255, 0), Progress), 0.3f); + + Dust.NewDustPerfect(Projectile.Center, ModContent.DustType(), Projectile.position.DirectionTo(Projectile.oldPosition).RotatedByRandom(1f) * Main.rand.NextFloat(0.8f, 3f), 0, new Color(180, 80, 255, 0), 0.2f); + + if (Projectile.timeLeft == 1) + { + if (Main.myPlayer == Projectile.owner) + { + Projectile.NewProjectile(Projectile.GetSource_FromAI(), Main.npc[TargetWhoAmI].Center, Vector2.Zero, ModContent.ProjectileType(), + Projectile.damage, Projectile.knockBack, Projectile.owner, 50); + } + + SoundHelper.PlayPitched("Magic/LightningStrike", 0.5f, Main.rand.NextFloat(0.9f, 1.1f), Projectile.Center); + SoundHelper.PlayPitched("Magic/LightningExplode", 1.5f, 0.5f, Projectile.Center); + + for (int i = 0; i < 10; i++) + { + Dust.NewDustPerfect(Projectile.Center, ModContent.DustType(), + -Vector2.UnitY.RotatedByRandom(1.5f) * Main.rand.NextFloat(0.8f, 2f), 0, new Color(Main.rand.Next(150, 220), 50, 255, 0), 0.1f).customData = Main.rand.NextBool() ? -1 : 1; + } + + for (int i = 0; i < 10; i++) + { + Dust.NewDustPerfect(Projectile.Center, ModContent.DustType(), + -Vector2.UnitY.RotatedByRandom(1.5f) * Main.rand.NextFloat(4f, 14f), 0, new Color(Main.rand.Next(150, 220), 50, 255, 0), 0.35f); + } + + + CameraSystem.shake += 4; + + deathTimer = 600; + Projectile.timeLeft = 2; + } + } + + public override bool PreDraw(ref Color lightColor) + { + DrawPrimitives(); + + Texture2D starTex = Assets.StarTexture_Alt.Value; + Texture2D bloomTex = Assets.Masks.GlowSoftAlpha.Value; + Texture2D bloomCircle = Assets.Masks.GlowWithRing.Value; + + SpriteBatch sb = Main.spriteBatch; + + Vector2 pos = startPos - Main.screenPosition; + + float flashProg = flashTimer / 90f; + + if (flashProg > 0) + { + Vector2 stretch = new Vector2(MathHelper.Lerp(5f, 1f, Eases.EaseQuinticOut(flashProg)), 1f); + + sb.Draw(bloomCircle, pos, null, new Color(200, 80, 255, 0) * flashProg, 0f, bloomCircle.Size() / 2f, MathHelper.Lerp(0.1f, 0.3f, 1f - flashProg), 0f, 0f); + sb.Draw(bloomCircle, pos, null, new Color(255, 255, 255, 0) * flashProg, 0f, bloomCircle.Size() / 2f, MathHelper.Lerp(0.1f, 0.25f, 1f - flashProg), 0f, 0f); + + sb.Draw(bloomTex, pos, null, new Color(200, 80, 255, 0) * flashProg, 0f, bloomTex.Size() / 2f, 3f, 0f, 0f); + sb.Draw(bloomTex, pos, null, new Color(255, 255, 255, 0) * flashProg * 0.8f, 0f, bloomTex.Size() / 2f, 2.5f, 0f, 0f); + + sb.Draw(bloomTex, pos, null, new Color(200, 80, 255, 0) * flashProg, 0f, bloomTex.Size() / 2f, stretch, 0f, 0f); + sb.Draw(bloomTex, pos, null, new Color(255, 255, 255, 0) * flashProg * 0.8f, 0f, bloomTex.Size() / 2f, stretch * 0.75f, 0f, 0f); + + sb.Draw(starTex, pos, null, new Color(200, 80, 255, 0) * flashProg, 0f, starTex.Size() / 2f, stretch, 0f, 0f); + sb.Draw(starTex, pos, null, new Color(255, 255, 255, 0) * flashProg * 0.8f, 0f, starTex.Size() / 2f, stretch * 0.75f, 0f, 0f); + } + + return false; + } + + private void ManageCaches() + { + Vector2 offset = new Vector2(Main.rand.NextFloat(-5f, 5f), 0f); + + if (cache == null) + { + cache = new List(); + for (int i = 0; i < 100; i++) + { + cache.Add(Projectile.Center); + } + } + + cache.Add(Projectile.Center); + + while (cache.Count > 100) + { + cache.RemoveAt(0); + } + } + + private void ManageTrail() + { + trail ??= new Trail(Main.instance.GraphicsDevice, 100, new TriangularTip(190), factor => factor * 4f, factor => + Color.Lerp(Color.White, new Color(150, 65, 255), Progress) * TrailFade()); + + trail.Positions = cache.ToArray(); + trail.NextPosition = Projectile.Center; + + trail2 ??= new Trail(Main.instance.GraphicsDevice, 100, new TriangularTip(190), factor => factor * 12f, factor => + Color.Lerp(new Color(210, 100, 255, 0), new Color(85, 65, 255, 0), Progress) * TrailFade()); + + trail2.Positions = cache.ToArray(); + trail2.NextPosition = Projectile.Center; + } + + private float TrailFade() + { + if (deathTimer <= 0) + return 1f; + else + return deathTimer / 600f; + } + + public void DrawPrimitives() + { + ModContent.GetInstance().QueueRenderAction("UnderTiles", () => + { + Effect effect = ShaderLoader.GetShader("CeirosRing").Value; + + if (effect != null) + { + var world = Matrix.CreateTranslation(-Main.screenPosition.ToVector3()); + Matrix view = Matrix.Identity; + var projection = Matrix.CreateOrthographicOffCenter(0, Main.screenWidth, Main.screenHeight, 0, -1, 1); + + effect.Parameters["time"].SetValue(Projectile.timeLeft * -0.05f); + effect.Parameters["repeats"].SetValue(1); + effect.Parameters["transformMatrix"].SetValue(world * view * projection); + effect.Parameters["sampleTexture"].SetValue(Assets.GlowTrail.Value); + + trail2?.Render(effect); + trail?.Render(effect); + } + }); + } + } + + public class UnstableCapacitatorExplosion : ModProjectile + { + // not sure how performance intensive this is + + private List cache; + private List cache2; + + private Trail trail; + private Trail trail2; + + private Trail trail3; + private Trail trail4; + public override string Texture => AssetDirectory.Invisible; + private float Progress => Utils.Clamp(1 - Projectile.timeLeft / 30f, 0f, 1f); + + private float Radius => Projectile.ai[0] * Eases.EaseBackOut(Progress); + + public override void SetDefaults() + { + Projectile.width = 2; + Projectile.height = 2; + Projectile.DamageType = DamageClass.Ranged; + Projectile.friendly = true; + Projectile.tileCollide = false; + Projectile.penetrate = -1; + Projectile.timeLeft = 30; + + Projectile.usesLocalNPCImmunity = true; + Projectile.localNPCHitCooldown = 20; + } + + public override void SetStaticDefaults() + { + DisplayName.SetDefault("Lightning Explosion"); + } + + public override void AI() + { + if (Main.netMode != NetmodeID.Server) + { + ManageCaches(); + ManageTrail(); + } + + if (Main.rand.NextBool(3)) + { + for (int k = 0; k < 6; k++) + { + float rot = Main.rand.NextFloat(0, 6.28f); + + Dust.NewDustPerfect(Projectile.Center + Vector2.One.RotatedBy(rot) * Radius, ModContent.DustType(), + Vector2.One.RotatedBy(rot) * 0.5f, 0, new Color(Main.rand.Next(150, 220), 50, 255, 0), Main.rand.NextFloat(0.15f, 0.25f)).noGravity = true; + } + } + } + + public override bool? Colliding(Rectangle projHitbox, Rectangle targetHitbox) + { + Vector2 line = targetHitbox.Center.ToVector2() - Projectile.Center; + line.Normalize(); + line *= Radius; + return Collision.CheckAABBvLineCollision(targetHitbox.TopLeft(), targetHitbox.Size(), Projectile.Center, Projectile.Center + line); + } + + public override void OnHitNPC(NPC target, NPC.HitInfo hit, int damageDone) + { + //target.AddBuff(BuffID.OnFire, 300); + } + + public override bool PreDraw(ref Color lightColor) + { + DrawPrimitives(); + + Texture2D starTex = Assets.StarTexture_Alt.Value; + Texture2D bloomTex = Assets.Masks.GlowSoftAlpha.Value; + Texture2D bloomCircle = Assets.Masks.GlowWithRing.Value; + + SpriteBatch sb = Main.spriteBatch; + + ModContent.GetInstance().QueueRenderAction("OverPlayers", () => + { + Main.spriteBatch.End(); + Main.spriteBatch.Begin(default, default, default, default, default, default, Main.GameViewMatrix.EffectMatrix); + + sb.Draw(bloomCircle, Projectile.Center - Main.screenPosition, null, new Color(220, 150, 255, 0) * (1f - Progress), 0f, bloomCircle.Size() / 2f, MathHelper.Lerp(0.2f, 0.45f, Eases.EaseCircularOut(Progress)), 0f, 0f); + + Effect effect = ShaderLoader.GetShader("ElectricExplosion").Value; + + if (effect is null) + return; + + if (Progress >= 1f) + return; + + Main.spriteBatch.End(); + Main.spriteBatch.Begin(default, BlendState.AlphaBlend, Main.DefaultSamplerState, default, Main.Rasterizer, effect, Main.GameViewMatrix.EffectMatrix); + + effect.Parameters["uTime"].SetValue((float)Main.timeForVisualEffects * 0.005f); + + effect.Parameters["uImage1"].SetValue(Assets.Noise.ElectricNoise.Value); + effect.Parameters["uImage2"].SetValue(Assets.Noise.PerlinNoise.Value); + effect.Parameters["uProgress"].SetValue(Eases.EaseQuinticIn(Progress)); + Color color = Color.Lerp(new Color(210, 100, 255), new Color(255, 255, 255), Eases.EaseQuinticIn(1f - Progress)); + + effect.Parameters["uColor"].SetValue(color.ToVector4()); + effect.Parameters["uOpacity"].SetValue(0f); + + effect.CurrentTechnique.Passes[0].Apply(); + + sb.Draw(bloomCircle, Projectile.Center - Main.screenPosition, null, Color.White, 0f, bloomCircle.Size() / 2f, MathHelper.Lerp(0.2f, 0.45f, Eases.EaseCircularOut(Progress)), 0f, 0f); + + Main.spriteBatch.End(); + Main.spriteBatch.Begin(default, default, default, default, default, default, Main.GameViewMatrix.TransformationMatrix); + }); + + return false; + } + + private void ManageCaches() + { + if (cache is null) + { + cache = []; + + for (int i = 0; i < 40; i++) + { + cache.Add(Projectile.Center); + } + } + + float strength = MathHelper.Lerp(15f, 5f, Progress); + + for (int k = 0; k < 40; k++) + { + cache[k] = Projectile.Center + Main.rand.NextVector2CircularEdge(strength, strength) + Vector2.One.RotatedBy(k / 38f * 6.28f) * Radius; + } + + while (cache.Count > 40) + { + cache.RemoveAt(0); + } + + if (cache2 is null) + { + cache2 = []; + + for (int i = 0; i < 40; i++) + { + cache2.Add(Projectile.Center); + } + } + + strength = MathHelper.Lerp(3f, 1f, Progress); + + for (int k = 0; k < 40; k++) + { + cache2[k] = Projectile.Center + Main.rand.NextVector2CircularEdge(strength, strength) + Vector2.One.RotatedBy(k / 38f * 6.28f) * Radius * 0.85f; + } + + while (cache2.Count > 40) + { + cache2.RemoveAt(0); + } + } + + private void ManageTrail() + { + trail ??= new Trail(Main.instance.GraphicsDevice, 40, new TriangularTip(1), factor => 9 * (1f - Progress), + factor => Color.White); + + trail2 ??= new Trail(Main.instance.GraphicsDevice, 40, new TriangularTip(1), factor => 18 * (1f - Progress), + factor => Color.Lerp(new Color(210, 100, 255, 0), new Color(85, 65, 255, 0), Eases.EaseQuinticInOut(1f - Progress))); + + trail.Positions = cache.ToArray(); + trail.NextPosition = cache[39]; + + trail2.Positions = cache.ToArray(); + trail2.NextPosition = cache[39]; + + trail3 ??= new Trail(Main.instance.GraphicsDevice, 40, new TriangularTip(1), factor => 9 * (1f - Progress), + factor => Color.White); + + trail4 ??= new Trail(Main.instance.GraphicsDevice, 40, new TriangularTip(1), factor => 18 * (1f - Progress), + factor => Color.Lerp(new Color(210, 100, 255, 0), new Color(85, 65, 255, 0), Eases.EaseQuinticInOut(1f - Progress))); + + trail3.Positions = cache2.ToArray(); + trail3.NextPosition = cache2[39]; + + trail4.Positions = cache2.ToArray(); + trail4.NextPosition = cache2[39]; + } + + public void DrawPrimitives() + { + if (Projectile.timeLeft < 2) + return; + + ModContent.GetInstance().QueueRenderAction("UnderProjectiles", () => + { + Effect effect = ShaderLoader.GetShader("CeirosRing").Value; + + if (effect != null) + { + var world = Matrix.CreateTranslation(-Main.screenPosition.ToVector3()); + Matrix view = Matrix.Identity; + var projection = Matrix.CreateOrthographicOffCenter(0, Main.screenWidth, Main.screenHeight, 0, -1, 1); + + effect.Parameters["transformMatrix"].SetValue(world * view * projection); + effect.Parameters["time"].SetValue(Projectile.timeLeft * -0.01f); + effect.Parameters["repeats"].SetValue(5f); + effect.Parameters["sampleTexture"].SetValue(Assets.GlowTrail.Value); + + trail3?.Render(effect); + trail4?.Render(effect); + + trail2?.Render(effect); + trail?.Render(effect); + } + }); + } + } +} diff --git a/Effects/Source/ElectricExplosion.fx b/Effects/Source/ElectricExplosion.fx new file mode 100644 index 000000000..82a9dccea --- /dev/null +++ b/Effects/Source/ElectricExplosion.fx @@ -0,0 +1,89 @@ +#include "Common.fxh" + +sampler uImage0 : register(s0); + +texture uImage1; +sampler2D uImage1Sampler = sampler_state +{ + texture = ; + magfilter = LINEAR; + minfilter = LINEAR; + mipfilter = LINEAR; + AddressU = wrap; + AddressV = wrap; +}; + +texture uImage2; +sampler2D uImage2Sampler = sampler_state +{ + texture = ; + magfilter = LINEAR; + minfilter = LINEAR; + mipfilter = LINEAR; + AddressU = wrap; + AddressV = wrap; +}; + +float3 uColor; +float3 uSecondaryColor; +float uOpacity; +float uSaturation; +float uRotation; +float uTime; +float4 uSourceRect; +float2 uWorldPosition; +float uDirection; +float3 uLightSource; +float2 uImageSize0; +float2 uImageSize1; +float power; +float speed; +float opacity; + +float uProgress; + +float4 PixelShaderFunction(float2 coords : TEXCOORD0) : COLOR0 +{ + float2 noiseCoords = coords + float2(uTime * 0.5, uTime * 0.1); + + float4 noiseColor = tex2D(uImage2Sampler, noiseCoords); + + float2 distortionOffset = (noiseColor.rg - 0.5) * 0.1; + + float2 uv = coords + distortionOffset; + + float4 shapeColor = tex2D(uImage0, uv); + + float4 lightningColor = tex2D(uImage1Sampler, uv * 2.0); + + float4 finalColor = shapeColor * lightningColor; + + float dissolveValue = noiseColor.r; + + float lerper = 1 - uProgress; + + if (dissolveValue > lerper) + { + finalColor.rgb *= float3(0, 0, 0); + } + + if (lightningColor.r > uProgress && finalColor.r > 0) + { + finalColor.rgb += float3(0.5, 0.5, 0.5); + } + + if (finalColor.r > lerper) + { + finalColor.rgb += float3(1.0, 1.0, 1.0); + } + + return finalColor * float4(uColor.r, uColor.g, uColor.b, uOpacity); +} + +technique Technique1 +{ + pass P0 + { + PixelShader = compile ps_3_0 PixelShaderFunction(); + } +} \ No newline at end of file diff --git a/Localization/en-US_Mods.StarlightRiver.hjson b/Localization/en-US_Mods.StarlightRiver.hjson index 8cb0c67a2..7c31650a6 100644 --- a/Localization/en-US_Mods.StarlightRiver.hjson +++ b/Localization/en-US_Mods.StarlightRiver.hjson @@ -3871,6 +3871,26 @@ Items: { DisplayName: Pink Laser Pointer Tooltip: "" } + + UnstableCapacitor: { + DisplayName: Unstable Capacitor + Tooltip: + ''' + -5% magic critical strike chance + Critically striking enemies with magic weapons consume all of your mana to cast a lightning explosion + The explosion deals more damage based on how much mana was consumed + ''' + } + + UnstableCapacitator: { + DisplayName: Unstable Capacitator + Tooltip: + ''' + -5% magic critical strike chance + Critically striking enemies with magic weapons consume all of your mana to cast a lightning explosion + The explosion deals more damage based on how much mana was consumed + ''' + } } Tiles: { @@ -4449,6 +4469,9 @@ Projectiles: { GauntletSpawner.DisplayName: Gauntlet Spawner SpawnEgg.DisplayName: Spawn Egg ThoughtPoliceProjectile.DisplayName: Thoughtcrime + UnstableCapacitatorExplosion.DisplayName: Lightning Explosion + UnstableCapacitatorBolt.DisplayName: Lightning Explosion + UnstableCapacitatorIcon.DisplayName: Icon } Biomes: { From 115a943b18c266e0dad847446e67ffdcdaeeee6a Mon Sep 17 00:00:00 2001 From: SkippZzMods Date: Mon, 2 Feb 2026 23:55:21 -0500 Subject: [PATCH 2/5] balance --- Content/Items/Magnet/Accessories.UnstableCapacitator.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Content/Items/Magnet/Accessories.UnstableCapacitator.cs b/Content/Items/Magnet/Accessories.UnstableCapacitator.cs index 551fb1a49..0ddc325b2 100644 --- a/Content/Items/Magnet/Accessories.UnstableCapacitator.cs +++ b/Content/Items/Magnet/Accessories.UnstableCapacitator.cs @@ -43,12 +43,16 @@ private void OnHitProjectile(Projectile proj, NPC target, NPC.HitInfo info, int { int manaUsed = Player.statMana; + float percentOfMax = manaUsed / Player.statMana; + + int damageToDeal = (int)MathHelper.Lerp(20, 100, percentOfMax); + Player.statMana = 0; Projectile.NewProjectile(proj.GetSource_OnHit(target), Main.player[proj.owner].Center, Vector2.UnitY * -5f, ModContent.ProjectileType(), 0, 0f, proj.owner); Projectile.NewProjectile(proj.GetSource_OnHit(target), target.Center + new Vector2(Main.rand.NextFloat(-30f, 30f), -500f), Vector2.Zero, - ModContent.ProjectileType(), manaUsed, 5f, proj.owner, target.whoAmI); + ModContent.ProjectileType(), damageToDeal, 5f, proj.owner, target.whoAmI); } } } @@ -174,7 +178,6 @@ public override void AI() return; } - Projectile.Center = Vector2.Lerp(startPos, Main.npc[TargetWhoAmI].Center, Progress) + Main.rand.NextVector2Circular(25f, 25f); Dust.NewDustPerfect(Projectile.Center, ModContent.DustType(), Projectile.position.DirectionTo(Projectile.oldPosition), 0, Color.Lerp(new Color(200, 20, 255, 0), new Color(255, 255, 255, 0), Progress), 0.3f); @@ -204,7 +207,6 @@ public override void AI() -Vector2.UnitY.RotatedByRandom(1.5f) * Main.rand.NextFloat(4f, 14f), 0, new Color(Main.rand.Next(150, 220), 50, 255, 0), 0.35f); } - CameraSystem.shake += 4; deathTimer = 600; From a2e1b52ee96304c5e2cf3402fba115ed1121795b Mon Sep 17 00:00:00 2001 From: SkippZzMods Date: Mon, 2 Feb 2026 23:57:45 -0500 Subject: [PATCH 3/5] fix --- Content/Items/Magnet/Accessories.UnstableCapacitator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content/Items/Magnet/Accessories.UnstableCapacitator.cs b/Content/Items/Magnet/Accessories.UnstableCapacitator.cs index 0ddc325b2..96ca65cec 100644 --- a/Content/Items/Magnet/Accessories.UnstableCapacitator.cs +++ b/Content/Items/Magnet/Accessories.UnstableCapacitator.cs @@ -43,7 +43,7 @@ private void OnHitProjectile(Projectile proj, NPC target, NPC.HitInfo info, int { int manaUsed = Player.statMana; - float percentOfMax = manaUsed / Player.statMana; + float percentOfMax = manaUsed / (float)Player.statManaMax2; int damageToDeal = (int)MathHelper.Lerp(20, 100, percentOfMax); From 25eff39e19974112ebaa6a861a0d9b4af9303ce7 Mon Sep 17 00:00:00 2001 From: SkippZzMods Date: Tue, 3 Feb 2026 00:06:55 -0500 Subject: [PATCH 4/5] cooldown --- .../Magnet/Accessories.UnstableCapacitator.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Content/Items/Magnet/Accessories.UnstableCapacitator.cs b/Content/Items/Magnet/Accessories.UnstableCapacitator.cs index 96ca65cec..38f868b1d 100644 --- a/Content/Items/Magnet/Accessories.UnstableCapacitator.cs +++ b/Content/Items/Magnet/Accessories.UnstableCapacitator.cs @@ -13,6 +13,7 @@ namespace StarlightRiver.Content.Items.Magnet { public class UnstableCapacitator : SmartAccessory { + public int cooldown; public override string Texture => AssetDirectory.MagnetItem + Name; public override void Load() { @@ -30,17 +31,22 @@ public UnstableCapacitator() : base("Unstable Capacitator", public override void SafeUpdateEquip(Player Player) { + if ((GetEquippedInstance(Player) as UnstableCapacitator).cooldown > 0) + cooldown--; + Player.GetCritChance(DamageClass.Magic) -= 5; } private void OnHitProjectile(Projectile proj, NPC target, NPC.HitInfo info, int damageDone) { - if (Equipped(Main.player[proj.owner])) + if (Equipped(Main.player[proj.owner]) && (GetEquippedInstance(Main.player[proj.owner]) as UnstableCapacitator).cooldown <= 0) { Player Player = Main.player[proj.owner]; if (proj.DamageType == DamageClass.Magic && info.Crit) { + (GetEquippedInstance(Main.player[proj.owner]) as UnstableCapacitator).cooldown = 240; + int manaUsed = Player.statMana; float percentOfMax = manaUsed / (float)Player.statManaMax2; @@ -337,7 +343,7 @@ public override void SetDefaults() { Projectile.width = 2; Projectile.height = 2; - Projectile.DamageType = DamageClass.Ranged; + Projectile.DamageType = DamageClass.Magic; Projectile.friendly = true; Projectile.tileCollide = false; Projectile.penetrate = -1; @@ -380,11 +386,6 @@ public override void AI() return Collision.CheckAABBvLineCollision(targetHitbox.TopLeft(), targetHitbox.Size(), Projectile.Center, Projectile.Center + line); } - public override void OnHitNPC(NPC target, NPC.HitInfo hit, int damageDone) - { - //target.AddBuff(BuffID.OnFire, 300); - } - public override bool PreDraw(ref Color lightColor) { DrawPrimitives(); From 657134a145cdf7a1fe22b04990d2db558d8ad34b Mon Sep 17 00:00:00 2001 From: bobfishkins23 Date: Sun, 22 Feb 2026 15:23:19 -0500 Subject: [PATCH 5/5] Formatting --- .../Magnet/Accessories.UnstableCapacitator.cs | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/Content/Items/Magnet/Accessories.UnstableCapacitator.cs b/Content/Items/Magnet/Accessories.UnstableCapacitator.cs index 38f868b1d..f42957b34 100644 --- a/Content/Items/Magnet/Accessories.UnstableCapacitator.cs +++ b/Content/Items/Magnet/Accessories.UnstableCapacitator.cs @@ -24,10 +24,11 @@ public override void Unload() { StarlightProjectile.OnHitNPCEvent -= OnHitProjectile; } - public UnstableCapacitator() : base("Unstable Capacitator", + public UnstableCapacitator() : base("Unstable Capacitator", "-5% magic critical strike chance\n" + "Critically striking enemies with magic weapons consume all of your mana to cast a lightning explosion\n" + - "The explosion deals more damage based on how much mana was consumed") { } + "The explosion deals more damage based on how much mana was consumed") + { } public override void SafeUpdateEquip(Player Player) { @@ -60,7 +61,7 @@ private void OnHitProjectile(Projectile proj, NPC target, NPC.HitInfo info, int Projectile.NewProjectile(proj.GetSource_OnHit(target), target.Center + new Vector2(Main.rand.NextFloat(-30f, 30f), -500f), Vector2.Zero, ModContent.ProjectileType(), damageToDeal, 5f, proj.owner, target.whoAmI); } - } + } } } @@ -102,7 +103,7 @@ public override bool PreDraw(ref Color lightColor) SpriteBatch sb = Main.spriteBatch; sb.Draw(tex, Projectile.Center - Main.screenPosition, null, lightColor * (Projectile.timeLeft / 60f), 0f, tex.Size() / 2f, 1f, 0f, 0f); - + if (Projectile.timeLeft > 40) { float lerper = (Projectile.timeLeft - 40) / 20f; @@ -185,9 +186,9 @@ public override void AI() } Projectile.Center = Vector2.Lerp(startPos, Main.npc[TargetWhoAmI].Center, Progress) + Main.rand.NextVector2Circular(25f, 25f); - + Dust.NewDustPerfect(Projectile.Center, ModContent.DustType(), Projectile.position.DirectionTo(Projectile.oldPosition), 0, Color.Lerp(new Color(200, 20, 255, 0), new Color(255, 255, 255, 0), Progress), 0.3f); - + Dust.NewDustPerfect(Projectile.Center, ModContent.DustType(), Projectile.position.DirectionTo(Projectile.oldPosition).RotatedByRandom(1f) * Main.rand.NextFloat(0.8f, 3f), 0, new Color(180, 80, 255, 0), 0.2f); if (Projectile.timeLeft == 1) @@ -237,7 +238,7 @@ public override bool PreDraw(ref Color lightColor) if (flashProg > 0) { Vector2 stretch = new Vector2(MathHelper.Lerp(5f, 1f, Eases.EaseQuinticOut(flashProg)), 1f); - + sb.Draw(bloomCircle, pos, null, new Color(200, 80, 255, 0) * flashProg, 0f, bloomCircle.Size() / 2f, MathHelper.Lerp(0.1f, 0.3f, 1f - flashProg), 0f, 0f); sb.Draw(bloomCircle, pos, null, new Color(255, 255, 255, 0) * flashProg, 0f, bloomCircle.Size() / 2f, MathHelper.Lerp(0.1f, 0.25f, 1f - flashProg), 0f, 0f); @@ -294,7 +295,7 @@ private float TrailFade() { if (deathTimer <= 0) return 1f; - else + else return deathTimer / 600f; } @@ -314,7 +315,7 @@ public void DrawPrimitives() effect.Parameters["repeats"].SetValue(1); effect.Parameters["transformMatrix"].SetValue(world * view * projection); effect.Parameters["sampleTexture"].SetValue(Assets.GlowTrail.Value); - + trail2?.Render(effect); trail?.Render(effect); } @@ -375,7 +376,7 @@ public override void AI() Dust.NewDustPerfect(Projectile.Center + Vector2.One.RotatedBy(rot) * Radius, ModContent.DustType(), Vector2.One.RotatedBy(rot) * 0.5f, 0, new Color(Main.rand.Next(150, 220), 50, 255, 0), Main.rand.NextFloat(0.15f, 0.25f)).noGravity = true; } - } + } } public override bool? Colliding(Rectangle projHitbox, Rectangle targetHitbox) @@ -528,7 +529,7 @@ public void DrawPrimitives() effect.Parameters["time"].SetValue(Projectile.timeLeft * -0.01f); effect.Parameters["repeats"].SetValue(5f); effect.Parameters["sampleTexture"].SetValue(Assets.GlowTrail.Value); - + trail3?.Render(effect); trail4?.Render(effect); @@ -538,4 +539,4 @@ public void DrawPrimitives() }); } } -} +} \ No newline at end of file