From 62e4170999b9624777e1c036b59cacfe2ec94cbd Mon Sep 17 00:00:00 2001 From: noobour Date: Fri, 11 Sep 2026 19:23:16 -0400 Subject: [PATCH 1/3] flicker mod stff --- scripts/Rhythia.cs | 1 + scripts/game/modifiers/FlickerModifier.cs | 32 +++++++++++++++++++ scripts/game/modifiers/FlickerModifier.cs.uid | 1 + scripts/map/Replay.cs | 3 ++ scripts/util/Misc.cs | 3 ++ 5 files changed, 40 insertions(+) create mode 100644 scripts/game/modifiers/FlickerModifier.cs create mode 100644 scripts/game/modifiers/FlickerModifier.cs.uid diff --git a/scripts/Rhythia.cs b/scripts/Rhythia.cs index 535dd847..cf43d814 100644 --- a/scripts/Rhythia.cs +++ b/scripts/Rhythia.cs @@ -183,6 +183,7 @@ public static void RegisterModifiers() new NoFailModifier(), new GhostModifier(), new StrobeModifier(), + new FlickerModifier(), new ChaosModifier(), new VortexModifier(), new EarthquakeModifier(), diff --git a/scripts/game/modifiers/FlickerModifier.cs b/scripts/game/modifiers/FlickerModifier.cs new file mode 100644 index 00000000..97c8ce5c --- /dev/null +++ b/scripts/game/modifiers/FlickerModifier.cs @@ -0,0 +1,32 @@ +using Godot; + +public class FlickerModifier : Modifier, IObjectRenderModifier +{ + public override string Name => "Flicker"; + + public override Color Color => new(0xffe854ff); + + public override bool Rankable => true; + + public override double ScoreMultiplier => 1.035; + + public void ModifyRenderObject(Note note, Attempt attempt) + { + double at = attempt.Settings.ApproachTime; + + if (attempt.Progress / 750 / attempt.Speed % at >= at / 2) + { + if (note.Index % 2 == 0) + { + note.Opacity = 0; + } + } + else + { + if (note.Index % 2 != 0) + { + note.Opacity = 0; + } + } + } +} diff --git a/scripts/game/modifiers/FlickerModifier.cs.uid b/scripts/game/modifiers/FlickerModifier.cs.uid new file mode 100644 index 00000000..f2d043e8 --- /dev/null +++ b/scripts/game/modifiers/FlickerModifier.cs.uid @@ -0,0 +1 @@ +uid://ciktlcnrkha2t diff --git a/scripts/map/Replay.cs b/scripts/map/Replay.cs index 6c43d734..3eef5944 100644 --- a/scripts/map/Replay.cs +++ b/scripts/map/Replay.cs @@ -135,6 +135,9 @@ public Replay(string path) case "Chaos": Modifiers.Add(new ChaosModifier()); break; + case "Flicker": + Modifiers.Add(new FlickerModifier()); + break; case "Earthquake": Modifiers.Add(new EarthquakeModifier()); break; diff --git a/scripts/util/Misc.cs b/scripts/util/Misc.cs index 7ea46404..0d7b8124 100644 --- a/scripts/util/Misc.cs +++ b/scripts/util/Misc.cs @@ -27,6 +27,9 @@ public static Texture2D GetModIcon(string mod) case "Strobe": tex = skin.ModStrobeImage; break; + case "Flicker": + tex = skin.ModNoFailImage; + break; case "Chaos": tex = skin.ModChaosImage; break; From 8c8655a452f710cb8c4d0f1caa2bd079e3d6cb07 Mon Sep 17 00:00:00 2001 From: noobour Date: Sun, 18 Oct 2026 18:08:09 -0400 Subject: [PATCH 2/3] final flicker mod yerp --- scripts/game/modifiers/FlickerModifier.cs | 2 +- scripts/skinning/SkinManager.cs | 1 + scripts/skinning/SkinProfile.cs | 2 + scripts/util/Misc.cs | 22 +++++----- user/skins/default/modifiers/flicker.png | Bin 0 -> 1054 bytes .../default/modifiers/flicker.png.import | 40 ++++++++++++++++++ 6 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 user/skins/default/modifiers/flicker.png create mode 100644 user/skins/default/modifiers/flicker.png.import diff --git a/scripts/game/modifiers/FlickerModifier.cs b/scripts/game/modifiers/FlickerModifier.cs index 97c8ce5c..51d1a1a6 100644 --- a/scripts/game/modifiers/FlickerModifier.cs +++ b/scripts/game/modifiers/FlickerModifier.cs @@ -14,7 +14,7 @@ public void ModifyRenderObject(Note note, Attempt attempt) { double at = attempt.Settings.ApproachTime; - if (attempt.Progress / 750 / attempt.Speed % at >= at / 2) + if (attempt.Progress / 600 / attempt.Speed % at >= at / 2) { if (note.Index % 2 == 0) { diff --git a/scripts/skinning/SkinManager.cs b/scripts/skinning/SkinManager.cs index 7a538962..7f4e7975 100644 --- a/scripts/skinning/SkinManager.cs +++ b/scripts/skinning/SkinManager.cs @@ -123,6 +123,7 @@ public static void Load() skin.ModAutoplayImage = loadTexture("modifiers/autoplay.png"); skin.ModGhostImage = loadTexture("modifiers/ghost.png"); skin.ModStrobeImage = loadTexture("modifiers/strobe.png"); + skin.ModFlickerImage = loadTexture("modifiers/flicker.png"); skin.ModChaosImage = loadTexture("modifiers/chaos.png"); skin.ModVortexImage = loadTexture("modifiers/vortex.png"); skin.ModEarthquakeImage = loadTexture("modifiers/earthquake.png"); diff --git a/scripts/skinning/SkinProfile.cs b/scripts/skinning/SkinProfile.cs index 751f9cfb..6b36a618 100644 --- a/scripts/skinning/SkinProfile.cs +++ b/scripts/skinning/SkinProfile.cs @@ -119,6 +119,8 @@ public partial class SkinProfile : RefCounted public ImageTexture ModStrobeImage { get; set; } = new(); + public ImageTexture ModFlickerImage { get; set; } = new(); + public ImageTexture ModChaosImage { get; set; } = new(); public ImageTexture ModVortexImage { get; set; } = new(); diff --git a/scripts/util/Misc.cs b/scripts/util/Misc.cs index 2d6c0641..3c36f7a8 100644 --- a/scripts/util/Misc.cs +++ b/scripts/util/Misc.cs @@ -31,7 +31,7 @@ public static Texture2D GetModIcon(string mod) tex = skin.ModStrobeImage; break; case "Flicker": - tex = skin.ModNoFailImage; + tex = skin.ModFlickerImage; break; case "Chaos": tex = skin.ModChaosImage; @@ -138,16 +138,16 @@ public static Image LoadImageFromBuffer(byte[] buffer) Logger.Log( $""" - Couldn't load image from buffer - Type: {( - isPng ? "PNG" - : isJpeg ? "JPG" - : isBmp ? "BMP" - : isWebp ? "WEBP" - : "Unknown" - )}; - Size: {buffer.Length} - """ + Couldn't load image from buffer + Type: {( + isPng ? "PNG" + : isJpeg ? "JPG" + : isBmp ? "BMP" + : isWebp ? "WEBP" + : "Unknown" + )}; + Size: {buffer.Length} + """ ); return null; diff --git a/user/skins/default/modifiers/flicker.png b/user/skins/default/modifiers/flicker.png new file mode 100644 index 0000000000000000000000000000000000000000..2b904d3f57de93b05d9eb893cf50a4564711eb9f GIT binary patch literal 1054 zcmV+(1mXLMP)>A5p&qnn@u2jqFvNQ8`=Dm4uRtPIrtXQ#P#flXxR;+ZQIEz&Xf`IDuQxTN7Tww;l0&u}9E_Z_- zFc12G2eP2>w?W5gD+P2Z22O+94-SDLQ04(_jtDZrIn-^*)Vr}TpLG3wK_-_hVY&7$49Iwe!Upn-{%10Q45&oK4k zvB5Q}fU4%flL5U89>(}ji9OGMtAp=n)C+hD#e4-t;Pdx@KdXGrk9?=!=D-s$2Bu>4 ztw-XfUCGSQssNdVnFeRr6&2af&$C`GO4NMMIXCHsI1IH${|#0`gOK-oy7=0xf{ zkx(_@5cn~;%Ku4{L=mk@h{%lK3^)zGh+2v(JOjvan#yJO*Bd5J;QEq=#Hxgd@qK{m zseHhoCR13RCs@IxIW*>3J}KE-!e#u45X9~I1Wk;>`)b) zH=Pe?c|t_g4n}-Q-%71=gGrMpI)x1MC>Y^)7eb}Db>&~8b`o`u^Ag$;BE2aMRF)8- zK8%1p4R)gS<-_1I??%gUo~G(lCYO=|{6%J)vxG98MxPXoPni=LK_N7r%q}ARn(`7G z!KSzhSWsN=N^u70F!e>1;g%`jnM4Wnj?Pp{3Yg&Ft63#J61BtJSUz|N+=#p*M7j8< z;9y#&9&Kg71@N Date: Thu, 22 Oct 2026 23:37:10 -0400 Subject: [PATCH 3/3] Color update --- scripts/game/modifiers/FlickerModifier.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/game/modifiers/FlickerModifier.cs b/scripts/game/modifiers/FlickerModifier.cs index 51d1a1a6..d426b7c6 100644 --- a/scripts/game/modifiers/FlickerModifier.cs +++ b/scripts/game/modifiers/FlickerModifier.cs @@ -4,7 +4,7 @@ public class FlickerModifier : Modifier, IObjectRenderModifier { public override string Name => "Flicker"; - public override Color Color => new(0xffe854ff); + public override Color Color => new(0xc5ff54ff); public override bool Rankable => true;