Mr. Upbeat Re-Re-Rework (#525)

* so much

* reworked everything (AGAIN.)
 -everything just uses recursive methods and beatactions, and only uses the update loop for inactive queuing
* count-ins
 -need hq 4 sound effect, kitties doesn't have the og :(
* mr. downbeat rere-revived (unfortunately enough.)
* huge change to how stepping works, to make it so you can't step over it the wrong way, and so that missing looks good
* added missing miss anim, which happens in the same way as the og
* added a check on game switch to use the last bg change/blip color block's attributes
 -i think i might add these to other games; it should make the process of remixing more intuitive and fun, even if it's a small change

currently all i'm missing is blip jank fix. but im not staying up another hour for that lol

* letter/blip jank fixed + force stepping

* instead of being a separate animator, the letter is instead set to have a scale of (1, 1, 1) in the update loop, so that no graphical bugs happen even when the scale is changed.
* hopefully this new system is a lot less janky, but if bugs do still come up they'll be a lot easier to fix now
This commit is contained in:
AstrlJelly 2023-08-11 23:32:33 -04:00 committed by GitHub
parent 4a2a6b2a3f
commit 4fade65d30
51 changed files with 1962 additions and 978 deletions

View file

@ -29,7 +29,8 @@ Transform:
m_LocalPosition: {x: 0.008, y: 0, z: 0} m_LocalPosition: {x: 0.008, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children:
- {fileID: 8730184864405069350}
m_Father: {fileID: 1039565176908573975} m_Father: {fileID: 1039565176908573975}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -131,7 +132,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1456959186295915410} m_GameObject: {fileID: 1456959186295915410}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.006, y: 0.76, z: 0} m_LocalPosition: {x: 0, y: 0.76, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
@ -687,200 +688,6 @@ SpriteRenderer:
m_WasSpriteAssigned: 1 m_WasSpriteAssigned: 1
m_MaskInteraction: 0 m_MaskInteraction: 0
m_SpriteSortPoint: 0 m_SpriteSortPoint: 0
--- !u!1 &4832125457190649999
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3242105452747297828}
- component: {fileID: 7002390330640987317}
- component: {fileID: 1328881971056076866}
- component: {fileID: 6703009748212989289}
m_Layer: 0
m_Name: Letter
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3242105452747297828
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4832125457190649999}
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: 7248900333300803150}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -0.6749878, y: 3.15}
m_SizeDelta: {x: 1, y: 1}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!23 &7002390330640987317
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4832125457190649999}
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: 2100000, guid: fa00f193fe038984592034ad7d5c2a42, 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: 1337
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &1328881971056076866
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4832125457190649999}
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:
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8597c35f18a008c428fc5870aec75766, type: 2}
m_sharedMaterial: {fileID: 2100000, guid: fa00f193fe038984592034ad7d5c2a42, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4291690238
m_fontColor: {r: 0.99607843, g: 0.99607843, b: 0.8039216, 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: 11400000, guid: f952c082cb03451daed3ee968ac6c63e, type: 2}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 5
m_fontSizeBase: 5
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 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: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
_SortingLayer: 0
_SortingLayerID: 0
_SortingOrder: 0
m_hasFontAssetChanged: 0
m_renderer: {fileID: 7002390330640987317}
m_maskType: 0
--- !u!95 &6703009748212989289
Animator:
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4832125457190649999}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: d962828c1f0c71347992dfc1449f496b, 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 &6060117916978306099 --- !u!1 &6060117916978306099
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -966,6 +773,178 @@ SpriteRenderer:
m_WasSpriteAssigned: 1 m_WasSpriteAssigned: 1
m_MaskInteraction: 0 m_MaskInteraction: 0
m_SpriteSortPoint: 0 m_SpriteSortPoint: 0
--- !u!1 &6119064787687059058
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8730184864405069350}
- component: {fileID: 4356944761482350703}
- component: {fileID: 7602258254055353506}
m_Layer: 0
m_Name: Letter
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8730184864405069350
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6119064787687059058}
m_LocalRotation: {x: -0, y: -0, z: 0.7071068, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4485966734002228350}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 90}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -0.718, y: -0}
m_SizeDelta: {x: 1, y: 1}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!23 &4356944761482350703
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6119064787687059058}
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: 2100000, guid: fa00f193fe038984592034ad7d5c2a42, 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: 1337
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &7602258254055353506
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6119064787687059058}
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:
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8597c35f18a008c428fc5870aec75766, type: 2}
m_sharedMaterial: {fileID: 2100000, guid: fa00f193fe038984592034ad7d5c2a42, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4291690238
m_fontColor: {r: 0.99607843, g: 0.99607843, b: 0.8039216, 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: 11400000, guid: f952c082cb03451daed3ee968ac6c63e, type: 2}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 5
m_fontSizeBase: 5
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 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: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
_SortingLayer: 0
_SortingLayerID: 0
_SortingOrder: 0
m_hasFontAssetChanged: 0
m_renderer: {fileID: 4356944761482350703}
m_maskType: 0
--- !u!1 &6323841328481104373 --- !u!1 &6323841328481104373
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1171,7 +1150,6 @@ Transform:
m_Children: m_Children:
- {fileID: 8701843541313247389} - {fileID: 8701843541313247389}
- {fileID: 7821851253613277009} - {fileID: 7821851253613277009}
- {fileID: 3242105452747297828}
- {fileID: 862280508089709600} - {fileID: 862280508089709600}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
@ -1191,7 +1169,6 @@ MonoBehaviour:
SoundSequences: [] SoundSequences: []
EligibleHits: [] EligibleHits: []
scheduledInputs: [] scheduledInputs: []
firstEnable: 0
metronomeAnim: {fileID: 4547664343140929301} metronomeAnim: {fileID: 4547664343140929301}
man: {fileID: 8160414645038680372} man: {fileID: 8160414645038680372}
blipMaterial: {fileID: 2100000, guid: de6ec7258944d824c85cbcb172095b2a, type: 2} blipMaterial: {fileID: 2100000, guid: de6ec7258944d824c85cbcb172095b2a, type: 2}
@ -1201,6 +1178,7 @@ MonoBehaviour:
- {fileID: 5137804451209053898} - {fileID: 5137804451209053898}
- {fileID: 4164580634482561143} - {fileID: 4164580634482561143}
stepIterate: 0 stepIterate: 0
stopBlipping: 0
--- !u!1 &8412912829583803381 --- !u!1 &8412912829583803381
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1318,7 +1296,7 @@ Transform:
- {fileID: 4285463118267461702} - {fileID: 4285463118267461702}
- {fileID: 1584121333826078951} - {fileID: 1584121333826078951}
m_Father: {fileID: 7248900333300803150} m_Father: {fileID: 7248900333300803150}
m_RootOrder: 3 m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &8160414645038680372 --- !u!114 &8160414645038680372
MonoBehaviour: MonoBehaviour:
@ -1334,13 +1312,13 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
anim: {fileID: 2256168985014220240} anim: {fileID: 2256168985014220240}
blipAnim: {fileID: 1614535701461294964} blipAnim: {fileID: 1614535701461294964}
letterAnim: {fileID: 6703009748212989289}
shadows: shadows:
- {fileID: 8412912829583803381} - {fileID: 8412912829583803381}
- {fileID: 2066794384027118212} - {fileID: 2066794384027118212}
blipText: {fileID: 1328881971056076866} blipText: {fileID: 7602258254055353506}
stepTimes: 0
blipSize: 0 blipSize: 0
shouldGrow: 0
shouldBlip: 1
blipString: M blipString: M
--- !u!1 &8959999179820051615 --- !u!1 &8959999179820051615
GameObject: GameObject:

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: ca38ae19ffadb9849aa7258a14f14b80 guid: 10ae3eeee43650541ab3da886a18d2ab
AudioImporter: AudioImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 6 serializedVersion: 6
@ -18,5 +18,5 @@ AudioImporter:
ambisonic: 0 ambisonic: 0
3D: 1 3D: 1
userData: userData:
assetBundleName: agboffbeat/common assetBundleName:
assetBundleVariant: assetBundleVariant:

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: b0956c251e7bf4844b509c5cea2a78ee
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 100f312972af1e94fb49d8454771847d
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 85d95041fe6cb574591a85ce328f9e8b
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 886b16c6dc7442244a74c0391df09616
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,8 +1,8 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 1ef687ca3c0e7924b8569974db6ff4dd guid: 3a883716259b1b54a84e9c2656df7cef
NativeFormatImporter: folderAsset: yes
DefaultImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:

View file

@ -1,130 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1102 &-6973241838888870808
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: StepLeft
m_Speed: 0.25
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: 37707cc2c2686d94ea12646889996023, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-6675537026643194175
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Nothing
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-777172598389968400
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: StepRight
m_Speed: 0.25
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: 1ef687ca3c0e7924b8569974db6ff4dd, 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: LetterAnimator
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 5570846061059316407}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1107 &5570846061059316407
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: -6675537026643194175}
m_Position: {x: 450, y: 30, z: 0}
- serializedVersion: 1
m_State: {fileID: -777172598389968400}
m_Position: {x: 580, y: 110, z: 0}
- serializedVersion: 1
m_State: {fileID: -6973241838888870808}
m_Position: {x: 320, y: 110, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 470, y: -100, z: 0}
m_EntryPosition: {x: 470, y: -40, z: 0}
m_ExitPosition: {x: 470, y: -160, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -6675537026643194175}

View file

@ -1,179 +0,0 @@
%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: LetterStepLeft
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.677
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_AnchoredPosition.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 3.02
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.016666668
value: 3.13
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.033333335
value: 3.15
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_AnchoredPosition.y
path:
classID: 224
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: 1460864421
script: {fileID: 0}
typeID: 224
customType: 28
isPPtrCurve: 0
- serializedVersion: 2
path: 0
attribute: 538195251
script: {fileID: 0}
typeID: 224
customType: 28
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.033333335
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.677
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_AnchoredPosition.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 3.02
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.016666668
value: 3.13
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.033333335
value: 3.15
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_AnchoredPosition.y
path:
classID: 224
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View file

@ -1,179 +0,0 @@
%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: LetterStepRight
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.677
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_AnchoredPosition.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 3.02
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.016666668
value: 3.13
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.033333335
value: 3.15
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_AnchoredPosition.y
path:
classID: 224
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: 1460864421
script: {fileID: 0}
typeID: 224
customType: 28
isPPtrCurve: 0
- serializedVersion: 2
path: 0
attribute: 538195251
script: {fileID: 0}
typeID: 224
customType: 28
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.033333335
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.677
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_AnchoredPosition.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 3.02
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.016666668
value: 3.13
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.033333335
value: 3.15
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_AnchoredPosition.y
path:
classID: 224
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View file

@ -1,8 +1,8 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: d962828c1f0c71347992dfc1449f496b guid: 023f89a9d36553343964a9490f348b2e
NativeFormatImporter: folderAsset: yes
DefaultImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 9100000
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8b05aab803ae3b048bc06d03acdfaeda
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -6,7 +6,7 @@ AnimationClip:
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: Fall m_Name: FallL
serializedVersion: 6 serializedVersion: 6
m_Legacy: 0 m_Legacy: 0
m_Compressed: 0 m_Compressed: 0
@ -15,6 +15,38 @@ AnimationClip:
m_CompressedRotationCurves: [] m_CompressedRotationCurves: []
m_EulerCurves: [] m_EulerCurves: []
m_PositionCurves: m_PositionCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 0.556, y: -0.074, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: Body/FallFX
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 0, y: 0.76, z: 0}
inSlope: {x: Infinity, y: 0, z: 0}
outSlope: {x: Infinity, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: Body/FallSmear
- curve: - curve:
serializedVersion: 2 serializedVersion: 2
m_Curve: m_Curve:
@ -28,7 +60,7 @@ AnimationClip:
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3 - serializedVersion: 3
time: 0.016666668 time: 0.033333335
value: {x: -0.09, y: 0.43, z: 0} value: {x: -0.09, y: 0.43, z: 0}
inSlope: {x: Infinity, y: Infinity, z: 0} inSlope: {x: Infinity, y: Infinity, z: 0}
outSlope: {x: Infinity, y: Infinity, z: 0} outSlope: {x: Infinity, y: Infinity, z: 0}
@ -37,7 +69,7 @@ AnimationClip:
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3 - serializedVersion: 3
time: 0.033333335 time: 0.06666667
value: {x: -0.03, y: 0.53, z: 0} value: {x: -0.03, y: 0.53, z: 0}
inSlope: {x: Infinity, y: Infinity, z: 0} inSlope: {x: Infinity, y: Infinity, z: 0}
outSlope: {x: 0, y: Infinity, z: 0} outSlope: {x: 0, y: Infinity, z: 0}
@ -46,7 +78,7 @@ AnimationClip:
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3 - serializedVersion: 3
time: 0.05 time: 0.1
value: {x: -0.03, y: 0.59, z: 0} value: {x: -0.03, y: 0.59, z: 0}
inSlope: {x: 0, y: Infinity, z: 0} inSlope: {x: 0, y: Infinity, z: 0}
outSlope: {x: 0, y: Infinity, z: 0} outSlope: {x: 0, y: Infinity, z: 0}
@ -73,35 +105,7 @@ AnimationClip:
inWeight: 0 inWeight: 0
outWeight: 0 outWeight: 0
- serializedVersion: 3 - serializedVersion: 3
time: 0.016666668 time: 0.033333335
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: Body/FallSmear
classID: 1
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 0.016666668
value: 0 value: 0
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
@ -116,6 +120,34 @@ AnimationClip:
path: Body/FallFX path: Body/FallFX
classID: 1 classID: 1
script: {fileID: 0} script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 0.033333335
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: Body/FallSmear
classID: 1
script: {fileID: 0}
- curve: - curve:
serializedVersion: 2 serializedVersion: 2
m_Curve: m_Curve:
@ -139,11 +171,11 @@ AnimationClip:
- curve: - curve:
- time: 0 - time: 0
value: {fileID: 910123527689434379, guid: 2781bda31bd88924b9bc88f6c301b1d9, type: 3} value: {fileID: 910123527689434379, guid: 2781bda31bd88924b9bc88f6c301b1d9, type: 3}
- time: 0.016666668
value: {fileID: 7267509016467870925, guid: 2781bda31bd88924b9bc88f6c301b1d9, type: 3}
- time: 0.033333335 - time: 0.033333335
value: {fileID: 7267509016467870925, guid: 2781bda31bd88924b9bc88f6c301b1d9, type: 3}
- time: 0.06666667
value: {fileID: 4385344229349358626, guid: 2781bda31bd88924b9bc88f6c301b1d9, type: 3} value: {fileID: 4385344229349358626, guid: 2781bda31bd88924b9bc88f6c301b1d9, type: 3}
- time: 0.05 - time: 0.1
value: {fileID: -3983884386284601651, guid: 2781bda31bd88924b9bc88f6c301b1d9, type: 3} value: {fileID: -3983884386284601651, guid: 2781bda31bd88924b9bc88f6c301b1d9, type: 3}
attribute: m_Sprite attribute: m_Sprite
path: Body path: Body
@ -152,7 +184,7 @@ AnimationClip:
- curve: - curve:
- time: 0 - time: 0
value: {fileID: 442070513753258848, guid: 2781bda31bd88924b9bc88f6c301b1d9, type: 3} value: {fileID: 442070513753258848, guid: 2781bda31bd88924b9bc88f6c301b1d9, type: 3}
- time: 0.05 - time: 0.1
value: {fileID: -1641719250182597347, guid: 2781bda31bd88924b9bc88f6c301b1d9, type: 3} value: {fileID: -1641719250182597347, guid: 2781bda31bd88924b9bc88f6c301b1d9, type: 3}
attribute: m_Sprite attribute: m_Sprite
path: Head path: Head
@ -166,7 +198,7 @@ AnimationClip:
m_ClipBindingConstant: m_ClipBindingConstant:
genericBindings: genericBindings:
- serializedVersion: 2 - serializedVersion: 2
path: 130111906 path: 3235357039
attribute: 1 attribute: 1
script: {fileID: 0} script: {fileID: 0}
typeID: 4 typeID: 4
@ -174,13 +206,27 @@ AnimationClip:
isPPtrCurve: 0 isPPtrCurve: 0
- serializedVersion: 2 - serializedVersion: 2
path: 4033203276 path: 4033203276
attribute: 1
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 130111906
attribute: 1
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 3235357039
attribute: 2086281974 attribute: 2086281974
script: {fileID: 0} script: {fileID: 0}
typeID: 1 typeID: 1
customType: 0 customType: 0
isPPtrCurve: 0 isPPtrCurve: 0
- serializedVersion: 2 - serializedVersion: 2
path: 3235357039 path: 4033203276
attribute: 2086281974 attribute: 2086281974
script: {fileID: 0} script: {fileID: 0}
typeID: 1 typeID: 1
@ -219,7 +265,7 @@ AnimationClip:
m_AdditiveReferencePoseClip: {fileID: 0} m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0 m_AdditiveReferencePoseTime: 0
m_StartTime: 0 m_StartTime: 0
m_StopTime: 0.06666667 m_StopTime: 0.11666667
m_OrientationOffsetY: 0 m_OrientationOffsetY: 0
m_Level: 0 m_Level: 0
m_CycleOffset: 0 m_CycleOffset: 0
@ -240,15 +286,195 @@ AnimationClip:
m_Curve: m_Curve:
- serializedVersion: 3 - serializedVersion: 3
time: 0 time: 0
value: -0.09 value: 1
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
tangentMode: 103 tangentMode: 103
weightedMode: 0 weightedMode: 0
inWeight: 0.33333334 inWeight: 0
outWeight: 0.33333334 outWeight: 0
- serializedVersion: 3 - serializedVersion: 3
time: 0.016666668 time: 0.033333335
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: Body/FallFX
classID: 1
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.556
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.x
path: Body/FallFX
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -0.074
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.y
path: Body/FallFX
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.z
path: Body/FallFX
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.x
path: Body/FallSmear
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.76
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.y
path: Body/FallSmear
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.z
path: Body/FallSmear
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 0.033333335
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: Body/FallSmear
classID: 1
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: Body/ShadowFall
classID: 1
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -0.09 value: -0.09
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
@ -258,6 +484,15 @@ AnimationClip:
outWeight: 0.33333334 outWeight: 0.33333334
- serializedVersion: 3 - serializedVersion: 3
time: 0.033333335 time: 0.033333335
value: -0.09
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.06666667
value: -0.03 value: -0.03
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
@ -285,7 +520,7 @@ AnimationClip:
inWeight: 0.33333334 inWeight: 0.33333334
outWeight: 0.33333334 outWeight: 0.33333334
- serializedVersion: 3 - serializedVersion: 3
time: 0.016666668 time: 0.033333335
value: 0.43 value: 0.43
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
@ -294,7 +529,7 @@ AnimationClip:
inWeight: 0.33333334 inWeight: 0.33333334
outWeight: 0.33333334 outWeight: 0.33333334
- serializedVersion: 3 - serializedVersion: 3
time: 0.033333335 time: 0.06666667
value: 0.53 value: 0.53
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
@ -303,7 +538,7 @@ AnimationClip:
inWeight: 0.33333334 inWeight: 0.33333334
outWeight: 0.33333334 outWeight: 0.33333334
- serializedVersion: 3 - serializedVersion: 3
time: 0.05 time: 0.1
value: 0.59 value: 0.59
inSlope: Infinity inSlope: Infinity
outSlope: Infinity outSlope: Infinity
@ -337,81 +572,6 @@ AnimationClip:
path: Head path: Head
classID: 4 classID: 4
script: {fileID: 0} script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 0.016666668
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: Body/FallSmear
classID: 1
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 0.016666668
value: 0
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: Body/FallFX
classID: 1
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: Infinity
outSlope: Infinity
tangentMode: 103
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: Body/ShadowFall
classID: 1
script: {fileID: 0}
m_EulerEditorCurves: [] m_EulerEditorCurves: []
m_HasGenericRootTransform: 0 m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0 m_HasMotionFloatCurves: 0

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 37707cc2c2686d94ea12646889996023 guid: 3bb75ec0f8b7eef47a417f368e30abd5
NativeFormatImporter: NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 7400000 mainObjectFileID: 7400000

View file

@ -1,5 +1,31 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1102 &-2844980208113691495
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: FallR
m_Speed: 0.25
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: 3bb75ec0f8b7eef47a417f368e30abd5, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &-995366258227929513 --- !u!1107 &-995366258227929513
AnimatorStateMachine: AnimatorStateMachine:
serializedVersion: 6 serializedVersion: 6
@ -14,10 +40,13 @@ AnimatorStateMachine:
m_Position: {x: 311.5, y: 24.5, z: 0} m_Position: {x: 311.5, y: 24.5, z: 0}
- serializedVersion: 1 - serializedVersion: 1
m_State: {fileID: -757977064401545672} m_State: {fileID: -757977064401545672}
m_Position: {x: 330, y: 80, z: 0} m_Position: {x: 310, y: 80, z: 0}
- serializedVersion: 1 - serializedVersion: 1
m_State: {fileID: -718537531738724324} m_State: {fileID: -718537531738724324}
m_Position: {x: 320, y: 140, z: 0} m_Position: {x: 310, y: 140, z: 0}
- serializedVersion: 1
m_State: {fileID: -2844980208113691495}
m_Position: {x: 310, y: 200, z: 0}
m_ChildStateMachines: [] m_ChildStateMachines: []
m_AnyStateTransitions: [] m_AnyStateTransitions: []
m_EntryTransitions: [] m_EntryTransitions: []
@ -61,7 +90,7 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: Fall m_Name: FallL
m_Speed: 0.25 m_Speed: 0.25
m_CycleOffset: 0 m_CycleOffset: 0
m_Transitions: [] m_Transitions: []

View file

@ -947,6 +947,132 @@ TextureImporter:
indices: indices:
edges: [] edges: []
weights: [] weights: []
- serializedVersion: 2
name: mrupbeat_main_15
rect:
serializedVersion: 2
x: 928
y: 1283
width: 417
height: 149
alignment: 9
pivot: {x: 0.4374075, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 279588cf46a172e438fdcb6721eaa38a
internalID: 1416775875
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: mrupbeat_main_16
rect:
serializedVersion: 2
x: 1475
y: 1282
width: 318
height: 136
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 1163c398e23cee64abe8ca3c07071207
internalID: -1839074567
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: mrupbeat_main_17
rect:
serializedVersion: 2
x: 926
y: 1021
width: 426
height: 134
alignment: 9
pivot: {x: 0.42794013, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 9e383c03cc53d554b8edde37818a740b
internalID: -2069977234
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: mrupbeat_main_18
rect:
serializedVersion: 2
x: 1471
y: 1056
width: 428
height: 100
alignment: 9
pivot: {x: 0.43002462, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 6195c95bb9835024e90a4e93653188d1
internalID: 442840453
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: mrupbeat_main_19
rect:
serializedVersion: 2
x: 930
y: 764
width: 414
height: 134
alignment: 9
pivot: {x: 0.42592838, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: adf77e908f878594bb37a7ffa65aaaaa
internalID: 1852546927
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: mrupbeat_main_20
rect:
serializedVersion: 2
x: 1471
y: 703
width: 114
height: 59
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 437d1bbfb69a7e64daa7d081727b0d13
internalID: 943529457
vertices: []
indices:
edges: []
weights: []
outline: [] outline: []
physicsShape: [] physicsShape: []
bones: [] bones: []
@ -976,7 +1102,13 @@ TextureImporter:
mrupbeat_main_12: -2014763855 mrupbeat_main_12: -2014763855
mrupbeat_main_13: -1248414130 mrupbeat_main_13: -1248414130
mrupbeat_main_14: 1471741028 mrupbeat_main_14: 1471741028
mrupbeat_main_15: 1416775875
mrupbeat_main_16: -1839074567
mrupbeat_main_17: -2069977234
mrupbeat_main_18: 442840453
mrupbeat_main_19: 1852546927
mrupbeat_main_2: 1848041093 mrupbeat_main_2: 1848041093
mrupbeat_main_20: 943529457
mrupbeat_main_3: -1123406618 mrupbeat_main_3: -1123406618
mrupbeat_main_4: 1559131365 mrupbeat_main_4: 1559131365
mrupbeat_main_5: 1603879706 mrupbeat_main_5: 1603879706

View file

@ -188,8 +188,8 @@ namespace HeavenStudio.Games
//Below is a template that can be used for handling previous entities. //Below is a template that can be used for handling previous entities.
//section below is if you only want to look at entities that overlap the game switch //section below is if you only want to look at entities that overlap the game switch
/* /*
List<Beatmap.Entity> prevEntities = GameManager.instance.Beatmap.Entities.FindAll(c => c.beat <= beat && c.datamodel.Split(0) == [insert game name]); List<RiqEntity> prevEntities = GameManager.instance.Beatmap.Entities.FindAll(c => c.beat <= beat && c.datamodel.Split(0) == [insert game name]);
foreach(Beatmap.Entity entity in prevEntities) foreach(RiqEntity entity in prevEntities)
{ {
if(entity.beat + entity.length >= beat) if(entity.beat + entity.length >= beat)
{ {

View file

@ -1,8 +1,5 @@
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using UnityEngine; using UnityEngine;
using System;
using DG.Tweening; using DG.Tweening;
using HeavenStudio.Util; using HeavenStudio.Util;
@ -15,13 +12,17 @@ namespace HeavenStudio.Games.Loaders
public static Minigame AddGame(EventCaller eventCaller) { public static Minigame AddGame(EventCaller eventCaller) {
return new Minigame("mrUpbeat", "Mr. Upbeat", "E0E0E0", false, false, new List<GameAction>() return new Minigame("mrUpbeat", "Mr. Upbeat", "E0E0E0", false, false, new List<GameAction>()
{ {
new GameAction("prepare", "Prepare") new GameAction("prepare", "Prepare")
{ {
preFunction = delegate { preFunction = delegate {
var e = eventCaller.currentEntity; var e = eventCaller.currentEntity;
MrUpbeat.StartStepping(e.beat, e.length); MrUpbeat.PrePrepare(e.beat, e.length, e["forceOnbeat"]);
}, },
parameters = new List<Param>()
{
new Param("forceOnbeat", false, "Mr. Downbeat", "Force Mr. Upbeat to step on the beat of the block instead of on the offbeat (only use this if you know what you're doing)"),
},
preFunctionLength = 0.5f,
defaultLength = 4f, defaultLength = 4f,
resizable = true, resizable = true,
}, },
@ -29,15 +30,16 @@ namespace HeavenStudio.Games.Loaders
{ {
preFunction = delegate { preFunction = delegate {
var e = eventCaller.currentEntity; var e = eventCaller.currentEntity;
MrUpbeat.Ding(e.beat, e["toggle"], e["stopBlipping"]); MrUpbeat.Ding(e.beat, e["toggle"], e["stopBlipping"], e["playDing"]);
}, },
defaultLength = 0.5f, defaultLength = 0.5f,
parameters = new List<Param>() parameters = new List<Param>()
{ {
new Param("toggle", false, "Applause", "Plays an applause sound effect."), new Param("toggle", false, "Applause", "Plays an applause sound effect."),
new Param("stopBlipping", true, "Stop Blipping?", "When the stepping stops, should the blipping stop too?"), new Param("stopBlipping", true, "Stop Blipping", "When the stepping stops, should the blipping stop too?"),
new Param("playDing", true, "Play Ding", "Should this block play a ding?"),
}, },
preFunctionLength = 1f, preFunctionLength = 0.5f,
}, },
new GameAction("changeBG", "Change Background Color") new GameAction("changeBG", "Change Background Color")
{ {
@ -48,8 +50,8 @@ namespace HeavenStudio.Games.Loaders
resizable = true, resizable = true,
parameters = new List<Param>() parameters = new List<Param>()
{ {
new Param("start", new Color(0.878f, 0.878f, 0.878f), "Start Color", "The start color for the fade or the color that will be switched to if -instant- is ticked on."), new Param("start", new Color(0.878f, 0.878f, 0.878f), "Start Color", "The start color for the fade"),
new Param("end", new Color(0.878f, 0.878f, 0.878f), "End Color", "The end color for the fade."), new Param("end", new Color(0.878f, 0.878f, 0.878f), "End Color", "The end color for the fade or the color that will be switched to if -instant- is ticked on"),
new Param("toggle", false, "Instant", "Should the background instantly change color?") new Param("toggle", false, "Instant", "Should the background instantly change color?")
} }
}, },
@ -63,51 +65,53 @@ namespace HeavenStudio.Games.Loaders
parameters = new List<Param>() parameters = new List<Param>()
{ {
new Param("blipColor", new Color(0, 1f, 0), "Blip Color", "Change blip color"), new Param("blipColor", new Color(0, 1f, 0), "Blip Color", "Change blip color"),
new Param("setShadow", false, "Set Shadow Color?", "Should Mr. Upbeat's shadow be custom?"), new Param("setShadow", false, "Set Shadow Color", "Should Mr. Upbeat's shadow be custom?"),
new Param("shadowColor", new Color(1f, 1f, 1f, 0), "Shadow Color", "If \"Set Shadow Color\" is checked, this will set the shadow's color."), new Param("shadowColor", new Color(1f, 1f, 1f, 0), "Shadow Color", "If \"Set Shadow Color\" is checked, this will set the shadow's color"),
} }
}, },
new GameAction("blipEvents", "Blip Events") new GameAction("blipEvents", "Blip Events")
{ {
function = delegate { function = delegate {
var e = eventCaller.currentEntity; var e = eventCaller.currentEntity;
MrUpbeat.instance.BlipEvents(e["letter"], e["shouldGrow"], e["resetBlip"], e["blip"]); MrUpbeat.instance.BlipEvents(e["letter"], e["shouldGrow"], e["resetBlip"], e["shouldBlip"]);
}, },
defaultLength = 0.5f, defaultLength = 0.5f,
parameters = new List<Param>() parameters = new List<Param>()
{ {
new Param("letter", "", "Letter To Appear", "Which letter to appear on the blip"), new Param("letter", "", "Letter To Appear", "Which letter to appear on the blip"),
new Param("shouldGrow", true, "Grow Antenna?", "Should Mr. Upbeat's antenna grow every blip?"), new Param("shouldGrow", true, "Grow Antenna", "Should Mr. Upbeat's antenna grow every blip?"),
new Param("resetBlip", false, "Reset Antenna?", "Should Mr. Upbeat's antenna reset?"), new Param("resetBlip", false, "Reset Antenna", "Should Mr. Upbeat's antenna reset?"),
new Param("blip", true, "Should Blip?", "Should Mr. Upbeat blip every offbeat?"), new Param("shouldBlip", true, "Should Blip", "Should Mr. Upbeat blip every offbeat?"),
} }
}, },
// will implement these soon
new GameAction("fourBeatCountInOffbeat", "4 Beat Count-In") new GameAction("fourBeatCountInOffbeat", "4 Beat Count-In")
{ {
preFunction = delegate { preFunction = delegate {
var e = eventCaller.currentEntity; var e = eventCaller.currentEntity;
//MrUpbeat.CountIn(e.beat, e.length); MrUpbeat.CountIn(e.beat, e.length, e["a"]);
},
parameters = new List<Param>()
{
new Param("a", true, "A", "A"),
}, },
defaultLength = 4f, defaultLength = 4f,
resizable = true, resizable = true,
hidden = true,
}, },
new GameAction("countOffbeat", "4 Beat Count-In") new GameAction("countOffbeat", "Count")
{ {
//function = delegate { MrUpbeat.Count(eventCaller.currentEntity["number"]); }, function = delegate { MrUpbeat.Count(eventCaller.currentEntity["number"]); },
parameters = new List<Param>() parameters = new List<Param>()
{ {
new Param("number", SoundEffects.CountNumbers.One, "Number", "The sound to play"), new Param("number", MrUpbeat.Counts.One, "Number", "The sound to play"),
}, },
hidden = true,
}, },
new GameAction("forceStepping", "Force Stepping")
// backwards compatibility !!!!
new GameAction("start stepping", "Start Stepping")
{ {
hidden = true, function = delegate {
preFunction = delegate {var e = eventCaller.currentEntity; MrUpbeat.StartStepping(e.beat, e.length); }, var e = eventCaller.currentEntity;
MrUpbeat.instance.ForceStepping(e.beat, e.length);
},
defaultLength = 4f,
resizable = true, resizable = true,
}, },
}, },
@ -122,10 +126,17 @@ namespace HeavenStudio.Games.Loaders
namespace HeavenStudio.Games namespace HeavenStudio.Games
{ {
using Scripts_MrUpbeat; using Scripts_MrUpbeat;
using Jukebox;
public class MrUpbeat : Minigame public class MrUpbeat : Minigame
{ {
static List<double> queuedInputs = new(); public enum Counts
{
One,
Two,
Three,
Four,
A,
}
[Header("References")] [Header("References")]
[SerializeField] Animator metronomeAnim; [SerializeField] Animator metronomeAnim;
@ -137,33 +148,22 @@ namespace HeavenStudio.Games
[Header("Properties")] [Header("Properties")]
private Tween bgColorTween; private Tween bgColorTween;
public int stepIterate = 0; public int stepIterate = 0;
public static bool shouldBlip; private static double startSteppingBeat = double.MaxValue;
static bool isStepping; private static double startBlippingBeat = double.MaxValue;
static bool shouldntStop; private bool stopStepping;
public bool stopBlipping;
public static MrUpbeat instance; public static MrUpbeat instance;
private void Awake() private void Awake()
{ {
instance = this; instance = this;
isStepping = false;
blipMaterial.SetColor("_ColorBravo", new Color(0, 1f, 0));
}
private void Start()
{
man.Blip();
} }
void OnDestroy() void OnDestroy()
{ {
if (!Conductor.instance.isPlaying || Conductor.instance.isPaused) { startSteppingBeat = double.MaxValue;
if (queuedInputs.Count > 0) queuedInputs.Clear(); startBlippingBeat = double.MaxValue;
}
shouldBlip = false;
isStepping = false;
stepIterate = 0; stepIterate = 0;
foreach (var evt in scheduledInputs) foreach (var evt in scheduledInputs)
{ {
@ -171,87 +171,129 @@ namespace HeavenStudio.Games
} }
} }
public override void OnGameSwitch(double beat)
{
if (beat >= startBlippingBeat) {
double tempBeat = ((beat % 1 == 0.5) ? Mathf.Floor((float)beat) : Mathf.Round((float)beat)) + (startBlippingBeat % 1);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() {
new BeatAction.Action(tempBeat, delegate { man.RecursiveBlipping(tempBeat); })
});
startBlippingBeat = double.MaxValue;
}
// init background color/blip color stuff by getting the last of each of those blocks
List<RiqEntity> prevEntities = GameManager.instance.Beatmap.Entities.FindAll(c => c.beat <= beat && c.datamodel.Split(0) == "mrUpbeat");
var bgColorEntity = prevEntities.FindLast(x => x.datamodel.Split(1) == "changeBG" && x.beat <= beat);
var upbeatColorEntity = prevEntities.FindLast(x => x.datamodel.Split(1) == "upbeatColors" && x.beat <= beat);
if (bgColorEntity != null) {
bg.color = bgColorEntity["end"];
}
if (upbeatColorEntity != null) {
blipMaterial.SetColor("_ColorBravo", upbeatColorEntity["blipColor"]);
Color shadowColor = upbeatColorEntity["shadowColor"];
if (upbeatColorEntity["setShadow"]) foreach (var shadow in shadowSr) {
shadow.color = new Color(shadowColor.r, shadowColor.g, shadowColor.b, 1);
}
} else {
blipMaterial.SetColor("_ColorBravo", new Color(0, 1f, 0));
}
}
public void Update() public void Update()
{ {
if (Conductor.instance.isPlaying && !Conductor.instance.isPaused) { var cond = Conductor.instance;
if (queuedInputs.Count > 0) { if (cond.isPlaying && !cond.isPaused) {
foreach (var input in queuedInputs) { if (cond.songPositionInBeatsAsDouble >= startSteppingBeat) {
string dir = stepIterate % 2 == 1 ? "Right" : "Left"; RecursiveStepping(startSteppingBeat);
startSteppingBeat = double.MaxValue;
}
if (cond.songPositionInBeats >= startBlippingBeat) {
man.RecursiveBlipping(startBlippingBeat);
startBlippingBeat = double.MaxValue;
}
}
}
public static void Ding(double beat, bool applause, bool stopBlipping, bool playDing)
{
instance.stopStepping = true;
if (stopBlipping) instance.stopBlipping = true;
if (playDing) SoundByte.PlayOneShotGame("mrUpbeat/ding", beat: beat, forcePlay: true);
if (applause) SoundByte.PlayOneShot("applause", beat: beat);
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() { BeatAction.New(instance.gameObject, new List<BeatAction.Action>() {
new BeatAction.Action(input, delegate { new BeatAction.Action(beat + 0.5, delegate {
instance.metronomeAnim.DoScaledAnimationAsync("MetronomeGo" + dir, 0.5f); instance.stopStepping = false;
instance.stopBlipping = false;
})
});
}
public static void PrePrepare(double beat, float length, bool forceOffbeat)
{
bool isGame = GameManager.instance.currentGame == "mrUpbeat";
if (forceOffbeat) {
startBlippingBeat = beat;
startSteppingBeat = beat + length - 0.5f;
if (!isGame) Blipping(beat, length);
} else {
startBlippingBeat = Mathf.Floor((float)beat) + 0.5;
startSteppingBeat = Mathf.Floor((float)beat) + Mathf.Round(length);
if (!isGame) Blipping(Mathf.Floor((float)beat) + 0.5f, length);
}
}
private void RecursiveStepping(double beat)
{
if (stopStepping) {
stopStepping = false;
return;
}
string dir = (stepIterate % 2 == 1) ? "Right" : "Left";
metronomeAnim.DoScaledAnimationAsync("MetronomeGo" + dir, 0.5f);
SoundByte.PlayOneShotGame("mrUpbeat/metronome" + dir); SoundByte.PlayOneShotGame("mrUpbeat/metronome" + dir);
ScheduleInput(input, 0.5f, InputType.STANDARD_DOWN, Success, Miss, Nothing); ScheduleInput(beat, 0.5f, InputType.STANDARD_DOWN, Success, Miss, Nothing);
if (MrUpbeat.shouldntStop) queuedInputs.Add(input + 1); BeatAction.New(gameObject, new List<BeatAction.Action>() {
}), new BeatAction.Action(beat + 1, delegate { RecursiveStepping(beat + 1); })
}); });
stepIterate++; stepIterate++;
} }
queuedInputs.Clear();
}
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN)) { public void ForceStepping(double beat, float length)
man.Step();
}
}
}
public static void Ding(double beat, bool applause, bool stopBlipping)
{ {
MrUpbeat.shouldntStop = false; var actions = new List<BeatAction.Action>();
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() { for (int i = 0; i < length; i++)
new BeatAction.Action(beat, delegate {
MrUpbeat.isStepping = false;
SoundByte.PlayOneShotGame("mrUpbeat/ding");
if (applause) SoundByte.PlayOneShot("applause");
if (stopBlipping) MrUpbeat.shouldBlip = false;
}),
});
}
public static void StartStepping(double beat, float length)
{ {
if (MrUpbeat.isStepping) return; ScheduleInput(beat + i, 0.5f, InputType.STANDARD_DOWN, Success, Miss, Nothing);
MrUpbeat.isStepping = true; actions.Add(new BeatAction.Action(beat + i, delegate {
if (GameManager.instance.currentGame != "mrUpbeat") { string dir = (stepIterate % 2 == 1) ? "Right" : "Left";
Blipping(beat, length); metronomeAnim.DoScaledAnimationAsync("MetronomeGo" + dir, 0.5f);
MrUpbeat.shouldBlip = true; SoundByte.PlayOneShotGame("mrUpbeat/metronome" + dir);
} else { stepIterate++;
BeatAction.New(instance.gameObject, new List<BeatAction.Action>() { }));
new BeatAction.Action(Math.Floor(beat), delegate {
MrUpbeat.shouldBlip = true;
}),
});
} }
BeatAction.New(gameObject, actions);
MrUpbeat.shouldntStop = true;
queuedInputs.Add(Math.Floor(beat+length));
} }
public static void Blipping(double beat, float length) public static void Blipping(double beat, float length)
{ {
List<MultiSound.Sound> blips = new List<MultiSound.Sound>(); RiqEntity gameSwitch = GameManager.instance.Beatmap.Entities.Find(c => c.beat > beat && c.datamodel == "gameManager/switchGame/mrUpbeat");
var switchGames = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame" }); if (gameSwitch.beat <= beat || gameSwitch.beat >= beat + length + 1) return;
int whichSwitch = 0;
if (switchGames.Count != 0) { List<MultiSound.Sound> inactiveBlips = new List<MultiSound.Sound>();
for (int i = 0; i < switchGames.Count; i++) { for (int i = 0; i < gameSwitch.beat - beat; i++) {
if (switchGames[i].beat > beat) { inactiveBlips.Add(new MultiSound.Sound("mrUpbeat/blip", beat + i));
whichSwitch = i;
break;
}
}
} }
for (int i = 0; i < switchGames[whichSwitch].beat - Math.Floor(beat) - 0.5f; i++) { MultiSound.Play(inactiveBlips.ToArray(), forcePlay: true);
blips.Add(new MultiSound.Sound("mrUpbeat/blip", Math.Floor(beat) + 0.5f + i));
}
MultiSound.Play(blips.ToArray(), forcePlay: true);
} }
public void Success(PlayerActionEvent caller, float state) public void Success(PlayerActionEvent caller, float state)
{ {
man.Step(); man.Step();
if (state >= 1f || state <= -1f) SoundByte.PlayOneShot("nearMiss");
} }
public void Miss(PlayerActionEvent caller) public void Miss(PlayerActionEvent caller)
@ -259,7 +301,7 @@ namespace HeavenStudio.Games
man.Fall(); man.Fall();
} }
public void ChangeBackgroundColor(Color color, float beats) public void ChangeBackgroundColor(Color color1, Color color2, float beats)
{ {
var seconds = Conductor.instance.secPerBeat * beats; var seconds = Conductor.instance.secPerBeat * beats;
@ -267,16 +309,17 @@ namespace HeavenStudio.Games
bgColorTween.Kill(true); bgColorTween.Kill(true);
if (seconds == 0) { if (seconds == 0) {
bg.color = color; bg.color = color2;
} else { } else {
bgColorTween = bg.DOColor(color, seconds); bg.color = color1;
bgColorTween = bg.DOColor(color2, seconds);
} }
} }
public void FadeBackgroundColor(Color start, Color end, float beats, bool instant) public void FadeBackgroundColor(Color start, Color end, float beats, bool instant)
{ {
ChangeBackgroundColor(start, 0f); ChangeBackgroundColor(start, end, 0f);
if (!instant) ChangeBackgroundColor(end, beats); if (!instant) ChangeBackgroundColor(start, end, beats);
} }
public void UpbeatColors(Color blipColor, bool setShadow, Color shadowColor) public void UpbeatColors(Color blipColor, bool setShadow, Color shadowColor)
@ -288,32 +331,29 @@ namespace HeavenStudio.Games
} }
} }
public void BlipEvents(string inputLetter, bool shouldGrow, bool resetBlip, bool blip) public void BlipEvents(string inputLetter, bool shouldGrow, bool resetBlip, bool shouldBlip)
{ {
if (resetBlip) man.blipSize = 0;
man.shouldGrow = shouldGrow; man.shouldGrow = shouldGrow;
if (resetBlip) {
man.blipSize = 0;
man.shouldGrow = false;
}
man.blipString = inputLetter; man.blipString = inputLetter;
shouldBlip = blip; man.shouldBlip = shouldBlip;
} }
/*
public static void Count(int number) public static void Count(int number)
{ {
Jukebox.PlayOneShotGame("mrUpbeat/count"+(number + 1), forcePlay: true); SoundByte.PlayOneShotGame("mrUpbeat/"+ (number < 4 ? number + 1 : "a"), forcePlay: true);
} }
public static void CountIn(float beat, float length) public static void CountIn(double beat, float length, bool a)
{ {
var sound = new List<MultiSound.Sound>() { var sound = new List<MultiSound.Sound>();
if (a) sound.Add(new MultiSound.Sound("mrUpbeat/a", beat - (0.5f * (length/4))));
}; for (int i = 0; i < 4; i++) {
sound.Add(new MultiSound.Sound("mrUpbeat/" + (i + 1), beat + (i * (length/4)), offset: (i == 3 ? 0.05 : 0)));
}
MultiSound.Play(sound.ToArray(), forcePlay: true); MultiSound.Play(sound.ToArray(), forcePlay: true);
} }
*/
public void Nothing(PlayerActionEvent caller) {} public void Nothing(PlayerActionEvent caller) {}
} }

View file

@ -1,8 +1,5 @@
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using System;
using Starpelly;
using TMPro; using TMPro;
using HeavenStudio.Util; using HeavenStudio.Util;
@ -14,57 +11,76 @@ namespace HeavenStudio.Games.Scripts_MrUpbeat
[Header("References")] [Header("References")]
[SerializeField] Animator anim; [SerializeField] Animator anim;
[SerializeField] Animator blipAnim; [SerializeField] Animator blipAnim;
[SerializeField] Animator letterAnim;
[SerializeField] GameObject[] shadows; [SerializeField] GameObject[] shadows;
[SerializeField] TMP_Text blipText; [SerializeField] TMP_Text blipText;
public int stepTimes = 0;
public int blipSize = 0; public int blipSize = 0;
public bool shouldGrow; public bool shouldGrow;
public bool shouldBlip = true;
public string blipString = "M"; public string blipString = "M";
public void Blip() static MrUpbeat game;
void Awake()
{ {
double c = Conductor.instance.songPositionInBeatsAsDouble; game = MrUpbeat.instance;
}
void Update()
{
blipText.transform.localScale = Vector3.one;
if (PlayerInput.Pressed() && !game.IsExpectingInputNow(InputType.STANDARD_DOWN)) {
Step(true);
}
}
public void RecursiveBlipping(double beat)
{
if (game.stopBlipping) {
game.stopBlipping = false;
return;
}
if (shouldBlip) {
Blipping(beat);
}
BeatAction.New(gameObject, new List<BeatAction.Action>() { BeatAction.New(gameObject, new List<BeatAction.Action>() {
new BeatAction.Action(Math.Floor(c) + 0.5f, delegate { new BeatAction.Action(beat + 1, delegate { RecursiveBlipping(beat + 1); })
if (MrUpbeat.shouldBlip) { });
}
public void Blipping(double beat)
{
SoundByte.PlayOneShotGame("mrUpbeat/blip"); SoundByte.PlayOneShotGame("mrUpbeat/blip");
blipAnim.Play("Blip"+(blipSize+1), 0, 0); blipAnim.Play("Blip"+(blipSize+1), 0, 0);
blipText.text = (blipSize == 4 && blipString != "") ? blipString : ""; blipText.text = (blipSize == 4 && blipString != "") ? blipString : "";
if (shouldGrow && blipSize < 4) blipSize++; if (shouldGrow && blipSize < 4) blipSize++;
} }
}),
new BeatAction.Action(Math.Floor(c) + 1f, delegate { public void Step(bool isInput = false)
Blip(); {
}), if (isInput || ((game.stepIterate % 2 == 0) == IsMirrored())) {
}); shadows[0].SetActive(IsMirrored());
shadows[1].SetActive(!IsMirrored());
transform.localScale = new Vector3((IsMirrored() ? 1 : -1), 1, 1);
} }
public void Step()
{
stepTimes++;
bool x = (stepTimes % 2 == 1);
shadows[0].SetActive(!x);
shadows[1].SetActive(x);
transform.localScale = new Vector3(x ? -1 : 1, 1);
anim.DoScaledAnimationAsync("Step", 0.5f); anim.DoScaledAnimationAsync("Step", 0.5f);
letterAnim.DoScaledAnimationAsync(x ? "StepRight" : "StepLeft", 0.5f);
SoundByte.PlayOneShotGame("mrUpbeat/step"); SoundByte.PlayOneShotGame("mrUpbeat/step");
} }
public void Fall() public void Fall()
{ {
blipSize = 0; anim.DoScaledAnimationAsync((game.stepIterate % 2 == 0) == IsMirrored() ? "FallR" : "FallL", 1f);
blipAnim.Play("Idle", 0, 0);
blipText.text = "";
anim.DoScaledAnimationAsync("Fall", 0.5f);
SoundByte.PlayOneShot("miss"); SoundByte.PlayOneShot("miss");
shadows[0].SetActive(false); shadows[0].SetActive(false);
shadows[1].SetActive(false); shadows[1].SetActive(false);
transform.localScale = new Vector3((IsMirrored() ? 1 : -1), 1, 1);
}
bool IsMirrored()
{
return transform.localScale != Vector3.one;
} }
} }
} }

View file

@ -199,7 +199,9 @@ namespace HeavenStudio.Editor.Track
lastPos = transform.localPosition; lastPos = transform.localPosition;
} }
} else { }
else
{
if (moving) moving = false; if (moving) moving = false;
if (resizingLeft) SetPivot(new Vector2(1, rectTransform.pivot.y)); if (resizingLeft) SetPivot(new Vector2(1, rectTransform.pivot.y));
@ -287,14 +289,17 @@ namespace HeavenStudio.Editor.Track
{ {
var mgs = EventCaller.instance.minigames; var mgs = EventCaller.instance.minigames;
string[] datamodels = entity.datamodel.Split('/'); string[] datamodels = entity.datamodel.Split('/');
Debug.Log("Selected entity's datamodel : "+entity.datamodel);
bool isSwitchGame = (datamodels[1] == "switchGame"); bool isSwitchGame = datamodels[1] == "switchGame";
int gameIndex = mgs.FindIndex(c => c.name == datamodels[isSwitchGame ? 2 : 0]); int gameIndex = mgs.FindIndex(c => c.name == datamodels[isSwitchGame ? 2 : 0]);
int block = isSwitchGame ? 0 : mgs[gameIndex].actions.FindIndex(c => c.actionName == datamodels[1]) + 1; int block = isSwitchGame ? 0 : mgs[gameIndex].actions.FindIndex(c => c.actionName == datamodels[1]) + 1;
if (!isSwitchGame) { if (!isSwitchGame) {
// hardcoded stuff
// needs to happen because hidden blocks technically change the event index
if (datamodels[0] == "gameManager") block -= 2; if (datamodels[0] == "gameManager") block -= 2;
else if (datamodels[0] is "countIn" or "vfx") block--; else if (datamodels[0] is "countIn" or "vfx") block -= 1;
} }
GridGameSelector.instance.SelectGame(datamodels[isSwitchGame ? 2 : 0], block); GridGameSelector.instance.SelectGame(datamodels[isSwitchGame ? 2 : 0], block);