From 76a52cc7e6c30452f99a33680bb471f3348bae36 Mon Sep 17 00:00:00 2001 From: ThePurpleAnon <100617766+ThePurpleAnon@users.noreply.github.com> Date: Mon, 26 Feb 2024 03:05:31 -0600 Subject: [PATCH] the stone platforms man my god this took so much work --- .../Games/ChargingChicken/Island.prefab | 176 +++++++++++++++++- .../Animations/StonePlatform.meta | 8 + .../StonePlatform/PlatformAnim.controller | 130 +++++++++++++ .../PlatformAnim.controller.meta | 8 + .../StonePlatform/PlatformFall.anim | 169 +++++++++++++++++ .../StonePlatform/PlatformFall.anim.meta | 8 + .../Animations/StonePlatform/PlatformSet.anim | 169 +++++++++++++++++ .../StonePlatform/PlatformSet.anim.meta | 8 + .../ChargingChicken/chicken_cellshader.mat | 2 +- Assets/Scenes/Editor.unity | 4 +- .../Games/ChargingChicken/ChargingChicken.cs | 113 +++++++++-- .../Scripts/Games/ChargingChicken/Island.cs | 32 ++++ 12 files changed, 810 insertions(+), 17 deletions(-) create mode 100644 Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform.meta create mode 100644 Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformAnim.controller create mode 100644 Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformAnim.controller.meta create mode 100644 Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformFall.anim create mode 100644 Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformFall.anim.meta create mode 100644 Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformSet.anim create mode 100644 Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformSet.anim.meta diff --git a/Assets/Resources/Prefabs/Games/ChargingChicken/Island.prefab b/Assets/Resources/Prefabs/Games/ChargingChicken/Island.prefab index 4d48b30a9..8fe091abc 100644 --- a/Assets/Resources/Prefabs/Games/ChargingChicken/Island.prefab +++ b/Assets/Resources/Prefabs/Games/ChargingChicken/Island.prefab @@ -33,6 +33,38 @@ Transform: m_Father: {fileID: 732984989503240041} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &472791442889573690 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6716266173113673127} + m_Layer: 0 + m_Name: PlatformHolder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6716266173113673127 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 472791442889573690} + 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: 315182087035321974} + m_Father: {fileID: 5055808538011896587} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1812278929891971987 GameObject: m_ObjectHideFlags: 0 @@ -370,6 +402,60 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &3778088294134279665 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5055808538011896587} + - component: {fileID: 7722949420508725763} + m_Layer: 0 + m_Name: StonePlatform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &5055808538011896587 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3778088294134279665} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.57845163, y: 0.6581054, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6716266173113673127} + m_Father: {fileID: 732984989503240041} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!95 &7722949420508725763 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3778088294134279665} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 1cd7bc23c5f7cba44a7394b2c3162749, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 --- !u!1 &4833355630908958571 GameObject: m_ObjectHideFlags: 0 @@ -399,6 +485,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 8712487420719949613} + - {fileID: 5055808538011896587} m_Father: {fileID: 2904719894427165250} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -597,7 +684,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5513530340598116815} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 5.34, y: -0.04, z: 0} + m_LocalPosition: {x: -4.04, y: 0, z: 0} m_LocalScale: {x: 1.39, y: 1.39, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -874,10 +961,13 @@ MonoBehaviour: m_EditorClassIdentifier: ChargerAnim: {fileID: 5844263853418800467} FakeChickenAnim: {fileID: 2498304414694619161} + PlatformAnim: {fileID: 7722949420508725763} IslandPos: {fileID: 2904719894427165250} CollapsedLandmass: {fileID: 6281723798938720719} BigLandmass: {fileID: 8004014250941503462} SmallLandmass: {fileID: 5628817811886241001} + FullLandmass: {fileID: 7495323784547262482} + StonePlatform: {fileID: 3778088294134279665} --- !u!1 &5628817811886241001 GameObject: m_ObjectHideFlags: 0 @@ -1503,6 +1593,90 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_renderer: {fileID: 7297401342006738689} m_maskType: 0 +--- !u!1 &7681896577572022242 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 315182087035321974} + - component: {fileID: 523039980841813546} + m_Layer: 0 + m_Name: Platform + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &315182087035321974 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7681896577572022242} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.8514514, y: -0.9991054, z: 0} + m_LocalScale: {x: 1.03, y: 1.03, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6716266173113673127} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &523039980841813546 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7681896577572022242} + 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: 2100000, guid: acc543038ca31514fa57524efa7642f9, type: 2} + 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: 0 + m_Sprite: {fileID: -1149931286, guid: 3ac0eae7763e7cc4ab4d8c48e0be1115, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 2.68, y: 0.76} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &7776568554945312269 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform.meta b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform.meta new file mode 100644 index 000000000..77b42c6f3 --- /dev/null +++ b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1000adf8a6035b3488104a7e5e0c5d16 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformAnim.controller b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformAnim.controller new file mode 100644 index 000000000..0e4b48b0a --- /dev/null +++ b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformAnim.controller @@ -0,0 +1,130 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-4369373491152170125 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Nothing + 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: 0} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-1357631605995894141 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Set + 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: e2fec8ee57b08cd4cbb7bb4391f86d27, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PlatformAnim + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 592504463933430062} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1107 &592504463933430062 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -4369373491152170125} + m_Position: {x: 40, y: 220, z: 0} + - serializedVersion: 1 + m_State: {fileID: 6395301139301764442} + m_Position: {x: 300, y: 100, z: 0} + - serializedVersion: 1 + m_State: {fileID: -1357631605995894141} + m_Position: {x: 300, y: 200, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -4369373491152170125} +--- !u!1102 &6395301139301764442 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fall + 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: 1d9b67a44d38fee44ac21774bb3d47cc, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformAnim.controller.meta b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformAnim.controller.meta new file mode 100644 index 000000000..4c84da860 --- /dev/null +++ b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformAnim.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1cd7bc23c5f7cba44a7394b2c3162749 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformFall.anim b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformFall.anim new file mode 100644 index 000000000..0f82f3b42 --- /dev/null +++ b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformFall.anim @@ -0,0 +1,169 @@ +%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: PlatformFall + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, 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.16666667 + value: {x: 0, y: -7, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, 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} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: PlatformHolder + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + 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: 2751765835 + attribute: 1 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.16666667 + 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: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.x + path: PlatformHolder + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: -7 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.y + path: PlatformHolder + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.z + path: PlatformHolder + classID: 4 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformFall.anim.meta b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformFall.anim.meta new file mode 100644 index 000000000..0d30f5465 --- /dev/null +++ b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformFall.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1d9b67a44d38fee44ac21774bb3d47cc +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformSet.anim b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformSet.anim new file mode 100644 index 000000000..8f830404a --- /dev/null +++ b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformSet.anim @@ -0,0 +1,169 @@ +%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: PlatformSet + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 10, z: 0} + inSlope: {x: -0, y: -42, z: -0} + outSlope: {x: 0, y: -20, 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.5 + value: {x: 0, y: 0, z: 0} + inSlope: {x: -0, y: -20, z: -0} + outSlope: {x: 0, y: -42, 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} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: PlatformHolder + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + 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: 2751765835 + attribute: 1 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.5 + 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: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.5 + value: 0 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.x + path: PlatformHolder + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 10 + inSlope: -42 + outSlope: -20 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.5 + value: 0 + inSlope: -20 + outSlope: -42 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.y + path: PlatformHolder + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.5 + value: 0 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.z + path: PlatformHolder + classID: 4 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformSet.anim.meta b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformSet.anim.meta new file mode 100644 index 000000000..b306d39c6 --- /dev/null +++ b/Assets/Resources/Sprites/Games/ChargingChicken/Animations/StonePlatform/PlatformSet.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e2fec8ee57b08cd4cbb7bb4391f86d27 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/ChargingChicken/chicken_cellshader.mat b/Assets/Resources/Sprites/Games/ChargingChicken/chicken_cellshader.mat index 51f82a051..565ed04ef 100644 --- a/Assets/Resources/Sprites/Games/ChargingChicken/chicken_cellshader.mat +++ b/Assets/Resources/Sprites/Games/ChargingChicken/chicken_cellshader.mat @@ -83,7 +83,7 @@ Material: - _ZWrite: 1 m_Colors: - _AddColor: {r: 0, g: 0, b: 0, a: 0} - - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1} - _ColorAlpha: {r: 1, g: 0, b: 0, a: 1} - _ColorBravo: {r: 0, g: 1, b: 0, a: 1} - _ColorDelta: {r: 0, g: 0, b: 1, a: 1} diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index d544c9b7b..4d2dc9498 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -26851,7 +26851,7 @@ MonoBehaviour: m_HandleRect: {fileID: 1589389271} m_Direction: 2 m_Value: 1 - m_Size: 0.3867109 + m_Size: 0.9843816 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -32707,7 +32707,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 97.81546} + m_AnchoredPosition: {x: 0, y: 101.510185} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!222 &1154875945 diff --git a/Assets/Scripts/Games/ChargingChicken/ChargingChicken.cs b/Assets/Scripts/Games/ChargingChicken/ChargingChicken.cs index fb7956d89..70b43057d 100644 --- a/Assets/Scripts/Games/ChargingChicken/ChargingChicken.cs +++ b/Assets/Scripts/Games/ChargingChicken/ChargingChicken.cs @@ -128,9 +128,17 @@ namespace HeavenStudio.Games Island nextIsland; Island currentIsland; Island staleIsland; + Island stone; double journeyIntendedLength; + StonePlatform[] stonePlatformJourney; - double platformDistanceConstant = 5.35; + private struct StonePlatform + { + public int stoneNumber; + public Island thisPlatform; + } + + double platformDistanceConstant = 5.35 / 2; int platformsPerBeat = 4; public enum DrumLoopList @@ -443,18 +451,20 @@ namespace HeavenStudio.Games //set up the big beataction var actions = new List(); - //"X yards to goal" text + //"X yards to goal" text, spawn the journey double yardsTextLength = length; + double journeyBeat = beat + yardsTextLength; actions.Add(new(beat - 2, delegate { yardsText.text = $"{yardsTextLength} yards to the goal."; + SpawnStones(journeyBeat, yardsTextLength - 1); })); - //chicken ducks into the car window and the next island is spawned, and the bubble text is set up - double journeyBeat = beat + yardsTextLength; + //chicken ducks into the car window, and the bubble text is set up, and the platform noise plays, and next island spawns actions.Add(new(beat - 1, delegate { ChickenAnim.DoScaledAnimationAsync("Prepare", 0.5f); - SpawnJourney(journeyBeat, yardsTextLength - 1); bubbleEndCount = beat + length; + SoundByte.PlayOneShotGame("chargingChicken/platformSet"); + SpawnJourney(journeyBeat, yardsTextLength - 1); })); //spawns the countdown bubble @@ -586,14 +596,14 @@ namespace HeavenStudio.Games nextIsland.transform.localPosition = new Vector3((float)(length * platformDistanceConstant * platformsPerBeat), 0, 0); nextIsland.BigLandmass.SetActive(true); - nextIsland.journeySave = length * platformDistanceConstant * platformsPerBeat; - nextIsland.journeyStart = length * platformDistanceConstant * platformsPerBeat; + nextIsland.journeySave = length * platformDistanceConstant * platformsPerBeat + (platformDistanceConstant / 2); + nextIsland.journeyStart = length * platformDistanceConstant * platformsPerBeat + (platformDistanceConstant / 2); nextIsland.journeyEnd = 0; nextIsland.journeyLength = length; - currentIsland.journeySave = length * platformDistanceConstant * platformsPerBeat; + currentIsland.journeySave = length * platformDistanceConstant * platformsPerBeat + (platformDistanceConstant / 2); currentIsland.journeyStart = 0; - currentIsland.journeyEnd = -length * platformDistanceConstant * platformsPerBeat; + currentIsland.journeyEnd = -length * platformDistanceConstant * platformsPerBeat - (platformDistanceConstant / 2); currentIsland.journeyLength = length; journeyIntendedLength = beat - length - 1; @@ -613,6 +623,31 @@ namespace HeavenStudio.Games }); } + public void SpawnStones(double beat, double length) + { + stonePlatformJourney = new StonePlatform[(int)(length * 4 - 1)]; + for ( int i = 0; i < length * 4 - 1; i++ ) + { + stonePlatformJourney[i].thisPlatform = Instantiate(IslandBase, transform).GetComponent(); + stonePlatformJourney[i].stoneNumber = i; + } + + foreach (var a in stonePlatformJourney) + { + stone = a.thisPlatform; + stone.transform.localPosition = new Vector3((float)(((a.stoneNumber + 1) * platformDistanceConstant) + (platformDistanceConstant / 2)), 0, 0); + stone.BecomeStonePlatform(); + stone.StoneFall(); + + stone.journeySave = length * platformDistanceConstant * platformsPerBeat + (platformDistanceConstant / 2); + stone.journeyStart = ((a.stoneNumber + 1) * platformDistanceConstant) + (platformDistanceConstant / 2); + stone.journeyEnd = ((a.stoneNumber) * platformDistanceConstant) + (platformDistanceConstant / 2) - (length * platformDistanceConstant * platformsPerBeat - (platformDistanceConstant / 2)); + stone.journeyLength = length; + + stone.respawnEnd = beat + length; + } + } + public void BlastOff(float state = 0, bool missed = true) { //sound @@ -638,21 +673,40 @@ namespace HeavenStudio.Games nextIsland.journeyBlastOffTime = Conductor.instance.songPositionInBeatsAsDouble; currentIsland.journeyBlastOffTime = Conductor.instance.songPositionInBeatsAsDouble; + foreach (var a in stonePlatformJourney) + { + stone = a.thisPlatform; + stone.isMoving = true; + stone.journeyBlastOffTime = Conductor.instance.songPositionInBeatsAsDouble; + } + nextIsland.PositionIsland(state); if(missed) { - nextIsland.journeyEnd += (nextIsland.journeyLength - ((nextIsland.journeyBlastOffTime - journeyIntendedLength)) * (nextIsland.journeyLength / (nextIsland.journeyLength + 1))) * platformDistanceConstant * platformsPerBeat; - nextIsland.journeyLength = Math.Clamp(((nextIsland.journeyBlastOffTime - journeyIntendedLength) / 2) + (nextIsland.journeyLength / 2) - 1, 0, nextIsland.journeyLength - 1); + nextIsland.journeyEnd += (nextIsland.journeyLength - ((nextIsland.journeyBlastOffTime - journeyIntendedLength)) * (nextIsland.journeyLength / (nextIsland.journeyLength + 1))) * platformDistanceConstant * platformsPerBeat + (platformDistanceConstant / 2); + nextIsland.journeyLength = Math.Clamp(((nextIsland.journeyBlastOffTime - journeyIntendedLength) / 1.5) + (nextIsland.journeyLength / 3) - 1, 0, nextIsland.journeyLength - 1); - currentIsland.journeyEnd += ((currentIsland.journeyLength - (currentIsland.journeyBlastOffTime - journeyIntendedLength) + 1) * (currentIsland.journeyLength / (currentIsland.journeyLength + 1))) * platformDistanceConstant * platformsPerBeat; - currentIsland.journeyLength = Math.Clamp(((currentIsland.journeyBlastOffTime - journeyIntendedLength) / 2) + (currentIsland.journeyLength / 2) - 1, 0, currentIsland.journeyLength - 1.5); + currentIsland.journeyEnd += ((currentIsland.journeyLength - (currentIsland.journeyBlastOffTime - journeyIntendedLength) + 1) * (currentIsland.journeyLength / (currentIsland.journeyLength + 1))) * platformDistanceConstant * platformsPerBeat + (platformDistanceConstant / 2); + currentIsland.journeyLength = Math.Clamp(((currentIsland.journeyBlastOffTime - journeyIntendedLength) / 1.5) + (currentIsland.journeyLength / 3) - 1, 0, currentIsland.journeyLength - 1.5); + + foreach (var a in stonePlatformJourney) + { + stone = a.thisPlatform; + stone.journeyEnd += (stone.journeyLength - ((stone.journeyBlastOffTime - journeyIntendedLength)) * (stone.journeyLength / (stone.journeyLength + 1))) * platformDistanceConstant * platformsPerBeat + (platformDistanceConstant / 2); + stone.journeyLength = Math.Clamp(((stone.journeyBlastOffTime - journeyIntendedLength) / 1.5) + (stone.journeyLength / 3) - 1, 0, stone.journeyLength - 1); + } BeatAction.New(GameManager.instance, new List() { new BeatAction.Action(Conductor.instance.songPositionInBeatsAsDouble + currentIsland.journeyLength, delegate { nextIsland.isMoving = false; currentIsland.isMoving = false; + foreach (var a in stonePlatformJourney) + { + stone = a.thisPlatform; + stone.isMoving = false; + } ChickenFall(); }), }); @@ -663,11 +717,22 @@ namespace HeavenStudio.Games currentIsland.journeyEnd -= state * 1.03f; + foreach (var a in stonePlatformJourney) + { + stone = a.thisPlatform; + stone.journeyEnd -= state * 1.03f; + } + BeatAction.New(GameManager.instance, new List() { new BeatAction.Action(journeyIntendedLength + (currentIsland.journeyLength * 2) + 1, delegate { nextIsland.isMoving = false; currentIsland.isMoving = false; + foreach (var a in stonePlatformJourney) + { + stone = a.thisPlatform; + stone.isMoving = false; + } }), }); } @@ -694,6 +759,11 @@ namespace HeavenStudio.Games isInputting = false; nextIsland.journeyEnd = nextIsland.journeyLength * platformDistanceConstant * platformsPerBeat; currentIsland.journeyEnd = 0; + foreach (var a in stonePlatformJourney) + { + stone = a.thisPlatform; + stone.journeyEnd = ((a.stoneNumber + 1) * platformDistanceConstant) + (platformDistanceConstant / 2); + } //erase text yardsText.text = ""; @@ -713,6 +783,11 @@ namespace HeavenStudio.Games isInputting = false; nextIsland.journeyEnd = nextIsland.journeyLength * platformDistanceConstant * platformsPerBeat; currentIsland.journeyEnd = 0; + foreach (var a in stonePlatformJourney) + { + stone = a.thisPlatform; + stone.journeyEnd = ((a.stoneNumber + 1) * platformDistanceConstant) + (platformDistanceConstant / 2); + } //erase text yardsText.text = ""; @@ -747,6 +822,13 @@ namespace HeavenStudio.Games nextIsland.isRespawning = true; nextIsland.FakeChickenAnim.DoScaledAnimationAsync("Respawn", 0.5f); + foreach (var a in stonePlatformJourney) + { + stone = a.thisPlatform; + stone.respawnStart = Conductor.instance.songPositionInBeatsAsDouble + 0.5; + stone.isRespawning = true; + } + BeatAction.New(GameManager.instance, new List() { new BeatAction.Action(nextIsland.respawnEnd, delegate { @@ -756,6 +838,11 @@ namespace HeavenStudio.Games staleIsland.FakeChickenAnim.DoScaledAnimationAsync("Idle", 0.5f); currentIsland.FakeChickenAnim.DoScaledAnimationAsync("Idle", 0.5f); nextIsland.FakeChickenAnim.DoScaledAnimationAsync("Idle", 0.5f); + foreach (var a in stonePlatformJourney) + { + stone = a.thisPlatform; + stone.isRespawning = false; + } }), }); } diff --git a/Assets/Scripts/Games/ChargingChicken/Island.cs b/Assets/Scripts/Games/ChargingChicken/Island.cs index 74fb1aea9..cd4081a52 100644 --- a/Assets/Scripts/Games/ChargingChicken/Island.cs +++ b/Assets/Scripts/Games/ChargingChicken/Island.cs @@ -14,10 +14,13 @@ namespace HeavenStudio.Games.Scripts_ChargingChicken [SerializeField] public Animator ChargerAnim; [SerializeField] public Animator FakeChickenAnim; + [SerializeField] public Animator PlatformAnim; [SerializeField] public Transform IslandPos; [SerializeField] public Transform CollapsedLandmass; [SerializeField] public GameObject BigLandmass; [SerializeField] public GameObject SmallLandmass; + [SerializeField] public GameObject FullLandmass; + [SerializeField] public GameObject StonePlatform; [NonSerialized]public double journeySave = 0; [NonSerialized]public double journeyStart = 0; @@ -30,6 +33,9 @@ namespace HeavenStudio.Games.Scripts_ChargingChicken [NonSerialized]public double respawnEnd = 0; [NonSerialized]public bool isRespawning = false; + [NonSerialized]public bool isStonePlatform = false; + [NonSerialized]public bool canFall = false; + #endregion //global methods @@ -49,6 +55,12 @@ namespace HeavenStudio.Games.Scripts_ChargingChicken float newX2 = Util.EasingFunction.Linear((float)journeyStart - (float)journeySave, (float)journeyEnd, 1 - value2); IslandPos.localPosition = new Vector3(newX2, 0, 0); } + if (canFall && IslandPos.localPosition.x < 0 && !isRespawning) + { + PlatformAnim.DoScaledAnimationAsync("Fall", 0.5f); + SoundByte.PlayOneShotGame("chargingChicken/platformFall", volume: 0.5f); + canFall = false; + } } #endregion @@ -89,5 +101,25 @@ namespace HeavenStudio.Games.Scripts_ChargingChicken } #endregion + + //stone platform methods + #region Stone Platform Methods + + public void BecomeStonePlatform() + { + isStonePlatform = true; + canFall = true; + + BigLandmass.SetActive(false); + FullLandmass.SetActive(false); + StonePlatform.SetActive(true); + } + + public void StoneFall() + { + PlatformAnim.DoScaledAnimationAsync("Set", 0.5f); + } + + #endregion } } \ No newline at end of file