QoL tap mode thing

Basically if you hold down the button for long enough, kasuke will play the "ready" animation which is uninterruptable until you let go
This commit is contained in:
ThePurpleAnon 2024-02-01 00:17:16 -06:00
parent c8997a07ac
commit d43263307a

View file

@ -174,12 +174,18 @@ namespace HeavenStudio.Games
bool hitDonaiyanen = false; bool hitDonaiyanen = false;
double lastWhiffBeat = double.MinValue; double lastWhiffBeat = double.MinValue;
double lastTappedBeat = double.MinValue;
bool canDodge = true; bool canDodge = true;
float randomBubbleBoth = 0.0f; float randomBubbleBoth = 0.0f;
Sound crowdSound; Sound crowdSound;
bool isHolding = false;
bool isPlayingReadyAnimationForTapMode = false;
public enum WhoBops public enum WhoBops
@ -315,7 +321,7 @@ namespace HeavenStudio.Games
public void BopAnimationRaven() public void BopAnimationRaven()
{ {
if (ravenCanBop && ravenCanBopTemp) if (ravenCanBop && ravenCanBopTemp && !isHolding)
RavenAnim.DoScaledAnimationAsync("Bop", 0.5f); RavenAnim.DoScaledAnimationAsync("Bop", 0.5f);
} }
@ -683,6 +689,7 @@ namespace HeavenStudio.Games
if (isPreparingForBoing) if (isPreparingForBoing)
{ {
RavenAnim.DoScaledAnimationAsync("Ready", 0.5f); RavenAnim.DoScaledAnimationAsync("Ready", 0.5f);
isPlayingReadyAnimationForTapMode = true;
ravenCanBop = false; ravenCanBop = false;
} }
else else
@ -703,11 +710,13 @@ namespace HeavenStudio.Games
ravenCanBopTemp = false; ravenCanBopTemp = false;
} }
} }
if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch && PlayerInput.GetIsAction(InputAction_BasicRelease) && isPreparingForBoing) if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch && PlayerInput.GetIsAction(InputAction_BasicRelease) && isPreparingForBoing)
{ {
RavenAnim.DoScaledAnimationAsync("Bop", 0.5f); RavenAnim.DoScaledAnimationAsync("Bop", 0.5f);
ravenCanBop = true; ravenCanBop = true;
} }
if (PlayerInput.GetIsAction(InputAction_Alt) && !IsExpectingInputNow(InputAction_Alt)) if (PlayerInput.GetIsAction(InputAction_Alt) && !IsExpectingInputNow(InputAction_Alt))
{ {
SoundByte.PlayOneShotGame("manzai/miss2"); SoundByte.PlayOneShotGame("manzai/miss2");
@ -720,6 +729,7 @@ namespace HeavenStudio.Games
vultureCanBopTemp = false; vultureCanBopTemp = false;
} }
} }
if (PlayerInput.GetIsAction(InputAction_BasicPress) && IsExpectingInputNow(InputAction_Alt) && PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch) if (PlayerInput.GetIsAction(InputAction_BasicPress) && IsExpectingInputNow(InputAction_Alt) && PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch)
{ {
crowdSound = SoundByte.PlayOneShotGame("manzai/missWrongButton"); crowdSound = SoundByte.PlayOneShotGame("manzai/missWrongButton");
@ -728,11 +738,35 @@ namespace HeavenStudio.Games
VultureAnim.DoScaledAnimationAsync("Bop", 0.5f); VultureAnim.DoScaledAnimationAsync("Bop", 0.5f);
missedWithWrongButton = true; missedWithWrongButton = true;
} }
if ((lastWhiffBeat + 1) < conductor.songPositionInBeatsAsDouble) if ((lastWhiffBeat + 1) < conductor.songPositionInBeatsAsDouble)
{ {
ravenCanBopTemp = true; ravenCanBopTemp = true;
vultureCanBopTemp = true; vultureCanBopTemp = true;
} }
if (((lastTappedBeat + 1) < conductor.songPositionInBeatsAsDouble && !isPlayingReadyAnimationForTapMode && isHolding))
{
RavenAnim.DoScaledAnimationAsync("Ready", 0.5f);
isPlayingReadyAnimationForTapMode = true;
}
if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch && PlayerInput.GetIsAction(InputAction_BasicPress))
{
isHolding = true;
lastTappedBeat = conductor.songPositionInBeatsAsDouble;
}
if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch && (PlayerInput.GetIsAction(InputAction_BasicRelease) || PlayerInput.GetIsAction(InputAction_Alt)))
{
if(isPlayingReadyAnimationForTapMode && PlayerInput.GetIsAction(InputAction_BasicRelease))
{
RavenAnim.DoScaledAnimationAsync("Bop", 0.5f);
}
isHolding = false;
isPlayingReadyAnimationForTapMode = false;
}
if (canDodge == false) if (canDodge == false)
{ {
vultureCanBopTemp = true; vultureCanBopTemp = true;