mirror of
https://github.com/RHeavenStudioPlus/HeavenStudioPlus.git
synced 2024-11-12 20:55:08 +00:00
c03a1a45b5
* Squashed commit of the following: commita6ce193ce5
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 commit9b24ac4838
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 commit6105bb4f64
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 commit576b4a0017
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 commit10f8fa7f5a
Author: minenice55 <star.elementa@gmail.com> Date: Tue Jun 13 17:38:24 2023 -0400 add "updater" for the old marching entity commit118cd4993d
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 commit8df235a85b
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 commit9980445723
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 commit2f59582460
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 commitaff1e3d889
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 commitc9accfa52d
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 commitb40ec128a5
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 commit95c9b34695
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 16:13:08 2023 +0200 modernised rockers pass turn commit0debf55391
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 commit6eac745eae
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 15:51:35 2023 +0200 gandw on balls has been added commit349867d983
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 14:59:56 2023 +0200 Proper inactive handling now commitd469c6c3fa
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 13:52:15 2023 +0200 OnSpawnBall reimplemented commitdd290b3331
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 13:37:09 2023 +0200 new sounds commit757e1c2c5e
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 commit8ce1d8276b
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Mon Jun 12 21:36:57 2023 +0200 ball transporter anims for pass turn commitaf0d9bae19
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 commitdb21d51673
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 commit41157a038c
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Mon Jun 12 14:04:32 2023 +0200 Some new curves commit7d754f5706
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Mon Jun 12 12:03:21 2023 +0200 Rockers can do it too now commitc196947251
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 commit9f953d505f
Merge:2a8d8d6f
ce3e6f2d
Author: minenice55 <star.elementa@gmail.com> Date: Sun Jun 11 15:55:40 2023 -0400 Merge branch 'master' into release_1 commit2a8d8d6fd2
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 commit13adf5b07b
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 commit9e3e594209
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 commit1c1c731dd1
Author: minenice55 <star.elementa@gmail.com> Date: Sat Jun 10 23:00:30 2023 -0400 add updater for marching orders turn commit210be54ba3
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 commitaf8395fb6a
Merge:81eafec9
afc665ed
Author: minenice55 <star.elementa@gmail.com> Date: Sat Jun 10 22:30:32 2023 -0400 Merge branch 'master' into release_1 commit81eafec986
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 commit67b6658cd3
Author: AstrlJelly <bdlawson115@gmail.com> Date: Sat Jun 10 16:55:10 2023 -0400 convert float to double and all that commita4b66367fd
Merge:08a664ba
afc665ed
Author: AstrlJelly <bdlawson115@gmail.com> Date: Sat Jun 10 16:01:44 2023 -0400 Merge remote-tracking branch 'upstream/master' into MiscAdditions_4 commit08a664ba2a
Merge:faf3fbf9
2b0ced2f
Author: AstrlJelly <bdlawson115@gmail.com> Date: Sat Jun 10 15:21:22 2023 -0400 Merge remote-tracking branch 'upstream/master' into MiscAdditions_4 commitfaf3fbf97c
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 commitbb2ae74339
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: commite782e3a5b4
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 commitce74719c1a
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 commit5b8cfef1b0
Author: patata <patataofcourse@gmail.com> Date: Sat Jun 17 17:20:15 2023 +0200 Update issue template to include .riq/.zip info commit9c61b760bb
Author: ev <85412919+evdial@users.noreply.github.com> Date: Thu Jun 15 15:05:07 2023 -0400 assbuns commitae7451e9d3
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Thu Jun 15 20:56:40 2023 +0200 made small idle not crazy commit4c5c95237c
Author: ev <85412919+evdial@users.noreply.github.com> Date: Thu Jun 15 14:33:57 2023 -0400 fsd commit083d916238
Author: ev <85412919+evdial@users.noreply.github.com> Date: Thu Jun 15 14:16:38 2023 -0400 anim commitb3664e01b3
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Thu Jun 15 20:13:11 2023 +0200 Fixed stuff also scaled now yippee commit71e3a0ce6b
Author: ev <85412919+evdial@users.noreply.github.com> Date: Thu Jun 15 13:50:10 2023 -0400 many commit37b80a33c7
Author: minenice55 <star.elementa@gmail.com> Date: Tue Jun 13 21:28:21 2023 -0400 Squashed commit of the following: (#474) commita6ce193ce5
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 commit9b24ac4838
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 commit6105bb4f64
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 commit576b4a0017
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 commit10f8fa7f5a
Author: minenice55 <star.elementa@gmail.com> Date: Tue Jun 13 17:38:24 2023 -0400 add "updater" for the old marching entity commit118cd4993d
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 commit8df235a85b
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 commit9980445723
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 commit2f59582460
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 commitaff1e3d889
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 commitc9accfa52d
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 commitb40ec128a5
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 commit95c9b34695
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 16:13:08 2023 +0200 modernised rockers pass turn commit0debf55391
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 commit6eac745eae
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 15:51:35 2023 +0200 gandw on balls has been added commit349867d983
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 14:59:56 2023 +0200 Proper inactive handling now commitd469c6c3fa
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 13:52:15 2023 +0200 OnSpawnBall reimplemented commitdd290b3331
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 13:37:09 2023 +0200 new sounds commit757e1c2c5e
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 commit8ce1d8276b
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Mon Jun 12 21:36:57 2023 +0200 ball transporter anims for pass turn commitaf0d9bae19
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 commitdb21d51673
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 commit41157a038c
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Mon Jun 12 14:04:32 2023 +0200 Some new curves commit7d754f5706
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Mon Jun 12 12:03:21 2023 +0200 Rockers can do it too now commitc196947251
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 commit9f953d505f
Merge:2a8d8d6f
ce3e6f2d
Author: minenice55 <star.elementa@gmail.com> Date: Sun Jun 11 15:55:40 2023 -0400 Merge branch 'master' into release_1 commit2a8d8d6fd2
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 commit13adf5b07b
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 commit9e3e594209
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 commit1c1c731dd1
Author: minenice55 <star.elementa@gmail.com> Date: Sat Jun 10 23:00:30 2023 -0400 add updater for marching orders turn commit210be54ba3
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 commitaf8395fb6a
Merge:81eafec9
afc665ed
Author: minenice55 <star.elementa@gmail.com> Date: Sat Jun 10 22:30:32 2023 -0400 Merge branch 'master' into release_1 commit81eafec986
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 commit67b6658cd3
Author: AstrlJelly <bdlawson115@gmail.com> Date: Sat Jun 10 16:55:10 2023 -0400 convert float to double and all that commita4b66367fd
Merge:08a664ba
afc665ed
Author: AstrlJelly <bdlawson115@gmail.com> Date: Sat Jun 10 16:01:44 2023 -0400 Merge remote-tracking branch 'upstream/master' into MiscAdditions_4 commit08a664ba2a
Merge:faf3fbf9
2b0ced2f
Author: AstrlJelly <bdlawson115@gmail.com> Date: Sat Jun 10 15:21:22 2023 -0400 Merge remote-tracking branch 'upstream/master' into MiscAdditions_4 commitfaf3fbf97c
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 commitbb2ae74339
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 commita6ce193ce5
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 commit9b24ac4838
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 commit6105bb4f64
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 commit576b4a0017
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 commit10f8fa7f5a
Author: minenice55 <star.elementa@gmail.com> Date: Tue Jun 13 17:38:24 2023 -0400 add "updater" for the old marching entity commit118cd4993d
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 commit8df235a85b
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 commit9980445723
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 commit2f59582460
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 commitaff1e3d889
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 commitc9accfa52d
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 commitb40ec128a5
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 commit95c9b34695
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 16:13:08 2023 +0200 modernised rockers pass turn commit0debf55391
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 commit6eac745eae
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 15:51:35 2023 +0200 gandw on balls has been added commit349867d983
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 14:59:56 2023 +0200 Proper inactive handling now commitd469c6c3fa
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 13:52:15 2023 +0200 OnSpawnBall reimplemented commitdd290b3331
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Tue Jun 13 13:37:09 2023 +0200 new sounds commit757e1c2c5e
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 commit8ce1d8276b
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Mon Jun 12 21:36:57 2023 +0200 ball transporter anims for pass turn commitaf0d9bae19
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 commitdb21d51673
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 commit41157a038c
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Mon Jun 12 14:04:32 2023 +0200 Some new curves commit7d754f5706
Author: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Mon Jun 12 12:03:21 2023 +0200 Rockers can do it too now commitc196947251
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 commit9f953d505f
Merge:2a8d8d6f
ce3e6f2d
Author: minenice55 <star.elementa@gmail.com> Date: Sun Jun 11 15:55:40 2023 -0400 Merge branch 'master' into release_1 commit2a8d8d6fd2
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 commit13adf5b07b
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 commit9e3e594209
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 commit1c1c731dd1
Author: minenice55 <star.elementa@gmail.com> Date: Sat Jun 10 23:00:30 2023 -0400 add updater for marching orders turn commit210be54ba3
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 commitaf8395fb6a
Merge:81eafec9
afc665ed
Author: minenice55 <star.elementa@gmail.com> Date: Sat Jun 10 22:30:32 2023 -0400 Merge branch 'master' into release_1 commit81eafec986
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 commit67b6658cd3
Author: AstrlJelly <bdlawson115@gmail.com> Date: Sat Jun 10 16:55:10 2023 -0400 convert float to double and all that commita4b66367fd
Merge:08a664ba
afc665ed
Author: AstrlJelly <bdlawson115@gmail.com> Date: Sat Jun 10 16:01:44 2023 -0400 Merge remote-tracking branch 'upstream/master' into MiscAdditions_4 commit08a664ba2a
Merge:faf3fbf9
2b0ced2f
Author: AstrlJelly <bdlawson115@gmail.com> Date: Sat Jun 10 15:21:22 2023 -0400 Merge remote-tracking branch 'upstream/master' into MiscAdditions_4 commitfaf3fbf97c
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 commitbb2ae74339
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
636 lines
28 KiB
C#
636 lines
28 KiB
C#
using HeavenStudio.Util;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using NaughtyBezierCurves;
|
|
|
|
namespace HeavenStudio.Games.Loaders
|
|
{
|
|
using static Minigames;
|
|
public static class RvlWorkingDoughLoader
|
|
{
|
|
public static Minigame AddGame(EventCaller eventCaller)
|
|
{
|
|
return new Minigame("workingDough", "Working Dough", "000000", false, false, new List<GameAction>()
|
|
{
|
|
new GameAction("beat intervals", "Start Interval")
|
|
{
|
|
preFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.PreSetIntervalStart(e.beat, e.length); },
|
|
defaultLength = 8f,
|
|
resizable = true,
|
|
priority = 2,
|
|
},
|
|
new GameAction("small ball", "Small Ball")
|
|
{
|
|
preFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.PreSpawnBall(e.beat, false, false); },
|
|
defaultLength = 0.5f,
|
|
priority = 1,
|
|
inactiveFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.OnSpawnBallInactive(e.beat, false, false); },
|
|
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.OnSpawnBall(e.beat, false, false); }
|
|
},
|
|
new GameAction("big ball", "Big Ball")
|
|
{
|
|
preFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.PreSpawnBall(e.beat, true, e["hasGandw"]); },
|
|
defaultLength = 0.5f,
|
|
priority = 1,
|
|
inactiveFunction = delegate { var e = eventCaller.currentEntity; WorkingDough.OnSpawnBallInactive(e.beat, true, e["hasGandw"]); },
|
|
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.OnSpawnBall(e.beat, true, e["hasGandw"]); },
|
|
parameters = new List<Param>()
|
|
{
|
|
new Param("hasGandw", false, "Has Mr. Game & Watch")
|
|
}
|
|
},
|
|
new GameAction("passTurn", "Pass Turn")
|
|
{
|
|
preFunction = delegate { WorkingDough.PrePassTurn(eventCaller.currentEntity.beat); },
|
|
preFunctionLength = 1
|
|
},
|
|
new GameAction("launch spaceship", "Launch Spaceship")
|
|
{
|
|
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.LaunchShip(e.beat, e.length); },
|
|
defaultLength = 4f,
|
|
resizable = true,
|
|
priority = 0
|
|
},
|
|
new GameAction("rise spaceship", "Rise Up Spaceship")
|
|
{
|
|
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.RiseUpShip(e.beat, e.length); },
|
|
defaultLength = 4f,
|
|
resizable = true,
|
|
priority = 0
|
|
},
|
|
new GameAction("lift dough dudes", "Lift Dough Dudes")
|
|
{
|
|
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.Elevate(e.beat, e.length, e["toggle"]); },
|
|
defaultLength = 4f,
|
|
parameters = new List<Param>()
|
|
{
|
|
new Param("toggle", false, "Go Up?", "Toggle to go Up or Down.")
|
|
},
|
|
resizable = true,
|
|
priority = 0
|
|
},
|
|
new GameAction("instant lift", "Instant Lift")
|
|
{
|
|
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.InstantElevation(e["toggle"]); },
|
|
parameters = new List<Param>()
|
|
{
|
|
new Param("toggle", true, "Go Up?", "Toggle to go Up or Down.")
|
|
},
|
|
defaultLength = 0.5f,
|
|
priority = 0
|
|
},
|
|
new GameAction("mr game and watch enter or exit", "Mr. G&W Enter or Exit")
|
|
{
|
|
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.GANDWEnterOrExit(e.beat, e.length, e["toggle"]); },
|
|
defaultLength = 4f,
|
|
parameters = new List<Param>()
|
|
{
|
|
new Param("toggle", false, "Should exit?", "Toggle to make him leave or enter.")
|
|
},
|
|
resizable = true,
|
|
priority = 0
|
|
},
|
|
new GameAction("instant game and watch", "Instant Mr. G&W Enter or Exit")
|
|
{
|
|
function = delegate { var e = eventCaller.currentEntity; WorkingDough.instance.InstantGANDWEnterOrExit(e["toggle"]); },
|
|
parameters = new List<Param>()
|
|
{
|
|
new Param("toggle", false, "Exit?", "Toggle to make him leave or enter.")
|
|
},
|
|
defaultLength = 0.5f,
|
|
priority = 0
|
|
},
|
|
new GameAction("disableBG", "Toggle Background")
|
|
{
|
|
function = delegate { WorkingDough.instance.DisableBG(); },
|
|
defaultLength = 0.5f
|
|
}
|
|
},
|
|
new List<string>() {"rvl", "repeat"},
|
|
"rvldough", "en",
|
|
new List<string>() {}
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
namespace HeavenStudio.Games
|
|
{
|
|
using Scripts_WorkingDough;
|
|
|
|
public class WorkingDough : Minigame
|
|
{
|
|
[Header("Components")]
|
|
[SerializeField] GameObject doughDudesNPC; //Jump animations
|
|
public GameObject doughDudesPlayer; //Jump animations
|
|
[SerializeField] GameObject ballTransporterRightNPC; //Close and open animations
|
|
[SerializeField] GameObject ballTransporterLeftNPC; //Close and open animations
|
|
[SerializeField] GameObject ballTransporterRightPlayer; //Close and open animations
|
|
[SerializeField] GameObject ballTransporterLeftPlayer; //Close and open animations
|
|
[SerializeField] GameObject npcImpact;
|
|
public GameObject playerImpact;
|
|
[SerializeField] GameObject smallBallNPC;
|
|
[SerializeField] GameObject bigBallNPC;
|
|
[SerializeField] Transform ballHolder;
|
|
[SerializeField] SpriteRenderer arrowSRLeftNPC;
|
|
[SerializeField] SpriteRenderer arrowSRRightNPC;
|
|
[SerializeField] SpriteRenderer arrowSRLeftPlayer;
|
|
public SpriteRenderer arrowSRRightPlayer;
|
|
[SerializeField] GameObject NPCBallTransporters;
|
|
[SerializeField] GameObject PlayerBallTransporters;
|
|
[SerializeField] GameObject playerEnterSmallBall;
|
|
[SerializeField] GameObject playerEnterBigBall;
|
|
public GameObject missImpact;
|
|
public Transform breakParticleHolder;
|
|
public GameObject breakParticleEffect;
|
|
public Animator backgroundAnimator;
|
|
[SerializeField] Animator conveyerAnimator;
|
|
[SerializeField] GameObject smallBGBall;
|
|
[SerializeField] GameObject bigBGBall;
|
|
[SerializeField] Animator spaceshipAnimator;
|
|
[SerializeField] GameObject spaceshipLights;
|
|
[SerializeField] Animator doughDudesHolderAnim;
|
|
[SerializeField] Animator gandwAnim;
|
|
|
|
[SerializeField] private GameObject[] bgObjects;
|
|
private bool bgDisabled;
|
|
|
|
[Header("Variables")]
|
|
float risingLength = 4f;
|
|
double risingStartBeat;
|
|
float liftingLength = 4f;
|
|
double liftingStartBeat;
|
|
float gandMovingLength = 4f;
|
|
double gandMovingStartBeat;
|
|
public bool bigMode;
|
|
public bool bigModePlayer;
|
|
static List<QueuedBall> queuedBalls = new List<QueuedBall>();
|
|
static List<double> passedTurns = new List<double>();
|
|
struct QueuedBall
|
|
{
|
|
public double beat;
|
|
public bool isBig;
|
|
public bool hasGandw;
|
|
}
|
|
public bool spaceshipRisen = false;
|
|
public bool spaceshipRising = false;
|
|
bool liftingDoughDudes;
|
|
string liftingAnimName;
|
|
bool gandwHasEntered = true;
|
|
bool gandwMoving;
|
|
string gandwMovingAnimName;
|
|
|
|
[Header("Curves")]
|
|
[SerializeField] SuperCurveObject.Path[] ballBouncePaths;
|
|
new void OnDrawGizmos()
|
|
{
|
|
base.OnDrawGizmos();
|
|
foreach (SuperCurveObject.Path path in ballBouncePaths)
|
|
{
|
|
if (path.preview)
|
|
{
|
|
smallBallNPC.GetComponent<NPCDoughBall>().DrawEditorGizmo(path);
|
|
}
|
|
}
|
|
}
|
|
public SuperCurveObject.Path GetPath(string name)
|
|
{
|
|
foreach (SuperCurveObject.Path path in ballBouncePaths)
|
|
{
|
|
if (path.name == name)
|
|
{
|
|
return path;
|
|
}
|
|
}
|
|
return default(SuperCurveObject.Path);
|
|
}
|
|
|
|
[Header("Resources")]
|
|
public Sprite whiteArrowSprite;
|
|
public Sprite redArrowSprite;
|
|
|
|
public static WorkingDough instance;
|
|
private static CallAndResponseHandler crHandlerInstance;
|
|
|
|
void Awake()
|
|
{
|
|
if (crHandlerInstance == null)
|
|
{
|
|
crHandlerInstance = new CallAndResponseHandler(8);
|
|
}
|
|
instance = this;
|
|
}
|
|
|
|
void Start()
|
|
{
|
|
conveyerAnimator.Play("ConveyerBelt", 0, 0);
|
|
doughDudesHolderAnim.Play("OnGround", 0, 0);
|
|
}
|
|
|
|
public void DisableBG()
|
|
{
|
|
bgDisabled = !bgDisabled;
|
|
foreach (var bgObject in bgObjects)
|
|
{
|
|
bgObject.SetActive(!bgDisabled);
|
|
}
|
|
}
|
|
|
|
public void SetIntervalStart(double beat, float interval)
|
|
{
|
|
if (!crHandlerInstance.IntervalIsActive())
|
|
{
|
|
bigMode = false;
|
|
BeatAction.New(ballTransporterLeftNPC, new List<BeatAction.Action>()
|
|
{
|
|
new BeatAction.Action(beat - 1, delegate
|
|
{
|
|
if (!instance.ballTransporterLeftNPC.GetComponent<Animator>().IsPlayingAnimationName("BallTransporterLeftOpened"))
|
|
{
|
|
instance.ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftOpen", 0, 0);
|
|
instance.ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0);
|
|
if (instance.gandwHasEntered && !bgDisabled) instance.gandwAnim.Play("GANDWLeverUp", 0, 0);
|
|
}
|
|
}),
|
|
//Open player transporters
|
|
/*
|
|
new BeatAction.Action(beat + interval - 1f, delegate {
|
|
ballTransporterRightPlayer.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0);
|
|
}),
|
|
new BeatAction.Action(beat + interval - 1f, delegate {
|
|
ballTransporterRightPlayer.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0);
|
|
}),*/
|
|
|
|
//Close npc transporters
|
|
new BeatAction.Action(beat + interval, delegate {
|
|
if (bigMode)
|
|
{
|
|
NPCBallTransporters.GetComponent<Animator>().Play("NPCExitBigMode", 0, 0);
|
|
bigMode = false;
|
|
}
|
|
}),
|
|
/*
|
|
new BeatAction.Action(beat + interval + 1, delegate { if (!intervalStarted) ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftClose", 0, 0); }),
|
|
new BeatAction.Action(beat + interval + 1, delegate { if (!intervalStarted) ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightClose", 0, 0); }),
|
|
new BeatAction.Action(beat + interval + 1, delegate { if (gandwHasEntered) gandwAnim.Play("MrGameAndWatchLeverDown", 0, 0); }),
|
|
//Close player transporters
|
|
new BeatAction.Action(beat + interval * 2 + 1, delegate { ballTransporterLeftPlayer.GetComponent<Animator>().Play("BallTransporterLeftClose", 0, 0); }),
|
|
new BeatAction.Action(beat + interval * 2 + 1, delegate { ballTransporterRightPlayer.GetComponent<Animator>().Play("BallTransporterRightClose", 0, 0); }),
|
|
new BeatAction.Action(beat + interval * 2 + 1, delegate {
|
|
if (bigModePlayer)
|
|
{
|
|
PlayerBallTransporters.GetComponent<Animator>().Play("PlayerExitBigMode", 0, 0);
|
|
bigModePlayer = false;
|
|
}
|
|
}),
|
|
*/
|
|
});
|
|
}
|
|
crHandlerInstance.StartInterval(beat, interval);
|
|
}
|
|
|
|
public static void PrePassTurn(double beat)
|
|
{
|
|
if (GameManager.instance.currentGame == "workingDough")
|
|
{
|
|
instance.PassTurn(beat);
|
|
}
|
|
else
|
|
{
|
|
passedTurns.Add(beat);
|
|
}
|
|
}
|
|
|
|
private void PassTurn(double beat)
|
|
{
|
|
if (crHandlerInstance.queuedEvents.Count > 0)
|
|
{
|
|
ballTransporterRightPlayer.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0);
|
|
ballTransporterLeftPlayer.GetComponent<Animator>().Play("BallTransporterLeftOpen", 0, 0);
|
|
foreach (var ball in crHandlerInstance.queuedEvents)
|
|
{
|
|
SpawnPlayerBall(beat + ball.relativeBeat - 1, ball.tag == "big", ball["hasGandw"]);
|
|
}
|
|
crHandlerInstance.queuedEvents.Clear();
|
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
{
|
|
new BeatAction.Action(beat, delegate
|
|
{
|
|
if (crHandlerInstance.queuedEvents.Count > 0)
|
|
{
|
|
foreach (var ball in crHandlerInstance.queuedEvents)
|
|
{
|
|
SpawnPlayerBall(beat + ball.relativeBeat - 1, ball.tag == "big", ball["hasGandw"]);
|
|
}
|
|
crHandlerInstance.queuedEvents.Clear();
|
|
}
|
|
}),
|
|
new BeatAction.Action(beat + 1, delegate { if (!crHandlerInstance.IntervalIsActive()) ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftClose", 0, 0); }),
|
|
new BeatAction.Action(beat + 1, delegate { if (!crHandlerInstance.IntervalIsActive()) ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightClose", 0, 0); }),
|
|
new BeatAction.Action(beat + 1, delegate { if (gandwHasEntered && !bgDisabled) gandwAnim.Play("MrGameAndWatchLeverDown", 0, 0); }),
|
|
//Close player transporters
|
|
new BeatAction.Action(beat + crHandlerInstance.intervalLength + 1, delegate { ballTransporterLeftPlayer.GetComponent<Animator>().Play("BallTransporterLeftClose", 0, 0); }),
|
|
new BeatAction.Action(beat + crHandlerInstance.intervalLength + 1, delegate { ballTransporterRightPlayer.GetComponent<Animator>().Play("BallTransporterRightClose", 0, 0); }),
|
|
new BeatAction.Action(beat + crHandlerInstance.intervalLength + 1, delegate {
|
|
if (bigModePlayer)
|
|
{
|
|
PlayerBallTransporters.GetComponent<Animator>().Play("PlayerExitBigMode", 0, 0);
|
|
bigModePlayer = false;
|
|
}
|
|
}),
|
|
});
|
|
}
|
|
}
|
|
|
|
public void SpawnBall(double beat, bool isBig, bool hasGandw)
|
|
{
|
|
var objectToSpawn = isBig ? bigBallNPC : smallBallNPC;
|
|
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
|
|
|
|
var ballComponent = spawnedBall.GetComponent<NPCDoughBall>();
|
|
spawnedBall.SetActive(true);
|
|
ballComponent.Init(beat, hasGandw);
|
|
|
|
|
|
if (isBig && !bigMode)
|
|
{
|
|
NPCBallTransporters.GetComponent<Animator>().Play("NPCGoBigMode", 0, 0);
|
|
bigMode = true;
|
|
}
|
|
|
|
|
|
arrowSRLeftNPC.sprite = redArrowSprite;
|
|
BeatAction.New(doughDudesNPC, new List<BeatAction.Action>()
|
|
{
|
|
//Jump and play sound
|
|
new BeatAction.Action(beat + 0.1f, delegate { arrowSRLeftNPC.sprite = whiteArrowSprite; }),
|
|
new BeatAction.Action(beat + 1f, delegate { doughDudesNPC.GetComponent<Animator>().DoScaledAnimationAsync(isBig ? "BigDoughJump" :"SmallDoughJump", 0.5f); }),
|
|
new BeatAction.Action(beat + 1f, delegate { npcImpact.SetActive(true); }),
|
|
new BeatAction.Action(beat + 1.1f, delegate { npcImpact.SetActive(false); }),
|
|
new BeatAction.Action(beat + 1.9f, delegate { arrowSRRightNPC.sprite = redArrowSprite; }),
|
|
new BeatAction.Action(beat + 2f, delegate { arrowSRRightNPC.sprite = whiteArrowSprite; }),
|
|
});
|
|
}
|
|
|
|
public static void PreSpawnBall(double beat, bool isBig, bool hasGandw)
|
|
{
|
|
double spawnBeat = beat - 1f;
|
|
beat -= 1f;
|
|
if (GameManager.instance.currentGame == "workingDough")
|
|
{
|
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
{
|
|
new BeatAction.Action(spawnBeat, delegate
|
|
{
|
|
if (!instance.ballTransporterLeftNPC.GetComponent<Animator>().IsPlayingAnimationName("BallTransporterLeftOpened") && !crHandlerInstance.IntervalIsActive() && !instance.bgDisabled)
|
|
{
|
|
instance.ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftOpen", 0, 0);
|
|
instance.ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightOpen", 0, 0);
|
|
if (instance.gandwHasEntered) instance.gandwAnim.Play("GANDWLeverUp", 0, 0);
|
|
}
|
|
}),
|
|
new BeatAction.Action(spawnBeat, delegate { if (instance != null) instance.SpawnBall(beat, isBig, hasGandw); }),
|
|
// new BeatAction.Action(spawnBeat + instance.beatInterval, delegate { instance.SpawnPlayerBall(beat + instance.beatInterval, isBig); }),
|
|
});
|
|
}
|
|
else
|
|
{
|
|
queuedBalls.Add(new QueuedBall()
|
|
{
|
|
beat = beat + 1f,
|
|
isBig = isBig,
|
|
hasGandw = hasGandw
|
|
});
|
|
}
|
|
}
|
|
|
|
public static void OnSpawnBallInactive(double beat, bool isBig, bool hasGandw)
|
|
{
|
|
if (crHandlerInstance == null)
|
|
{
|
|
crHandlerInstance = new CallAndResponseHandler(8);
|
|
}
|
|
crHandlerInstance.AddEvent(beat, 0, isBig ? "big" : "small", new List<CallAndResponseHandler.CallAndResponseEventParam>()
|
|
{
|
|
new CallAndResponseHandler.CallAndResponseEventParam("hasGandw", hasGandw)
|
|
});
|
|
}
|
|
|
|
public void OnSpawnBall(double beat, bool isBig, bool hasGandw)
|
|
{
|
|
crHandlerInstance.AddEvent(beat, 0, isBig ? "big" : "small", new List<CallAndResponseHandler.CallAndResponseEventParam>()
|
|
{
|
|
new CallAndResponseHandler.CallAndResponseEventParam("hasGandw", hasGandw)
|
|
});
|
|
SoundByte.PlayOneShotGame(isBig ? "workingDough/hitBigOther" : "workingDough/hitSmallOther");
|
|
SoundByte.PlayOneShotGame(isBig ? "workingDough/bigOther" : "workingDough/smallOther");
|
|
}
|
|
|
|
public static void InactiveInterval(double beat, float interval)
|
|
{
|
|
if (crHandlerInstance == null)
|
|
{
|
|
crHandlerInstance = new CallAndResponseHandler(8);
|
|
}
|
|
crHandlerInstance.StartInterval(beat, interval);
|
|
}
|
|
|
|
public void SpawnPlayerBall(double beat, bool isBig, bool hasGandw)
|
|
{
|
|
var objectToSpawn = isBig ? playerEnterBigBall : playerEnterSmallBall;
|
|
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
|
|
|
|
var ballComponent = spawnedBall.GetComponent<PlayerEnterDoughBall>();
|
|
spawnedBall.SetActive(true);
|
|
ballComponent.Init(beat, isBig, hasGandw);
|
|
|
|
if (isBig && !bigModePlayer)
|
|
{
|
|
PlayerBallTransporters.GetComponent<Animator>().Play("PlayerGoBigMode", 0, 0);
|
|
bigModePlayer = true;
|
|
}
|
|
|
|
BeatAction.New(doughDudesPlayer, new List<BeatAction.Action>()
|
|
{
|
|
new BeatAction.Action(beat, delegate { arrowSRLeftPlayer.sprite = redArrowSprite; }),
|
|
new BeatAction.Action(beat + 0.1f, delegate { arrowSRLeftPlayer.sprite = whiteArrowSprite; }),
|
|
});
|
|
}
|
|
|
|
public static void PreSetIntervalStart(double beat, float interval)
|
|
{
|
|
if (GameManager.instance.currentGame == "workingDough")
|
|
{
|
|
// instance.ballTriggerSetInterval = false;
|
|
// beatInterval = interval;
|
|
instance.SetIntervalStart(beat, interval);
|
|
}
|
|
else
|
|
{
|
|
InactiveInterval(beat, interval);
|
|
}
|
|
}
|
|
|
|
void OnDestroy()
|
|
{
|
|
if (crHandlerInstance != null && !Conductor.instance.isPlaying)
|
|
{
|
|
crHandlerInstance = null;
|
|
}
|
|
if (queuedBalls.Count > 0) queuedBalls.Clear();
|
|
foreach (var evt in scheduledInputs)
|
|
{
|
|
evt.Disable();
|
|
}
|
|
}
|
|
|
|
public override void OnGameSwitch(double beat)
|
|
{
|
|
if (queuedBalls.Count > 0)
|
|
{
|
|
foreach (var ball in queuedBalls)
|
|
{
|
|
if (ball.isBig) NPCBallTransporters.GetComponent<Animator>().Play("BigMode", 0, 0);
|
|
if (!crHandlerInstance.IntervalIsActive())
|
|
{
|
|
ballTransporterLeftNPC.GetComponent<Animator>().Play("BallTransporterLeftOpened", 0, 0);
|
|
ballTransporterRightNPC.GetComponent<Animator>().Play("BallTransporterRightOpened", 0, 0);
|
|
if (gandwHasEntered && !bgDisabled) gandwAnim.Play("GANDWLeverUp", 0, 0);
|
|
}
|
|
if (ball.beat > beat - 1)
|
|
{
|
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
{
|
|
new BeatAction.Action(ball.beat - 1, delegate { SpawnBall(ball.beat - 1, ball.isBig, ball.hasGandw); })
|
|
});
|
|
}
|
|
|
|
}
|
|
queuedBalls.Clear();
|
|
}
|
|
}
|
|
|
|
void Update()
|
|
{
|
|
Conductor cond = Conductor.instance;
|
|
if (!cond.isPlaying || cond.isPaused)
|
|
{
|
|
if (queuedBalls.Count > 0) queuedBalls.Clear();
|
|
}
|
|
|
|
if (spaceshipRising && !bgDisabled) spaceshipAnimator.DoScaledAnimation("RiseSpaceship", risingStartBeat, risingLength);
|
|
if (liftingDoughDudes && !bgDisabled) doughDudesHolderAnim.DoScaledAnimation(liftingAnimName, liftingStartBeat, liftingLength);
|
|
if (gandwMoving && !bgDisabled) gandwAnim.DoScaledAnimation(gandwMovingAnimName, gandMovingStartBeat, gandMovingLength);
|
|
if (passedTurns.Count > 0)
|
|
{
|
|
foreach (var passTurn in passedTurns)
|
|
{
|
|
PassTurn(passTurn);
|
|
}
|
|
passedTurns.Clear();
|
|
}
|
|
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
|
|
{
|
|
doughDudesPlayer.GetComponent<Animator>().DoScaledAnimationAsync("SmallDoughJump", 0.5f);
|
|
SoundByte.PlayOneShotGame("workingDough/smallPlayer");
|
|
}
|
|
else if (PlayerInput.AltPressed() && !IsExpectingInputNow(InputType.STANDARD_ALT_DOWN))
|
|
{
|
|
doughDudesPlayer.GetComponent<Animator>().DoScaledAnimationAsync("BigDoughJump", 0.5f);
|
|
SoundByte.PlayOneShotGame("workingDough/bigPlayer");
|
|
}
|
|
}
|
|
|
|
public void SpawnBGBall(double beat, bool isBig, bool hasGandw)
|
|
{
|
|
var objectToSpawn = isBig ? bigBGBall : smallBGBall;
|
|
var spawnedBall = GameObject.Instantiate(objectToSpawn, ballHolder);
|
|
|
|
var ballComponent = spawnedBall.GetComponent<BGBall>();
|
|
spawnedBall.SetActive(true);
|
|
ballComponent.Init(beat, hasGandw);
|
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
{
|
|
new BeatAction.Action(beat + 9f, delegate { if (!spaceshipRisen && !bgDisabled) spaceshipAnimator.Play("AbsorbBall", 0, 0); }),
|
|
});
|
|
}
|
|
|
|
public void InstantElevation(bool isUp)
|
|
{
|
|
doughDudesHolderAnim.Play(isUp ? "InAir" : "OnGround", 0, 0);
|
|
}
|
|
|
|
public void Elevate(double beat, float length, bool isUp)
|
|
{
|
|
liftingAnimName = isUp ? "LiftUp" : "LiftDown";
|
|
liftingStartBeat = beat;
|
|
liftingLength = length;
|
|
liftingDoughDudes = true;
|
|
doughDudesHolderAnim.DoScaledAnimation(liftingAnimName, liftingStartBeat, liftingLength);
|
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
{
|
|
new BeatAction.Action(beat + length - 0.1f, delegate { liftingDoughDudes = false; }),
|
|
});
|
|
}
|
|
|
|
public void LaunchShip(double beat, float length)
|
|
{
|
|
if (bgDisabled) return;
|
|
spaceshipRisen = true;
|
|
if (!spaceshipLights.activeSelf)
|
|
{
|
|
spaceshipLights.SetActive(true);
|
|
spaceshipLights.GetComponent<Animator>().Play("SpaceshipLights", 0, 0);
|
|
}
|
|
spaceshipAnimator.Play("SpaceshipShake", 0, 0);
|
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
{
|
|
new BeatAction.Action(beat + length, delegate { spaceshipAnimator.Play("SpaceshipLaunch", 0, 0); }),
|
|
new BeatAction.Action(beat + length, delegate { SoundByte.PlayOneShotGame("workingDough/LaunchRobot"); }),
|
|
});
|
|
}
|
|
|
|
public void RiseUpShip(double beat, float length)
|
|
{
|
|
if (bgDisabled) return;
|
|
spaceshipRisen = true;
|
|
spaceshipRising = true;
|
|
risingLength = length;
|
|
risingStartBeat = beat;
|
|
if (!spaceshipLights.activeSelf)
|
|
{
|
|
spaceshipLights.SetActive(true);
|
|
spaceshipLights.GetComponent<Animator>().Play("SpaceshipLights", 0, 0);
|
|
}
|
|
spaceshipAnimator.DoScaledAnimation("RiseSpaceship", risingStartBeat, risingLength);
|
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
{
|
|
new BeatAction.Action(beat + length - 0.1f, delegate { spaceshipRising = false; }),
|
|
});
|
|
}
|
|
|
|
public void GANDWEnterOrExit(double beat, float length, bool shouldExit)
|
|
{
|
|
if (bgDisabled) return;
|
|
gandwMoving = true;
|
|
gandwHasEntered = false;
|
|
gandMovingLength = length;
|
|
gandMovingStartBeat = beat;
|
|
gandwMovingAnimName = shouldExit ? "GANDWLeave" : "GANDWEnter";
|
|
gandwAnim.DoScaledAnimation(gandwMovingAnimName, gandMovingStartBeat, gandMovingLength);
|
|
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
|
|
{
|
|
new BeatAction.Action(beat + length - 0.1f, delegate { gandwMoving = false; }),
|
|
new BeatAction.Action(beat + length, delegate { gandwHasEntered = shouldExit ? false : true; }),
|
|
});
|
|
}
|
|
|
|
public void InstantGANDWEnterOrExit(bool shouldExit)
|
|
{
|
|
if (bgDisabled) return;
|
|
gandwAnim.Play(shouldExit ? "GANDWLeft" : "MrGameAndWatchLeverDown", 0, 0);
|
|
gandwHasEntered = shouldExit ? false : true;
|
|
}
|
|
}
|
|
}
|