Down sound added (#422)

This commit is contained in:
Rapandrasmus
2023-05-18 22:12:06 +02:00
committed by GitHub
parent 22b044c9eb
commit 83a12ebf9a
5 changed files with 52 additions and 174 deletions

View File

@ -16,7 +16,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
[HideInInspector] public Kicker kicker;
[SerializeField] private GameObject holder;
[SerializeField] private GameObject spriteHolder;
[SerializeField] private GameObject kickFX;
[Space(10)]
//[SerializeField] private BezierCurve3D dispenseCurve;
//[SerializeField] private BezierCurve3D kickCurve;
@ -148,8 +147,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
//kickCurve.KeyPoints[0].transform.position = holder.transform.position;
//kickPath.positions[0].pos = holder.transform.position;
UpdateLastRealPos();
HitFX();
}
public void HighKick()
@ -161,8 +158,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
//highKickCurve.KeyPoints[0].transform.position = holder.transform.position;
//highKickPath.positions[0].pos = holder.transform.position;
UpdateLastRealPos();
HitFX();
}
public void Toe()
@ -185,9 +180,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
//toeCurve.KeyPoints[1].transform.localPosition = new Vector3(6.49f, 0);
toePath.positions[1].pos = new Vector3(6.49f, 0);
}
HitFX();
}
private void Update()
@ -206,10 +198,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
//dispenseCurve.KeyPoints[0].transform.position = new Vector3(kicker.transform.GetChild(0).position.x - 6f, kicker.transform.GetChild(0).position.y - 6f);
//dispenseCurve.KeyPoints[1].transform.position = new Vector3(kicker.transform.GetChild(0).position.x - 1f, kicker.transform.GetChild(0).position.y - 6f);
dispensePath.positions[0].pos = new Vector3(-6f, -6f);
dispensePath.positions[1].pos = new Vector3(-1f, -6f);
//holder.transform.localPosition = dispenseCurve.GetPoint(normalizedBeatAnim);
holder.transform.localPosition = GetPathPositionFromBeat(dispensePath, Mathf.Max(beat, startBeat), out float height, startBeat);
spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(0f, -1440f, normalizedBeatAnim));
@ -219,7 +207,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
{
float normalizedBeatAnim = Conductor.instance.GetPositionFromBeat(startBeat, 1.5f);
kickPath.positions[0].pos = lastRealPos;
if (!lastKickLeft)
{
//kickCurve.KeyPoints[1].transform.position = new Vector3(kicker.transform.GetChild(0).position.x + 0.5f, kicker.transform.GetChild(0).position.y - 6f);
@ -244,9 +231,6 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
//highKickCurve.KeyPoints[1].transform.position = new Vector3(kicker.transform.GetChild(0).position.x - 3.5f, kicker.transform.GetChild(0).position.y - 6f);
highKickPath.positions[0].pos = lastRealPos;
highKickPath.positions[1].pos = new Vector3(-3.5f, -6f);
//holder.transform.localPosition = highKickCurve.GetPoint(normalizedBeatAnim);
holder.transform.localPosition = GetPathPositionFromBeat(highKickPath, Mathf.Max(beat, startBeat), out float height, startBeat);
spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(lastSpriteRot, lastSpriteRot + 360f, normalizedBeatAnim));
@ -254,11 +238,9 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
}
case State.Toe:
{
float normalizedBeatAnim = Conductor.instance.GetPositionFromBeat(startBeat, GetAnimLength(State.Toe) + 0.35f);
//float normalizedBeatAnim = Conductor.instance.GetPositionFromBeat(startBeat, GetAnimLength(State.Toe) + 0.35f);
toePath.positions[0].duration = GetAnimLength(State.Toe) + 0.35f;
toePath.positions[0].pos = lastRealPos;
if (!lastKickLeft)
{
//toeCurve.KeyPoints[1].transform.position = new Vector3(kicker.transform.GetChild(0).position.x + 0.5f, kicker.transform.GetChild(0).position.y - 6f);
@ -272,20 +254,12 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
//holder.transform.localPosition = toeCurve.GetPoint(normalizedBeatAnim);
holder.transform.localPosition = GetPathPositionFromBeat(toePath, Mathf.Max(beat, startBeat), out float height, startBeat);
spriteHolder.transform.eulerAngles = new Vector3(0, 0, Mathf.Lerp(lastSpriteRot, -860f, normalizedBeatAnim));
break;
}
}
holder.transform.position = new Vector3(holder.transform.position.x, holder.transform.position.y, kicker.transform.GetChild(0).position.z);
}
private void HitFX()
{
GameObject kickfx = Instantiate(kickFX.gameObject, SpaceSoccer.instance.transform);
kickfx.SetActive(true);
kickfx.transform.position = holder.transform.position;
}
private void SetState(State newState)
{
state = newState;

View File

@ -14,13 +14,17 @@ namespace HeavenStudio.Games.Loaders
{
new GameAction("ball dispense", "Ball Dispense")
{
function = delegate { SpaceSoccer.instance.Dispense(eventCaller.currentEntity.beat, !eventCaller.currentEntity["toggle"]); },
function = delegate { SpaceSoccer.instance.Dispense(eventCaller.currentEntity.beat, !eventCaller.currentEntity["toggle"], false, eventCaller.currentEntity["down"]); },
defaultLength = 2f,
parameters = new List<Param>()
{
new Param("toggle", false, "Disable Sound", "Disables the dispense sound")
new Param("toggle", false, "Disable Sound", "Disables the dispense sound"),
new Param("down", false, "Down Sound", "Will the Down sound be played?")
},
inactiveFunction = delegate { if (!eventCaller.currentEntity["toggle"]) { SpaceSoccer.DispenseSound(eventCaller.currentEntity.beat); } }
inactiveFunction = delegate
{
if (!eventCaller.currentEntity["toggle"]) { SpaceSoccer.DispenseSound(eventCaller.currentEntity.beat, eventCaller.currentEntity["down"]);}
}
},
new GameAction("high kick-toe!", "High Kick-Toe!")
{
@ -91,11 +95,11 @@ namespace HeavenStudio.Games.Loaders
},
new GameAction("scroll", "Scrolling Background")
{
function = delegate { var e = eventCaller.currentEntity; SpaceSoccer.instance.UpdateScrollSpeed(e.beat, e["x"], e["y"]); },
function = delegate { var e = eventCaller.currentEntity; SpaceSoccer.instance.UpdateScrollSpeed(e["x"], e["y"]); },
defaultLength = 1f,
parameters = new List<Param>() {
new Param("x", new EntityTypes.Float(-5f, 5f, 0.045f), "Horizontal", "How many horizontal loops in 1 beat?"),
new Param("y", new EntityTypes.Float(-5f, 5f, 0.16f), "Vertical", "How many vertical loops in 1 beat?"),
new Param("x", new EntityTypes.Float(-5f, 5f, 0.09f), "Horizontal", "How fast does the background move horizontally?"),
new Param("y", new EntityTypes.Float(-5f, 5f, 0.32f), "Vertical", "How fast does the background move vertically?"),
}
},
new GameAction("stopBall", "Stop Ball")
@ -195,8 +199,8 @@ namespace HeavenStudio.Games
float scrollBeat;
float scrollOffsetX;
float scrollOffsetY;
float currentScrollLengthX = 0.045f;
float currentScrollLengthY = 0.16f;
float currentScrollLengthX = 0.09f;
float currentScrollLengthY = 0.32f;
Tween bgColorTween;
Tween dotColorTween;
#region Space Kicker Position Easing
@ -234,8 +238,8 @@ namespace HeavenStudio.Games
private void Update()
{
var cond = Conductor.instance;
float normalizedX = (cond.songPositionInBeats - scrollBeat) * currentScrollLengthX;
float normalizedY = (cond.songPositionInBeats - scrollBeat) * currentScrollLengthY;
float normalizedX = (Time.realtimeSinceStartup - scrollBeat) * currentScrollLengthX;
float normalizedY = (Time.realtimeSinceStartup - scrollBeat) * currentScrollLengthY;
backgroundSprite.NormalizedX = -scrollOffsetX - normalizedX;
backgroundSprite.NormalizedY = -scrollOffsetY - normalizedY;
@ -329,14 +333,13 @@ namespace HeavenStudio.Games
return default(SuperCurveObject.Path);
}
public void UpdateScrollSpeed(float beat, float scrollSpeedX, float scrollSpeedY)
public void UpdateScrollSpeed(float scrollSpeedX, float scrollSpeedY)
{
var cond = Conductor.instance;
scrollOffsetX = (cond.songPositionInBeats - scrollBeat) * currentScrollLengthX;
scrollOffsetY = (cond.songPositionInBeats - scrollBeat) * currentScrollLengthY;
scrollOffsetX = (Time.realtimeSinceStartup - scrollBeat) * currentScrollLengthX;
scrollOffsetY = (Time.realtimeSinceStartup - scrollBeat) * currentScrollLengthY;
currentScrollLengthX = scrollSpeedX;
currentScrollLengthY = scrollSpeedY;
scrollBeat = beat;
scrollBeat = Time.realtimeSinceStartup;
}
public void EaseSpaceKickersPositions(float beat, float length, int ease, float xDistance, float yDistance, float zDistance)
@ -439,7 +442,7 @@ namespace HeavenStudio.Games
if (ballDispensed) Dispense(lastDispensedBeat, false, true);
}
public void Dispense(float beat, bool playSound = true, bool ignorePlayer = false)
public void Dispense(float beat, bool playSound = true, bool ignorePlayer = false, bool playDown = false)
{
if (!ballDispensed) lastDispensedBeat = beat;
ballDispensed = true;
@ -456,7 +459,7 @@ namespace HeavenStudio.Games
ball_.Init(kicker, beat);
if (kicker.player && playSound)
{
DispenseSound(beat);
DispenseSound(beat, playDown);
}
kicker.DispenseBall(beat);
@ -464,8 +467,9 @@ namespace HeavenStudio.Games
}
}
public static void DispenseSound(float beat)
public static void DispenseSound(float beat, bool playDown)
{
if (playDown) Jukebox.PlayOneShot("games/spaceSoccer/down", beat);
MultiSound.Play(new MultiSound.Sound[]
{
new MultiSound.Sound("spaceSoccer/dispenseNoise", beat),