diff --git a/Assets/Resources/Games/spaceSoccer.prefab b/Assets/Resources/Games/spaceSoccer.prefab
index 6c44695a8..5f2599111 100644
--- a/Assets/Resources/Games/spaceSoccer.prefab
+++ b/Assets/Resources/Games/spaceSoccer.prefab
@@ -453,7 +453,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3584310800769874311}
- m_RootOrder: 4
+ m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7463739741518075090
SpriteRenderer:
@@ -904,17 +904,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 848efddf5f5eaa94eacf8601e36f81bf, type: 3}
m_Name:
m_EditorClassIdentifier:
- inList: 0
- state:
- gameObject: {fileID: 0}
- early: 0
- perfect: 0
- late: 0
- createBeat: 0
- eligibleHitsList: []
- aceTimes: 0
- isEligible: 0
- triggersAutoplay: 1
canKick: 0
canHighKick: 0
kickLeft: 0
@@ -1211,17 +1200,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 848efddf5f5eaa94eacf8601e36f81bf, type: 3}
m_Name:
m_EditorClassIdentifier:
- inList: 0
- state:
- gameObject: {fileID: 0}
- early: 0
- perfect: 0
- late: 0
- createBeat: 0
- eligibleHitsList: []
- aceTimes: 0
- isEligible: 0
- triggersAutoplay: 1
canKick: 0
canHighKick: 0
kickLeft: 0
@@ -1313,7 +1291,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3584310800769874311}
- m_RootOrder: 3
+ m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &8255833927689275432
MeshFilter:
@@ -1426,7 +1404,6 @@ Transform:
m_Children:
- {fileID: 2191273313861422334}
- {fileID: 1133941631262721853}
- - {fileID: 2021733110626493915}
- {fileID: 3997811236443330485}
- {fileID: 45563227638450708}
- {fileID: 32085857618286105}
@@ -1463,7 +1440,7 @@ MonoBehaviour:
- tag:
pos: {x: 1.5724581, y: -1.3358305, z: 0}
target: {fileID: 0}
- height: 4.1
+ height: 5
duration: 1.4
useLastRealPos: 1
values: []
@@ -1479,14 +1456,14 @@ MonoBehaviour:
anchor: {fileID: 0}
positions:
- tag:
- pos: {x: -3.900663, y: -6.300388, z: 0}
+ pos: {x: -6, y: -6, z: 0}
target: {fileID: 0}
height: 10
duration: 2.35
useLastRealPos: 0
values: []
- tag:
- pos: {x: 2.5349154, y: -6.116786, z: 0}
+ pos: {x: -1, y: -6, z: 0}
target: {fileID: 0}
height: 0
duration: 0
@@ -1504,7 +1481,7 @@ MonoBehaviour:
useLastRealPos: 1
values: []
- tag:
- pos: {x: -0.44, y: -5.756623, z: 0}
+ pos: {x: -3.5, y: -6, z: 0}
target: {fileID: 0}
height: 0
duration: 0
@@ -1782,104 +1759,6 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
---- !u!1 &4365805729759623217
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2021733110626493915}
- - component: {fileID: 9095461183267835975}
- - component: {fileID: 8422221005665590405}
- m_Layer: 0
- m_Name: kickFX
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 0
---- !u!4 &2021733110626493915
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4365805729759623217}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 1.67, y: -1.05, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 3584310800769874311}
- m_RootOrder: 2
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &9095461183267835975
-SpriteRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4365805729759623217}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- m_StaticShadowCaster: 0
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 0
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 0
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 9
- m_Sprite: {fileID: -6047660829741247071, guid: ed47c3fa4e916ff478c0f1b6fb057aa4, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 0.48235294}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 1, y: 1}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_MaskInteraction: 0
- m_SpriteSortPoint: 0
---- !u!114 &8422221005665590405
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4365805729759623217}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 54588eb7ee0680643aeaf61dcf609903, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- time: 0.08
--- !u!1 &4832865564766322567
GameObject:
m_ObjectHideFlags: 0
@@ -2665,7 +2544,6 @@ MonoBehaviour:
kicker: {fileID: 0}
holder: {fileID: 7976131226454805035}
spriteHolder: {fileID: 6132156590540490080}
- kickFX: {fileID: 4365805729759623217}
startBeat: 0
state: 0
nextAnimBeat: 0
@@ -2786,7 +2664,7 @@ Transform:
m_Children:
- {fileID: 2966367777699113700}
m_Father: {fileID: 3584310800769874311}
- m_RootOrder: 5
+ m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &8605359988194706959
GameObject:
diff --git a/Assets/Resources/Sfx/games/spaceSoccer/down.ogg b/Assets/Resources/Sfx/games/spaceSoccer/down.ogg
new file mode 100644
index 000000000..2ff54c0d3
Binary files /dev/null and b/Assets/Resources/Sfx/games/spaceSoccer/down.ogg differ
diff --git a/Assets/Resources/Sfx/games/spaceSoccer/down.ogg.meta b/Assets/Resources/Sfx/games/spaceSoccer/down.ogg.meta
new file mode 100644
index 000000000..0211ecec6
--- /dev/null
+++ b/Assets/Resources/Sfx/games/spaceSoccer/down.ogg.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: 63b8cc7b1c3460e4eb3f12bf288045f9
+AudioImporter:
+ externalObjects: {}
+ serializedVersion: 6
+ defaultSettings:
+ loadType: 0
+ sampleRateSetting: 0
+ sampleRateOverride: 44100
+ compressionFormat: 1
+ quality: 1
+ conversionMode: 0
+ platformSettingOverrides: {}
+ forceToMono: 0
+ normalize: 1
+ preloadAudioData: 1
+ loadInBackground: 0
+ ambisonic: 0
+ 3D: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Games/SpaceSoccer/Ball.cs b/Assets/Scripts/Games/SpaceSoccer/Ball.cs
index 68f553a94..237f5be6c 100644
--- a/Assets/Scripts/Games/SpaceSoccer/Ball.cs
+++ b/Assets/Scripts/Games/SpaceSoccer/Ball.cs
@@ -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;
diff --git a/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs b/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs
index da0ff431e..c83719271 100644
--- a/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs
+++ b/Assets/Scripts/Games/SpaceSoccer/SpaceSoccer.cs
@@ -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()
{
- 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() {
- 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),