private bool Colorize(ParticleSystemEventEffect __instance, BasicBeatmapEventData basicBeatmapEventData) { if (!TechnicolorConfig.Instance.TechnicolorEnabled) { return(true); } if (TechnicolorConfig.Instance.TechnicolorLightsGrouping != TechnicolorLightsGrouping.ISOLATED || !(TechnicolorController.TechniLightRandom.NextDouble() < TechnicolorConfig.Instance.TechnicolorLightsFrequency)) { return(true); } ParticleSystem.MainModule mainmodule = _mainModuleAccessor(ref __instance); ParticleSystem.Particle[] particles = _particlesAccessor(ref __instance); ParticleSystem particleSystem = _particleSystemAccessor(ref __instance); mainmodule.startColor = TechnicolorController.GetTechnicolor( basicBeatmapEventData.value > 3, basicBeatmapEventData.time, TechnicolorConfig.Instance.TechnicolorLightsStyle); particleSystem.GetParticles(particles, particles.Length); for (int i = 0; i < particleSystem.particleCount; i++) { particles[i].startColor = TechnicolorController.GetTechnicolor( basicBeatmapEventData.value > 3, basicBeatmapEventData.time + particles[i].randomSeed, TechnicolorConfig.Instance.TechnicolorLightsStyle); } particleSystem.SetParticles(particles, particleSystem.particleCount); return(false); }
private bool Colorize(ChromaLightSwitchEventEffect __instance, BasicBeatmapEventData beatmapEventData) { if (!TechnicolorConfig.Instance.TechnicolorEnabled) { return(true); } LightColorizer lightColorizer = __instance.Colorizer; bool warm = !ChromaLightSwitchEventEffect.IsColor0(beatmapEventData.value); if (TechnicolorConfig.Instance.TechnicolorLightsGrouping == TechnicolorLightsGrouping.ISOLATED) { foreach (ILightWithId light in lightColorizer.Lights) { Color color = TechnicolorController.GetTechnicolor(warm, beatmapEventData.time + light.GetHashCode(), TechnicolorConfig.Instance.TechnicolorLightsStyle); lightColorizer.Colorize(false, color, color, color, color); __instance.Refresh(true, new[] { light }, beatmapEventData); } return(false); } if (!(TechnicolorController.TechniLightRandom.NextDouble() < TechnicolorConfig.Instance.TechnicolorLightsFrequency)) { return(true); } { Color color = TechnicolorController.GetTechnicolor(warm, beatmapEventData.time, TechnicolorConfig.Instance.TechnicolorLightsStyle); switch (TechnicolorConfig.Instance.TechnicolorLightsGrouping) { case TechnicolorLightsGrouping.ISOLATED_GROUP: lightColorizer.Colorize(false, color, color, color, color); break; default: _manager.GlobalColorize(false, color, color, color, color); break; } } return(true); }
public void Awake() { _subtypeIdentifier = BasicBeatmapEventData.SubtypeIdentifier((BasicBeatmapEventType)eventType); }