HeavenStudioPlus/Assets/Scripts/Games/Lockstep/Lockstep.cs
Rapandrasmus 59df6bd245
Minigames Patch Part 2 (#508)
* Update issue template to include .riq/.zip info (#483)

Co-authored-by: patata <patataofcourse@gmail.com>

* Pull release 1 (#484)

* Squashed commit of the following:

commit a6ce193ce5
Merge: 6105bb4f 9b24ac48
Author: minenice55 <star.elementa@gmail.com>
Date:   Wed Jun 14 01:23:31 2023 +0000

    Merge pull request #473 from minenice55/easings-fix

    Enum Parsing Fix

commit 9b24ac4838
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:21:13 2023 -0400

    fix all parsing of enums, removed the "special case" for eases

    update to latest Jukebox

commit 6105bb4f64
Merge: 576b4a00 8df235a8
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:39:15 2023 +0000

    Merge pull request #469 from minenice55/jukebox-update

    Jukebox Package Update

commit 576b4a0017
Merge: 99804457 10f8fa7f
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:39:08 2023 +0000

    Merge pull request #458 from AstrlJelly/MiscAdditions_4

    Bug Fixes + Feature Additions

commit 10f8fa7f5a
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 17:38:24 2023 -0400

    add "updater" for the old marching entity

commit 118cd4993d
Merge: 1c1c731d 99804457
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 17:22:01 2023 -0400

    Merge branch 'release_1' into pr/458

commit 8df235a85b
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 16:55:02 2023 -0400

    let play mode start if no song file is loaded

    fix issue with loading large audio files

commit 9980445723
Merge: aff1e3d8 2f595824
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 18:32:40 2023 +0000

    Merge pull request #471 from Rapandrasmus/FixWorkingDoughCurve

    Fixed weird curve stuff on game switch in working dough

commit 2f59582460
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 19:24:13 2023 +0200

    Fixed weird curve stuff on game switch in working dough

commit aff1e3d889
Merge: b40ec128 c9accfa5
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 16:09:21 2023 +0000

    Merge pull request #470 from Rapandrasmus/WorkingDoughFixes

    Fixed small balls not working in working dough

commit c9accfa52d
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 18:07:13 2023 +0200

    Fixed small balls not working in working dough

commit b40ec128a5
Merge: 9f953d50 95c9b346
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 14:56:58 2023 +0000

    Merge pull request #467 from Rapandrasmus/WorkingDoughRework

    Working Dough rework

commit 95c9b34695
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 16:13:08 2023 +0200

    modernised rockers pass turn

commit 0debf55391
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 16:03:08 2023 +0200

    Rhythm tweezers pass turn now works like working dough

commit 6eac745eae
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 15:51:35 2023 +0200

    gandw on balls has been added

commit 349867d983
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 14:59:56 2023 +0200

    Proper inactive handling now

commit d469c6c3fa
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 13:52:15 2023 +0200

    OnSpawnBall reimplemented

commit dd290b3331
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 13:37:09 2023 +0200

    new sounds

commit 757e1c2c5e
Author: minenice55 <star.elementa@gmail.com>
Date:   Mon Jun 12 17:18:37 2023 -0400

    update Jukebox to latest version

    fixes for inferred entity loading

commit 8ce1d8276b
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 21:36:57 2023 +0200

    ball transporter anims for pass turn

commit af0d9bae19
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 20:38:48 2023 +0200

    working dough converted, need to fix eveerything though

commit db21d51673
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 18:36:41 2023 +0200

    Converted everything to new curves and made playerballs handle themselves input-wise

commit 41157a038c
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 14:04:32 2023 +0200

    Some new curves

commit 7d754f5706
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 12:03:21 2023 +0200

    Rockers can do it too now

commit c196947251
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 11:58:31 2023 +0200

    You can now place inputs on top of pass turn for rhythm tweezers

commit 9f953d505f
Merge: 2a8d8d6f df120f08
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 15:55:40 2023 -0400

    Merge branch 'master' into release_1

commit 2a8d8d6fd2
Merge: 9e3e5942 13adf5b0
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 19:53:47 2023 +0000

    Merge pull request #465 from minenice55/dont_infer_track

    Don't infer the track field when importing converted v0 riq coming from unknown origin

commit 13adf5b07b
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 15:52:14 2023 -0400

    don't infer track when importing a v0 riq from another program

commit 9e3e594209
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 12:12:25 2023 -0400

    make base datamodels for special entity reading (#463)

    * make base datamodels for special entity reading

    * fix crop stomp breaking when no game switch or remix end is set

    * fix save shortcut

    fix loading charts with no music

commit 1c1c731dd1
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 23:00:30 2023 -0400

    add updater for marching orders turn

commit 210be54ba3
Merge: 67b6658c af8395fb
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 22:36:10 2023 -0400

    Merge branch 'release_1' into pr/458

commit af8395fb6a
Merge: 81eafec9 b1fab52a
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 22:30:32 2023 -0400

    Merge branch 'master' into release_1

commit 81eafec986
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 22:27:58 2023 -0400

    editor fixes (#459)

    * ditch loading dialog

    doesn't show up when it's supposed to

    * format song offset in editor

    * remove VorbisPlugin

    * Update Editor.cs

commit 67b6658cd3
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 16:55:10 2023 -0400

    convert float to double and all that

commit a4b66367fd
Merge: 08a664ba b1fab52a
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 16:01:44 2023 -0400

    Merge remote-tracking branch 'upstream/master' into MiscAdditions_4

commit 08a664ba2a
Merge: faf3fbf9 b7afd697
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 15:21:22 2023 -0400

    Merge remote-tracking branch 'upstream/master' into MiscAdditions_4

commit faf3fbf97c
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 15:18:45 2023 -0400

    a lot

    * munchy monk input + mustache fixes
    * fork lifter and pajama party bopping
    * meat grinder miss bop fix
    * cloud monkey Real
    * marching orders Go! was broken
    * force march doesn't break when it's too early from a game switch
    * you can use the March! block without the marching now

commit bb2ae74339
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 15:13:29 2023 -0400

    Integration of Jukebox Library (#451)

    * add Jukebox library

    todo:
    - saving / loading of new format
    - inferrence of unknown data like past versions
    - move the temporary float casts to proper use of double
    - make sound related functions take double for timing
    - inform people that the Jukebox sound player was renamed to SoundByte lol

    * make sound, input scheduling, and super curve use double precision

    * successfully load charts

    * editor works again

    v1 riqs can be saved and loaded

    * first tempo and volume markers are unmovable

    fix loading of charts' easing values

    * use gsync / freesync

    * update Jukebox refs to SoundByte

    * game events use double part 1

    Air Rally - Glee Club converted

    * don't load song if chart load fails

    * finish conversion of all minigames

    * remove editor waveform toggle

    * timeline now respects added song offset length

    clear cache files on app close
    prepped notes for dsp sync

    * update timeline length when offset changed

    * update to latest Jukebox

    * make error panel object in global game manager

    * improve conductor music scheduling

    * added error message box

    fix first game events sometimes not playing

* Squashed commit of the following:

commit e782e3a5b4
Merge: 5b8cfef1 ce74719c
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 17 16:40:52 2023 +0000

    Merge pull request #478 from evdial/working-dough

    Working Dough Tweaks

commit ce74719c1a
Merge: 9c61b760 5b8cfef1
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 17 12:40:06 2023 -0400

    Merge branch 'release_1' into pr/478

commit 5b8cfef1b0
Author: patata <patataofcourse@gmail.com>
Date:   Sat Jun 17 17:20:15 2023 +0200

    Update issue template to include .riq/.zip info

commit 9c61b760bb
Author: ev <85412919+evdial@users.noreply.github.com>
Date:   Thu Jun 15 15:05:07 2023 -0400

    assbuns

commit ae7451e9d3
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Thu Jun 15 20:56:40 2023 +0200

    made small idle not crazy

commit 4c5c95237c
Author: ev <85412919+evdial@users.noreply.github.com>
Date:   Thu Jun 15 14:33:57 2023 -0400

    fsd

commit 083d916238
Author: ev <85412919+evdial@users.noreply.github.com>
Date:   Thu Jun 15 14:16:38 2023 -0400

    anim

commit b3664e01b3
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Thu Jun 15 20:13:11 2023 +0200

    Fixed stuff also scaled now yippee

commit 71e3a0ce6b
Author: ev <85412919+evdial@users.noreply.github.com>
Date:   Thu Jun 15 13:50:10 2023 -0400

    many

commit 534b06301d
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:28:21 2023 -0400

    Squashed commit of the following: (#474)

    commit a6ce193ce5
    Merge: 6105bb4f 9b24ac48
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Wed Jun 14 01:23:31 2023 +0000

        Merge pull request #473 from minenice55/easings-fix

        Enum Parsing Fix

    commit 9b24ac4838
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 21:21:13 2023 -0400

        fix all parsing of enums, removed the "special case" for eases

        update to latest Jukebox

    commit 6105bb4f64
    Merge: 576b4a00 8df235a8
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 21:39:15 2023 +0000

        Merge pull request #469 from minenice55/jukebox-update

        Jukebox Package Update

    commit 576b4a0017
    Merge: 99804457 10f8fa7f
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 21:39:08 2023 +0000

        Merge pull request #458 from AstrlJelly/MiscAdditions_4

        Bug Fixes + Feature Additions

    commit 10f8fa7f5a
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 17:38:24 2023 -0400

        add "updater" for the old marching entity

    commit 118cd4993d
    Merge: 1c1c731d 99804457
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 17:22:01 2023 -0400

        Merge branch 'release_1' into pr/458

    commit 8df235a85b
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 16:55:02 2023 -0400

        let play mode start if no song file is loaded

        fix issue with loading large audio files

    commit 9980445723
    Merge: aff1e3d8 2f595824
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 18:32:40 2023 +0000

        Merge pull request #471 from Rapandrasmus/FixWorkingDoughCurve

        Fixed weird curve stuff on game switch in working dough

    commit 2f59582460
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 19:24:13 2023 +0200

        Fixed weird curve stuff on game switch in working dough

    commit aff1e3d889
    Merge: b40ec128 c9accfa5
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 16:09:21 2023 +0000

        Merge pull request #470 from Rapandrasmus/WorkingDoughFixes

        Fixed small balls not working in working dough

    commit c9accfa52d
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 18:07:13 2023 +0200

        Fixed small balls not working in working dough

    commit b40ec128a5
    Merge: 9f953d50 95c9b346
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 14:56:58 2023 +0000

        Merge pull request #467 from Rapandrasmus/WorkingDoughRework

        Working Dough rework

    commit 95c9b34695
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 16:13:08 2023 +0200

        modernised rockers pass turn

    commit 0debf55391
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 16:03:08 2023 +0200

        Rhythm tweezers pass turn now works like working dough

    commit 6eac745eae
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 15:51:35 2023 +0200

        gandw on balls has been added

    commit 349867d983
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 14:59:56 2023 +0200

        Proper inactive handling now

    commit d469c6c3fa
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 13:52:15 2023 +0200

        OnSpawnBall reimplemented

    commit dd290b3331
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 13:37:09 2023 +0200

        new sounds

    commit 757e1c2c5e
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Mon Jun 12 17:18:37 2023 -0400

        update Jukebox to latest version

        fixes for inferred entity loading

    commit 8ce1d8276b
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Mon Jun 12 21:36:57 2023 +0200

        ball transporter anims for pass turn

    commit af0d9bae19
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Mon Jun 12 20:38:48 2023 +0200

        working dough converted, need to fix eveerything though

    commit db21d51673
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Mon Jun 12 18:36:41 2023 +0200

        Converted everything to new curves and made playerballs handle themselves input-wise

    commit 41157a038c
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Mon Jun 12 14:04:32 2023 +0200

        Some new curves

    commit 7d754f5706
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Mon Jun 12 12:03:21 2023 +0200

        Rockers can do it too now

    commit c196947251
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Mon Jun 12 11:58:31 2023 +0200

        You can now place inputs on top of pass turn for rhythm tweezers

    commit 9f953d505f
    Merge: 2a8d8d6f df120f08
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sun Jun 11 15:55:40 2023 -0400

        Merge branch 'master' into release_1

    commit 2a8d8d6fd2
    Merge: 9e3e5942 13adf5b0
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sun Jun 11 19:53:47 2023 +0000

        Merge pull request #465 from minenice55/dont_infer_track

        Don't infer the track field when importing converted v0 riq coming from unknown origin

    commit 13adf5b07b
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sun Jun 11 15:52:14 2023 -0400

        don't infer track when importing a v0 riq from another program

    commit 9e3e594209
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sun Jun 11 12:12:25 2023 -0400

        make base datamodels for special entity reading (#463)

        * make base datamodels for special entity reading

        * fix crop stomp breaking when no game switch or remix end is set

        * fix save shortcut

        fix loading charts with no music

    commit 1c1c731dd1
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sat Jun 10 23:00:30 2023 -0400

        add updater for marching orders turn

    commit 210be54ba3
    Merge: 67b6658c af8395fb
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sat Jun 10 22:36:10 2023 -0400

        Merge branch 'release_1' into pr/458

    commit af8395fb6a
    Merge: 81eafec9 b1fab52a
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sat Jun 10 22:30:32 2023 -0400

        Merge branch 'master' into release_1

    commit 81eafec986
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sat Jun 10 22:27:58 2023 -0400

        editor fixes (#459)

        * ditch loading dialog

        doesn't show up when it's supposed to

        * format song offset in editor

        * remove VorbisPlugin

        * Update Editor.cs

    commit 67b6658cd3
    Author: AstrlJelly <bdlawson115@gmail.com>
    Date:   Sat Jun 10 16:55:10 2023 -0400

        convert float to double and all that

    commit a4b66367fd
    Merge: 08a664ba b1fab52a
    Author: AstrlJelly <bdlawson115@gmail.com>
    Date:   Sat Jun 10 16:01:44 2023 -0400

        Merge remote-tracking branch 'upstream/master' into MiscAdditions_4

    commit 08a664ba2a
    Merge: faf3fbf9 b7afd697
    Author: AstrlJelly <bdlawson115@gmail.com>
    Date:   Sat Jun 10 15:21:22 2023 -0400

        Merge remote-tracking branch 'upstream/master' into MiscAdditions_4

    commit faf3fbf97c
    Author: AstrlJelly <bdlawson115@gmail.com>
    Date:   Sat Jun 10 15:18:45 2023 -0400

        a lot

        * munchy monk input + mustache fixes
        * fork lifter and pajama party bopping
        * meat grinder miss bop fix
        * cloud monkey Real
        * marching orders Go! was broken
        * force march doesn't break when it's too early from a game switch
        * you can use the March! block without the marching now

    commit bb2ae74339
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sat Jun 10 15:13:29 2023 -0400

        Integration of Jukebox Library (#451)

        * add Jukebox library

        todo:
        - saving / loading of new format
        - inferrence of unknown data like past versions
        - move the temporary float casts to proper use of double
        - make sound related functions take double for timing
        - inform people that the Jukebox sound player was renamed to SoundByte lol

        * make sound, input scheduling, and super curve use double precision

        * successfully load charts

        * editor works again

        v1 riqs can be saved and loaded

        * first tempo and volume markers are unmovable

        fix loading of charts' easing values

        * use gsync / freesync

        * update Jukebox refs to SoundByte

        * game events use double part 1

        Air Rally - Glee Club converted

        * don't load song if chart load fails

        * finish conversion of all minigames

        * remove editor waveform toggle

        * timeline now respects added song offset length

        clear cache files on app close
        prepped notes for dsp sync

        * update timeline length when offset changed

        * update to latest Jukebox

        * make error panel object in global game manager

        * improve conductor music scheduling

        * added error message box

        fix first game events sometimes not playing

commit a6ce193ce5
Merge: 6105bb4f 9b24ac48
Author: minenice55 <star.elementa@gmail.com>
Date:   Wed Jun 14 01:23:31 2023 +0000

    Merge pull request #473 from minenice55/easings-fix

    Enum Parsing Fix

commit 9b24ac4838
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:21:13 2023 -0400

    fix all parsing of enums, removed the "special case" for eases

    update to latest Jukebox

commit 6105bb4f64
Merge: 576b4a00 8df235a8
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:39:15 2023 +0000

    Merge pull request #469 from minenice55/jukebox-update

    Jukebox Package Update

commit 576b4a0017
Merge: 99804457 10f8fa7f
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:39:08 2023 +0000

    Merge pull request #458 from AstrlJelly/MiscAdditions_4

    Bug Fixes + Feature Additions

commit 10f8fa7f5a
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 17:38:24 2023 -0400

    add "updater" for the old marching entity

commit 118cd4993d
Merge: 1c1c731d 99804457
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 17:22:01 2023 -0400

    Merge branch 'release_1' into pr/458

commit 8df235a85b
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 16:55:02 2023 -0400

    let play mode start if no song file is loaded

    fix issue with loading large audio files

commit 9980445723
Merge: aff1e3d8 2f595824
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 18:32:40 2023 +0000

    Merge pull request #471 from Rapandrasmus/FixWorkingDoughCurve

    Fixed weird curve stuff on game switch in working dough

commit 2f59582460
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 19:24:13 2023 +0200

    Fixed weird curve stuff on game switch in working dough

commit aff1e3d889
Merge: b40ec128 c9accfa5
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 16:09:21 2023 +0000

    Merge pull request #470 from Rapandrasmus/WorkingDoughFixes

    Fixed small balls not working in working dough

commit c9accfa52d
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 18:07:13 2023 +0200

    Fixed small balls not working in working dough

commit b40ec128a5
Merge: 9f953d50 95c9b346
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 14:56:58 2023 +0000

    Merge pull request #467 from Rapandrasmus/WorkingDoughRework

    Working Dough rework

commit 95c9b34695
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 16:13:08 2023 +0200

    modernised rockers pass turn

commit 0debf55391
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 16:03:08 2023 +0200

    Rhythm tweezers pass turn now works like working dough

commit 6eac745eae
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 15:51:35 2023 +0200

    gandw on balls has been added

commit 349867d983
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 14:59:56 2023 +0200

    Proper inactive handling now

commit d469c6c3fa
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 13:52:15 2023 +0200

    OnSpawnBall reimplemented

commit dd290b3331
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 13:37:09 2023 +0200

    new sounds

commit 757e1c2c5e
Author: minenice55 <star.elementa@gmail.com>
Date:   Mon Jun 12 17:18:37 2023 -0400

    update Jukebox to latest version

    fixes for inferred entity loading

commit 8ce1d8276b
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 21:36:57 2023 +0200

    ball transporter anims for pass turn

commit af0d9bae19
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 20:38:48 2023 +0200

    working dough converted, need to fix eveerything though

commit db21d51673
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 18:36:41 2023 +0200

    Converted everything to new curves and made playerballs handle themselves input-wise

commit 41157a038c
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 14:04:32 2023 +0200

    Some new curves

commit 7d754f5706
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 12:03:21 2023 +0200

    Rockers can do it too now

commit c196947251
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 11:58:31 2023 +0200

    You can now place inputs on top of pass turn for rhythm tweezers

commit 9f953d505f
Merge: 2a8d8d6f df120f08
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 15:55:40 2023 -0400

    Merge branch 'master' into release_1

commit 2a8d8d6fd2
Merge: 9e3e5942 13adf5b0
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 19:53:47 2023 +0000

    Merge pull request #465 from minenice55/dont_infer_track

    Don't infer the track field when importing converted v0 riq coming from unknown origin

commit 13adf5b07b
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 15:52:14 2023 -0400

    don't infer track when importing a v0 riq from another program

commit 9e3e594209
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 12:12:25 2023 -0400

    make base datamodels for special entity reading (#463)

    * make base datamodels for special entity reading

    * fix crop stomp breaking when no game switch or remix end is set

    * fix save shortcut

    fix loading charts with no music

commit 1c1c731dd1
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 23:00:30 2023 -0400

    add updater for marching orders turn

commit 210be54ba3
Merge: 67b6658c af8395fb
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 22:36:10 2023 -0400

    Merge branch 'release_1' into pr/458

commit af8395fb6a
Merge: 81eafec9 b1fab52a
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 22:30:32 2023 -0400

    Merge branch 'master' into release_1

commit 81eafec986
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 22:27:58 2023 -0400

    editor fixes (#459)

    * ditch loading dialog

    doesn't show up when it's supposed to

    * format song offset in editor

    * remove VorbisPlugin

    * Update Editor.cs

commit 67b6658cd3
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 16:55:10 2023 -0400

    convert float to double and all that

commit a4b66367fd
Merge: 08a664ba b1fab52a
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 16:01:44 2023 -0400

    Merge remote-tracking branch 'upstream/master' into MiscAdditions_4

commit 08a664ba2a
Merge: faf3fbf9 b7afd697
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 15:21:22 2023 -0400

    Merge remote-tracking branch 'upstream/master' into MiscAdditions_4

commit faf3fbf97c
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 15:18:45 2023 -0400

    a lot

    * munchy monk input + mustache fixes
    * fork lifter and pajama party bopping
    * meat grinder miss bop fix
    * cloud monkey Real
    * marching orders Go! was broken
    * force march doesn't break when it's too early from a game switch
    * you can use the March! block without the marching now

commit bb2ae74339
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 15:13:29 2023 -0400

    Integration of Jukebox Library (#451)

    * add Jukebox library

    todo:
    - saving / loading of new format
    - inferrence of unknown data like past versions
    - move the temporary float casts to proper use of double
    - make sound related functions take double for timing
    - inform people that the Jukebox sound player was renamed to SoundByte lol

    * make sound, input scheduling, and super curve use double precision

    * successfully load charts

    * editor works again

    v1 riqs can be saved and loaded

    * first tempo and volume markers are unmovable

    fix loading of charts' easing values

    * use gsync / freesync

    * update Jukebox refs to SoundByte

    * game events use double part 1

    Air Rally - Glee Club converted

    * don't load song if chart load fails

    * finish conversion of all minigames

    * remove editor waveform toggle

    * timeline now respects added song offset length

    clear cache files on app close
    prepped notes for dsp sync

    * update timeline length when offset changed

    * update to latest Jukebox

    * make error panel object in global game manager

    * improve conductor music scheduling

    * added error message box

    fix first game events sometimes not playing

* Editor Additions (#479)

* favoriting and pick block

favoriting needs to not break after previewing (maybe make it persistent in the settings file?)
pick block needs to pick the icon, too. and preferably scroll to it as well

* final star anim + automatic icon game switching

before i make any more changes im making a checkpoint here cuz i know it works
* i want to add a way to specify which event SwitchGame() will switch to (because that's a cool feature for pick block)
* i'll have to figure out how to auto scroll to the game when the icon is selected
* the star now fully works, even between preview switches 👍

* fix the rest of the stuff

the event name gets colored correctly and hidden games are skipped over, but still loaded.
also i built mm ass buns

* tweaks + zoom and sorting

this stuff will be in the pr desc so it doesn't matter

* oop one more thing

* icons look better now :D

mipmaps to the rescue

* double date fix

* Merge pull request #486 from RHeavenStudio/actions_rework

Rework GitHub Actions and build script

* add ab meta to gitignore (#489)

* Sound Scheduling Improvements (#491)

* port conductor adjustments

* scheduled sounds prebake

* allow aiff files to be imported

add vbr mp3 warning to readme

* improve wording

* CNR API Internal Rework (#488)

* Prep stuff

* Tweezers now spawn in

* Started converting tweezers

* I hate <1 beat intervals

* Actually nvm

* fixed a bug

* You can chain intervals now, stack them if you really wanted

* Pass turn checks if crhandlerinstance exists

* Fixed hairs being deleted by onion switch

* Rockers rerewritten

* working dough rerewritten

* CNR API Internal Rework (#488)

* Prep stuff

* Tweezers now spawn in

* Started converting tweezers

* I hate <1 beat intervals

* Actually nvm

* fixed a bug

* You can chain intervals now, stack them if you really wanted

* Pass turn checks if crhandlerinstance exists

* Fixed hairs being deleted by onion switch

* Rockers rerewritten

* working dough rerewritten

* Games fixes/reworks patch (#501)

* ghosts are scaled now

* Lockstep fully reworked

* mr. bach has been implemented

* Space dance fixes

* oops

* Tap trial rework part 1

* tap trial rework part 2

* oopsie

* Gramps Talk Update

* Space Dance Voice Offsets

* Giraffe done! (Except miss anim)

* bg is not showing up for some reason

* bg not rendering fixed + giraffe fixed

* scrolling done

* fixed space dance and space soccer bg scrolls

* fixed rockers bugs

* adjustment

* fixed el inaccuracies

* particle fix

* changed pitch and volume of monkey tap

* miss anim

* megamix face for girl

* Proper miss anim implementation

* Added force stepping event

* miss anim fix

---------

Co-authored-by: saladplainzone <chocolate2890mail@gmail.com>
Co-authored-by: ev <85412919+evdial@users.noreply.github.com>

* Mahou Tsukai Rework (#502)

* fixed not being able to whiff in tap trial

* bored meeting fixes

* more board meeting fix

* ww now uses z axis instead of scale

* Inputs are now reworked in mahou tsukai

* Fixed the particle effect

* Game Switch Black Flash is now beat-based. (#503)

* Game switch flashes are now 0.25 beats long

* ambient glow now turns black when the game switch flash is on

* you can now set the void color, it doesn't work with game switch flashes

* black

* fixed! (#504)

* Quiz Show and Tambourine Reworks (#505)

* Tambourine fully reworked

* quiz show rework part 1

* quiz show rework part 2

* oopsie doopsie

* el fix numbah two

* In CheerReaders.cs, quotation marks were aptly added, and references … (#506)

* Update issue template to include .riq/.zip info (#483)

Co-authored-by: patata <patataofcourse@gmail.com>

* Pull release 1 (#484)

* Squashed commit of the following:

commit a6ce193ce5
Merge: 6105bb4f 9b24ac48
Author: minenice55 <star.elementa@gmail.com>
Date:   Wed Jun 14 01:23:31 2023 +0000

    Merge pull request #473 from minenice55/easings-fix

    Enum Parsing Fix

commit 9b24ac4838
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:21:13 2023 -0400

    fix all parsing of enums, removed the "special case" for eases

    update to latest Jukebox

commit 6105bb4f64
Merge: 576b4a00 8df235a8
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:39:15 2023 +0000

    Merge pull request #469 from minenice55/jukebox-update

    Jukebox Package Update

commit 576b4a0017
Merge: 99804457 10f8fa7f
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:39:08 2023 +0000

    Merge pull request #458 from AstrlJelly/MiscAdditions_4

    Bug Fixes + Feature Additions

commit 10f8fa7f5a
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 17:38:24 2023 -0400

    add "updater" for the old marching entity

commit 118cd4993d
Merge: 1c1c731d 99804457
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 17:22:01 2023 -0400

    Merge branch 'release_1' into pr/458

commit 8df235a85b
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 16:55:02 2023 -0400

    let play mode start if no song file is loaded

    fix issue with loading large audio files

commit 9980445723
Merge: aff1e3d8 2f595824
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 18:32:40 2023 +0000

    Merge pull request #471 from Rapandrasmus/FixWorkingDoughCurve

    Fixed weird curve stuff on game switch in working dough

commit 2f59582460
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 19:24:13 2023 +0200

    Fixed weird curve stuff on game switch in working dough

commit aff1e3d889
Merge: b40ec128 c9accfa5
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 16:09:21 2023 +0000

    Merge pull request #470 from Rapandrasmus/WorkingDoughFixes

    Fixed small balls not working in working dough

commit c9accfa52d
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 18:07:13 2023 +0200

    Fixed small balls not working in working dough

commit b40ec128a5
Merge: 9f953d50 95c9b346
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 14:56:58 2023 +0000

    Merge pull request #467 from Rapandrasmus/WorkingDoughRework

    Working Dough rework

commit 95c9b34695
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 16:13:08 2023 +0200

    modernised rockers pass turn

commit 0debf55391
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 16:03:08 2023 +0200

    Rhythm tweezers pass turn now works like working dough

commit 6eac745eae
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 15:51:35 2023 +0200

    gandw on balls has been added

commit 349867d983
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 14:59:56 2023 +0200

    Proper inactive handling now

commit d469c6c3fa
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 13:52:15 2023 +0200

    OnSpawnBall reimplemented

commit dd290b3331
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 13:37:09 2023 +0200

    new sounds

commit 757e1c2c5e
Author: minenice55 <star.elementa@gmail.com>
Date:   Mon Jun 12 17:18:37 2023 -0400

    update Jukebox to latest version

    fixes for inferred entity loading

commit 8ce1d8276b
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 21:36:57 2023 +0200

    ball transporter anims for pass turn

commit af0d9bae19
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 20:38:48 2023 +0200

    working dough converted, need to fix eveerything though

commit db21d51673
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 18:36:41 2023 +0200

    Converted everything to new curves and made playerballs handle themselves input-wise

commit 41157a038c
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 14:04:32 2023 +0200

    Some new curves

commit 7d754f5706
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 12:03:21 2023 +0200

    Rockers can do it too now

commit c196947251
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 11:58:31 2023 +0200

    You can now place inputs on top of pass turn for rhythm tweezers

commit 9f953d505f
Merge: 2a8d8d6f df120f08
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 15:55:40 2023 -0400

    Merge branch 'master' into release_1

commit 2a8d8d6fd2
Merge: 9e3e5942 13adf5b0
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 19:53:47 2023 +0000

    Merge pull request #465 from minenice55/dont_infer_track

    Don't infer the track field when importing converted v0 riq coming from unknown origin

commit 13adf5b07b
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 15:52:14 2023 -0400

    don't infer track when importing a v0 riq from another program

commit 9e3e594209
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 12:12:25 2023 -0400

    make base datamodels for special entity reading (#463)

    * make base datamodels for special entity reading

    * fix crop stomp breaking when no game switch or remix end is set

    * fix save shortcut

    fix loading charts with no music

commit 1c1c731dd1
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 23:00:30 2023 -0400

    add updater for marching orders turn

commit 210be54ba3
Merge: 67b6658c af8395fb
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 22:36:10 2023 -0400

    Merge branch 'release_1' into pr/458

commit af8395fb6a
Merge: 81eafec9 b1fab52a
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 22:30:32 2023 -0400

    Merge branch 'master' into release_1

commit 81eafec986
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 22:27:58 2023 -0400

    editor fixes (#459)

    * ditch loading dialog

    doesn't show up when it's supposed to

    * format song offset in editor

    * remove VorbisPlugin

    * Update Editor.cs

commit 67b6658cd3
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 16:55:10 2023 -0400

    convert float to double and all that

commit a4b66367fd
Merge: 08a664ba b1fab52a
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 16:01:44 2023 -0400

    Merge remote-tracking branch 'upstream/master' into MiscAdditions_4

commit 08a664ba2a
Merge: faf3fbf9 b7afd697
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 15:21:22 2023 -0400

    Merge remote-tracking branch 'upstream/master' into MiscAdditions_4

commit faf3fbf97c
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 15:18:45 2023 -0400

    a lot

    * munchy monk input + mustache fixes
    * fork lifter and pajama party bopping
    * meat grinder miss bop fix
    * cloud monkey Real
    * marching orders Go! was broken
    * force march doesn't break when it's too early from a game switch
    * you can use the March! block without the marching now

commit bb2ae74339
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 15:13:29 2023 -0400

    Integration of Jukebox Library (#451)

    * add Jukebox library

    todo:
    - saving / loading of new format
    - inferrence of unknown data like past versions
    - move the temporary float casts to proper use of double
    - make sound related functions take double for timing
    - inform people that the Jukebox sound player was renamed to SoundByte lol

    * make sound, input scheduling, and super curve use double precision

    * successfully load charts

    * editor works again

    v1 riqs can be saved and loaded

    * first tempo and volume markers are unmovable

    fix loading of charts' easing values

    * use gsync / freesync

    * update Jukebox refs to SoundByte

    * game events use double part 1

    Air Rally - Glee Club converted

    * don't load song if chart load fails

    * finish conversion of all minigames

    * remove editor waveform toggle

    * timeline now respects added song offset length

    clear cache files on app close
    prepped notes for dsp sync

    * update timeline length when offset changed

    * update to latest Jukebox

    * make error panel object in global game manager

    * improve conductor music scheduling

    * added error message box

    fix first game events sometimes not playing

* Squashed commit of the following:

commit e782e3a5b4
Merge: 5b8cfef1 ce74719c
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 17 16:40:52 2023 +0000

    Merge pull request #478 from evdial/working-dough

    Working Dough Tweaks

commit ce74719c1a
Merge: 9c61b760 5b8cfef1
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 17 12:40:06 2023 -0400

    Merge branch 'release_1' into pr/478

commit 5b8cfef1b0
Author: patata <patataofcourse@gmail.com>
Date:   Sat Jun 17 17:20:15 2023 +0200

    Update issue template to include .riq/.zip info

commit 9c61b760bb
Author: ev <85412919+evdial@users.noreply.github.com>
Date:   Thu Jun 15 15:05:07 2023 -0400

    assbuns

commit ae7451e9d3
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Thu Jun 15 20:56:40 2023 +0200

    made small idle not crazy

commit 4c5c95237c
Author: ev <85412919+evdial@users.noreply.github.com>
Date:   Thu Jun 15 14:33:57 2023 -0400

    fsd

commit 083d916238
Author: ev <85412919+evdial@users.noreply.github.com>
Date:   Thu Jun 15 14:16:38 2023 -0400

    anim

commit b3664e01b3
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Thu Jun 15 20:13:11 2023 +0200

    Fixed stuff also scaled now yippee

commit 71e3a0ce6b
Author: ev <85412919+evdial@users.noreply.github.com>
Date:   Thu Jun 15 13:50:10 2023 -0400

    many

commit 534b06301d
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:28:21 2023 -0400

    Squashed commit of the following: (#474)

    commit a6ce193ce5
    Merge: 6105bb4f 9b24ac48
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Wed Jun 14 01:23:31 2023 +0000

        Merge pull request #473 from minenice55/easings-fix

        Enum Parsing Fix

    commit 9b24ac4838
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 21:21:13 2023 -0400

        fix all parsing of enums, removed the "special case" for eases

        update to latest Jukebox

    commit 6105bb4f64
    Merge: 576b4a00 8df235a8
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 21:39:15 2023 +0000

        Merge pull request #469 from minenice55/jukebox-update

        Jukebox Package Update

    commit 576b4a0017
    Merge: 99804457 10f8fa7f
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 21:39:08 2023 +0000

        Merge pull request #458 from AstrlJelly/MiscAdditions_4

        Bug Fixes + Feature Additions

    commit 10f8fa7f5a
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 17:38:24 2023 -0400

        add "updater" for the old marching entity

    commit 118cd4993d
    Merge: 1c1c731d 99804457
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 17:22:01 2023 -0400

        Merge branch 'release_1' into pr/458

    commit 8df235a85b
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 16:55:02 2023 -0400

        let play mode start if no song file is loaded

        fix issue with loading large audio files

    commit 9980445723
    Merge: aff1e3d8 2f595824
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 18:32:40 2023 +0000

        Merge pull request #471 from Rapandrasmus/FixWorkingDoughCurve

        Fixed weird curve stuff on game switch in working dough

    commit 2f59582460
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 19:24:13 2023 +0200

        Fixed weird curve stuff on game switch in working dough

    commit aff1e3d889
    Merge: b40ec128 c9accfa5
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 16:09:21 2023 +0000

        Merge pull request #470 from Rapandrasmus/WorkingDoughFixes

        Fixed small balls not working in working dough

    commit c9accfa52d
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 18:07:13 2023 +0200

        Fixed small balls not working in working dough

    commit b40ec128a5
    Merge: 9f953d50 95c9b346
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Tue Jun 13 14:56:58 2023 +0000

        Merge pull request #467 from Rapandrasmus/WorkingDoughRework

        Working Dough rework

    commit 95c9b34695
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 16:13:08 2023 +0200

        modernised rockers pass turn

    commit 0debf55391
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 16:03:08 2023 +0200

        Rhythm tweezers pass turn now works like working dough

    commit 6eac745eae
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 15:51:35 2023 +0200

        gandw on balls has been added

    commit 349867d983
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 14:59:56 2023 +0200

        Proper inactive handling now

    commit d469c6c3fa
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 13:52:15 2023 +0200

        OnSpawnBall reimplemented

    commit dd290b3331
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Tue Jun 13 13:37:09 2023 +0200

        new sounds

    commit 757e1c2c5e
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Mon Jun 12 17:18:37 2023 -0400

        update Jukebox to latest version

        fixes for inferred entity loading

    commit 8ce1d8276b
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Mon Jun 12 21:36:57 2023 +0200

        ball transporter anims for pass turn

    commit af0d9bae19
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Mon Jun 12 20:38:48 2023 +0200

        working dough converted, need to fix eveerything though

    commit db21d51673
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Mon Jun 12 18:36:41 2023 +0200

        Converted everything to new curves and made playerballs handle themselves input-wise

    commit 41157a038c
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Mon Jun 12 14:04:32 2023 +0200

        Some new curves

    commit 7d754f5706
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Mon Jun 12 12:03:21 2023 +0200

        Rockers can do it too now

    commit c196947251
    Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
    Date:   Mon Jun 12 11:58:31 2023 +0200

        You can now place inputs on top of pass turn for rhythm tweezers

    commit 9f953d505f
    Merge: 2a8d8d6f df120f08
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sun Jun 11 15:55:40 2023 -0400

        Merge branch 'master' into release_1

    commit 2a8d8d6fd2
    Merge: 9e3e5942 13adf5b0
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sun Jun 11 19:53:47 2023 +0000

        Merge pull request #465 from minenice55/dont_infer_track

        Don't infer the track field when importing converted v0 riq coming from unknown origin

    commit 13adf5b07b
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sun Jun 11 15:52:14 2023 -0400

        don't infer track when importing a v0 riq from another program

    commit 9e3e594209
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sun Jun 11 12:12:25 2023 -0400

        make base datamodels for special entity reading (#463)

        * make base datamodels for special entity reading

        * fix crop stomp breaking when no game switch or remix end is set

        * fix save shortcut

        fix loading charts with no music

    commit 1c1c731dd1
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sat Jun 10 23:00:30 2023 -0400

        add updater for marching orders turn

    commit 210be54ba3
    Merge: 67b6658c af8395fb
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sat Jun 10 22:36:10 2023 -0400

        Merge branch 'release_1' into pr/458

    commit af8395fb6a
    Merge: 81eafec9 b1fab52a
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sat Jun 10 22:30:32 2023 -0400

        Merge branch 'master' into release_1

    commit 81eafec986
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sat Jun 10 22:27:58 2023 -0400

        editor fixes (#459)

        * ditch loading dialog

        doesn't show up when it's supposed to

        * format song offset in editor

        * remove VorbisPlugin

        * Update Editor.cs

    commit 67b6658cd3
    Author: AstrlJelly <bdlawson115@gmail.com>
    Date:   Sat Jun 10 16:55:10 2023 -0400

        convert float to double and all that

    commit a4b66367fd
    Merge: 08a664ba b1fab52a
    Author: AstrlJelly <bdlawson115@gmail.com>
    Date:   Sat Jun 10 16:01:44 2023 -0400

        Merge remote-tracking branch 'upstream/master' into MiscAdditions_4

    commit 08a664ba2a
    Merge: faf3fbf9 b7afd697
    Author: AstrlJelly <bdlawson115@gmail.com>
    Date:   Sat Jun 10 15:21:22 2023 -0400

        Merge remote-tracking branch 'upstream/master' into MiscAdditions_4

    commit faf3fbf97c
    Author: AstrlJelly <bdlawson115@gmail.com>
    Date:   Sat Jun 10 15:18:45 2023 -0400

        a lot

        * munchy monk input + mustache fixes
        * fork lifter and pajama party bopping
        * meat grinder miss bop fix
        * cloud monkey Real
        * marching orders Go! was broken
        * force march doesn't break when it's too early from a game switch
        * you can use the March! block without the marching now

    commit bb2ae74339
    Author: minenice55 <star.elementa@gmail.com>
    Date:   Sat Jun 10 15:13:29 2023 -0400

        Integration of Jukebox Library (#451)

        * add Jukebox library

        todo:
        - saving / loading of new format
        - inferrence of unknown data like past versions
        - move the temporary float casts to proper use of double
        - make sound related functions take double for timing
        - inform people that the Jukebox sound player was renamed to SoundByte lol

        * make sound, input scheduling, and super curve use double precision

        * successfully load charts

        * editor works again

        v1 riqs can be saved and loaded

        * first tempo and volume markers are unmovable

        fix loading of charts' easing values

        * use gsync / freesync

        * update Jukebox refs to SoundByte

        * game events use double part 1

        Air Rally - Glee Club converted

        * don't load song if chart load fails

        * finish conversion of all minigames

        * remove editor waveform toggle

        * timeline now respects added song offset length

        clear cache files on app close
        prepped notes for dsp sync

        * update timeline length when offset changed

        * update to latest Jukebox

        * make error panel object in global game manager

        * improve conductor music scheduling

        * added error message box

        fix first game events sometimes not playing

commit a6ce193ce5
Merge: 6105bb4f 9b24ac48
Author: minenice55 <star.elementa@gmail.com>
Date:   Wed Jun 14 01:23:31 2023 +0000

    Merge pull request #473 from minenice55/easings-fix

    Enum Parsing Fix

commit 9b24ac4838
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:21:13 2023 -0400

    fix all parsing of enums, removed the "special case" for eases

    update to latest Jukebox

commit 6105bb4f64
Merge: 576b4a00 8df235a8
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:39:15 2023 +0000

    Merge pull request #469 from minenice55/jukebox-update

    Jukebox Package Update

commit 576b4a0017
Merge: 99804457 10f8fa7f
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 21:39:08 2023 +0000

    Merge pull request #458 from AstrlJelly/MiscAdditions_4

    Bug Fixes + Feature Additions

commit 10f8fa7f5a
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 17:38:24 2023 -0400

    add "updater" for the old marching entity

commit 118cd4993d
Merge: 1c1c731d 99804457
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 17:22:01 2023 -0400

    Merge branch 'release_1' into pr/458

commit 8df235a85b
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 16:55:02 2023 -0400

    let play mode start if no song file is loaded

    fix issue with loading large audio files

commit 9980445723
Merge: aff1e3d8 2f595824
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 18:32:40 2023 +0000

    Merge pull request #471 from Rapandrasmus/FixWorkingDoughCurve

    Fixed weird curve stuff on game switch in working dough

commit 2f59582460
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 19:24:13 2023 +0200

    Fixed weird curve stuff on game switch in working dough

commit aff1e3d889
Merge: b40ec128 c9accfa5
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 16:09:21 2023 +0000

    Merge pull request #470 from Rapandrasmus/WorkingDoughFixes

    Fixed small balls not working in working dough

commit c9accfa52d
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 18:07:13 2023 +0200

    Fixed small balls not working in working dough

commit b40ec128a5
Merge: 9f953d50 95c9b346
Author: minenice55 <star.elementa@gmail.com>
Date:   Tue Jun 13 14:56:58 2023 +0000

    Merge pull request #467 from Rapandrasmus/WorkingDoughRework

    Working Dough rework

commit 95c9b34695
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 16:13:08 2023 +0200

    modernised rockers pass turn

commit 0debf55391
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 16:03:08 2023 +0200

    Rhythm tweezers pass turn now works like working dough

commit 6eac745eae
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 15:51:35 2023 +0200

    gandw on balls has been added

commit 349867d983
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 14:59:56 2023 +0200

    Proper inactive handling now

commit d469c6c3fa
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 13:52:15 2023 +0200

    OnSpawnBall reimplemented

commit dd290b3331
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Tue Jun 13 13:37:09 2023 +0200

    new sounds

commit 757e1c2c5e
Author: minenice55 <star.elementa@gmail.com>
Date:   Mon Jun 12 17:18:37 2023 -0400

    update Jukebox to latest version

    fixes for inferred entity loading

commit 8ce1d8276b
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 21:36:57 2023 +0200

    ball transporter anims for pass turn

commit af0d9bae19
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 20:38:48 2023 +0200

    working dough converted, need to fix eveerything though

commit db21d51673
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 18:36:41 2023 +0200

    Converted everything to new curves and made playerballs handle themselves input-wise

commit 41157a038c
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 14:04:32 2023 +0200

    Some new curves

commit 7d754f5706
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 12:03:21 2023 +0200

    Rockers can do it too now

commit c196947251
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date:   Mon Jun 12 11:58:31 2023 +0200

    You can now place inputs on top of pass turn for rhythm tweezers

commit 9f953d505f
Merge: 2a8d8d6f df120f08
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 15:55:40 2023 -0400

    Merge branch 'master' into release_1

commit 2a8d8d6fd2
Merge: 9e3e5942 13adf5b0
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 19:53:47 2023 +0000

    Merge pull request #465 from minenice55/dont_infer_track

    Don't infer the track field when importing converted v0 riq coming from unknown origin

commit 13adf5b07b
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 15:52:14 2023 -0400

    don't infer track when importing a v0 riq from another program

commit 9e3e594209
Author: minenice55 <star.elementa@gmail.com>
Date:   Sun Jun 11 12:12:25 2023 -0400

    make base datamodels for special entity reading (#463)

    * make base datamodels for special entity reading

    * fix crop stomp breaking when no game switch or remix end is set

    * fix save shortcut

    fix loading charts with no music

commit 1c1c731dd1
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 23:00:30 2023 -0400

    add updater for marching orders turn

commit 210be54ba3
Merge: 67b6658c af8395fb
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 22:36:10 2023 -0400

    Merge branch 'release_1' into pr/458

commit af8395fb6a
Merge: 81eafec9 b1fab52a
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 22:30:32 2023 -0400

    Merge branch 'master' into release_1

commit 81eafec986
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 22:27:58 2023 -0400

    editor fixes (#459)

    * ditch loading dialog

    doesn't show up when it's supposed to

    * format song offset in editor

    * remove VorbisPlugin

    * Update Editor.cs

commit 67b6658cd3
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 16:55:10 2023 -0400

    convert float to double and all that

commit a4b66367fd
Merge: 08a664ba b1fab52a
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 16:01:44 2023 -0400

    Merge remote-tracking branch 'upstream/master' into MiscAdditions_4

commit 08a664ba2a
Merge: faf3fbf9 b7afd697
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 15:21:22 2023 -0400

    Merge remote-tracking branch 'upstream/master' into MiscAdditions_4

commit faf3fbf97c
Author: AstrlJelly <bdlawson115@gmail.com>
Date:   Sat Jun 10 15:18:45 2023 -0400

    a lot

    * munchy monk input + mustache fixes
    * fork lifter and pajama party bopping
    * meat grinder miss bop fix
    * cloud monkey Real
    * marching orders Go! was broken
    * force march doesn't break when it's too early from a game switch
    * you can use the March! block without the marching now

commit bb2ae74339
Author: minenice55 <star.elementa@gmail.com>
Date:   Sat Jun 10 15:13:29 2023 -0400

    Integration of Jukebox Library (#451)

    * add Jukebox library

    todo:
    - saving / loading of new format
    - inferrence of unknown data like past versions
    - move the temporary float casts to proper use of double
    - make sound related functions take double for timing
    - inform people that the Jukebox sound player was renamed to SoundByte lol

    * make sound, input scheduling, and super curve use double precision

    * successfully load charts

    * editor works again

    v1 riqs can be saved and loaded

    * first tempo and volume markers are unmovable

    fix loading of charts' easing values

    * use gsync / freesync

    * update Jukebox refs to SoundByte

    * game events use double part 1

    Air Rally - Glee Club converted

    * don't load song if chart load fails

    * finish conversion of all minigames

    * remove editor waveform toggle

    * timeline now respects added song offset length

    clear cache files on app close
    prepped notes for dsp sync

    * update timeline length when offset changed

    * update to latest Jukebox

    * make error panel object in global game manager

    * improve conductor music scheduling

    * added error message box

    fix first game events sometimes not playing

* Editor Additions (#479)

* favoriting and pick block

favoriting needs to not break after previewing (maybe make it persistent in the settings file?)
pick block needs to pick the icon, too. and preferably scroll to it as well

* final star anim + automatic icon game switching

before i make any more changes im making a checkpoint here cuz i know it works
* i want to add a way to specify which event SwitchGame() will switch to (because that's a cool feature for pick block)
* i'll have to figure out how to auto scroll to the game when the icon is selected
* the star now fully works, even between preview switches 👍

* fix the rest of the stuff

the event name gets colored correctly and hidden games are skipped over, but still loaded.
also i built mm ass buns

* tweaks + zoom and sorting

this stuff will be in the pr desc so it doesn't matter

* oop one more thing

* icons look better now :D

mipmaps to the rescue

* double date fix

* Merge pull request #486 from RHeavenStudio/actions_rework

Rework GitHub Actions and build script

* add ab meta to gitignore (#489)

* Sound Scheduling Improvements (#491)

* port conductor adjustments

* scheduled sounds prebake

* allow aiff files to be imported

add vbr mp3 warning to readme

* improve wording

* CNR API Internal Rework (#488)

* Prep stuff

* Tweezers now spawn in

* Started converting tweezers

* I hate <1 beat intervals

* Actually nvm

* fixed a bug

* You can chain intervals now, stack them if you really wanted

* Pass turn checks if crhandlerinstance exists

* Fixed hairs being deleted by onion switch

* Rockers rerewritten

* working dough rerewritten

* CNR API Internal Rework (#488)

* Prep stuff

* Tweezers now spawn in

* Started converting tweezers

* I hate <1 beat intervals

* Actually nvm

* fixed a bug

* You can chain intervals now, stack them if you really wanted

* Pass turn checks if crhandlerinstance exists

* Fixed hairs being deleted by onion switch

* Rockers rerewritten

* working dough rerewritten

* Games fixes/reworks patch (#501)

* ghosts are scaled now

* Lockstep fully reworked

* mr. bach has been implemented

* Space dance fixes

* oops

* Tap trial rework part 1

* tap trial rework part 2

* oopsie

* Gramps Talk Update

* Space Dance Voice Offsets

* Giraffe done! (Except miss anim)

* bg is not showing up for some reason

* bg not rendering fixed + giraffe fixed

* scrolling done

* fixed space dance and space soccer bg scrolls

* fixed rockers bugs

* adjustment

* fixed el inaccuracies

* particle fix

* changed pitch and volume of monkey tap

* miss anim

* megamix face for girl

* Proper miss anim implementation

* Added force stepping event

* miss anim fix

---------

Co-authored-by: saladplainzone <chocolate2890mail@gmail.com>
Co-authored-by: ev <85412919+evdial@users.noreply.github.com>

* In CheerReaders.cs, quotation marks were aptly added, and references to the girls were more-so neutralized. Consider this my cheer.

* revert capitalization and quotations while keeping grammar changes

---------

Co-authored-by: minenice55 <star.elementa@gmail.com>
Co-authored-by: patata <patataofcourse@gmail.com>
Co-authored-by: AstrlJelly <bdlawson115@gmail.com>
Co-authored-by: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Co-authored-by: saladplainzone <chocolate2890mail@gmail.com>
Co-authored-by: ev <85412919+evdial@users.noreply.github.com>

* oops

* add manually triggering build action to workflows (#507)

* Crop stomp fixes part 1

* crop stomp part 2

* Crop stomp part 3

* fixed mole sound

* ringside, tap trial and space dance fixes

* fixed off/onbeat switches being jank in lockstep

* fixed dispense sound not playing on gameswitch in space soccer

* clappy trio and sneaky spirits persistance

---------

Co-authored-by: minenice55 <star.elementa@gmail.com>
Co-authored-by: patata <patataofcourse@gmail.com>
Co-authored-by: AstrlJelly <bdlawson115@gmail.com>
Co-authored-by: saladplainzone <chocolate2890mail@gmail.com>
Co-authored-by: ev <85412919+evdial@users.noreply.github.com>
Co-authored-by: Xylon <40894547+scriptorluminary@users.noreply.github.com>
2023-07-24 14:19:54 +00:00

727 lines
28 KiB
C#

/* I do not know crap about Unity or C#
Almost none of this code is mine, but it's all fair game when the game you're stealing from
borrowed from other games */
//Don't worry Raffy everyone starts somewhere - Rasmus
using HeavenStudio.Util;
using Jukebox;
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace HeavenStudio.Games.Loaders
{
using static Minigames;
public static class NtrBackbeatLoader
{
public static Minigame AddGame(EventCaller eventCaller)
{
return new Minigame("lockstep", "Lockstep", "f0338d", false, false, new List<GameAction>()
{
new GameAction("bop", "Bop")
{
function = delegate { var e = eventCaller.currentEntity; Lockstep.instance.Bop(e.beat, e.length, e["toggle"], e["toggle2"]); },
resizable = true,
parameters = new List<Param>()
{
new Param("toggle", true, "Bop", "Should the stepswitchers bop?"),
new Param("toggle2", false, "Bop (Auto)", "Should the stepswitchers auto bop?"),
},
},
new GameAction("stepping", "Stepping")
{
preFunction = delegate {var e = eventCaller.currentEntity; Lockstep.Marching(e.beat, e["sound"], e["amount"], e["visual"]);},
parameters = new List<Param>()
{
new Param("sound", false, "Sound", "Hai if onbeat, ho if offbeat."),
new Param("amount", new EntityTypes.Integer(1, 50, 1), "Sound Amount", "How many sounds will play consecutively?"),
new Param("visual", true, "Background Visual")
},
preFunctionLength = 1
},
new GameAction("offbeatSwitch", "Switch to Offbeat")
{
preFunction = delegate { var e = eventCaller.currentEntity; Lockstep.OffbeatSwitchSound(e.beat, e["ho"], e["sound"]); },
defaultLength = 4.5f,
parameters = new List<Param>()
{
new Param("sound", true, "Sound Cue"),
new Param("ho", true, "Ho Sounds", "Will the <ho, ho, ho, ho> sound be present?"),
new Param("visual", true, "Background Visual")
}
},
new GameAction("onbeatSwitch", "Switch to Onbeat")
{
preFunction = delegate { var e = eventCaller.currentEntity; Lockstep.OnbeatSwitchSound(e.beat, e["hai"], e["sound"]); },
defaultLength = 3f,
parameters = new List<Param>()
{
new Param("sound", true, "Sound Cue"),
new Param("hai", new EntityTypes.Integer(0, 100, 1), "Hai Amount"),
new Param("visual", true, "Background Visual")
}
},
new GameAction("set colours", "Set Colours")
{
function = delegate {var e = eventCaller.currentEntity; Lockstep.instance.SetBackgroundColours(e["colorA"], e["colorB"], e["objColA"], e["objColB"], e["objColC"]); },
parameters = new List<Param>()
{
new Param("colorA", Lockstep.defaultBGColorOn, "Background Onbeat", "Select the color that appears for the onbeat."),
new Param("colorB", Lockstep.defaultBGColorOff, "Background Offbeat", "Select the color that appears for the offbeat."),
new Param("objColA", Lockstep.stepperOut, "Stepper Outline", "Select the color used for the outline of the stepswitchers."),
new Param("objColB", Lockstep.stepperDark, "Stepper Dark", "Select the color that appears for the dark side of the stepwitchers."),
new Param("objColC", Lockstep.stepperLight, "Stepper Light", "Select the color that appears for the light side of the stepwitchers."),
},
defaultLength = 0.5f,
},
new GameAction("zoom", "Preset Zooms")
{
function = delegate { Lockstep.instance.SetZoom(eventCaller.currentEntity["zoom"]); },
parameters = new List<Param>()
{
new Param("zoom", Lockstep.ZoomPresets.Regular, "Zoom Level")
}
},
new GameAction("bach", "Show Bach")
{
defaultLength = 4,
resizable = true,
},
new GameAction("marching", "Force Stepping")
{
preFunction = delegate {var e = eventCaller.currentEntity; Lockstep.Marching(e.beat, e["sound"], e["amount"], e["visual"], true, e.length);},
parameters = new List<Param>()
{
new Param("sound", false, "Sound", "Hai if onbeat, ho if offbeat."),
new Param("amount", new EntityTypes.Integer(1, 50, 1), "Sound Amount", "How many sounds will play consecutively?"),
new Param("visual", true, "Background Visual")
},
preFunctionLength = 1,
resizable = true,
defaultLength = 4
}
},
new List<string>() {"ntr", "keep"},
"ntrbackbeat", "en",
new List<string>() {}
);
}
}
}
namespace HeavenStudio.Games
{
// using Scripts_Lockstep;
public class Lockstep : Minigame
{
private static Color _defaultBGColorOn;
public static Color defaultBGColorOn
{
get
{
ColorUtility.TryParseHtmlString("#f0338d", out _defaultBGColorOn);
return _defaultBGColorOn;
}
}
private static Color _defaultBGColorOff;
public static Color defaultBGColorOff
{
get
{
ColorUtility.TryParseHtmlString("#BC318B", out _defaultBGColorOff);
return _defaultBGColorOff;
}
}
private static Color _stepperDark;
public static Color stepperDark
{
get
{
ColorUtility.TryParseHtmlString("#737373", out _stepperDark);
return _stepperDark;
}
}
private static Color _stepperLight;
public static Color stepperLight
{
get
{
ColorUtility.TryParseHtmlString("#FFFFFF", out _stepperLight);
return _stepperLight;
}
}
private static Color _stepperOut;
public static Color stepperOut
{
get
{
ColorUtility.TryParseHtmlString("#9A2760", out _stepperOut);
return _stepperOut;
}
}
public Color currentBGOnColor;
public Color currentBGOffColor;
[Header("Components")]
[SerializeField] Animator stepswitcherPlayer;
[SerializeField] Animator stepswitcherLeft;
[SerializeField] Animator stepswitcherRight;
[SerializeField] Animator bach;
// master stepper dictates what sprite the slave steppers use
[SerializeField] Animator masterStepperAnim;
[SerializeField] SpriteRenderer masterStepperSprite;
// slave steppers copy the sprite of the master stepper
[SerializeField] SpriteRenderer[] slaveSteppers;
// rendertextures update when the slave steppers change sprites
[SerializeField] CustomRenderTexture[] renderTextures;
[SerializeField] SpriteRenderer background;
[SerializeField] Material stepperMaterial;
[Header("Properties")]
static List<QueuedMarch> queuedInputs = new();
Sprite masterSprite;
HowMissed currentMissStage;
bool lessSteppers = false;
public enum HowMissed
{
NotMissed = 0,
MissedOff = 1,
MissedOn = 2
}
bool offColorActive;
bool goBop;
public GameEvent bop = new GameEvent();
List<double> switches = new();
private List<RiqEntity> bachEvents = new();
public static Lockstep instance;
public enum ZoomPresets
{
Regular,
NotThatFar,
Far,
VeryFar,
ExtremelyFar
}
void Awake()
{
instance = this;
currentBGOnColor = defaultBGColorOn;
currentBGOffColor = defaultBGColorOff;
var switchEvents = EventCaller.GetAllInGameManagerList("lockstep", new string[] { "onbeatSwitch", "offbeatSwitch" });
foreach (var switchEvent in switchEvents)
{
switches.Add(switchEvent.beat + switchEvent.length - 1);
}
bachEvents = EventCaller.GetAllInGameManagerList("lockstep", new string[] { "bach" });
}
private bool BachOnBeat(double beat)
{
return bachEvents.Find(x => beat >= x.beat && beat < x.beat + x.length) != null;
}
public override void OnGameSwitch(double beat)
{
QueueSwitchBGs(beat);
}
public override void OnPlay(double beat)
{
QueueSwitchBGs(beat);
}
private void QueueSwitchBGs(double beat)
{
double nextGameSwitchBeat = double.MaxValue;
List<RiqEntity> allEnds = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" }).FindAll(x => x.beat > beat);
if (allEnds.Count > 0)
{
nextGameSwitchBeat = allEnds[0].beat;
}
var switchEventsOn = EventCaller.GetAllInGameManagerList("lockstep", new string[] { "onbeatSwitch" });
foreach (var on in switchEventsOn)
{
if (on.beat >= nextGameSwitchBeat) continue;
OnbeatSwitch(on.beat, beat, on["visual"]);
}
var switchEventsOff = EventCaller.GetAllInGameManagerList("lockstep", new string[] { "offbeatSwitch" });
foreach (var off in switchEventsOff)
{
if (off.beat >= nextGameSwitchBeat) continue;
OffbeatSwitch(off.beat, beat, off["visual"]);
}
}
void Start() {
stepperMaterial.SetColor("_ColorAlpha", stepperOut);
stepperMaterial.SetColor("_ColorBravo", stepperDark);
stepperMaterial.SetColor("_ColorDelta", stepperLight);
masterSprite = masterStepperSprite.sprite;
stepswitcherLeft.gameObject.SetActive(lessSteppers);
stepswitcherRight.gameObject.SetActive(lessSteppers);
masterStepperAnim.gameObject.SetActive(!lessSteppers);
UpdateAndRenderSlaves();
}
void UpdateAndRenderSlaves()
{
foreach (var stepper in slaveSteppers)
{
stepper.sprite = masterSprite;
}
}
void PlayStepperAnim(string animName, bool player, float timescale = 1f, float startpos = 0f, int layer = -1)
{
if (player) stepswitcherPlayer.DoScaledAnimationAsync(animName, timescale, startpos, layer);
if (lessSteppers)
{
stepswitcherLeft.DoScaledAnimationAsync(animName, timescale, startpos, layer);
stepswitcherRight.DoScaledAnimationAsync(animName, timescale, startpos, layer);
}
else
{
masterStepperAnim.DoScaledAnimationAsync(animName, timescale, startpos, layer);
}
}
private void Update()
{
var cond = Conductor.instance;
if (cond.isPlaying && !cond.isPaused)
{
if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1))
{
if (goBop)
{
PlayStepperAnim("Bop", true, 0.5f);
}
}
if (queuedInputs.Count > 0)
{
foreach (var input in queuedInputs)
{
if (input.force)
{
ForceMarching(input.beat, input.length, input.sound, input.amount, input.visual);
}
else
{
StartMarching(input.beat, input.sound, input.amount, input.visual);
}
}
queuedInputs.Clear();
}
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
{
currentMissStage = HowMissed.NotMissed;
double beatAnimCheck = cond.songPositionInBeatsAsDouble - 0.25;
if (beatAnimCheck % 1.0 >= 0.5)
{
stepswitcherPlayer.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
}
else
{
stepswitcherPlayer.DoScaledAnimationAsync("OffbeatMarch", 0.5f);
}
SoundByte.PlayOneShot("miss");
ScoreMiss();
}
}
}
private void LateUpdate()
{
if (masterSprite != masterStepperSprite.sprite)
{
masterSprite = masterStepperSprite.sprite;
UpdateAndRenderSlaves();
}
}
public void SetZoom(int zoom)
{
GameCamera.additionalPosition = new Vector3(0, 0, (ZoomPresets)zoom switch
{
ZoomPresets.Regular => 0,
ZoomPresets.NotThatFar => -4.5f,
ZoomPresets.Far => -11,
ZoomPresets.VeryFar => -26,
ZoomPresets.ExtremelyFar => -63,
_ => throw new System.NotImplementedException()
});
}
public void Bop(double beat, float length, bool shouldBop, bool autoBop)
{
goBop = autoBop;
if (shouldBop)
{
for (int i = 0; i < length; i++)
{
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + i, delegate
{
PlayStepperAnim("Bop", true, 0.5f);
})
});
}
}
}
public static void OnbeatSwitchSound(double beat, int hais, bool sound)
{
if (sound)
{
MultiSound.Play(new MultiSound.Sound[]
{
new MultiSound.Sound("lockstep/nha1", beat, 1, 1, false, 0.03086419753),
new MultiSound.Sound("lockstep/nha2", beat + 0.5f, 1, 1, false, 0.04629629629),
new MultiSound.Sound("lockstep/nha1", beat + 1f, 1, 1, false, 0.03086419753),
new MultiSound.Sound("lockstep/nha2", beat + 1.5f, 1, 1, false, 0.04629629629)
}, forcePlay: true);
}
if (hais > 0)
{
List<MultiSound.Sound> haisList = new();
for (int i = 0; i < hais; i++)
{
haisList.Add(new MultiSound.Sound("lockstep/hai", beat + 2 + i, 1, 1, false, 0.02314814814));
}
double nextOffBeat = double.MaxValue;
var switchEventsOn = EventCaller.GetAllInGameManagerList("lockstep", new string[] { "offbeatSwitch" });
switchEventsOn.Sort((x, y) => x.beat.CompareTo(y.beat));
for (int i = 0; i < switchEventsOn.Count; i++)
{
if (switchEventsOn[i].beat > beat)
{
nextOffBeat = switchEventsOn[i].beat;
break;
}
}
var haisActual = haisList.FindAll(x => x.beat < nextOffBeat);
MultiSound.Play(haisActual.ToArray(), true, true);
}
}
private void OnbeatSwitch(double beat, double gameswitchBeat, bool visual)
{
List<BeatAction.Action> allActions = new List<BeatAction.Action>()
{
new BeatAction.Action(beat, delegate { if(visual) ChangeBeatBackGroundColour(false); }),
new BeatAction.Action(beat + 0.5f, delegate { if (visual) ChangeBeatBackGroundColour(true); }),
new BeatAction.Action(beat + 1f, delegate
{
if(visual) ChangeBeatBackGroundColour(false);
}),
new BeatAction.Action(beat + 1.5f, delegate
{
if (visual) ChangeBeatBackGroundColour(true);
}),
new BeatAction.Action(beat + 1.75f, delegate { if (!marchRecursing) MarchRecursive(beat + 2f); }),
new BeatAction.Action(beat + 2f, delegate { if (visual) ChangeBeatBackGroundColour(false); }),
};
List<BeatAction.Action> actions = new();
foreach (var action in allActions)
{
if (action.beat >= gameswitchBeat) actions.Add(action);
}
if (actions.Count > 0) BeatAction.New(instance.gameObject, actions);
}
public static void OffbeatSwitchSound(double beat, bool hoSound, bool sound)
{
if (sound)
{
MultiSound.Play(new MultiSound.Sound[]
{
new MultiSound.Sound("lockstep/hai", beat, 1, 1, false, 0.02314814814),
new MultiSound.Sound("lockstep/hai", beat + 1f, 1, 1, false, 0.02314814814),
new MultiSound.Sound("lockstep/hai", beat + 2f, 1, 1, false, 0.02314814814),
new MultiSound.Sound("lockstep/hahai1", beat + 3f, 1, 1, false, 0.03086419753),
new MultiSound.Sound("lockstep/hahai2", beat + 3.5f, 1, 1, false, 0.03086419753),
}, forcePlay: true);
}
if (hoSound)
{
List<MultiSound.Sound> hos = new List<MultiSound.Sound>
{
new MultiSound.Sound("lockstep/ho", beat + 4.5f, 1, 1, false, 0.03086419753),
new MultiSound.Sound("lockstep/ho", beat + 5.5f, 1, 0.6835514f, false, 0.03086419753),
new MultiSound.Sound("lockstep/ho", beat + 6.5f, 1, 0.3395127f, false, 0.03086419753),
new MultiSound.Sound("lockstep/ho", beat + 7.5f, 1, 0.1200322f, false, 0.03086419753),
};
double nextOnBeat = double.MaxValue;
var switchEventsOn = EventCaller.GetAllInGameManagerList("lockstep", new string[] { "onbeatSwitch" });
switchEventsOn.Sort((x, y) => x.beat.CompareTo(y.beat));
for (int i = 0; i < switchEventsOn.Count; i++)
{
if (switchEventsOn[i].beat > beat)
{
nextOnBeat = switchEventsOn[i].beat;
break;
}
}
var hosActual = hos.FindAll(x => x.beat < nextOnBeat);
MultiSound.Play(hosActual.ToArray(), true, true);
}
}
private void OffbeatSwitch(double beat, double gameswitchBeat, bool visual)
{
List<BeatAction.Action> allActions = new List<BeatAction.Action>()
{
new BeatAction.Action(beat, delegate { if (visual) ChangeBeatBackGroundColour(true); }),
new BeatAction.Action(beat + 1f, delegate { if (visual) ChangeBeatBackGroundColour(false); }),
new BeatAction.Action(beat + 2f, delegate { if (visual) ChangeBeatBackGroundColour(true); }),
new BeatAction.Action(beat + 3f, delegate
{
if (visual) ChangeBeatBackGroundColour(false);
}),
new BeatAction.Action(beat + 3.25f, delegate { if (!marchRecursing) MarchRecursive(beat + 3.5f); }),
new BeatAction.Action(beat + 3.5f, delegate { if (visual) ChangeBeatBackGroundColour(true); }),
};
List<BeatAction.Action> actions = new();
foreach (var action in allActions)
{
if (action.beat >= gameswitchBeat) actions.Add(action);
}
if (actions.Count > 0) BeatAction.New(instance.gameObject, actions);
}
private struct QueuedMarch
{
public double beat;
public float length;
public bool sound;
public int amount;
public bool visual;
public bool force;
}
public static void Marching(double beat, bool sound, int amount, bool visual, bool force = false, float length = 0)
{
if (GameManager.instance.currentGame == "lockstep")
{
if (force)
{
instance.ForceMarching(beat, length, sound, amount, visual);
}
else
{
instance.StartMarching(beat, sound, amount, visual);
}
}
else
{
queuedInputs.Add(new QueuedMarch
{
amount = amount,
beat = beat,
sound = sound,
visual = visual,
length = length,
force = force
});
}
}
private void ForceMarching(double beat, float length, bool sound, int amount, bool visual)
{
bool offBeat = beat % 1 != 0;
if (sound)
{
MultiSound.Sound[] sounds = new MultiSound.Sound[amount];
for (int i = 0; i < amount; i++)
{
sounds[i] = new MultiSound.Sound($"lockstep/" + (offBeat ? "ho" : "hai"), beat + i, 1, 1, false, offBeat ? 0.03086419753 : 0.02314814814);
}
MultiSound.Play(sounds, true, true);
}
List<BeatAction.Action> steps = new()
{
new BeatAction.Action(beat, delegate
{
if (visual) ChangeBeatBackGroundColour(offBeat);
if (BachOnBeat(beat)) bach.DoScaledAnimationAsync(offBeat ? "BachOff" : "BachOn", 0.5f);
EvaluateMarch(offBeat);
})
};
ScheduleInput(beat - 1, 1, InputType.STANDARD_DOWN, offBeat ? JustOff : JustOn, offBeat ? MissOff : MissOn, Nothing);
for (int i = 1; i < length; i++)
{
double stepBeat = beat + i;
steps.Add(new BeatAction.Action(stepBeat, delegate
{
if (BachOnBeat(stepBeat)) bach.DoScaledAnimationAsync(offBeat ? "BachOff" : "BachOn", 0.5f);
EvaluateMarch(offBeat);
}));
ScheduleInput(stepBeat - 1, 1, InputType.STANDARD_DOWN, offBeat ? JustOff : JustOn, offBeat ? MissOff : MissOn, Nothing);
}
BeatAction.New(gameObject, steps);
}
private void StartMarching(double beat, bool sound, int amount, bool visual)
{
if (marchRecursing) return;
bool offBeat = beat % 1 != 0;
if (visual)
{
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat, delegate { ChangeBeatBackGroundColour(offBeat); })
});
}
if (sound)
{
MultiSound.Sound[] sounds = new MultiSound.Sound[amount];
for (int i = 0; i < amount; i++)
{
sounds[i] = new MultiSound.Sound($"lockstep/" + (offBeat ? "ho" : "hai"), beat + i, 1, 1, false, offBeat ? 0.03086419753 : 0.02314814814);
}
MultiSound.Play(sounds, true, true);
}
MarchRecursive(beat);
}
private bool marchRecursing;
private void MarchRecursive(double beat)
{
marchRecursing = true;
if (NextStepIsSwitch(beat)) beat -= 0.5;
bool offBeat = beat % 1 != 0;
bool bachOnBeat = BachOnBeat(beat);
ScheduleInput(beat - 1, 1, InputType.STANDARD_DOWN, offBeat ? JustOff : JustOn, offBeat ? MissOff : MissOn, Nothing);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat, delegate
{
EvaluateMarch(offBeat);
MarchRecursive(beat + 1);
if (bachOnBeat) bach.DoScaledAnimationAsync(offBeat ? "BachOff" : "BachOn", 0.5f);
}),
});
}
private bool NextStepIsSwitch(double beat)
{
return switches.Contains(beat - 0.5);
}
public void EvaluateMarch(bool offBeat)
{
if (offBeat)
{
PlayStepperAnim("OffbeatMarch", false, 0.5f);
}
else
{
PlayStepperAnim("OnbeatMarch", false, 0.5f);
}
}
private void JustOn(PlayerActionEvent caller, float state)
{
currentMissStage = HowMissed.NotMissed;
stepswitcherPlayer.DoScaledAnimationAsync("OnbeatMarch", 0.5f);
if (state >= 1f || state <= -1f)
{
SoundByte.PlayOneShot("nearMiss");
return;
}
SoundByte.PlayOneShotGame($"lockstep/foot{UnityEngine.Random.Range(1, 3)}");
SoundByte.PlayOneShotGame("lockstep/drumOn");
}
private void JustOff(PlayerActionEvent caller, float state)
{
currentMissStage = HowMissed.NotMissed;
stepswitcherPlayer.DoScaledAnimationAsync("OffbeatMarch", 0.5f);
if (state >= 1f || state <= -1f)
{
SoundByte.PlayOneShot("nearMiss");
return;
}
SoundByte.PlayOneShotGame($"lockstep/foot{UnityEngine.Random.Range(1, 3)}");
SoundByte.PlayOneShotGame("lockstep/drumOff");
}
private void MissOn(PlayerActionEvent caller)
{
if (currentMissStage == HowMissed.MissedOn) return;
stepswitcherPlayer.Play("OnbeatMiss", 0, 0);
SoundByte.PlayOneShotGame("lockstep/wayOff");
currentMissStage = HowMissed.MissedOn;
}
private void MissOff(PlayerActionEvent caller)
{
if (currentMissStage == HowMissed.MissedOff) return;
stepswitcherPlayer.Play("OffbeatMiss", 0, 0);
SoundByte.PlayOneShotGame("lockstep/wayOff");
currentMissStage = HowMissed.MissedOff;
}
public void ChangeBeatBackGroundColour(bool off)
{
if (off)
{
background.color = currentBGOffColor;
offColorActive = true;
}
else
{
background.color = currentBGOnColor;
offColorActive = false;
}
}
public void SetBackgroundColours(Color onColor, Color offColor, Color outlineColor, Color darkColor, Color lightColor)
{
currentBGOnColor = onColor;
currentBGOffColor = offColor;
if (offColorActive)
{
background.color = currentBGOffColor;
}
else
{
background.color = currentBGOnColor;
}
stepperMaterial.SetColor("_ColorAlpha", outlineColor);
stepperMaterial.SetColor("_ColorBravo", darkColor);
stepperMaterial.SetColor("_ColorDelta", lightColor);
}
public void Nothing(PlayerActionEvent caller) {}
}
}