1
0
Fork 0
Commit Graph

91 Commits

Author SHA1 Message Date
ivan tkachenko 8842005898 Add new track BeefLiver 2025-08-11 22:28:31 +03:00
ivan tkachenko b4ae4bad41 Config: More usable range for fading out 2025-08-11 22:28:31 +03:00
ivan tkachenko 69e64397a0 Extrapolate AudioSource playback time to get smoother transitions
AudioSource only updates about 25 times per second, meaning that even at
30 fps some adjacent frames would be calculated as having exact same
timestamps and render duplicated colors. At 100+ fps more than 2/3 of
the frames would be duplicates.

As a drive-by change, split complex logic of BeatTimeState into smaller
classes. Most of the time the state needs to maintain some boolean flag
which it flips once and stays that way, like HasStarted, IsLooping.
2025-08-11 22:28:31 +03:00
ivan tkachenko 3d0795f04d Drop CSync as a dependency from Release builds
Since the rewrite of track selection to a custom netcode, CSync is only
needed for debug/development builds now.
2025-08-11 22:28:31 +03:00
ivan tkachenko 4abd0fb612 Fix stale event handlers causing errors in console 2025-08-11 22:28:30 +03:00
ivan tkachenko 0dca416958 Rewrite track choosing event to custom netcode 2025-08-07 20:27:57 +03:00
ivan tkachenko 1ffdd5d97e Add spawn rate patch to make the event more likely 2025-08-05 05:10:21 +03:00
ivan tkachenko f50989b5ae Refactor: Optimize DiscoBallManager to create and cache at start of round 2025-08-03 00:31:06 +03:00
ivan tkachenko 72adb9e713 Refactor: Fix up visibility and static modifiers, and other minor things 2025-08-02 16:25:45 +03:00
ivan tkachenko 76e9ca3595 Refactor: Make State an internal class of JesterPatch class 2025-08-02 16:12:44 +03:00
ivan tkachenko b6f2ca355b Refactor: Factor out displaying lyrics as a tip in its own method 2025-08-02 15:54:07 +03:00
ivan tkachenko 4d84a2d001 Fix multiple Light components per animator
Add them all to the allPoweredLights list,
not just the whatever first one was found.
2025-08-02 15:50:59 +03:00
ivan tkachenko c7b67b9042 Update manifest, README and project files 2025-08-02 01:04:11 +03:00
ivan tkachenko 9062f386de Fix/add light flickering with animator controllers 2025-08-01 16:48:16 +03:00
ivan tkachenko 3a2eaad493 Add more light flickering to the track Kach 2025-08-01 02:55:27 +03:00
ivan tkachenko bacb9f07c7 Use StartOfRound.Instance.audioListener for lyrics events
Probably doesn't make a difference, but it's nice to be able to
calculate audio source<->listener distance directly.
2025-07-30 20:09:17 +03:00
ivan tkachenko 2a28a36a69 Config: Remove EnableColorAnimations toggle
Turns out, it doesn't really affect anything. AMD on Linux would lag anyway.
2025-07-30 18:56:34 +03:00
ivan tkachenko 841ccc74ed Fix color transition from a negative beat 2025-07-30 18:56:33 +03:00
ivan tkachenko 8729515537 Fix timings of fade out and lyrics for DeployDestroy 2025-07-30 18:56:33 +03:00
ivan tkachenko 991e2a56b7 Fix color right before wrapping
The buggy Split method was erroneously creating a looping span despite
explicitly passing `isLooping: false` parameter because with
`beatToInclusive: LoopBeats` wrapping will occur regardless. This
messed up with Duration calculations, and eventually caused the last
beat default to transition with t=0, when it should really be static.
2025-07-30 18:56:33 +03:00
ivan tkachenko c689198588 Fix fading out: set pure black at the end 2025-07-30 18:56:33 +03:00
ivan tkachenko 667368d719 Add specialized color transition event to improve debug output 2025-07-30 18:37:59 +03:00
ivan tkachenko 6a0be0d780 Enable nullable reference types 2025-07-30 18:37:58 +03:00
ivan tkachenko 0573091162 Auto formatting 2025-07-30 18:37:58 +03:00
ivan tkachenko 2ef0fc3bd9 Fix up all logs to use nameof() instead of hardcoded string 2025-07-30 18:37:58 +03:00
ivan tkachenko ce437aa86c Events: Mark BaseEvent as abstract
It's not useful on its own
2025-07-30 18:37:57 +03:00
ivan tkachenko 7ed299ead8 Fix AudioSource distance check for lyrics event
It was checking maxDistance of a non-overridden loop clip during windup.
2025-07-30 18:37:56 +03:00
ivan tkachenko f959a4ebb2 Setup LobbyCompatibility as a dependency
This should help to avoid desync issues.
2025-07-30 01:29:07 +03:00
ivan tkachenko 581d9701bd Remove redundant call to private method FlickerPoweredLights
FlickerPoweredLights is a private coroutine.

FlickerLights is the public method that internally starts and stores the
FlickerPoweredLights coroutine.
2025-07-21 19:07:36 +03:00
ivan tkachenko 730f125d62 Patch Jester destructor to reset the light show
It is needed to despawn Jester via Imperium's Object Explorer.
2025-07-21 01:06:45 +03:00
ivan tkachenko 8e065d3e51 Add config option to skip tracks marked as Explicit Content/Lyrics
Unfortunately it is configurable by host only, and there is no sane way
to make work from clients.
2025-07-21 00:55:40 +03:00
ivan tkachenko 2a33457661 Harmony: Use nameof() instead of hardcoded strings 2025-07-21 00:32:43 +03:00
ivan tkachenko 0fbf0b04f4 Add V70PoweredLights_Fix to the package dependencies
Not strictly required, but makes this mod shine brighter.
2025-07-21 00:32:43 +03:00
ivan tkachenko 0c5d4f7158 Add DiscoBall to Main on all interiors, BirthdayRoom and factory (belt room) 2025-07-21 00:32:43 +03:00
ivan tkachenko 9e066372c5 Add support for lyrics randomization 2025-07-21 00:32:42 +03:00
ivan tkachenko ca977625db Sort imports the way VisualStudio likes it
Apparently, Sublime Text's Sort Lines command ordered them in a weird
way, inconsistent with VS, VS Code and human logic.
2025-07-20 23:04:41 +03:00
ivan tkachenko 7d1cac6e2e Add lyrics, flickering and fade out transitions to many tracks 2025-07-20 23:04:40 +03:00
ivan tkachenko 2229fa3545 Add debug-only config for lyrics time series 2025-07-20 23:04:40 +03:00
ivan tkachenko 118eecbb59 Add support for fading out, and debug-only config for flickering lights 2025-07-20 23:04:40 +03:00
ivan tkachenko b8824dbbfb Config: Most synced options have something in common 2025-07-20 23:04:40 +03:00
ivan tkachenko 3e751c0d8d Config: reduce repetition
It may look complicated, but it reduced references to each individual
entry from almost ten to just 4.
2025-07-20 23:04:39 +03:00
ivan tkachenko 601ecf8887 Reworked state management system, automatic wrapping of timestamps and spans
Add lyrics for MoyaZhittya
2025-07-20 23:04:39 +03:00
ivan tkachenko d13c617895 Apply audio offsets early to simplify math 2025-07-18 02:40:55 +03:00
ivan tkachenko e1f19b3919 Add track Kach with custom palette and timings 2025-07-18 02:40:55 +03:00
ivan tkachenko ba0162b3e1 Add track PWNED with custom palette and timings 2025-07-18 02:40:54 +03:00
ivan tkachenko ed8804b7a7 Add track Chereshnya with custom palette and timings 2025-07-18 02:40:53 +03:00
ivan tkachenko 9be9eaaf80 Extend loop of the track VseVZale
Now includes second phase OOOoooo OOooo
2025-07-18 02:40:53 +03:00
ivan tkachenko 0683a18491 Port track VseVZale to OGG format
No gap now.
2025-07-18 02:40:52 +03:00
ivan tkachenko 6204888453 Port track DeployDestroy to OGG format
No gap now.
2025-07-18 02:40:52 +03:00
ivan tkachenko c15637b347 Port track Durochka to OGG format, add custom transitions
No gap now.
2025-07-18 02:40:51 +03:00