diff --git a/Assets/Scripts/Games/HoleInOne/HoleInOne.cs b/Assets/Scripts/Games/HoleInOne/HoleInOne.cs index 680bab873..4b2dfb227 100644 --- a/Assets/Scripts/Games/HoleInOne/HoleInOne.cs +++ b/Assets/Scripts/Games/HoleInOne/HoleInOne.cs @@ -37,7 +37,17 @@ namespace HeavenStudio.Games.Loaders { function = delegate { HoleInOne.instance.DoMonkey(eventCaller.currentEntity.beat); }, defaultLength = 3.0f, - } + }, + new GameAction("whale", "Whale") + { + function = delegate { var e = eventCaller.currentEntity; HoleInOne.instance.Whale(e.beat, e.length, e["ease"], e["appear"]); }, + parameters = new List() + { + new Param("appear", true, "Enter", "Toggle if the whale should enter or exit the scene."), + new Param("ease", Util.EasingFunction.Ease.Linear, "Ease", "Set the easing of the action.") + }, + resizable = true + }, }//, // new List() { "rvl", "normal" }, // "rvlgolf", "en", @@ -55,12 +65,18 @@ namespace HeavenStudio.Games { public Animator MonkeyAnim; + double whaleStartBeat; + float whaleLength; + Util.EasingFunction.Ease lastEase; + bool isWhale; + public static HoleInOne instance; void Awake() { HoleInOne.instance = this; SetupBopRegion("holeInOne", "bop", "toggle"); + isWhale = false; } public override void OnBeatPulse(double beat) @@ -69,6 +85,15 @@ namespace HeavenStudio.Games } + void Update() + { + if (PlayerInput.GetIsAction(InputAction_BasicPress) && !IsExpectingInputNow(InputAction_BasicPress)) + { + SoundByte.PlayOneShotGame("holeInOne/hole1"); // temp miss sound. Should be: whiff sound + ScoreMiss(); + } + } + public void ToggleBop(double beat, float length, bool shouldBop, bool autoBop) { if (shouldBop) @@ -86,11 +111,20 @@ namespace HeavenStudio.Games } } } + + public void Whale(double beat, float length, int ease, bool appear) + { + SoundByte.PlayOneShotGame("clappyTrio/sign"); + whaleStartBeat = beat; + whaleLength = length; + lastEase = (Util.EasingFunction.Ease)ease; + isWhale = appear; + } public void DoMandrill(double beat) { //Mandrill Multisound - ScheduleInput(beat, 3f, InputAction_BasicPress, MandrillSuccess, MandrillMiss, Whiff); + ScheduleInput(beat, 3f, InputAction_BasicPress, MandrillSuccess, MandrillMiss, Nothing); MultiSound.Play(new MultiSound.Sound[] { new MultiSound.Sound("holeInOne/mandrill1", beat), new MultiSound.Sound("holeInOne/mandrill2", beat + 1f), @@ -110,7 +144,7 @@ namespace HeavenStudio.Games public void DoMonkey(double beat) { //Monkey Multisound - ScheduleInput(beat, 2f, InputAction_BasicPress, MonkeySuccess, MonkeyMiss, Whiff); + ScheduleInput(beat, 2f, InputAction_BasicPress, MonkeySuccess, MonkeyMiss, Nothing); MultiSound.Play(new MultiSound.Sound[] { new MultiSound.Sound("holeInOne/monkey1", beat), new MultiSound.Sound("holeInOne/monkey2", beat + 1f) @@ -126,8 +160,27 @@ namespace HeavenStudio.Games public void MandrillSuccess(PlayerActionEvent caller, float state) { - SoundByte.PlayOneShotGame("holeInOne/mandrill4"); - MonkeyAnim.Play("MonkeySpin"); + if (state >= 1f || state <= -1f) + { + double beat = caller.startBeat + caller.timer; + + MultiSound.Play(new MultiSound.Sound[] { + new MultiSound.Sound("holeInOne/mandrill1", beat),// temp should be miss + new MultiSound.Sound("holeInOne/hole2", beat + 1f)// temp should be splash + }); + MonkeyAnim.Play("MonkeySpin"); + } + else + { + double beat = caller.startBeat + caller.timer; + int randomSuccess = UnityEngine.Random.Range(1,5); + + MultiSound.Play(new MultiSound.Sound[] { + new MultiSound.Sound("holeInOne/mandrill4", beat), + new MultiSound.Sound((isWhale) ? "holeInOne/whale" : ("holeInOne/hole" + randomSuccess), beat + 2f) + }); + MonkeyAnim.Play("MonkeySpin"); + } } @@ -139,14 +192,27 @@ namespace HeavenStudio.Games public void MonkeySuccess(PlayerActionEvent caller, float state) { - double beat = caller.timer; - int randomSuccess = UnityEngine.Random.Range(1,5); + if (state >= 1f || state <= -1f) + { + double beat = caller.startBeat + caller.timer; - MultiSound.Play(new MultiSound.Sound[] { - new MultiSound.Sound("holeInOne/monkey3", beat), - new MultiSound.Sound("holeInOne/hole" + randomSuccess, beat + 2f) - }); - MonkeyAnim.Play("MonkeySpin"); + MultiSound.Play(new MultiSound.Sound[] { + new MultiSound.Sound("holeInOne/mandrill1", beat),// temp should be miss + new MultiSound.Sound("holeInOne/hole2", beat + 1f)// temp should be splash + }); + MonkeyAnim.Play("MonkeySpin"); + } + else + { + double beat = caller.startBeat + caller.timer; + int randomSuccess = UnityEngine.Random.Range(1,5); + + MultiSound.Play(new MultiSound.Sound[] { + new MultiSound.Sound("holeInOne/monkey3", beat), + new MultiSound.Sound((isWhale) ? "holeInOne/whale" : ("holeInOne/hole" + randomSuccess), beat + 2f) + }); + MonkeyAnim.Play("MonkeySpin"); + } } public void MonkeyMiss(PlayerActionEvent caller) @@ -155,9 +221,8 @@ namespace HeavenStudio.Games MonkeyAnim.Play("MonkeySpin"); } - public void Whiff(PlayerActionEvent caller) + public void Nothing(PlayerActionEvent caller) { - MonkeyAnim.Play("MonkeyBop"); } } } \ No newline at end of file diff --git a/ProjectSettings/SatorImaging.UnitySourceGenerator.Editor.ProjectSettingsData.asset b/ProjectSettings/SatorImaging.UnitySourceGenerator.Editor.ProjectSettingsData.asset index e22d6be02..91f69a84d 100644 --- a/ProjectSettings/SatorImaging.UnitySourceGenerator.Editor.ProjectSettingsData.asset +++ b/ProjectSettings/SatorImaging.UnitySourceGenerator.Editor.ProjectSettingsData.asset @@ -17,6 +17,7 @@ MonoBehaviour: DenseViewWidthThreshold: 512 _disableAutoReloadInBackground: 0 ImportedScriptPaths: + - Assets/Scripts/Games/FanClub/NtrIdolFan.cs - Assets/Scripts/LevelEditor/RemixPropertiesDialog/PropertyPrefabs/BoolChartPropertyPrefab.cs - Assets/Scripts/Games/AirRally/AirRally.cs