ivan tkachenko
f20a500992
Show Artist & Song metadata in config
2026-01-23 14:34:37 +02:00
ivan tkachenko
6a71ed578b
Include Artist & Song metadata in the track info
2026-01-23 14:19:34 +02:00
ivan tkachenko
4cc187b525
Split audio tracks metadata into a separate file
2026-01-23 01:52:23 +02:00
ivan tkachenko
ecee2a25e2
Reorder [General] config section alphabetically
...
As a side-effect, this conveniently places the most important option
OverrideSpawnRates at the top.
2026-01-23 00:13:02 +02:00
ivan tkachenko
af38056d11
Merge Config.DisplayLyrics and ReduceVFXIntensity
...
Both are responsible for some sort of VFX. Make the number of options
less overwhelming by merging the two into one.
2026-01-23 00:08:17 +02:00
ivan tkachenko
567597e353
Remove Config.ExtrapolateTime even from Debug build
...
Just always do it, there is no reason not to.
And maybe try dspTime to replace the whole extrapolation technique.
2026-01-22 23:47:00 +02:00
ivan tkachenko
ee2b1574d0
Hide AudioOffset from Lethal Config
...
It is a niche option, and having two sliders next to each other might be
overwhelming for players.
2026-01-22 23:43:02 +02:00
ivan tkachenko
4e9ba0928f
Disable track Yalgaar in release builds
...
Still will be available in a web player.
2026-01-22 23:38:56 +02:00
ivan tkachenko
6a5cc637ac
Rewrite client-side vanilla-compat mode
...
Amends b8ef4d7937
Networking and playback are fixed, but client-side vanilla-compat mode
can never work as intended, because timers are actually client-side and
not synchronized at all. No matter what your local timer is set to, the
host gets to decide when to pop Jester at a completely random for your
client moment. There can be no meaningful prediction whatsoever.
2026-01-22 23:38:56 +02:00
ivan tkachenko
a2cf66476c
Deduplicate logs to avoid spamming console with errors each frame
2026-01-20 01:48:39 +02:00
ivan tkachenko
a254188f0c
Stop farAudio (popGoesTheWeaselTheme) in the only place where it matters
2026-01-17 19:40:42 +02:00
ivan tkachenko
3041d9f73c
Merge EnemyAI.OnDestroy patch with cleanups into existing Behaviour
...
That Harmony patch predated MuzikaGromcheJesterNetworkBehaviour, but
there is no need to have as a separate class, especially not with the
subclass check hack.
2026-01-16 19:38:43 +02:00
ivan tkachenko
b8ef4d7937
Implement client-side playback with Vanilla Compat Mode
2026-01-13 21:43:52 +02:00
ivan tkachenko
ffa2e952c9
Add new track TwoFastTuFurious
2026-01-13 04:57:49 +02:00
ivan tkachenko
3f06cc9aa6
Add new track PickUpSticks
2026-01-12 03:20:03 +02:00
ivan tkachenko
a4cee92d00
Load audio clips on demand, implement cache
...
Reduces cold-boot memory usage by 400 MB for the current playlist of
58 audio files (27.8 MB).
2026-01-11 16:06:45 +02:00
ivan tkachenko
f83f2a72ba
Mark AudioClip as nullable
2026-01-11 03:17:49 +02:00
ivan tkachenko
afb3e34e71
Implement seasonal content framework
...
to ensure that New Year's songs won't play in summer.
2026-01-11 02:53:53 +02:00
ivan tkachenko
ebd7811b12
Avoid null dereference while reading seed in orbit
2026-01-11 02:13:19 +02:00
ivan tkachenko
a64d671527
Add Config.ReduceVFXIntensity option
2026-01-11 00:12:21 +02:00
ivan tkachenko
7eaa5fce75
Add new track DiscoKapot
2026-01-10 23:47:39 +02:00
ivan tkachenko
da86ca6a2d
Add new track Paarden
2026-01-10 22:51:56 +02:00
ivan tkachenko
c4c1919df6
Adjust lyrics for PWNED
2026-01-10 21:10:08 +02:00
ivan tkachenko
869d982b1e
Remaster recently added track IkWilJe, rework visual effects
2026-01-10 21:07:15 +02:00
ivan tkachenko
56cea50a65
add new track IkWilJe
2025-12-30 23:39:01 +02:00
ivan tkachenko
c1d91839e4
add new track HighLow
2025-12-30 22:25:50 +02:00
ivan tkachenko
76189c6ad2
Update BepInEx.PluginInfoProps to version 2.x
...
2.x implements better namespacing.
2025-12-30 22:25:49 +02:00
ivan tkachenko
a4ca1c86ec
Save Harmony own instance in private static
...
That's how other mods do it. Might be useful to reload patches.
2025-12-19 23:40:46 +02:00
ivan tkachenko
38c9472cb1
Port logging to BepInEx ManualLogSource
...
- pros: free namespace by default
- cons: Debug level has to be enabled manually in BepInEx.cfg,
specifically in the section named [Logging.Console]
2025-12-19 23:39:28 +02:00
ivan tkachenko
8a24448cb6
Consistent ordering of Easing functions in C#
2025-12-06 23:26:08 +02:00
ivan tkachenko
a74bbfaee2
Add JSON exporter to debug builds
2025-11-23 15:56:58 +02:00
ivan tkachenko
5a8f0201a3
Tweak color visual effects and lyrics for MoyaZhittya and other tracks
2025-11-01 23:37:34 +02:00
ivan tkachenko
825355dd54
Raise the default audio volume, add a configuration slider
2025-11-01 23:37:34 +02:00
ivan tkachenko
049a14e440
Use requiresRestart: false directly, remove Default() options factory
...
Now, without an additional CanModifyCallback setup, Default is just a
pointless overhead.
2025-10-15 15:55:29 +03:00
ivan tkachenko
1ec8275831
Drop restrictions on when/whether host/clients can modify config
...
Lethal Config does not refresh that state reliably, it has only caused
bugs and annoyances so far. If someone wants to change the track mid-day,
there is a small chance to desync though.
2025-10-15 15:49:53 +03:00
ivan tkachenko
9efe6adaf3
Add a new track ReelGoon
2025-10-14 19:00:11 +03:00
ivan tkachenko
a5b117e26d
Add a new track Whistle
2025-10-14 17:48:37 +03:00
ivan tkachenko
01332ab77f
Add a new track BbIXODaHET
2025-10-14 17:48:37 +03:00
ivan tkachenko
7aa3570b33
Fix internal representation of track AttentionPls
...
Members of track group were never intended to be Selectable.
2025-10-14 17:48:36 +03:00
ivan tkachenko
e7866fda55
Fix division erroneously rounding to integers
...
This fixes LoopOffset which is a non-integer factor or Beats.
2025-10-14 17:48:36 +03:00
ivan tkachenko
cd9e0a7a10
Compensate for loudness level -14 LUFS of audio files
2025-10-14 17:48:36 +03:00
ivan tkachenko
8223425b19
Remaster all tracks to target consistent loudness level of -14 LUFS
...
Add multiple intros for BeefLiver.
2025-10-14 16:53:11 +03:00
ivan tkachenko
aea755361b
Added new track AttentionPls, implement HUD effects as a time series / timeline
2025-09-26 18:07:11 +03:00
ivan tkachenko
e67c72951e
Override DeathScreen / GameOver text, add support for per-track strings
...
Custom message is shown only if the player dies to a Jester.
2025-09-22 03:01:41 +03:00
ivan tkachenko
99babe8bdf
Substitute placeholder nulls with per-light initial color for transitions
...
Fade out and first color transitions used to assume white as a default
color, which is not always the case e.g. in Mineshaft tunnel tiles. Use
nullable from/to/color fields, and substitute them with per-light
initial color data in a new virtual method that calculates colors.
2025-08-25 01:29:39 +03:00
ivan tkachenko
4cc9713fa7
Fix resetting to wrong initial colors, e.g. in Mineshaft tunnel tiles
...
This does not fix fading out and transitioning to the very first palette
color though, but fixing that would require color events to
be "personalized" per-light, which is currently not supported.
2025-08-23 01:49:12 +03:00
ivan tkachenko
8710df7525
Change config value for Override Spawn Rates to true by default
2025-08-22 16:09:01 +03:00
ivan tkachenko
9d23fd5b95
Downgrade LobbyCompatibility to optional dependency
...
Since it does not prevent unmodded clients from joining, there is no
reason for literally any mod to require it.
2025-08-22 16:05:42 +03:00
ivan tkachenko
4516b853cd
Remove remaining CSync code and references
...
There were issues with clients not being able to join, potentially
caused by linked (even though actually unused) CSync library.
2025-08-22 15:16:24 +03:00
ivan tkachenko
327e606deb
Drop required properties syntax
...
Sometimes, seemingly after random unrelated changes, it might stop
compiling with internal compiler error messages about missing features
and attributes. .NET Standard 2.1 is not supposed to support any
features beyond C# 8.0, while `required` attribute was introduced only
in C# 11 or 12, it's hard to tell.
2025-08-22 15:16:24 +03:00