diff --git a/Assets/Resources/Games/trickClass.prefab b/Assets/Resources/Games/trickClass.prefab index e90537067..5a7bd744e 100644 --- a/Assets/Resources/Games/trickClass.prefab +++ b/Assets/Resources/Games/trickClass.prefab @@ -2166,8 +2166,8 @@ MonoBehaviour: m_EditorClassIdentifier: curve: {fileID: 6309335202182677863} handleType: 0 - leftHandleLocalPosition: {x: -0.37190485, y: -1.4919753, z: 0} - rightHandleLocalPosition: {x: 0.37190485, y: 1.4919753, z: -0} + leftHandleLocalPosition: {x: -0.45885086, y: -1.7927861, z: 0.031735867} + rightHandleLocalPosition: {x: 0.45885086, y: 1.7927861, z: -0.031735867} --- !u!1 &8162409257639345853 GameObject: m_ObjectHideFlags: 0 @@ -2240,7 +2240,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8303722412302536607} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 4.779551, y: 6.4797254, z: 0} + m_LocalPosition: {x: 3.7576966, y: 6.2020583, z: 0.3722403} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 270213282485315182} @@ -2260,8 +2260,8 @@ MonoBehaviour: m_EditorClassIdentifier: curve: {fileID: 6309335202182677863} handleType: 0 - leftHandleLocalPosition: {x: 0.804543, y: 1.8257971, z: -0} - rightHandleLocalPosition: {x: -0.804543, y: -1.8257971, z: 0} + leftHandleLocalPosition: {x: 0.8479717, y: 1.2241788, z: -0.015987754} + rightHandleLocalPosition: {x: -0.8479717, y: -1.2241788, z: 0.015987754} --- !u!1 &8432671419974842299 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Games/TrickClass/MobTrickObj.cs b/Assets/Scripts/Games/TrickClass/MobTrickObj.cs index 201f740bc..92e5fb753 100644 --- a/Assets/Scripts/Games/TrickClass/MobTrickObj.cs +++ b/Assets/Scripts/Games/TrickClass/MobTrickObj.cs @@ -13,7 +13,7 @@ namespace HeavenStudio.Games.Scripts_TrickClass public bool flyType; public float startBeat; bool flying = true; - bool hit = false; + bool dodged = false; bool miss = false; float flyBeats; @@ -80,7 +80,7 @@ namespace HeavenStudio.Games.Scripts_TrickClass } } - if (!(hit || miss)) + if (!(dodged || miss)) { float normalizedBeat = cond.GetPositionFromMargin(startBeat + dodgeBeats, 1f); StateCheck(normalizedBeat); @@ -89,7 +89,7 @@ namespace HeavenStudio.Games.Scripts_TrickClass { if (state.perfect) { - hit = true; + dodged = true; MultiSound.Play(new MultiSound.Sound[] { new MultiSound.Sound("trickClass/ball_impact", startBeat + flyBeats, volume: 0.75f), }); @@ -108,7 +108,7 @@ namespace HeavenStudio.Games.Scripts_TrickClass break; default: curve = TrickClass.instance.ballMissCurve; - flyBeats = 1.5f; + flyBeats = 1.25f; break; } startBeat += dodgeBeats; @@ -120,7 +120,7 @@ namespace HeavenStudio.Games.Scripts_TrickClass public override void OnAce() { TrickClass.instance.PlayerDodge(); - hit = true; + dodged = true; MultiSound.Play(new MultiSound.Sound[] { new MultiSound.Sound("trickClass/ball_impact", startBeat + flyBeats, volume: 0.5f), }); diff --git a/Assets/Scripts/Games/TrickClass/TrickClass.cs b/Assets/Scripts/Games/TrickClass/TrickClass.cs index bd564aa23..ab07fdd9f 100644 --- a/Assets/Scripts/Games/TrickClass/TrickClass.cs +++ b/Assets/Scripts/Games/TrickClass/TrickClass.cs @@ -37,6 +37,7 @@ namespace HeavenStudio.Games public BezierCurve3D shockTossCurve; public static TrickClass instance; + public GameEvent bop = new GameEvent(); private void Awake() { @@ -45,12 +46,27 @@ namespace HeavenStudio.Games private void Update() { + var cond = Conductor.instance; + if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1)) + { + if (cond.songPositionInBeats >= bop.startBeat && cond.songPositionInBeats < bop.startBeat + bop.length) + { + //TODO: bop animation + } + } + if (PlayerInput.Pressed()) { PlayerDodge(); } } + public void Bop(float beat, float length) + { + bop.startBeat = beat; + bop.length = length; + } + public void TossObject(float beat, int type) { switch (type) diff --git a/Assets/Scripts/Minigames.cs b/Assets/Scripts/Minigames.cs index 63551bbcf..ac54e4d07 100644 --- a/Assets/Scripts/Minigames.cs +++ b/Assets/Scripts/Minigames.cs @@ -464,6 +464,7 @@ namespace HeavenStudio }), new Minigame("trickClass", "Trick on the Class\n[WIP don't use]", "C0171D", false, false, new List() { + new GameAction("bop", delegate { var e = eventCaller.currentEntity; TrickClass.instance.Bop(e.beat, e.length); }, 1, true), new GameAction("toss", delegate { TrickClass.instance.TossObject(eventCaller.currentEntity.beat, eventCaller.currentEntity.type);