More comments, new method to detect expected inputs

IsExpectingInputNow() detects wether the player is expected to input something at the closest InputEvent
This commit is contained in:
Pengu123 2022-05-04 20:37:52 +02:00
parent 5cdd044154
commit 0b79779b9b
2 changed files with 21 additions and 1 deletions

View file

@ -68,6 +68,7 @@ namespace HeavenStudio.Games
return evt; return evt;
} }
//Clean up method used whenever a PlayerActionEvent has finished
public void RemoveScheduledInput(PlayerActionEvent evt) public void RemoveScheduledInput(PlayerActionEvent evt)
{ {
scheduledInputs.Remove(evt); scheduledInputs.Remove(evt);
@ -98,6 +99,19 @@ namespace HeavenStudio.Games
return closest; return closest;
} }
//Hasn't been tested yet. *Should* work.
//Can be used to detect if the user is expected to input something now or not
//Useful for strict call and responses games like Tambourine
public bool IsExpectingInputNow()
{
PlayerActionEvent input = GetClosestScheduledInput();
if (input == null) return false;
return input.IsExpectingInputNow();
}
// hopefully these will fix the lowbpm problem // hopefully these will fix the lowbpm problem
public static float EarlyTime() public static float EarlyTime()
{ {

View file

@ -86,7 +86,13 @@ namespace HeavenStudio.Games
Blank(); Blank();
} }
} }
} }
public bool IsExpectingInputNow()
{
float normalizedBeat = Conductor.instance.GetPositionFromBeat(startBeat, timer);
return normalizedBeat > Minigame.EarlyTime() && normalizedBeat < Minigame.EndTime();
}
public bool IsCorrectInput() public bool IsCorrectInput()
{ {