From bb8a15bef9ac2d6977a1480b5006bd4dfd032968 Mon Sep 17 00:00:00 2001 From: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Sun, 25 Jun 2023 15:14:37 +0200 Subject: [PATCH] End event setup --- Assets/Resources/Games/nightWalkAgb.prefab | 118 ++++++++++++++++++ .../Games/NightWalkAgb/JumpPlatform.prefab | 2 +- .../Animations/Platform/EndPop.anim | 116 +++++++++++++++++ .../Animations/Platform/EndPop.anim.meta | 8 ++ .../Platform/JumpPlatform.controller | 29 +++++ .../Games/NightWalkAgb/AgbNightWalk.cs | 33 ++++- .../Scripts/Games/NightWalkAgb/AgbPlatform.cs | 20 ++- .../Games/NightWalkAgb/AgbPlatformHandler.cs | 5 + .../Scripts/Games/NightWalkAgb/AgbPlayYan.cs | 20 ++- 9 files changed, 345 insertions(+), 6 deletions(-) create mode 100644 Assets/Resources/Sprites/Games/NightWalkGBA/Animations/Platform/EndPop.anim create mode 100644 Assets/Resources/Sprites/Games/NightWalkGBA/Animations/Platform/EndPop.anim.meta diff --git a/Assets/Resources/Games/nightWalkAgb.prefab b/Assets/Resources/Games/nightWalkAgb.prefab index f79756f73..5821988bc 100644 --- a/Assets/Resources/Games/nightWalkAgb.prefab +++ b/Assets/Resources/Games/nightWalkAgb.prefab @@ -32,6 +32,90 @@ Transform: m_Father: {fileID: 840478359318578090} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &822756201458366926 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2147286864263159364} + - component: {fileID: 7232777666375322427} + m_Layer: 0 + m_Name: Sprite + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2147286864263159364 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 822756201458366926} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -6.5, y: -1.49, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6177218130025753291} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &7232777666375322427 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 822756201458366926} + 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: 5 + m_Sprite: {fileID: -1214346626, guid: 425aa48453840844d9f049d7ebd849ce, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.81, y: 1.85} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &909896576730141613 GameObject: m_ObjectHideFlags: 0 @@ -255,6 +339,38 @@ Transform: m_Father: {fileID: 840478359318578090} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2174098948178628587 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6177218130025753291} + m_Layer: 0 + m_Name: Star + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &6177218130025753291 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2174098948178628587} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2147286864263159364} + m_Father: {fileID: 2033698246912533277} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2784166155208804841 GameObject: m_ObjectHideFlags: 0 @@ -403,6 +519,7 @@ Transform: m_Children: - {fileID: 3224445989681038566} - {fileID: 840478359318578090} + - {fileID: 6177218130025753291} m_Father: {fileID: 3309616054814014854} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -427,6 +544,7 @@ MonoBehaviour: - {fileID: 4923294060630520358} - {fileID: 435934720256010376} - {fileID: 6809338130218058776} + star: {fileID: 2174098948178628587} randomMinBalloonX: -0.45 randomMaxBalloonX: 0.45 --- !u!95 &8149215091084911589 diff --git a/Assets/Resources/Prefabs/Games/NightWalkAgb/JumpPlatform.prefab b/Assets/Resources/Prefabs/Games/NightWalkAgb/JumpPlatform.prefab index 32252d8fb..9cf6f6e0a 100644 --- a/Assets/Resources/Prefabs/Games/NightWalkAgb/JumpPlatform.prefab +++ b/Assets/Resources/Prefabs/Games/NightWalkAgb/JumpPlatform.prefab @@ -241,7 +241,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!4 &9016694733661613840 Transform: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Sprites/Games/NightWalkGBA/Animations/Platform/EndPop.anim b/Assets/Resources/Sprites/Games/NightWalkGBA/Animations/Platform/EndPop.anim new file mode 100644 index 000000000..f32c34841 --- /dev/null +++ b/Assets/Resources/Sprites/Games/NightWalkGBA/Animations/Platform/EndPop.anim @@ -0,0 +1,116 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: EndPop + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Rod/light + classID: 1 + script: {fileID: 0} + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: 2115410046, guid: 425aa48453840844d9f049d7ebd849ce, type: 3} + - time: 0.05 + value: {fileID: -199434903, guid: 425aa48453840844d9f049d7ebd849ce, type: 3} + attribute: m_Sprite + path: Rod + classID: 212 + script: {fileID: 0} + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 2539502518 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 952365541 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: 2115410046, guid: 425aa48453840844d9f049d7ebd849ce, type: 3} + - {fileID: -199434903, guid: 425aa48453840844d9f049d7ebd849ce, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.06666667 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Rod/light + classID: 1 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Games/NightWalkGBA/Animations/Platform/EndPop.anim.meta b/Assets/Resources/Sprites/Games/NightWalkGBA/Animations/Platform/EndPop.anim.meta new file mode 100644 index 000000000..50bcca2b9 --- /dev/null +++ b/Assets/Resources/Sprites/Games/NightWalkGBA/Animations/Platform/EndPop.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4d2555ebc5db61d46964e3ddf0750840 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/NightWalkGBA/Animations/Platform/JumpPlatform.controller b/Assets/Resources/Sprites/Games/NightWalkGBA/Animations/Platform/JumpPlatform.controller index a51f96700..5b0ea3942 100644 --- a/Assets/Resources/Sprites/Games/NightWalkGBA/Animations/Platform/JumpPlatform.controller +++ b/Assets/Resources/Sprites/Games/NightWalkGBA/Animations/Platform/JumpPlatform.controller @@ -52,6 +52,32 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1102 &-4839982000027670488 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: EndPop + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 4d2555ebc5db61d46964e3ddf0750840, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1107 &-523919434421660029 AnimatorStateMachine: serializedVersion: 6 @@ -94,6 +120,9 @@ AnimatorStateMachine: - serializedVersion: 1 m_State: {fileID: 8858605399677872664} m_Position: {x: 550, y: 650, z: 0} + - serializedVersion: 1 + m_State: {fileID: -4839982000027670488} + m_Position: {x: 585, y: 715, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] diff --git a/Assets/Scripts/Games/NightWalkAgb/AgbNightWalk.cs b/Assets/Scripts/Games/NightWalkAgb/AgbNightWalk.cs index 31d109dfd..6bada5fd7 100644 --- a/Assets/Scripts/Games/NightWalkAgb/AgbNightWalk.cs +++ b/Assets/Scripts/Games/NightWalkAgb/AgbNightWalk.cs @@ -68,6 +68,14 @@ namespace HeavenStudio.Games.Loaders }, preFunctionLength = 1 }, + new GameAction("end", "End") + { + parameters = new List() + { + new Param("minAmount", new EntityTypes.Integer(0, 10000, 20), "Minimum Jumps Required"), + new Param("minAmount", new EntityTypes.Integer(0, 10000, 100), "Minimum Jumps Required (Persistent)"), + } + }, new GameAction("noJump", "No Jumping") { defaultLength = 4, @@ -97,7 +105,7 @@ namespace HeavenStudio.Games.Loaders new Param("am", new EntityTypes.Integer(0, 100, 1), "Star Amount", "How many stars will evolve?"), new Param("repeat", new EntityTypes.Integer(0, 100, 1), "Repeat Amount", "How many times will this event repeat?"), } - } + }, }); } } @@ -146,6 +154,12 @@ namespace HeavenStudio.Games } [NonSerialized] public int evolveAmount = 1; + [NonSerialized] public int hitJumps; + [NonSerialized] public static int hitJumpsPersist; + + [NonSerialized] public double endBeat = double.MaxValue; + [NonSerialized] public int requiredJumps; + [NonSerialized] public int requiredJumpsP; new void OnDrawGizmos() { @@ -205,6 +219,15 @@ namespace HeavenStudio.Games } } + private void OnDestroy() + { + foreach (var evt in scheduledInputs) + { + evt.Disable(); + } + if (!Conductor.instance.isPlaying) hitJumpsPersist = 0; + } + public void ForceEvolve(double beat, float length, int starAmount, int repeatAmount) { List actions = new(); @@ -243,13 +266,21 @@ namespace HeavenStudio.Games public override void OnGameSwitch(double beat) { SetCountInBeat(beat); + SetEndValues(beat); platformHandler.SpawnPlatforms(beat); } public override void OnPlay(double beat) { SetCountInBeat(beat); + SetEndValues(beat); platformHandler.SpawnPlatforms(beat); + hitJumpsPersist = 0; + } + + public void SetEndValues(double beat) + { + } public static void FishSound(double beat) diff --git a/Assets/Scripts/Games/NightWalkAgb/AgbPlatform.cs b/Assets/Scripts/Games/NightWalkAgb/AgbPlatform.cs index 9811e04e8..1038214a6 100644 --- a/Assets/Scripts/Games/NightWalkAgb/AgbPlatform.cs +++ b/Assets/Scripts/Games/NightWalkAgb/AgbPlatform.cs @@ -127,11 +127,14 @@ namespace HeavenStudio.Games.Scripts_AgbNightWalk { new BeatAction.Action(endBeat, delegate { - if (canKick && !stopped) + if (!stopped) { SoundByte.PlayOneShotGame("nightWalkAgb/boxKick"); - anim.Play("Kick", 0, 0); - } + if (canKick) + { + anim.Play("Kick", 0, 0); + } + } }) }); } @@ -256,6 +259,17 @@ namespace HeavenStudio.Games.Scripts_AgbNightWalk break; } game.starHandler.Evolve(game.evolveAmount); + game.hitJumps++; + AgbNightWalk.hitJumpsPersist++; + } + + private void JustEnd(PlayerActionEvent caller, float state) + { + anim.DoScaledAnimationAsync("EndPop", 0.5f); + handler.StopAll(); + handler.DestroyPlatforms(caller.timer + caller.startBeat + 4, endBeat - 2, endBeat + 1); + game.playYan.Float(Conductor.instance.songPositionInBeats); + handler.DevolveAll(); } private void Miss(PlayerActionEvent caller) diff --git a/Assets/Scripts/Games/NightWalkAgb/AgbPlatformHandler.cs b/Assets/Scripts/Games/NightWalkAgb/AgbPlatformHandler.cs index c235a5008..035acca87 100644 --- a/Assets/Scripts/Games/NightWalkAgb/AgbPlatformHandler.cs +++ b/Assets/Scripts/Games/NightWalkAgb/AgbPlatformHandler.cs @@ -98,6 +98,11 @@ namespace HeavenStudio.Games.Scripts_AgbNightWalk stopStars = true; } + public void DevolveAll() + { + starHandler.Devolve(); + } + public bool PlatformsStopped() { return allPlatforms[0].stopped; diff --git a/Assets/Scripts/Games/NightWalkAgb/AgbPlayYan.cs b/Assets/Scripts/Games/NightWalkAgb/AgbPlayYan.cs index 5b5bc277e..35f77ee67 100644 --- a/Assets/Scripts/Games/NightWalkAgb/AgbPlayYan.cs +++ b/Assets/Scripts/Games/NightWalkAgb/AgbPlayYan.cs @@ -15,12 +15,14 @@ namespace HeavenStudio.Games.Scripts_AgbNightWalk Jumping, Shocked, Falling, - Whiffing + Whiffing, + Floating } private JumpingState jumpingState; private AgbNightWalk game; private double jumpBeat; [SerializeField] private List balloons = new List(); + [SerializeField] private GameObject star; private Path jumpPath; private Path whiffPath; private Animator anim; @@ -88,6 +90,12 @@ namespace HeavenStudio.Games.Scripts_AgbNightWalk Walk(); } break; + case JumpingState.Floating: + float normalizedFloatBeat = cond.GetPositionFromBeat(playYanFallBeat, 10); + EasingFunction.Function funcF = EasingFunction.GetEasingFunction(EasingFunction.Ease.Linear); + float newPlayYanYF = funcF(fallStartY, 12, normalizedFloatBeat); + transform.localPosition = new Vector3(0, newPlayYanYF); + break; } } } @@ -109,6 +117,16 @@ namespace HeavenStudio.Games.Scripts_AgbNightWalk Update(); } + public void Float(double beat) + { + jumpingState = JumpingState.Floating; + anim.Play("Jump", 0, 0); + playYanFallBeat = beat; + fallStartY = transform.localPosition.y; + star.SetActive(true); + Update(); + } + public void Jump(double beat) { jumpingState = JumpingState.Jumping;