mirror of
https://github.com/RHeavenStudio/HeavenStudio.git
synced 2025-06-12 13:27:41 +02:00
Down sound added (#422)
This commit is contained in:
@ -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;
|
||||
|
@ -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),
|
||||
|
Reference in New Issue
Block a user