diff --git a/Assets/Resources/Games/totemClimb.prefab b/Assets/Resources/Games/totemClimb.prefab index 7289251e8..7165fcd0e 100644 --- a/Assets/Resources/Games/totemClimb.prefab +++ b/Assets/Resources/Games/totemClimb.prefab @@ -10,6 +10,7 @@ GameObject: m_Component: - component: {fileID: 2892683027369623692} - component: {fileID: 2815389981742228673} + - component: {fileID: 8443481187504185674} m_Layer: 0 m_Name: Totem m_TagString: Untagged @@ -30,6 +31,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3917273245613829895} + - {fileID: 1227221646529388456} m_Father: {fileID: 7191680920108009852} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -54,6 +56,20 @@ Animator: m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorStateOnDisable: 0 m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &8443481187504185674 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38450379669086592} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 494645cb1b3cdeb418bae2a7e19fd269, type: 3} + m_Name: + m_EditorClassIdentifier: + _anim: {fileID: 2815389981742228673} + _jumperPoint: {fileID: 1227221646529388456} --- !u!1 &235521313088006376 GameObject: m_ObjectHideFlags: 0 @@ -147,6 +163,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 5749667637740173319} + - component: {fileID: 9066120161103407552} m_Layer: 0 m_Name: Frog m_TagString: Untagged @@ -169,9 +186,30 @@ Transform: - {fileID: 2653965045326994221} - {fileID: 5838631045631306173} - {fileID: 3697837675551645759} + - {fileID: 644641883719781763} + - {fileID: 7994465469293337682} + - {fileID: 2412478017021253490} m_Father: {fileID: 7191680920108009852} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &9066120161103407552 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 240329862653316689} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 81963aa088010e041935d18a5b18a894, type: 3} + m_Name: + m_EditorClassIdentifier: + _animLeft: {fileID: 0} + _animMiddle: {fileID: 0} + _animRight: {fileID: 0} + _jumperPointLeft: {fileID: 644641883719781763} + _jumperPointMiddle: {fileID: 7994465469293337682} + _jumperPointRight: {fileID: 2412478017021253490} --- !u!1 &516513247633929993 GameObject: m_ObjectHideFlags: 0 @@ -424,6 +462,37 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &1913468920525453536 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7302560279692477592} + m_Layer: 0 + m_Name: InitialJumperPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7302560279692477592 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1913468920525453536} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.047, y: -0.96, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7036195930893080952} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2151449329910671277 GameObject: m_ObjectHideFlags: 0 @@ -883,6 +952,37 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &4385750826297040385 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 644641883719781763} + m_Layer: 0 + m_Name: JumperPointLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &644641883719781763 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4385750826297040385} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.016, y: 2.876, z: 0} + m_LocalScale: {x: 0.47, y: 0.47, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5749667637740173319} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &4502272174193327929 GameObject: m_ObjectHideFlags: 0 @@ -1052,6 +1152,7 @@ Transform: - {fileID: 6499924889799669646} - {fileID: 7191680920108009852} - {fileID: 1298493099490371972} + - {fileID: 7302560279692477592} m_Father: {fileID: 6484058324431055017} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1139,6 +1240,37 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &5197615123340174885 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1227221646529388456} + m_Layer: 0 + m_Name: JumperPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1227221646529388456 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5197615123340174885} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.036, y: 2.869, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2892683027369623692} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &5221338269682962569 GameObject: m_ObjectHideFlags: 0 @@ -1559,6 +1691,37 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &6119658906719982797 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2412478017021253490} + m_Layer: 0 + m_Name: JumperPointRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2412478017021253490 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6119658906719982797} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.26, y: 4.05, z: 0} + m_LocalScale: {x: 0.47, y: 0.47, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5749667637740173319} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &6198288715119681818 GameObject: m_ObjectHideFlags: 0 @@ -1643,6 +1806,37 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &7211632521784862679 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7994465469293337682} + m_Layer: 0 + m_Name: JumperPointMiddle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7994465469293337682 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7211632521784862679} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.112, y: 3.369, z: 0} + m_LocalScale: {x: 0.47, y: 0.47, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5749667637740173319} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7275193936285157507 GameObject: m_ObjectHideFlags: 0 @@ -2212,11 +2406,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: offset: {x: 0, y: 0, z: 0} - _jumpDistanceX: 3.838 - _jumpDistanceY: 1.45 - _jumpDistanceSmallX: 1.919 - _jumpDistanceSmallY: 0.725 - _jumpOffsetY: 0.1 + _initialPoint: {fileID: 7302560279692477592} _jumpHeight: 2 --- !u!95 &7450811870195608846 Animator: diff --git a/Assets/Scripts/Games/TotemClimb/TCFrog.cs b/Assets/Scripts/Games/TotemClimb/TCFrog.cs new file mode 100644 index 000000000..85f1430cd --- /dev/null +++ b/Assets/Scripts/Games/TotemClimb/TCFrog.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace HeavenStudio.Games.Scripts_TotemClimb +{ + public class TCFrog : MonoBehaviour + { + [NonSerialized] public double beat; + + [SerializeField] private Animator _animLeft; + [SerializeField] private Animator _animMiddle; + [SerializeField] private Animator _animRight; + + [SerializeField] private Transform _jumperPointLeft; + [SerializeField] private Transform _jumperPointMiddle; + [SerializeField] private Transform _jumperPointRight; + + public Transform JumperPointLeft => _jumperPointLeft; + public Transform JumperPointMiddle => _jumperPointMiddle; + public Transform JumperPointRight => _jumperPointRight; + + } +} + diff --git a/Assets/Scripts/Games/TotemClimb/TCFrog.cs.meta b/Assets/Scripts/Games/TotemClimb/TCFrog.cs.meta new file mode 100644 index 000000000..18743df36 --- /dev/null +++ b/Assets/Scripts/Games/TotemClimb/TCFrog.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 81963aa088010e041935d18a5b18a894 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Games/TotemClimb/TCJumper.cs b/Assets/Scripts/Games/TotemClimb/TCJumper.cs index b93d1014b..b30a24739 100644 --- a/Assets/Scripts/Games/TotemClimb/TCJumper.cs +++ b/Assets/Scripts/Games/TotemClimb/TCJumper.cs @@ -8,49 +8,44 @@ namespace HeavenStudio.Games.Scripts_TotemClimb { public class TCJumper : SuperCurveObject { - [SerializeField] private float _jumpDistanceX; - [SerializeField] private float _jumpDistanceY; - [SerializeField] private float _jumpDistanceSmallX; - [SerializeField] private float _jumpDistanceSmallY; - [SerializeField] private float _jumpOffsetY; + [SerializeField] private Transform _initialPoint; [SerializeField] private float _jumpHeight = 2f; private Path _path; private Animator _anim; private TotemClimb _game; + private double _startBeat; private void Awake() { _anim = GetComponent(); _game = TotemClimb.instance; + } + + public void InitPath(double beat) + { + _startBeat = beat; _path = new Path(); _path.positions = new PathPos[2]; - _path.positions[0] = new PathPos() - { - duration = 1, - pos = new(transform.localPosition.x, transform.localPosition.y), + _path.positions[0] = new PathPos() + { + duration = 1 - (float)Conductor.instance.SecsToBeats(Minigame.justEarlyTime, Conductor.instance.GetBpmAtBeat(beat)), + target = _initialPoint, height = _jumpHeight }; _path.positions[1] = new PathPos() { - pos = new(transform.localPosition.x + _jumpDistanceX, transform.localPosition.y + _jumpDistanceY + _jumpOffsetY) + target = _game.GetJumperPointAtBeat(beat) }; } - public void StartJumping(double beat, bool inTriple = false) + public void StartJumping(double beat) { bool nextIsTriple = _game.IsTripleBeat(beat + 1); - StartCoroutine(JumpCo(beat, 1f, nextIsTriple && !inTriple)); + StartCoroutine(JumpCo(beat)); if (beat + 1 >= _game.EndBeat) return; - _game.ScheduleInput(beat, 1, Minigame.InputAction_BasicPress, nextIsTriple ? JustTripleEnter : Just, nextIsTriple ? MissTripleEnter : Miss, Empty); - } - - public void StartTripleJumping(double beat, bool exit) - { - StartCoroutine(JumpCo(beat, 0.5f, true)); - if (beat + 0.5 >= _game.EndBeat) return; - _game.ScheduleInput(beat, 0.5, Minigame.InputAction_BasicPress, exit ? Just : JustTripleExit, exit ? Miss : MissTripleExit, Empty); + _game.ScheduleInput(beat, 1, Minigame.InputAction_BasicPress, Just, Miss, Empty); } public void Bop() @@ -58,9 +53,23 @@ namespace HeavenStudio.Games.Scripts_TotemClimb _anim.DoScaledAnimationAsync("Bop", 0.5f); } - private IEnumerator JumpCo(double beat, float length = 1f, bool small = false) + private IEnumerator JumpCo(double beat) { - _path.positions[0].duration = length - (float)Conductor.instance.SecsToBeats(Minigame.justEarlyTime, Conductor.instance.GetBpmAtBeat(beat + length)); + if (beat >= _startBeat) + { + _path = new Path(); + _path.positions = new PathPos[2]; + _path.positions[0] = new PathPos() + { + duration = 1 - (float)Conductor.instance.SecsToBeats(Minigame.justEarlyTime, Conductor.instance.GetBpmAtBeat(beat + 1)), + height = _jumpHeight, + target = _game.GetJumperPointAtBeat(beat) + }; + _path.positions[1] = new PathPos() + { + target = _game.GetJumperPointAtBeat(beat + 1) + }; + } _anim.Play("Jump", 0, 0); float normalizedBeat = Conductor.instance.GetPositionFromBeat(beat, _path.positions[0].duration); @@ -68,7 +77,7 @@ namespace HeavenStudio.Games.Scripts_TotemClimb while(normalizedBeat < 1f) { - transform.localPosition = GetPathPositionFromBeat(_path, Math.Min(Conductor.instance.songPositionInBeatsAsDouble, beat + _path.positions[0].duration), beat); + transform.position = GetPathPositionFromBeat(_path, Math.Min(Conductor.instance.songPositionInBeatsAsDouble, beat + _path.positions[0].duration), beat); if (normalizedBeat >= 0.5f && !playedFall) { @@ -79,15 +88,13 @@ namespace HeavenStudio.Games.Scripts_TotemClimb normalizedBeat = Conductor.instance.GetPositionFromBeat(beat, _path.positions[0].duration); yield return null; } - _path.positions[0].pos += small ? new Vector3(_jumpDistanceSmallX, _jumpDistanceSmallY) : new Vector3(_jumpDistanceX, _jumpDistanceY); - _path.positions[1].pos += small ? new Vector3(_jumpDistanceSmallX, _jumpDistanceSmallY) : new Vector3(_jumpDistanceX, _jumpDistanceY); _anim.Play("Idle", 0, 0); } private void Just(PlayerActionEvent caller, float state) { bool isTriple = _game.IsTripleBeat(caller.startBeat + caller.timer); - StartJumping(caller.startBeat + caller.timer, isTriple); + StartJumping(caller.startBeat + caller.timer); _game.BopTotemAtBeat(caller.startBeat + caller.timer); if (state >= 1f || state <= -1f) { @@ -96,42 +103,12 @@ namespace HeavenStudio.Games.Scripts_TotemClimb SoundByte.PlayOneShotGame(isTriple ? "totemClimb/totemlandb" : "totemClimb/totemland"); } - private void JustTripleEnter(PlayerActionEvent caller, float state) - { - StartTripleJumping(caller.startBeat + caller.timer, false); - if (state >= 1f || state <= -1f) - { - return; - } - SoundByte.PlayOneShotGame("totemClimb/totemland"); - } - - private void JustTripleExit(PlayerActionEvent caller, float state) - { - StartTripleJumping(caller.startBeat + caller.timer, true); - if (state >= 1f || state <= -1f) - { - return; - } - SoundByte.PlayOneShotGame("totemClimb/totemland"); - } - private void Miss(PlayerActionEvent caller) { StartJumping(caller.startBeat + caller.timer); _game.BopTotemAtBeat(caller.startBeat + caller.timer); } - private void MissTripleEnter(PlayerActionEvent caller) - { - StartTripleJumping(caller.startBeat + caller.timer, false); - } - - private void MissTripleExit(PlayerActionEvent caller) - { - StartTripleJumping(caller.startBeat + caller.timer, true); - } - private void Empty(PlayerActionEvent caller) { } } } diff --git a/Assets/Scripts/Games/TotemClimb/TCTotem.cs b/Assets/Scripts/Games/TotemClimb/TCTotem.cs new file mode 100644 index 000000000..2a72d5877 --- /dev/null +++ b/Assets/Scripts/Games/TotemClimb/TCTotem.cs @@ -0,0 +1,22 @@ +using HeavenStudio.Util; +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace HeavenStudio.Games.Scripts_TotemClimb +{ + public class TCTotem : MonoBehaviour + { + [NonSerialized] public double beat; + [SerializeField] private Animator _anim; + [SerializeField] private Transform _jumperPoint; + public Transform JumperPoint => _jumperPoint; + + public void Bop() + { + _anim.DoScaledAnimationAsync("Bop", 0.5f); + } + } +} + diff --git a/Assets/Scripts/Games/TotemClimb/TCTotem.cs.meta b/Assets/Scripts/Games/TotemClimb/TCTotem.cs.meta new file mode 100644 index 000000000..66fcb7d05 --- /dev/null +++ b/Assets/Scripts/Games/TotemClimb/TCTotem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 494645cb1b3cdeb418bae2a7e19fd269 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Games/TotemClimb/TCTotemManager.cs b/Assets/Scripts/Games/TotemClimb/TCTotemManager.cs index 98100f32c..66c185b54 100644 --- a/Assets/Scripts/Games/TotemClimb/TCTotemManager.cs +++ b/Assets/Scripts/Games/TotemClimb/TCTotemManager.cs @@ -16,42 +16,12 @@ namespace HeavenStudio.Games.Scripts_TotemClimb private Transform _scrollTransform; private float _totemStartX; private float _totemStartY; - private List _totems = new(); - private List _frogs = new(); + private List _totems = new(); + private List _frogs = new(); private int _totemIndex = 0; private TotemClimb _game; - private class Totem - { - public double beat; - public Transform transform; - public Animator anim; - - public Totem(Transform mTransform, Animator mAnim, double mBeat = 0) - { - transform = mTransform; - anim = mAnim; - beat = mBeat; - } - } - - private class Frog - { - public double beat; - public Transform transform; - public Animator anim, anim1, anim2; - - public Frog(Transform mTransform, Animator mAnim, Animator mAnim1, Animator mAnim2, double mBeat) - { - transform = mTransform; - anim = mAnim; - anim1 = mAnim1; - anim2 = mAnim2; - beat = mBeat; - } - } - private void Awake() { _game = TotemClimb.instance; @@ -59,13 +29,13 @@ namespace HeavenStudio.Games.Scripts_TotemClimb _totemStartX = _totemTransform.localPosition.x; _totemStartY = _totemTransform.localPosition.y; - _totems.Add(new(_totemTransform, _totemTransform.GetComponent())); + _totems.Add(_totemTransform.GetComponent()); for (int i = 1; i < _totemAmount; i++) { Transform spawnedTotem = Instantiate(_totemTransform, transform); spawnedTotem.transform.localPosition = new Vector3(_totemStartX + (_xDistance * i), _totemStartY + (_yDistance * i)); - _totems.Add(new(spawnedTotem, spawnedTotem.GetComponent())); + _totems.Add(spawnedTotem.GetComponent()); } } @@ -85,7 +55,8 @@ namespace HeavenStudio.Games.Scripts_TotemClimb Transform spawnedFrog = Instantiate(_frogTransform, transform); spawnedFrog.transform.localPosition += new Vector3(_xDistance * (float)(beat - startBeat), _yDistance * (float)(beat - startBeat)); spawnedFrog.gameObject.SetActive(true); - _frogs.Add(new Frog(spawnedFrog, null, null, null, beat)); + _frogs.Add(spawnedFrog.GetComponent()); + _frogs[i].beat = beat; } } } @@ -95,7 +66,18 @@ namespace HeavenStudio.Games.Scripts_TotemClimb var t = _totems.Find(x => x.beat == beat); if (t == null) return; - t.anim.DoScaledAnimationAsync("Bop", 0.5f); + t.Bop(); + } + + public Transform GetJumperPointAtBeat(double beat) + { + var t = _totems.Find(x => x.beat == beat); + if (t == null) + { + Debug.Log($"Jumper Point unavaible at beat {beat}."); + return null; + } + return t.JumperPoint; } private void Update() diff --git a/Assets/Scripts/Games/TotemClimb/TotemClimb.cs b/Assets/Scripts/Games/TotemClimb/TotemClimb.cs index 805e86b74..48db03780 100644 --- a/Assets/Scripts/Games/TotemClimb/TotemClimb.cs +++ b/Assets/Scripts/Games/TotemClimb/TotemClimb.cs @@ -73,6 +73,8 @@ namespace HeavenStudio.Games CalculateStartAndEndBeat(beat); GetTripleEvents(); HandleBopsOnStart(beat); + _totemManager.InitBeats(_startBeat); + _jumper.InitPath(_startBeat); } public override void OnPlay(double beat) @@ -84,6 +86,8 @@ namespace HeavenStudio.Games CalculateStartAndEndBeat(lastGameSwitchBeat); GetTripleEvents(); HandleBopsOnStart(beat); + _totemManager.InitBeats(_startBeat); + _jumper.InitPath(_startBeat); } private void CalculateStartAndEndBeat(double beat) @@ -139,7 +143,6 @@ namespace HeavenStudio.Games } _tripleEvents = tempTriples; - _totemManager.InitBeats(_startBeat); } private void Update() @@ -154,6 +157,11 @@ namespace HeavenStudio.Games _totemManager.BopTotemAtBeat(beat); } + public Transform GetJumperPointAtBeat(double beat) + { + return _totemManager.GetJumperPointAtBeat(beat); + } + public void Bop(double beat, float length, double callBeat) { List actions = new();