forked from nikita/muzika-gromche
Compare commits
5 Commits
3607ccc92f
...
f790decc4d
| Author | SHA1 | Date |
|---|---|---|
|
|
f790decc4d | |
|
|
5a8f0201a3 | |
|
|
825355dd54 | |
|
|
c62535841a | |
|
|
b0d96ff67e |
|
|
@ -1,5 +1,10 @@
|
|||
# Changelog
|
||||
|
||||
## MuzikaGromche 1337.9001.1 - v73 Music louder Edition
|
||||
|
||||
- Raised the default audio volume, and added a configuration slider.
|
||||
- Tweaked color palette, lyrics and visual effects for MoyaZhittya and some other tracks.
|
||||
|
||||
## MuzikaGromche 1337.9001.0 - v73 Music quieter Edition
|
||||
|
||||
- Updated netcode-patch to support Lethal Company v73.
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<AssemblyName>Ratijas.MuzikaGromche</AssemblyName>
|
||||
<Product>Muzika Gromche</Product>
|
||||
<Description>Add some content to your inverse teleporter experience on Titan!</Description>
|
||||
<Version>1337.9001.0</Version>
|
||||
<Version>1337.9001.1</Version>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
|
|
|
|||
|
|
@ -42,6 +42,10 @@ namespace MuzikaGromche
|
|||
.Select(a => $" Trying... {a}")
|
||||
];
|
||||
|
||||
private static readonly TimeSeries<float> DrunknessLoopOffsetTimeSeriesBeefLiver = new(
|
||||
[-0.5f, 0.5f, 8f, 15f, 16f, 24f, 29f, 30f, 36f, 37f, 38f, 44f, 47.5f],
|
||||
[ 0f, 0.6f, 0f, 0f, 0.4f, 0f, 0f, 0.3f, 0f, 0f, 0.3f, 0f, 0f]);
|
||||
|
||||
public static readonly ISelectableTrack[] Tracks = [
|
||||
new SelectableAudioTrack
|
||||
{
|
||||
|
|
@ -179,9 +183,9 @@ namespace MuzikaGromche
|
|||
FadeOutBeat = -35,
|
||||
FadeOutDuration = 3.3f,
|
||||
ColorTransitionIn = 0.25f,
|
||||
ColorTransitionOut = 0.25f,
|
||||
ColorTransitionOut = 0.5f,
|
||||
ColorTransitionEasing = Easing.OutExpo,
|
||||
Palette = Palette.Parse(["#A3A3A3", "#BE3D39", "#5CBC69", "#BE3D39", "#BABC5C", "#BE3D39", "#5C96BC", "#BE3D39"]),
|
||||
Palette = Palette.Parse(["#A8C480", "#3ABBBE", "#6E9855", "#4c6846", "#748084", "#058099"]),
|
||||
FlickerLightsTimeSeries = [-100.5f, -99.5f, -92.5f, -91.5f, -76.5f, -75.5f, -60.5f, -59.5f, -37f, -36f, -4.5f, -3.5f, 27.5f, 28.5f],
|
||||
Lyrics = [
|
||||
(-84, "This ain't a song for the broken-hearted"),
|
||||
|
|
@ -213,6 +217,10 @@ namespace MuzikaGromche
|
|||
( 22, "I just want to live\nwhile I'm alive"),
|
||||
( 30, "IT'S MY"),
|
||||
],
|
||||
DrunknessLoopOffsetTimeSeries = new(
|
||||
[-33f, -31f, 24f, -1f, 1f, 8f, 31f],
|
||||
[ 0f, 0.7f, 0f, 0f, 0.7f, 0f, 0f]),
|
||||
GameOverText = "[LIFE IS: NOW OR NEVER]",
|
||||
},
|
||||
new SelectableAudioTrack
|
||||
{
|
||||
|
|
@ -267,7 +275,7 @@ namespace MuzikaGromche
|
|||
FadeOutDuration = 4,
|
||||
FlickerLightsTimeSeries = [-5, 31],
|
||||
Lyrics = [],
|
||||
GameOverText = "[MUZIKA GROMCHE: K-POP]",
|
||||
GameOverText = "[MUZIKA: K-POP GROMCHE]",
|
||||
},
|
||||
new SelectableAudioTrack
|
||||
{
|
||||
|
|
@ -286,6 +294,9 @@ namespace MuzikaGromche
|
|||
FadeOutDuration = 4,
|
||||
FlickerLightsTimeSeries = [-5],
|
||||
Lyrics = [],
|
||||
DrunknessLoopOffsetTimeSeries = new(
|
||||
[-0.5f, 0.0f, 8f, 63.5f],
|
||||
[ 0f, 0.7f, 0f, 0f]),
|
||||
GameOverText = "[COULD'VE BEEN: IMMORTAL]",
|
||||
},
|
||||
new SelectableAudioTrack
|
||||
|
|
@ -305,6 +316,9 @@ namespace MuzikaGromche
|
|||
FadeOutDuration = 4,
|
||||
FlickerLightsTimeSeries = [-5.5f, 31, 63.9f],
|
||||
Lyrics = [],
|
||||
DrunknessLoopOffsetTimeSeries = new(
|
||||
[-0.5f, 0.0f, 8f, 63.5f],
|
||||
[ 0f, 0.7f, 0f, 0f]),
|
||||
GameOverText = "[ HEY, YOUNG BLOOD ]",
|
||||
},
|
||||
new SelectableAudioTrack
|
||||
|
|
@ -453,6 +467,9 @@ namespace MuzikaGromche
|
|||
(96, $"\t\t\tresolving ur private IP\n/{PwnLyricsVariants[^1]}"),
|
||||
(98, $"\t\t\tresolving ur private IP\nP_WNED"),
|
||||
],
|
||||
DrunknessLoopOffsetTimeSeries = new(
|
||||
[-128f, -127f, -116f, 68f, 72f, 88f, 98f],
|
||||
[ 0f, 0.7f, 0f, 0f, 0.3f, 0.5f, 0f]),
|
||||
GameOverText = "[HACK3D BY: RUSSI4NS]",
|
||||
},
|
||||
new SelectableAudioTrack
|
||||
|
|
@ -505,7 +522,23 @@ namespace MuzikaGromche
|
|||
FadeOutBeat = -3,
|
||||
FadeOutDuration = 3,
|
||||
FlickerLightsTimeSeries = [-48, -40, -4.5f, 44],
|
||||
Lyrics = [],
|
||||
DrunknessLoopOffsetTimeSeries = DrunknessLoopOffsetTimeSeriesBeefLiver,
|
||||
Lyrics = [
|
||||
(-66, "First things first"),
|
||||
(-62, "First things first,\nI'ma say all the words\ninside my head"),
|
||||
(-57, "I'm fired up and tired of"),
|
||||
(-52, "the way that things have been,\noh-ooh"),
|
||||
(-44, "(x2)\nThe way that things have been,\noh-ooooh"),
|
||||
|
||||
(-34, "I was broken from a young age, taking my sulkin' to the masses"),
|
||||
(-27, "Writing my poems for the few"),
|
||||
(-23, "that look at me, took to me,\nshook at me, feelin' me"),
|
||||
(-19, "Singing from heartache from the pain"),
|
||||
(-15, "Singing from heartache from the pain,\ntaking my message from the veins"),
|
||||
(-11, "Speaking my lesson from the brain"),
|
||||
(-8, "Speaking my lesson from the brain,\nseeing the beauty through the"),
|
||||
(-0.1f, "PAIN!"),
|
||||
],
|
||||
},
|
||||
new CoreAudioTrack
|
||||
{
|
||||
|
|
@ -526,7 +559,24 @@ namespace MuzikaGromche
|
|||
FadeOutBeat = -3,
|
||||
FadeOutDuration = 3,
|
||||
FlickerLightsTimeSeries = [-48, -40, -4.5f, 44],
|
||||
Lyrics = [],
|
||||
DrunknessLoopOffsetTimeSeries = DrunknessLoopOffsetTimeSeriesBeefLiver,
|
||||
Lyrics = [
|
||||
(-66, "Third things third"),
|
||||
(-62, "Third things third,\nsend a prayer to the ones up above"),
|
||||
(-57, "All the hate that you've heard has turned"),
|
||||
(-52, "your spirit to a dove,\noh-ooh"),
|
||||
(-44, "(x2)\nYour spirit up above,\noh-ooooh"),
|
||||
|
||||
(-34, "I was chokin' in the crowd, building my rain up in the cloud"),
|
||||
(-27, "Falling like ashes to the ground"),
|
||||
(-23, "hoping my feelings, they would drown"),
|
||||
|
||||
(-19, "But they never did, ever lived, ebbin' and flowin'"),
|
||||
(-15, "Inhibited, limited 'til it broke open"),
|
||||
(-11, "Inhibited, limited 'til it broke open and rained down"),
|
||||
(-8, "It rained down like"),
|
||||
(-0.1f, "PAIN!"),
|
||||
],
|
||||
},
|
||||
new CoreAudioTrack
|
||||
{
|
||||
|
|
@ -546,7 +596,20 @@ namespace MuzikaGromche
|
|||
FadeOutBeat = -3,
|
||||
FadeOutDuration = 3,
|
||||
FlickerLightsTimeSeries = [-32, -24, -4.5f, 44],
|
||||
Lyrics = [],
|
||||
DrunknessLoopOffsetTimeSeries = DrunknessLoopOffsetTimeSeriesBeefLiver,
|
||||
Lyrics = [
|
||||
(-66+16, "Last things last"),
|
||||
(-62+16, "Last things last,\nby the grace\nof the fire and the flames"),
|
||||
(-57+16, "You're the face of the future"),
|
||||
(-52+16, "the blood in my veins, oh-ooh"),
|
||||
(-44+16, "(x2)\nThe blood in my veins, oh-ooooh"),
|
||||
|
||||
(-19, "But they never did, ever lived, ebbin' and flowin'"),
|
||||
(-15, "Inhibited, limited 'til it broke open"),
|
||||
(-11, "Inhibited, limited 'til it broke open and rained down"),
|
||||
(-8, "It rained down like"),
|
||||
(-0.1f, "PAIN!"),
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
@ -782,6 +845,7 @@ namespace MuzikaGromche
|
|||
DrunknessLoopOffsetTimeSeries = new(
|
||||
[-0.5f, -0.05f, 6f, 60f, 61f],
|
||||
[0f, 0.5f, 0f, 0f, 0.5f]),
|
||||
GameOverText = "[LIFE SUPPORT: REAL GONE]",
|
||||
},
|
||||
];
|
||||
|
||||
|
|
@ -2177,10 +2241,13 @@ namespace MuzikaGromche
|
|||
public static bool ExtrapolateTime { get; private set; } = true;
|
||||
public static bool ShouldSkipWindingPhase { get; private set; } = false;
|
||||
|
||||
// Audio files are normalized to target -14 LUFS, which is too loud to communicate. Reduce by another -12 dB down to about -26 LUFS.
|
||||
public static float DefaultVolume = 0.25f;
|
||||
#if DEBUG
|
||||
// Audio files are normalized to target -14 LUFS, which is too loud to communicate. Reduce by another -9 dB down to about -23 LUFS.
|
||||
private const float VolumeDefault = 0.35f;
|
||||
private const float VolumeMin = 0.2f;
|
||||
private const float VolumeMax = 0.5f;
|
||||
// Ranges from quiet 0.20 (-14 dB) to loud 0.5 (-6 dB)
|
||||
public static ConfigEntry<float> Volume { get; private set; } = null!;
|
||||
#if DEBUG
|
||||
// Latest set track, used for loading palette and timings.
|
||||
private static IAudioTrack? CurrentTrack = null;
|
||||
// All per-track values that can be overridden
|
||||
|
|
@ -2231,6 +2298,10 @@ namespace MuzikaGromche
|
|||
new ConfigDescription("Display lyrics in the HUD tooltip when you hear the music."));
|
||||
LethalConfigManager.AddConfigItem(new BoolCheckBoxConfigItem(DisplayLyrics, requiresRestart: false));
|
||||
|
||||
Volume = configFile.Bind("General", "Volume", VolumeDefault,
|
||||
new ConfigDescription("Volume of music played by this mod.", new AcceptableValueRange<float>(VolumeMin, VolumeMax)));
|
||||
LethalConfigManager.AddConfigItem(new FloatSliderConfigItem(Volume, requiresRestart: false));
|
||||
|
||||
AudioOffset = configFile.Bind("General", "Audio Offset", 0f, new ConfigDescription(
|
||||
"Adjust audio offset (in seconds).\n\nIf you are playing with Bluetooth headphones and experiencing a visual desync, try setting this to about negative 0.2.\n\nIf your video output has high latency (like a long HDMI cable etc.), try positive values instead.",
|
||||
new AcceptableValueRange<float>(-0.5f, 0.5f)));
|
||||
|
|
@ -2249,7 +2320,6 @@ namespace MuzikaGromche
|
|||
SetupEntriesForScreenFilters(configFile);
|
||||
SetupEntriesForExtrapolation(configFile);
|
||||
SetupEntriesToSkipWinding(configFile);
|
||||
SetupEntriesForVolume(configFile);
|
||||
SetupEntriesForPaletteOverride(configFile);
|
||||
SetupEntriesForTimingsOverride(configFile);
|
||||
#endif
|
||||
|
|
@ -2333,13 +2403,6 @@ namespace MuzikaGromche
|
|||
}
|
||||
}
|
||||
|
||||
private void SetupEntriesForVolume(ConfigFile configFile)
|
||||
{
|
||||
Volume = configFile.Bind("General", "Volume", DefaultVolume,
|
||||
new ConfigDescription("Volume of the music played by this mod.", new AcceptableValueRange<float>(0f, 1f)));
|
||||
LethalConfigManager.AddConfigItem(new FloatSliderConfigItem(Volume, requiresRestart: false));
|
||||
}
|
||||
|
||||
private void SetupEntriesForPaletteOverride(ConfigFile configFile)
|
||||
{
|
||||
const string section = "Palette";
|
||||
|
|
@ -2714,25 +2777,33 @@ namespace MuzikaGromche
|
|||
IntroAudioSource.maxDistance = Plugin.AudioMaxDistance;
|
||||
IntroAudioSource.dopplerLevel = 0;
|
||||
IntroAudioSource.loop = false;
|
||||
IntroAudioSource.volume = Config.DefaultVolume;
|
||||
IntroAudioSource.volume = Config.Volume.Value;
|
||||
|
||||
LoopAudioSource = loopAudioGameObject.GetComponent<AudioSource>();
|
||||
LoopAudioSource.maxDistance = Plugin.AudioMaxDistance;
|
||||
LoopAudioSource.dopplerLevel = 0;
|
||||
LoopAudioSource.loop = true;
|
||||
LoopAudioSource.volume = Config.DefaultVolume;
|
||||
LoopAudioSource.volume = Config.Volume.Value;
|
||||
|
||||
Config.Volume.SettingChanged += UpdateVolume;
|
||||
|
||||
Debug.Log($"{nameof(MuzikaGromche)} {nameof(MuzikaGromcheJesterNetworkBehaviour)} Patched JesterEnemy");
|
||||
}
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
void Update()
|
||||
public override void OnDestroy()
|
||||
{
|
||||
IntroAudioSource.volume = Config.Volume.Value;
|
||||
LoopAudioSource.volume = Config.Volume.Value;
|
||||
Config.Volume.SettingChanged -= UpdateVolume;
|
||||
}
|
||||
|
||||
private void UpdateVolume(object sender, EventArgs e)
|
||||
{
|
||||
if (IntroAudioSource != null && LoopAudioSource != null)
|
||||
{
|
||||
IntroAudioSource.volume = Config.Volume.Value;
|
||||
LoopAudioSource.volume = Config.Volume.Value;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
public override void OnNetworkSpawn()
|
||||
{
|
||||
|
|
|
|||
21
README.md
21
README.md
|
|
@ -2,10 +2,9 @@
|
|||
|
||||
_Add some content to your Inverse teleporter experience on Titan!<sup>1</sup>_
|
||||
|
||||
Muzika Gromche literally means "crank music louder".
|
||||
This mod replaces Jester's winding up and chasing sounds with a whole library of timed to the beat and seamlessly looped popular energetic songs, combined with various visual effects.
|
||||
Muzika Gromche literally means _"crank music louder"_. This mod replaces Jester's winding up and chasing sounds with **a whole library** of timed to the beat and **seamlessly looped** popular energetic songs, combined with various **visual effects**. Song choice is random each day but **synchronized** with clients: everyone in the lobby will wibe to the same tunes.
|
||||
|
||||
If a picture is worth a thousand words, a demo video is priceless. Check out what Muzika Gromche does:
|
||||
A demo video is worth a thousand words. Check out what Muzika Gromche does:
|
||||
|
||||
[](https://ratijas.me/share/public/LC/MuzikaGromche/video/demo/MuzikaGromche-demo.mp4)
|
||||
|
||||
|
|
@ -24,23 +23,23 @@ Muzika Gromche v1337.9001.0 has been updated to work with Lethal Company v73. Pr
|
|||
|
||||
## Playlist
|
||||
|
||||
Music track names are codenamed, and by default have equal chance of being selected. In the Lethal Config menu tracks are grouped by language, where the whole group can be quickly toggled ON or OFF at once. For example, you might want to toggle Russian or Hindi tracks OFF if you don't speak those languages.
|
||||
English playlist features artists such as **Imagine Dragons, Fall Out Boy, Bon Jovi, Black Eyed Peas, LMFAO** (Party Rock Anthem / Every day I'm shufflin'), **CYBEЯIA** / "Cyberia" (Russian Hackers), and of course **Whistle** by Joel Merry / Flo Rida.
|
||||
|
||||
English playlist features artists such as Imagine Dragons, Fall Out Boy, Bon Jovi, Black Eyed Peas, LMFAO (Party Rock Anthem / Every day I'm shufflin'), CYBEЯIA / "Cyberia" (Russian Hackers), and of course Whistle by Joel Merry / Flo Rida.
|
||||
Russian playlist includes **Би-2, Витас, Глюк’oZa** (Глюкоза) & **Ленинград, Дискотека Авария, Noize MC, Oxxxymiron, Сплин, Пошлая Молли.**
|
||||
|
||||
Russian playlist includes Би-2, Витас, Глюк’oZa (Глюкоза) & Ленинград, Дискотека Авария, Noize MC, Oxxxymiron, Сплин, Пошлая Молли.
|
||||
|
||||
There are also a K-pop track by aespa, an anime opening from One Punch Man, and an Indian banger by CarryMinati & Wily Frenzy.
|
||||
There are also a K-pop track by **aespa**, an anime opening from **One Punch Man,** and an Indian banger by **CarryMinati & Wily Frenzy.**
|
||||
|
||||
## Configuration
|
||||
|
||||
Configuration integrates with [`LethalConfig`] mod.
|
||||
|
||||
If you are just trying out this mod for the first time, or want to experience it more often, consider leaving the "Override Spawn Rates" config entry ON. Otherwise it might take a frustratingly long time to find out what you need to find out.
|
||||
Consider leaving the **Override Spawn Rates** config entry ON: it makes Jester progressively more likely to spawn afternoon.
|
||||
|
||||
Music track names are codenamed, and by default have equal chance of being selected. In the Lethal Config menu tracks are **grouped by language**, where the whole **group can be quickly toggled** ON or OFF at once. For example, you might want to toggle Russian or Hindi tracks OFF if you don't speak those languages.
|
||||
|
||||
Track selection options are only configurable by the host player.
|
||||
|
||||
Any player can change their personal preferences locally.
|
||||
Any player can change the following personal preferences locally.
|
||||
- Audio Offset: If you are playing with a Bluetooth headset, adjust Audio Offset to -0.2 seconds.
|
||||
- Display Lyrics toggle: Shows lyrics in a popup whenever player hears music.
|
||||
|
||||
|
|
@ -51,6 +50,8 @@ Any player can change their personal preferences locally.
|
|||
- [Just Nothing](https://t.me/REALJUSTNOTHING): Visual artist; contributed palettes, timings and animation curves.
|
||||
- [WaterGun](https://www.youtube.com/channel/UCCxCFfmrnqkFZ8i9FsXBJVA): Created [`V70PoweredLights_Fix`] mod, patched certain tiles with amazing lightshow.
|
||||
|
||||
See also [mod's release thread](https://discord.com/channels/1168655651455639582/1433881654866477318) at [Lethal Company Modding](https://discord.gg/XeyYqRdRGC) Discord server (in case the invite link expires, there should be a fresh one at [lethal.wiki](https://lethal.wiki/)).
|
||||
|
||||
---
|
||||
|
||||
1. Actually not limited to Inverse teleporter or Titan.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "MuzikaGromche",
|
||||
"version_number": "1337.9001.0",
|
||||
"version_number": "1337.9001.1",
|
||||
"author": "Ratijas",
|
||||
"description": "Add some content to your inverse teleporter experience on Titan!",
|
||||
"website_url": "https://git.vilunov.me/ratijas/muzika-gromche",
|
||||
|
|
|
|||
Loading…
Reference in New Issue