diff --git a/Assets/Resources/Games/rhythmTestGBA.prefab b/Assets/Resources/Games/rhythmTestGBA.prefab
index f419de140..80870addf 100644
--- a/Assets/Resources/Games/rhythmTestGBA.prefab
+++ b/Assets/Resources/Games/rhythmTestGBA.prefab
@@ -1,5 +1,201 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &499224256258785193
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6155477923636244418}
+ - component: {fileID: 2256808814853800604}
+ - component: {fileID: 5133068036934783988}
+ - component: {fileID: 3027704026893852167}
+ m_Layer: 0
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &6155477923636244418
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 499224256258785193}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 6652878496978862639}
+ m_RootOrder: 5
+ 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.11083, y: 1.4}
+ m_SizeDelta: {x: 19.88917, y: 5}
+ m_Pivot: {x: 0, y: 0}
+--- !u!23 &2256808814853800604
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 499224256258785193}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 0
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 0
+ m_ReflectionProbeUsage: 0
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 1618155055176292627, guid: e5f3069ff426f2546b8168857ad6e0d4, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 15
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!114 &5133068036934783988
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 499224256258785193}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, 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_text: Testing in progress...
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: e5f3069ff426f2546b8168857ad6e0d4, type: 2}
+ m_sharedMaterial: {fileID: 1618155055176292627, guid: e5f3069ff426f2546b8168857ad6e0d4, type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4278216952
+ m_fontColor: {r: 0.97255, g: 0.40784317, b: 0, a: 1}
+ m_enableVertexGradient: 0
+ m_colorMode: 3
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: -1183493901
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontSize: 7
+ m_fontSizeBase: 7
+ m_fontWeight: 400
+ m_enableAutoSizing: 1
+ m_fontSizeMin: 1
+ m_fontSizeMax: 7
+ m_fontStyle: 0
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 256
+ m_textAlignment: 65535
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_TextWrappingMode: 0
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_linkedTextComponent: {fileID: 0}
+ parentLinkedComponent: {fileID: 0}
+ m_enableKerning: 0
+ m_ActiveFontFeatures: 6e72656b
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_EmojiFallbackSupport: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 0
+ m_isCullingEnabled: 0
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
+ m_VertexBufferAutoSizeReduction: 0
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: -4.6306386, y: 4.6619124, z: 15.48065, w: -0.8415551}
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ _SortingLayer: 0
+ _SortingLayerID: 0
+ _SortingOrder: 0
+ m_hasFontAssetChanged: 0
+ m_renderer: {fileID: 2256808814853800604}
+ m_maskType: 0
+--- !u!95 &3027704026893852167
+Animator:
+ serializedVersion: 5
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 499224256258785193}
+ m_Enabled: 1
+ m_Avatar: {fileID: 0}
+ m_Controller: {fileID: 9100000, guid: 4e7127cc6b4a1c2448e334306954c9d8, type: 2}
+ m_CullingMode: 0
+ m_UpdateMode: 0
+ m_ApplyRootMotion: 0
+ m_LinearVelocityBlending: 0
+ m_StabilizeFeet: 0
+ m_WarningMessage:
+ m_HasTransformHierarchy: 1
+ m_AllowConstantClipSamplingOptimization: 1
+ m_KeepAnimatorStateOnDisable: 0
+ m_WriteDefaultValuesOnDisable: 0
--- !u!1 &600217526339359680
GameObject:
m_ObjectHideFlags: 0
@@ -34,7 +230,7 @@ Transform:
- {fileID: 4178580677966809696}
- {fileID: 2421602207971768573}
m_Father: {fileID: 6652878496978862639}
- m_RootOrder: 5
+ m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &787369447362708790
GameObject:
@@ -318,8 +514,8 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
- m_Father: {fileID: 6652878496978862639}
- m_RootOrder: 4
+ m_Father: {fileID: 7141769990670215559}
+ m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &491387273021883555
SpriteRenderer:
@@ -394,6 +590,39 @@ Animator:
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
+--- !u!1 &1506994282361560807
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7141769990670215559}
+ m_Layer: 0
+ m_Name: Countdown
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &7141769990670215559
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1506994282361560807}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1230118230611380377}
+ - {fileID: 3088883937212924141}
+ m_Father: {fileID: 6652878496978862639}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1730902299297412491
GameObject:
m_ObjectHideFlags: 0
@@ -419,7 +648,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1730902299297412491}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 1.804, y: 0.61300004, z: -4.09}
+ m_LocalPosition: {x: 1.804, y: 0.61300004, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -503,7 +732,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1990977082314958150}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -1.804, y: 0.613, z: -4.09}
+ m_LocalPosition: {x: -1.804, y: 0.613, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -588,7 +817,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2069064452885481355}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -0.7, y: 0.3288985, z: -4.085526}
+ m_LocalPosition: {x: -0.7, y: 0.3288985, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -693,7 +922,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2097296857581379271}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 1.0651015, z: 4.09}
+ m_LocalPosition: {x: 0, y: 1.0651015, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
@@ -701,8 +930,8 @@ Transform:
- {fileID: 8123355065386149364}
- {fileID: 4285687258972027434}
- {fileID: 6053325067073802629}
- m_Father: {fileID: 6652878496978862639}
- m_RootOrder: 3
+ m_Father: {fileID: 7141769990670215559}
+ m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!95 &3131245519608349835
Animator:
@@ -737,7 +966,7 @@ GameObject:
- component: {fileID: 8993181217126341735}
- component: {fileID: 7814860204980886555}
m_Layer: 0
- m_Name: Flash
+ m_Name: Note
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -751,12 +980,12 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3530055773997019990}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0.081, y: 1.404, z: 0}
- m_LocalScale: {x: 0.8851, y: 0.8851, z: 0.8851}
- m_ConstrainProportionsScale: 0
+ m_LocalPosition: {x: 0, y: 1.4, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 6652878496978862639}
- m_RootOrder: 2
+ m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &8993181217126341735
SpriteRenderer:
@@ -799,7 +1028,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 4
- m_Sprite: {fileID: 909642824, guid: 76d9b1445caeb484f9254a9dc75c0d8a, type: 3}
+ m_Sprite: {fileID: -322805595, guid: 4b553aa26f4c3464b8eb213d2c89ecea, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
@@ -842,7 +1071,7 @@ GameObject:
- component: {fileID: 7034237823165530222}
- component: {fileID: 3773822188720579104}
m_Layer: 0
- m_Name: RhythmTest_2
+ m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -861,7 +1090,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6652878496978862639}
- m_RootOrder: 6
+ m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &3773822188720579104
SpriteRenderer:
@@ -941,7 +1170,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4766465362782487485}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: -1.407, z: 0}
+ m_LocalPosition: {x: 0, y: -1.5, z: 0}
m_LocalScale: {x: 0.726, y: 0.726, z: 0.726}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -989,7 +1218,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 3
- m_Sprite: {fileID: 1608426803, guid: 76d9b1445caeb484f9254a9dc75c0d8a, type: 3}
+ m_Sprite: {fileID: -1229422663, guid: 4b553aa26f4c3464b8eb213d2c89ecea, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
@@ -1105,90 +1334,6 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
---- !u!1 &5566258577491883246
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 4460373311749401884}
- - component: {fileID: 3128082092558731024}
- m_Layer: 0
- m_Name: Background
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &4460373311749401884
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5566258577491883246}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: -0.73, z: 0}
- m_LocalScale: {x: 40.2019, y: 0.8792758, z: 0.8792758}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 6652878496978862639}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &3128082092558731024
-SpriteRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5566258577491883246}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- m_StaticShadowCaster: 0
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 0
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 0
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: -20
- m_Sprite: {fileID: 544945474, guid: 76d9b1445caeb484f9254a9dc75c0d8a, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 1.51, y: 14.02}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_MaskInteraction: 0
- m_SpriteSortPoint: 0
--- !u!1 &5985063182856050203
GameObject:
m_ObjectHideFlags: 0
@@ -1214,7 +1359,7 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5985063182856050203}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0.7, y: 0.32889855, z: -4.0855255}
+ m_LocalPosition: {x: 0.7, y: 0.32889855, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -1387,12 +1532,11 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8087579337852636042}
- - {fileID: 4460373311749401884}
- {fileID: 1970370886109334539}
- - {fileID: 1230118230611380377}
- - {fileID: 3088883937212924141}
+ - {fileID: 7141769990670215559}
- {fileID: 5322568188370051010}
- {fileID: 7034237823165530222}
+ - {fileID: 6155477923636244418}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1410,7 +1554,10 @@ MonoBehaviour:
m_EditorClassIdentifier:
SoundSequences: []
scheduledInputs: []
+ noteFlash: {fileID: 3530055773997019990}
+ screenText: {fileID: 5133068036934783988}
buttonAnimator: {fileID: 3702318791696650226}
flashAnimator: {fileID: 7814860204980886555}
numberBGAnimator: {fileID: 3131245519608349835}
numberAnimator: {fileID: 4403813855415779181}
+ textAnimator: {fileID: 3027704026893852167}
diff --git a/Assets/Resources/Sfx/games/rhythmTestGBA/blip.ogg b/Assets/Resources/Sfx/games/rhythmTestGBA/blip.ogg
index 00e596669..241ee2d95 100644
Binary files a/Assets/Resources/Sfx/games/rhythmTestGBA/blip.ogg and b/Assets/Resources/Sfx/games/rhythmTestGBA/blip.ogg differ
diff --git a/Assets/Resources/Sfx/games/rhythmTestGBA/blip2.ogg b/Assets/Resources/Sfx/games/rhythmTestGBA/blip2.ogg
index fc74cdd06..c460cf494 100644
Binary files a/Assets/Resources/Sfx/games/rhythmTestGBA/blip2.ogg and b/Assets/Resources/Sfx/games/rhythmTestGBA/blip2.ogg differ
diff --git a/Assets/Resources/Sfx/games/rhythmTestGBA/blip3.ogg b/Assets/Resources/Sfx/games/rhythmTestGBA/blip3.ogg
index 91b593e5e..676b0fb7f 100644
Binary files a/Assets/Resources/Sfx/games/rhythmTestGBA/blip3.ogg and b/Assets/Resources/Sfx/games/rhythmTestGBA/blip3.ogg differ
diff --git a/Assets/Resources/Sfx/games/rhythmTestGBA/end_ding.ogg b/Assets/Resources/Sfx/games/rhythmTestGBA/end_ding.ogg
index b22ff4c0c..2a127723e 100644
Binary files a/Assets/Resources/Sfx/games/rhythmTestGBA/end_ding.ogg and b/Assets/Resources/Sfx/games/rhythmTestGBA/end_ding.ogg differ
diff --git a/Assets/Resources/Sfx/games/rhythmTestGBA/press.ogg b/Assets/Resources/Sfx/games/rhythmTestGBA/press.ogg
index 1797398a6..d30f3fa98 100644
Binary files a/Assets/Resources/Sfx/games/rhythmTestGBA/press.ogg and b/Assets/Resources/Sfx/games/rhythmTestGBA/press.ogg differ
diff --git a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Number BG/BG.controller b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Number BG/BG.controller
index 5d8e5185e..c8c18f776 100644
--- a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Number BG/BG.controller
+++ b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Number BG/BG.controller
@@ -148,7 +148,7 @@ AnimatorStateTransition:
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0
- m_HasExitTime: 0
+ m_HasExitTime: 1
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
diff --git a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Number BG/FlashBG.anim b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Number BG/FlashBG.anim
index bef8e7ad7..2de9c27d1 100644
--- a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Number BG/FlashBG.anim
+++ b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Number BG/FlashBG.anim
@@ -20,7 +20,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: {x: -0.695, y: 0.3288985, z: -4.085526}
+ value: {x: -0.695, y: 0.3288985, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
@@ -29,7 +29,7 @@ AnimationClip:
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.06666667
- value: {x: -0.55, y: 0.3288985, z: -4.085526}
+ value: {x: -0.55, y: 0.3288985, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
@@ -38,7 +38,7 @@ AnimationClip:
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.15
- value: {x: -0.55, y: 0.3288985, z: -4.085526}
+ value: {x: -0.55, y: 0.3288985, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
@@ -54,7 +54,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: {x: 0.695, y: 0.32889855, z: -4.0855255}
+ value: {x: 0.695, y: 0.32889855, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
@@ -63,7 +63,7 @@ AnimationClip:
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.06666667
- value: {x: 0.57, y: 0.32889855, z: -4.0855255}
+ value: {x: 0.57, y: 0.32889855, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
@@ -72,7 +72,7 @@ AnimationClip:
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.15
- value: {x: 0.55, y: 0.32889855, z: -4.0855255}
+ value: {x: 0.55, y: 0.32889855, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
@@ -354,7 +354,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: -4.085526
+ value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
@@ -429,7 +429,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: -4.0855255
+ value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
diff --git a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Number BG/FlashHit.anim b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Number BG/FlashHit.anim
index 4aa49beb9..e4517dc48 100644
--- a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Number BG/FlashHit.anim
+++ b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Number BG/FlashHit.anim
@@ -20,7 +20,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: {x: -0.695, y: 0.3288985, z: -4.085526}
+ value: {x: -0.695, y: 0.3288985, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
@@ -29,7 +29,7 @@ AnimationClip:
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.06666667
- value: {x: -0.55, y: 0.3288985, z: -4.085526}
+ value: {x: -0.55, y: 0.3288985, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
@@ -38,7 +38,7 @@ AnimationClip:
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.15
- value: {x: -0.55, y: 0.3288985, z: -4.085526}
+ value: {x: -0.55, y: 0.3288985, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
@@ -54,7 +54,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: {x: 0.695, y: 0.32889855, z: -4.0855255}
+ value: {x: 0.695, y: 0.32889855, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
@@ -63,7 +63,7 @@ AnimationClip:
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.06666667
- value: {x: 0.55, y: 0.32889855, z: -4.0855255}
+ value: {x: 0.55, y: 0.32889855, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
@@ -72,7 +72,7 @@ AnimationClip:
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.15
- value: {x: 0.55, y: 0.32889855, z: -4.0855255}
+ value: {x: 0.55, y: 0.32889855, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
@@ -88,7 +88,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: {x: -1.804, y: 0.613, z: -4.09}
+ value: {x: -1.804, y: 0.613, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
@@ -113,7 +113,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: {x: 1.804, y: 0.61300004, z: -4.09}
+ value: {x: 1.804, y: 0.61300004, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
@@ -293,60 +293,60 @@ AnimationClip:
isPPtrCurve: 0
- serializedVersion: 2
path: 1403651259
- attribute: 1
+ attribute: 3305885265
script: {fileID: 0}
- typeID: 4
+ typeID: 212
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 2872654745
- attribute: 1
+ attribute: 3305885265
script: {fileID: 0}
- typeID: 4
+ typeID: 212
customType: 0
isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 3663022166
+ attribute: 3305885265
+ script: {fileID: 0}
+ typeID: 212
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 1963678224
+ attribute: 3305885265
+ script: {fileID: 0}
+ typeID: 212
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 3663022166
+ attribute: 0
+ script: {fileID: 0}
+ typeID: 212
+ customType: 23
+ isPPtrCurve: 1
+ - serializedVersion: 2
+ path: 1963678224
+ attribute: 0
+ script: {fileID: 0}
+ typeID: 212
+ customType: 23
+ isPPtrCurve: 1
- serializedVersion: 2
path: 1403651259
- attribute: 3305885265
+ attribute: 1
script: {fileID: 0}
- typeID: 212
+ typeID: 4
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 2872654745
- attribute: 3305885265
+ attribute: 1
script: {fileID: 0}
- typeID: 212
+ typeID: 4
customType: 0
isPPtrCurve: 0
- - serializedVersion: 2
- path: 3663022166
- attribute: 3305885265
- script: {fileID: 0}
- typeID: 212
- customType: 0
- isPPtrCurve: 0
- - serializedVersion: 2
- path: 1963678224
- attribute: 3305885265
- script: {fileID: 0}
- typeID: 212
- customType: 0
- isPPtrCurve: 0
- - serializedVersion: 2
- path: 3663022166
- attribute: 0
- script: {fileID: 0}
- typeID: 212
- customType: 23
- isPPtrCurve: 1
- - serializedVersion: 2
- path: 1963678224
- attribute: 0
- script: {fileID: 0}
- typeID: 212
- customType: 23
- isPPtrCurve: 1
pptrCurveMapping:
- {fileID: 399106758, guid: 76d9b1445caeb484f9254a9dc75c0d8a, type: 3}
- {fileID: -437616401, guid: 76d9b1445caeb484f9254a9dc75c0d8a, type: 3}
@@ -436,7 +436,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: -4.085526
+ value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
@@ -511,7 +511,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: -4.0855255
+ value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
@@ -698,7 +698,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: -4.09
+ value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
@@ -782,7 +782,7 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: -4.09
+ value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
diff --git a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text.meta b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text.meta
new file mode 100644
index 000000000..098bc0d0b
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ea23a56f302dcca4ca7b30839e958b36
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/Text (TMP).controller b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/Text (TMP).controller
new file mode 100644
index 000000000..c47035c99
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/Text (TMP).controller
@@ -0,0 +1,101 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1102 &-4096736772628457868
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: TextFlash
+ 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: 3ef21493912d35d48a088ee8c15c48f4, 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: Text (TMP)
+ serializedVersion: 5
+ m_AnimatorParameters: []
+ m_AnimatorLayers:
+ - serializedVersion: 5
+ m_Name: Base Layer
+ m_StateMachine: {fileID: 7258395906433341195}
+ 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 &6981283610964809230
+AnimatorState:
+ serializedVersion: 6
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: TextIdle
+ 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: 7a0d49a32be3bef4ab304ca710a511a4, type: 2}
+ m_Tag:
+ m_SpeedParameter:
+ m_MirrorParameter:
+ m_CycleOffsetParameter:
+ m_TimeParameter:
+--- !u!1107 &7258395906433341195
+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: -4096736772628457868}
+ m_Position: {x: 240, y: 190, z: 0}
+ - serializedVersion: 1
+ m_State: {fileID: 6981283610964809230}
+ m_Position: {x: 235, y: 65, 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: 6981283610964809230}
diff --git a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/Text (TMP).controller.meta b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/Text (TMP).controller.meta
new file mode 100644
index 000000000..234320d36
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/Text (TMP).controller.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4e7127cc6b4a1c2448e334306954c9d8
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 9100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextFlash.anim b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextFlash.anim
new file mode 100644
index 000000000..791068513
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextFlash.anim
@@ -0,0 +1,377 @@
+%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: TextFlash
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.9725491
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0.4862745
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.23333333
+ value: 0.4862745
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_fontColor.r
+ path:
+ classID: 114
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.4078432
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0.1568628
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.23333333
+ value: 0.1568628
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_fontColor.g
+ path:
+ classID: 114
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.23333333
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_fontColor.b
+ path:
+ classID: 114
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.23333333
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._OutlineWidth
+ path:
+ classID: 23
+ script: {fileID: 0}
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 2110649717
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ typeID: 114
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 0
+ attribute: 269488542
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ typeID: 114
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 0
+ attribute: 1618666769
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ typeID: 114
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 0
+ attribute: 2383718995
+ script: {fileID: 0}
+ typeID: 23
+ customType: 22
+ isPPtrCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0.23333333
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 0
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.9725491
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0.4862745
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.23333333
+ value: 0.4862745
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_fontColor.r
+ path:
+ classID: 114
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.4078432
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0.1568628
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.23333333
+ value: 0.1568628
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_fontColor.g
+ path:
+ classID: 114
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.23333333
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_fontColor.b
+ path:
+ classID: 114
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.11666667
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.23333333
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: material._OutlineWidth
+ path:
+ classID: 23
+ script: {fileID: 0}
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextFlash.anim.meta b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextFlash.anim.meta
new file mode 100644
index 000000000..86e337230
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextFlash.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3ef21493912d35d48a088ee8c15c48f4
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextGone.anim b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextGone.anim
new file mode 100644
index 000000000..6e47cc442
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextGone.anim
@@ -0,0 +1,53 @@
+%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: TextGone
+ 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: []
+ 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: []
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 1
+ 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: []
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextGone.anim.meta b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextGone.anim.meta
new file mode 100644
index 000000000..35bffefb4
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextGone.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c2512185cbeeb4d438899f86af72910a
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextIdle.anim b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextIdle.anim
new file mode 100644
index 000000000..34224e12a
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextIdle.anim
@@ -0,0 +1,188 @@
+%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: TextIdle
+ serializedVersion: 6
+ m_Legacy: 0
+ m_Compressed: 0
+ m_UseHighQualityCurve: 1
+ m_RotationCurves: []
+ m_CompressedRotationCurves: []
+ m_EulerCurves: []
+ m_PositionCurves: []
+ m_ScaleCurves: []
+ m_FloatCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.97255
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_fontColor.r
+ path:
+ classID: 114
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.40784
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_fontColor.g
+ path:
+ classID: 114
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_fontColor.b
+ path:
+ classID: 114
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ m_PPtrCurves: []
+ m_SampleRate: 60
+ m_WrapMode: 0
+ m_Bounds:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+ m_ClipBindingConstant:
+ genericBindings:
+ - serializedVersion: 2
+ path: 0
+ attribute: 2110649717
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ typeID: 114
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 0
+ attribute: 269488542
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ typeID: 114
+ customType: 0
+ isPPtrCurve: 0
+ - serializedVersion: 2
+ path: 0
+ attribute: 1618666769
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ typeID: 114
+ customType: 0
+ isPPtrCurve: 0
+ pptrCurveMapping: []
+ m_AnimationClipSettings:
+ serializedVersion: 2
+ m_AdditiveReferencePoseClip: {fileID: 0}
+ m_AdditiveReferencePoseTime: 0
+ m_StartTime: 0
+ m_StopTime: 0
+ m_OrientationOffsetY: 0
+ m_Level: 0
+ m_CycleOffset: 0
+ m_HasAdditiveReferencePose: 0
+ m_LoopTime: 0
+ m_LoopBlend: 0
+ m_LoopBlendOrientation: 0
+ m_LoopBlendPositionY: 0
+ m_LoopBlendPositionXZ: 0
+ m_KeepOriginalOrientation: 0
+ m_KeepOriginalPositionY: 1
+ m_KeepOriginalPositionXZ: 0
+ m_HeightFromFeet: 0
+ m_Mirror: 0
+ m_EditorCurves:
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.97255
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_fontColor.r
+ path:
+ classID: 114
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0.40784
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_fontColor.g
+ path:
+ classID: 114
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ - curve:
+ serializedVersion: 2
+ m_Curve:
+ - serializedVersion: 3
+ time: 0
+ value: 0
+ inSlope: Infinity
+ outSlope: Infinity
+ tangentMode: 103
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_fontColor.b
+ path:
+ classID: 114
+ script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
+ m_EulerEditorCurves: []
+ m_HasGenericRootTransform: 0
+ m_HasMotionFloatCurves: 0
+ m_Events: []
diff --git a/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextIdle.anim.meta b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextIdle.anim.meta
new file mode 100644
index 000000000..34339acd6
--- /dev/null
+++ b/Assets/Resources/Sprites/Games/RhythmTestGBA/Animation/Text/TextIdle.anim.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7a0d49a32be3bef4ab304ca710a511a4
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 7400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Games/RhythmTestGBA/RhythmTestGBA.cs b/Assets/Scripts/Games/RhythmTestGBA/RhythmTestGBA.cs
index 68aa7e829..83dcdc1cd 100644
--- a/Assets/Scripts/Games/RhythmTestGBA/RhythmTestGBA.cs
+++ b/Assets/Scripts/Games/RhythmTestGBA/RhythmTestGBA.cs
@@ -1,8 +1,10 @@
using System;
+using System.Text;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
+using TMPro;
using HeavenStudio.Util;
using HeavenStudio.InputSystem;
@@ -37,21 +39,31 @@ namespace HeavenStudio.Games.Loaders
return new Minigame("rhythmTestGBA", "Rhythm Test (GBA) \n(Rhythm-kan Check)", "2DD816", false, false, new List()
{
- new GameAction("countin", "Start Beeping")
+ new GameAction("countin", "Change Screen Beeping Properties")
{
- function = delegate { RhythmTestGBA.instance.KeepTheBeep(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity["toggle"], eventCaller.currentEntity["auto"]); },
+ function = delegate { RhythmTestGBA.instance.KTBPrep(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity["toggle"], eventCaller.currentEntity["auto"],
+ eventCaller.currentEntity["image"],
+ eventCaller.currentEntity["textFlash"], eventCaller.currentEntity["textDisplay"], eventCaller.currentEntity["hasSound"]); },
defaultLength = 1f,
resizable = true,
parameters = new List()
{
- new Param("toggle", true, "Toggle", "Toggle the automatic beeping on or off."),
+ new Param("toggle", true, "Toggle", "Toggle the beeping on or off."),
new Param("auto", false, "Auto", "Toggle if the machine should beep automatically."),
+ new Param("image", RhythmTestGBA.PulseOption.Note, "Screen Image", "Set what appears on the machine's screen.", new List()
+ {
+ new Param.CollapseParam((x, _) => (int)x == (int)RhythmTestGBA.PulseOption.Text, new string[] { "textFlash", "textDisplay" }),
+ }),
+ new Param("textDisplay", "Get ready...", "Text to Display", "Changes the text displayed on the screen."),
+ new Param("textFlash", true, "Text Flash", "Toggle if the text on the screen pulses to the beat."),
+ new Param("hasSound", true, "Has Sound", "Toggle if the beeping plays sound or not.")
+
},
},
new GameAction("button", "Start Keep-the-Beat")
{
- function = delegate { var e = eventCaller.currentEntity; RhythmTestGBA.StartKeepbeat(e.beat); },
+ preFunction = delegate { var e = eventCaller.currentEntity; RhythmTestGBA.PreStartKeepbeat(e.beat, e.length); },
defaultLength = 1f,
resizable = false,
@@ -59,12 +71,17 @@ namespace HeavenStudio.Games.Loaders
new GameAction("stopktb", "Stop Keep-the-Beat")
{
- preFunction = delegate { RhythmTestGBA.instance.PreStopKeepbeat(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity["mutecue"]); },
+ preFunction = delegate { RhythmTestGBA.instance.PreStopKeepbeat(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity["mutecue"], eventCaller.currentEntity["finishText"], eventCaller.currentEntity["textDisplay"]); },
defaultLength = 4f,
resizable = false,
parameters = new List()
{
new Param("mutecue", false, "Mute Cue", "Mute the sound cue signifying the end of the keep-the-beat section."),
+ new Param("finishText", true, "Finish Text", "Set if text appears once the keep-the-bet section is finished.", new List()
+ {
+ new Param.CollapseParam((x, _) => (bool)x, new string[] { "textDisplay" }),
+ }),
+ new Param("textDisplay", "Test complete!", "Text to Display", "Changes the text displayed on the screen."),
}
},
@@ -105,25 +122,40 @@ namespace HeavenStudio.Games
{
/// This class handles the minigame logic.
/// Minigame inherits directly from MonoBehaviour, and adds Heaven Studio specific methods to override.
+ using Scripts_RhythmTestGBA;
public class RhythmTestGBA : Minigame
{
public static RhythmTestGBA instance;
static List queuedButton = new();
bool goBeep;
- //bool stopBeep; Unused value - Marc
+ bool stopAutoBeep;
bool keepPressing;
bool shouldmute;
bool disableCount;
+ bool beatPulseTextFlash = false;
+ bool beepHasSound;
+ bool canBeep = false;
+ //bool isBeeping = false;
+
+ int screenFXType;
private double numberSelect;
private float countLength;
+ [NonSerialized] public List noBopIntervals = new(),
+ noBeepIntervals = new();
+
+ [Header("Objects")]
+ [SerializeField] GameObject noteFlash;
+ [SerializeField] TMP_Text screenText;
+
[Header("Animators")]
[SerializeField] Animator buttonAnimator;
[SerializeField] Animator flashAnimator;
[SerializeField] Animator numberBGAnimator;
[SerializeField] Animator numberAnimator;
+ [SerializeField] Animator textAnimator;
[Header("Properties")]
//private static double startBlippingBeat = double.MaxValue; Unused value - Marc
@@ -136,18 +168,36 @@ namespace HeavenStudio.Games
GameEvent button = new GameEvent();
double lastButton = double.MaxValue;
-
- // public struct QueuedButton
- // {
-// public double beat;
-// public float length;
- // }
-// static List queuedButton = new List();
+
+ public enum PulseOption
+ {
+ Note,
+ Text
+ }
+
+ public enum BeepNoise: int
+ {
+ defaultBeep = 0,
+ highBeep = 1,
+ dingBeep = 2
+ }
+
+ public int beepType = 0;
+ //public struct QueuedButton
+ //{
+ // public double beat;
+ // public float length;
+ //}
+ //static List queuedButton = new List();
private void Awake()
{
instance = this;
-
+ screenText.text = "";
+ SetupBopRegion("rhythmTestGBA", "countin", "auto");
+ var currentBeat = Conductor.instance.unswungSongPositionInBeatsAsDouble;
+ KeepTheBeep(currentBeat, 1f, false, false, 0, true);
+ HandleBeeps();
}
void OnDestroy()
@@ -208,36 +258,202 @@ namespace HeavenStudio.Games
}
}
- public void KeepTheBeep(double beat, float length, bool shouldBeep, bool autoBeep)
+ //public override void OnGameSwitch (double beat)
+ //{
+
+ // var actions = GameManager.instance.Beatmap.Entities.FindAll(e => e.datamodel.Split('/')[0] == "rhythmTestGBA");
+ // var tempStops = actions.FindAll(e => e.datamodel == "rhythmTestGBA/stopktb");
+
+ // foreach (var e in tempStops.FindAll(e => e.beat < beat && e.beat + 2 > beat)) {
+ // PreStopKeepbeat(e.beat, e.length, e["mutecue"], e["textFlash"]);
+ // }
+ //}
+
+ private void HandleBeeps()
{
- //stopBeep = false; Unused value - Marc
- if (!shouldBeep) { goBeep = false; return;}
- goBeep = autoBeep;
- if (shouldBeep)
+ List events = EventCaller.GetAllInGameManagerList("rhythmTestGBA", new string[] { "countin" });
+
+ foreach (var e in events)
{
- for (int i = 0; i < length; i++)
- {
- BeatAction.New(instance, new List()
- {
- new BeatAction.Action(beat + i, delegate
- {
- PlayFlashFX();
- SoundByte.PlayOneShotGame("rhythmTestGBA/blip");
-
- })
- });
-
- }
+ noBopIntervals.Add(new Interval(e.beat, e.beat + 1));
+ }
+
+ foreach (var v in events)
+ {
+ noBeepIntervals.Add(new Interval(v.beat, v.beat + v.length));
}
}
+ public void KTBPrep(double beat, float length, bool shouldBeep, bool autoBeep, int type, bool textFlash, string textDisplay, bool hasSound)
+ {
+ canBeep = true;
+ if (type == 1)
+ {
+ screenText.text = textDisplay;
+ }
+ beepType = 0;
+ screenFXType = type;
+ beepHasSound = hasSound;
+ KeepTheBeep(beat, length, shouldBeep, autoBeep, type, textFlash);
+ }
+
+ public void KeepTheBeep(double beat, float length, bool shouldBeep, bool autoBeep, int type, bool textFlash)
+ {
+
+ beatPulseTextFlash = textFlash;
+ if (beepHasSound)
+ {
+ switch (beepType)
+ {
+ case (int)BeepNoise.defaultBeep:
+ SoundByte.PlayOneShotGame("rhythmTestGBA/blip");
+ break;
+ case (int)BeepNoise.highBeep:
+ SoundByte.PlayOneShotGame("rhythmTestGBA/blip2");
+ break;
+ case (int)BeepNoise.dingBeep:
+ SoundByte.PlayOneShotGame("rhythmTestGBA/end_ding");
+ break;
+ }}
+
+ if (shouldBeep)
+ {
+ PlayFakeFlashFX(type, textFlash);
+ List beeps = new List();
+ for (int i = 0; i < length; i++)
+ {
+ beeps.Add(new BeatAction.Action(beat + i, delegate {
+ PlayFlashFX();}
+
+ ));
+ }
+ BeatAction.New(instance, beeps);
+ }
+ }
+
+
+ //goBeep = autoBeep;
+ //if (autoBeep)
+ //{
+ // PlayFlashFX(beatPulseTextFlash, type);
+ // SoundByte.PlayOneShotGame("rhythmTestGBA/blip");
+ //}
+
+ // if (shouldBeep && !autoBeep)
+ // {
+
+ //if (!isBeeping)
+ // {
+ // PlayFlashFX(beatPulseTextFlash, type);
+ // SoundByte.PlayOneShotGame("rhythmTestGBA/blip");
+ // isBeeping = true;
+ // }
+ // for (int i = 0; i < length; i++)
+ // {
+ // BeatAction.New(instance, new List()
+ // {
+ // new BeatAction.Action(beat + i, delegate
+ // {
+ // PlayFlashFX(beatPulseTextFlash, type);
+
+ // SoundByte.PlayOneShotGame("rhythmTestGBA/blip");
+ // })
+ // });
+
+ // }
+ // }
+ // }
+
public void PlayFlashFX()
{
numberAnimator.Play("Idle");
numberBGAnimator.Play("Idle");
- flashAnimator.Play("KTBPulse", 0 ,0);
+ var currentBeat = Conductor.instance.songPositionInBeatsAsDouble;
+ if (!noBopIntervals.Any(x => x.Contains(currentBeat)))
+
+ if (beepHasSound){
+ if(!noBeepIntervals.Any(x => x.Contains(currentBeat)))
+ {
+ {
+ switch (beepType)
+ {
+ case (int)BeepNoise.defaultBeep:
+ SoundByte.PlayOneShotGame("rhythmTestGBA/blip");
+ break;
+ case (int)BeepNoise.highBeep:
+ SoundByte.PlayOneShotGame("rhythmTestGBA/blip2");
+ break;
+ case (int)BeepNoise.dingBeep:
+ SoundByte.PlayOneShotGame("rhythmTestGBA/end_ding");
+ break;
+ }
+ }
+ }}
+ if (screenFXType == 0)
+ {
+
+ noteFlash.SetActive(true);
+ flashAnimator.DoScaledAnimationAsync("KTBPulse", 0.5f);
+ screenText.text = "";
+ }
+ else if (beatPulseTextFlash){
+
+ noteFlash.SetActive(false);
+ textAnimator.DoScaledAnimationAsync("TextFlash", 0.5f);
+ }
+ else
+ {
+
+ noteFlash.SetActive(false);
+ textAnimator.DoScaledAnimationAsync("TextIdle", 0.5f);
+ }
+
+ BeatAction.New(instance, new List()
+ {
+ new BeatAction.Action(currentBeat+0.9f, delegate {noteFlash.SetActive(false);})
+ });
}
+ public void PlayFakeFlashFX(int fakeFXType, bool textFlash)
+ {
+ numberAnimator.Play("Idle");
+ numberBGAnimator.Play("Idle");
+
+ var currentBeat = Conductor.instance.songPositionInBeatsAsDouble;
+ if (fakeFXType == 0)
+ {
+
+ noteFlash.SetActive(true);
+ flashAnimator.DoScaledAnimationAsync("KTBPulse", 0.5f);
+ screenText.text = "";
+
+
+ }
+ else if (textFlash){
+
+ noteFlash.SetActive(false);
+ textAnimator.DoScaledAnimationAsync("TextFlash", 0.5f);
+ }
+ else
+ {
+
+ noteFlash.SetActive(false);
+ textAnimator.DoScaledAnimationAsync("TextIdle", 0.5f);
+ }
+
+ BeatAction.New(instance, new List()
+ {
+ //new BeatAction.Action(beat-1, delegate {KillBeeps(beat);}),
+ new BeatAction.Action(currentBeat+0.9f, delegate {noteFlash.SetActive(false);})
+ });
+ }
+
+
+ public void ChangeText(double beat, string newText, bool newTextFlash)
+ {
+ screenText.text = newText;
+ beatPulseTextFlash = newTextFlash;
+ }
public void PressButton()
@@ -248,79 +464,112 @@ namespace HeavenStudio.Games
}
- public void PreStopKeepbeat(double beat, float length, bool muted)
+ public void PreStopKeepbeat(double beat, float length, bool muted, bool hasFinish, string finishText)
{
+ noBeepIntervals.Add(new Interval(beat, beat + length));
+
+
shouldmute = muted;
+ noBeepIntervals.Add(new Interval(beat, beat + length));
+
+ noBeepIntervals.Add(new Interval(beat, beat + length));
BeatAction.New(instance, new List()
{
- new BeatAction.Action(beat-1, delegate {killBeeps(beat);}),
- new BeatAction.Action(beat, delegate {StopKeepbeat(beat, shouldmute);})
+
+ new BeatAction.Action(beat, delegate {StopKeepbeat(beat, length, shouldmute, hasFinish, finishText);
+ canBeep = false;
+ })
+
});
+
}
- public void StopKeepbeat(double beat, bool shouldmute)
+ public void StopKeepbeat(double beat, float length, bool shouldmute, bool hasFinish, string finishText)
{
-
-
keepPressing = false;
+
ScheduleInput(beat, 1f, InputAction_BasicPress, ButtonSuccess, ButtonFailure, ButtonEmpty);
ScheduleInput(beat, 2f, InputAction_BasicPress, ButtonSuccess, ButtonFailure, ButtonEmpty);
ScheduleInput(beat, 3f, InputAction_BasicPress, ButtonSuccess, ButtonFailure, ButtonEmpty);
+
-
-
BeatAction.New(instance, new List()
{
new BeatAction.Action(beat, delegate {PlayFlashFX();}),
- new BeatAction.Action(beat+1, delegate {PlayFlashFX();}),
+ new BeatAction.Action(beat+1, delegate {PlayFlashFX();}),
- new BeatAction.Action(beat+2, delegate {PlayFlashFX();}),
+ new BeatAction.Action(beat+2, delegate {PlayFlashFX();}),
- new BeatAction.Action(beat+3, delegate { SoundByte.PlayOneShotGame("rhythmTestGBA/end_ding", beat: beat, forcePlay: true);})
+
+
+ new BeatAction.Action(beat+3, delegate { SoundByte.PlayOneShotGame("rhythmTestGBA/end_ding", beat: beat, forcePlay: true);
+
+ if (hasFinish)
+ {
+ screenText.text = finishText;
+ textAnimator.DoScaledAnimationAsync("TextIdle", 0.5f);
+ }
+
+ })
});
+
if (!shouldmute)
{
- SoundByte.PlayOneShotGame("rhythmTestGBA/blip2");
- BeatAction.New(instance, new List()
- {
- new BeatAction.Action(beat+1, delegate { SoundByte.PlayOneShotGame("rhythmTestGBA/blip2", beat: beat);}),
- new BeatAction.Action(beat+2, delegate { SoundByte.PlayOneShotGame("rhythmTestGBA/blip2", beat: beat);})
- });
-
+ MultiSound.Play(new MultiSound.Sound[] {
+ new MultiSound.Sound("rhythmTestGBA/blip2", beat),
+ new MultiSound.Sound("rhythmTestGBA/blip2", beat+1),
+ new MultiSound.Sound("rhythmTestGBA/blip2", beat+2),
+
+ });
}
- }
-
-
- public void StopKeepbeatInput(double beat)
- {
- ScheduleInput(beat, 0f, InputAction_BasicPress, ButtonSuccess, ButtonFailure, ButtonEmpty);
- PlayFlashFX();
+
+
+
}
public override void OnBeatPulse(double beat)
{
- if (goBeep)
+ if (BeatIsInBopRegion(beat) && canBeep)
{
PlayFlashFX();
- SoundByte.PlayOneShotGame("rhythmTestGBA/blip");
}
}
- public void killBeeps(double beat)
+ //public void KillBeeps(double beat)
+ //{
+ // goBeep = false;
+ //isBeeping = false;
+ //}
+
+ public static void PreStartKeepbeat(double beat, float length)
{
- goBeep = false;
+ if (GameManager.instance.currentGame == "rhythmTestGBA")
+ {
+ StartKeepbeat(beat, length);
+ }
+ else
+ {
+ BeatAction.New(instance, new List()
+ {
+
+ new BeatAction.Action(beat, delegate {queuedButton.Add(wantButton);}),
+ }
+ );
+ }
}
+
+
- public static void StartKeepbeat(double beat)
+ public static void StartKeepbeat(double beat, float length)
{
RhythmTestGBA.wantButton = beat-1;
@@ -328,6 +577,7 @@ namespace HeavenStudio.Games
}
+
public void PreCountDown(double startBeat, float length, int countdownNumber)
{
if (keepPressing) return;
@@ -667,3 +917,29 @@ namespace HeavenStudio.Games
}
}
+
+namespace HeavenStudio.Games.Scripts_RhythmTestGBA
+{
+ public class Interval
+ {
+ private readonly double _start;
+ private readonly double _end;
+ private readonly Func _leftComparer;
+ private readonly Func _rightComparer;
+
+ public double Start => _start;
+ public double End => _end;
+
+ public Interval(double start, double end, bool isLeftClosed = true, bool isRightClosed = false)
+ {
+ _start = start;
+ _end = end;
+
+ _leftComparer = isLeftClosed ? (value, boundary) => value >= boundary : (value, boundary) => value > boundary;
+ _rightComparer = isRightClosed ? (value, boundary) => value <= boundary : (value, boundary) => value < boundary;
+ }
+
+ public bool Contains(double value) => _leftComparer(value, _start) && _rightComparer(value, _end);
+ }
+}
+