From 8017f10aa3538800465c3e4da178e1fc6edb9d60 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Wed, 18 Oct 2023 18:52:23 -0400 Subject: [PATCH] add touch style UI elements and effects games now support the ability to define two cursor colours if they need split screen touch inputs --- Assets/Plugins/Starpelly/Colors.cs | 3 +- .../SettingsMenu/ControllerSetup.prefab | 114 +++++++++-- .../Prefabs/GameView/CamerasEditor.prefab | 191 ++++++++++++++++++ .../Resources/Prefabs/GameView/Cursor.prefab | 113 +++++++++++ .../UI/Common/Controllers/controllerSheet.png | Bin 444574 -> 476032 bytes .../Controllers/controllerSheet.png.meta | 22 ++ Assets/Scripts/CircleCursor.cs | 89 ++++++++ Assets/Scripts/GameManager.cs | 20 +- Assets/Scripts/Games/BlueBear/BlueBear.cs | 2 +- Assets/Scripts/Games/CatchyTune/CatchyTune.cs | 2 +- .../Games/MarchingOrders/MarchingOrders.cs | 2 +- Assets/Scripts/Games/Minigame.cs | 5 + .../Games/TramAndPauline/TramAndPauline.cs | 2 +- .../ControllerTypes/InputJoyshock.cs | 5 + .../ControllerTypes/InputKeyboard.cs | 5 + .../InputSystem/ControllerTypes/InputMouse.cs | 5 + Assets/Scripts/InputSystem/InputController.cs | 1 + Assets/Scripts/Minigames.cs | 25 ++- Assets/Shaders/Invert.mat | 8 +- 19 files changed, 583 insertions(+), 31 deletions(-) diff --git a/Assets/Plugins/Starpelly/Colors.cs b/Assets/Plugins/Starpelly/Colors.cs index 82363aea2..14af99a88 100644 --- a/Assets/Plugins/Starpelly/Colors.cs +++ b/Assets/Plugins/Starpelly/Colors.cs @@ -16,6 +16,7 @@ namespace Starpelly /// public static Color Hex2RGB(this string hex) { + if (hex is null or "") return Color.black; try { hex = hex.Replace("0x", "");//in case the string is formatted 0xFFFFFF @@ -25,7 +26,7 @@ namespace Starpelly byte g = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber); byte b = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber); //Only use alpha if the string has enough characters - if (hex.Length == 8) + if (hex.Length >= 8) { a = byte.Parse(hex.Substring(6, 2), System.Globalization.NumberStyles.HexNumber); } diff --git a/Assets/Resources/Prefabs/Editor/SettingsMenu/ControllerSetup.prefab b/Assets/Resources/Prefabs/Editor/SettingsMenu/ControllerSetup.prefab index 5ebbabcbd..26e4f81b3 100644 --- a/Assets/Resources/Prefabs/Editor/SettingsMenu/ControllerSetup.prefab +++ b/Assets/Resources/Prefabs/Editor/SettingsMenu/ControllerSetup.prefab @@ -2090,6 +2090,7 @@ RectTransform: - {fileID: 3918594455571216808} - {fileID: 3918594456177472909} - {fileID: 3918594455700716071} + - {fileID: 8475765577213823739} m_Father: {fileID: 9026175551012134334} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -3402,6 +3403,82 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 +--- !u!1 &3902585457234082832 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8475765577213823739} + - component: {fileID: 4444702116040102111} + - component: {fileID: 888764958146106342} + m_Layer: 5 + m_Name: Mouse + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8475765577213823739 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3902585457234082832} + 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: 4793950890431788211} + m_RootOrder: 7 + 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 &4444702116040102111 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3902585457234082832} + m_CullTransparentMesh: 1 +--- !u!114 &888764958146106342 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3902585457234082832} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 55b3a6672a0ec294d8f3edb9c1f94b36, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: -974588141, guid: d44d97eed2a444b41be17f9737b43b5f, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &3918594454379110542 GameObject: m_ObjectHideFlags: 0 @@ -3437,11 +3514,11 @@ RectTransform: m_Father: {fileID: 3918594454557351925} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -229.1, y: -25} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 330, y: -0.0000000019699655} m_SizeDelta: {x: 50, y: 50} - m_Pivot: {x: 0.5, y: 0} + m_Pivot: {x: 0, y: 0.5} --- !u!222 &3918594454379110530 CanvasRenderer: m_ObjectHideFlags: 0 @@ -3664,8 +3741,8 @@ RectTransform: 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: -243.97882} - m_SizeDelta: {x: 1165, y: 100} + m_AnchoredPosition: {x: 754, y: -307.9788} + m_SizeDelta: {x: 1468, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &3918594454393827267 MonoBehaviour: @@ -3808,7 +3885,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -3947,7 +4024,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -4004,7 +4081,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0.000005722046, y: -0.000005722046} + m_AnchoredPosition: {x: 0, y: -0.000005722046} m_SizeDelta: {x: 50, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3918594454531700427 @@ -4246,7 +4323,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 1165, y: 64} + m_SizeDelta: {x: 0, y: 64} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3918594454557351915 CanvasRenderer: @@ -4573,7 +4650,7 @@ MonoBehaviour: m_Spacing: 0 m_ChildForceExpandWidth: 1 m_ChildForceExpandHeight: 1 - m_ChildControlWidth: 0 + m_ChildControlWidth: 1 m_ChildControlHeight: 0 m_ChildScaleWidth: 0 m_ChildScaleHeight: 1 @@ -5749,7 +5826,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -5879,6 +5956,7 @@ MonoBehaviour: - {fileID: 3918594455571216809} - {fileID: 3918594456177472910} - {fileID: 3918594455700716064} + - {fileID: 3902585457234082832} controllerMat: {fileID: 2100000, guid: 55b3a6672a0ec294d8f3edb9c1f94b36, type: 2} PadBindingsMenus: - {fileID: 7023003282004720528} @@ -6987,7 +7065,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 1165, y: 50} + m_SizeDelta: {x: 0, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &3918594455809915006 MonoBehaviour: @@ -7538,7 +7616,7 @@ RectTransform: m_AnchorMin: {x: 1, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 786.6, y: 50} + m_SizeDelta: {x: 990, y: 50} m_Pivot: {x: 1, y: 0.5} --- !u!222 &3918594455983756490 CanvasRenderer: @@ -7908,8 +7986,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 591, y: 0} - m_SizeDelta: {x: 1142, y: 0} + m_AnchoredPosition: {x: 754, y: 0} + m_SizeDelta: {x: 1468, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3918594456218978261 CanvasRenderer: @@ -8141,7 +8219,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -11326,7 +11404,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 1165, y: 64} + m_SizeDelta: {x: 0, y: 64} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &5124755665249610764 MonoBehaviour: diff --git a/Assets/Resources/Prefabs/GameView/CamerasEditor.prefab b/Assets/Resources/Prefabs/GameView/CamerasEditor.prefab index f47224493..fdbacd813 100644 --- a/Assets/Resources/Prefabs/GameView/CamerasEditor.prefab +++ b/Assets/Resources/Prefabs/GameView/CamerasEditor.prefab @@ -170,6 +170,120 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 3 +--- !u!1 &435555855710102188 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7576197626345016079} + - component: {fileID: 1664206953461466981} + - component: {fileID: 7845231527756581285} + m_Layer: 31 + m_Name: FlasherL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7576197626345016079 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 435555855710102188} + 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: 8552962828543516429} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 2, y: 12} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1664206953461466981 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 435555855710102188} + m_CullTransparentMesh: 1 +--- !u!114 &7845231527756581285 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 435555855710102188} + 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: 0, b: 0, a: 0.1254902} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 8be59c4bde4258c429ac39251f5f681b, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 5 +--- !u!1 &699803779871748277 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8552962828543516429} + m_Layer: 31 + m_Name: Flashers + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8552962828543516429 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 699803779871748277} + 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: 7576197626345016079} + - {fileID: 8281773103246844715} + m_Father: {fileID: 2077856143944097172} + m_RootOrder: 3 + 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!1 &2464883521749415129 GameObject: m_ObjectHideFlags: 0 @@ -693,6 +807,82 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6809880121875460609 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8281773103246844715} + - component: {fileID: 7734333607666534753} + - component: {fileID: 2240635501115395630} + m_Layer: 31 + m_Name: FlasherR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8281773103246844715 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6809880121875460609} + 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: 8552962828543516429} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0.0000009536743, y: 0} + m_SizeDelta: {x: 2, y: 12} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7734333607666534753 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6809880121875460609} + m_CullTransparentMesh: 1 +--- !u!114 &2240635501115395630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6809880121875460609} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 1, a: 0.1254902} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 8be59c4bde4258c429ac39251f5f681b, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 5 --- !u!1 &7051539713125569525 GameObject: m_ObjectHideFlags: 0 @@ -894,6 +1084,7 @@ RectTransform: - {fileID: 2769789585838315502} - {fileID: 8925473620302868482} - {fileID: 8512930684284350359} + - {fileID: 8552962828543516429} m_Father: {fileID: 6052331674888157612} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Resources/Prefabs/GameView/Cursor.prefab b/Assets/Resources/Prefabs/GameView/Cursor.prefab index f935ad816..42cad1476 100644 --- a/Assets/Resources/Prefabs/GameView/Cursor.prefab +++ b/Assets/Resources/Prefabs/GameView/Cursor.prefab @@ -47,10 +47,12 @@ MonoBehaviour: m_EditorClassIdentifier: follow: 1 mouseMoveSpeed: 249.1 + sideChangeTrailTime: 0 DSGuy: {fileID: 0} DSGuyAnimator: {fileID: 0} flickCoeff: 0.35 flickInitMul: 1.5 + splitTouchSnapEffect: {fileID: 0} InnerCircle: {fileID: 0} Circle: {fileID: 0} --- !u!50 &285182279131759466 @@ -84,6 +86,7 @@ GameObject: m_Component: - component: {fileID: 285182279137842937} - component: {fileID: 285182279137842938} + - component: {fileID: 7664691932365309657} m_Layer: 3 m_Name: Actual m_TagString: Untagged @@ -121,12 +124,122 @@ MonoBehaviour: m_EditorClassIdentifier: follow: 0 mouseMoveSpeed: 0 + sideChangeTrailTime: 0.05 DSGuy: {fileID: 285182280031512481} DSGuyAnimator: {fileID: 4592128791974829295} flickCoeff: 12 flickInitMul: 64 + splitTouchSnapEffect: {fileID: 7664691932365309657} InnerCircle: {fileID: 285182279842109877} Circle: {fileID: 285182279897966106} +--- !u!96 &7664691932365309657 +TrailRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 285182279137842936} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 0 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 20000 + m_Time: 0.083333336 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.15 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.9 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.22058824 + - serializedVersion: 3 + time: 1 + value: 0.1 + inSlope: -0.9 + outSlope: -2.2915363 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.16176468 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 0.3137255} + key1: {r: 1, g: 1, b: 1, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_MinVertexDistance: 0.25 + m_Autodestruct: 0 + m_Emitting: 1 --- !u!1 &285182279354310575 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Sprites/UI/Common/Controllers/controllerSheet.png b/Assets/Resources/Sprites/UI/Common/Controllers/controllerSheet.png index ac9544cda8693c763a4431981252d26e71eacdfa..aedd4b72b56682f2cbb7a266bcb134ed95c1a7ad 100644 GIT binary patch delta 57553 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%0AO8)(RdYVt1D!qktlo{Ms={w=M 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 Q?0dYn`u|Y2g>>To0m3@7EC2ui diff --git a/Assets/Resources/Sprites/UI/Common/Controllers/controllerSheet.png.meta b/Assets/Resources/Sprites/UI/Common/Controllers/controllerSheet.png.meta index 7a32ac1a7..a6b39b844 100644 --- a/Assets/Resources/Sprites/UI/Common/Controllers/controllerSheet.png.meta +++ b/Assets/Resources/Sprites/UI/Common/Controllers/controllerSheet.png.meta @@ -272,6 +272,27 @@ TextureImporter: indices: edges: [] weights: [] + - serializedVersion: 2 + name: controllerSheet_0 + rect: + serializedVersion: 2 + x: 347 + y: 1067 + width: 554 + height: 902 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: a781f3f6689516247a7cc092438330f7 + internalID: -974588141 + vertices: [] + indices: + edges: [] + weights: [] outline: [] physicsShape: [] bones: [] @@ -283,6 +304,7 @@ TextureImporter: weights: [] secondaryTextures: [] nameFileIdTable: + controllerSheet_0: -974588141 nxJoyconL: 2557230542604182733 nxJoyconPair: 8903944674802394384 nxJoyconR: 9166690998051772148 diff --git a/Assets/Scripts/CircleCursor.cs b/Assets/Scripts/CircleCursor.cs index 8752bb980..fa70ab9ec 100644 --- a/Assets/Scripts/CircleCursor.cs +++ b/Assets/Scripts/CircleCursor.cs @@ -9,22 +9,38 @@ namespace HeavenStudio { public class CircleCursor : MonoBehaviour { + static readonly GradientAlphaKey[] cursorAlphaKeys = new GradientAlphaKey[] + { + new GradientAlphaKey(0.5f, 0), + new GradientAlphaKey(0, 1) + }; + [SerializeField] private bool follow = false; [SerializeField] private float mouseMoveSpeed; + [SerializeField] private float sideChangeTrailTime; [Header("DSGuy")] [SerializeField] private GameObject DSGuy; [SerializeField] private Animator DSGuyAnimator; [SerializeField] private float flickCoeff = 0.35f; [SerializeField] private float flickInitMul = 1.5f; + [SerializeField] private TrailRenderer splitTouchSnapEffect; public GameObject InnerCircle; [SerializeField] private GameObject Circle; private bool isOpen; private Vector3 vel, flickStart, flickDeltaPos; + private Color colorMain, colorL, colorR; + private Gradient gradientL, gradientR; + private bool lastLeftRightState; + private float trailEnableTime; + + private SpriteRenderer innerCircleRenderer; private void Start() { // Cursor.visible = false; + splitTouchSnapEffect.emitting = false; + innerCircleRenderer = InnerCircle.GetComponent(); } private void Open() @@ -64,6 +80,34 @@ namespace HeavenStudio } else { + bool lrState = PlayerInput.GetInputController(1).GetPointerLeftRight(); + if (PlayerInput.CurrentControlStyle == InputSystem.InputController.ControlStyles.Touch && (GameManager.instance?.GameHasSplitColours ?? false)) + { + if (lrState != lastLeftRightState) + { + lastLeftRightState = lrState; + trailEnableTime = sideChangeTrailTime; + splitTouchSnapEffect.emitting = true; + + innerCircleRenderer.color = lastLeftRightState ? colorR : colorL; + splitTouchSnapEffect.colorGradient = lastLeftRightState ? gradientR : gradientL; + } + + if (trailEnableTime <= 0) + { + trailEnableTime = 0; + splitTouchSnapEffect.emitting = false; + } + else + { + trailEnableTime -= Time.deltaTime; + } + } + else if (splitTouchSnapEffect.emitting) + { + ClearTrail(); + } + gameObject.transform.position = pos; if (vel.magnitude > 0.05f) { @@ -89,11 +133,14 @@ namespace HeavenStudio else if (PlayerInput.GetIsAction(Minigame.InputAction_FlickRelease)) { Flick(pos, deltaPos * flickInitMul); + ClearTrail(); } if ((!PlayerInput.PlayerHasControl()) && isOpen) { Close(); + ClearTrail(); + splitTouchSnapEffect.emitting = false; } } } @@ -101,6 +148,48 @@ namespace HeavenStudio public void LockCursor(bool toggle) { PlayerInput.GetInputController(1).TogglePointerLock(toggle); + ClearTrail(); + } + + public void ClearTrail() + { + splitTouchSnapEffect.Clear(); + trailEnableTime = 0; + } + + public void SetCursorColors(Color main, Color left, Color right) + { + if (innerCircleRenderer == null) innerCircleRenderer = InnerCircle.GetComponent(); + + colorMain = main; + colorL = left; + colorR = right; + if (PlayerInput.CurrentControlStyle == InputSystem.InputController.ControlStyles.Touch && (GameManager.instance?.GameHasSplitColours ?? false)) + { + innerCircleRenderer.color = lastLeftRightState ? colorR : colorL; + gradientL = new Gradient() + { + colorKeys = new GradientColorKey[] + { + new GradientColorKey(colorL, 0), + new GradientColorKey(colorL, 1) + }, + alphaKeys = cursorAlphaKeys + }; + gradientR = new Gradient() + { + colorKeys = new GradientColorKey[] + { + new GradientColorKey(colorR, 0), + new GradientColorKey(colorR, 1) + }, + alphaKeys = cursorAlphaKeys + }; + } + else + { + innerCircleRenderer.color = colorMain; + } } } } \ No newline at end of file diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index 03357d6c1..84062067e 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -52,6 +52,16 @@ namespace HeavenStudio [NonSerialized] public RiqEntity currentSection, nextSection; public double sectionProgress { get; private set; } + public bool GameHasSplitColours + { + get + { + var inf = GetGameInfo(currentGame); + if (inf == null) return false; + return inf.splitColorL != null && inf.splitColorR != null; + } + } + bool AudioLoadDone; bool ChartLoadError; @@ -992,20 +1002,20 @@ namespace HeavenStudio return eventCaller.minigames.Find(c => c.name == name); } + Color colMain; public void SetCurrentGame(string game, bool useMinigameColor = true) { currentGame = game; if (GetGameInfo(currentGame) != null) { - CircleCursor.InnerCircle.GetComponent().color = Colors.Hex2RGB(GetGameInfo(currentGame).color); - if (useMinigameColor) HeavenStudio.StaticCamera.instance.SetAmbientGlowColour(Colors.Hex2RGB(GetGameInfo(currentGame).color), true); - //else HeavenStudio.StaticCamera.instance.SetAmbientGlowColour(HeavenStudio.GameCamera.currentColor, false); + colMain = Colors.Hex2RGB(GetGameInfo(currentGame).color); + CircleCursor.SetCursorColors(colMain, Colors.Hex2RGB(GetGameInfo(currentGame).splitColorL), Colors.Hex2RGB(GetGameInfo(currentGame).splitColorR)); + if (useMinigameColor) HeavenStudio.StaticCamera.instance.SetAmbientGlowColour(colMain, true); else HeavenStudio.StaticCamera.instance.SetAmbientGlowColour(Color.black, false); } else { - CircleCursor.InnerCircle.GetComponent().color = Color.white; - //HeavenStudio.StaticCamera.instance.SetAmbientGlowColour(HeavenStudio.GameCamera.currentColor, false); + CircleCursor.SetCursorColors(Color.white, Color.white, Color.white); HeavenStudio.StaticCamera.instance.SetAmbientGlowColour(Color.black, false); } } diff --git a/Assets/Scripts/Games/BlueBear/BlueBear.cs b/Assets/Scripts/Games/BlueBear/BlueBear.cs index 5d49d7bb6..71afcbf05 100644 --- a/Assets/Scripts/Games/BlueBear/BlueBear.cs +++ b/Assets/Scripts/Games/BlueBear/BlueBear.cs @@ -13,7 +13,7 @@ namespace HeavenStudio.Games.Loaders { public static Minigame AddGame(EventCaller eventCaller) { - return new Minigame("blueBear", "Blue Bear", "b4e6f6", false, false, new List() + return new Minigame("blueBear", "Blue Bear", "b4e6f6", "e7e7e7", "bf9d34", false, false, new List() { new GameAction("donut", "Donut") { diff --git a/Assets/Scripts/Games/CatchyTune/CatchyTune.cs b/Assets/Scripts/Games/CatchyTune/CatchyTune.cs index e1a455735..55d19409b 100644 --- a/Assets/Scripts/Games/CatchyTune/CatchyTune.cs +++ b/Assets/Scripts/Games/CatchyTune/CatchyTune.cs @@ -13,7 +13,7 @@ namespace HeavenStudio.Games.Loaders // minigame menu items public static Minigame AddGame(EventCaller eventCaller) { - return new Minigame("catchyTune", "Catchy Tune", "f2f2f2", false, false, new List() + return new Minigame("catchyTune", "Catchy Tune", "f2f2f2", "ff376c", "f2f2f2", false, false, new List() { new GameAction("orange", "Orange") { diff --git a/Assets/Scripts/Games/MarchingOrders/MarchingOrders.cs b/Assets/Scripts/Games/MarchingOrders/MarchingOrders.cs index 471458b8c..ab3a778b8 100644 --- a/Assets/Scripts/Games/MarchingOrders/MarchingOrders.cs +++ b/Assets/Scripts/Games/MarchingOrders/MarchingOrders.cs @@ -51,7 +51,7 @@ namespace HeavenStudio.Games.Loaders } RiqBeatmap.OnUpdateEntity += MarchUpdater; - return new Minigame("marchingOrders", "Marching Orders", "ffb108", false, false, new List() + return new Minigame("marchingOrders", "Marching Orders", "ffb108", "ccc001", "f20016", false, false, new List() { new GameAction("bop", "Bop") { diff --git a/Assets/Scripts/Games/Minigame.cs b/Assets/Scripts/Games/Minigame.cs index 53b8e9f2f..24cc4c8bf 100644 --- a/Assets/Scripts/Games/Minigame.cs +++ b/Assets/Scripts/Games/Minigame.cs @@ -437,6 +437,11 @@ namespace HeavenStudio.Games } } + public void ToggleSplitColoursDisplay(bool on) + { + + } + private void OnDestroy() { foreach (var evt in scheduledInputs) diff --git a/Assets/Scripts/Games/TramAndPauline/TramAndPauline.cs b/Assets/Scripts/Games/TramAndPauline/TramAndPauline.cs index c94bfc54d..907483cf4 100644 --- a/Assets/Scripts/Games/TramAndPauline/TramAndPauline.cs +++ b/Assets/Scripts/Games/TramAndPauline/TramAndPauline.cs @@ -11,7 +11,7 @@ namespace HeavenStudio.Games.Loaders { public static Minigame AddGame(EventCaller eventCaller) { - return new Minigame("tramAndPauline", "Tram & Pauline", "adb5e7", false, false, new List() + return new Minigame("tramAndPauline", "Tram & Pauline", "adb5e7", "ca8b17", "c14fae", false, false, new List() { new GameAction("prepare", "Prepare") { diff --git a/Assets/Scripts/InputSystem/ControllerTypes/InputJoyshock.cs b/Assets/Scripts/InputSystem/ControllerTypes/InputJoyshock.cs index 4e1129498..946480456 100644 --- a/Assets/Scripts/InputSystem/ControllerTypes/InputJoyshock.cs +++ b/Assets/Scripts/InputSystem/ControllerTypes/InputJoyshock.cs @@ -1056,5 +1056,10 @@ namespace HeavenStudio.InputSystem public override void RecentrePointer() { } + + public override bool GetPointerLeftRight() + { + return false; + } } } \ No newline at end of file diff --git a/Assets/Scripts/InputSystem/ControllerTypes/InputKeyboard.cs b/Assets/Scripts/InputSystem/ControllerTypes/InputKeyboard.cs index fde8582a7..9521d4975 100644 --- a/Assets/Scripts/InputSystem/ControllerTypes/InputKeyboard.cs +++ b/Assets/Scripts/InputSystem/ControllerTypes/InputKeyboard.cs @@ -318,5 +318,10 @@ namespace HeavenStudio.InputSystem public override void RecentrePointer() { } + + public override bool GetPointerLeftRight() + { + return false; + } } } \ No newline at end of file diff --git a/Assets/Scripts/InputSystem/ControllerTypes/InputMouse.cs b/Assets/Scripts/InputSystem/ControllerTypes/InputMouse.cs index 0cb93a42a..88dba6c74 100644 --- a/Assets/Scripts/InputSystem/ControllerTypes/InputMouse.cs +++ b/Assets/Scripts/InputSystem/ControllerTypes/InputMouse.cs @@ -432,5 +432,10 @@ namespace HeavenStudio.InputSystem { rawPointerPos = ScreenBounds * 0.5f; } + + public override bool GetPointerLeftRight() + { + return rawPointerPos.x > ScreenBounds.x * 0.5f; + } } } \ No newline at end of file diff --git a/Assets/Scripts/InputSystem/InputController.cs b/Assets/Scripts/InputSystem/InputController.cs index b826105de..fb9ce5527 100644 --- a/Assets/Scripts/InputSystem/InputController.cs +++ b/Assets/Scripts/InputSystem/InputController.cs @@ -275,6 +275,7 @@ namespace HeavenStudio.InputSystem /// /// public abstract Vector2 GetPointer(); + public abstract bool GetPointerLeftRight(); public abstract void TogglePointerLock(bool locked); public abstract void RecentrePointer(); diff --git a/Assets/Scripts/Minigames.cs b/Assets/Scripts/Minigames.cs index 6c91ddab1..4122087e1 100644 --- a/Assets/Scripts/Minigames.cs +++ b/Assets/Scripts/Minigames.cs @@ -284,7 +284,8 @@ namespace HeavenStudio public string name; public string displayName; public string color; - public GameObject holder; + public string splitColorL; + public string splitColorR; public bool hidden; public bool fxOnly; public List actions = new List(); @@ -337,6 +338,28 @@ namespace HeavenStudio this.defaultLocale = defaultLocale; this.supportedLocales = supportedLocales ?? new List(); this.inferred = inferred; + + this.splitColorL = null; + this.splitColorR = null; + } + + public Minigame(string name, string displayName, string color, string splitColorL, string splitColorR, bool hidden, bool fxOnly, List actions, List tags = null, string assetBundle = "", string defaultLocale = "en", List supportedLocales = null, bool inferred = false) + { + this.name = name; + this.displayName = displayName; + this.color = color; + this.actions = actions; + this.hidden = hidden; + this.fxOnly = fxOnly; + + this.tags = tags ?? new List(); + this.wantAssetBundle = assetBundle; + this.defaultLocale = defaultLocale; + this.supportedLocales = supportedLocales ?? new List(); + this.inferred = inferred; + + this.splitColorL = splitColorL; + this.splitColorR = splitColorR; } public AssetBundle GetLocalizedAssetBundle() diff --git a/Assets/Shaders/Invert.mat b/Assets/Shaders/Invert.mat index c21ea8bd0..ad6b79bc9 100644 --- a/Assets/Shaders/Invert.mat +++ b/Assets/Shaders/Invert.mat @@ -2,14 +2,16 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2100000 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Invert m_Shader: {fileID: 4800000, guid: 186aee7e6d6053f4f8f0cca0ed3d25ac, type: 3} - m_ShaderKeywords: ETC1_EXTERNAL_ALPHA + m_ValidKeywords: [] + m_InvalidKeywords: + - ETC1_EXTERNAL_ALPHA m_LightmapFlags: 4 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 @@ -55,6 +57,7 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + m_Ints: [] m_Floats: - _BumpScale: 1 - _Cutoff: 0.5 @@ -75,3 +78,4 @@ Material: m_Colors: - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: []