From d8dcfb6cf145fdb47b91a9e288da9549e33a106a Mon Sep 17 00:00:00 2001
From: blank3times <105398129+blank3times@users.noreply.github.com>
Date: Fri, 1 Mar 2024 16:45:24 -0800
Subject: [PATCH] Bring in the rest of my script (#5)
* Add something that resembles whiffs and barelies
They still use combinations of the rhre sounds and have no animations.
* fix caller beat in multisound
* Faulty Whale
Stole code from clappy trio sign, the sfx now changes based on whether we have a whale
---
Assets/Scripts/Games/HoleInOne/HoleInOne.cs | 93 ++++++++++++++++---
...Generator.Editor.ProjectSettingsData.asset | 1 +
2 files changed, 80 insertions(+), 14 deletions(-)
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