mirror of
https://github.com/RHeavenStudio/HeavenStudio.git
synced 2025-06-12 11:57:40 +02:00
First PlayerActionEvent Pass (#202)
* update blue bear to use PlayerActionEvent * update built to scale DS to use PlayerActionEvent * update clappy trio to use PlayerActionEvent * update crop stomp to use PlayerActionEvent * update drumming practice to use PlayerActionEvent * update fork lifter to use PlayerActionEvent * update minigame icons * update wizard waltz' icon
This commit is contained in:
@ -72,9 +72,13 @@ namespace HeavenStudio.Games
|
||||
|
||||
public static ClappyTrio instance { get; set; }
|
||||
|
||||
MultiSound clapSounds = null;
|
||||
BeatAction clapAction = null;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
instance = this;
|
||||
clapSounds = null;
|
||||
InitLions();
|
||||
}
|
||||
public override void OnGameSwitch(float beat)
|
||||
@ -108,52 +112,16 @@ namespace HeavenStudio.Games
|
||||
ClappyTrioPlayer = lion.AddComponent<ClappyTrioPlayer>();
|
||||
}
|
||||
|
||||
if (clapSounds != null)
|
||||
clapSounds.Delete();
|
||||
|
||||
if (clapAction != null)
|
||||
clapAction.Delete();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (isClapping)
|
||||
{
|
||||
float songPosBeat = Conductor.instance.songPositionInBeats;
|
||||
|
||||
for (int i = 0; i < Lion.Count; i++)
|
||||
{
|
||||
float length = currentClappingLength * (i);
|
||||
float lengthplusone = (currentClappingLength * (i + 1));
|
||||
|
||||
// i spent like 25 minutes trying to figure out what was wrong with this when i forgot to subtract the currentClapLength :(
|
||||
if (i == Lion.Count - 1)
|
||||
{
|
||||
length = 0;
|
||||
}
|
||||
|
||||
if (songPosBeat > lastClapStart + length && songPosBeat < lastClapStart + lengthplusone && clapIndex == i)
|
||||
{
|
||||
if (i == Lion.Count - 1)
|
||||
{
|
||||
ClappyTrioPlayer.SetClapAvailability(lastClapStart + (currentClappingLength * (i - 1)), currentClappingLength);
|
||||
|
||||
clapIndex = 0;
|
||||
isClapping = false;
|
||||
currentClappingLength = 0;
|
||||
ClappyTrioPlayer.clapStarted = false;
|
||||
} else
|
||||
{
|
||||
SetFace(i, 4);
|
||||
Lion[i].GetComponent<Animator>().Play("Clap", 0, 0);
|
||||
|
||||
// lazy fix rn
|
||||
if (i > 0)
|
||||
Jukebox.PlayOneShotGame("clappyTrio/middleClap");
|
||||
else
|
||||
Jukebox.PlayOneShotGame("clappyTrio/leftClap");
|
||||
|
||||
clapIndex++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Clap(float beat, float length)
|
||||
@ -163,8 +131,21 @@ namespace HeavenStudio.Games
|
||||
|
||||
playerHitLast = false;
|
||||
isClapping = true;
|
||||
lastClapStart = beat;
|
||||
currentClappingLength = length;
|
||||
|
||||
// makes the other lions clap
|
||||
List<MultiSound.Sound> sounds = new List<MultiSound.Sound>();
|
||||
List<BeatAction.Action> actions = new List<BeatAction.Action>();
|
||||
for (int i = 0; i < Lion.Count - 1; i++)
|
||||
{
|
||||
int idx = i;
|
||||
sounds.Add(new MultiSound.Sound((i > 0) ? "clappyTrio/middleClap" : "clappyTrio/leftClap", beat + (length * i)));
|
||||
actions.Add(new BeatAction.Action(beat + (length * i), delegate { SetFace(idx, 4); Lion[idx].GetComponent<Animator>().Play("Clap", 0, 0);}));
|
||||
}
|
||||
clapSounds = MultiSound.Play(sounds.ToArray());
|
||||
clapAction = BeatAction.New(this.gameObject, actions);
|
||||
|
||||
// prepare player input
|
||||
ClappyTrioPlayer.QueueClap(beat, length * (Lion.Count - 1));
|
||||
}
|
||||
|
||||
public void Prepare(int type)
|
||||
|
Reference in New Issue
Block a user