"only" two games left

This commit is contained in:
minenice55 2023-09-26 22:46:51 -04:00
parent a5e6b66b25
commit cc4a03813b
34 changed files with 1239 additions and 349 deletions

View file

@ -22,6 +22,33 @@ AnimatorStateTransition:
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &-7660928310954623538
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: UnReady1
m_Speed: -4
m_CycleOffset: 1
m_Transitions:
- {fileID: 5805743421897320861}
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: -4791534359250169297, guid: cebeb8610d89fb34688750080a285ddb, type: 3}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-3986917046676279002
AnimatorState:
serializedVersion: 6
@ -59,16 +86,16 @@ AnimatorStateMachine:
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 6416047872712211942}
m_Position: {x: 240, y: 260, z: 0}
m_Position: {x: 200, y: 240, z: 0}
- serializedVersion: 1
m_State: {fileID: 4424825005415695879}
m_Position: {x: 320, y: 50, z: 0}
- serializedVersion: 1
m_State: {fileID: -3986917046676279002}
m_Position: {x: 460, y: 190, z: 0}
m_Position: {x: 200, y: 290, z: 0}
- serializedVersion: 1
m_State: {fileID: 124654373728809099}
m_Position: {x: 510, y: 260, z: 0}
m_Position: {x: 420, y: 190, z: 0}
- serializedVersion: 1
m_State: {fileID: 7339080780637248285}
m_Position: {x: 550, y: 330, z: 0}
@ -78,6 +105,9 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: 7618035723044257044}
m_Position: {x: 270, y: 120, z: 0}
- serializedVersion: 1
m_State: {fileID: -7660928310954623538}
m_Position: {x: 630, y: 190, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
@ -162,6 +192,28 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &5805743421897320861
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 7618035723044257044}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &6416047872712211942
AnimatorState:
serializedVersion: 6

View file

@ -771,6 +771,80 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!1 &1388028344216826847
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8931925833886898116}
- component: {fileID: 8187487577289273397}
- component: {fileID: 1129948637867395467}
m_Layer: 5
m_Name: UseInputExpansion
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &8931925833886898116
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1388028344216826847}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.00008, y: 1.00008, z: 1.00008}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1424841260046386091}
- {fileID: 6127762978588141374}
m_Father: {fileID: 3918594454598345480}
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: 602.5, y: -169.002}
m_SizeDelta: {x: 1165, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8187487577289273397
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1388028344216826847}
m_CullTransparentMesh: 1
--- !u!114 &1129948637867395467
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1388028344216826847}
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: 10
m_Bottom: 10
m_ChildAlignment: 0
m_Spacing: 10
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &1805243853809551032
GameObject:
m_ObjectHideFlags: 0
@ -1318,6 +1392,104 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!1 &1982234244914939222
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6127762978588141374}
- component: {fileID: 9223020690446517615}
m_Layer: 5
m_Name: Toggle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6127762978588141374
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1982234244914939222}
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: 8660056431775407846}
m_Father: {fileID: 8931925833886898116}
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: 330, y: -10}
m_SizeDelta: {x: 30, y: 30}
m_Pivot: {x: 0, y: 1}
--- !u!114 &9223020690446517615
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1982234244914939222}
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: 6903400336302113654}
toggleTransition: 1
graphic: {fileID: 7815274143235031435}
m_Group: {fileID: 0}
onValueChanged:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 0}
m_TargetAssemblyTypeName: HeavenStudio.Editor.EditorSettings, Assembly-CSharp
m_MethodName:
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: 1
--- !u!1 &2034840868618852683
GameObject:
m_ObjectHideFlags: 0
@ -2342,7 +2514,7 @@ RectTransform:
m_GameObject: {fileID: 3150519645405769653}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1.0000798, y: 1.0000798, z: 1.0000798}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2986771144006556445}
@ -2532,6 +2704,219 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &3323996391507515166
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7453481712552360843}
- component: {fileID: 4585733612167735329}
- component: {fileID: 7815274143235031435}
m_Layer: 5
m_Name: Checkmark
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7453481712552360843
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3323996391507515166}
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: 8660056431775407846}
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!222 &4585733612167735329
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3323996391507515166}
m_CullTransparentMesh: 1
--- !u!114 &7815274143235031435
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3323996391507515166}
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: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &3332710794412869504
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1424841260046386091}
- component: {fileID: 97903789572829078}
- component: {fileID: 8407686572462022785}
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 &1424841260046386091
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3332710794412869504}
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: 8931925833886898116}
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: -25}
m_SizeDelta: {x: 320, y: 30}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &97903789572829078
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3332710794412869504}
m_CullTransparentMesh: 1
--- !u!114 &8407686572462022785
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3332710794412869504}
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: Expanded Input
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8597c35f18a008c428fc5870aec75766, type: 2}
m_sharedMaterial: {fileID: -6562250930271150993, guid: 8597c35f18a008c428fc5870aec75766, 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: 32
m_fontSizeBase: 32
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 3
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
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_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!1 &3718862281069217461
GameObject:
m_ObjectHideFlags: 0
@ -3137,7 +3522,7 @@ RectTransform:
- {fileID: 3918594455780710548}
- {fileID: 3918594455337952163}
m_Father: {fileID: 3918594454598345480}
m_RootOrder: 3
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@ -3718,7 +4103,7 @@ RectTransform:
- {fileID: 3918594454379110541}
- {fileID: 3918594455983756500}
m_Father: {fileID: 3918594454598345480}
m_RootOrder: 1
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -4002,6 +4387,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2986771144006556445}
- {fileID: 8931925833886898116}
- {fileID: 3918594454557351925}
- {fileID: 3918594455809915007}
- {fileID: 3918594454393827276}
@ -6457,7 +6843,7 @@ RectTransform:
- {fileID: 3918594455165826550}
- {fileID: 3918594454453368362}
m_Father: {fileID: 3918594454598345480}
m_RootOrder: 2
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -7379,7 +7765,7 @@ RectTransform:
- {fileID: 9026175551012134334}
- {fileID: 1125639618448182589}
m_Father: {fileID: 3918594454598345480}
m_RootOrder: 4
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -9481,6 +9867,83 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &5644547737876301921
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8660056431775407846}
- component: {fileID: 8308539996994095635}
- component: {fileID: 6903400336302113654}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8660056431775407846
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5644547737876301921}
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: 7453481712552360843}
m_Father: {fileID: 6127762978588141374}
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!222 &8308539996994095635
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5644547737876301921}
m_CullTransparentMesh: 1
--- !u!114 &6903400336302113654
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5644547737876301921}
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!1 &5719176897546899144
GameObject:
m_ObjectHideFlags: 0
@ -9926,7 +10389,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 5518843884416884346, guid: 149c162f840b9e9428b96653dd8e40ba, type: 3}
m_Sprite: {fileID: 3724681018647327355, guid: 149c162f840b9e9428b96653dd8e40ba, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
@ -10364,7 +10827,7 @@ RectTransform:
m_GameObject: {fileID: 6858963091896668988}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.9998709, y: 0.9998709, z: 0.9998709}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6031012690915954592}
@ -11923,7 +12386,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 3724681018647327355, guid: 149c162f840b9e9428b96653dd8e40ba, type: 3}
m_Sprite: {fileID: 5518843884416884346, guid: 149c162f840b9e9428b96653dd8e40ba, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1

View file

@ -26,6 +26,32 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-2101240853689792580
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: BowRelease
m_Speed: -1
m_CycleOffset: 1
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: fcb659b28562414419f0b631484e6c3f, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
@ -85,13 +111,16 @@ AnimatorStateMachine:
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -2988285179875158312}
m_Position: {x: 200, y: 0, z: 0}
m_Position: {x: 250, y: 120, z: 0}
- serializedVersion: 1
m_State: {fileID: 1975330077407404661}
m_Position: {x: 235, y: 65, z: 0}
m_Position: {x: 250, y: 170, z: 0}
- serializedVersion: 1
m_State: {fileID: 8713020708790600204}
m_Position: {x: 270, y: 130, z: 0}
m_Position: {x: 250, y: 220, z: 0}
- serializedVersion: 1
m_State: {fileID: -2101240853689792580}
m_Position: {x: 460, y: 170, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []

View file

@ -3,11 +3,12 @@ using System.Collections.Generic;
using UnityEngine;
using HeavenStudio.Util;
using HeavenStudio.InputSystem;
namespace HeavenStudio.Games.Loaders
{
using static Minigames;
public static class RvlBadmintonLoader
{
public static Minigame AddGame(EventCaller e)
@ -16,16 +17,16 @@ namespace HeavenStudio.Games.Loaders
{
new GameAction("rally", "Rally")
{
preFunction = delegate { AirRally.PreStartRally(e.currentEntity.beat); },
defaultLength = 2f,
preFunction = delegate { AirRally.PreStartRally(e.currentEntity.beat); },
defaultLength = 2f,
preFunctionLength = 1
},
new GameAction("ba bum bum bum", "Ba Bum Bum Bum")
{
preFunction = delegate { AirRally.PreStartBaBumBumBum(e.currentEntity.beat, e.currentEntity["toggle"], e.currentEntity["toggle2"]); },
defaultLength = 6f,
defaultLength = 6f,
parameters = new List<Param>()
{
{
new Param("toggle", true, "Count", "Make Forthington Count"),
new Param("toggle2", false, "Alternate Voiceline")
},
@ -94,9 +95,9 @@ namespace HeavenStudio.Games.Loaders
new GameAction("forthington voice lines", "Count")
{
function = delegate { AirRally.instance.ForthVoiceDo(e.currentEntity.beat); },
preFunction = delegate { AirRally.ForthVoice(e.currentEntity.beat, e.currentEntity["type"]); },
preFunction = delegate { AirRally.ForthVoice(e.currentEntity.beat, e.currentEntity["type"]); },
parameters = new List<Param>()
{
{
new Param("type", AirRally.CountSound.one, "Type", "The number Forthington will say"),
},
},
@ -130,7 +131,7 @@ namespace HeavenStudio.Games.Loaders
},
new GameAction("day", "Day/Night Cycle")
{
function = delegate
function = delegate
{
AirRally.instance.SetDayNightCycle(e.currentEntity.beat, e.currentEntity.length,
(AirRally.DayNightCycle)e.currentEntity["start"], (AirRally.DayNightCycle)e.currentEntity["end"],
@ -148,7 +149,7 @@ namespace HeavenStudio.Games.Loaders
{
function = delegate
{
AirRally.instance.SetCloudRates(e.currentEntity.beat, e.currentEntity.length, e.currentEntity["main"], e.currentEntity["side"], e.currentEntity["top"],
AirRally.instance.SetCloudRates(e.currentEntity.beat, e.currentEntity.length, e.currentEntity["main"], e.currentEntity["side"], e.currentEntity["top"],
e.currentEntity["speed"], e.currentEntity["endSpeed"], e.currentEntity["ease"]);
},
resizable = true,
@ -166,7 +167,7 @@ namespace HeavenStudio.Games.Loaders
{
function = delegate
{
AirRally.instance.SetSnowflakeRates(e.currentEntity.beat, e.currentEntity.length, e.currentEntity["cps"],
AirRally.instance.SetSnowflakeRates(e.currentEntity.beat, e.currentEntity.length, e.currentEntity["cps"],
e.currentEntity["speed"], e.currentEntity["endSpeed"], e.currentEntity["ease"]);
},
resizable = true,
@ -220,9 +221,9 @@ namespace HeavenStudio.Games.Loaders
resizable = true,
}
},
new List<string>() {"rvl", "normal"},
new List<string>() { "rvl", "normal" },
"rvlbadminton", "en",
new List<string>() {"en"}
new List<string>() { "en" }
);
}
}
@ -377,12 +378,23 @@ namespace HeavenStudio.Games
{
InitClouds(0);
}
}
}
// Update is called once per frame
void Update()
{
if(PlayerInput.Pressed() && !IsExpectingInputNow())
if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch && !GameManager.instance.autoplay)
{
if (PlayerInput.GetIsAction(InputAction_BasicPress))
{
Baxter.DoScaledAnimationAsync(GetDistanceStringAtBeat(Conductor.instance.songPositionInBeatsAsDouble, false, true) + "Ready", 0.5f);
}
if (PlayerInput.GetIsAction(InputAction_BasicRelease))
{
Baxter.DoScaledAnimationAsync("Idle", 0.5f);
}
}
if (PlayerInput.GetIsAction(InputAction_FlickRelease) && !IsExpectingInputNow(InputAction_FlickRelease))
{
Baxter.DoScaledAnimationAsync("Hit", 0.5f);
SoundByte.PlayOneShotGame("airRally/swing");
@ -466,7 +478,7 @@ namespace HeavenStudio.Games
spawnedBird.speedMultX = invert ? -xSpeed : xSpeed;
spawnedBird.speedMultZ = zSpeed;
spawnedBird.transform.position =
new Vector3(invert ? -spawnedBird.transform.position.x : spawnedBird.transform.position.x,
new Vector3(invert ? -spawnedBird.transform.position.x : spawnedBird.transform.position.x,
spawnedBird.transform.position.y, startZ);
spawnedBird.transform.localScale = new Vector3(invert ? -1 : 1, 1, 1);
}
@ -785,7 +797,7 @@ namespace HeavenStudio.Games
Forthington.DoScaledAnimationAsync("Hit", 0.5f);
})
});
});
}
public void ReturnObject(double beat, double targetBeat, bool type)
@ -910,13 +922,13 @@ namespace HeavenStudio.Games
instance.ForthVoiceAction(beat)
});
}
public static void ForthVoice(double beat, int type)
{
float offset = countInOffsets[type];
DistanceSound distance = DistanceAtBeat(beat);
switch (distance)
{
case DistanceSound.close:
@ -1010,11 +1022,11 @@ namespace HeavenStudio.Games
private static bool TryGetLastDistanceEvent(double beat, out RiqEntity distanceEvent)
{
var allDistances = EventCaller.GetAllInGameManagerList("airRally", new string[] { "set distance" }).FindAll(x => x.beat <= beat);
if (allDistances.Count == 0)
if (allDistances.Count == 0)
{
distanceEvent = null;
return false;
}
}
distanceEvent = allDistances[^1];
return true;
}
@ -1088,7 +1100,7 @@ namespace HeavenStudio.Games
var cloudEvent = EventCaller.GetAllInGameManagerList("airRally", new string[] { "cloud" }).Find(x => x.beat == beat);
if (cloudEvent != null)
{
SetCloudRates(cloudEvent.beat, cloudEvent.length, cloudEvent["main"], cloudEvent["side"], cloudEvent["top"],
SetCloudRates(cloudEvent.beat, cloudEvent.length, cloudEvent["main"], cloudEvent["side"], cloudEvent["top"],
cloudEvent["speed"], cloudEvent["endSpeed"], cloudEvent["ease"]);
}
cloudManagerMain.Init();
@ -1099,7 +1111,7 @@ namespace HeavenStudio.Games
var snowflakeEvent = EventCaller.GetAllInGameManagerList("airRally", new string[] { "snowflake" }).Find(x => x.beat == beat);
if (snowflakeEvent != null)
{
SetSnowflakeRates(snowflakeEvent.beat, snowflakeEvent.length, snowflakeEvent["cps"], snowflakeEvent["speed"],
SetSnowflakeRates(snowflakeEvent.beat, snowflakeEvent.length, snowflakeEvent["cps"], snowflakeEvent["speed"],
snowflakeEvent["endSpeed"], snowflakeEvent["ease"]);
}
@ -1217,7 +1229,7 @@ namespace HeavenStudio.Games
string distanceString = GetDistanceStringAtBeat(beat);
if (distanceString != "Close") SoundByte.PlayOneShotGame("airRally/whooshForth_" + distanceString, beat + 1, 1, 1, false, false, whooshOffsetsRally[(int)DistanceAtBeat(beat)]);
if (!(silent || isBaBumBeat) || (isCatch && !silent))
if (!(silent || isBaBumBeat) || (isCatch && !silent))
SoundByte.PlayOneShotGame("airRally/nya_" + distanceString, beat, 1, 1, false, false, nyaOffsets[(int)DistanceAtBeat(beat)]);
BeatAction.New(this, new List<BeatAction.Action>()
@ -1234,7 +1246,10 @@ namespace HeavenStudio.Games
new BeatAction.Action(beat, delegate
{
string distanceString = GetDistanceStringAtBeat(beat);
Baxter.DoScaledAnimationAsync((distanceString == "Close") ? "CloseReady" : "FarReady", 0.5f);
if (PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch || GameManager.instance.autoplay)
{
Baxter.DoScaledAnimationAsync((distanceString == "Close") ? "CloseReady" : "FarReady", 0.5f);
}
SoundByte.PlayOneShotGame("airRally/hitForth_" + distanceString);
}),
new BeatAction.Action(beat + 1, delegate
@ -1243,9 +1258,9 @@ namespace HeavenStudio.Games
})
});
ScheduleInput(beat, 1f, InputType.STANDARD_DOWN, RallyOnHit, RallyOnMiss, RallyEmpty);
}
ScheduleInput(beat, 1f, InputAction_FlickPress, RallyOnHit, RallyOnMiss, RallyEmpty);
}
private bool IsBaBumBeat(double beat)
{
return EventCaller.GetAllInGameManagerList("airRally", new string[] { "ba bum bum bum" }).Find(x => x.beat == beat) != null;
@ -1290,14 +1305,14 @@ namespace HeavenStudio.Games
new MultiSound.Sound("airRally/baBumBumBum_" + GetDistanceStringAlt(beat) + "2", beat, offset: GetBaBumOffset(beat, 0)),
new MultiSound.Sound("airRally/baBumBumBum_" + GetDistanceStringAlt(beat + 1f) + "3", beat + 1, offset: GetBaBumOffset(beat + 1, 0)),
new MultiSound.Sound("airRally/baBumBumBum_" + GetDistanceStringAlt(beat + 2f) + "4", beat + 2, offset: GetBaBumOffset(beat + 2, 0)),
});
if (distanceStringTwoBeat != "Close")
if (distanceStringTwoBeat != "Close")
{
sounds.Add(new MultiSound.Sound("airRally/whooshForth_" + distanceStringTwoBeat + "2", beat + 4, 1, 1, false, whooshOffsetsBaBum[(int)DistanceAtBeat(beat + 2)]));
sounds.Add(new MultiSound.Sound("airRally/hitForth_" + distanceStringTwoBeat + "2", beat + 2));
}
}
else
{
sounds.Add(new MultiSound.Sound("airRally/hitForth_Close", beat + 2));
@ -1338,31 +1353,34 @@ namespace HeavenStudio.Games
BeatAction.New(this, new List<BeatAction.Action>()
{
new BeatAction.Action(beat, delegate
new BeatAction.Action(beat, delegate
{
if (isCatch) return;
if (isBaBumBeat) BaBumBumBum(beat + 4, countBaBum, altBum);
else RallyRecursion(beat + 6);
else RallyRecursion(beat + 6);
}),
new BeatAction.Action(beat + 1f, delegate
{
new BeatAction.Action(beat + 1f, delegate
{
Forthington.DoScaledAnimationAsync("Ready", 0.5f);
ServeObject(beat + 2f, beat + 4f, true);
}),
new BeatAction.Action(beat + 2f, delegate
{
Baxter.DoScaledAnimationAsync(GetDistanceStringAtBeat(beat + 2f, false, true) + "Ready", 0.5f);
} ),
new BeatAction.Action(beat + 2f, delegate
{
if (PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch || GameManager.instance.autoplay)
{
Baxter.DoScaledAnimationAsync(GetDistanceStringAtBeat(beat + 2f, false, true) + "Ready", 0.5f);
}
}),
new BeatAction.Action(beat + 3f, delegate { Forthington.DoScaledAnimationAsync("TalkShort", 0.5f); }),
new BeatAction.Action(beat + 3.5f, delegate { if(!count || isBaBumBeat) Forthington.DoScaledAnimationAsync("TalkShort", 0.5f); }),
new BeatAction.Action(beat + 4f, delegate { Forthington.DoScaledAnimationAsync("Ready", 0.5f); }),
});
ScheduleInput(beat, 4f, InputType.STANDARD_DOWN, LongShotOnHit, RallyOnMiss, RallyEmpty);
ScheduleInput(beat, 4f, InputAction_FlickPress, LongShotOnHit, RallyOnMiss, RallyEmpty);
}
private void CatchBirdie()
private void CatchBirdie()
{
Forthington.DoScaledAnimationAsync("Catch", 0.5f);
SoundByte.PlayOneShotGame("airRally/birdieCatch");
@ -1376,7 +1394,7 @@ namespace HeavenStudio.Games
Baxter.DoScaledAnimationAsync("Hit", 0.5f);
if (state >= 1 || state <= -1)
{
{
ActiveShuttle.DoNearMiss();
hasMissed = true;
shuttleActive = false;
@ -1416,7 +1434,7 @@ namespace HeavenStudio.Games
Baxter.DoScaledAnimationAsync("Hit", 0.5f);
if (state >= 1 || state <= -1)
{
{
ActiveShuttle.DoThrough();
hasMissed = true;
shuttleActive = false;

View file

@ -25,8 +25,6 @@ namespace HeavenStudio.Games.Scripts_CatchyTune
private string soundText;
private Minigame.Eligible e = new Minigame.Eligible();
private CatchyTune game;
private float beatLength = 4f;
@ -35,8 +33,6 @@ namespace HeavenStudio.Games.Scripts_CatchyTune
{
game = CatchyTune.instance;
e.gameObject = this.gameObject;
var cond = Conductor.instance;
var tempo = cond.songBpm;
var playbackSpeed = cond.musicSource.pitch;

View file

@ -177,8 +177,8 @@ namespace HeavenStudio.Games
float currentZoomCamLength;
private List<RiqEntity> allCameraEvents = new List<RiqEntity>();
const int IAAltDownCat = 4;
const int IAAltUpCat = 5;
const int IAAltDownCat = IAMAXCAT;
const int IAAltUpCat = IAMAXCAT + 1;
protected static bool IA_PadAltPress(out double dt)
{

View file

@ -11,12 +11,13 @@ namespace HeavenStudio.Games.Loaders
using static Minigames;
public static class NtrDogNinjaLoader
{
public static Minigame AddGame(EventCaller eventCaller) {
public static Minigame AddGame(EventCaller eventCaller)
{
return new Minigame("dogNinja", "Dog Ninja", "554899", false, false, new List<GameAction>()
{
new GameAction("Bop", "Bop")
{
function = delegate { DogNinja.instance.Bop(eventCaller.currentEntity.beat, eventCaller.currentEntity["toggle"]); },
function = delegate { DogNinja.instance.Bop(eventCaller.currentEntity.beat, eventCaller.currentEntity["toggle"]); },
defaultLength = 0.5f,
parameters = new List<Param>()
{
@ -25,7 +26,7 @@ namespace HeavenStudio.Games.Loaders
},
new GameAction("Prepare", "Prepare")
{
function = delegate { DogNinja.instance.Prepare(eventCaller.currentEntity.beat); },
function = delegate { DogNinja.instance.Prepare(eventCaller.currentEntity.beat); },
defaultLength = 0.5f,
},
new GameAction("ThrowObject", "Throw Object")
@ -44,7 +45,7 @@ namespace HeavenStudio.Games.Loaders
},
new GameAction("CutEverything", "Cut Everything!")
{
function = delegate { var e = eventCaller.currentEntity; DogNinja.instance.CutEverything(e.beat, e["toggle"], e["text"]); },
function = delegate { var e = eventCaller.currentEntity; DogNinja.instance.CutEverything(e.beat, e["toggle"], e["text"]); },
defaultLength = 0.5f,
parameters = new List<Param>()
{
@ -96,9 +97,9 @@ namespace HeavenStudio.Games.Loaders
inactiveFunction = delegate { var e = eventCaller.currentEntity; DogNinja.QueueObject(e.beat, 2, e["typeL"], e["typeR"], true, false);},
},
},
new List<string>() {"ntr", "normal"},
new List<string>() { "ntr", "normal" },
"ntrninja", "en",
new List<string>() {}
new List<string>() { }
);
}
}
@ -119,11 +120,11 @@ namespace HeavenStudio.Games
public string sfxNumL;
public string sfxNumR;
}
[Header("Animators")]
public Animator DogAnim; // dog misc animations
public Animator BirdAnim; // bird flying in and out
[Header("References")]
[SerializeField] GameObject ObjectBase;
[SerializeField] GameObject FullBird;
@ -131,7 +132,7 @@ namespace HeavenStudio.Games
public SpriteRenderer WhichLeftHalf;
public SpriteRenderer WhichRightHalf;
[SerializeField] TMP_Text cutEverythingText;
[Header("Curves")]
[SerializeField] BezierCurve3D CurveFromLeft;
[SerializeField] BezierCurve3D CurveFromRight;
@ -202,7 +203,8 @@ namespace HeavenStudio.Games
void OnDestroy()
{
if (!Conductor.instance.isPlaying || Conductor.instance.isPaused) {
if (!Conductor.instance.isPlaying || Conductor.instance.isPaused)
{
if (queuedThrows.Count > 0) queuedThrows.Clear();
}
foreach (var evt in scheduledInputs)
@ -219,12 +221,12 @@ namespace HeavenStudio.Games
DogAnim.SetBool("needPrepare", true);
}
if (PlayerInput.GetIsAction(InputAction_TouchPress))
if (PlayerInput.GetIsAction(InputAction_TouchPress) && !GameManager.instance.autoplay)
{
DogAnim.SetBool("needPrepare", true);
DogAnim.DoScaledAnimationAsync("Prepare", 0.5f);
}
if (PlayerInput.GetIsAction(InputAction_TouchRelease) && !IsExpectingInputNow(InputAction_Press))
if (PlayerInput.GetIsAction(InputAction_TouchRelease) && (!IsExpectingInputNow(InputAction_Press)) && (!GameManager.instance.autoplay))
{
DogAnim.SetBool("needPrepare", false);
DogAnim.DoScaledAnimationAsync("Bop", 0.5f);
@ -234,10 +236,13 @@ namespace HeavenStudio.Games
{
System.Random rd = new System.Random();
string slice;
int LorR = rd.Next(0,2);
if (LorR < 1) {
int LorR = rd.Next(0, 2);
if (LorR < 1)
{
slice = "WhiffRight";
} else {
}
else
{
slice = "WhiffLeft";
}
@ -246,13 +251,14 @@ namespace HeavenStudio.Games
DogAnim.SetBool("needPrepare", false);
}
if (queuedThrows.Count > 0) {
if (queuedThrows.Count > 0)
{
foreach (var obj in queuedThrows) { ThrowObject(obj.beat, obj.direction, obj.typeL, obj.typeR, obj.sfxNumL, obj.sfxNumR); }
queuedThrows.Clear();
}
}
private void LateUpdate()
private void LateUpdate()
{
if (Conductor.instance.ReportBeat(ref lastReportedBeat) && DogAnim.IsAnimationNotPlaying() && !dontBop)
{
@ -268,27 +274,31 @@ namespace HeavenStudio.Games
public static void QueueObject(double beat, int direction, int typeL, int typeR, bool prepare, bool muteThrow)
{
int ObjSprite = 1;
if (typeL == 0 || typeR == 0) {
if (typeL == 0 || typeR == 0)
{
// random object code. it makes a random number from 1-7 and sets that as the sprite
System.Random rd = new System.Random();
ObjSprite = rd.Next(1, 7);
}
string sfxNumL = "dogNinja/";
if (direction is 0 or 2) {
if (direction is 0 or 2)
{
sfxNumL += typeL < 7 ? "fruit" : Enum.GetName(typeof(ObjectType), typeL);
if (typeL == 0) typeL = ObjSprite;
if (!muteThrow) SoundByte.PlayOneShotGame(sfxNumL+"1", forcePlay: true);
}
string sfxNumR = "dogNinja/";
if (direction is 1 or 2) {
sfxNumR += typeR < 7 ? "fruit" : Enum.GetName(typeof(ObjectType), typeR);
if (typeR == 0) typeR = ObjSprite;
if (!(direction == 2 && typeL == typeR) && !muteThrow) SoundByte.PlayOneShotGame(sfxNumR+"1", forcePlay: true);
if (!muteThrow) SoundByte.PlayOneShotGame(sfxNumL + "1", forcePlay: true);
}
queuedThrows.Add(new QueuedThrow() {
string sfxNumR = "dogNinja/";
if (direction is 1 or 2)
{
sfxNumR += typeR < 7 ? "fruit" : Enum.GetName(typeof(ObjectType), typeR);
if (typeR == 0) typeR = ObjSprite;
if (!(direction == 2 && typeL == typeR) && !muteThrow) SoundByte.PlayOneShotGame(sfxNumR + "1", forcePlay: true);
}
queuedThrows.Add(new QueuedThrow()
{
beat = beat,
direction = direction,
typeL = typeL,
@ -297,14 +307,15 @@ namespace HeavenStudio.Games
sfxNumR = sfxNumR,
});
prepare = prepare && PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch && PlayerInput.PlayerHasControl();
prepare = prepare && (PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch || GameManager.instance.autoplay);
if (prepare) DogNinja.instance.DogAnim.SetBool("needPrepare", true);
}
public void ThrowObject(double beat, int direction, int typeL, int typeR, string sfxNumL, string sfxNumR)
{
// instantiate a game object and give it its variables
if (direction is 0 or 2) {
if (direction is 0 or 2)
{
WhichObject.sprite = ObjectTypes[typeL];
ThrowObject ObjectL = Instantiate(ObjectBase, gameObject.transform).GetComponent<ThrowObject>();
ObjectL.startBeat = beat;
@ -316,7 +327,8 @@ namespace HeavenStudio.Games
if (direction == 2) ObjectL.shouldSfx = (typeL == typeR);
}
if (direction is 1 or 2) {
if (direction is 1 or 2)
{
WhichObject.sprite = ObjectTypes[typeR];
ThrowObject ObjectR = Instantiate(ObjectBase, gameObject.transform).GetComponent<ThrowObject>();
ObjectR.startBeat = beat;
@ -332,15 +344,19 @@ namespace HeavenStudio.Games
public void CutEverything(double beat, bool sound, string customText)
{
// plays one anim with sfx when it's not on screen, plays a different anim with no sfx when on screen. ez
if (!birdOnScreen) {
if (!birdOnScreen)
{
FullBird.SetActive(true);
if (sound) {
SoundByte.PlayOneShotGame(sfxNum+"bird_flap");
if (sound)
{
SoundByte.PlayOneShotGame(sfxNum + "bird_flap");
}
BirdAnim.Play("FlyIn", 0, 0);
birdOnScreen = true;
cutEverythingText.text = customText;
} else {
}
else
{
BirdAnim.Play("FlyOut", 0, 0);
birdOnScreen = false;
}
@ -356,7 +372,7 @@ namespace HeavenStudio.Games
public void HereWeGo(double beat)
{
MultiSound.Play(new MultiSound.Sound[] {
new MultiSound.Sound(sfxNum+"here", beat),
new MultiSound.Sound(sfxNum+"here", beat),
new MultiSound.Sound(sfxNum+"we", beat + 0.5f),
new MultiSound.Sound(sfxNum+"go", beat + 1f)
}, forcePlay: true);

View file

@ -184,7 +184,7 @@ namespace HeavenStudio.Games
}
public static FlipperFlop instance;
const int IAAltDownCat = 4;
const int IAAltDownCat = IAMAXCAT;
protected static bool IA_TouchPress(out double dt)
{

View file

@ -50,11 +50,6 @@ namespace HeavenStudio.Games.Scripts_ForkLifter
Stab(null);
}
if (ForkLifter.instance.EligibleHits.Count == 0)
{
currentHitInList = 0;
}
if (Conductor.instance.ReportBeat(ref lastReportedBeat) && anim.IsAnimationNotPlaying() && shouldBop)
{
anim.DoScaledAnimationAsync("Player_Bop", 0.5f);

View file

@ -11,7 +11,7 @@ namespace HeavenStudio.Games.Scripts_GleeClub
[SerializeField] SpriteRenderer sr;
[SerializeField] bool player;
Sound currentSound;
public float currentPitch = 1f;
public float gameSwitchFadeOutTime = 0f;
@ -47,12 +47,12 @@ namespace HeavenStudio.Games.Scripts_GleeClub
{
disappeared = disappear;
sr.color = new Color(1, 1, 1, 1);
if (player && !PlayerInput.Pressing() && !GameManager.instance.autoplay)
if (player && !PlayerInput.GetIsAction(GleeClub.InputAction_BasicPressing) && !GameManager.instance.autoplay)
{
StartSinging();
game.leftChorusKid.MissPose();
game.middleChorusKid.MissPose();
}
}
}
}

View file

@ -2,6 +2,7 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HeavenStudio.Util;
using HeavenStudio.InputSystem;
using Jukebox;
namespace HeavenStudio.Games.Loaders
@ -20,7 +21,7 @@ namespace HeavenStudio.Games.Loaders
},
new GameAction("sing", "Sing")
{
function = delegate { var e = eventCaller.currentEntity; GleeClub.instance.Sing(e.beat, e.length, e["semiTones"], e["semiTones1"], e["semiTonesPlayer"],
function = delegate { var e = eventCaller.currentEntity; GleeClub.instance.Sing(e.beat, e.length, e["semiTones"], e["semiTones1"], e["semiTonesPlayer"],
e["close"], e["repeat"], e["semiTonesLeft2"], e["semiTonesLeft3"], e["semiTonesMiddle2"]); },
resizable = true,
parameters = new List<Param>()
@ -96,9 +97,9 @@ namespace HeavenStudio.Games.Loaders
hidden = true
},
},
new List<string>() {"ntr", "repeat"},
new List<string>() { "ntr", "repeat" },
"ntrchorus", "en",
new List<string>() {"en"}
new List<string>() { "en" }
);
}
}
@ -167,7 +168,7 @@ namespace HeavenStudio.Games
void Start()
{
if (!PlayerInput.Pressing() && Conductor.instance.isPlaying && !GameManager.instance.autoplay)
if (!PlayerInput.GetIsAction(InputAction_BasicPressing) && Conductor.instance.isPlaying && !GameManager.instance.autoplay)
{
playerChorusKid.StartSinging();
leftChorusKid.MissPose();
@ -192,20 +193,30 @@ namespace HeavenStudio.Games
{
if (!playerChorusKid.disappeared)
{
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
if (PlayerInput.GetIsAction(InputAction_BasicPress) && !IsExpectingInputNow(InputAction_BasicPress))
{
playerChorusKid.StopSinging();
leftChorusKid.MissPose();
middleChorusKid.MissPose();
ScoreMiss();
}
if (PlayerInput.PressedUp() && !IsExpectingInputNow(InputType.STANDARD_UP))
if (PlayerInput.GetIsAction(InputAction_BasicRelease) && !IsExpectingInputNow(InputAction_BasicRelease))
{
playerChorusKid.StartSinging();
leftChorusKid.MissPose();
middleChorusKid.MissPose();
ScoreMiss();
}
if (PlayerInput.GetIsAction(InputAction_FlickRelease) && !IsExpectingInputNow(InputAction_FlickRelease))
{
if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch)
{
playerChorusKid.StartYell();
leftChorusKid.MissPose();
middleChorusKid.MissPose();
ScoreMiss();
}
}
}
if (Conductor.instance.isPlaying && !Conductor.instance.isPaused)
@ -265,14 +276,14 @@ namespace HeavenStudio.Games
playerChorusKid.currentPitch = SoundByte.GetPitchFromSemiTones(semiTonesPlayer, true);
leftChorusKid.StartSinging(true);
middleChorusKid.StartSinging(true);
if (!PlayerInput.Pressing() || GameManager.instance.autoplay) playerChorusKid.StartSinging(true);
if (!PlayerInput.GetIsAction(InputAction_BasicPressing) || GameManager.instance.autoplay) playerChorusKid.StartSinging(true);
else missed = true;
}
public void TogetherNow(double beat, int semiTones, int semiTones1, int semiTonesPlayer, float conductorPitch)
{
if (!playerChorusKid.disappeared) ScheduleInput(beat, 2.5f, InputType.STANDARD_UP, JustTogetherNow, Out, Out);
if (!playerChorusKid.disappeared) ScheduleInput(beat, 3.5f, InputType.STANDARD_DOWN, JustTogetherNowClose, MissBaton, Out);
if (!playerChorusKid.disappeared) ScheduleInput(beat, 2.5f, InputAction_FlickRelease, JustTogetherNow, Out, Out);
if (!playerChorusKid.disappeared) ScheduleInput(beat, 3.5f, InputAction_BasicPress, JustTogetherNowClose, MissBaton, Out);
float pitch = SoundByte.GetPitchFromSemiTones(semiTones, true);
float pitch1 = SoundByte.GetPitchFromSemiTones(semiTones1, true);
currentYellPitch = SoundByte.GetPitchFromSemiTones(semiTonesPlayer, true);
@ -378,7 +389,7 @@ namespace HeavenStudio.Games
{
new BeatAction.Action(beat + length + sing.startBeat, delegate
{
if (sing.closeMouth != (int)MouthOpenClose.OnlyClose)
if (sing.closeMouth != (int)MouthOpenClose.OnlyClose)
{
middleChorusKid.currentPitch = pitch;
middleChorusKid.StartSinging();
@ -387,15 +398,15 @@ namespace HeavenStudio.Games
leftChorusKid.currentPitch = pitchLeft2;
leftChorusKid.StartSinging();
}
}
}
}),
new BeatAction.Action(beat + length + sing.startBeat + sing.length, delegate
{
if (sing.closeMouth != (int)MouthOpenClose.OnlyOpen)
if (sing.closeMouth != (int)MouthOpenClose.OnlyOpen)
{
middleChorusKid.StopSinging();
if (sing.repeating) leftChorusKid.StopSinging();
}
}
}),
new BeatAction.Action(beat + length + sing.startBeat + beatInterval, delegate
{
@ -440,7 +451,7 @@ namespace HeavenStudio.Games
public void Baton(double beat)
{
missed = false;
if (!playerChorusKid.disappeared) ScheduleInput(beat, 1, InputType.STANDARD_DOWN, JustBaton, MissBaton, Out);
if (!playerChorusKid.disappeared) ScheduleInput(beat, 1, InputAction_BasicPress, JustBaton, MissBaton, Out);
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beat, delegate

View file

@ -22,8 +22,8 @@ namespace HeavenStudio.Games.Scripts_GleeClub
{
shouldClose = close != (int)GleeClub.MouthOpenClose.OnlyOpen;
shouldOpen = close != (int)GleeClub.MouthOpenClose.OnlyClose;
if (shouldOpen) game.ScheduleInput(beat - 1, 1, InputType.STANDARD_UP, Just, Miss, Out);
if (shouldClose) game.ScheduleInput(beat, length, InputType.STANDARD_DOWN, JustClose, MissClose, Out);
if (shouldOpen) game.ScheduleInput(beat - 1, 1, GleeClub.InputAction_BasicRelease, Just, Miss, Out);
if (shouldClose) game.ScheduleInput(beat, length, GleeClub.InputAction_BasicPress, JustClose, MissClose, Out);
}
public void Just(PlayerActionEvent caller, float state)

View file

@ -42,8 +42,14 @@ namespace HeavenStudio.Games.Scripts_KarateMan
bool canEmote = false;
public int wantFace = 0;
public bool inSpecial { get { return inCombo || lockedInCombo ||
Conductor.instance.GetPositionFromBeat(lastChargeTime, 2.75f) <= 0.25f || inNuriLock; } }
public bool inSpecial
{
get
{
return inCombo || lockedInCombo ||
Conductor.instance.GetPositionFromBeat(lastChargeTime, 2.75f) <= 0.25f || inNuriLock;
}
}
public bool inNuriLock { get { return (Conductor.instance.songPositionInBeatsAsDouble >= noNuriJabTime && Conductor.instance.songPositionInBeatsAsDouble < noNuriJabTime + 1f); } }
private void Awake()
@ -73,7 +79,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
if (canEmote && wantFace >= 0)
{
SetFaceExpressionForced(wantFace);
if (wantFace == (int) KarateMan.KarateManFaces.Surprise) wantFace = -1;
if (wantFace == (int)KarateMan.KarateManFaces.Surprise) wantFace = -1;
}
if (cond.songPositionInBeatsAsDouble >= noNuriJabTime && cond.songPositionInBeatsAsDouble < noNuriJabTime + 1f)
@ -143,7 +149,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
SoundByte.PlayOneShotGame("karateman/swingNoHit", forcePlay: true);
}
}
if (PlayerInput.AltPressed() && KarateMan.IsComboEnable && !inSpecial)
{
if (!KarateMan.instance.IsExpectingInputNow(InputType.STANDARD_ALT_DOWN))
@ -284,12 +290,12 @@ namespace HeavenStudio.Games.Scripts_KarateMan
new BeatAction.Action(beat + 0.75f, delegate { shouldComboId = -2; ComboMiss(beat + 0.75f); }),
});
MultiSound.Play(new MultiSound.Sound[]
MultiSound.Play(new MultiSound.Sound[]
{
new MultiSound.Sound("karateman/swingNoHit", beat),
new MultiSound.Sound("karateman/swingNoHit_Alt", beat + 0.25f),
new MultiSound.Sound("karateman/swingNoHit_Alt", beat + 0.5f),
new MultiSound.Sound("karateman/comboMiss", beat + 0.75f),
new MultiSound.Sound("karateman/swingNoHit", beat),
new MultiSound.Sound("karateman/swingNoHit_Alt", beat + 0.25f),
new MultiSound.Sound("karateman/swingNoHit_Alt", beat + 0.5f),
new MultiSound.Sound("karateman/comboMiss", beat + 0.75f),
}, forcePlay: true);
}
@ -299,7 +305,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
unPrepareTime = double.MinValue;
BeatAction.New(this, new List<BeatAction.Action>()
{
new BeatAction.Action(beat, delegate {
new BeatAction.Action(beat, delegate {
if (wantKick)
{
wantKick = false;

View file

@ -34,7 +34,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
[SerializeField] Color[] ItemCookingLidMap;
public bool KickBarrelContent = false;
public int OnHitExpression = (int) KarateMan.KarateManFaces.Normal;
public int OnHitExpression = (int)KarateMan.KarateManFaces.Normal;
public int comboId = -1;
static int _lastCombo = -1;
@ -42,7 +42,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public static int GetNewCombo() { _lastCombo++; return _lastCombo; }
public static void ResetLastCombo() { _lastCombo = -1; }
public enum ItemType {
public enum ItemType
{
Pot, // path 1
Bulb, // path 1
Rock, // path 1
@ -66,7 +67,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
CookingLid, //only used for hit
}
public enum FlyStatus {
public enum FlyStatus
{
Fly,
Hit,
NG,
@ -84,12 +86,14 @@ namespace HeavenStudio.Games.Scripts_KarateMan
public SpriteRenderer BulbLight;
public void SetBulbColor(Color c) {
effectTint = c;
public void SetBulbColor(Color c)
{
effectTint = c;
BulbLight.color = c;
}
float ProgressToHitPosition(float progress) {
float ProgressToHitPosition(float progress)
{
return progress + (HitPositionOffset[path] - 0.5f);
}
@ -103,7 +107,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
//https://www.desmos.com/calculator/ycn9v62i4f
float offset = HitPositionOffset[path];
float flyHeight = (progressToHitPosition*(progressToHitPosition-1f))/(offset*(offset-1f));
float flyHeight = (progressToHitPosition * (progressToHitPosition - 1f)) / (offset * (offset - 1f));
float floorHeight = HitPosition[0].position.y;
Vector3 startPosition = hitPosition + StartPositionOffset[path];
@ -114,7 +118,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
Mathf.Lerp(startPosition.z, endPosition.z, progress)
);
if (progress >= 0.5f && flyPosition.y < HitPosition[0].position.y) {
if (progress >= 0.5f && flyPosition.y < HitPosition[0].position.y)
{
flyPosition.y = floorHeight;
}
return flyPosition;
@ -154,7 +159,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
delta = KarateMan.ItemColor;
break;
}
for (int i = 0; i < cellRenderers.Length; i++) {
for (int i = 0; i < cellRenderers.Length; i++)
{
SpriteRenderer r = cellRenderers[i];
if (r.material != null)
{
@ -180,8 +186,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
switch (type)
{
case ItemType.ComboPot1:
OnHit = KarateMan.instance.ScheduleInput(startBeat, 1f, InputType.STANDARD_ALT_DOWN, ComboStartJustOrNg, ComboStartThrough, ComboStartOut, CanCombo);
OnHitWrongAction = KarateMan.instance.ScheduleUserInput(startBeat, 1f, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, ComboStartWrongAction, ComboStartOut, ComboStartOut, CanHit);
OnHit = KarateMan.instance.ScheduleInput(startBeat, 1f, InputType.STANDARD_ALT_DOWN, ComboStartJustOrNg, ComboStartThrough, ComboStartOut, CanCombo);
OnHitWrongAction = KarateMan.instance.ScheduleUserInput(startBeat, 1f, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, ComboStartWrongAction, ComboStartOut, ComboStartOut, CanHit);
path = 1;
break;
case ItemType.ComboPot2:
@ -202,24 +208,24 @@ namespace HeavenStudio.Games.Scripts_KarateMan
BeatAction.New(this, new List<BeatAction.Action>() { new BeatAction.Action(startBeat + 1f, delegate { JoeComboSequence(); }) });
break;
case ItemType.ComboBarrel:
OnHit = KarateMan.instance.ScheduleInput(startBeat, 1f, InputType.STANDARD_ALT_UP, ComboEndJustOrNg, ComboEndThrough, ComboEndOut, CanComboEnd);
OnHit = KarateMan.instance.ScheduleInput(startBeat, 1f, InputType.STANDARD_ALT_UP, ComboEndJustOrNg, ComboEndThrough, ComboEndOut, CanComboEnd);
path = 5;
break;
case ItemType.KickBarrel:
OnHit = KarateMan.instance.ScheduleInput(startBeat, 1f, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, KickChargeJustOrNg, ItemThrough, ItemOut, CanCombo);
OnHitWrongAction = KarateMan.instance.ScheduleUserInput(startBeat, 1f, InputType.STANDARD_ALT_DOWN, ItemWrongAction, ItemOut, ItemOut, CanCombo);
OnHit = KarateMan.instance.ScheduleInput(startBeat, 1f, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, KickChargeJustOrNg, ItemThrough, ItemOut, CanCombo);
OnHitWrongAction = KarateMan.instance.ScheduleUserInput(startBeat, 1f, InputType.STANDARD_ALT_DOWN, ItemWrongAction, ItemOut, ItemOut, CanCombo);
path = 1;
comboId = -1;
break;
case ItemType.KickBomb:
OnHit = KarateMan.instance.ScheduleInput(startBeat, 0.75f, InputType.STANDARD_UP | InputType.DIRECTION_UP, KickJustOrNg, KickThrough, KickOut, CanKick);
OnHit = KarateMan.instance.ScheduleInput(startBeat, 0.75f, InputType.STANDARD_UP | InputType.DIRECTION_UP, KickJustOrNg, KickThrough, KickOut, CanKick);
CurrentCurve = ItemCurves[6];
curveTargetBeat = 2 * 0.75f;
path = 1;
comboId = -1;
break;
case ItemType.KickBall:
OnHit = KarateMan.instance.ScheduleInput(startBeat, 0.75f, InputType.STANDARD_UP | InputType.DIRECTION_UP, KickJustOrNg, KickThrough, KickOut, CanKick);
OnHit = KarateMan.instance.ScheduleInput(startBeat, 0.75f, InputType.STANDARD_UP | InputType.DIRECTION_UP, KickJustOrNg, KickThrough, KickOut, CanKick);
CurrentCurve = ItemCurves[6];
curveTargetBeat = 2 * 0.75f;
path = 1;
@ -233,14 +239,14 @@ namespace HeavenStudio.Games.Scripts_KarateMan
comboId = -1;
break;
case ItemType.Bomb:
OnHit = KarateMan.instance.ScheduleInput(startBeat, 1f, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, ItemJustOrNg, ItemThrough, ItemOut, CanHit);
OnHitWrongAction = KarateMan.instance.ScheduleUserInput(startBeat, 1f, InputType.STANDARD_ALT_DOWN, ItemWrongAction, ItemOut, ItemOut, CanHit);
OnHit = KarateMan.instance.ScheduleInput(startBeat, 1f, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, ItemJustOrNg, ItemThrough, ItemOut, CanHit);
OnHitWrongAction = KarateMan.instance.ScheduleUserInput(startBeat, 1f, InputType.STANDARD_ALT_DOWN, ItemWrongAction, ItemOut, ItemOut, CanHit);
path = 1;
comboId = -1;
break;
default:
OnHit = KarateMan.instance.ScheduleInput(startBeat, 1f, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, ItemJustOrNg, ItemThrough, ItemOut, CanHit);
OnHitWrongAction = KarateMan.instance.ScheduleUserInput(startBeat, 1f, InputType.STANDARD_ALT_DOWN, ItemWrongAction, ItemOut, ItemOut, CanHit);
OnHit = KarateMan.instance.ScheduleInput(startBeat, 1f, InputType.STANDARD_DOWN | InputType.DIRECTION_DOWN, ItemJustOrNg, ItemThrough, ItemOut, CanHit);
OnHitWrongAction = KarateMan.instance.ScheduleUserInput(startBeat, 1f, InputType.STANDARD_ALT_DOWN, ItemWrongAction, ItemOut, ItemOut, CanHit);
path = 1;
comboId = -1;
break;
@ -283,7 +289,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
prog = cond.GetPositionFromBeat(startBeat, curveTargetBeat);
transform.position = CurrentCurve.GetPoint(Mathf.Min(prog, 1f));
}
if (type == ItemType.Bomb && cond.songPositionInBeatsAsDouble >= startBeat + 2f)
{
ParticleSystem p = Instantiate(HitParticles[7], transform.position, Quaternion.identity, KarateMan.instance.ItemHolder);
@ -293,7 +299,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
GameObject.Destroy(gameObject);
return;
}
else if (prog >= 2f || (ItemKickable() && prog >= 1f)) {
else if (prog >= 2f || (ItemKickable() && prog >= 1f))
{
if (type == ItemType.KickBomb)
{
ParticleSystem p = Instantiate(HitParticles[7], ItemCurves[6].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder);
@ -303,12 +310,13 @@ namespace HeavenStudio.Games.Scripts_KarateMan
GameObject.Destroy(gameObject);
return;
}
else if (CurrentCurve == null && prog < 1f - ItemSlipRt[path]) {
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (125f * Time.deltaTime * (1/cond.pitchedSecPerBeat)));
else if (CurrentCurve == null && prog < 1f - ItemSlipRt[path])
{
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (125f * Time.deltaTime * (1 / cond.pitchedSecPerBeat)));
}
else if (CurrentCurve != null && prog < 1f)
{
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (-90f * Time.deltaTime * (1/cond.pitchedSecPerBeat)));
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (-90f * Time.deltaTime * (1 / cond.pitchedSecPerBeat)));
}
break;
case FlyStatus.Hit:
@ -324,7 +332,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
SoundByte.PlayOneShotGame("karateman/bombBreak", volume: 0.25f);
return;
}
else if (cond.songPositionInBeatsAsDouble >= startBeat + Mathf.Max(2f, curveTargetBeat) || CurrentCurve == null) {
else if (cond.songPositionInBeatsAsDouble >= startBeat + Mathf.Max(2f, curveTargetBeat) || CurrentCurve == null)
{
if (type == ItemType.KickBomb)
{
@ -333,16 +342,17 @@ namespace HeavenStudio.Games.Scripts_KarateMan
}
else if (type == ItemType.KickBall && cond.songPositionInBeatsAsDouble < startBeat + curveTargetBeat + 1f)
return;
GameObject.Destroy(ShadowInstance.gameObject);
GameObject.Destroy(gameObject);
return;
}
else {
else
{
if (prog <= 1f)
{
transform.position = CurrentCurve.GetPoint(prog);
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (-270f * Time.deltaTime * (1/cond.pitchedSecPerBeat)));
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (-270f * Time.deltaTime * (1 / cond.pitchedSecPerBeat)));
}
else
{
@ -363,7 +373,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
GameObject.Destroy(gameObject);
return;
}
else if (cond.songPositionInBeatsAsDouble >= startBeat + Mathf.Max(2f, curveTargetBeat) || (ItemKickable() && prog >= 1f) || CurrentCurve == null) {
else if (cond.songPositionInBeatsAsDouble >= startBeat + Mathf.Max(2f, curveTargetBeat) || (ItemKickable() && prog >= 1f) || CurrentCurve == null)
{
if (type == ItemType.KickBomb)
{
ParticleSystem p = Instantiate(HitParticles[7], ItemCurves[8].GetPoint(1f), Quaternion.identity, KarateMan.instance.ItemHolder);
@ -373,11 +384,12 @@ namespace HeavenStudio.Games.Scripts_KarateMan
GameObject.Destroy(gameObject);
return;
}
else {
else
{
if (prog <= 1f)
{
transform.position = CurrentCurve.GetPoint(prog);
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (-90f * Time.deltaTime * (1/cond.pitchedSecPerBeat)));
transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + (-90f * Time.deltaTime * (1 / cond.pitchedSecPerBeat)));
}
else
{
@ -425,7 +437,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
hitMark.transform.localPosition = transform.position;
else
hitMark.transform.position = HitPosition[path].position;
hitMark.SetActive(true);
}
@ -439,7 +451,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
{
case ItemType.Bulb:
CurrentCurve = ItemCurves[straight ? 1 : 0];
curveTargetBeat = straight ? 1f : 1.5f;;
curveTargetBeat = straight ? 1f : 1.5f; ;
SoundByte.PlayOneShotGame("karateman/lightbulbHit", forcePlay: true);
p = Instantiate(HitParticles[5], HitPosition[1].position, Quaternion.Euler(0, 0, UnityEngine.Random.Range(0f, 360f)), game.ItemHolder);
@ -673,7 +685,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
break;
case ItemType.ComboPot3:
joe.ComboSequence(0);
if (joe.GetComboId() != comboId) {}
if (joe.GetComboId() != comboId) { }
else
{
ItemHitEffect();
@ -681,7 +693,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
break;
case ItemType.ComboPot4:
//if the button isn't held anymore make Joe spin
if (joe.GetComboId() != comboId) {
if (joe.GetComboId() != comboId)
{
joe.ComboMiss(startBeat + 1f);
SoundByte.PlayOneShotGame("karateman/comboMiss", forcePlay: true);
joe.SetShouldComboId(-2);
@ -695,7 +708,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
break;
case ItemType.ComboPot5:
joe.ComboSequence(2);
if (joe.GetComboId() != comboId) {}
if (joe.GetComboId() != comboId) { }
else
{
ItemHitEffect();
@ -708,7 +721,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
void DoHitExpression(double offset)
{
if (OnHitExpression == (int) KarateMan.KarateManFaces.Normal)
if (OnHitExpression == (int)KarateMan.KarateManFaces.Normal)
return;
var joe = KarateMan.instance.Joe;
BeatAction.New(joe, new List<BeatAction.Action>()
@ -732,7 +745,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
{
if (GameManager.instance.currentGame != "karateman") return;
var joe = KarateMan.instance.Joe;
if (state <= -1f || state >= 1f) {
if (state <= -1f || state >= 1f)
{
bool straight = joe.Punch(ItemPunchHand());
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
CurrentCurve = ItemCurves[6];
@ -740,7 +754,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
SoundByte.PlayOneShot("miss");
status = FlyStatus.NG;
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Sad);
joe.SetFaceExpression((int)KarateMan.KarateManFaces.Sad);
BeatAction.New(joe, new List<BeatAction.Action>()
{
new BeatAction.Action(startBeat + 2f, delegate {
@ -750,7 +764,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
KarateMan.instance.Nori.DoNG();
}
else {
else
{
if (KarateMan.instance.IsNoriActive)
{
if (ItemNeedNori() && KarateMan.instance.NoriPerformance < 0.6f)
@ -774,21 +789,23 @@ namespace HeavenStudio.Games.Scripts_KarateMan
}
public void ItemWrongAction(PlayerActionEvent caller, float state)
{
{
if (GameManager.instance.currentGame != "karateman") return;
if (!KarateMan.IsComboEnable) return;
//hitting a normal object with the alt input
//WHEN SCORING THIS IS A MISS
var joe = KarateMan.instance.Joe;
joe.ForceFailCombo(Conductor.instance.songPositionInBeatsAsDouble);
if (state <= -1f || state >= 1f) {
if (state <= -1f || state >= 1f)
{
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
CurrentCurve = ItemCurves[6];
curveTargetBeat = 1f;
SoundByte.PlayOneShot("miss");
status = FlyStatus.NG;
}
else {
else
{
ItemHitEffect();
}
@ -804,7 +821,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
KarateMan.instance.Nori.DoThrough();
}
public void ItemOut(PlayerActionEvent caller) {}
public void ItemOut(PlayerActionEvent caller) { }
public void ItemThrough(PlayerActionEvent caller)
{
@ -813,7 +830,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
if (status != FlyStatus.Fly || gameObject == null) return;
BeatAction.New(joe, new List<BeatAction.Action>()
{
new BeatAction.Action(startBeat + 2f, delegate {
new BeatAction.Action(startBeat + 2f, delegate {
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Surprise);
SoundByte.PlayOneShotGame("karateman/karate_through", forcePlay: true);
}),
@ -841,7 +858,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
joe.Punch(1);
joe.SetComboId(comboId);
joe.SetShouldComboId(comboId);
if (state <= -1f || state >= 1f) {
if (state <= -1f || state >= 1f)
{
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
CurrentCurve = ItemCurves[6];
curveTargetBeat = 1f;
@ -850,14 +868,15 @@ namespace HeavenStudio.Games.Scripts_KarateMan
KarateMan.instance.Nori.DoNG();
}
else {
else
{
ItemHitEffect();
KarateMan.instance.Nori.DoHit();
}
}
}
public void ComboStartOut(PlayerActionEvent caller) {}
public void ComboStartThrough(PlayerActionEvent caller)
public void ComboStartOut(PlayerActionEvent caller) { }
public void ComboStartThrough(PlayerActionEvent caller)
{
var joe = KarateMan.instance.Joe;
if (GameManager.instance.currentGame != "karateman") return;
@ -879,20 +898,22 @@ namespace HeavenStudio.Games.Scripts_KarateMan
}
public void ComboStartWrongAction(PlayerActionEvent caller, float state)
{
{
if (GameManager.instance.currentGame != "karateman") return;
//hitting a combo start with the normal input
//WHEN SCORING THIS IS A MISS
var joe = KarateMan.instance.Joe;
bool straight = joe.Punch(ItemPunchHand());
if (state <= -1f || state >= 1f) {
if (state <= -1f || state >= 1f)
{
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
CurrentCurve = ItemCurves[6];
curveTargetBeat = 1f;
SoundByte.PlayOneShot("miss");
status = FlyStatus.NG;
}
else {
else
{
ItemHitEffect(straight);
}
KarateMan.instance.Nori.DoThrough();
@ -912,7 +933,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
joe.SetComboId(-1);
joe.SetShouldComboId(-1);
joe.ComboSequence(3);
if (state <= -1f || state >= 1f) {
if (state <= -1f || state >= 1f)
{
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
CurrentCurve = ItemCurves[5];
curveTargetBeat = 1f;
@ -931,14 +953,16 @@ namespace HeavenStudio.Games.Scripts_KarateMan
KarateMan.instance.Nori.DoNG();
}
else {
else
{
DoHitExpression(startBeat + 1.5f);
ItemHitEffect();
KarateMan.instance.Nori.DoHit();
}
}
public void ComboEndOut(PlayerActionEvent caller) {
public void ComboEndOut(PlayerActionEvent caller)
{
if (GameManager.instance.currentGame != "karateman") return;
var joe = KarateMan.instance.Joe;
if (status == FlyStatus.Fly && joe.inCombo && joe.GetComboId() == comboId && joe.comboWaiting)
@ -952,7 +976,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
OnHit.CanHit(false);
}
public void ComboEndThrough(PlayerActionEvent caller)
public void ComboEndThrough(PlayerActionEvent caller)
{
if (GameManager.instance.currentGame != "karateman") return;
if (status != FlyStatus.Fly || gameObject == null) return;
@ -961,7 +985,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
{
BeatAction.New(joe, new List<BeatAction.Action>()
{
new BeatAction.Action(startBeat + 2f, delegate {
new BeatAction.Action(startBeat + 2f, delegate {
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Surprise);
}),
new BeatAction.Action(startBeat + 5f, delegate {
@ -972,19 +996,19 @@ namespace HeavenStudio.Games.Scripts_KarateMan
}
else
{
joe.SetFaceExpression((int) KarateMan.KarateManFaces.VerySad);
joe.SetFaceExpression((int)KarateMan.KarateManFaces.VerySad);
BeatAction.New(joe, new List<BeatAction.Action>()
{
new BeatAction.Action(startBeat + 1.5f, delegate {
new BeatAction.Action(startBeat + 1.5f, delegate {
joe.inCombo = false;
joe.SetComboId(-1);
joe.SetShouldComboId(-1);
joe.ComboSequence(4);
}),
new BeatAction.Action(startBeat + 2f, delegate {
new BeatAction.Action(startBeat + 2f, delegate {
joe.SetFaceExpression((int) KarateMan.KarateManFaces.VerySad);
}),
new BeatAction.Action(startBeat + 5f, delegate {
new BeatAction.Action(startBeat + 5f, delegate {
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Normal);
})
});
@ -999,14 +1023,15 @@ namespace HeavenStudio.Games.Scripts_KarateMan
var joe = KarateMan.instance.Joe;
joe.Punch(ItemPunchHand());
if (state <= -1f || state >= 1f) {
if (state <= -1f || state >= 1f)
{
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
CurrentCurve = ItemCurves[6];
curveTargetBeat = 1f;
SoundByte.PlayOneShot("miss");
status = FlyStatus.NG;
joe.SetFaceExpression((int) KarateMan.KarateManFaces.Sad);
joe.SetFaceExpression((int)KarateMan.KarateManFaces.Sad);
BeatAction.New(joe, new List<BeatAction.Action>()
{
new BeatAction.Action(startBeat + 2f, delegate {
@ -1015,7 +1040,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
});
KarateMan.instance.Nori.DoNG();
}
else {
else
{
joe.StartKickCharge(startBeat + 1.25f);
ItemHitEffect();
status = FlyStatus.Hit;
@ -1023,7 +1049,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
}
}
public void KickChargeOut(PlayerActionEvent caller) {}
public void KickChargeOut(PlayerActionEvent caller) { }
public void KickChargeThrough(PlayerActionEvent caller)
{
@ -1058,7 +1084,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
var joe = KarateMan.instance.Joe;
joe.Kick(Conductor.instance.songPositionInBeatsAsDouble);
if (state <= -1f || state >= 1f) {
if (state <= -1f || state >= 1f)
{
startBeat = Conductor.instance.songPositionInBeatsAsDouble;
CurrentCurve = ItemCurves[8];
curveTargetBeat = 1f;
@ -1079,7 +1106,8 @@ namespace HeavenStudio.Games.Scripts_KarateMan
if (type == ItemType.KickBomb)
joe.RemoveBombGlow(startBeat + 0.75f);
}
else {
else
{
DoHitExpression(startBeat + 2f);
ItemHitEffect();
status = FlyStatus.Hit;
@ -1090,7 +1118,7 @@ namespace HeavenStudio.Games.Scripts_KarateMan
}
}
public void KickOut(PlayerActionEvent caller) {}
public void KickOut(PlayerActionEvent caller) { }
public void KickThrough(PlayerActionEvent caller)
{
@ -1098,10 +1126,10 @@ namespace HeavenStudio.Games.Scripts_KarateMan
if (status != FlyStatus.Fly || gameObject == null) return;
BeatAction.New(KarateMan.instance.Joe, new List<BeatAction.Action>()
{
new BeatAction.Action(startBeat + 2f, delegate {
new BeatAction.Action(startBeat + 2f, delegate {
KarateMan.instance.Joe.SetFaceExpression((int) KarateMan.KarateManFaces.VerySad);
}),
new BeatAction.Action(startBeat + 4f, delegate {
new BeatAction.Action(startBeat + 4f, delegate {
KarateMan.instance.Joe.SetFaceExpression((int) KarateMan.KarateManFaces.Normal);
})
});

View file

@ -111,8 +111,8 @@ namespace HeavenStudio.Games
public static Kitties instance;
const int IAAltDownCat = 4;
const int IAAltUpCat = 5;
const int IAAltDownCat = IAMAXCAT;
const int IAAltUpCat = IAMAXCAT + 1;
protected static bool IA_PadAltPress(out double dt)
{

View file

@ -237,9 +237,9 @@ namespace HeavenStudio.Games
Custom,
}
const int IAAltDownCat = 4;
const int IALeft = 5;
const int IARight = 6;
const int IAAltDownCat = IAMAXCAT;
const int IALeft = IAMAXCAT + 1;
const int IARight = IAMAXCAT + 2;
protected static bool IA_PadLeft(out double dt)
{
return PlayerInput.GetPadDown(InputController.ActionsPad.Left, out dt);

View file

@ -11,30 +11,17 @@ namespace HeavenStudio.Games
{
public class Minigame : MonoBehaviour
{
public static double ngEarlyTime = 0.075f, justEarlyTime = 0.06f, aceEarlyTime = 0.01f, aceLateTime = 0.01f, justLateTime = 0.06f, ngLateTime = 0.075f;
public static double ngEarlyTime = 0.085f, justEarlyTime = 0.06f, aceEarlyTime = 0.01f, aceLateTime = 0.01f, justLateTime = 0.06f, ngLateTime = 0.085f;
public static float rankHiThreshold = 0.8f, rankOkThreshold = 0.6f;
[SerializeField] public SoundSequence.SequenceKeyValue[] SoundSequences;
public List<Minigame.Eligible> EligibleHits = new List<Minigame.Eligible>();
[System.Serializable]
public class Eligible
{
public GameObject gameObject;
public bool early;
public bool perfect;
public bool late;
public bool notPerfect() { return early || late; }
public bool eligible() { return early || perfect || late; }
public float createBeat;
}
#region Premade Input Actions
protected const int IAEmptyCat = -1;
protected const int IAPressCat = 0;
protected const int IAReleaseCat = 1;
protected const int IAPressingCat = 2;
protected const int IAFlickCat = 3;
protected const int IAMAXCAT = 4;
protected static bool IA_Empty(out double dt)
{
@ -266,6 +253,7 @@ namespace HeavenStudio.Games
//Get the scheduled input that should happen the **Soonest**
//Can return null if there's no scheduled inputs
// remark: need a check for specific button(s)
[Obsolete("Use GetClosestScheduledInput InputAction or InputAction category instead")]
public PlayerActionEvent GetClosestScheduledInput(InputType input = InputType.ANY)
{
PlayerActionEvent closest = null;
@ -339,6 +327,7 @@ namespace HeavenStudio.Games
//Hasn't been tested yet. *Should* work.
//Can be used to detect if the user is expected to input something now or not
//Useful for strict call and responses games like Tambourine
[Obsolete("Use IsExpectingInputNow InputAction or InputAction category instead")]
public bool IsExpectingInputNow(InputType wantInput = InputType.ANY)
{
PlayerActionEvent input = GetClosestScheduledInput(wantInput);
@ -423,24 +412,6 @@ namespace HeavenStudio.Games
}
}
public int MultipleEventsAtOnce()
{
int sameTime = 0;
for (int i = 0; i < EligibleHits.Count; i++)
{
float createBeat = EligibleHits[i].createBeat;
if (EligibleHits.FindAll(c => c.createBeat == createBeat).Count > 0)
{
sameTime += 1;
}
}
if (sameTime == 0 && EligibleHits.Count > 0)
sameTime = 1;
return sameTime;
}
public static MultiSound PlaySoundSequence(string game, string name, double startBeat, params SoundSequence.SequenceParams[] args)
{
Minigames.Minigame gameInfo = GameManager.instance.GetGameInfo(game);

View file

@ -112,8 +112,8 @@ namespace HeavenStudio.Games
NoAwake,
}
const int IAAltDownCat = 4;
const int IAAltUpCat = 5;
const int IAAltDownCat = IAMAXCAT;
const int IAAltUpCat = IAMAXCAT + 1;
protected static bool IA_PadAltPress(out double dt)
{

View file

@ -28,7 +28,7 @@ namespace HeavenStudio.Games
public double timer;
public bool isEligible = true;
public bool canHit = true; //Indicates if you can still hit the cue or not. If set to false, it'll guarantee a miss
public bool canHit = true; //Indicates if you can still hit the cue or not. If set to false, it'll guarantee a miss
public bool enabled = true; //Indicates if the PlayerActionEvent is enabled. If set to false, it'll not trigger any events and destroy itself AFTER it's not relevant anymore
public bool triggersAutoplay = true;
bool lockedByEvent = false;
@ -41,11 +41,11 @@ namespace HeavenStudio.Games
public InputType inputType; //The type of input. Check the InputType class to see a list of all of them
public bool perfectOnly = false; //Indicates that the input only recognize perfect inputs.
public bool countsForAccuracy = true; //Indicates if the input counts for the accuracy or not. If set to false, it'll not be counted in the accuracy calculation
public void setHitCallback(ActionEventCallbackState OnHit)
{
{
this.OnHit = OnHit;
}
@ -59,7 +59,7 @@ namespace HeavenStudio.Games
this.IsHittable = IsHittable;
}
public void Enable() { enabled = true; }
public void Enable() { enabled = true; }
public void Disable() { enabled = false; }
public void QueueDeletion() { markForDeletion = true; }
@ -104,7 +104,7 @@ namespace HeavenStudio.Games
public void Update()
{
if (markForDeletion) CleanUp();
if(!Conductor.instance.NotStopped()) CleanUp(); // If the song is stopped entirely in the editor, destroy itself as we don't want duplicates
if (!Conductor.instance.NotStopped()) CleanUp(); // If the song is stopped entirely in the editor, destroy itself as we don't want duplicates
if (noAutoplay && autoplayOnly) autoplayOnly = false;
if (noAutoplay && triggersAutoplay) triggersAutoplay = false;
@ -128,7 +128,7 @@ namespace HeavenStudio.Games
{
return;
}
if (!autoplayOnly && (IsHittable == null || IsHittable != null && IsHittable()) && IsCorrectInput(out double dt))
{
normalizedTime -= dt;
@ -148,8 +148,10 @@ namespace HeavenStudio.Games
}
}
public void LateUpdate() {
if (markForDeletion) {
public void LateUpdate()
{
if (markForDeletion)
{
allEvents.Remove(this);
OnDestroy(this);
Destroy(this.gameObject);
@ -162,7 +164,7 @@ namespace HeavenStudio.Games
private bool CheckEventLock()
{
foreach(PlayerActionEvent toCompare in allEvents)
foreach (PlayerActionEvent toCompare in allEvents)
{
if (toCompare == this) continue;
if (toCompare.autoplayOnly) continue;
@ -185,7 +187,7 @@ namespace HeavenStudio.Games
// compare distance between current time and the events
// events that happen at the exact same time with the exact same inputs will return true
if (Math.Abs(t1 - songPos) > Math.Abs(t2 - songPos))
if (Math.Abs(t1 - songPos) > Math.Abs(t2 - songPos))
return false;
else if (t1 != t2) // if they are the same time, we don't want to lock the event
toCompare.lockedByEvent = true;
@ -195,7 +197,7 @@ namespace HeavenStudio.Games
private void AutoplayInput(double normalizedTime, bool autoPlay = false)
{
if (triggersAutoplay && (GameManager.instance.autoplay || autoPlay) && GameManager.instance.canInput && normalizedTime >= 1f - (Time.deltaTime*0.5f))
if (triggersAutoplay && (GameManager.instance.autoplay || autoPlay) && GameManager.instance.canInput && normalizedTime >= 1f - (Time.deltaTime * 0.5f))
{
AutoplayEvent();
if (!autoPlay)
@ -252,7 +254,7 @@ namespace HeavenStudio.Games
}
//The state parameter is either -1 -> Early, 0 -> Perfect, 1 -> Late
public void Hit(double state, double time)
public void Hit(double state, double time)
{
if (OnHit != null && enabled)
{
@ -262,7 +264,7 @@ namespace HeavenStudio.Games
int offset = Mathf.CeilToInt((float)normalized * 1000);
GameManager.instance.AvgInputOffset = offset;
state = System.Math.Max(-1.0, System.Math.Min(1.0, state));
OnHit(this, (float) state);
OnHit(this, (float)state);
CleanUp();
if (countsForAccuracy && !(noAutoplay || autoplayOnly) && isEligible)
@ -278,9 +280,10 @@ namespace HeavenStudio.Games
GoForAPerfect.instance.Hit();
}
}
} else
}
else
{
Blank();
Blank();
}
}
}
@ -348,7 +351,7 @@ namespace HeavenStudio.Games
public void Blank()
{
if(OnBlank != null && enabled && !autoplayOnly)
if (OnBlank != null && enabled && !autoplayOnly)
{
OnBlank(this);
}

View file

@ -5,6 +5,7 @@ using UnityEngine;
using DG.Tweening;
using HeavenStudio.Util;
using HeavenStudio.InputSystem;
namespace HeavenStudio.Games.Scripts_RhythmRally
{
@ -25,12 +26,25 @@ namespace HeavenStudio.Games.Scripts_RhythmRally
void Update()
{
if (!game.served || game.missed || !game.started) return;
if (PlayerInput.Pressed() && !game.IsExpectingInputNow(InputType.STANDARD_DOWN))
if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch && !GameManager.instance.autoplay)
{
if (PlayerInput.GetIsAction(RhythmRally.InputAction_BasicPress))
{
playerAnim.Play("Ready1");
}
if (PlayerInput.GetIsAction(RhythmRally.InputAction_BasicRelease))
{
playerAnim.Play("UnReady1");
}
}
else
{
if (!game.served || game.missed || !game.started) return;
}
if (PlayerInput.GetIsAction(RhythmRally.InputAction_FlickPress) && !game.IsExpectingInputNow(RhythmRally.InputAction_FlickPress))
{
// Play "whoosh" sound here
playerAnim.DoScaledAnimationAsync("Swing", 0.5f); ;
playerAnim.DoScaledAnimationAsync("Swing", 0.5f);
}
}
@ -104,18 +118,19 @@ namespace HeavenStudio.Games.Scripts_RhythmRally
public void Just(PlayerActionEvent caller, float state)
{
if (state >= 1f || state <= -1f) {
if (state >= 1f || state <= -1f)
{
NearMiss(state);
return;
return;
}
Ace();
}
public void Miss(PlayerActionEvent caller)
public void Miss(PlayerActionEvent caller)
{
MissBall();
}
public void Out(PlayerActionEvent caller) {}
public void Out(PlayerActionEvent caller) { }
}
}

View file

@ -5,13 +5,15 @@ using NaughtyBezierCurves;
using DG.Tweening;
using HeavenStudio.Util;
using HeavenStudio.InputSystem;
namespace HeavenStudio.Games.Loaders
{
using static Minigames;
public static class NtrPingpongLoader
{
public static Minigame AddGame(EventCaller eventCaller) {
public static Minigame AddGame(EventCaller eventCaller)
{
return new Minigame("rhythmRally", "Rhythm Rally", "ffffff", false, false, new List<GameAction>()
{
new GameAction("bop", "Bop")
@ -99,9 +101,9 @@ namespace HeavenStudio.Games.Loaders
}
},
},
new List<string>() {"ntr", "keep"},
new List<string>() { "ntr", "keep" },
"ntrpingpong", "en",
new List<string>() {}
new List<string>() { }
);
}
}
@ -152,7 +154,7 @@ namespace HeavenStudio.Games
public GameEvent bop = new GameEvent();
private bool goBop = true;
public static RhythmRally instance;
private void Awake()
@ -170,7 +172,7 @@ namespace HeavenStudio.Games
{
var cond = Conductor.instance;
var currentBeat = cond.songPositionInBeatsAsDouble;
var hitBeat = serveBeat; // Beat when the last paddler hit the ball
var beatDur1 = 1f; // From paddle to table
var beatDur2 = 1f; // From table to other paddle
@ -314,8 +316,11 @@ namespace HeavenStudio.Games
{
if (served)
{
if ((playerState.IsName("Swing") && playerAnim.IsAnimationNotPlaying()) || (!playerState.IsName("Swing") && !playerState.IsName("Ready1")))
playerAnim.Play("Ready1");
if (PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch || GameManager.instance.autoplay)
{
if ((playerState.IsName("Swing") && playerAnim.IsAnimationNotPlaying()) || (!playerState.IsName("Swing") && !playerState.IsName("Ready1")))
playerAnim.Play("Ready1");
}
}
else if (!opponentServing)
{
@ -334,7 +339,7 @@ namespace HeavenStudio.Games
Toss(hitBeat + beatDur1, beatDur2, tossHeight);
}
}
// If player never swung and is still in ready state, snap them out of it.
if (missed && playerState.IsName("Ready1"))
playerAnim.Play("Beat");
@ -412,7 +417,7 @@ namespace HeavenStudio.Games
started = true;
opponentServing = true;
tossing = false;
serveBeat = beat;
rallySpeed = speed;
@ -439,7 +444,7 @@ namespace HeavenStudio.Games
MultiSound.Play(new MultiSound.Sound[] { new MultiSound.Sound("rhythmRally/Serve", serveBeat), new MultiSound.Sound("rhythmRally/ServeBounce", bounceBeat) });
paddlers.BounceFX(bounceBeat);
ScheduleInput(serveBeat, targetBeat, InputType.STANDARD_DOWN, paddlers.Just, paddlers.Miss, paddlers.Out);
ScheduleInput(serveBeat, targetBeat, InputAction_FlickPress, paddlers.Just, paddlers.Miss, paddlers.Out);
}
public void Toss(double beat, float length, float height, bool firstToss = false)
@ -448,7 +453,7 @@ namespace HeavenStudio.Games
ballTrail.gameObject.SetActive(false);
if (firstToss)
height *= length/2f;
height *= length / 2f;
tossCurve.transform.localScale = new Vector3(1f, height, 1f);
tossBeat = beat;
@ -521,7 +526,7 @@ namespace HeavenStudio.Games
{
List<MultiSound.Sound> soundsToPlay = new List<MultiSound.Sound>();
bool tink = false;
for (float i = 0; i < length; i += 0.5f)
for (float i = 0; i < length; i += 0.5f)
{
soundsToPlay.Add(new MultiSound.Sound(tink ? "rhythmRally/Tink" : "rhythmRally/Tonk", beat + i));
tink = !tink;
@ -536,7 +541,7 @@ namespace HeavenStudio.Games
for (int i = 0; i < length; i += 2)
{
double beatToSpawn = beat + i;
servesToPerform.Add( new BeatAction.Action(beatToSpawn, delegate { Serve(beatToSpawn, RallySpeed.SuperFast); }) );
servesToPerform.Add(new BeatAction.Action(beatToSpawn, delegate { Serve(beatToSpawn, RallySpeed.SuperFast); }));
}
BeatAction.New(this, servesToPerform);
}

View file

@ -163,7 +163,7 @@ namespace HeavenStudio.Games
public static Ringside instance;
const int IAAltDownCat = 4;
const int IAAltDownCat = IAMAXCAT;
protected static bool IA_PadAltPress(out double dt)
{

View file

@ -117,7 +117,7 @@ namespace HeavenStudio.Games.Loaders
e["pS1"],
e["pS2"],
e["pS3"],
e["pS4"],
e["pS4"],
}, e["moveCamera"]
); },
defaultLength = 11,
@ -190,8 +190,8 @@ namespace HeavenStudio.Games.Loaders
{
new Param("count", Rockers.CountIn.One, "Count", "Which voiceline?")
},
preFunction = delegate
{
preFunction = delegate
{
var e = eventCaller.currentEntity;
float offSet = 0;
switch (e["count"])
@ -207,7 +207,7 @@ namespace HeavenStudio.Games.Loaders
offSet = 0.034f;
break;
}
SoundByte.PlayOneShot($"games/rockers/count/{e["count"]}", e.beat, 1, 1, false, null, offSet);
SoundByte.PlayOneShot($"games/rockers/count/{e["count"]}", e.beat, 1, 1, false, null, offSet);
}
},
new GameAction("voiceLine", "Together Voice Line")
@ -223,7 +223,7 @@ namespace HeavenStudio.Games.Loaders
},
new GameAction("prepareTogether", "Custom Together Prepare")
{
function = delegate { var e = eventCaller.currentEntity; Rockers.instance.TogetherPrepare(e.beat, e["cmon"] == (int)Rockers.VoiceLineSelection.Cmon, e["cmon"] == (int)Rockers.VoiceLineSelection.None,
function = delegate { var e = eventCaller.currentEntity; Rockers.instance.TogetherPrepare(e.beat, e["cmon"] == (int)Rockers.VoiceLineSelection.Cmon, e["cmon"] == (int)Rockers.VoiceLineSelection.None,
e["muteBeat"], e["middleBeat"], e["moveCamera"]); },
defaultLength = 3f,
parameters = new List<Param>()
@ -564,8 +564,8 @@ namespace HeavenStudio.Games
{
var cond = Conductor.instance;
if (cond.isPlaying && !cond.isPaused)
{
if (cond.isPlaying && !cond.isPaused)
{
if (PlayerInput.Pressed())
{
Soshi.Mute();
@ -768,7 +768,7 @@ namespace HeavenStudio.Games
var e = togetherEvents[i];
if (togetherEvents[i].datamodel == "rockers/riffTogether")
{
actions.Add(new BeatAction.Action(e.beat, delegate
actions.Add(new BeatAction.Action(e.beat, delegate
{
JJ.StrumStrings(e["gcJJ"], new int[6]
{
@ -778,7 +778,7 @@ namespace HeavenStudio.Games
e["4JJ"],
e["5JJ"],
e["6JJ"],
}, (PremadeSamples)e["sampleJJ"], e["pitchSampleJJ"]);
}, (PremadeSamples)e["sampleJJ"], e["pitchSampleJJ"]);
}));
actions.Add(new BeatAction.Action(e.beat + e.length, delegate { JJ.Mute(); }));
RockersInput riffComp = Instantiate(rockerInputRef, transform);
@ -845,8 +845,8 @@ namespace HeavenStudio.Games
List<RiqEntity> relevantInputs = GrabAllInputsBetween(beat, beat + length);
List<double> riffUsedBeats = new List<double>();
List<double> bendUsedBeats = new();
foreach (var input in relevantInputs)
{
foreach (var input in relevantInputs)
{
if (input.datamodel == "rockers/riff")
{
RiqEntity foundEvent = riffEvents.Find(x => x.beat == input.beat);
@ -1036,8 +1036,8 @@ namespace HeavenStudio.Games
}
}
}),
new BeatAction.Action(beat, delegate
{
new BeatAction.Action(beat, delegate
{
JJ.UnHold();
})
});
@ -1047,7 +1047,7 @@ namespace HeavenStudio.Games
private void JustMute(PlayerActionEvent caller, float state)
{
Soshi.Mute();
}
}
private void MuteMiss(PlayerActionEvent caller)
{

View file

@ -132,8 +132,8 @@ namespace HeavenStudio.Games
public GameEvent bop = new GameEvent();
const int IAAltDownCat = 4;
const int IAAltUpCat = 5;
const int IAAltDownCat = IAMAXCAT;
const int IAAltUpCat = IAMAXCAT + 1;
protected static bool IA_PadAltPress(out double dt)
{

View file

@ -1,4 +1,5 @@
using HeavenStudio.Util;
using HeavenStudio.InputSystem;
using System;
using System.Collections.Generic;
using UnityEngine;
@ -83,6 +84,7 @@ namespace HeavenStudio.Games
[SerializeField] GameObject slowTree;
private bool hasArrowLoaded;
private bool hasArrowDrawn;
float movingLength;
double movingStartBeat;
bool isMoving;
@ -133,9 +135,23 @@ namespace HeavenStudio.Games
var cond = Conductor.instance;
if (cond.isPlaying && !cond.isPaused)
{
if (PlayerInput.GetIsAction(InputAction_FlickPress, out _) && !IsExpectingInputNow(InputAction_FlickPress.inputLockCategory) && hasArrowLoaded)
if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch)
{
if (PlayerInput.GetIsAction(InputAction_BasicPress) && hasArrowLoaded && !hasArrowDrawn)
{
hasArrowDrawn = true;
bowAnim.DoScaledAnimationAsync("BowDraw", 0.25f);
}
if (PlayerInput.GetIsAction(InputAction_BasicRelease) && hasArrowLoaded && hasArrowDrawn)
{
hasArrowDrawn = false;
bowAnim.DoScaledAnimationAsync("BowRelease", 0.5f);
}
}
if (PlayerInput.GetIsAction(InputAction_FlickPress) && !IsExpectingInputNow(InputAction_FlickPress) && hasArrowLoaded)
{
WhiffArrow(cond.songPositionInBeatsAsDouble);
hasArrowDrawn = false;
}
if (isMoving)
{
@ -158,8 +174,16 @@ namespace HeavenStudio.Games
public void ForceReload()
{
if (hasArrowLoaded) return;
bowAnim.DoScaledAnimationAsync("BowDraw", 0.25f);
if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch && !GameManager.instance.autoplay)
{
bowAnim.DoScaledAnimationAsync("BowIdle", 1f);
}
else
{
bowAnim.DoScaledAnimationAsync("BowDraw", 0.25f);
}
hasArrowLoaded = true;
hasArrowDrawn = false;
}
public void MoveBow(double beat, float length, bool enter, int ease)
@ -195,10 +219,20 @@ namespace HeavenStudio.Games
{
ScheduleInput(beat, length * 7, InputAction_FlickPress, JustNoSlowDown, Miss, Out);
}
BeatAction.New(instance, new List<BeatAction.Action>()
if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch && !GameManager.instance.autoplay)
{
new BeatAction.Action(beat + length * 3, delegate { ForceReload(); })
});
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beat, delegate { ForceReload(); })
});
}
else
{
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + length * 3, delegate { ForceReload(); })
});
}
List<BeatAction.Action> ghostSpawns = new List<BeatAction.Action>();
for(int i = 0; i < 7; i++)

View file

@ -3,6 +3,7 @@ using System;
using System.Collections.Generic;
using UnityEngine;
using HeavenStudio.Common;
using HeavenStudio.InputSystem;
namespace HeavenStudio.Games.Loaders
{
@ -164,6 +165,61 @@ namespace HeavenStudio.Games
public static SpaceDance instance;
const int IA_TurnPress = IAMAXCAT;
const int IA_DownPress = IAMAXCAT + 1;
const int IA_PunchPress = IAMAXCAT + 2;
protected static bool IA_PadTurnPress(out double dt)
{
return PlayerInput.GetPadDown(InputController.ActionsPad.Right, out dt);
}
protected static bool IA_BatonTurnPress(out double dt)
{
return PlayerInput.GetBatonDown(InputController.ActionsBaton.East, out dt)
&& !instance.IsExpectingInputNow(InputAction_Punch);
}
protected static bool IA_TouchTurnPress(out double dt)
{
return PlayerInput.GetTouchDown(InputController.ActionsTouch.Tap, out dt)
&& !(instance.IsExpectingInputNow(InputAction_Down) || instance.IsExpectingInputNow(InputAction_Punch));
}
protected static bool IA_PadDownPress(out double dt)
{
return PlayerInput.GetPadDown(InputController.ActionsPad.Down, out dt);
}
protected static bool IA_BatonDownPress(out double dt)
{
return PlayerInput.GetBatonDown(InputController.ActionsBaton.South, out dt)
&& !instance.IsExpectingInputNow(InputAction_Punch);
}
protected static bool IA_TouchDownPress(out double dt)
{
return PlayerInput.GetTouchDown(InputController.ActionsTouch.Tap, out dt)
&& instance.IsExpectingInputNow(InputAction_Down);
}
protected static bool IA_BatonPunchPress(out double dt)
{
return PlayerInput.GetBatonDown(InputController.ActionsBaton.Face, out dt)
&& instance.IsExpectingInputNow(InputAction_Punch);
}
protected static bool IA_TouchPunchPress(out double dt)
{
return PlayerInput.GetTouchDown(InputController.ActionsTouch.Tap, out dt)
&& instance.IsExpectingInputNow(InputAction_Punch);
}
public static PlayerInput.InputAction InputAction_Turn =
new("AgbSpaceDanceTurn", new int[] { IA_TurnPress, IA_TurnPress, IA_TurnPress },
IA_PadTurnPress, IA_TouchTurnPress, IA_BatonTurnPress);
public static PlayerInput.InputAction InputAction_Down =
new("AgbSpaceDanceDown", new int[] { IA_DownPress, IA_DownPress, IA_DownPress },
IA_PadDownPress, IA_TouchDownPress, IA_BatonDownPress);
public static PlayerInput.InputAction InputAction_Punch =
new("AgbSpaceDancePunch", new int[] { IA_PunchPress, IA_PunchPress, IA_PunchPress },
IA_PadBasicPress, IA_TouchPunchPress, IA_BatonPunchPress);
// Start is called before the first frame update
void Awake()
{
@ -211,21 +267,21 @@ namespace HeavenStudio.Games
}
if (!DancerP.IsPlayingAnimationName("PunchDo") && !DancerP.IsPlayingAnimationName("TurnRightDo") && !DancerP.IsPlayingAnimationName("SitDownDo"))
{
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
if (PlayerInput.GetIsAction(InputAction_Punch) && !IsExpectingInputNow(InputAction_Punch))
{
SoundByte.PlayOneShotGame("spaceDance/inputBad");
DancerP.DoScaledAnimationAsync("PunchDo", 0.5f);
Gramps.Play("GrampsOhFuck", 0, 0);
}
if (PlayerInput.GetSpecificDirectionDown(1) && !IsExpectingInputNow(InputType.DIRECTION_RIGHT_DOWN))
if (PlayerInput.GetIsAction(InputAction_Down) && !IsExpectingInputNow(InputAction_Down))
{
DancerP.DoScaledAnimationAsync("TurnRightDo", 0.5f);
DancerP.DoScaledAnimationAsync("SitDownDo", 0.5f);
SoundByte.PlayOneShotGame("spaceDance/inputBad");
Gramps.Play("GrampsOhFuck", 0, 0);
}
if (PlayerInput.GetSpecificDirectionDown(2) && !IsExpectingInputNow(InputType.DIRECTION_DOWN_DOWN))
if (PlayerInput.GetIsAction(InputAction_Turn) && !IsExpectingInputNow(InputAction_Turn))
{
DancerP.DoScaledAnimationAsync("SitDownDo", 0.5f);
DancerP.DoScaledAnimationAsync("TurnRightDo", 0.5f);
SoundByte.PlayOneShotGame("spaceDance/inputBad");
Gramps.Play("GrampsOhFuck", 0, 0);
}
@ -410,7 +466,7 @@ namespace HeavenStudio.Games
{
canBop = false;
if (grampsTurns) grampsCanBop = false;
ScheduleInput(beat, 1f, InputType.DIRECTION_RIGHT_DOWN, JustRight, RightMiss, Empty);
ScheduleInput(beat, 1f, InputAction_Turn, JustRight, RightMiss, Empty);
BeatAction.New(instance, new List<BeatAction.Action>()
{
@ -479,7 +535,7 @@ namespace HeavenStudio.Games
{
canBop = false;
if (grampsSits) grampsCanBop = false;
ScheduleInput(beat, 1f, InputType.DIRECTION_DOWN_DOWN, JustSit, SitMiss, Empty);
ScheduleInput(beat, 1f, InputAction_Down, JustSit, SitMiss, Empty);
BeatAction.New(instance, new List<BeatAction.Action>()
{
@ -554,7 +610,7 @@ namespace HeavenStudio.Games
{
canBop = false;
if (grampsPunches) grampsCanBop = false;
ScheduleInput(beat, 1.5f, InputType.STANDARD_DOWN, JustPunch, PunchMiss, Empty);
ScheduleInput(beat, 1.5f, InputAction_Punch, JustPunch, PunchMiss, Empty);
BeatAction.New(instance, new List<BeatAction.Action>()
{

View file

@ -121,10 +121,6 @@ namespace HeavenStudio.Games
{
for (int i = 1; i < BallsHolder.transform.childCount; i++)
Destroy(BallsHolder.transform.GetChild(i).gameObject);
GameCamera.instance.camera.orthographic = false;
if (EligibleHits.Count > 0)
EligibleHits.RemoveRange(0, EligibleHits.Count);
}
public override void OnTimeChange()

View file

@ -25,8 +25,6 @@ namespace HeavenStudio.Games.Scripts_Spaceball
#region Private
private Minigame.Eligible e = new Minigame.Eligible();
[SerializeField] private BezierCurve3D pitchLowCurve;
[SerializeField] private BezierCurve3D pitchHighCurve;
@ -43,8 +41,6 @@ namespace HeavenStudio.Games.Scripts_Spaceball
private void Awake()
{
e.gameObject = this.gameObject;
startRot = Random.Range(0, 360);
}

View file

@ -1,4 +1,5 @@
using HeavenStudio.Util;
using HeavenStudio.InputSystem;
using System;
using System.Collections.Generic;
using UnityEngine;
@ -119,6 +120,34 @@ namespace HeavenStudio.Games
public static Tambourine instance;
const int IA_AltPress = IAMAXCAT;
protected static bool IA_TouchNrmPress(out double dt)
{
return PlayerInput.GetTouchDown(InputController.ActionsTouch.Tap, out dt)
&& !instance.IsExpectingInputNow(InputAction_Alt);
}
protected static bool IA_PadAltPress(out double dt)
{
return PlayerInput.GetPadDown(InputController.ActionsPad.South, out dt);
}
protected static bool IA_BatonAltPress(out double dt)
{
return PlayerInput.GetSqueezeDown(out dt);
}
protected static bool IA_TouchAltPress(out double dt)
{
return PlayerInput.GetTouchDown(InputController.ActionsTouch.Tap, out dt)
&& instance.IsExpectingInputNow(InputAction_Alt);
}
public static PlayerInput.InputAction InputAction_Nrm =
new("RvlDrumAlt", new int[] { IAPressCat, IAPressCat, IAPressCat },
IA_PadBasicPress, IA_TouchNrmPress, IA_BatonBasicPress);
public static PlayerInput.InputAction InputAction_Alt =
new("RvlDrumAlt", new int[] { IA_AltPress, IA_AltPress, IA_AltPress },
IA_PadAltPress, IA_TouchAltPress, IA_BatonAltPress);
void Awake()
{
instance = this;
@ -144,7 +173,7 @@ namespace HeavenStudio.Games
handsAnimator.Play("Bop", 0, 0);
}
}
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
if (PlayerInput.GetIsAction(InputAction_Nrm) && !IsExpectingInputNow(InputAction_Nrm))
{
handsAnimator.Play("Shake", 0, 0);
SoundByte.PlayOneShotGame($"tambourine/player/shake/{UnityEngine.Random.Range(1, 6)}");
@ -156,7 +185,7 @@ namespace HeavenStudio.Games
sadFace.SetActive(true);
}
}
else if (PlayerInput.AltPressed() && !IsExpectingInputNow(InputType.STANDARD_ALT_DOWN))
else if (PlayerInput.GetIsAction(InputAction_Alt) && !IsExpectingInputNow(InputAction_Alt))
{
handsAnimator.Play("Smack", 0, 0);
SoundByte.PlayOneShotGame($"tambourine/player/hit/{UnityEngine.Random.Range(1, 6)}");
@ -324,8 +353,8 @@ namespace HeavenStudio.Games
double inputBeat = relevantInputs[i].beat - intervalBeat;
actions.Add(new BeatAction.Action(inputBeat, delegate
{
if (isHit) ScheduleInput(beat + length, inputBeat, InputType.STANDARD_ALT_DOWN, JustHit, Miss, Nothing);
else ScheduleInput(beat + length, inputBeat, InputType.STANDARD_DOWN, JustShake, Miss, Nothing);
if (isHit) ScheduleInput(beat + length, inputBeat, InputAction_Alt, JustHit, Miss, Nothing);
else ScheduleInput(beat + length, inputBeat, InputAction_Nrm, JustShake, Miss, Nothing);
Bop(beat + length + inputBeat, 1, (int)WhoBops.Monkey, (int)WhoBops.None);
}));
}

View file

@ -2,6 +2,7 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HeavenStudio.Util;
using HeavenStudio.InputSystem;
using Jukebox;
namespace HeavenStudio.Games.Loaders
@ -150,6 +151,86 @@ namespace HeavenStudio.Games
public GameEvent bop = new GameEvent();
float currentEventLength;
const int IAAka = IAMAXCAT;
const int IAAo = IAMAXCAT + 1;
const int IAKii = IAMAXCAT + 2;
protected static bool IA_PadDir(out double dt)
{
return PlayerInput.GetPadDown(InputController.ActionsPad.Up, out dt)
|| PlayerInput.GetPadDown(InputController.ActionsPad.Down, out dt)
|| PlayerInput.GetPadDown(InputController.ActionsPad.Left, out dt)
|| PlayerInput.GetPadDown(InputController.ActionsPad.Right, out dt);
}
protected static bool IA_PadAlt(out double dt)
{
return PlayerInput.GetPadDown(InputController.ActionsPad.South, out dt);
}
protected static bool IA_TouchNrm(out double dt)
{
return PlayerInput.GetFlick(out dt)
&& (instance.currentReceiver is WhichTossKid.Akachan
|| (instance.lastReceiver is WhichTossKid.Akachan or WhichTossKid.None
&& instance.currentReceiver is WhichTossKid.None)
|| (instance.IsExpectingInputNow(InputAction_Aka)
&& !(instance.IsExpectingInputNow(InputAction_Ao) || instance.IsExpectingInputNow(InputAction_Kii))));
}
protected static bool IA_TouchDir(out double dt)
{
return PlayerInput.GetFlick(out dt)
&& (instance.currentReceiver is WhichTossKid.Kiiyan
|| (instance.lastReceiver is WhichTossKid.Kiiyan
&& instance.currentReceiver is WhichTossKid.None)
|| (instance.IsExpectingInputNow(InputAction_Kii)
&& !(instance.IsExpectingInputNow(InputAction_Ao) || instance.IsExpectingInputNow(InputAction_Aka))));
}
protected static bool IA_TouchAlt(out double dt)
{
return PlayerInput.GetFlick(out dt)
&& (instance.currentReceiver is WhichTossKid.Aokun
|| (instance.lastReceiver is WhichTossKid.Aokun
&& instance.currentReceiver is WhichTossKid.None)
|| (instance.IsExpectingInputNow(InputAction_Ao)
&& !(instance.IsExpectingInputNow(InputAction_Aka) || instance.IsExpectingInputNow(InputAction_Kii))));
}
protected static bool IA_BatonNrm(out double dt)
{
return PlayerInput.GetBatonDown(InputController.ActionsBaton.Face, out dt)
&& (instance.currentReceiver is WhichTossKid.Akachan
|| (instance.lastReceiver is WhichTossKid.Akachan or WhichTossKid.None
&& instance.currentReceiver is WhichTossKid.None)
|| (instance.IsExpectingInputNow(InputAction_Aka)
&& !(instance.IsExpectingInputNow(InputAction_Ao) || instance.IsExpectingInputNow(InputAction_Kii))));
}
protected static bool IA_BatonDir(out double dt)
{
return PlayerInput.GetBatonDown(InputController.ActionsBaton.Face, out dt)
&& (instance.currentReceiver is WhichTossKid.Kiiyan
|| (instance.lastReceiver is WhichTossKid.Kiiyan
&& instance.currentReceiver is WhichTossKid.None)
|| (instance.IsExpectingInputNow(InputAction_Ao)
&& !(instance.IsExpectingInputNow(InputAction_Aka) || instance.IsExpectingInputNow(InputAction_Kii))));
}
protected static bool IA_BatonAlt(out double dt)
{
return PlayerInput.GetBatonDown(InputController.ActionsBaton.Face, out dt)
&& (instance.currentReceiver is WhichTossKid.Aokun
|| (instance.lastReceiver is WhichTossKid.Aokun
&& instance.currentReceiver is WhichTossKid.None));
}
public static PlayerInput.InputAction InputAction_Aka =
new("BasicPress", new int[] { IAAka, IAAka, IAAka },
IA_PadBasicPress, IA_TouchNrm, IA_BatonNrm);
public static PlayerInput.InputAction InputAction_Ao =
new("BasicPress", new int[] { IAAo, IAAo, IAAo },
IA_PadAlt, IA_TouchAlt, IA_BatonAlt);
public static PlayerInput.InputAction InputAction_Kii =
new("BasicPress", new int[] { IAKii, IAKii, IAKii },
IA_PadDir, IA_TouchDir, IA_BatonDir);
private void Awake()
{
instance = this;
@ -194,15 +275,54 @@ namespace HeavenStudio.Games
SingleBop();
}
}
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
if (PlayerInput.CurrentControlStyle == InputController.ControlStyles.Touch)
{
TossKid next = GetCurrentReceiver();
if (currentReceiver == WhichTossKid.None && lastReceiver != WhichTossKid.None)
{
next = GetReceiver(lastReceiver);
}
else if (currentReceiver == WhichTossKid.None && lastReceiver == WhichTossKid.None)
{
next = akachan;
}
if (PlayerInput.GetIsAction(InputAction_BasicPress))
{
if (currentBall != null && next != null)
{
if (currentBall.willBePopped)
{
next.PopBallPrepare();
}
else
{
next.Crouch();
}
}
else if (next != null)
{
next.Crouch();
}
}
else if (PlayerInput.GetIsAction(InputAction_BasicRelease))
{
if (next != null)
{
next.UnCrouch();
}
}
}
if (PlayerInput.GetIsAction(InputAction_Aka) && !IsExpectingInputNow(InputAction_Aka))
{
akachan.HitBall(false);
}
if (PlayerInput.AltPressed() && !IsExpectingInputNow(InputType.STANDARD_ALT_DOWN))
if (PlayerInput.GetIsAction(InputAction_Ao) && !IsExpectingInputNow(InputAction_Ao))
{
aokun.HitBall(false);
}
if (PlayerInput.GetAnyDirectionDown() && !IsExpectingInputNow(InputType.DIRECTION_DOWN))
if (PlayerInput.GetIsAction(InputAction_Kii) && !IsExpectingInputNow(InputAction_Kii))
{
kiiyan.HitBall(false);
}
@ -360,10 +480,12 @@ namespace HeavenStudio.Games
}
else if (passBallDict[beat + length].datamodel == "tossBoys/pop")
{
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + length - 1, delegate { GetCurrentReceiver().PopBallPrepare(); })
});
currentBall.willBePopped = true;
if (PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch)
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + length - 1, delegate { GetCurrentReceiver().PopBallPrepare(); })
});
}
}
else
@ -436,10 +558,12 @@ namespace HeavenStudio.Games
}
if (passBallDict.ContainsKey(beat + currentEventLength) && passBallDict[beat + currentEventLength].datamodel == "tossBoys/pop")
{
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + currentEventLength - 1, delegate { GetCurrentReceiver().PopBallPrepare(); })
});
currentBall.willBePopped = true;
if (PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch)
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + currentEventLength - 1, delegate { GetCurrentReceiver().PopBallPrepare(); })
});
}
}
@ -978,7 +1102,10 @@ namespace HeavenStudio.Games
specialKii.SetActive(false);
if (currentSpecialKid != null) currentSpecialKid.crouch = false;
currentSpecialKid = GetCurrentReceiver();
GetCurrentReceiver().Crouch();
if (PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch)
GetCurrentReceiver().Crouch();
GetSpecialBasedOnReceiver().SetActive(true);
switch (currentReceiver)
{
@ -1044,23 +1171,21 @@ namespace HeavenStudio.Games
currentReceiver = (WhichTossKid)who;
}
InputType GetInputTypeBasedOnCurrentReceiver()
PlayerInput.InputAction GetInputTypeBasedOnCurrentReceiver()
{
return GetInputBasedOnTossKid(currentReceiver);
}
InputType GetInputBasedOnTossKid(WhichTossKid tossKid)
PlayerInput.InputAction GetInputBasedOnTossKid(WhichTossKid tossKid)
{
switch (tossKid)
{
case WhichTossKid.Akachan:
return InputType.STANDARD_DOWN;
case WhichTossKid.Aokun:
return InputType.STANDARD_ALT_DOWN;
return InputAction_Ao;
case WhichTossKid.Kiiyan:
return InputType.DIRECTION_DOWN;
return InputAction_Kii;
default:
return InputType.ANY;
return InputAction_Aka;
}
}

View file

@ -40,6 +40,10 @@ namespace HeavenStudio.Games.Scripts_TossBoys
YellowKeep
}
public State BallState { get { return currentState; } }
public bool willBePopped;
private State currentState;
private double startBeat;

View file

@ -35,6 +35,8 @@ namespace HeavenStudio.Games.Scripts_TossBoys
DoAnimationScaledAsync("Whiff", 0.5f);
SoundByte.PlayOneShotGame("tossBoys/whiff");
}
crouch = false;
preparing = false;
}
public void Bop()
@ -49,6 +51,12 @@ namespace HeavenStudio.Games.Scripts_TossBoys
crouch = true;
}
public void UnCrouch()
{
DoAnimationScaledAsync("Idle", 1f);
crouch = false;
}
public void PopBall()
{
DoAnimationScaledAsync("Slap", 0.5f);

View file

@ -4,6 +4,7 @@ using System.Collections.Generic;
using UnityEngine;
using NaughtyBezierCurves;
using HeavenStudio.Util;
using HeavenStudio.InputSystem;
namespace HeavenStudio.Games.Scripts_WorkingDough
{
@ -51,8 +52,11 @@ namespace HeavenStudio.Games.Scripts_WorkingDough
barelyPath = game.GetPath("PlayerBarely");
missPath = game.GetPath("PlayerMiss");
weakPath = game.GetPath("PlayerWeak");
rightInput = game.ScheduleInput(beat, 1, isBig ? InputType.STANDARD_ALT_DOWN : InputType.STANDARD_DOWN, Just, Miss, Empty);
wrongInput = game.ScheduleUserInput(beat, 1, isBig ? InputType.STANDARD_DOWN : InputType.STANDARD_ALT_DOWN, WrongInput, Empty, Empty);
rightInput = game.ScheduleInput(beat, 1, isBig ? WorkingDough.InputAction_Alt : WorkingDough.InputAction_Nrm, Just, Miss, Empty);
if (PlayerInput.CurrentControlStyle != InputController.ControlStyles.Touch)
wrongInput = game.ScheduleUserInput(beat, 1, isBig ? WorkingDough.InputAction_Nrm : WorkingDough.InputAction_Alt, WrongInput, Empty, Empty);
currentState = State.Entering;
if (gandw != null) gandw.SetActive(hasGandw);
Update();
@ -112,7 +116,8 @@ namespace HeavenStudio.Games.Scripts_WorkingDough
private void Just(PlayerActionEvent caller, float state)
{
wrongInput.Disable();
if (wrongInput != null)
wrongInput.Disable();
double beat = Conductor.instance.songPositionInBeats;
startBeat = beat;
game.playerImpact.SetActive(true);

View file

@ -1,4 +1,5 @@
using HeavenStudio.Util;
using HeavenStudio.InputSystem;
using System;
using System.Collections.Generic;
using UnityEngine;
@ -207,6 +208,34 @@ namespace HeavenStudio.Games
public static WorkingDough instance;
const int IA_AltPress = IAMAXCAT;
protected static bool IA_TouchNrmPress(out double dt)
{
return PlayerInput.GetTouchDown(InputController.ActionsTouch.Tap, out dt)
&& !instance.IsExpectingInputNow(InputAction_Alt);
}
protected static bool IA_PadAltPress(out double dt)
{
return PlayerInput.GetPadDown(InputController.ActionsPad.South, out dt);
}
protected static bool IA_BatonAltPress(out double dt)
{
return PlayerInput.GetSqueezeDown(out dt);
}
protected static bool IA_TouchAltPress(out double dt)
{
return PlayerInput.GetTouchDown(InputController.ActionsTouch.Tap, out dt)
&& instance.IsExpectingInputNow(InputAction_Alt);
}
public static PlayerInput.InputAction InputAction_Nrm =
new("RvlDoughAlt", new int[] { IAPressCat, IAPressCat, IAPressCat },
IA_PadBasicPress, IA_TouchNrmPress, IA_BatonBasicPress);
public static PlayerInput.InputAction InputAction_Alt =
new("RvlDoughAlt", new int[] { IA_AltPress, IA_AltPress, IA_AltPress },
IA_PadAltPress, IA_TouchAltPress, IA_BatonAltPress);
void Awake()
{
instance = this;
@ -463,12 +492,12 @@ namespace HeavenStudio.Games
}
passedTurns.Clear();
}
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
if (PlayerInput.GetIsAction(InputAction_Nrm) && !IsExpectingInputNow(InputAction_Nrm))
{
doughDudesPlayer.GetComponent<Animator>().DoScaledAnimationAsync("SmallDoughJump", 0.5f);
SoundByte.PlayOneShotGame("workingDough/smallPlayer");
}
else if (PlayerInput.AltPressed() && !IsExpectingInputNow(InputType.STANDARD_ALT_DOWN))
else if (PlayerInput.GetIsAction(InputAction_Alt) && !IsExpectingInputNow(InputAction_Alt))
{
doughDudesPlayer.GetComponent<Animator>().DoScaledAnimationAsync("BigDoughJump", 0.5f);
SoundByte.PlayOneShotGame("workingDough/bigPlayer");