16th note swing
more game fixes make pitch change resync optional in the API
This commit is contained in:
parent
9d14932b02
commit
92f00e5b04
|
@ -414,9 +414,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 574002313}
|
m_Father: {fileID: 574002313}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: 0, y: -21}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 32, y: 32}
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
m_Pivot: {x: 0, y: 0.5}
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
--- !u!114 &9435782
|
--- !u!114 &9435782
|
||||||
|
@ -3846,9 +3846,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 539838476}
|
m_Father: {fileID: 539838476}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: 32, y: -21}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 32, y: 32}
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
m_Pivot: {x: 1, y: 0.5}
|
m_Pivot: {x: 1, y: 0.5}
|
||||||
--- !u!114 &121871281
|
--- !u!114 &121871281
|
||||||
|
@ -4070,9 +4070,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 539838476}
|
m_Father: {fileID: 539838476}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: 72, y: -21}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 32, y: 32}
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
m_Pivot: {x: 1, y: 0.5}
|
m_Pivot: {x: 1, y: 0.5}
|
||||||
--- !u!114 &129013734
|
--- !u!114 &129013734
|
||||||
|
@ -4170,6 +4170,71 @@ MonoBehaviour:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
TooltipText: Metronome <color=#adadad>[M]</color>
|
TooltipText: Metronome <color=#adadad>[M]</color>
|
||||||
|
--- !u!1 &143407410
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 143407411}
|
||||||
|
- component: {fileID: 143407412}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: SwingDivision
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &143407411
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 143407410}
|
||||||
|
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: 738950517}
|
||||||
|
- {fileID: 1300133179}
|
||||||
|
m_Father: {fileID: 980212093}
|
||||||
|
m_RootOrder: 2
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 809.5935, y: -113}
|
||||||
|
m_SizeDelta: {x: 1595.187, y: 40}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &143407412
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 143407410}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Padding:
|
||||||
|
m_Left: 0
|
||||||
|
m_Right: 16
|
||||||
|
m_Top: 0
|
||||||
|
m_Bottom: 0
|
||||||
|
m_ChildAlignment: 3
|
||||||
|
m_Spacing: 42
|
||||||
|
m_ChildForceExpandWidth: 0
|
||||||
|
m_ChildForceExpandHeight: 1
|
||||||
|
m_ChildControlWidth: 0
|
||||||
|
m_ChildControlHeight: 0
|
||||||
|
m_ChildScaleWidth: 0
|
||||||
|
m_ChildScaleHeight: 0
|
||||||
|
m_ReverseArrangement: 0
|
||||||
--- !u!1 &151246936
|
--- !u!1 &151246936
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -4206,9 +4271,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 539838476}
|
m_Father: {fileID: 539838476}
|
||||||
m_RootOrder: 2
|
m_RootOrder: 2
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: 112, y: -21}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 32, y: 32}
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
m_Pivot: {x: 1, y: 0.5}
|
m_Pivot: {x: 1, y: 0.5}
|
||||||
--- !u!114 &151246938
|
--- !u!114 &151246938
|
||||||
|
@ -10303,6 +10368,82 @@ MonoBehaviour:
|
||||||
volumeTXT: {fileID: 746356640}
|
volumeTXT: {fileID: 746356640}
|
||||||
volumeLine: {fileID: 1126835990}
|
volumeLine: {fileID: 1126835990}
|
||||||
volumeDialog: {fileID: 864592614}
|
volumeDialog: {fileID: 864592614}
|
||||||
|
--- !u!1 &406795636
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 406795637}
|
||||||
|
- component: {fileID: 406795639}
|
||||||
|
- component: {fileID: 406795638}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Checkmark
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &406795637
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 406795636}
|
||||||
|
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: 913463862}
|
||||||
|
m_RootOrder: 0
|
||||||
|
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: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &406795638
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 406795636}
|
||||||
|
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: 10901, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 1
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!222 &406795639
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 406795636}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &407289014
|
--- !u!1 &407289014
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -11243,7 +11384,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 1236, y: -25}
|
m_AnchoredPosition: {x: 1182.0001, y: -25}
|
||||||
m_SizeDelta: {x: 360, y: 40}
|
m_SizeDelta: {x: 360, y: 40}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &456251927
|
--- !u!114 &456251927
|
||||||
|
@ -20311,8 +20452,8 @@ RectTransform:
|
||||||
m_Father: {fileID: 2062943138}
|
m_Father: {fileID: 2062943138}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.01, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0.01, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 20, y: 0}
|
m_SizeDelta: {x: 20, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
@ -20354,6 +20495,143 @@ CanvasRenderer:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 738634698}
|
m_GameObject: {fileID: 738634698}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!1 &738950516
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 738950517}
|
||||||
|
- component: {fileID: 738950519}
|
||||||
|
- component: {fileID: 738950518}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Text (TMP)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &738950517
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 738950516}
|
||||||
|
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: 143407411}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 5}
|
||||||
|
m_SizeDelta: {x: 249.18692, y: 50}
|
||||||
|
m_Pivot: {x: 0, y: 1}
|
||||||
|
--- !u!114 &738950518
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 738950516}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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: 16th Note Swing?
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 4810e200fa0cb24438bac52343d7674b, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: 8580487687356851718, guid: 4810e200fa0cb24438bac52343d7674b, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontColor: {r: 1, g: 1, b: 1, 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: 26
|
||||||
|
m_fontSizeBase: 26
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 1
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: -97.7
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 1
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
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: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!222 &738950519
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 738950516}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &743531235
|
--- !u!1 &743531235
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -22205,6 +22483,7 @@ MonoBehaviour:
|
||||||
tempoInput: {fileID: 467708510}
|
tempoInput: {fileID: 467708510}
|
||||||
swingInput: {fileID: 704808992}
|
swingInput: {fileID: 704808992}
|
||||||
swingSlider: {fileID: 907963053}
|
swingSlider: {fileID: 907963053}
|
||||||
|
swingDivisionToggle: {fileID: 1950592168}
|
||||||
--- !u!224 &788904140 stripped
|
--- !u!224 &788904140 stripped
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_CorrespondingSourceObject: {fileID: 3263607626584268237, guid: 5edde5c03f192d242bc2fa6277914e6e, type: 3}
|
m_CorrespondingSourceObject: {fileID: 3263607626584268237, guid: 5edde5c03f192d242bc2fa6277914e6e, type: 3}
|
||||||
|
@ -25179,6 +25458,83 @@ MonoBehaviour:
|
||||||
m_FillOrigin: 0
|
m_FillOrigin: 0
|
||||||
m_UseSpriteMesh: 0
|
m_UseSpriteMesh: 0
|
||||||
m_PixelsPerUnitMultiplier: 1
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!1 &913463861
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 913463862}
|
||||||
|
- component: {fileID: 913463864}
|
||||||
|
- component: {fileID: 913463863}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Background
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &913463862
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 913463861}
|
||||||
|
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: 406795637}
|
||||||
|
m_Father: {fileID: 1950592167}
|
||||||
|
m_RootOrder: 0
|
||||||
|
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: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &913463863
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 913463861}
|
||||||
|
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: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
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: 1
|
||||||
|
--- !u!222 &913463864
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 913463861}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &918768360
|
--- !u!1 &918768360
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -27161,6 +27517,7 @@ RectTransform:
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 278632244}
|
- {fileID: 278632244}
|
||||||
- {fileID: 1922212788}
|
- {fileID: 1922212788}
|
||||||
|
- {fileID: 143407411}
|
||||||
m_Father: {fileID: 788904137}
|
m_Father: {fileID: 788904137}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
@ -31099,7 +31456,7 @@ RectTransform:
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0.01, y: 1}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 10, y: 0}
|
m_SizeDelta: {x: 10, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
@ -31221,7 +31578,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0.5}
|
m_AnchorMin: {x: 0, y: 0.5}
|
||||||
m_AnchorMax: {x: 1, y: 0.5}
|
m_AnchorMax: {x: 1, y: 0.5}
|
||||||
m_AnchoredPosition: {x: 0, y: 136.20409}
|
m_AnchoredPosition: {x: 0, y: 136.2041}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 1}
|
m_Pivot: {x: 0.5, y: 1}
|
||||||
--- !u!222 &1154875945
|
--- !u!222 &1154875945
|
||||||
|
@ -34607,6 +34964,79 @@ MonoBehaviour:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
TooltipText: Starting Tempo (BPM)
|
TooltipText: Starting Tempo (BPM)
|
||||||
|
--- !u!1 &1300133178
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1300133179}
|
||||||
|
- component: {fileID: 1300133181}
|
||||||
|
- component: {fileID: 1300133180}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Holder
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1300133179
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1300133178}
|
||||||
|
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: 1
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 1950592167}
|
||||||
|
m_Father: {fileID: 143407411}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 935.187, y: -20}
|
||||||
|
m_SizeDelta: {x: 1288.0001, y: 40}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &1300133180
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1300133178}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Padding:
|
||||||
|
m_Left: 0
|
||||||
|
m_Right: 0
|
||||||
|
m_Top: 0
|
||||||
|
m_Bottom: 0
|
||||||
|
m_ChildAlignment: 3
|
||||||
|
m_Spacing: 0
|
||||||
|
m_ChildForceExpandWidth: 0
|
||||||
|
m_ChildForceExpandHeight: 1
|
||||||
|
m_ChildControlWidth: 0
|
||||||
|
m_ChildControlHeight: 0
|
||||||
|
m_ChildScaleWidth: 0
|
||||||
|
m_ChildScaleHeight: 0
|
||||||
|
m_ReverseArrangement: 0
|
||||||
|
--- !u!222 &1300133181
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1300133178}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &1310571273
|
--- !u!1 &1310571273
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -35551,9 +35981,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 574002313}
|
m_Father: {fileID: 574002313}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: 40, y: -21}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 32, y: 32}
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
m_Pivot: {x: 0, y: 0.5}
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
--- !u!114 &1345846031
|
--- !u!114 &1345846031
|
||||||
|
@ -44049,9 +44479,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 574002313}
|
m_Father: {fileID: 574002313}
|
||||||
m_RootOrder: 2
|
m_RootOrder: 2
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: 80, y: -21}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 32, y: 32}
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
m_Pivot: {x: 0, y: 0.5}
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
--- !u!114 &1783491359
|
--- !u!114 &1783491359
|
||||||
|
@ -47988,6 +48418,104 @@ CanvasRenderer:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1950471846}
|
m_GameObject: {fileID: 1950471846}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!1 &1950592166
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1950592167}
|
||||||
|
- component: {fileID: 1950592168}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Toggle
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1950592167
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1950592166}
|
||||||
|
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: 913463862}
|
||||||
|
m_Father: {fileID: 1300133179}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 16, y: -20}
|
||||||
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &1950592168
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1950592166}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Navigation:
|
||||||
|
m_Mode: 3
|
||||||
|
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.78431374, g: 0.78431374, b: 0.78431374, 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.1
|
||||||
|
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: 913463863}
|
||||||
|
toggleTransition: 1
|
||||||
|
graphic: {fileID: 406795638}
|
||||||
|
m_Group: {fileID: 0}
|
||||||
|
onValueChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls:
|
||||||
|
- m_Target: {fileID: 788904139}
|
||||||
|
m_TargetAssemblyTypeName: TempoDialog, Assembly-CSharp
|
||||||
|
m_MethodName: SwingDivisionToggle
|
||||||
|
m_Mode: 1
|
||||||
|
m_Arguments:
|
||||||
|
m_ObjectArgument: {fileID: 0}
|
||||||
|
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||||
|
m_IntArgument: 0
|
||||||
|
m_FloatArgument: 0
|
||||||
|
m_StringArgument:
|
||||||
|
m_BoolArgument: 0
|
||||||
|
m_CallState: 2
|
||||||
|
m_IsOn: 0
|
||||||
--- !u!1 &1951710748
|
--- !u!1 &1951710748
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
@ -96,7 +96,9 @@ namespace HeavenStudio
|
||||||
private float timelineVolume = 1f;
|
private float timelineVolume = 1f;
|
||||||
private float minigameVolume = 1f;
|
private float minigameVolume = 1f;
|
||||||
|
|
||||||
public void SetTimelinePitch(float pitch)
|
const bool doPitchResync = true;
|
||||||
|
|
||||||
|
public void SetTimelinePitch(float pitch, bool resync = false)
|
||||||
{
|
{
|
||||||
if (isPaused || deferTimeKeeping) return;
|
if (isPaused || deferTimeKeeping) return;
|
||||||
if (pitch != 0 && pitch != timelinePitch)
|
if (pitch != 0 && pitch != timelinePitch)
|
||||||
|
@ -109,7 +111,7 @@ namespace HeavenStudio
|
||||||
if (musicSource != null && musicSource.clip != null)
|
if (musicSource != null && musicSource.clip != null)
|
||||||
{
|
{
|
||||||
musicSource.pitch = SongPitch;
|
musicSource.pitch = SongPitch;
|
||||||
if (isPlaying)
|
if (doPitchResync && isPlaying && resync && !deferTimeKeeping)
|
||||||
{
|
{
|
||||||
time = MapTimeToPitchChanges(absTime + absTimeAdjust);
|
time = MapTimeToPitchChanges(absTime + absTimeAdjust);
|
||||||
songPos = startPos + time;
|
songPos = startPos + time;
|
||||||
|
@ -119,7 +121,7 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetMinigamePitch(float pitch)
|
public void SetMinigamePitch(float pitch, bool resync = false)
|
||||||
{
|
{
|
||||||
if (isPaused || deferTimeKeeping || !isPlaying) return;
|
if (isPaused || deferTimeKeeping || !isPlaying) return;
|
||||||
if (pitch != 0 && pitch != minigamePitch)
|
if (pitch != 0 && pitch != minigamePitch)
|
||||||
|
@ -132,7 +134,7 @@ namespace HeavenStudio
|
||||||
if (musicSource != null && musicSource.clip != null)
|
if (musicSource != null && musicSource.clip != null)
|
||||||
{
|
{
|
||||||
musicSource.pitch = SongPitch;
|
musicSource.pitch = SongPitch;
|
||||||
if (isPlaying)
|
if (doPitchResync && isPlaying && resync && !deferTimeKeeping)
|
||||||
{
|
{
|
||||||
time = MapTimeToPitchChanges(absTime + absTimeAdjust);
|
time = MapTimeToPitchChanges(absTime + absTimeAdjust);
|
||||||
songPos = startPos + time;
|
songPos = startPos + time;
|
||||||
|
@ -162,8 +164,6 @@ namespace HeavenStudio
|
||||||
double offset = chart.data.offset;
|
double offset = chart.data.offset;
|
||||||
startPos = GetSongPosFromBeat(beat);
|
startPos = GetSongPosFromBeat(beat);
|
||||||
|
|
||||||
double dspTime = AudioSettings.dspTime;
|
|
||||||
|
|
||||||
time = startPos;
|
time = startPos;
|
||||||
firstBeatOffset = offset;
|
firstBeatOffset = offset;
|
||||||
|
|
||||||
|
@ -264,8 +264,8 @@ namespace HeavenStudio
|
||||||
if (!isPlaying) return;
|
if (!isPlaying) return;
|
||||||
isPlaying = false;
|
isPlaying = false;
|
||||||
isPaused = true;
|
isPaused = true;
|
||||||
deferTimeKeeping = false;
|
|
||||||
SetMinigamePitch(1f);
|
SetMinigamePitch(1f);
|
||||||
|
deferTimeKeeping = false;
|
||||||
|
|
||||||
musicSource.Stop();
|
musicSource.Stop();
|
||||||
Util.SoundByte.PauseOneShots();
|
Util.SoundByte.PauseOneShots();
|
||||||
|
@ -286,8 +286,8 @@ namespace HeavenStudio
|
||||||
|
|
||||||
isPlaying = false;
|
isPlaying = false;
|
||||||
isPaused = false;
|
isPaused = false;
|
||||||
deferTimeKeeping = false;
|
|
||||||
SetMinigamePitch(1f);
|
SetMinigamePitch(1f);
|
||||||
|
deferTimeKeeping = false;
|
||||||
|
|
||||||
musicSource.Stop();
|
musicSource.Stop();
|
||||||
}
|
}
|
||||||
|
@ -507,44 +507,58 @@ namespace HeavenStudio
|
||||||
return gameManager.Beatmap.TempoChanges;
|
return gameManager.Beatmap.TempoChanges;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float GetBpmAtBeat(double beat, out float swingRatio)
|
public float GetBpmAtBeat(double beat, out float swingRatio, out float swingDivision)
|
||||||
{
|
{
|
||||||
swingRatio = 0.5f;
|
swingRatio = 0.5f;
|
||||||
|
swingDivision = 1f;
|
||||||
var chart = gameManager.Beatmap;
|
var chart = gameManager.Beatmap;
|
||||||
if (chart.TempoChanges.Count == 0)
|
if (chart.TempoChanges.Count == 0)
|
||||||
return 120f;
|
return 120f;
|
||||||
|
|
||||||
RiqEntity tempoChange = chart.TempoChanges.FindLast(t => t.beat <= beat);
|
RiqEntity tempo = null;
|
||||||
tempoChange ??= chart.TempoChanges[0];
|
foreach (RiqEntity t in chart.TempoChanges)
|
||||||
swingRatio = tempoChange["swing"] + 0.5f;
|
{
|
||||||
return tempoChange["tempo"];
|
if (t.beat > beat)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
tempo = t;
|
||||||
|
}
|
||||||
|
tempo ??= chart.TempoChanges[0];
|
||||||
|
swingRatio = tempo["swing"] + 0.5f;
|
||||||
|
swingDivision = tempo["swingDivision"] ?? 1f;
|
||||||
|
return tempo["tempo"];
|
||||||
}
|
}
|
||||||
|
|
||||||
public float GetBpmAtBeat(double beat)
|
public float GetBpmAtBeat(double beat)
|
||||||
{
|
{
|
||||||
return GetBpmAtBeat(beat, out _);
|
return GetBpmAtBeat(beat, out _, out _);
|
||||||
}
|
}
|
||||||
|
|
||||||
public float GetSwingRatioAtBeat(double beat)
|
public float GetSwingRatioAtBeat(double beat, out float swingDivision)
|
||||||
{
|
{
|
||||||
float swingRatio;
|
float swingRatio;
|
||||||
GetBpmAtBeat(beat, out swingRatio);
|
GetBpmAtBeat(beat, out swingRatio, out swingDivision);
|
||||||
return swingRatio;
|
return swingRatio;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double GetSwungBeat(double beat)
|
public double GetSwungBeat(double beat)
|
||||||
{
|
{
|
||||||
return Math.Floor(beat) + GetSwingOffset(beat, GetSwingRatioAtBeat(beat));
|
float ratio = GetSwingRatioAtBeat(beat, out float division);
|
||||||
|
int floor = (int)Math.Floor(beat / division);
|
||||||
|
|
||||||
|
return (floor * division) + GetSwingOffset(beat, ratio, division);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double GetSwungBeat(double beat, float ratio)
|
public double GetSwungBeat(double beat, float ratio, float division)
|
||||||
{
|
{
|
||||||
return Math.Floor(beat) + GetSwingOffset(beat, ratio);
|
int floor = (int)Math.Floor(beat / division);
|
||||||
|
return (floor * division) + GetSwingOffset(beat, ratio, division);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double GetSwingOffset(double beatFrac, float ratio)
|
public double GetSwingOffset(double beatFrac, float ratio, float division)
|
||||||
{
|
{
|
||||||
beatFrac %= 1;
|
beatFrac %= division;
|
||||||
if (beatFrac <= ratio)
|
if (beatFrac <= ratio)
|
||||||
{
|
{
|
||||||
return 0.5 / ratio * beatFrac;
|
return 0.5 / ratio * beatFrac;
|
||||||
|
@ -557,17 +571,21 @@ namespace HeavenStudio
|
||||||
|
|
||||||
public double GetUnSwungBeat(double beat)
|
public double GetUnSwungBeat(double beat)
|
||||||
{
|
{
|
||||||
return Math.Floor(beat) + GetUnSwingOffset(beat, GetSwingRatioAtBeat(beat));
|
float ratio = GetSwingRatioAtBeat(beat, out float division);
|
||||||
|
int floor = (int)Math.Floor(beat / division);
|
||||||
|
|
||||||
|
return (floor * division) + GetUnSwingOffset(beat, ratio, division);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double GetUnSwungBeat(double beat, float ratio)
|
public double GetUnSwungBeat(double beat, float ratio, float division)
|
||||||
{
|
{
|
||||||
return Math.Floor(beat) + GetUnSwingOffset(beat, ratio);
|
int floor = (int)Math.Floor(beat / division);
|
||||||
|
return (floor * division) + GetUnSwingOffset(beat, ratio, division);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double GetUnSwingOffset(double beatFrac, float ratio)
|
public double GetUnSwingOffset(double beatFrac, float ratio, float division)
|
||||||
{
|
{
|
||||||
beatFrac %= 1;
|
beatFrac %= division;
|
||||||
if (beatFrac <= ratio)
|
if (beatFrac <= ratio)
|
||||||
{
|
{
|
||||||
return 2 * ratio * beatFrac;
|
return 2 * ratio * beatFrac;
|
||||||
|
|
|
@ -239,8 +239,12 @@ namespace HeavenStudio
|
||||||
AudioLoadDone = false;
|
AudioLoadDone = false;
|
||||||
Beatmap = new("1", "HeavenStudio");
|
Beatmap = new("1", "HeavenStudio");
|
||||||
Beatmap.data.properties = new(Minigames.propertiesModel);
|
Beatmap.data.properties = new(Minigames.propertiesModel);
|
||||||
Beatmap.AddNewTempoChange(0, 120f);
|
|
||||||
|
RiqEntity t = Beatmap.AddNewTempoChange(0, 120f);
|
||||||
|
t.CreateProperty("swingDivision", 1f);
|
||||||
|
|
||||||
Beatmap.AddNewVolumeChange(0, 100f);
|
Beatmap.AddNewVolumeChange(0, 100f);
|
||||||
|
|
||||||
Beatmap.data.offset = 0f;
|
Beatmap.data.offset = 0f;
|
||||||
conductor.musicSource.clip = null;
|
conductor.musicSource.clip = null;
|
||||||
RiqFileHandler.WriteRiq(Beatmap);
|
RiqFileHandler.WriteRiq(Beatmap);
|
||||||
|
@ -798,7 +802,7 @@ namespace HeavenStudio
|
||||||
}
|
}
|
||||||
|
|
||||||
conductor.Stop(beat);
|
conductor.Stop(beat);
|
||||||
SetCurrentEventToClosest(beat);
|
conductor.SetBeat(beat);
|
||||||
|
|
||||||
KillAllSounds();
|
KillAllSounds();
|
||||||
if (restart)
|
if (restart)
|
||||||
|
|
|
@ -131,7 +131,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
|
||||||
// var key2Pos = key2.Position;
|
// var key2Pos = key2.Position;
|
||||||
// key2.Position = new Vector3(key2Pos.x, veggieTrans.position.y + 2f, key2Pos.z);
|
// key2.Position = new Vector3(key2Pos.x, veggieTrans.position.y + 2f, key2Pos.z);
|
||||||
|
|
||||||
pickedBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
pickedBeat = Conductor.instance.unswungSongPositionInBeatsAsDouble;
|
||||||
|
|
||||||
SoundByte.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
|
|
||||||
|
@ -222,11 +222,11 @@ namespace HeavenStudio.Games.Scripts_CropStomp
|
||||||
|
|
||||||
veggieState = 1;
|
veggieState = 1;
|
||||||
game.ScheduleInput(targetBeat, isMole ? 0.5f : 1f, CropStomp.InputAction_FlickRelease, PickJust, PickMiss, Out);
|
game.ScheduleInput(targetBeat, isMole ? 0.5f : 1f, CropStomp.InputAction_FlickRelease, PickJust, PickMiss, Out);
|
||||||
targetBeat = targetBeat + (isMole ? 0.5f : 1f);
|
targetBeat = cond.GetUnSwungBeat(targetBeat + (isMole ? 0.5f : 1f));
|
||||||
|
|
||||||
stompedBeat = cond.songPositionInBeatsAsDouble;
|
stompedBeat = cond.unswungSongPositionInBeatsAsDouble;
|
||||||
|
|
||||||
landBeat = targetBeat + (float)cond.SecsToBeats(Minigame.NgLateTime() - 1, cond.GetBpmAtBeat(targetBeat));
|
landBeat = targetBeat + cond.SecsToBeats(Minigame.NgLateTime() - 1, cond.GetBpmAtBeat(targetBeat));
|
||||||
|
|
||||||
if (autoTriggered)
|
if (autoTriggered)
|
||||||
{
|
{
|
||||||
|
@ -266,7 +266,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
|
||||||
var keyPos = key1.Position;
|
var keyPos = key1.Position;
|
||||||
key1.Position = new Vector3(keyPos.x, veggieTrans.position.y, keyPos.z);
|
key1.Position = new Vector3(keyPos.x, veggieTrans.position.y, keyPos.z);
|
||||||
|
|
||||||
pickedBeat = Conductor.instance.songPositionInBeatsAsDouble;
|
pickedBeat = Conductor.instance.unswungSongPositionInBeatsAsDouble;
|
||||||
|
|
||||||
if (!isMole)
|
if (!isMole)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
double beat = conductor.songPositionInBeatsAsDouble;
|
double beat = conductor.unswungSongPositionInBeatsAsDouble;
|
||||||
double height = 0f;
|
double height = 0f;
|
||||||
if (pathStartBeat > double.MinValue)
|
if (pathStartBeat > double.MinValue)
|
||||||
{
|
{
|
||||||
|
@ -44,7 +44,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
game.ScheduleInput(beat, 1f, DoubleDate.InputAction_FlickPress, Just, Miss, Empty);
|
game.ScheduleInput(beat, 1f, DoubleDate.InputAction_FlickPress, Just, Miss, Empty);
|
||||||
path = game.GetPath("BasketBallIn");
|
path = game.GetPath("BasketBallIn");
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = beat - 1f;
|
pathStartBeat = Conductor.instance.GetUnSwungBeat(beat - 1f);
|
||||||
|
|
||||||
Vector3 pos = GetPathPositionFromBeat(path, pathStartBeat, pathStartBeat);
|
Vector3 pos = GetPathPositionFromBeat(path, pathStartBeat, pathStartBeat);
|
||||||
transform.position = pos;
|
transform.position = pos;
|
||||||
|
@ -65,7 +65,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeatsAsDouble;
|
pathStartBeat = conductor.unswungSongPositionInBeatsAsDouble;
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
path = game.GetPath("BasketBallNg" + (state > 0 ? "Late" : "Early"));
|
path = game.GetPath("BasketBallNg" + (state > 0 ? "Late" : "Early"));
|
||||||
|
@ -80,7 +80,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
void Hit()
|
void Hit()
|
||||||
{
|
{
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeatsAsDouble;
|
pathStartBeat = conductor.unswungSongPositionInBeatsAsDouble;
|
||||||
path = game.GetPath("BasketBallJust");
|
path = game.GetPath("BasketBallJust");
|
||||||
game.Kick(true, false, true, _jump);
|
game.Kick(true, false, true, _jump);
|
||||||
SoundByte.PlayOneShotGame("doubleDate/kick");
|
SoundByte.PlayOneShotGame("doubleDate/kick");
|
||||||
|
|
|
@ -262,8 +262,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
if (conductor.isPlaying && !conductor.isPaused)
|
||||||
if (cond.isPlaying && !cond.isPaused)
|
|
||||||
{
|
{
|
||||||
if (queuedBalls.Count != 0)
|
if (queuedBalls.Count != 0)
|
||||||
{
|
{
|
||||||
|
@ -287,7 +286,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ((!cond.isPaused) && queuedBalls.Count != 0)
|
if ((!conductor.isPaused) && queuedBalls.Count != 0)
|
||||||
{
|
{
|
||||||
queuedBalls.Clear();
|
queuedBalls.Clear();
|
||||||
}
|
}
|
||||||
|
@ -353,7 +352,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
boyAnim.DoScaledAnimationAsync(_isStaring ? "IdleBop2" : "IdleBop", _animSpeed);
|
boyAnim.DoScaledAnimationAsync(_isStaring ? "IdleBop2" : "IdleBop", _animSpeed);
|
||||||
}
|
}
|
||||||
if (Conductor.instance.songPositionInBeatsAsDouble > lastGirlGacha)
|
if (conductor.songPositionInBeatsAsDouble > lastGirlGacha)
|
||||||
girlAnim.DoScaledAnimationAsync("GirlBop", _animSpeed);
|
girlAnim.DoScaledAnimationAsync("GirlBop", _animSpeed);
|
||||||
weasels.Bop();
|
weasels.Bop();
|
||||||
}
|
}
|
||||||
|
@ -366,7 +365,7 @@ namespace HeavenStudio.Games
|
||||||
if (jump)
|
if (jump)
|
||||||
{
|
{
|
||||||
weasels.Jump();
|
weasels.Jump();
|
||||||
lastGirlGacha = Conductor.instance.songPositionInBeatsAsDouble + 0.5f;
|
lastGirlGacha = conductor.songPositionInBeatsAsDouble + 0.5f;
|
||||||
girlAnim.DoScaledAnimationAsync("GirlLookUp", _animSpeed);
|
girlAnim.DoScaledAnimationAsync("GirlLookUp", _animSpeed);
|
||||||
}
|
}
|
||||||
else if (weaselsHappy) weasels.Happy();
|
else if (weaselsHappy) weasels.Happy();
|
||||||
|
@ -374,7 +373,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
BeatAction.New(instance, new List<BeatAction.Action>()
|
BeatAction.New(instance, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(Conductor.instance.songPositionInBeatsAsDouble + 1f, delegate
|
new BeatAction.Action(conductor.songPositionInBeatsAsDouble + 1f, delegate
|
||||||
{
|
{
|
||||||
leaves.Play();
|
leaves.Play();
|
||||||
treeAnim.DoScaledAnimationAsync("TreeRustle", _animSpeed);
|
treeAnim.DoScaledAnimationAsync("TreeRustle", _animSpeed);
|
||||||
|
@ -471,11 +470,11 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public void MissKick(double beat, bool hit = false)
|
public void MissKick(double beat, bool hit = false)
|
||||||
{
|
{
|
||||||
lastGirlGacha = Conductor.instance.songPositionInBeatsAsDouble + 1.5f;
|
lastGirlGacha = conductor.songPositionInBeatsAsDouble + 1.5f;
|
||||||
girlAnim.DoScaledAnimationAsync("GirlSad", _animSpeed);
|
girlAnim.DoScaledAnimationAsync("GirlSad", _animSpeed);
|
||||||
if (hit)
|
if (hit)
|
||||||
{
|
{
|
||||||
lastHitWeasel = Conductor.instance.songPositionInBeatsAsDouble;
|
lastHitWeasel = conductor.songPositionInBeatsAsDouble;
|
||||||
BeatAction.New(this, new List<BeatAction.Action>()
|
BeatAction.New(this, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat - (0.25f/3f), delegate { weasels.Hit(beat); }),
|
new BeatAction.Action(beat - (0.25f/3f), delegate { weasels.Hit(beat); }),
|
||||||
|
@ -483,7 +482,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lastHitWeasel = Conductor.instance.songPositionInBeatsAsDouble;
|
lastHitWeasel = conductor.songPositionInBeatsAsDouble;
|
||||||
BeatAction.New(this, new List<BeatAction.Action>()
|
BeatAction.New(this, new List<BeatAction.Action>()
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat + 0.25, delegate { weasels.Hide(beat + 0.25f); }),
|
new BeatAction.Action(beat + 0.25, delegate { weasels.Hide(beat + 0.25f); }),
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
double beat = conductor.songPositionInBeatsAsDouble;
|
double beat = conductor.unswungSongPositionInBeatsAsDouble;
|
||||||
double height = 0f;
|
double height = 0f;
|
||||||
if (pathStartBeat > double.MinValue)
|
if (pathStartBeat > double.MinValue)
|
||||||
{
|
{
|
||||||
|
@ -44,7 +44,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
game.ScheduleInput(beat, 1.5f, DoubleDate.InputAction_FlickPress, Just, Miss, Empty);
|
game.ScheduleInput(beat, 1.5f, DoubleDate.InputAction_FlickPress, Just, Miss, Empty);
|
||||||
path = game.GetPath("FootBallInNoHit"); // there's a second path for footballs that hit the weasels, use that if the weasels haven't been hit recently
|
path = game.GetPath("FootBallInNoHit"); // there's a second path for footballs that hit the weasels, use that if the weasels haven't been hit recently
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = beat - 1f;
|
pathStartBeat = Conductor.instance.GetUnSwungBeat(beat - 1f);
|
||||||
|
|
||||||
Vector3 pos = GetPathPositionFromBeat(path, pathStartBeat, pathStartBeat);
|
Vector3 pos = GetPathPositionFromBeat(path, pathStartBeat, pathStartBeat);
|
||||||
transform.position = pos;
|
transform.position = pos;
|
||||||
|
@ -60,7 +60,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeatsAsDouble;
|
pathStartBeat = conductor.unswungSongPositionInBeatsAsDouble;
|
||||||
path = game.GetPath("FootBallNg" + (state > 0 ? "Late" : "Early"));
|
path = game.GetPath("FootBallNg" + (state > 0 ? "Late" : "Early"));
|
||||||
SoundByte.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
game.Kick(false);
|
game.Kick(false);
|
||||||
|
@ -84,7 +84,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
transform.localScale *= 0.25f;
|
transform.localScale *= 0.25f;
|
||||||
path = game.GetPath("FootBallFall");
|
path = game.GetPath("FootBallFall");
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeatsAsDouble + 1f;
|
pathStartBeat = conductor.unswungSongPositionInBeatsAsDouble + 1f;
|
||||||
}),
|
}),
|
||||||
new BeatAction.Action(conductor.songPositionInBeatsAsDouble + 12f, delegate
|
new BeatAction.Action(conductor.songPositionInBeatsAsDouble + 12f, delegate
|
||||||
{
|
{
|
||||||
|
@ -96,7 +96,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
void Hit()
|
void Hit()
|
||||||
{
|
{
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeatsAsDouble;
|
pathStartBeat = conductor.unswungSongPositionInBeatsAsDouble;
|
||||||
path = game.GetPath("FootBallJust");
|
path = game.GetPath("FootBallJust");
|
||||||
game.Kick(true, true, jump: _jump);
|
game.Kick(true, true, jump: _jump);
|
||||||
SoundByte.PlayOneShotGame("doubleDate/footballKick");
|
SoundByte.PlayOneShotGame("doubleDate/footballKick");
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
double beat = conductor.songPositionInBeatsAsDouble;
|
double beat = conductor.unswungSongPositionInBeatsAsDouble;
|
||||||
double height = 0f;
|
double height = 0f;
|
||||||
if (pathStartBeat > double.MinValue)
|
if (pathStartBeat > double.MinValue)
|
||||||
{
|
{
|
||||||
|
@ -44,7 +44,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
game.ScheduleInput(beat, 1f, DoubleDate.InputAction_FlickPress, Just, Miss, Empty);
|
game.ScheduleInput(beat, 1f, DoubleDate.InputAction_FlickPress, Just, Miss, Empty);
|
||||||
path = game.GetPath("SoccerIn");
|
path = game.GetPath("SoccerIn");
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = beat - 1f;
|
pathStartBeat = Conductor.instance.GetUnSwungBeat(beat - 1f);
|
||||||
|
|
||||||
Vector3 pos = GetPathPositionFromBeat(path, pathStartBeat, pathStartBeat);
|
Vector3 pos = GetPathPositionFromBeat(path, pathStartBeat, pathStartBeat);
|
||||||
transform.position = pos;
|
transform.position = pos;
|
||||||
|
@ -65,7 +65,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeatsAsDouble;
|
pathStartBeat = conductor.unswungSongPositionInBeatsAsDouble;
|
||||||
if (state >= 1f || state <= -1f)
|
if (state >= 1f || state <= -1f)
|
||||||
{
|
{
|
||||||
path = game.GetPath("SoccerNg" + (state > 0 ? "Late" : "Early"));
|
path = game.GetPath("SoccerNg" + (state > 0 ? "Late" : "Early"));
|
||||||
|
@ -80,7 +80,7 @@ namespace HeavenStudio.Games.Scripts_DoubleDate
|
||||||
void Hit()
|
void Hit()
|
||||||
{
|
{
|
||||||
UpdateLastRealPos();
|
UpdateLastRealPos();
|
||||||
pathStartBeat = conductor.songPositionInBeatsAsDouble;
|
pathStartBeat = conductor.unswungSongPositionInBeatsAsDouble;
|
||||||
path = game.GetPath("SoccerJust");
|
path = game.GetPath("SoccerJust");
|
||||||
game.Kick(true, false, true, _jump);
|
game.Kick(true, false, true, _jump);
|
||||||
SoundByte.PlayOneShotGame("doubleDate/kick");
|
SoundByte.PlayOneShotGame("doubleDate/kick");
|
||||||
|
|
|
@ -168,6 +168,8 @@ namespace HeavenStudio.Games
|
||||||
public int stepIterate = 0;
|
public int stepIterate = 0;
|
||||||
private static double startSteppingBeat = double.MaxValue;
|
private static double startSteppingBeat = double.MaxValue;
|
||||||
private static double startBlippingBeat = double.MaxValue;
|
private static double startBlippingBeat = double.MaxValue;
|
||||||
|
private string currentMetronomeDir = "Right";
|
||||||
|
private static double metronomeBeat = double.MaxValue;
|
||||||
private bool stopStepping;
|
private bool stopStepping;
|
||||||
public bool stopBlipping;
|
public bool stopBlipping;
|
||||||
|
|
||||||
|
@ -241,6 +243,16 @@ namespace HeavenStudio.Games
|
||||||
man.RecursiveBlipping(startBlippingBeat);
|
man.RecursiveBlipping(startBlippingBeat);
|
||||||
startBlippingBeat = double.MaxValue;
|
startBlippingBeat = double.MaxValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (songPos > metronomeBeat + 1)
|
||||||
|
{
|
||||||
|
metronomeAnim.Play("MetronomeGo" + currentMetronomeDir, -1, 1);
|
||||||
|
metronomeAnim.speed = 0;
|
||||||
|
}
|
||||||
|
else if (songPos >= metronomeBeat)
|
||||||
|
{
|
||||||
|
metronomeAnim.DoScaledAnimation("MetronomeGo" + currentMetronomeDir, metronomeBeat, 1, ignoreSwing: false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -291,9 +303,9 @@ namespace HeavenStudio.Games
|
||||||
stopStepping = false;
|
stopStepping = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
string dir = (stepIterate % 2 == 1) ? "Right" : "Left";
|
currentMetronomeDir = (stepIterate % 2 == 1) ? "Right" : "Left";
|
||||||
metronomeAnim.DoScaledAnimationAsync("MetronomeGo" + dir, 0.5f);
|
SoundByte.PlayOneShotGame($"mrUpbeat/metronome{currentMetronomeDir}");
|
||||||
SoundByte.PlayOneShotGame("mrUpbeat/metronome" + dir);
|
metronomeBeat = beat;
|
||||||
ScheduleStep(beat);
|
ScheduleStep(beat);
|
||||||
BeatAction.New(this, new List<BeatAction.Action>() {
|
BeatAction.New(this, new List<BeatAction.Action>() {
|
||||||
new(beat + 1, delegate { RecursiveStepping(beat + 1); })
|
new(beat + 1, delegate { RecursiveStepping(beat + 1); })
|
||||||
|
@ -306,11 +318,11 @@ namespace HeavenStudio.Games
|
||||||
var actions = new List<BeatAction.Action>();
|
var actions = new List<BeatAction.Action>();
|
||||||
for (int i = 0; i < length; i++)
|
for (int i = 0; i < length; i++)
|
||||||
{
|
{
|
||||||
ScheduleStep(beat);
|
ScheduleStep(beat + i);
|
||||||
actions.Add(new BeatAction.Action(beat + i, delegate {
|
actions.Add(new BeatAction.Action(beat + i, delegate {
|
||||||
string dir = (stepIterate % 2 == 1) ? "Right" : "Left";
|
currentMetronomeDir = (stepIterate % 2 == 1) ? "Right" : "Left";
|
||||||
metronomeAnim.DoScaledAnimationAsync("MetronomeGo" + dir, 0.5f);
|
SoundByte.PlayOneShotGame($"mrUpbeat/metronome{currentMetronomeDir}");
|
||||||
SoundByte.PlayOneShotGame("mrUpbeat/metronome" + dir);
|
metronomeBeat = beat + i;
|
||||||
stepIterate++;
|
stepIterate++;
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,6 +149,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
private bool CheckEventLock()
|
private bool CheckEventLock()
|
||||||
{
|
{
|
||||||
|
Conductor cond = Conductor.instance;
|
||||||
foreach (PlayerActionEvent toCompare in allEvents)
|
foreach (PlayerActionEvent toCompare in allEvents)
|
||||||
{
|
{
|
||||||
if (toCompare == this) continue;
|
if (toCompare == this) continue;
|
||||||
|
@ -161,9 +162,9 @@ namespace HeavenStudio.Games
|
||||||
&& toCompare.InputAction.inputLockCategory[catIdx] != InputAction.inputLockCategory[catIdx]) continue;
|
&& toCompare.InputAction.inputLockCategory[catIdx] != InputAction.inputLockCategory[catIdx]) continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
double t1 = this.startBeat + this.timer;
|
double t1 = cond.GetUnSwungBeat(this.startBeat + this.timer);
|
||||||
double t2 = toCompare.startBeat + toCompare.timer;
|
double t2 = cond.GetUnSwungBeat(toCompare.startBeat + toCompare.timer);
|
||||||
double songPos = Conductor.instance.songPositionInBeatsAsDouble;
|
double songPos = cond.unswungSongPositionInBeatsAsDouble;
|
||||||
|
|
||||||
// compare distance between current time and the events
|
// compare distance between current time and the events
|
||||||
// events that happen at the exact same time with the exact same inputs will return true
|
// events that happen at the exact same time with the exact same inputs will return true
|
||||||
|
@ -213,7 +214,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
double currTime = cond.songPositionAsDouble;
|
double currTime = cond.songPositionAsDouble;
|
||||||
double targetTime = cond.GetSongPosFromBeat(startBeat + timer);
|
double targetTime = cond.GetSongPosFromBeat(cond.GetUnSwungBeat(startBeat + timer), true);
|
||||||
|
|
||||||
// HS timing window uses 1 as the middle point instead of 0
|
// HS timing window uses 1 as the middle point instead of 0
|
||||||
return 1 + (currTime - targetTime);
|
return 1 + (currTime - targetTime);
|
||||||
|
|
|
@ -68,7 +68,7 @@ namespace HeavenStudio.Games.Scripts_SeeSaw
|
||||||
{
|
{
|
||||||
var cond = Conductor.instance;
|
var cond = Conductor.instance;
|
||||||
|
|
||||||
double currentBeat = cond.songPositionInBeatsAsDouble;
|
double currentBeat = cond.unswungSongPositionInBeatsAsDouble;
|
||||||
|
|
||||||
if (cond.isPlaying && !cond.isPaused)
|
if (cond.isPlaying && !cond.isPaused)
|
||||||
{
|
{
|
||||||
|
@ -299,7 +299,7 @@ namespace HeavenStudio.Games.Scripts_SeeSaw
|
||||||
{
|
{
|
||||||
lastState = currentState;
|
lastState = currentState;
|
||||||
currentState = state;
|
currentState = state;
|
||||||
startBeat = beat;
|
startBeat = Conductor.instance.GetUnSwungBeat(beat);
|
||||||
heightLastFrame = 0;
|
heightLastFrame = 0;
|
||||||
hasChangedAnimMidAir = false;
|
hasChangedAnimMidAir = false;
|
||||||
switch (currentState)
|
switch (currentState)
|
||||||
|
|
|
@ -102,7 +102,7 @@ namespace HeavenStudio.Games
|
||||||
}
|
}
|
||||||
if (Conductor.instance.isPlaying)
|
if (Conductor.instance.isPlaying)
|
||||||
{
|
{
|
||||||
Conductor.instance.SetMinigamePitch(1f);
|
Conductor.instance.SetMinigamePitch(1f, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
||||||
|
|
||||||
if (highKicks[i].beat + GetAnimLength(State.HighKicked) > currentBeat)
|
if (highKicks[i].beat + GetAnimLength(State.HighKicked) > currentBeat)
|
||||||
{
|
{
|
||||||
highKickSwing = conductor.GetSwingRatioAtBeat(highKicks[i].beat);
|
highKickSwing = conductor.GetSwingRatioAtBeat(highKicks[i].beat, out _);
|
||||||
//Debug.Log("Setting state to high kick");
|
//Debug.Log("Setting state to high kick");
|
||||||
state = State.HighKicked;
|
state = State.HighKicked;
|
||||||
double relativeBeat = highKicks[i].beat - dispensedBeat;
|
double relativeBeat = highKicks[i].beat - dispensedBeat;
|
||||||
|
@ -96,7 +96,7 @@ namespace HeavenStudio.Games.Scripts_SpaceSoccer
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
highKickSwing = conductor.GetSwingRatioAtBeat(highKicks[i].beat + GetAnimLength(State.HighKicked));
|
highKickSwing = conductor.GetSwingRatioAtBeat(highKicks[i].beat + GetAnimLength(State.HighKicked), out _);
|
||||||
//Debug.Log("Setting state to toe");
|
//Debug.Log("Setting state to toe");
|
||||||
state = State.Toe;
|
state = State.Toe;
|
||||||
double relativeBeat = Math.Ceiling(highKicks[i].beat - dispensedBeat) + GetAnimLength(State.HighKicked); //there is a chance this makes startBeat later than the current beat, but it shouldn't matter too much. It would only happen if the user places the high kicks incorrectly.
|
double relativeBeat = Math.Ceiling(highKicks[i].beat - dispensedBeat) + GetAnimLength(State.HighKicked); //there is a chance this makes startBeat later than the current beat, but it shouldn't matter too much. It would only happen if the user places the high kicks incorrectly.
|
||||||
|
|
|
@ -270,6 +270,11 @@ namespace HeavenStudio.Editor
|
||||||
|
|
||||||
public void SelectMusic()
|
public void SelectMusic()
|
||||||
{
|
{
|
||||||
|
if (Timeline.instance != null)
|
||||||
|
Timeline.instance?.Stop(0);
|
||||||
|
else
|
||||||
|
GameManager.instance.Stop(0);
|
||||||
|
|
||||||
var extensions = new[]
|
var extensions = new[]
|
||||||
{
|
{
|
||||||
new ExtensionFilter("Music Files", "mp3", "ogg", "wav", "aiff", "aif", "aifc")
|
new ExtensionFilter("Music Files", "mp3", "ogg", "wav", "aiff", "aif", "aifc")
|
||||||
|
|
|
@ -160,6 +160,7 @@ namespace HeavenStudio.Editor.Track
|
||||||
lastTempo /= 2f;
|
lastTempo /= 2f;
|
||||||
}
|
}
|
||||||
RiqEntity tempoC = GameManager.instance.Beatmap.AddNewTempoChange(Timeline.instance.MousePos2BeatSnap, lastTempo);
|
RiqEntity tempoC = GameManager.instance.Beatmap.AddNewTempoChange(Timeline.instance.MousePos2BeatSnap, lastTempo);
|
||||||
|
tempoC.CreateProperty("swingDivision", 1f);
|
||||||
tempoTimelineObj.chartEntity = tempoC;
|
tempoTimelineObj.chartEntity = tempoC;
|
||||||
CommandManager.Instance.AddCommand(new Commands.AddMarker(tempoC, tempoC.guid, HoveringTypes.TempoChange));
|
CommandManager.Instance.AddCommand(new Commands.AddMarker(tempoC, tempoC.guid, HoveringTypes.TempoChange));
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ public class TempoDialog : Dialog
|
||||||
[SerializeField] TMP_InputField tempoInput;
|
[SerializeField] TMP_InputField tempoInput;
|
||||||
[SerializeField] TMP_InputField swingInput;
|
[SerializeField] TMP_InputField swingInput;
|
||||||
[SerializeField] Slider swingSlider;
|
[SerializeField] Slider swingSlider;
|
||||||
|
[SerializeField] Toggle swingDivisionToggle;
|
||||||
|
|
||||||
public void SwitchTempoDialog()
|
public void SwitchTempoDialog()
|
||||||
{
|
{
|
||||||
|
@ -52,6 +53,8 @@ public class TempoDialog : Dialog
|
||||||
tempoInput.text = tempoObj.chartEntity["tempo"].ToString("F");
|
tempoInput.text = tempoObj.chartEntity["tempo"].ToString("F");
|
||||||
swingInput.text = (tempoObj.chartEntity["swing"] * 400).ToString("F");
|
swingInput.text = (tempoObj.chartEntity["swing"] * 400).ToString("F");
|
||||||
swingSlider.value = tempoObj.chartEntity["swing"];
|
swingSlider.value = tempoObj.chartEntity["swing"];
|
||||||
|
|
||||||
|
swingDivisionToggle.isOn = tempoObj.chartEntity["swingDivision"] != 1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DeleteTempo()
|
public void DeleteTempo()
|
||||||
|
@ -114,4 +117,12 @@ public class TempoDialog : Dialog
|
||||||
swingSlider.value = tempoObj.chartEntity["swing"];
|
swingSlider.value = tempoObj.chartEntity["swing"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SwingDivisionToggle()
|
||||||
|
{
|
||||||
|
if (tempoObj != null)
|
||||||
|
{
|
||||||
|
tempoObj.SetSwingDivision(swingDivisionToggle.isOn);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,6 +68,12 @@ namespace HeavenStudio.Editor.Track
|
||||||
UpdateTempo();
|
UpdateTempo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetSwingDivision(bool sixteenth)
|
||||||
|
{
|
||||||
|
chartEntity["swingDivision"] = sixteenth ? 0.5f : 1f;
|
||||||
|
UpdateTempo();
|
||||||
|
}
|
||||||
|
|
||||||
public override void Init()
|
public override void Init()
|
||||||
{
|
{
|
||||||
UpdateTempo();
|
UpdateTempo();
|
||||||
|
|
|
@ -631,7 +631,7 @@ namespace HeavenStudio.Editor.Track
|
||||||
{
|
{
|
||||||
TimelinePlaybackBeat.text = $"Beat {string.Format("{0:0.000}", PlaybackBeat)}";
|
TimelinePlaybackBeat.text = $"Beat {string.Format("{0:0.000}", PlaybackBeat)}";
|
||||||
|
|
||||||
if (TimelineSongPosLine != null)
|
if (TimelineSongPosLine != null && !Conductor.instance.WaitingForDsp)
|
||||||
{
|
{
|
||||||
TimelineSongPosLine.transform.localPosition = new Vector3(Conductor.instance.songPositionInBeats * PixelsPerBeat, TimelineSongPosLine.transform.localPosition.y);
|
TimelineSongPosLine.transform.localPosition = new Vector3(Conductor.instance.songPositionInBeats * PixelsPerBeat, TimelineSongPosLine.transform.localPosition.y);
|
||||||
}
|
}
|
||||||
|
@ -656,13 +656,13 @@ namespace HeavenStudio.Editor.Track
|
||||||
{
|
{
|
||||||
if (!Conductor.instance.isPlaying)
|
if (!Conductor.instance.isPlaying)
|
||||||
{
|
{
|
||||||
if (TimelineSongPosLine == null)
|
if (Conductor.instance.isPaused)
|
||||||
{
|
{
|
||||||
Play(false, PlaybackBeat);
|
Play(false, Conductor.instance.songPositionInBeats);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Play(false, Conductor.instance.songPositionInBeats);
|
Play(false, PlaybackBeat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!Conductor.instance.isPaused)
|
else if (!Conductor.instance.isPaused)
|
||||||
|
|
|
@ -99,6 +99,7 @@ namespace HeavenStudio
|
||||||
{
|
{
|
||||||
{"tempo", 120f},
|
{"tempo", 120f},
|
||||||
{"swing", 0f},
|
{"swing", 0f},
|
||||||
|
{"swingDivision", 1f},
|
||||||
{"timeSignature", new Vector2(4, 4)},
|
{"timeSignature", new Vector2(4, 4)},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue