Cadets' heads and bodies separated, "keep-up" no more

you have no use anymore keep-up
This commit is contained in:
KrispyDotlessI
2022-09-06 14:41:13 +08:00
parent 12fe44ad9a
commit e3a4443d91
17 changed files with 1345 additions and 1134 deletions

View File

@ -1,14 +1,15 @@
//notes:
// BEFORE NEW PROPS
//1. minenice will also use this to test out randomly named parameters so coding has to rest until the new props update [DONE]
//2. see fan club for separate prefabs (cadets) [DONE]
//3. temporarily take sounds from rhre, wait until someone records the full code, including misses, or record it myself (unlikely) [IN PROGRESS]
// - minenice will also use this to test out randomly named parameters so coding has to rest until the new props update [DONE]
// - see fan club for separate prefabs (cadets) [DONE]
// - temporarily take sounds from rhre, wait until someone records the full code, including misses, or record it myself (unlikely) [IN PROGRESS]
// AFTER NEW PROPS
//4. see space soccer, mr upbeat, tunnel for keep-the-beat codes
//5. figure how to do custom bg changes when the upscaled textures are finished (see karate man, launch party once it releases)
//6. will use a textbox without going through the visual options but i wonder how..?? (see first contact if ever textboxes are implemented in said minigame)
// - testmod marching orders using speed
// - see space soccer, mr upbeat, tunnel for keep-the-beat codes
// - figure how to do custom bg changes when the upscaled textures are finished (see karate man, launch party once it releases)
// - will use a textbox without going through the visual options but i wonder how..?? (see first contact if ever textboxes are implemented in said minigame)
// AFTER FEATURE COMPLETION
//7. delete all notes once the minigame is considered feature-complete
// - delete all notes once the minigame is considered feature-complete
using HeavenStudio.Util;
using System;
@ -30,7 +31,12 @@ namespace HeavenStudio.Games.Loaders
resizable = true
},
//new GameAction("marching", delegate { MarchingOrders.instance.CadetsMarch(eventCaller.currentEntity.beat); }, 4f, true),
new GameAction("marching", "Cadets March")
{
function = delegate { var e = eventCaller.currentEntity; MarchingOrders.instance.CadetsMarch(e.beat, e.length); },
defaultLength = 4f,
resizable = true
},
new GameAction("attention", "Attention...")
{
@ -49,7 +55,8 @@ namespace HeavenStudio.Games.Loaders
new GameAction("halt", "Halt!")
{
function = delegate { var e = eventCaller.currentEntity; MarchingOrders.instance.SargeHalt(e.beat); },
defaultLength = 2f
defaultLength = 2f,
inactiveFunction = delegate { var e = eventCaller.currentEntity; MarchingOrders.HaltSound(e.beat);}
},
//new GameAction("face turn", delegate {}, 4f, false, parameters: new List<Param>()
@ -79,6 +86,7 @@ namespace HeavenStudio.Games
public GameEvent bop = new GameEvent();
public GameEvent noBop = new GameEvent();
public GameEvent marching = new GameEvent();
public static MarchingOrders instance;
@ -115,6 +123,17 @@ namespace HeavenStudio.Games
}
}
if (cond.ReportBeat(ref marching.lastReportedBeat, bop.startBeat % 1))
{
if (cond.songPositionInBeats >= marching.startBeat && cond.songPositionInBeats < marching.startBeat + marching.length)
{
Jukebox.PlayOneShotGame("marchingOrders/step1");
Cadet1.DoScaledAnimationAsync("MarchL", 0.5f);
Cadet2.DoScaledAnimationAsync("MarchL", 0.5f);
Cadet3.DoScaledAnimationAsync("MarchL", 0.5f);
}
}
if (PlayerInput.Pressed() && !IsExpectingInputNow())
{
Jukebox.PlayOneShot("miss");
@ -128,9 +147,10 @@ namespace HeavenStudio.Games
bop.startBeat = beat;
}
public void CadetsMarch(float beat)
public void CadetsMarch(float beat, float length)
{
marching.length = length;
marching.startBeat = beat;
}
public void SargeAttention(float beat)
@ -169,11 +189,15 @@ namespace HeavenStudio.Games
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound("marchingOrders/halt1", beat),
new MultiSound.Sound("marchingOrders/halt2", beat + 1f),
new MultiSound.Sound("marchingOrders/step1", beat + 1f),
}, forcePlay:true);
BeatAction.New(Player, new List<BeatAction.Action>()
{
new BeatAction.Action(beat, delegate { Sarge.DoScaledAnimationAsync("Talk", 0.5f);}),
new BeatAction.Action(beat + 1f, delegate { Cadet1.DoScaledAnimationAsync("Halt", 0.5f);}),
new BeatAction.Action(beat + 1f, delegate { Cadet2.DoScaledAnimationAsync("Halt", 0.5f);}),
new BeatAction.Action(beat + 1f, delegate { Cadet3.DoScaledAnimationAsync("Halt", 0.5f);}),
});
}
@ -192,6 +216,14 @@ namespace HeavenStudio.Games
new MultiSound.Sound("marchingOrders/march1", beat),
new MultiSound.Sound("marchingOrders/march2", beat + 1f),
}, forcePlay:true);
}
public static void HaltSound(float beat)
{
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound("marchingOrders/halt1", beat),
new MultiSound.Sound("marchingOrders/halt2", beat + 1f),
}, forcePlay:true);
}
}
}

View File

@ -34,7 +34,8 @@ namespace HeavenStudio.Games.Loaders
new GameAction("keep-up", "")
{
defaultLength = 4f,
resizable = true
resizable = true,
hidden = true
},
});
}