diff --git a/Assets/Resources/Sprites/Games/ForkLifter/Animations/Hand_Flick.anim b/Assets/Resources/Sprites/Games/ForkLifter/Animations/Hand_Flick.anim index e3404d1e8..4cd470dfb 100644 --- a/Assets/Resources/Sprites/Games/ForkLifter/Animations/Hand_Flick.anim +++ b/Assets/Resources/Sprites/Games/ForkLifter/Animations/Hand_Flick.anim @@ -98,6 +98,15 @@ AnimationClip: - serializedVersion: 3 time: 0.35 value: {x: 0.017, y: 0.261, z: 74.52776} + inSlope: {x: 2.7443511, y: -2.188788, z: 0} + outSlope: {x: 2.7443511, y: -2.188788, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.4 + value: {x: 0.1744351, y: 0.1891212, z: 74.52776} inSlope: {x: 0, y: 0, z: 0} outSlope: {x: 0, y: 0, z: 0} tangentMode: 0 @@ -192,59 +201,6 @@ AnimationClip: classID: 1 script: {fileID: 0} m_PPtrCurves: - - curve: - - time: 0 - value: {fileID: 0} - - time: 0.016666668 - value: {fileID: 0} - - time: 0.033333335 - value: {fileID: 0} - - time: 0.05 - value: {fileID: 0} - - time: 0.06666667 - value: {fileID: 0} - - time: 0.083333336 - value: {fileID: 0} - - time: 0.1 - value: {fileID: 0} - - time: 0.11666667 - value: {fileID: 0} - - time: 0.13333334 - value: {fileID: 0} - - time: 0.15 - value: {fileID: 0} - - time: 0.16666667 - value: {fileID: 0} - - time: 0.18333334 - value: {fileID: 0} - - time: 0.2 - value: {fileID: 0} - - time: 0.21666667 - value: {fileID: 0} - - time: 0.23333333 - value: {fileID: 0} - - time: 0.25 - value: {fileID: 0} - - time: 0.26666668 - value: {fileID: 0} - - time: 0.28333333 - value: {fileID: 0} - - time: 0.3 - value: {fileID: 0} - - time: 0.31666666 - value: {fileID: 0} - - time: 0.33333334 - value: {fileID: 0} - - time: 0.35 - value: {fileID: 0} - - time: 0.36666667 - value: {fileID: 0} - - time: 0.38333333 - value: {fileID: 0} - attribute: m_Sprite - path: Fork_Lifter_Gameplay - classID: 212 - script: {fileID: 0} - curve: - time: 0 value: {fileID: -4922902375269903740, guid: 52117e1d5cd298c42adfea952676c7d6, type: 3} @@ -307,13 +263,6 @@ AnimationClip: typeID: 1 customType: 0 isPPtrCurve: 0 - - serializedVersion: 2 - path: 345648135 - attribute: 0 - script: {fileID: 0} - typeID: 212 - customType: 23 - isPPtrCurve: 1 - serializedVersion: 2 path: 3267382320 attribute: 0 @@ -336,30 +285,6 @@ AnimationClip: customType: 0 isPPtrCurve: 0 pptrCurveMapping: - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - - {fileID: 0} - {fileID: -4922902375269903740, guid: 52117e1d5cd298c42adfea952676c7d6, type: 3} - {fileID: -3456084564025576355, guid: 52117e1d5cd298c42adfea952676c7d6, type: 3} - {fileID: -3456084564025576355, guid: 52117e1d5cd298c42adfea952676c7d6, type: 3} @@ -688,6 +613,15 @@ AnimationClip: - serializedVersion: 3 time: 0.35 value: 0.017 + inSlope: 2.7443511 + outSlope: 2.7443511 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.4 + value: 0.1744351 inSlope: 0 outSlope: 0 tangentMode: 136 @@ -716,6 +650,15 @@ AnimationClip: - serializedVersion: 3 time: 0.35 value: 0.261 + inSlope: -2.188788 + outSlope: -2.188788 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.4 + value: 0.1891212 inSlope: 0 outSlope: 0 tangentMode: 136 diff --git a/Assets/Scripts/Games/CropStomp/CropStomp.cs b/Assets/Scripts/Games/CropStomp/CropStomp.cs index 5295b10d1..951c698f0 100644 --- a/Assets/Scripts/Games/CropStomp/CropStomp.cs +++ b/Assets/Scripts/Games/CropStomp/CropStomp.cs @@ -16,13 +16,13 @@ namespace HeavenStudio.Games.Loaders { new GameAction("start marching", "Start Marching") { - function = delegate { CropStomp.instance.StartMarching(eventCaller.currentEntity.beat); }, + function = delegate { CropStomp.instance.StartMarching(eventCaller.currentEntity.beat); }, defaultLength = 2f, inactiveFunction = delegate { CropStomp.MarchInactive(eventCaller.currentEntity.beat); } }, new GameAction("veggies", "Veggies") { - defaultLength = 4f, + defaultLength = 4f, resizable = true }, new GameAction("mole", "Mole") @@ -49,7 +49,8 @@ namespace HeavenStudio.Games.Loaders new GameAction("plantCollect", "Veggie Collection Values") { function = delegate { var e = eventCaller.currentEntity; - CropStomp.instance.SetCollectThresholds(e["threshold"], e["limit"], e["force"], e["forceAmount"]); }, + CropStomp.instance.SetCollectThresholds(e["threshold"], e["limit"], e["force"], e["forceAmount"]); + }, defaultLength = 0.5f, parameters = new List() { @@ -125,43 +126,34 @@ namespace HeavenStudio.Games private void Awake() { - instance = this;// Finding grass sprite width for grass scrolling. + instance = this; // Finding grass sprite width for grass scrolling. farmer.Init(); - var grassSprite = grass.sprite; - var borderLeft = grassSprite.rect.xMin + grassSprite.border.x; - var borderRight = grassSprite.rect.xMax - grassSprite.border.z; - var borderWidthPixels = borderRight - borderLeft; - grassWidth = borderWidthPixels / grassSprite.pixelsPerUnit; + Sprite sprite = grass.sprite; + float borderLeft = sprite.rect.xMin + sprite.border.x; + float borderRight = sprite.rect.xMax - sprite.border.z; + float borderWidthPixels = borderRight - borderLeft; + grassWidth = borderWidthPixels / sprite.pixelsPerUnit; legsAnim.Play("LiftFront", 0, 1); // Start with leg up. + } - // Initialize vegetables. - var cond = Conductor.instance; - var entities = GameManager.instance.Beatmap.Entities; - - double startBeat = cond.songPositionInBeatsAsDouble; + public override void OnGameSwitch(double beat) + { + double startBeat; double endBeat = double.MaxValue; - + var entities = GameManager.instance.Beatmap.Entities; if (inactiveStart == -1f) { // Find the beat of the closest "start marching" event. - var marchStarts = entities.FindAll(m => m.datamodel == "cropStomp/start marching"); - for (int i = 0; i < marchStarts.Count; i++) - { - var sampleBeat = marchStarts[i].beat; - if (cond.songPositionInBeatsAsDouble <= sampleBeat + 0.25f) // 0.25-beat buffer in case the start marching event is directly next to the game switch event. - { - startBeat = sampleBeat; - break; - } - } + var lastMarch = entities.Find(c => c.datamodel == "cropStomp/start marching" && beat <= c.beat); + startBeat = lastMarch?.beat ?? beat; } else { // Find the beat of the next step, assuming marching started at inactiveStart. int stepsPassed = 0; - while (inactiveStart + (stepsPassed * 2f) < cond.songPositionInBeatsAsDouble) + while (inactiveStart + (stepsPassed * 2f) < beat) { stepsPassed++; @@ -175,54 +167,31 @@ namespace HeavenStudio.Games startBeat = inactiveStart + (stepsPassed * 2f); // Cue the marching proper to begin when applicable. - BeatAction.New(this, new List() - { - new BeatAction.Action(startBeat - 0.25f, delegate { StartMarching(startBeat); }) - }); + BeatAction.New(this, new() { new(startBeat - 0.25f, delegate { StartMarching(startBeat); }) }); inactiveStart = -1f; } // find out when the next game switch (or remix end) happens - var allEnds = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" }); - if (allEnds.Count == 0) - { - endBeat = double.MaxValue; - } - else - { - allEnds.Sort((x, y) => x.beat.CompareTo(y.beat)); - - //get the beat of the closest end event - foreach (var end in allEnds) - { - if (end.datamodel != "gameManager/end" && end.datamodel.Split(2) == "cropStomp") continue; - if (end.beat > startBeat) - { - endBeat = end.beat; - break; - } - } - } + RiqEntity firstEnd = entities.Find(c => c.datamodel is "gameManager/switchGame/cropStomp" or "gameManager/end" && c.beat > startBeat); + endBeat = firstEnd?.beat ?? double.MaxValue; // Veggie and mole events. - var vegEvents = entities.FindAll(v => v.datamodel == "cropStomp/veggies"); - var moleEvents = entities.FindAll(m => m.datamodel == "cropStomp/mole"); + List vegEvents = entities.FindAll(v => v.datamodel == "cropStomp/veggies"); + List moleEvents = entities.FindAll(m => m.datamodel == "cropStomp/mole"); // Spawn veggies. - for (int i = 0; i < vegEvents.Count; i++) - { + for (int i = 0; i < vegEvents.Count; i++) { var vegBeat = vegEvents[i].beat; var vegLength = vegEvents[i].length; // Only consider veggie events that aren't past the start point. - if (startBeat <= vegBeat + vegLength) - { + if (startBeat <= vegBeat + vegLength) { int veggiesInEvent = Mathf.CeilToInt(vegLength + 1) / 2; for (int b = 0; b < veggiesInEvent; b++) { - var targetVeggieBeat = vegBeat + 2f * b; + var targetVeggieBeat = vegBeat + (2f * b); if (startBeat <= targetVeggieBeat && targetVeggieBeat < endBeat) { SpawnVeggie(targetVeggieBeat, startBeat, false); @@ -232,52 +201,40 @@ namespace HeavenStudio.Games } // Spawn moles. - for (int i = 0; i < moleEvents.Count; i++) - { + for (int i = 0; i < moleEvents.Count; i++) { var moleBeat = moleEvents[i].beat; - if (startBeat <= moleBeat && moleBeat < endBeat) - { + if (startBeat <= moleBeat && moleBeat < endBeat) { SpawnVeggie(moleBeat, startBeat, true); } } - } - - List cuedMoleSounds = new List(); - - public override void OnGameSwitch(double beat) - { SetInitTresholds(beat); SetMarchEndBeat(beat); } public override void OnPlay(double beat) { - SetInitTresholds(beat); - SetMarchEndBeat(beat); + OnGameSwitch(beat); } private void SetMarchEndBeat(double beat) { - double nextEndBeat = double.MaxValue; var nextEnd = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" }).Find(e => e.beat > beat); - if (nextEnd != null) nextEndBeat = nextEnd.beat; + double nextEndBeat = nextEnd?.beat ?? double.MaxValue; - var allEnds = EventCaller.GetAllInGameManagerList("cropStomp", new string[] { "end" }); - var tempEnds = allEnds.FindAll(x => x.beat >= beat && x.beat < nextEndBeat); - if (tempEnds.Count == 0) return; - - marchEndBeat = tempEnds[0].beat; - willNotHum = tempEnds[0]["mute"]; + var firstEnd = GameManager.instance.Beatmap.Entities.Find(c => c.datamodel == "cropStomp/end" && c.beat >= beat && c.beat < nextEndBeat); + if (firstEnd != null) { + marchEndBeat = firstEnd.beat; + willNotHum = firstEnd["mute"]; + } } public static void MoleSound(double beat) { - MultiSound.Play(new MultiSound.Sound[] - { - new MultiSound.Sound("cropStomp/moleNyeh", beat - 2, 1, 1, false, 0.134), - new MultiSound.Sound("cropStomp/moleHeh1", beat - 1.5, 1, 1, false, 0.05), - new MultiSound.Sound("cropStomp/moleHeh2", beat - 1, 1, 1, false, 0.061) + MultiSound.Play(new MultiSound.Sound[] { + new MultiSound.Sound("cropStomp/moleNyeh", beat - 2, offset: 0.134), + new MultiSound.Sound("cropStomp/moleHeh1", beat - 1.5, offset: 0.05), + new MultiSound.Sound("cropStomp/moleHeh2", beat - 1, offset: 0.061) }, forcePlay: true); } @@ -285,11 +242,8 @@ namespace HeavenStudio.Games { var cond = Conductor.instance; - if (!cond.isPlaying) - return; + if (!cond.isPlaying || !isMarching) return; - if (!isMarching) - return; // Debug.Log(newBeat); bool cameraLocked = cond.songPositionInBeats >= marchEndBeat; @@ -308,11 +262,11 @@ namespace HeavenStudio.Games if (PlayerInput.GetIsAction(InputAction_BasicRelease) && !IsExpectingInputNow(InputAction_BasicRelease)) { - bodyAnim.Play("Raise"); + bodyAnim.DoScaledAnimationAsync("Raise", 0.5f); } if (PlayerInput.GetIsAction(InputAction_Flick) && !IsExpectingInputNow(InputAction_FlickRelease)) { - bodyAnim.Play("Pick"); + bodyAnim.DoScaledAnimationAsync("Pick", 0.5f); } if (cameraLocked) return; @@ -326,7 +280,7 @@ namespace HeavenStudio.Games var grassPos = grassTrans.localPosition; var newGrassX = grassPos.x + (scrollRate * Time.deltaTime); - newGrassX = (newGrassX % (grassWidth * 4.5f)); + newGrassX %= grassWidth * 4.5f; grassTrans.localPosition = new Vector3(newGrassX, grassPos.y, grassPos.z); @@ -334,16 +288,14 @@ namespace HeavenStudio.Games var dotsPos = dotsTrans.localPosition; var newDotsX = dotsPos.x + (scrollRate * Time.deltaTime); - newDotsX = (newDotsX % dotsWidth); + newDotsX %= dotsWidth; dotsTrans.localPosition = new Vector3(newDotsX, dotsPos.y, dotsPos.z); } private void LateUpdate() { - if (!isMarching) - return; - + if (!isMarching) return; isFlicking = false; } @@ -357,12 +309,9 @@ namespace HeavenStudio.Games private void SetInitTresholds(double beat) { - var allCollects = EventCaller.GetAllInGameManagerList("cropStomp", new string[] { "plantCollect" }); - if (allCollects.Count == 0) return; - - var tempCollect = allCollects.FindLast(x => x.beat < beat); - if (tempCollect == null) return; - SetCollectThresholds(tempCollect["threshold"], tempCollect["limit"], tempCollect["force"], tempCollect["forceAmount"]); + var lastCollect = GameManager.instance.Beatmap.Entities.FindLast(c => c.datamodel == "cropStomp/plantCollect" && c.beat < beat); + if (lastCollect == null) return; + SetCollectThresholds(lastCollect["threshold"], lastCollect["limit"], lastCollect["force"], lastCollect["forceAmount"]); } public void CollectPlant(int veggieType) @@ -379,19 +328,18 @@ namespace HeavenStudio.Games if (!isStepping) { stepCount += 1; - var stepAnim = (stepCount % 2 != 0 ? "StepFront" : "StepBack"); - legsAnim.Play(stepAnim, 0, 0); + var stepAnim = (stepCount % 2 != 0) ? "StepFront" : "StepBack"; + legsAnim.DoScaledAnimationAsync(stepAnim, 0.5f); isStepping = true; } - } // Lift. else { - var liftAnim = (stepCount % 2 != 0 ? "LiftBack" : "LiftFront"); - legsAnim.Play(liftAnim, 0, 0); + var liftAnim = (stepCount % 2 != 0) ? "LiftBack" : "LiftFront"; + legsAnim.DoScaledAnimationAsync(liftAnim, 0.5f); var farmerPos = farmerTrans.localPosition; farmerTrans.localPosition = new Vector3(farmerPos.x - stepDistance, farmerPos.y, farmerPos.z); @@ -413,27 +361,28 @@ namespace HeavenStudio.Games public void Stomp() { // Don't increment step counter if autostep stepped already. - if (!isStepping) - stepCount += 1; + if (!isStepping) stepCount += 1; - var stompAnim = (stepCount % 2 != 0 ? "StompFront" : "StompBack"); + var stompAnim = (stepCount % 2 != 0) ? "StompFront" : "StompBack"; - legsAnim.Play(stompAnim, 0, 0); + legsAnim.DoScaledAnimationAsync(stompAnim, 0.5f); SoundByte.PlayOneShotGame("cropStomp/stomp"); - if (shakeTween != null) - shakeTween.Kill(true); + if (shakeTween != null) shakeTween.Kill(true); - DOTween.Punch(() => GameCamera.AdditionalPosition, x => GameCamera.AdditionalPosition = x, new Vector3(0, 0.75f, 0), - Conductor.instance.pitchedSecPerBeat*0.5f, 18, 1f); + DOTween.Punch(() => + GameCamera.AdditionalPosition, + x => GameCamera.AdditionalPosition = x, + new Vector3(0, 0.75f, 0), Conductor.instance.pitchedSecPerBeat * 0.5f, 18, 1f + ); isStepping = true; } private void SpawnVeggie(double beat, double startBeat, bool isMole) { - var newVeggie = GameObject.Instantiate(isMole ? baseMole : baseVeggie, veggieHolder).GetComponent(); + var newVeggie = Instantiate(isMole ? baseMole : baseVeggie, veggieHolder).GetComponent(); newVeggie.targetBeat = beat; @@ -445,21 +394,16 @@ namespace HeavenStudio.Games public static void MarchInactive(double beat) { - if (GameManager.instance.currentGame == "cropStomp") //this function is only meant for making march sounds while the game is inactive - { - return; - } + if (GameManager.instance.currentGame == "cropStomp") return; inactiveStart = beat; RiqEntity gameSwitch = GameManager.instance.Beatmap.Entities.Find(c => c.beat >= beat && c.datamodel == "gameManager/switchGame/cropStomp"); - if (gameSwitch == null) - return; - int length = (int)Math.Ceiling((gameSwitch.beat - beat)/2); + if (gameSwitch == null) return; + int length = (int)Math.Ceiling((gameSwitch.beat - beat) / 2); MultiSound.Sound[] sounds = new MultiSound.Sound[length]; - for(int i = 0; i < length; i++) - { - sounds[i] = new MultiSound.Sound("cropStomp/hmm", beat + i*2); + for(int i = 0; i < length; i++) { + sounds[i] = new MultiSound.Sound("cropStomp/hmm", beat + (i * 2)); } - MultiSound.Play(sounds, forcePlay:true); + MultiSound.Play(sounds, forcePlay: true); } } } diff --git a/Assets/Scripts/Games/CropStomp/Farmer.cs b/Assets/Scripts/Games/CropStomp/Farmer.cs index cc2b33ca9..4016cb5dd 100644 --- a/Assets/Scripts/Games/CropStomp/Farmer.cs +++ b/Assets/Scripts/Games/CropStomp/Farmer.cs @@ -70,7 +70,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp if (PlayerInput.GetIsAction(CropStomp.InputAction_BasicPress) && !game.IsExpectingInputNow(CropStomp.InputAction_BasicPress)) { - game.bodyAnim.Play("Crouch", 0, 0); + game.bodyAnim.DoScaledAnimationAsync("Crouch", 0.5f); } } @@ -87,8 +87,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp startPlant.SetActive(collectedPlants >= plantThreshold); if (spawnedPlants.Count > 0) { - foreach (var plant in spawnedPlants) - { + foreach (var plant in spawnedPlants) { Destroy(plant); } spawnedPlants.Clear(); @@ -102,8 +101,9 @@ namespace HeavenStudio.Games.Scripts_CropStomp { spawnedPlant = Instantiate(plantLastRef, collectedHolder); spawnedPlant.GetComponent().sprite = veggieSprites[lastVeggieType]; + } else { + spawnedPlant = Instantiate((realIndex % 2 == 0) ? plantRightRef : plantLeftRef, collectedHolder); } - else spawnedPlant = Instantiate((realIndex % 2 == 0) ? plantRightRef : plantLeftRef, collectedHolder); spawnedPlant.transform.localPosition = new Vector3(0, (realIndex * plantDistance) + plantStartDistance, 0); spawnedPlant.GetComponent().sortingOrder = -realIndex - 2; spawnedPlant.SetActive(true); @@ -119,9 +119,8 @@ namespace HeavenStudio.Games.Scripts_CropStomp private void Miss(PlayerActionEvent caller) { - if (GameManager.instance.currentGame != "cropStomp") return; - if (!game.isMarching) - return; + if (GameManager.instance.currentGame != "cropStomp" || !game.isMarching) return; + // REMARK: does not count for performance nextStompBeat += 2f; stomp?.Disable(); @@ -133,18 +132,12 @@ namespace HeavenStudio.Games.Scripts_CropStomp void Stomp(bool ng) { - if (GameManager.instance.currentGame != "cropStomp") return; - if (!game.isMarching) - return; - if (ng) - { - game.bodyAnim.Play("Crouch", 0, 0); - } - else - { + if (GameManager.instance.currentGame != "cropStomp" || !game.isMarching) return; + if (ng) { + game.bodyAnim.DoScaledAnimationAsync("Crouch", 0.5f); + } else { game.Stomp(); - game.bodyAnim.Play("Stomp", 0, 0); - + game.bodyAnim.DoScaledAnimationAsync("Stomp", 0.5f); } nextStompBeat += 2f; stomp?.Disable(); diff --git a/Assets/Scripts/Games/CropStomp/Veggie.cs b/Assets/Scripts/Games/CropStomp/Veggie.cs index 56d6a4784..695589813 100644 --- a/Assets/Scripts/Games/CropStomp/Veggie.cs +++ b/Assets/Scripts/Games/CropStomp/Veggie.cs @@ -39,7 +39,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp { game = CropStomp.instance; - if (Conductor.instance.isPlaying) + // if (Conductor.instance.isPlaying) game.ScheduleInput(targetBeat - 1, 1f, CropStomp.InputAction_BasicPress, StompJust, StompMiss, Out); if (!isMole) @@ -56,38 +56,23 @@ namespace HeavenStudio.Games.Scripts_CropStomp private bool gotStomped; // Safeguard in case nested Update() call breaks. private void Update() { - if (!game.isMarching) - return; + if (!game.isMarching) return; - // Veggie missed. Handle missed state. - if (veggieState == -1) + switch (veggieState) { - MissedUpdate(); - return; - } + case -1: MissedUpdate(); return; + // case 0: + case 2: PickedUpdate(); return; + case 1: + float airPosition = Conductor.instance.GetPositionFromBeat(stompedBeat, landBeat - stompedBeat); + veggieTrans.position = curve.GetPoint(Mathf.Clamp(airPosition, 0, 1)); - // Veggie picked. Handle picked state. - if (veggieState == 2) - { - PickedUpdate(); - return; - } - - var cond = Conductor.instance; - // In ground. - if (veggieState == 0) - { - } - // In air. - else if (veggieState == 1) - { - float airPosition = cond.GetPositionFromBeat(stompedBeat, landBeat - stompedBeat); - veggieTrans.position = curve.GetPoint(Mathf.Clamp(airPosition, 0, 1)); - - if (PlayerInput.GetIsAction(CropStomp.InputAction_FlickRelease) && !game.IsExpectingInputNow(CropStomp.InputAction_FlickRelease)) - { - pickEligible = false; - } + if (PlayerInput.GetIsAction(CropStomp.InputAction_FlickRelease) && !game.IsExpectingInputNow(CropStomp.InputAction_FlickRelease)) + { + pickEligible = false; + } + break; + // default: } } @@ -105,17 +90,17 @@ namespace HeavenStudio.Games.Scripts_CropStomp StompVeggie(false); } - private void StompMiss(PlayerActionEvent caller) + private void StompMiss(PlayerActionEvent caller) { veggieState = -1; caller.Disable(); } - private void Out(PlayerActionEvent caller) {} + private void Out(PlayerActionEvent caller) { } private void PickJust(PlayerActionEvent caller, float state) { - game.bodyAnim.Play("Pick", 0, 0); + game.bodyAnim.DoScaledAnimationAsync("Pick", 0.5f); game.isFlicking = true; if (!pickEligible) return; if (GameManager.instance.autoplay) @@ -131,13 +116,20 @@ namespace HeavenStudio.Games.Scripts_CropStomp curve.transform.localScale = Vector3.one; // Return curve to normal size in the case of mole curves. - var key1 = curve.KeyPoints[0]; - var key1Pos = key1.Position; - key1.Position = new Vector3(key1Pos.x, veggieTrans.position.y, key1Pos.z); + for (int i = 0; i < 2; i++) + { + var key = curve.KeyPoints[i]; + var keyPos = key.Position; + key.Position = new Vector3(keyPos.x, veggieTrans.position.y + (i * 2), keyPos.z); + } - var key2 = curve.KeyPoints[1]; - var key2Pos = key2.Position; - key2.Position = new Vector3(key2Pos.x, veggieTrans.position.y + 2f, key2Pos.z); + // var key1 = curve.KeyPoints[0]; + // var key1Pos = key1.Position; + // key1.Position = new Vector3(key1Pos.x, veggieTrans.position.y, key1Pos.z); + + // var key2 = curve.KeyPoints[1]; + // var key2Pos = key2.Position; + // key2.Position = new Vector3(key2Pos.x, veggieTrans.position.y + 2f, key2Pos.z); pickedBeat = Conductor.instance.songPositionInBeatsAsDouble; @@ -154,9 +146,8 @@ namespace HeavenStudio.Games.Scripts_CropStomp private void PickMiss(PlayerActionEvent caller) { veggieState = -1; - - if (!isMole) - SoundByte.PlayOneShotGame("cropStomp/veggieMiss"); + + if (!isMole) SoundByte.PlayOneShotGame("cropStomp/veggieMiss"); caller.Disable(); } @@ -186,7 +177,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp var distDiff = transform.position.x - game.farmerTrans.position.x; if (distDiff > 1.5f) { - moleAnim.Play("Chuckle", 0, 0); + moleAnim.DoScaledAnimationAsync("Chuckle", 0.5f); moleLaughing = true; } } @@ -223,6 +214,8 @@ namespace HeavenStudio.Games.Scripts_CropStomp } gotStomped = true; + Debug.Log("Stomped!"); + var cond = Conductor.instance; ParticleSystem spawnedHit = Instantiate(game.hitParticle, game.hitParticle.transform.parent); @@ -235,12 +228,12 @@ namespace HeavenStudio.Games.Scripts_CropStomp stompedBeat = cond.songPositionInBeatsAsDouble; - landBeat = targetBeat + (float)cond.SecsToBeats(Minigame.NgLateTime()-1, cond.GetBpmAtBeat(targetBeat)); + landBeat = targetBeat + (float)cond.SecsToBeats(Minigame.NgLateTime() - 1, cond.GetBpmAtBeat(targetBeat)); if (autoTriggered) { game.Stomp(); - game.bodyAnim.Play("Stomp", 0, 0); + game.bodyAnim.DoScaledAnimationAsync("Stomp", 0.5f); } if (!isMole) @@ -251,7 +244,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp } else { - moleAnim.Play("Idle", 0, 0); + moleAnim.DoScaledAnimationAsync("Idle", 0.5f); } var veggieScale = veggieTrans.localScale; @@ -267,7 +260,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp if (autoTriggered) { - game.bodyAnim.Play("Pick", 0, 0); + game.bodyAnim.DoScaledAnimationAsync("Pick", 0.5f); game.isFlicking = true; } diff --git a/Assets/Scripts/Games/ForkLifter/ForkLifter.cs b/Assets/Scripts/Games/ForkLifter/ForkLifter.cs index 0c6519acf..6787de94d 100644 --- a/Assets/Scripts/Games/ForkLifter/ForkLifter.cs +++ b/Assets/Scripts/Games/ForkLifter/ForkLifter.cs @@ -124,6 +124,12 @@ namespace HeavenStudio.Games BackgroundColorUpdate(); } + public override void OnPlay(double beat) + { + base.OnPlay(beat); + OnGameSwitch(beat); + } + public override void OnGameSwitch(double beat) { base.OnGameSwitch(beat); @@ -247,10 +253,5 @@ namespace HeavenStudio.Games BackgroundColorGrad(lastEventGrad.beat, lastEventGrad.length, lastEventGrad["start"], lastEventGrad["end"], lastEventGrad["ease"]); } } - - public override void OnPlay(double beat) - { - PersistColor(beat); - } } } \ No newline at end of file