Fan Club Sound Fix (#613)

* title screen prompt won't switch out of mouse

* fix fan club crowd sounds not being scheduled properly

* remove extra rain drop from kman particle (again smh)
This commit is contained in:
minenice55 2024-01-07 18:45:25 -05:00 committed by GitHub
parent 84d766bb7e
commit ba6c1a52bb
5 changed files with 84 additions and 72 deletions

View file

@ -51,5 +51,5 @@
"temp/": true, "temp/": true,
"Temp/": true "Temp/": true
}, },
"dotnet.defaultSolution": "HeavenStudio-AstrlJelly.sln" "dotnet.defaultSolution": "HeavenStudio.sln"
} }

View file

@ -26958,7 +26958,7 @@ MonoBehaviour:
- name: crowd_hai - name: crowd_hai
sequence: sequence:
game: 1 game: 1
force: 0 force: 1
clips: clips:
- clip: fanClub/crowd_hai_jp - clip: fanClub/crowd_hai_jp
beat: 0 beat: 0
@ -27100,7 +27100,7 @@ MonoBehaviour:
- name: crowd_kamone - name: crowd_kamone
sequence: sequence:
game: 1 game: 1
force: 0 force: 1
clips: clips:
- clip: fanClub/crowd_ka_jp - clip: fanClub/crowd_ka_jp
beat: 0 beat: 0
@ -27133,7 +27133,7 @@ MonoBehaviour:
- name: crowd_iina - name: crowd_iina
sequence: sequence:
game: 1 game: 1
force: 0 force: 1
clips: clips:
- clip: fanClub/crowd_ii_jp - clip: fanClub/crowd_ii_jp
beat: 0 beat: 0

View file

@ -10,7 +10,8 @@ namespace HeavenStudio.Games.Loaders
using static Minigames; using static Minigames;
public static class NtrIdolLoader public static class NtrIdolLoader
{ {
public static Minigame AddGame(EventCaller eventCaller) { public static Minigame AddGame(EventCaller eventCaller)
{
return new Minigame("fanClub", "Fan Club", "ff78ff", false, false, new List<GameAction>() return new Minigame("fanClub", "Fan Club", "ff78ff", false, false, new List<GameAction>()
{ {
new GameAction("bop", "Bop") new GameAction("bop", "Bop")
@ -33,7 +34,7 @@ namespace HeavenStudio.Games.Loaders
new Param("toggle2", false, "Disable response SFX", "Disable the monkeys's response") new Param("toggle2", false, "Disable response SFX", "Disable the monkeys's response")
}, },
inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnHai(e.beat, e["toggle"]);}, inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnHai(e.beat, e["toggle"]);},
preFunction = delegate { var e = eventCaller.currentEntity; FanClub.HaiSound(e.beat, e["toggle"]); } preFunction = delegate { var e = eventCaller.currentEntity; FanClub.HaiSound(e.beat, e["toggle"], e["toggle2"]); }
}, },
new GameAction("I suppose", "I Suppose!") new GameAction("I suppose", "I Suppose!")
{ {
@ -47,7 +48,7 @@ namespace HeavenStudio.Games.Loaders
new Param("alt", false, "Alternate cue", "Use an alternate cue") new Param("alt", false, "Alternate cue", "Use an alternate cue")
}, },
inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnKamone(e.beat, e["toggle"], 0, e["type"], e["alt"]);}, inactiveFunction = delegate { var e = eventCaller.currentEntity; FanClub.WarnKamone(e.beat, e["toggle"], 0, e["type"], e["alt"]);},
preFunction = delegate { var e = eventCaller.currentEntity; FanClub.KamoneSound(e.beat, e["toggle"], 0, e["type"], e["alt"]); } preFunction = delegate { var e = eventCaller.currentEntity; FanClub.KamoneSound(e.beat, e["toggle"], e["toggle2"], 0, e["type"], e["alt"]); }
}, },
new GameAction("double clap", "Double Clap") new GameAction("double clap", "Double Clap")
{ {
@ -120,13 +121,15 @@ namespace HeavenStudio.Games
public class FanClub : Minigame public class FanClub : Minigame
{ {
public enum IdolBopType { public enum IdolBopType
{
Both, Both,
Idol, Idol,
Spectators, Spectators,
None None
} }
public enum IdolAnimations { public enum IdolAnimations
{
Bop, Bop,
PeaceVocal, PeaceVocal,
Peace, Peace,
@ -140,23 +143,27 @@ namespace HeavenStudio.Games
Dab, Dab,
None None
} }
public enum KamoneResponseType { public enum KamoneResponseType
{
Through, Through,
Jump, Jump,
ThroughFast, ThroughFast,
JumpFast, JumpFast,
} }
public enum StageAnimations { public enum StageAnimations
{
Reset, Reset,
Flash, Flash,
Spot Spot
} }
public enum IdolPerformanceType { public enum IdolPerformanceType
{
Normal, Normal,
Arrange, Arrange,
// Tour(this one is fan made so ?) // Tour(this one is fan made so ?)
} }
public enum IdolType { public enum IdolType
{
All, All,
Idol, Idol,
LeftDancer, LeftDancer,
@ -657,8 +664,6 @@ namespace HeavenStudio.Games
new BeatAction.Action(beat + 6f, delegate { PlayOneClap(beat + 6f); DoIdolClaps();}), new BeatAction.Action(beat + 6f, delegate { PlayOneClap(beat + 6f); DoIdolClaps();}),
new BeatAction.Action(beat + 7f, delegate { PlayOneClap(beat + 7f); DoIdolClaps();}), new BeatAction.Action(beat + 7f, delegate { PlayOneClap(beat + 7f); DoIdolClaps();}),
}); });
if (!noResponse) PlaySoundSequence("fanClub", "crowd_hai", beat + 4f);
} }
public static void WarnHai(double beat, bool noSound = false, int type = 0) public static void WarnHai(double beat, bool noSound = false, int type = 0)
@ -666,8 +671,9 @@ namespace HeavenStudio.Games
wantHais = beat; wantHais = beat;
} }
public static void HaiSound(double beat, bool noSound = false, int type = 0) public static void HaiSound(double beat, bool noSound = false, bool noResponse = false, int type = 0)
{ {
if (!noResponse) PlaySoundSequence("fanClub", "crowd_hai", beat + 4f);
if (noSound) return; if (noSound) return;
PlaySoundSequence("fanClub", "arisa_hai", beat); PlaySoundSequence("fanClub", "arisa_hai", beat);
} }
@ -718,9 +724,6 @@ namespace HeavenStudio.Games
} }
}), }),
}); });
if (!noResponse) PlaySoundSequence("fanClub", alt ? "crowd_iina" : "crowd_kamone", beat + 2f);
} }
public static void WarnKamone(double beat, bool noSound = false, int type = 0, int responseType = (int)KamoneResponseType.Through, bool alt = false) public static void WarnKamone(double beat, bool noSound = false, int type = 0, int responseType = (int)KamoneResponseType.Through, bool alt = false)
@ -730,8 +733,9 @@ namespace HeavenStudio.Games
wantKamoneAlt = alt; wantKamoneAlt = alt;
} }
public static void KamoneSound(double beat, bool noSound = false, int type = 0, int responseType = (int) KamoneResponseType.Through, bool alt = false) public static void KamoneSound(double beat, bool noSound = false, bool noResponse = false, int type = 0, int responseType = (int)KamoneResponseType.Through, bool alt = false)
{ {
if (!noResponse) PlaySoundSequence("fanClub", alt ? "crowd_iina" : "crowd_kamone", beat + 2f);
if (noSound) return; if (noSound) return;
if (responseType == (int)KamoneResponseType.ThroughFast || responseType == (int)KamoneResponseType.JumpFast) if (responseType == (int)KamoneResponseType.ThroughFast || responseType == (int)KamoneResponseType.JumpFast)
{ {

View file

@ -91,8 +91,16 @@ namespace HeavenStudio.InputSystem
public override void UpdateState() public override void UpdateState()
{ {
if (GameManager.instance == null) return; Camera cam;
Camera cam = GameManager.instance.CursorCam; if (GameManager.instance == null || GameManager.instance.CursorCam == null)
{
cam = Camera.main;
}
else
{
cam = GameManager.instance.CursorCam;
}
if (cam == null) return;
hasFlicked = false; hasFlicked = false;
hasSwiped = false; hasSwiped = false;

View file

@ -142,15 +142,15 @@ namespace HeavenStudio
SoundByte.PlayOneShot("ui/UIEnter"); SoundByte.PlayOneShot("ui/UIEnter");
var nextController = newController; var nextController = newController;
var lastController = PlayerInput.GetInputController(1);
if (newController is InputMouse) if ((newController is InputMouse) && (lastController is not InputMouse))
{ {
Debug.Log("Mouse used, selecting keyboard instead"); Debug.Log("Mouse used, selecting keyboard instead");
nextController = controllers[0]; nextController = controllers[0];
} }
Debug.Log("Assigning controller: " + newController.GetDeviceName()); Debug.Log("Assigning controller: " + newController.GetDeviceName());
var lastController = PlayerInput.GetInputController(1);
if (lastController != nextController) if (lastController != nextController)
{ {
if (nextController == null) if (nextController == null)