inputs
This commit is contained in:
parent
15d4b13251
commit
7d9e4f10e5
|
|
@ -1043,7 +1043,7 @@ MonoBehaviour:
|
||||||
elephantStart: 0.004
|
elephantStart: 0.004
|
||||||
elephantHangCameraMoveLength: 2
|
elephantHangCameraMoveLength: 2
|
||||||
elephantHangMaxDip: 1
|
elephantHangMaxDip: 1
|
||||||
elephantReleaseMoveLength: 6
|
elephantReleaseMoveLength: 8.304
|
||||||
giraffeRef: {fileID: 5248028064811562821, guid: 72e69b6337a6bc04f86ffcf5bcedab92, type: 3}
|
giraffeRef: {fileID: 5248028064811562821, guid: 72e69b6337a6bc04f86ffcf5bcedab92, type: 3}
|
||||||
giraffeDistance: 0
|
giraffeDistance: 0
|
||||||
giraffeStart: 0
|
giraffeStart: 0
|
||||||
|
|
|
||||||
|
|
@ -23,11 +23,13 @@ namespace HeavenStudio.Games.Scripts_AnimalAcrobat
|
||||||
private double startBeat = double.MinValue;
|
private double startBeat = double.MinValue;
|
||||||
private float halfAngle;
|
private float halfAngle;
|
||||||
private EasingFunction.Function func;
|
private EasingFunction.Function func;
|
||||||
|
private AnimalAcrobat game;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
halfAngle = fullRotateAngle / 2;
|
halfAngle = fullRotateAngle / 2;
|
||||||
func = EasingFunction.GetEasingFunction(EasingFunction.Ease.EaseInOutQuad);
|
func = EasingFunction.GetEasingFunction(EasingFunction.Ease.EaseInOutQuad);
|
||||||
|
game = AnimalAcrobat.instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init(double beat, double gameSwitchBeat)
|
public void Init(double beat, double gameSwitchBeat)
|
||||||
|
|
@ -53,6 +55,7 @@ namespace HeavenStudio.Games.Scripts_AnimalAcrobat
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
game.ScheduleInput(beat - 1, 1, InputType.STANDARD_DOWN, JustHold, Empty, Empty);
|
||||||
Update();
|
Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -70,17 +73,40 @@ namespace HeavenStudio.Games.Scripts_AnimalAcrobat
|
||||||
float normalizedSwingBeat = cond.GetPositionFromBeat(startBeat, holdLength);
|
float normalizedSwingBeat = cond.GetPositionFromBeat(startBeat, holdLength);
|
||||||
float negativeOffset = (normalizedSwingBeat < 0) ? -1 : 0;
|
float negativeOffset = (normalizedSwingBeat < 0) ? -1 : 0;
|
||||||
float normalizedAdjusted = Mathf.Abs(normalizedSwingBeat % 1);
|
float normalizedAdjusted = Mathf.Abs(normalizedSwingBeat % 1);
|
||||||
if ((Mathf.Floor(normalizedSwingBeat) + negativeOffset) % 2 == 0)
|
bool goingRight = (Mathf.Floor(normalizedSwingBeat) + negativeOffset) % 2 == 0;
|
||||||
|
float dirMult = goingRight ? 1 : -1;
|
||||||
|
rotatePivot.localEulerAngles = new Vector3(0, 0, func(-halfAngle * dirMult, halfAngle * dirMult, normalizedAdjusted));
|
||||||
|
if (type == ObstacleType.Monkeys) anim.DoNormalizedAnimation("WhiteMonkeysSwing", normalizedAdjusted);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void JustHold(PlayerActionEvent caller, float state)
|
||||||
|
{
|
||||||
|
SoundByte.PlayOneShotGame("animalAcrobat/grab");
|
||||||
|
game.ScheduleInput(startBeat, holdLength, InputType.STANDARD_UP, JustRelease, Empty, Empty);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void JustRelease(PlayerActionEvent caller, float state)
|
||||||
|
{
|
||||||
|
double beat = caller.startBeat + caller.timer;
|
||||||
|
switch (type)
|
||||||
{
|
{
|
||||||
rotatePivot.localEulerAngles = new Vector3(0, 0, func(-halfAngle, halfAngle, normalizedAdjusted));
|
case ObstacleType.Giraffe:
|
||||||
if (type == ObstacleType.Monkeys) anim.DoNormalizedAnimation("WhiteMonkeysSwing", normalizedAdjusted);
|
SoundByte.PlayOneShotGame("animalAcrobat/giraffeRelease");
|
||||||
}
|
SoundByte.PlayOneShotGame("animalAcrobat/giraffeReleaseLoop", beat, 1, 1, true).SetLoopParams(beat + 4, 0);
|
||||||
else
|
MultiSound.Play(new MultiSound.Sound[]
|
||||||
{
|
{
|
||||||
rotatePivot.localEulerAngles = new Vector3(0, 0, func(halfAngle, -halfAngle, normalizedAdjusted));
|
new MultiSound.Sound("animalAcrobat/flip", beat + 3),
|
||||||
if (type == ObstacleType.Monkeys) anim.DoNormalizedAnimation("WhiteMonkeysSwing", 1 - normalizedAdjusted);
|
new MultiSound.Sound("cymbal", beat + 4)
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
SoundByte.PlayOneShotGame("animalAcrobat/release");
|
||||||
|
SoundByte.PlayOneShotGame("animalAcrobat/flip", beat + 1);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Empty(PlayerActionEvent caller) { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -119,6 +119,12 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void StartJump(double beat)
|
||||||
|
{
|
||||||
|
SoundByte.PlayOneShotGame("animalAcrobat/beginningLeap", beat);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Camera
|
||||||
private void CameraMoveUpdate(Conductor cond)
|
private void CameraMoveUpdate(Conductor cond)
|
||||||
{
|
{
|
||||||
if (movesIndex >= moves.Count) return;
|
if (movesIndex >= moves.Count) return;
|
||||||
|
|
@ -200,6 +206,7 @@ namespace HeavenStudio.Games
|
||||||
GameCamera.additionalPosition = new Vector3(newPosX, newPosY, 0);
|
GameCamera.additionalPosition = new Vector3(newPosX, newPosY, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Spawn Animals
|
#region Spawn Animals
|
||||||
public override void OnPlay(double beat)
|
public override void OnPlay(double beat)
|
||||||
|
|
@ -218,6 +225,7 @@ namespace HeavenStudio.Games
|
||||||
if (animalEvents.Count == 0) return;
|
if (animalEvents.Count == 0) return;
|
||||||
animalEvents.Sort((x, y) => x.beat.CompareTo(y.beat));
|
animalEvents.Sort((x, y) => x.beat.CompareTo(y.beat));
|
||||||
double nextBeat = animalEvents[0].beat;
|
double nextBeat = animalEvents[0].beat;
|
||||||
|
StartJump(nextBeat - 1);
|
||||||
float startPos = animalEvents[0].datamodel switch
|
float startPos = animalEvents[0].datamodel switch
|
||||||
{
|
{
|
||||||
"animalAcrobat/elephant" => elephantStart - elephantDistance,
|
"animalAcrobat/elephant" => elephantStart - elephantDistance,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue