diff --git a/Assets/Resources/Sprites/Editor/GameIcons/clappyTrio.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/clappyTrio.png.meta index b8bbed67..47cb370e 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/clappyTrio.png.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/clappyTrio.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e0f09d37bad24494f9baf20b0128e076 +guid: 490655a41ca55f2438ff66b0f3c70101 TextureImporter: internalIDToNameTable: [] externalObjects: {} @@ -68,7 +68,7 @@ TextureImporter: maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 @@ -80,7 +80,7 @@ TextureImporter: maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 @@ -92,7 +92,7 @@ TextureImporter: maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/forkLifter.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/forkLifter.png.meta index 112b3228..c2645db8 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/forkLifter.png.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/forkLifter.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 111c1e7d77e9f2745b60952a72e2b57f +guid: 7e37af8cd53eb604ba9c7d5635061bdb TextureImporter: internalIDToNameTable: [] externalObjects: {} @@ -68,7 +68,7 @@ TextureImporter: maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 @@ -80,7 +80,7 @@ TextureImporter: maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 @@ -92,7 +92,7 @@ TextureImporter: maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/karateman.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/karateman.png.meta index bf38972d..e5935a5d 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/karateman.png.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/karateman.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1bbc3c5c0d46c9945a5e9958109c4a7a +guid: aec189a1b9e016c4c970c691ae45a32f TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Assets/Resources/Sprites/Editor/GameIcons/spaceSoccer.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/spaceSoccer.png.meta new file mode 100644 index 00000000..9608a260 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/GameIcons/spaceSoccer.png.meta @@ -0,0 +1,120 @@ +fileFormatVersion: 2 +guid: a6592c5e6daddbc46b2f6917466b1873 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/GameIcons/spaceball.png.meta b/Assets/Resources/Sprites/Editor/GameIcons/spaceball.png.meta index c7cb66cf..c3d11d8e 100644 --- a/Assets/Resources/Sprites/Editor/GameIcons/spaceball.png.meta +++ b/Assets/Resources/Sprites/Editor/GameIcons/spaceball.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4fdd145b871663a4cb9b04f0573bd938 +guid: f5d32605d8bfea646bea98887b193595 TextureImporter: internalIDToNameTable: [] externalObjects: {} @@ -68,7 +68,7 @@ TextureImporter: maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 @@ -80,7 +80,7 @@ TextureImporter: maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 @@ -92,7 +92,7 @@ TextureImporter: maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 diff --git a/Assets/Resources/Sprites/Editor/UI/Animations.meta b/Assets/Resources/Sprites/Editor/UI/Animations.meta new file mode 100644 index 00000000..82aa2c69 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/UI/Animations.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3b52022747ead8f4f9350334d93eaf66 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay.meta b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay.meta new file mode 100644 index 00000000..43243660 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6e6590b46dd23a94bb638159505062c1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Ace.anim b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Ace.anim new file mode 100644 index 00000000..612e1b4c --- /dev/null +++ b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Ace.anim @@ -0,0 +1,143 @@ +%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: Ace + 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.016666668 + value: 4.8 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.11666667 + 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_AnchoredPosition.y + path: Graphic + classID: 224 + script: {fileID: 0} + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: 6240004448574861874, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + - time: 0.016666668 + value: {fileID: 6240004448574861874, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + - time: 0.05 + value: {fileID: -1354652295505547112, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + - time: 0.083333336 + value: {fileID: -159972075433952791, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + - time: 0.11666667 + value: {fileID: 5181778189044111492, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + attribute: m_Sprite + path: Graphic + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + 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: 3003628726 + attribute: 538195251 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 3003628726 + attribute: 2015549526 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: 6240004448574861874, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + - {fileID: 6240004448574861874, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + - {fileID: -1354652295505547112, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + - {fileID: -159972075433952791, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + - {fileID: 5181778189044111492, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.13333334 + 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.016666668 + value: 4.8 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.11666667 + 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_AnchoredPosition.y + path: Graphic + classID: 224 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Ace.anim.meta b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Ace.anim.meta new file mode 100644 index 00000000..04d28dfd --- /dev/null +++ b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Ace.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6d4248f5e4c8aa347b0984ae503471a1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/AutoplayBTN.controller b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/AutoplayBTN.controller new file mode 100644 index 00000000..b839684c --- /dev/null +++ b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/AutoplayBTN.controller @@ -0,0 +1,153 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1107 &-7940777343404888481 +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: -1165429361148655128} + m_Position: {x: 530, y: 40, z: 0} + - serializedVersion: 1 + m_State: {fileID: 5158819430162423145} + m_Position: {x: 310, y: 100, z: 0} + - serializedVersion: 1 + m_State: {fileID: -7001960412950260170} + m_Position: {x: 270, y: -30, 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: -7001960412950260170} +--- !u!1102 &-7001960412950260170 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + 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: 2e762e971dc3c5b47b178975ebd3b997, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-3293383991074194323 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7001960412950260170} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 0 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-1165429361148655128 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ace + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -3293383991074194323} + 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: 6d4248f5e4c8aa347b0984ae503471a1, 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: AutoplayBTN + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: -7940777343404888481} + 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!1102 &5158819430162423145 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Disabled + 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: 8fed5713d06661648b25a3ec02e3459e, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/AutoplayBTN.controller.meta b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/AutoplayBTN.controller.meta new file mode 100644 index 00000000..9ce3b80c --- /dev/null +++ b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/AutoplayBTN.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e14cf58f33ac1e049a8e2aeb92ee57f9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Disabled.anim b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Disabled.anim new file mode 100644 index 00000000..e1a5a9b6 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Disabled.anim @@ -0,0 +1,68 @@ +%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: Disabled + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: -9052558874090446877, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + attribute: m_Sprite + path: Graphic + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + 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: 3003628726 + attribute: 2015549526 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: -9052558874090446877, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.016666668 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + 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: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Disabled.anim.meta b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Disabled.anim.meta new file mode 100644 index 00000000..10ff843f --- /dev/null +++ b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Disabled.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8fed5713d06661648b25a3ec02e3459e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Idle.anim b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Idle.anim new file mode 100644 index 00000000..fd4f7e0d --- /dev/null +++ b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Idle.anim @@ -0,0 +1,68 @@ +%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: Idle + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: 5181778189044111492, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + attribute: m_Sprite + path: Graphic + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + 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: 3003628726 + attribute: 2015549526 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: 5181778189044111492, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.016666668 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + 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: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Idle.anim.meta b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Idle.anim.meta new file mode 100644 index 00000000..98f7ec89 --- /dev/null +++ b/Assets/Resources/Sprites/Editor/UI/Animations/Autoplay/Idle.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2e762e971dc3c5b47b178975ebd3b997 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/UI/PerfectAndPractice.png.meta b/Assets/Resources/Sprites/UI/PerfectAndPractice.png.meta index a45d4ed0..4d8fbcf7 100644 --- a/Assets/Resources/Sprites/UI/PerfectAndPractice.png.meta +++ b/Assets/Resources/Sprites/UI/PerfectAndPractice.png.meta @@ -4,22 +4,25 @@ TextureImporter: internalIDToNameTable: - first: 213: 5181778189044111492 - second: perfect0 + second: PerfectIcon_0 - first: 213: -159972075433952791 - second: perfect1 + second: PerfectIcon_1 - first: 213: -1354652295505547112 - second: perfect2 + second: PerfectIcon_2 - first: 213: 6240004448574861874 - second: perfect3 + second: PerfectIcon_3 - first: 213: -9052558874090446877 - second: perfect4 + second: PerfectIcon_4 - first: 213: 2642146640301145710 second: GoForAPerfect + - first: + 213: -4466103494465645228 + second: PerfectIcon_5 externalObjects: {} serializedVersion: 11 mipmaps: @@ -109,15 +112,15 @@ TextureImporter: serializedVersion: 2 sprites: - serializedVersion: 2 - name: perfect0 + name: PerfectIcon_0 rect: serializedVersion: 2 - x: 1 - y: 225 - width: 70 - height: 70 + x: 4 + y: 146 + width: 128 + height: 138 alignment: 0 - pivot: {x: 0.5, y: 0.5} + pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] @@ -130,15 +133,15 @@ TextureImporter: edges: [] weights: [] - serializedVersion: 2 - name: perfect1 + name: PerfectIcon_1 rect: serializedVersion: 2 - x: 73 - y: 225 - width: 70 - height: 70 + x: 136 + y: 146 + width: 128 + height: 138 alignment: 0 - pivot: {x: 0.5, y: 0.5} + pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] @@ -151,15 +154,15 @@ TextureImporter: edges: [] weights: [] - serializedVersion: 2 - name: perfect2 + name: PerfectIcon_2 rect: serializedVersion: 2 - x: 145 - y: 225 - width: 70 - height: 70 + x: 268 + y: 146 + width: 128 + height: 138 alignment: 0 - pivot: {x: 0.5, y: 0.5} + pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] @@ -172,15 +175,15 @@ TextureImporter: edges: [] weights: [] - serializedVersion: 2 - name: perfect3 + name: PerfectIcon_3 rect: serializedVersion: 2 - x: 1 - y: 153 - width: 70 - height: 70 + x: 400 + y: 146 + width: 128 + height: 138 alignment: 0 - pivot: {x: 0.5, y: 0.5} + pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} outline: [] physicsShape: [] @@ -193,34 +196,13 @@ TextureImporter: edges: [] weights: [] - serializedVersion: 2 - name: perfect4 + name: PerfectIcon_4 rect: serializedVersion: 2 - x: 73 - y: 153 - width: 70 - height: 70 - alignment: 0 - pivot: {x: 0.5, y: 0.5} - border: {x: 0, y: 0, z: 0, w: 0} - outline: [] - physicsShape: [] - tessellationDetail: 0 - bones: [] - spriteID: 3ef5781aaa9de5280800000000000000 - internalID: -9052558874090446877 - vertices: [] - indices: - edges: [] - weights: [] - - serializedVersion: 2 - name: GoForAPerfect - rect: - serializedVersion: 2 - x: 1 - y: 353 - width: 270 - height: 53 + x: 4 + y: 4 + width: 128 + height: 138 alignment: 0 pivot: {x: 0, y: 0} border: {x: 0, y: 0, z: 0, w: 0} @@ -228,8 +210,8 @@ TextureImporter: physicsShape: [] tessellationDetail: 0 bones: [] - spriteID: e6e34a3ee5acaa420800000000000000 - internalID: 2642146640301145710 + spriteID: 3ef5781aaa9de5280800000000000000 + internalID: -9052558874090446877 vertices: [] indices: edges: [] diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 7f3b6286..caca9008 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -275,7 +275,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1852819573} - m_RootOrder: 8 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -542,6 +542,147 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 117889362} m_CullTransparentMesh: 1 +--- !u!1 &121871279 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 121871280} + - component: {fileID: 121871283} + - component: {fileID: 121871282} + - component: {fileID: 121871281} + - component: {fileID: 121871284} + m_Layer: 5 + m_Name: AutoplayBTN + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &121871280 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 121871279} + 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_Children: + - {fileID: 1462347074} + m_Father: {fileID: 1709317943} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -50, y: 0} + m_SizeDelta: {x: 39.99997, y: 40} + m_Pivot: {x: 1, y: 0.5} +--- !u!114 &121871281 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 121871279} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 0 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.7490196, g: 1, b: 1, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 121871282} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &121871282 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 121871279} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 77703dfffd29ca6439338d6adfc62c9b, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 10 +--- !u!222 &121871283 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 121871279} + m_CullTransparentMesh: 1 +--- !u!95 &121871284 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 121871279} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: e14cf58f33ac1e049a8e2aeb92ee57f9, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 --- !u!1 &129013732 GameObject: m_ObjectHideFlags: 0 @@ -574,7 +715,7 @@ RectTransform: m_Children: - {fileID: 191459086} m_Father: {fileID: 1709317943} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} @@ -747,8 +888,8 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 28 - m_fontSizeBase: 28 + m_fontSize: 24 + m_fontSizeBase: 24 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 @@ -1314,10 +1455,11 @@ RectTransform: - {fileID: 1683100749} - {fileID: 1665554290} - {fileID: 678553525} - - {fileID: 903653565} - {fileID: 839543766} - {fileID: 1747099762} - {fileID: 2131880461} + - {fileID: 1271528577} + - {fileID: 903653565} m_Father: {fileID: 1791483803} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -2163,15 +2305,15 @@ RectTransform: m_GameObject: {fileID: 411779173} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.7199426, y: 71.99426, z: 71.99426} + m_LocalScale: {x: 0.71994287, y: 71.994286, z: 71.994286} m_Children: - {fileID: 1310571274} - m_Father: {fileID: 1852819573} - m_RootOrder: 7 + m_Father: {fileID: 2066632680} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -155.8399, y: 152.75832} + m_AnchoredPosition: {x: -155.8399, y: 179.8523} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &411779175 @@ -3112,7 +3254,7 @@ RectTransform: m_LocalScale: {x: 0.01111111, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1852819573} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1} @@ -3805,7 +3947,7 @@ GameObject: - component: {fileID: 689207023} - component: {fileID: 689207022} m_Layer: 5 - m_Name: TimelineGridSelect (1) + m_Name: TempoBG m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -3827,8 +3969,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -54.22} - m_SizeDelta: {x: 0, y: 30} + m_AnchoredPosition: {x: -0, y: -52.244} + m_SizeDelta: {x: 0, y: 33.998} m_Pivot: {x: 0, y: 1} --- !u!114 &689207022 MonoBehaviour: @@ -4250,7 +4392,7 @@ RectTransform: - {fileID: 424396917} - {fileID: 117889363} m_Father: {fileID: 1852819573} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} @@ -4463,6 +4605,7 @@ MonoBehaviour: datamodel: eventObj: {fileID: 0} length: 0 + eligibleToMove: 0 selected: 0 mouseHovering: 0 resizable: 0 @@ -4611,7 +4754,7 @@ GameObject: - component: {fileID: 839543768} - component: {fileID: 839543767} m_Layer: 5 - m_Name: Image + m_Name: Seperator m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -4629,7 +4772,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 202724642} - m_RootOrder: 4 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 1} @@ -4819,11 +4962,11 @@ RectTransform: m_Children: - {fileID: 1119502627} m_Father: {fileID: 202724642} - m_RootOrder: 3 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -270, y: 0} + m_AnchoredPosition: {x: -344.1, y: 0} m_SizeDelta: {x: 160, y: 35} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &903653566 @@ -5439,6 +5582,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1031646380} m_CullTransparentMesh: 1 +--- !u!1 &1037563073 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1037563074} + - component: {fileID: 1037563076} + - component: {fileID: 1037563075} + m_Layer: 5 + m_Name: MusicVolBG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1037563074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1037563073} + 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_Children: [] + m_Father: {fileID: 1852819573} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0, y: -285.822} + m_SizeDelta: {x: 0, y: 33.463} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1037563075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1037563073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1037563076 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1037563073} + m_CullTransparentMesh: 1 --- !u!1 &1038760564 GameObject: m_ObjectHideFlags: 0 @@ -6847,6 +7065,81 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1264012261} m_CullTransparentMesh: 1 +--- !u!1 &1271528576 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1271528577} + - component: {fileID: 1271528579} + - component: {fileID: 1271528578} + m_Layer: 5 + m_Name: Seperator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1271528577 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1271528576} + 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_Children: [] + m_Father: {fileID: 202724642} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 208.7, y: 0} + m_SizeDelta: {x: 2, y: -4} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &1271528578 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1271528576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.6226415, g: 0.6226415, b: 0.6226415, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1271528579 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1271528576} + m_CullTransparentMesh: 1 --- !u!1 &1274849045 GameObject: m_ObjectHideFlags: 0 @@ -7647,8 +7940,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f86858990a87c764892672104bdaef1f, type: 3} m_Name: m_EditorClassIdentifier: - level: {fileID: 4900000, guid: 244c565c8088cfa4597e0ebda9c7de98, type: 3} - music: {fileID: 8300000, guid: e5cf71158cc9bff4a8fbfbca1e73e500, type: 3} + level: {fileID: 4900000, guid: ac276edd56ab99249a2a413e6ac2783d, type: 3} + music: {fileID: 8300000, guid: d6aa7955da64b284589e923dc18c67fb, type: 3} debugUI: 0 playOnStart: 0 editor: 1 @@ -7707,6 +8000,97 @@ MonoBehaviour: layer: {fileID: 1906769994} tempoLayer: {fileID: 1511927534} musicLayer: {fileID: 954835807} +--- !u!1 &1462347073 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1462347074} + - component: {fileID: 1462347077} + - component: {fileID: 1462347076} + - component: {fileID: 1462347075} + m_Layer: 5 + m_Name: Graphic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1462347074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462347073} + 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_Children: [] + m_Father: {fileID: 121871280} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 36.7, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1462347075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462347073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b30dd83a12669d4f973ff5a79ca9842, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5} + m_EffectDistance: {x: 2, y: -2} + m_UseGraphicAlpha: 1 +--- !u!114 &1462347076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462347073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 5181778189044111492, guid: d25eab4740f92b74087acaa572d8a1c4, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1462347077 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1462347073} + m_CullTransparentMesh: 1 --- !u!1 &1474986787 GameObject: m_ObjectHideFlags: 0 @@ -8839,6 +9223,7 @@ RectTransform: - {fileID: 9435781} - {fileID: 1345846030} - {fileID: 1783491358} + - {fileID: 121871280} - {fileID: 129013733} m_Father: {fileID: 1110073995} m_RootOrder: 1 @@ -8933,7 +9318,7 @@ RectTransform: m_Children: - {fileID: 1071942425} m_Father: {fileID: 202724642} - m_RootOrder: 5 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} @@ -9064,7 +9449,7 @@ RectTransform: m_Children: - {fileID: 2037220114} m_Father: {fileID: 1852819573} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} @@ -9626,7 +10011,7 @@ RectTransform: - {fileID: 2142375787} - {fileID: 798021449} m_Father: {fileID: 1852819573} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -9663,11 +10048,12 @@ RectTransform: - {fileID: 238901181} - {fileID: 1527251880} - {fileID: 689207020} + - {fileID: 1037563074} - {fileID: 1747224096} - {fileID: 770589360} - {fileID: 580861938} - {fileID: 1838356727} - - {fileID: 411779174} + - {fileID: 2066632680} - {fileID: 19519745} m_Father: {fileID: 547319783} m_RootOrder: 0 @@ -9747,6 +10133,7 @@ MonoBehaviour: PauseBTN: {fileID: 9435782} StopBTN: {fileID: 1783491359} MetronomeBTN: {fileID: 129013734} + AutoplayBTN: {fileID: 121871281} --- !u!1 &1906769992 GameObject: m_ObjectHideFlags: 0 @@ -10680,6 +11067,57 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2066632679 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2066632680} + - component: {fileID: 2066632681} + m_Layer: 5 + m_Name: BoxSelectionMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2066632680 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2066632679} + 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_Children: + - {fileID: 411779174} + m_Father: {fileID: 1852819573} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -27.094} + m_SizeDelta: {x: 0, y: -115.268} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2066632681 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2066632679} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: 0, y: 0, z: 0, w: 0} + m_Softness: {x: 0, y: 0} --- !u!1 &2127582756 GameObject: m_ObjectHideFlags: 0 @@ -10787,7 +11225,7 @@ RectTransform: m_Children: - {fileID: 1412492899} m_Father: {fileID: 202724642} - m_RootOrder: 6 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index fb6473a2..504293fc 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -37,12 +37,14 @@ namespace RhythmHeavenMania public bool playOnStart; public float startBeat; private GameObject currentGameO; + public bool autoplay; public static GameManager instance { get; private set; } private EventCaller eventCaller; private void Awake() { + autoplay = true; instance = this; } diff --git a/Assets/Scripts/Games/KarateMan/Bomb.cs b/Assets/Scripts/Games/KarateMan/Bomb.cs index 0334eda0..95ab1a62 100644 --- a/Assets/Scripts/Games/KarateMan/Bomb.cs +++ b/Assets/Scripts/Games/KarateMan/Bomb.cs @@ -37,9 +37,14 @@ namespace RhythmHeavenMania.Games.KarateMan eligible = true; } + public override void OnAce() + { + Hit(); + } + private void Update() { - shadow.transform.localPosition = new Vector3(Holder.transform.localPosition.x, shadow.transform.localPosition.y); + shadow.transform.localPosition = new Vector3(Holder.transform.localPosition.x, shadow.transform.localPosition.y); if (!kicked) { if (!missed) @@ -67,9 +72,8 @@ namespace RhythmHeavenMania.Games.KarateMan } - if (PlayerInput.PressedUp() && eligible) + if (PlayerInput.PressedUp()) { - eligible = false; if (state.perfect) { Hit(); @@ -119,6 +123,9 @@ namespace RhythmHeavenMania.Games.KarateMan hitBeat = Conductor.instance.songPositionInBeats; kicked = true; RotHolder.transform.eulerAngles = lastRot; + + KarateJoe.instance.ResetKick(); + KarateJoe.instance.AnimPlay("Kick"); } public void Miss() @@ -126,6 +133,9 @@ namespace RhythmHeavenMania.Games.KarateMan missBeat = Conductor.instance.songPositionInBeats; missed = true; Jukebox.PlayOneShot("miss"); + + KarateJoe.instance.ResetKick(); + KarateJoe.instance.AnimPlay("Kick"); } } } \ No newline at end of file diff --git a/Assets/Scripts/Games/KarateMan/KarateJoe.cs b/Assets/Scripts/Games/KarateMan/KarateJoe.cs index 256ec76a..f5d882ef 100644 --- a/Assets/Scripts/Games/KarateMan/KarateJoe.cs +++ b/Assets/Scripts/Games/KarateMan/KarateJoe.cs @@ -20,7 +20,7 @@ namespace RhythmHeavenMania.Games.KarateMan public GameObject BulbHit; public bool hitBarrel = false; - private Coroutine kickC; + public Coroutine kickC; private float barrelBeat; @@ -33,6 +33,8 @@ namespace RhythmHeavenMania.Games.KarateMan private int currentComboHitInList; private int comboIndex; + public float comboNormalizedBeat = 0; + public static KarateJoe instance { get; set; } private void Start() @@ -45,7 +47,7 @@ namespace RhythmHeavenMania.Games.KarateMan { if (inCombo) { - float normalizedBeat = Conductor.instance.GetLoopPositionFromBeat(comboBeat, 1); + comboNormalizedBeat = Conductor.instance.GetLoopPositionFromBeat(comboBeat, 1); if (hitCombo) { @@ -53,10 +55,10 @@ namespace RhythmHeavenMania.Games.KarateMan } else { - normalizedBeat += 1; + comboNormalizedBeat += 1; } - if (normalizedBeat >= 1 && comboIndex < 1) + if (comboNormalizedBeat >= 1 && comboIndex < 1) { if (hitCombo) { @@ -72,7 +74,7 @@ namespace RhythmHeavenMania.Games.KarateMan comboIndex++; AnimPlay("PunchLeft"); } - else if (normalizedBeat >= 1.25f && comboIndex < 2) + else if (comboNormalizedBeat >= 1.25f && comboIndex < 2) { if (hitCombo) { @@ -88,7 +90,7 @@ namespace RhythmHeavenMania.Games.KarateMan comboIndex++; AnimPlay("PunchRight"); } - else if (normalizedBeat >= 1.5f && comboIndex < 3) + else if (comboNormalizedBeat >= 1.5f && comboIndex < 3) { if (hitCombo) { @@ -100,7 +102,7 @@ namespace RhythmHeavenMania.Games.KarateMan comboIndex++; AnimPlay("ComboCrouch"); } - else if (normalizedBeat >= 1.75f && comboIndex < 4) + else if (comboNormalizedBeat >= 1.75f && comboIndex < 4) { if (hitCombo) { @@ -116,7 +118,7 @@ namespace RhythmHeavenMania.Games.KarateMan comboIndex++; AnimPlay("ComboKick"); } - else if (normalizedBeat >= 2f && comboIndex < 5) + else if (comboNormalizedBeat >= 2f && comboIndex < 5) { if (hitCombo) { @@ -128,13 +130,13 @@ namespace RhythmHeavenMania.Games.KarateMan comboIndex++; AnimPlay("ComboCrouchPunch"); } - else if (normalizedBeat >= 2.05f) + else if (comboNormalizedBeat >= 2.05f) { if (hitCombo) { if (PlayerInput.AltPressedUp()) { - ComboPow(); + // ComboPow(null); } } else @@ -147,75 +149,47 @@ namespace RhythmHeavenMania.Games.KarateMan } else { + if (!inCombo) if (PlayerInput.AltPressed()) { - Combo(); + Combo(null); } } - if (hitBarrel) - { - if (PlayerInput.PressedUp()) - { - if (kickC != null) StopCoroutine(kickC); - hitBarrel = false; - AnimPlay("Kick"); - } - - if (Conductor.instance.songPositionInBeats > barrelBeat + 3) - { - if (kickC != null) StopCoroutine(kickC); - hitBarrel = false; - // should be inebetween for this - AnimPlay("Idle"); - } - } - else + if (!hitBarrel) { if (PlayerInput.Pressed() && !inCombo) { - Swing(); + Swing(null); } } } - private void Combo() + public void Combo(Pot p) { - var EligibleHits = KarateMan.instance.EligibleCombos; - bool canHit = (EligibleHits.Count > 0) && (currentComboHitInList < EligibleHits.Count); - - if (canHit) - { - if (KarateMan.instance.EligibleCombos[currentComboHitInList].perfect) - { - comboBeat = EligibleHits[currentComboHitInList].createBeat; - hitCombo = true; - // Debug.Break(); - } - else - { - comboBeat = Conductor.instance.songPositionInBeats; - hitCombo = false; - } - } - else + if (p == null) { comboBeat = Conductor.instance.songPositionInBeats; hitCombo = false; } + else + { + comboBeat = p.createBeat; + hitCombo = true; + } inCombo = true; } - private void ComboPow() + public void ComboPow(Pot p, bool overrideState = false) { if (!hitCombo || !inCombo || !hitCombo && !inCombo) return; anim.Play("Pow", 0, 0); - if (currentComboPots[comboPotIndex].state.perfect) + /*if (currentComboPots[comboPotIndex].state.perfect) { - BarrelDestroy(currentComboPots[comboPotIndex], true); + // BarrelDestroy(currentComboPots[comboPotIndex], true); HitEffectF(currentComboPots[comboPotIndex].Holder.transform.localPosition); Destroy(currentComboPots[comboPotIndex].gameObject); Jukebox.PlayOneShotGame("karateman/comboHit4"); @@ -224,6 +198,21 @@ namespace RhythmHeavenMania.Games.KarateMan { Jukebox.PlayOneShot("miss"); currentComboPots[comboPotIndex].Miss(); + }*/ + + if (p != null) + { + if (p.state.perfect || overrideState) + { + p.BarrelDestroy(true); + HitEffectF(p.Holder.transform.localPosition); + Destroy(p.gameObject); + Jukebox.PlayOneShotGame("karateman/comboHit4"); + } + else if (p.state.notPerfect()) + { + p.Miss(); + } } ResetCombo(); @@ -239,7 +228,7 @@ namespace RhythmHeavenMania.Games.KarateMan currentComboPots.Clear(); } - private IEnumerator PrepareKick() + public IEnumerator PrepareKick() { barrelBeat = Conductor.instance.songPositionInBeats; hitBarrel = true; @@ -247,70 +236,43 @@ namespace RhythmHeavenMania.Games.KarateMan AnimPlay("KickPrepare"); } - private void Swing() + public void ResetKick() { - var EligibleHits = KarateMan.instance.EligibleHits; - bool canHit = (EligibleHits.Count > 0) && (currentHitInList < EligibleHits.Count); + if (kickC != null) + { + StopCoroutine(kickC); + } + hitBarrel = false; + } + public void Swing(Pot p) + { bool punchLeft = true; - int events = KarateMan.instance.MultipleEventsAtOnce(); - - for (int pt = 0; pt < events; pt++) + if (p == null) { - if (canHit) - { - Pot p = EligibleHits[currentHitInList].gameObject.GetComponent(); - - if (p.type == 2 || p.type == 3 || p.type == 4) - { - punchLeft = false; - } - else - { - punchLeft = true; - } - - if (KarateMan.instance.EligibleHits[currentHitInList].perfect) - { - Jukebox.PlayOneShotGame(p.hitSnd); - p.Hit(); - - HitEffectF(HitEffect.transform.localPosition); - - switch (p.type) - { - case 0: - // HitParticle.Play(); - break; - case 1: - GameObject bulbHit = Instantiate(BulbHit); - bulbHit.transform.parent = BulbHit.transform.parent; - bulbHit.SetActive(true); - Destroy(bulbHit, 0.7f); - break; - case 2: - // RockParticle.Play(); - break; - case 4: - if (kickC != null) StopCoroutine(kickC); - kickC = StartCoroutine(PrepareKick()); - BarrelDestroy(p, false); - break; - } - } - else - { - Jukebox.PlayOneShot("miss"); - p.Miss(); - } - p.isEligible = false; - p.RemoveObject(currentHitInList); - } - } - - if (!canHit) Jukebox.PlayOneShotGame("karateman/swingNoHit"); + } + else + { + if (p.type == 2 || p.type == 3 || p.type == 4) + { + punchLeft = false; + } + else + { + punchLeft = true; + } + + if (p.type == 4) + { + if (kickC != null) StopCoroutine(kickC); + kickC = StartCoroutine(PrepareKick()); + } + + if (!p.combo) + HitEffectF(HitEffect.transform.localPosition); + } if (punchLeft) AnimPlay("PunchLeft"); @@ -332,71 +294,5 @@ namespace RhythmHeavenMania.Games.KarateMan anim.Play(name, 0, 0); anim.speed = 1; } - - private void BarrelDestroy(Pot p, bool combo) - { - for (int i = 0; i < 8; i++) - { - GameObject be = new GameObject(); - be.transform.localPosition = p.Holder.transform.localPosition; - be.transform.parent = this.transform.parent; - be.transform.localScale = p.Holder.transform.localScale; - BarrelDestroyEffect bde = be.AddComponent(); - Vector3 pos = be.transform.localPosition; - SpriteRenderer sprite = be.AddComponent(); - - bde.shadow = Instantiate(p.Shadow, transform.parent); - bde.shadow.transform.position = p.Shadow.transform.position; - bde.shadow.transform.localScale = p.Shadow.transform.lossyScale; - bde.index = i; - bde.combo = combo; - - switch (i) - { - case 0: - be.transform.localPosition = new Vector3(pos.x, pos.y + 1.25f); - sprite.sortingOrder = 35; - bde.spriteIndex = 3; - break; - case 1: - be.transform.localPosition = new Vector3(pos.x, pos.y + -0.55f); - sprite.sortingOrder = 31; - bde.spriteIndex = 3; - break; - case 2: - be.transform.localPosition = new Vector3(pos.x - 0.8f, pos.y + 0.45f); - sprite.sortingOrder = 32; - bde.spriteIndex = 0; - break; - case 3: - be.transform.localPosition = new Vector3(pos.x - 0.5f, pos.y + 0.45f); - sprite.sortingOrder = 33; - bde.spriteIndex = 1; - break; - case 4: - be.transform.localPosition = new Vector3(pos.x, pos.y + 0.45f); - sprite.sortingOrder = 34; - bde.spriteIndex = 2; - break; - case 5: - be.transform.localPosition = new Vector3(pos.x + 0.5f, pos.y + 0.45f); - sprite.sortingOrder = 33; - sprite.flipX = true; - bde.spriteIndex = 1; - break; - case 6: - be.transform.localPosition = new Vector3(pos.x + 0.8f, pos.y + 0.45f); - sprite.sortingOrder = 32; - sprite.flipX = true; - bde.spriteIndex = 0; - break; - case 7: - be.transform.localPosition = new Vector3(pos.x, pos.y + 1.25f); - sprite.sortingOrder = 39; - bde.spriteIndex = 4; - break; - } - } - } } } \ No newline at end of file diff --git a/Assets/Scripts/Games/KarateMan/Pot.cs b/Assets/Scripts/Games/KarateMan/Pot.cs index 06864918..1fb1a4f2 100644 --- a/Assets/Scripts/Games/KarateMan/Pot.cs +++ b/Assets/Scripts/Games/KarateMan/Pot.cs @@ -2,6 +2,8 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using RhythmHeavenMania.Util; + namespace RhythmHeavenMania.Games.KarateMan { public class Pot : PlayerActionObject @@ -58,12 +60,12 @@ namespace RhythmHeavenMania.Games.KarateMan else hitLength = 14f; - if (combo) + /*if (combo) { if (comboIndex == 0) { isEligible = true; - PlayerActionInit(this.gameObject, createBeat, KarateMan.instance.EligibleCombos); + // PlayerActionInit(this.gameObject, createBeat, KarateMan.instance.EligibleCombos); } else if (comboIndex == 5) { @@ -73,12 +75,32 @@ namespace RhythmHeavenMania.Games.KarateMan else { isEligible = true; - PlayerActionInit(this.gameObject, createBeat, KarateMan.instance.EligibleHits); - } + // PlayerActionInit(this.gameObject, createBeat, KarateMan.instance.EligibleHits); + }*/ Sprite.GetComponent().enabled = false; } + public override void OnAce() + { + if (combo) + { + if (comboIndex == 0) + { + KarateJoe.instance.Combo(this); + } + else if (comboIndex == 5) + { + KarateJoe.instance.ComboPow(this, true); + } + } + else + { + this.Hit(); + } + // KarateJoe.instance.Swing(state); + } + private void Update() { if (Conductor.instance.songPositionInBeats >= createBeat) @@ -117,6 +139,42 @@ namespace RhythmHeavenMania.Games.KarateMan StateCheck(normalizedBeat); + if (!combo) + { + if (PlayerInput.Pressed()) + { + if (state.perfect) + { + Hit(); + } + else if (state.notPerfect()) + { + Miss(); + } + } + } + else + { + if (comboIndex == 0) + { + if (PlayerInput.AltPressed()) + { + if (state.perfect) + { + KarateJoe.instance.Combo(this); + } + } + } + else if (comboIndex == 5) + { + if (KarateJoe.instance.comboNormalizedBeat >= 2.05f) + if (PlayerInput.AltPressedUp()) + { + KarateJoe.instance.ComboPow(this); + } + } + } + if (normalizedBeat > 1) { Sprite.GetComponent().sortingOrder = -20; @@ -163,9 +221,33 @@ namespace RhythmHeavenMania.Games.KarateMan public void Hit() { + Jukebox.PlayOneShotGame(hitSnd); + KarateJoe.instance.Swing(this); + + NewHolder(); + + switch (type) + { + case 0: + // HitParticle.Play(); + break; + case 1: + GameObject bulbHit = Instantiate(KarateJoe.instance.BulbHit); + bulbHit.transform.parent = KarateJoe.instance.BulbHit.transform.parent; + bulbHit.SetActive(true); + Destroy(bulbHit, 0.7f); + break; + case 2: + // RockParticle.Play(); + break; + case 4: + BarrelDestroy(false); + break; + } + if (!kick) { - NewHolder(); + } else if (kick) { @@ -185,6 +267,8 @@ namespace RhythmHeavenMania.Games.KarateMan public void Miss() { + Jukebox.PlayOneShot("miss"); + NewHolder(); Holder.transform.parent = newHolder.transform; @@ -201,5 +285,71 @@ namespace RhythmHeavenMania.Games.KarateMan newHolder.transform.parent = this.gameObject.transform; Holder.transform.parent = newHolder.transform; } + + public void BarrelDestroy(bool combo) + { + for (int i = 0; i < 8; i++) + { + GameObject be = new GameObject(); + be.transform.localPosition = Holder.transform.localPosition; + be.transform.parent = this.transform.parent; + be.transform.localScale = Holder.transform.localScale; + BarrelDestroyEffect bde = be.AddComponent(); + Vector3 pos = be.transform.localPosition; + SpriteRenderer sprite = be.AddComponent(); + + bde.shadow = Instantiate(Shadow, transform.parent); + bde.shadow.transform.position = Shadow.transform.position; + bde.shadow.transform.localScale = Shadow.transform.lossyScale; + bde.index = i; + bde.combo = combo; + + switch (i) + { + case 0: + be.transform.localPosition = new Vector3(pos.x, pos.y + 1.25f); + sprite.sortingOrder = 35; + bde.spriteIndex = 3; + break; + case 1: + be.transform.localPosition = new Vector3(pos.x, pos.y + -0.55f); + sprite.sortingOrder = 31; + bde.spriteIndex = 3; + break; + case 2: + be.transform.localPosition = new Vector3(pos.x - 0.8f, pos.y + 0.45f); + sprite.sortingOrder = 32; + bde.spriteIndex = 0; + break; + case 3: + be.transform.localPosition = new Vector3(pos.x - 0.5f, pos.y + 0.45f); + sprite.sortingOrder = 33; + bde.spriteIndex = 1; + break; + case 4: + be.transform.localPosition = new Vector3(pos.x, pos.y + 0.45f); + sprite.sortingOrder = 34; + bde.spriteIndex = 2; + break; + case 5: + be.transform.localPosition = new Vector3(pos.x + 0.5f, pos.y + 0.45f); + sprite.sortingOrder = 33; + sprite.flipX = true; + bde.spriteIndex = 1; + break; + case 6: + be.transform.localPosition = new Vector3(pos.x + 0.8f, pos.y + 0.45f); + sprite.sortingOrder = 32; + sprite.flipX = true; + bde.spriteIndex = 0; + break; + case 7: + be.transform.localPosition = new Vector3(pos.x, pos.y + 1.25f); + sprite.sortingOrder = 39; + bde.spriteIndex = 4; + break; + } + } + } } } \ No newline at end of file diff --git a/Assets/Scripts/Games/Minigame.cs b/Assets/Scripts/Games/Minigame.cs index 91a3eb71..e6030c50 100644 --- a/Assets/Scripts/Games/Minigame.cs +++ b/Assets/Scripts/Games/Minigame.cs @@ -16,6 +16,8 @@ namespace RhythmHeavenMania.Games public bool early; public bool perfect; public bool late; + public bool notPerfect() { return early || late; } + public bool eligible() { return early || perfect || late; } public float createBeat; } diff --git a/Assets/Scripts/Games/PlayerActionObject.cs b/Assets/Scripts/Games/PlayerActionObject.cs index b573fc22..7a4998fa 100644 --- a/Assets/Scripts/Games/PlayerActionObject.cs +++ b/Assets/Scripts/Games/PlayerActionObject.cs @@ -13,6 +13,8 @@ namespace RhythmHeavenMania.Games public List eligibleHitsList = new List(); + private int aceTimes; + public void PlayerActionInit(GameObject g, float createBeat, List eligibleHitsList) { state.gameObject = g; @@ -20,10 +22,23 @@ namespace RhythmHeavenMania.Games this.eligibleHitsList = eligibleHitsList; } + private void CheckForAce(float normalizedBeat) + { + if (aceTimes == 0) + { + if (GameManager.instance.autoplay && normalizedBeat > 0.99f) + { + OnAce(); + AceVisuals(); + aceTimes++; + } + } + } + // could possibly add support for custom early, perfect, and end times if needed. public void StateCheck(float normalizedBeat) { - if (!isEligible) return; + CheckForAce(normalizedBeat); if (normalizedBeat > Minigame.EarlyTime() && normalizedBeat < Minigame.PerfectTime() && lastState == 0) { MakeEligible(true, false, false); @@ -69,6 +84,9 @@ namespace RhythmHeavenMania.Games public void MakeInEligible() { + state.early = false; + state.perfect = false; + state.late = false; if (!inList) return; eligibleHitsList.Remove(state); @@ -88,6 +106,7 @@ namespace RhythmHeavenMania.Games // No list public void StateCheckNoList(float normalizedBeat) { + CheckForAce(normalizedBeat); if (normalizedBeat > Minigame.EarlyTime() && normalizedBeat < Minigame.PerfectTime() && lastState == 0) { ModifyState(true, false, false); @@ -111,6 +130,18 @@ namespace RhythmHeavenMania.Games } } + public virtual void OnAce() + { + } + + private void AceVisuals() + { + if (Editor.Timeline.instance != null) + { + Editor.Timeline.instance.AutoplayBTN.GetComponent().Play("Ace", 0, 0); + } + } + private void ModifyState(bool early, bool perfect, bool late) { state.early = early; diff --git a/Assets/Scripts/LevelEditor/Commands/Selections.cs b/Assets/Scripts/LevelEditor/Commands/Selections.cs index a8fd3df9..731f4b4c 100644 --- a/Assets/Scripts/LevelEditor/Commands/Selections.cs +++ b/Assets/Scripts/LevelEditor/Commands/Selections.cs @@ -7,19 +7,31 @@ namespace RhythmHeavenMania.Editor.Commands { public class Selection : IAction { + List eventObjs; + + public Selection(List eventObjs) + { + this.eventObjs = eventObjs; + } + public void Execute() { - throw new System.NotImplementedException(); } public void Redo() { - throw new System.NotImplementedException(); + for (int i = 0; i < eventObjs.Count; i++) + { + Selections.instance.ShiftClickSelect(eventObjs[i]); + } } public void Undo() { - throw new System.NotImplementedException(); + for (int i = 0; i < eventObjs.Count; i++) + { + Selections.instance.ShiftClickSelect(eventObjs[i]); + } } } @@ -69,7 +81,6 @@ namespace RhythmHeavenMania.Editor.Commands public void Undo() { - for (int i = 0; i < pos.Count; i++) { EnsureEventObj(i); @@ -86,10 +97,36 @@ namespace RhythmHeavenMania.Editor.Commands } } + public class Place : IAction + { + TimelineEventObj eventObj; + + public Place(TimelineEventObj eventObj) + { + this.eventObj = eventObj; + } + + public void Execute() + { + } + + public void Redo() + { + throw new System.NotImplementedException(); + } + + public void Undo() + { + Selections.instance.Deselect(eventObj); + Timeline.instance.DestroyEventObject(eventObj.entity); + // Beatmap.Entity e = deletedObjs[i].entity; + // Timeline.instance.AddEventObject(e.datamodel, false, new Vector3(e.beat, -e.track * Timeline.instance.LayerHeight()), e, true, e.eventObj.eventObjID); + } + } + public class Deletion : IAction { List eventObjs; - List deletedObjs; public Deletion(List eventObjs) diff --git a/Assets/Scripts/LevelEditor/Editor.cs b/Assets/Scripts/LevelEditor/Editor.cs index 2a41cc3d..5067c4db 100644 --- a/Assets/Scripts/LevelEditor/Editor.cs +++ b/Assets/Scripts/LevelEditor/Editor.cs @@ -60,11 +60,11 @@ namespace RhythmHeavenMania.Editor GameIcon_.name = EventCaller.instance.minigames[i].displayName; } - Tooltip.AddTooltip(NewBTN.gameObject, "New"); - Tooltip.AddTooltip(OpenBTN.gameObject, "Open"); - Tooltip.AddTooltip(SaveBTN.gameObject, "Save"); - Tooltip.AddTooltip(UndoBTN.gameObject, "Undo"); - Tooltip.AddTooltip(RedoBTN.gameObject, "Redo"); + Tooltip.AddTooltip(NewBTN.gameObject, "New [Ctrl+N]"); + Tooltip.AddTooltip(OpenBTN.gameObject, "Open [Ctrl+O]"); + Tooltip.AddTooltip(SaveBTN.gameObject, "Save Project [Ctrl+S]\nSave Project As [Ctrl+Alt+S]"); + Tooltip.AddTooltip(UndoBTN.gameObject, "Undo [Ctrl+Z]"); + Tooltip.AddTooltip(RedoBTN.gameObject, "Redo [Ctrl+Y or Ctrl+Shift+Z]"); } public void Update() @@ -100,6 +100,21 @@ namespace RhythmHeavenMania.Editor else RedoBTN.transform.GetChild(0).GetComponent().color = Color.gray; + if (Input.GetKey(KeyCode.LeftControl)) + { + if (Input.GetKeyDown(KeyCode.Z)) + { + if (Input.GetKey(KeyCode.LeftShift)) + CommandManager.instance.Redo(); + else + CommandManager.instance.Undo(); + } + else if (Input.GetKeyDown(KeyCode.Y)) + { + CommandManager.instance.Redo(); + } + } + if (Input.GetMouseButtonUp(0) && Timeline.instance.CheckIfMouseInTimeline()) { List selectedEvents = Timeline.instance.eventObjs.FindAll(c => c.selected == true && c.eligibleToMove == true); @@ -134,10 +149,12 @@ namespace RhythmHeavenMania.Editor public void DebugSave() { // temp +#if UNITY_EDITOR string path = UnityEditor.AssetDatabase.GetAssetPath(GameManager.instance.txt); path = Application.dataPath.Remove(Application.dataPath.Length - 6, 6) + path; System.IO.File.WriteAllText(path, JsonConvert.SerializeObject(GameManager.instance.Beatmap)); Debug.Log("Saved to " + path); +#endif } public void SetGameEventTitle(string txt) diff --git a/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs b/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs index a3d53a4b..8d814dc8 100644 --- a/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs +++ b/Assets/Scripts/LevelEditor/EventSelector/GridGameSelector.cs @@ -159,14 +159,18 @@ namespace RhythmHeavenMania.Editor if (Timeline.instance.CheckIfMouseInTimeline() && dragTimes < 1) { dragTimes++; + + TimelineEventObj eventObj = new TimelineEventObj(); + if (currentEventIndex == 0) { - Timeline.instance.AddEventObject($"gameManager/switchGame/{mg.name}", true, new Vector3(0, 0), null, true); + eventObj = Timeline.instance.AddEventObject($"gameManager/switchGame/{mg.name}", true, new Vector3(0, 0), null, true, Timeline.RandomID()); } else { - Timeline.instance.AddEventObject(mg.name + "/" + mg.actions[currentEventIndex - 1].actionName, true, new Vector3(0, 0), null, true); + eventObj = Timeline.instance.AddEventObject(mg.name + "/" + mg.actions[currentEventIndex - 1].actionName, true, new Vector3(0, 0), null, true, Timeline.RandomID()); } + CommandManager.instance.Execute(new Commands.Place(eventObj)); } } diff --git a/Assets/Scripts/LevelEditor/Selections.cs b/Assets/Scripts/LevelEditor/Selections.cs index f824742f..42d7e58d 100644 --- a/Assets/Scripts/LevelEditor/Selections.cs +++ b/Assets/Scripts/LevelEditor/Selections.cs @@ -30,6 +30,8 @@ namespace RhythmHeavenMania.Editor { DeselectAll(); eventsSelected.Add(eventToAdd); + + // CommandManager.instance.Execute(new Commands.Selection(new List() { eventToAdd } )); } public void ShiftClickSelect(TimelineEventObj eventToAdd) diff --git a/Assets/Scripts/LevelEditor/Timeline.cs b/Assets/Scripts/LevelEditor/Timeline.cs index 15d870f6..62fa8bba 100644 --- a/Assets/Scripts/LevelEditor/Timeline.cs +++ b/Assets/Scripts/LevelEditor/Timeline.cs @@ -33,10 +33,11 @@ namespace RhythmHeavenMania.Editor private RectTransform TimelineSongPosLine; [Header("Timeline Playbar")] - [SerializeField] private Button PlayBTN; - [SerializeField] private Button PauseBTN; - [SerializeField] private Button StopBTN; - [SerializeField] private Button MetronomeBTN; + public Button PlayBTN; + public Button PauseBTN; + public Button StopBTN; + public Button MetronomeBTN; + public Button AutoplayBTN; public static Timeline instance { get; private set; } @@ -51,7 +52,7 @@ namespace RhythmHeavenMania.Editor var entity = GameManager.instance.Beatmap.entities[i]; var e = GameManager.instance.Beatmap.entities[i]; - AddEventObject(e.datamodel, false, new Vector3(e.beat, -e.track * LayerHeight()), e, false, Starpelly.Random.Strings.RandomString(Starpelly.Enums.Strings.StringType.Alphanumeric, 128)); + AddEventObject(e.datamodel, false, new Vector3(e.beat, -e.track * LayerHeight()), e, false, RandomID()); } TimelineSlider.GetChild(0).GetComponent().color = EditorTheme.theme.properties.BeatMarkerCol.Hex2RGB(); @@ -91,16 +92,36 @@ namespace RhythmHeavenMania.Editor Conductor.instance.metronome = false; } }); + AutoplayBTN.onClick.AddListener(delegate + { + if (!GameManager.instance.autoplay) + { + AutoplayBTN.GetComponent().Play("Idle", 0, 0); + GameManager.instance.autoplay = true; + } + else + { + AutoplayBTN.GetComponent().Play("Disabled", 0, 0); + GameManager.instance.autoplay = false; + } + }); Tooltip.AddTooltip(PlayBTN.gameObject, "Play [Space]"); Tooltip.AddTooltip(PauseBTN.gameObject, "Pause [Shift + Space]"); Tooltip.AddTooltip(StopBTN.gameObject, "Stop [Space]"); + Tooltip.AddTooltip(MetronomeBTN.gameObject, "Metronome"); + Tooltip.AddTooltip(AutoplayBTN.gameObject, "Autoplay"); SetTimeButtonColors(true, false, false); MetronomeBTN.transform.GetChild(0).GetComponent().color = Color.gray; } + public static string RandomID() + { + return Starpelly.Random.Strings.RandomString(Starpelly.Enums.Strings.StringType.Alphanumeric, 128); + } + #endregion private void Update() diff --git a/Assets/Scripts/Minigames.cs b/Assets/Scripts/Minigames.cs index e919b60c..2625d686 100644 --- a/Assets/Scripts/Minigames.cs +++ b/Assets/Scripts/Minigames.cs @@ -96,7 +96,13 @@ namespace RhythmHeavenMania new GameAction("prepare", delegate { KarateMan.instance.Prepare(eventCaller.currentBeat, eventCaller.currentLength); }, 1f, true), new GameAction("bgfxon", delegate { KarateMan.instance.BGFXOn(); } ), new GameAction("bgfxoff", delegate { KarateMan.instance.BGFXOff(); }), - }) + }), + /*new Minigame("spaceSoccer", "Space Soccer", "70A8D8", new List() + { + new GameAction("ball dispense", delegate { }, 2f), + new GameAction("keep-up", delegate { }, 4f, true), + new GameAction("high kick-toe!", delegate { }, 3f), + })*/ }; } } diff --git a/Assets/Scripts/PlayerInput.cs b/Assets/Scripts/PlayerInput.cs index 582f15bb..513b9b91 100644 --- a/Assets/Scripts/PlayerInput.cs +++ b/Assets/Scripts/PlayerInput.cs @@ -8,33 +8,33 @@ namespace RhythmHeavenMania { public static bool Pressed() { - return Input.GetKeyDown(KeyCode.Z); + return Input.GetKeyDown(KeyCode.Z) && !GameManager.instance.autoplay && Conductor.instance.isPlaying; } public static bool PressedUp() { - return Input.GetKeyUp(KeyCode.Z); + return Input.GetKeyUp(KeyCode.Z) && !GameManager.instance.autoplay && Conductor.instance.isPlaying; } public static bool Pressing() { - return Input.GetKey(KeyCode.Z); + return Input.GetKey(KeyCode.Z) && !GameManager.instance.autoplay && Conductor.instance.isPlaying; } public static bool AltPressed() { - return Input.GetKeyDown(KeyCode.X); + return Input.GetKeyDown(KeyCode.X) && !GameManager.instance.autoplay && Conductor.instance.isPlaying; } public static bool AltPressedUp() { - return Input.GetKeyUp(KeyCode.X); + return Input.GetKeyUp(KeyCode.X) && !GameManager.instance.autoplay && Conductor.instance.isPlaying; } public static bool AltPressing() { - return Input.GetKey(KeyCode.X); + return Input.GetKey(KeyCode.X) && !GameManager.instance.autoplay && Conductor.instance.isPlaying; } } } \ No newline at end of file diff --git a/Assets/Scripts/Util/SwapEditorShortcutsOnPlayerFocus.cs b/Assets/Scripts/Util/SwapEditorShortcutsOnPlayerFocus.cs new file mode 100644 index 00000000..ceeb1d86 --- /dev/null +++ b/Assets/Scripts/Util/SwapEditorShortcutsOnPlayerFocus.cs @@ -0,0 +1,64 @@ +using UnityEngine; +#if UNITY_EDITOR +using UnityEditor; +using UnityEditor.ShortcutManagement; +#endif +using System.Linq; + +#if UNITY_EDITOR +[InitializeOnLoad] +public class SwitchShortcutsProfileOnPlay +{ + private const string PlayingProfileId = "Playing"; + private static string _activeProfileId; + private static bool _switched; + + static SwitchShortcutsProfileOnPlay() + { + EditorApplication.playModeStateChanged += DetectPlayModeState; + } + + private static void SetActiveProfile(string profileId) + { + Debug.Log($"Activating Shortcut profile \"{profileId}\""); + ShortcutManager.instance.activeProfileId = profileId; + } + + private static void DetectPlayModeState(PlayModeStateChange state) + { + switch (state) + { + case PlayModeStateChange.EnteredPlayMode: + OnEnteredPlayMode(); + break; + case PlayModeStateChange.ExitingPlayMode: + OnExitingPlayMode(); + break; + } + } + + private static void OnExitingPlayMode() + { + if (!_switched) + return; + + _switched = false; + SetActiveProfile("Default"); + } + + private static void OnEnteredPlayMode() + { + _activeProfileId = ShortcutManager.instance.activeProfileId; + if (_activeProfileId.Equals(PlayingProfileId)) + return; // Same as active + + var allProfiles = ShortcutManager.instance.GetAvailableProfileIds().ToList(); + + if (!allProfiles.Contains(PlayingProfileId)) + return; // Couldn't find PlayingProfileId + + _switched = true; + SetActiveProfile("Playing"); + } +} +#endif \ No newline at end of file diff --git a/Assets/Scripts/Util/SwapEditorShortcutsOnPlayerFocus.cs.meta b/Assets/Scripts/Util/SwapEditorShortcutsOnPlayerFocus.cs.meta new file mode 100644 index 00000000..b1694ecd --- /dev/null +++ b/Assets/Scripts/Util/SwapEditorShortcutsOnPlayerFocus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3f7f429e0ad42a74eae2a6a88474bd0e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/karatekacombos.json b/Assets/karatekacombos.json index 449b7004..0e4d5d38 100644 --- a/Assets/karatekacombos.json +++ b/Assets/karatekacombos.json @@ -1 +1 @@ -{"bpm":180.0,"entities":[{"beat":8.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":8.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":16.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":16.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":24.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":24.0,"track":3,"length":1.0,"datamodel":"karateman/prepare"},{"beat":28.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":28.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":28.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":30.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":30.0,"track":1,"length":1.0,"datamodel":"karateman/prepare"},{"beat":31.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":32.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":34.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":34.0,"track":2,"length":12.0,"datamodel":"karateman/bop"},{"beat":36.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":38.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":40.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":42.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":44.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":44.5,"track":0,"length":1.0,"datamodel":"karateman/hit3"},{"beat":46.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":46.0,"track":1,"length":1.0,"datamodel":"karateman/prepare"},{"beat":47.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":48.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":50.0,"track":2,"length":48.0,"datamodel":"karateman/bop"},{"beat":50.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":52.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":54.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":56.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":58.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":60.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":62.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":64.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":66.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":68.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":70.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":72.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":74.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":76.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":78.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":80.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":82.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":84.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":86.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":88.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":90.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":92.0,"track":3,"length":2.0,"datamodel":"karateman/bulb"},{"beat":94.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":98.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":98.0,"track":2,"length":0.5,"datamodel":"karateman/bop"},{"beat":99.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":99.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":102.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":102.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":103.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":103.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":106.0,"track":3,"length":5.0,"datamodel":"karateman/bop"},{"beat":106.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":108.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":110.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":111.5,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":114.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":114.0,"track":3,"length":0.5,"datamodel":"karateman/bop"},{"beat":115.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":115.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":118.0,"track":2,"length":0.5,"datamodel":"karateman/bop"},{"beat":118.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":119.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":119.5,"track":0,"length":0.5,"datamodel":"karateman/bop"},{"beat":122.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":122.0,"track":0,"length":5.5,"datamodel":"karateman/bop"},{"beat":124.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":126.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":127.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":130.0,"track":2,"length":88.0,"datamodel":"karateman/bop"},{"beat":130.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":132.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":134.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":136.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":138.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":140.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":140.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":142.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":143.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":144.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":146.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":148.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":150.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":152.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":154.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":156.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":158.0,"track":0,"length":4.0,"datamodel":"karateman/combo"},{"beat":162.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":164.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":166.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":168.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":170.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":172.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":174.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":178.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":180.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":182.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":184.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":186.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":188.0,"track":1,"length":2.0,"datamodel":"karateman/bulb"},{"beat":190.0,"track":0,"length":4.0,"datamodel":"karateman/combo"},{"beat":194.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":196.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":198.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":200.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":202.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":204.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":206.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":208.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":210.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":212.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":214.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":216.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":218.0,"track":2,"length":2.0,"datamodel":"karateman/prepare"},{"beat":219.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":219.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":221.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":222.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":223.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":225.0,"track":1,"length":34.5,"datamodel":"karateman/bop"},{"beat":226.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":228.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":230.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":232.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":234.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":236.0,"track":0,"length":2.0,"datamodel":"karateman/bulb"},{"beat":238.0,"track":3,"length":4.0,"datamodel":"karateman/combo"},{"beat":242.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":244.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":246.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":248.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":248.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":250.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":251.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":252.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":252.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":254.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":255.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":256.0,"track":2,"length":2.0,"datamodel":"karateman/ball"},{"beat":258.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":259.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":262.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":262.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":263.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":263.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":266.0,"track":2,"length":5.5,"datamodel":"karateman/bop"},{"beat":266.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":268.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":270.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":271.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":274.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":274.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":275.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":278.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":278.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":279.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":282.0,"track":2,"length":5.0,"datamodel":"karateman/bop"},{"beat":282.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":284.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":286.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":287.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":290.0,"track":3,"length":33.0,"datamodel":"karateman/bop"},{"beat":290.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":292.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":294.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":296.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":298.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":300.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":302.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":304.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":306.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":308.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":310.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":312.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":312.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":314.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":315.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":316.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":316.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":318.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":319.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":320.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":322.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":323.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":326.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":327.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":330.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":331.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":334.0,"track":3,"length":1.0,"datamodel":"karateman/prepare"},{"beat":335.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":338.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":339.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":342.0,"track":0,"length":1.0,"datamodel":"karateman/prepare"},{"beat":343.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":346.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":347.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":350.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":351.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":353.0,"track":3,"length":30.0,"datamodel":"karateman/bop"},{"beat":354.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":356.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":358.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":360.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":362.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":364.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":364.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":366.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":367.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":368.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":370.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":372.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":372.5,"track":2,"length":1.0,"datamodel":"karateman/hit3"},{"beat":374.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":375.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":376.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":378.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":380.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":382.0,"track":2,"length":4.0,"datamodel":"karateman/combo"}]} \ No newline at end of file +{"bpm":180.0,"entities":[{"beat":1.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":8.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":8.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":16.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":16.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":24.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":24.0,"track":3,"length":1.0,"datamodel":"karateman/prepare"},{"beat":28.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":28.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":28.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":30.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":30.0,"track":1,"length":1.0,"datamodel":"karateman/prepare"},{"beat":31.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":32.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":34.0,"track":2,"length":12.0,"datamodel":"karateman/bop"},{"beat":34.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":36.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":38.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":40.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":42.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":44.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":44.5,"track":0,"length":1.0,"datamodel":"karateman/hit3"},{"beat":46.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":46.0,"track":1,"length":1.0,"datamodel":"karateman/prepare"},{"beat":47.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":48.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":50.0,"track":2,"length":48.0,"datamodel":"karateman/bop"},{"beat":50.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":52.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":54.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":56.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":58.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":60.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":62.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":64.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":66.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":68.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":70.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":72.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":74.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":76.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":78.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":80.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":82.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":84.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":86.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":88.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":90.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":92.0,"track":3,"length":2.0,"datamodel":"karateman/bulb"},{"beat":94.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":98.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":98.0,"track":2,"length":0.5,"datamodel":"karateman/bop"},{"beat":99.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":99.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":102.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":102.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":103.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":103.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":106.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":106.0,"track":3,"length":5.0,"datamodel":"karateman/bop"},{"beat":108.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":110.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":111.5,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":114.0,"track":3,"length":0.5,"datamodel":"karateman/bop"},{"beat":114.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":115.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":115.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":118.0,"track":2,"length":0.5,"datamodel":"karateman/bop"},{"beat":118.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":119.5,"track":0,"length":0.5,"datamodel":"karateman/bop"},{"beat":119.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":122.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":122.0,"track":0,"length":5.5,"datamodel":"karateman/bop"},{"beat":124.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":126.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":127.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":130.0,"track":2,"length":88.0,"datamodel":"karateman/bop"},{"beat":130.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":132.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":134.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":136.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":138.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":140.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":140.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":142.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":143.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":144.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":146.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":148.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":150.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":152.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":154.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":156.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":158.0,"track":0,"length":4.0,"datamodel":"karateman/combo"},{"beat":162.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":164.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":166.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":168.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":170.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":172.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":174.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":178.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":180.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":182.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":184.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":186.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":188.0,"track":1,"length":2.0,"datamodel":"karateman/bulb"},{"beat":190.0,"track":0,"length":4.0,"datamodel":"karateman/combo"},{"beat":194.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":196.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":198.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":200.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":202.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":204.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":206.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":208.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":210.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":212.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":214.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":216.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":218.0,"track":2,"length":2.0,"datamodel":"karateman/prepare"},{"beat":219.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":219.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":221.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":222.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":223.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":225.0,"track":1,"length":34.5,"datamodel":"karateman/bop"},{"beat":226.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":228.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":230.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":232.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":234.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":236.0,"track":0,"length":2.0,"datamodel":"karateman/bulb"},{"beat":238.0,"track":3,"length":4.0,"datamodel":"karateman/combo"},{"beat":242.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":244.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":246.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":248.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":248.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":250.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":251.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":252.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":252.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":254.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":255.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":256.0,"track":2,"length":2.0,"datamodel":"karateman/ball"},{"beat":258.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":259.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":262.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":262.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":263.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":263.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":266.0,"track":2,"length":5.5,"datamodel":"karateman/bop"},{"beat":266.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":268.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":270.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":271.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":274.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":274.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":275.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":278.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":278.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":279.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":282.0,"track":2,"length":5.0,"datamodel":"karateman/bop"},{"beat":282.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":284.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":286.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":287.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":290.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":290.0,"track":3,"length":33.0,"datamodel":"karateman/bop"},{"beat":292.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":294.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":296.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":298.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":300.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":302.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":304.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":306.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":308.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":310.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":312.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":312.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":314.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":315.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":316.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":316.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":318.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":319.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":320.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":322.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":323.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":326.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":327.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":330.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":331.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":334.0,"track":3,"length":1.0,"datamodel":"karateman/prepare"},{"beat":335.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":338.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":339.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":342.0,"track":0,"length":1.0,"datamodel":"karateman/prepare"},{"beat":343.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":346.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":347.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":350.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":351.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":353.0,"track":3,"length":30.0,"datamodel":"karateman/bop"},{"beat":354.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":356.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":358.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":360.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":362.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":364.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":364.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":366.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":367.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":368.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":370.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":372.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":372.5,"track":2,"length":1.0,"datamodel":"karateman/hit3"},{"beat":374.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":375.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":376.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":378.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":380.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":382.0,"track":2,"length":4.0,"datamodel":"karateman/combo"}]} \ No newline at end of file