From 8db9d99a025bdf5f42999d3150e2bacededc679a Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Thu, 16 Jan 2025 19:33:19 +0000 Subject: [PATCH] Input updates - point and click - WASD + mouse (WIP) - Gamepad (WIP) --- .../Characters/CharacterAnimator.controller | 64 ++- .../CharacterAnimatorNecroUpdate.controller | 46 +- .../CharacterAnimatorRogueUpdate.controller | 46 +- .../Characters/fbx/Mage/Mage.fbx.meta | 42 +- .../Prefabs/Persistent Objects.prefab | 50 ++ .../Abilities/ArrowProjectilePrefab.prefab | 15 + Assets/Resources/InputBindings.meta | 8 + Assets/Resources/InputBindings/Ability1.asset | 20 + .../InputBindings/Ability1.asset.meta | 8 + Assets/Resources/InputBindings/Ability2.asset | 20 + .../InputBindings/Ability2.asset.meta | 8 + Assets/Resources/InputBindings/Ability3.asset | 20 + .../InputBindings/Ability3.asset.meta | 8 + Assets/Resources/InputBindings/Ability4.asset | 20 + .../InputBindings/Ability4.asset.meta | 8 + .../Resources/InputBindings/InputScheme.txt | 16 + .../InputBindings/InputScheme.txt.meta | 7 + Assets/Resources/InputBindings/Potion.asset | 20 + .../Resources/InputBindings/Potion.asset.meta | 8 + .../PlayerPrefab_Barbarian Variant.prefab | 186 ++++++- .../PlayerPrefab_Knight Variant.prefab | 66 +++ .../PlayerPrefab_Mage Variant.prefab | 186 ++++++- .../PlayerPrefab_Naturalist Variant.prefab | 143 ++++++ .../PlayerPrefab_Necromancer Variant.prefab | 181 ++++++- .../PlayerPrefab_Priest Variant.prefab | 177 ++++++- .../PlayerPrefab_Rogue Variant.prefab | 79 +++ .../PlayerPrefab_Vampire Variant.prefab | 169 ++++++- Assets/Resources/PlayerPrefab.prefab | 48 +- Assets/Scenes/0-Splash.unity | 6 +- .../Abilities/Debug/Player/Potion.asset | 5 +- .../AoERayHitLocationSnapshotController.cs | 166 ++++++- Assets/Scripts/CharacterAnimatorController.cs | 10 + Assets/Scripts/Game/GameConstants.cs | 28 ++ Assets/Scripts/Game/complete-input-config.cs | 372 ++++++++++++++ .../Game/complete-input-config.cs.meta | 11 + Assets/Scripts/Input.meta | 8 + Assets/Scripts/Input/GameInputBinding.cs | 51 ++ Assets/Scripts/Input/GameInputBinding.cs.meta | 11 + Assets/Scripts/Input/GameInputManager.cs | 92 ++++ Assets/Scripts/Input/GameInputManager.cs.meta | 11 + Assets/Scripts/Input/PlayerInput.cs | 99 ++++ Assets/Scripts/Input/PlayerInput.cs.meta | 11 + Assets/Scripts/Interactable.cs | 19 + .../GamepadInteractionController.cs | 142 ++++++ .../GamepadInteractionController.cs.meta | 11 + Assets/Scripts/Player/AbilityKeyBinder.cs | 31 +- Assets/Scripts/Player/PlayerMovement.cs | 320 ++++++++++-- .../ProjectileSpawnLocationController.cs | 172 +++++-- Assets/Starfield Skybox/Skybox.mat | 2 +- ProjectSettings/InputManager.asset | 465 ++++++++++++++++++ 50 files changed, 3557 insertions(+), 155 deletions(-) create mode 100644 Assets/Resources/InputBindings.meta create mode 100644 Assets/Resources/InputBindings/Ability1.asset create mode 100644 Assets/Resources/InputBindings/Ability1.asset.meta create mode 100644 Assets/Resources/InputBindings/Ability2.asset create mode 100644 Assets/Resources/InputBindings/Ability2.asset.meta create mode 100644 Assets/Resources/InputBindings/Ability3.asset create mode 100644 Assets/Resources/InputBindings/Ability3.asset.meta create mode 100644 Assets/Resources/InputBindings/Ability4.asset create mode 100644 Assets/Resources/InputBindings/Ability4.asset.meta create mode 100644 Assets/Resources/InputBindings/InputScheme.txt create mode 100644 Assets/Resources/InputBindings/InputScheme.txt.meta create mode 100644 Assets/Resources/InputBindings/Potion.asset create mode 100644 Assets/Resources/InputBindings/Potion.asset.meta create mode 100644 Assets/Scripts/Game/complete-input-config.cs create mode 100644 Assets/Scripts/Game/complete-input-config.cs.meta create mode 100644 Assets/Scripts/Input.meta create mode 100644 Assets/Scripts/Input/GameInputBinding.cs create mode 100644 Assets/Scripts/Input/GameInputBinding.cs.meta create mode 100644 Assets/Scripts/Input/GameInputManager.cs create mode 100644 Assets/Scripts/Input/GameInputManager.cs.meta create mode 100644 Assets/Scripts/Input/PlayerInput.cs create mode 100644 Assets/Scripts/Input/PlayerInput.cs.meta create mode 100644 Assets/Scripts/Interactables/GamepadInteractionController.cs create mode 100644 Assets/Scripts/Interactables/GamepadInteractionController.cs.meta diff --git a/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/CharacterAnimator.controller b/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/CharacterAnimator.controller index 56692bb9..38dd04c7 100644 --- a/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/CharacterAnimator.controller +++ b/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/CharacterAnimator.controller @@ -340,55 +340,67 @@ AnimatorController: m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} - m_Name: throw m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} - m_Name: throwingTime m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} - m_Name: castingTime m_Type: 1 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} - m_Name: cast m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} - m_Name: melee m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} - m_Name: spinning m_Type: 4 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} - m_Name: dead m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} - m_Name: revived m_Type: 9 m_DefaultFloat: 0 m_DefaultInt: 0 m_DefaultBool: 0 - m_Controller: {fileID: 9100000} + m_Controller: {fileID: 0} + - m_Name: HorizontalAxis + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: VerticalAxis + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer @@ -528,19 +540,43 @@ BlendTree: m_Mirror: 0 - serializedVersion: 2 m_Motion: {fileID: 3543698089625107784, guid: e1e4fb5684939bb479c83e16bac91038, type: 3} - m_Threshold: 1 - m_Position: {x: 0, y: 0} + m_Threshold: 0.25 + m_Position: {x: 0, y: 1} m_TimeScale: 1 m_CycleOffset: 0 m_DirectBlendParameter: movementSpeed m_Mirror: 0 - m_BlendParameter: movementSpeed - m_BlendParameterY: Blend + - serializedVersion: 2 + m_Motion: {fileID: -1640272175068026219, guid: e1e4fb5684939bb479c83e16bac91038, type: 3} + m_Threshold: 0.5 + m_Position: {x: 1, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: movementSpeed + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -6877218540166537120, guid: e1e4fb5684939bb479c83e16bac91038, type: 3} + m_Threshold: 0.75 + m_Position: {x: -1, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: movementSpeed + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -6411013857362534180, guid: e1e4fb5684939bb479c83e16bac91038, type: 3} + m_Threshold: 1 + m_Position: {x: 0, y: -1} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: movementSpeed + m_Mirror: 0 + m_BlendParameter: HorizontalAxis + m_BlendParameterY: VerticalAxis m_MinThreshold: 0 m_MaxThreshold: 1 m_UseAutomaticThresholds: 1 m_NormalizedBlendValues: 0 - m_BlendType: 0 + m_BlendType: 3 --- !u!1102 &5990272421327647975 AnimatorState: serializedVersion: 6 diff --git a/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/CharacterAnimatorNecroUpdate.controller b/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/CharacterAnimatorNecroUpdate.controller index 834b4823..6a280aeb 100644 --- a/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/CharacterAnimatorNecroUpdate.controller +++ b/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/CharacterAnimatorNecroUpdate.controller @@ -676,6 +676,18 @@ AnimatorController: m_DefaultInt: 0 m_DefaultBool: 0 m_Controller: {fileID: 0} + - m_Name: HorizontalAxis + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: VerticalAxis + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer @@ -933,19 +945,43 @@ BlendTree: m_Mirror: 0 - serializedVersion: 2 m_Motion: {fileID: 3543698089625107784, guid: e1e4fb5684939bb479c83e16bac91038, type: 3} - m_Threshold: 1 - m_Position: {x: 0, y: 0} + m_Threshold: 0.25 + m_Position: {x: 0, y: 1} m_TimeScale: 1 m_CycleOffset: 0 m_DirectBlendParameter: movementSpeed m_Mirror: 0 - m_BlendParameter: movementSpeed - m_BlendParameterY: Blend + - serializedVersion: 2 + m_Motion: {fileID: -1640272175068026219, guid: e1e4fb5684939bb479c83e16bac91038, type: 3} + m_Threshold: 0.5 + m_Position: {x: 1, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: movementSpeed + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -6877218540166537120, guid: e1e4fb5684939bb479c83e16bac91038, type: 3} + m_Threshold: 0.75 + m_Position: {x: -1, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: movementSpeed + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -6411013857362534180, guid: e1e4fb5684939bb479c83e16bac91038, type: 3} + m_Threshold: 1 + m_Position: {x: 0, y: -1} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: movementSpeed + m_Mirror: 0 + m_BlendParameter: HorizontalAxis + m_BlendParameterY: VerticalAxis m_MinThreshold: 0 m_MaxThreshold: 1 m_UseAutomaticThresholds: 1 m_NormalizedBlendValues: 0 - m_BlendType: 0 + m_BlendType: 3 --- !u!1102 &5990272421327647975 AnimatorState: serializedVersion: 6 diff --git a/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/CharacterAnimatorRogueUpdate.controller b/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/CharacterAnimatorRogueUpdate.controller index 45e4d5ef..b328cf0b 100644 --- a/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/CharacterAnimatorRogueUpdate.controller +++ b/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/CharacterAnimatorRogueUpdate.controller @@ -704,6 +704,18 @@ AnimatorController: m_DefaultInt: 0 m_DefaultBool: 0 m_Controller: {fileID: 9100000} + - m_Name: HorizontalAxis + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: VerticalAxis + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer @@ -1017,19 +1029,43 @@ BlendTree: m_Mirror: 0 - serializedVersion: 2 m_Motion: {fileID: 3543698089625107784, guid: e1e4fb5684939bb479c83e16bac91038, type: 3} - m_Threshold: 1 - m_Position: {x: 0, y: 0} + m_Threshold: 0.25 + m_Position: {x: 0, y: 1} m_TimeScale: 1 m_CycleOffset: 0 m_DirectBlendParameter: movementSpeed m_Mirror: 0 - m_BlendParameter: movementSpeed - m_BlendParameterY: Blend + - serializedVersion: 2 + m_Motion: {fileID: -1640272175068026219, guid: e1e4fb5684939bb479c83e16bac91038, type: 3} + m_Threshold: 0.5 + m_Position: {x: 1, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: movementSpeed + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -6877218540166537120, guid: e1e4fb5684939bb479c83e16bac91038, type: 3} + m_Threshold: 0.75 + m_Position: {x: -1, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: movementSpeed + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -6411013857362534180, guid: e1e4fb5684939bb479c83e16bac91038, type: 3} + m_Threshold: 1 + m_Position: {x: 0, y: -1} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: movementSpeed + m_Mirror: 0 + m_BlendParameter: HorizontalAxis + m_BlendParameterY: VerticalAxis m_MinThreshold: 0 m_MaxThreshold: 1 m_UseAutomaticThresholds: 1 m_NormalizedBlendValues: 0 - m_BlendType: 0 + m_BlendType: 3 --- !u!1102 &5990272421327647975 AnimatorState: serializedVersion: 6 diff --git a/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/fbx/Mage/Mage.fbx.meta b/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/fbx/Mage/Mage.fbx.meta index 7c3c226a..02bcfbb2 100644 --- a/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/fbx/Mage/Mage.fbx.meta +++ b/Assets/CharactersPack/KayKit_Adventurers_1.0_FREE/Characters/fbx/Mage/Mage.fbx.meta @@ -469,12 +469,12 @@ ModelImporter: cycleOffset: 0 loop: 0 hasAdditiveReferencePose: 0 - loopTime: 0 - loopBlend: 0 - loopBlendOrientation: 0 - loopBlendPositionY: 0 - loopBlendPositionXZ: 0 - keepOriginalOrientation: 0 + loopTime: 1 + loopBlend: 1 + loopBlendOrientation: 1 + loopBlendPositionY: 1 + loopBlendPositionXZ: 1 + keepOriginalOrientation: 1 keepOriginalPositionY: 1 keepOriginalPositionXZ: 0 heightFromFeet: 0 @@ -500,10 +500,10 @@ ModelImporter: hasAdditiveReferencePose: 0 loopTime: 1 loopBlend: 1 - loopBlendOrientation: 0 + loopBlendOrientation: 1 loopBlendPositionY: 1 - loopBlendPositionXZ: 0 - keepOriginalOrientation: 0 + loopBlendPositionXZ: 1 + keepOriginalOrientation: 1 keepOriginalPositionY: 1 keepOriginalPositionXZ: 0 heightFromFeet: 0 @@ -556,12 +556,12 @@ ModelImporter: cycleOffset: 0 loop: 0 hasAdditiveReferencePose: 0 - loopTime: 0 - loopBlend: 0 - loopBlendOrientation: 0 - loopBlendPositionY: 0 - loopBlendPositionXZ: 0 - keepOriginalOrientation: 0 + loopTime: 1 + loopBlend: 1 + loopBlendOrientation: 1 + loopBlendPositionY: 1 + loopBlendPositionXZ: 1 + keepOriginalOrientation: 1 keepOriginalPositionY: 1 keepOriginalPositionXZ: 0 heightFromFeet: 0 @@ -585,12 +585,12 @@ ModelImporter: cycleOffset: 0 loop: 0 hasAdditiveReferencePose: 0 - loopTime: 0 - loopBlend: 0 - loopBlendOrientation: 0 - loopBlendPositionY: 0 - loopBlendPositionXZ: 0 - keepOriginalOrientation: 0 + loopTime: 1 + loopBlend: 1 + loopBlendOrientation: 1 + loopBlendPositionY: 1 + loopBlendPositionXZ: 1 + keepOriginalOrientation: 1 keepOriginalPositionY: 1 keepOriginalPositionXZ: 0 heightFromFeet: 0 diff --git a/Assets/Developer/Prefabs/Persistent Objects.prefab b/Assets/Developer/Prefabs/Persistent Objects.prefab index 72339691..13b1c386 100644 --- a/Assets/Developer/Prefabs/Persistent Objects.prefab +++ b/Assets/Developer/Prefabs/Persistent Objects.prefab @@ -4617,6 +4617,51 @@ MonoBehaviour: OnUIVisibilityChanged: m_PersistentCalls: m_Calls: [] +--- !u!1 &2832957514906983756 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 315999698282489082} + - component: {fileID: 7702335359396477653} + m_Layer: 0 + m_Name: InputManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &315999698282489082 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2832957514906983756} + 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: 7475116342638198534} + m_RootOrder: 33 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7702335359396477653 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2832957514906983756} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6ae8fd3e6ba25e441b159d1c9468be7f, type: 3} + m_Name: + m_EditorClassIdentifier: + gamepadDetectionThreshold: 0.1 --- !u!1 &2862068214805195629 GameObject: m_ObjectHideFlags: 0 @@ -12936,6 +12981,7 @@ Transform: - {fileID: 8612537344861635202} - {fileID: 3475843492364284939} - {fileID: 1380778743} + - {fileID: 315999698282489082} m_Father: {fileID: 7475116341965418816} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -17419,6 +17465,10 @@ PrefabInstance: propertyPath: m_Name value: AbilityBindInstance (3) objectReference: {fileID: 0} + - target: {fileID: 6068416968010641387, guid: 8e6107cb87ae02d43b74a0f7156a7754, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 8427117269225081217, guid: 8e6107cb87ae02d43b74a0f7156a7754, type: 3} propertyPath: gameKey value: diff --git a/Assets/Resources/Abilities/ArrowProjectilePrefab.prefab b/Assets/Resources/Abilities/ArrowProjectilePrefab.prefab index 8445f267..bc5b582e 100644 --- a/Assets/Resources/Abilities/ArrowProjectilePrefab.prefab +++ b/Assets/Resources/Abilities/ArrowProjectilePrefab.prefab @@ -140,6 +140,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 5408610653861158196} + - component: {fileID: 7232510528443783147} m_Layer: 30 m_Name: RotationFX m_TagString: Untagged @@ -164,6 +165,20 @@ Transform: m_Father: {fileID: 8607891234483246272} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7232510528443783147 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6112776810822369217} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b50effa256ffa1347ab62872ddb7198c, type: 3} + m_Name: + m_EditorClassIdentifier: + rotationSpeed: 360 + rotationAxis: 2 --- !u!1 &8607891234483246274 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/InputBindings.meta b/Assets/Resources/InputBindings.meta new file mode 100644 index 00000000..64fbe5a4 --- /dev/null +++ b/Assets/Resources/InputBindings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: db06a138bc1913a47bf87e3144c8a172 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/InputBindings/Ability1.asset b/Assets/Resources/InputBindings/Ability1.asset new file mode 100644 index 00000000..b2d6eb25 --- /dev/null +++ b/Assets/Resources/InputBindings/Ability1.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c84fbdfdd7da4cb47bb5d1783a2b1058, type: 3} + m_Name: Ability1 + m_EditorClassIdentifier: + bindingName: Ability1 + keyboardKey: 49 + gamepadButton: joystick button 0 + gamepadAxis: + isAxis: 0 + axisDeadzone: 0.2 diff --git a/Assets/Resources/InputBindings/Ability1.asset.meta b/Assets/Resources/InputBindings/Ability1.asset.meta new file mode 100644 index 00000000..6cf022dd --- /dev/null +++ b/Assets/Resources/InputBindings/Ability1.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2742d06c180116b4081691c7978914e9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/InputBindings/Ability2.asset b/Assets/Resources/InputBindings/Ability2.asset new file mode 100644 index 00000000..22340c5c --- /dev/null +++ b/Assets/Resources/InputBindings/Ability2.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c84fbdfdd7da4cb47bb5d1783a2b1058, type: 3} + m_Name: Ability2 + m_EditorClassIdentifier: + bindingName: Ability2 + keyboardKey: 50 + gamepadButton: joystick button 1 + gamepadAxis: + isAxis: 0 + axisDeadzone: 0.2 diff --git a/Assets/Resources/InputBindings/Ability2.asset.meta b/Assets/Resources/InputBindings/Ability2.asset.meta new file mode 100644 index 00000000..231590c3 --- /dev/null +++ b/Assets/Resources/InputBindings/Ability2.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b1841e76dc92c54497a6b0cc65a3b4c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/InputBindings/Ability3.asset b/Assets/Resources/InputBindings/Ability3.asset new file mode 100644 index 00000000..c965fa28 --- /dev/null +++ b/Assets/Resources/InputBindings/Ability3.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c84fbdfdd7da4cb47bb5d1783a2b1058, type: 3} + m_Name: Ability3 + m_EditorClassIdentifier: + bindingName: Ability3 + keyboardKey: 51 + gamepadButton: joystick button 2 + gamepadAxis: + isAxis: 0 + axisDeadzone: 0.2 diff --git a/Assets/Resources/InputBindings/Ability3.asset.meta b/Assets/Resources/InputBindings/Ability3.asset.meta new file mode 100644 index 00000000..f3858732 --- /dev/null +++ b/Assets/Resources/InputBindings/Ability3.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb70b7a88547bc045abb0f2ed54807d1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/InputBindings/Ability4.asset b/Assets/Resources/InputBindings/Ability4.asset new file mode 100644 index 00000000..bd53af13 --- /dev/null +++ b/Assets/Resources/InputBindings/Ability4.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c84fbdfdd7da4cb47bb5d1783a2b1058, type: 3} + m_Name: Ability4 + m_EditorClassIdentifier: + bindingName: Ability4 + keyboardKey: 52 + gamepadButton: joystick button 3 + gamepadAxis: + isAxis: 0 + axisDeadzone: 0.2 diff --git a/Assets/Resources/InputBindings/Ability4.asset.meta b/Assets/Resources/InputBindings/Ability4.asset.meta new file mode 100644 index 00000000..5b313949 --- /dev/null +++ b/Assets/Resources/InputBindings/Ability4.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35844ec4f29bfd643866a2dc26c4031c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/InputBindings/InputScheme.txt b/Assets/Resources/InputBindings/InputScheme.txt new file mode 100644 index 00000000..89ef9d16 --- /dev/null +++ b/Assets/Resources/InputBindings/InputScheme.txt @@ -0,0 +1,16 @@ +Left Stick: Movement +Right Stick: Aim direction +A/X (Bottom): Basic Ability/Primary Attack +B/Circle (Right): Secondary Ability +X/Square (Left): Third Ability +Y/Triangle (Top): Fourth Ability +Left Bumper (L1): Potion (as you already have) +Right Bumper (R1): Interaction/Pickup +Left Trigger (L2): Show radial menu (inventory, character, etc) +Right Trigger (R2): Hold to show nearby interactables +D-Pad Up: Toggle Character Panel +D-Pad Down: Toggle Inventory +D-Pad Left: Previous Target +D-Pad Right: Next Target +Start/Options: Game Menu +Select/Back: World Map/Quest Log \ No newline at end of file diff --git a/Assets/Resources/InputBindings/InputScheme.txt.meta b/Assets/Resources/InputBindings/InputScheme.txt.meta new file mode 100644 index 00000000..fb06dd54 --- /dev/null +++ b/Assets/Resources/InputBindings/InputScheme.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e9cc651aa6eb646459ad91dd6ae26f06 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/InputBindings/Potion.asset b/Assets/Resources/InputBindings/Potion.asset new file mode 100644 index 00000000..0d536627 --- /dev/null +++ b/Assets/Resources/InputBindings/Potion.asset @@ -0,0 +1,20 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c84fbdfdd7da4cb47bb5d1783a2b1058, type: 3} + m_Name: Potion + m_EditorClassIdentifier: + bindingName: Potion + keyboardKey: 113 + gamepadButton: left bumper + gamepadAxis: + isAxis: 0 + axisDeadzone: 0.2 diff --git a/Assets/Resources/InputBindings/Potion.asset.meta b/Assets/Resources/InputBindings/Potion.asset.meta new file mode 100644 index 00000000..b64d325e --- /dev/null +++ b/Assets/Resources/InputBindings/Potion.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1f4224a53abaaeb488c0fa8c746f0653 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/PlayableCharacters/PlayerPrefab_Barbarian Variant.prefab b/Assets/Resources/PlayableCharacters/PlayerPrefab_Barbarian Variant.prefab index e19987cf..21e63e03 100644 --- a/Assets/Resources/PlayableCharacters/PlayerPrefab_Barbarian Variant.prefab +++ b/Assets/Resources/PlayableCharacters/PlayerPrefab_Barbarian Variant.prefab @@ -13,7 +13,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 583639914168640231, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} propertyPath: m_SynchronizeParameters.Array.size - value: 12 + value: 16 objectReference: {fileID: 0} - target: {fileID: 583639914168640231, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} propertyPath: m_SynchronizeParameters.Array.data[5].Name @@ -71,6 +71,38 @@ PrefabInstance: propertyPath: m_SynchronizeParameters.Array.data[11].Type value: 9 objectReference: {fileID: 0} + - target: {fileID: 583639914168640231, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[12].Name + value: potion + objectReference: {fileID: 0} + - target: {fileID: 583639914168640231, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[12].Type + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 583639914168640231, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[13].Name + value: spellcasting + objectReference: {fileID: 0} + - target: {fileID: 583639914168640231, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[13].Type + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 583639914168640231, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[14].Name + value: HorizontalAxis + objectReference: {fileID: 0} + - target: {fileID: 583639914168640231, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[14].Type + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 583639914168640231, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[15].Name + value: VerticalAxis + objectReference: {fileID: 0} + - target: {fileID: 583639914168640231, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[15].Type + value: 1 + objectReference: {fileID: 0} - target: {fileID: 583639914168640231, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} propertyPath: m_SynchronizeParameters.Array.data[6].SynchronizeType value: 1 @@ -256,11 +288,21 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b8c4a61274f60b4ea5fb4299cfdbf14, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &3834725402999450503 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2737949628023702085, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} + m_PrefabInstance: {fileID: 1209366866749221314} + m_PrefabAsset: {fileID: 0} --- !u!1 &5688666775976244648 stripped GameObject: m_CorrespondingSourceObject: {fileID: 6789946693469576298, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} m_PrefabInstance: {fileID: 1209366866749221314} m_PrefabAsset: {fileID: 0} +--- !u!4 &8086682052194178606 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6985402682562936812, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} + m_PrefabInstance: {fileID: 1209366866749221314} + m_PrefabAsset: {fileID: 0} --- !u!1 &8669955468676664581 stripped GameObject: m_CorrespondingSourceObject: {fileID: 7537150360618230983, guid: 55a572819c594ad4c90a6e68c2f30e0e, type: 3} @@ -277,6 +319,72 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 75ba268000bc14f4287a8a1f8c3dabd6, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &2782418676659839487 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8086682052194178606} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.y + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_Name + value: potion_medium_red + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} +--- !u!1 &3052396949806636206 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + m_PrefabInstance: {fileID: 2782418676659839487} + m_PrefabAsset: {fileID: 0} --- !u!1001 &3315893290401286401 PrefabInstance: m_ObjectHideFlags: 0 @@ -412,6 +520,82 @@ PrefabInstance: propertyPath: selectedBuildSlots.Array.data[3].binderSlot value: 3 objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.data[0] + value: + objectReference: {fileID: 8669955468676664581} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.data[1] + value: + objectReference: {fileID: 5688666775976244648} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.data[0] + value: + objectReference: {fileID: 3834725402999450503} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.data[0] + value: + objectReference: {fileID: 3052396949806636206} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.size + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].animationTypes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].animationTypes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[1] + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[2] + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[3] + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[4] + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[5] + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[6] + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].animationTypes.Array.data[0] + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].animationTypes.Array.data[0] + value: 7 + objectReference: {fileID: 0} - target: {fileID: 7687765528848249431, guid: 9c432d220280f704684a6d5b9354c782, type: 3} propertyPath: sceneViewId value: 0 diff --git a/Assets/Resources/PlayableCharacters/PlayerPrefab_Knight Variant.prefab b/Assets/Resources/PlayableCharacters/PlayerPrefab_Knight Variant.prefab index 605f73be..b0716869 100644 --- a/Assets/Resources/PlayableCharacters/PlayerPrefab_Knight Variant.prefab +++ b/Assets/Resources/PlayableCharacters/PlayerPrefab_Knight Variant.prefab @@ -539,6 +539,11 @@ GameObject: m_CorrespondingSourceObject: {fileID: 5589916253602216950, guid: 21e6880a6d86aec4fb0f43796c8fac6e, type: 3} m_PrefabInstance: {fileID: 6299060357122510577} m_PrefabAsset: {fileID: 0} +--- !u!4 &2555017478569357764 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8367684642823880501, guid: 21e6880a6d86aec4fb0f43796c8fac6e, type: 3} + m_PrefabInstance: {fileID: 6299060357122510577} + m_PrefabAsset: {fileID: 0} --- !u!114 &5587652594478694124 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1936994702313746461, guid: 21e6880a6d86aec4fb0f43796c8fac6e, type: 3} @@ -566,3 +571,64 @@ GameObject: m_CorrespondingSourceObject: {fileID: 3241665675335930526, guid: 21e6880a6d86aec4fb0f43796c8fac6e, type: 3} m_PrefabInstance: {fileID: 6299060357122510577} m_PrefabAsset: {fileID: 0} +--- !u!1001 &8418820756339654015 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2555017478569357764} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.y + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.x + value: 0.000000021855694 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_Name + value: potion_medium_red + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} diff --git a/Assets/Resources/PlayableCharacters/PlayerPrefab_Mage Variant.prefab b/Assets/Resources/PlayableCharacters/PlayerPrefab_Mage Variant.prefab index b423c0ff..3724ef2d 100644 --- a/Assets/Resources/PlayableCharacters/PlayerPrefab_Mage Variant.prefab +++ b/Assets/Resources/PlayableCharacters/PlayerPrefab_Mage Variant.prefab @@ -1,5 +1,71 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1001 &461977270327753614 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8747854477309951383} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.y + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.x + value: 0.000000021855694 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_Name + value: potion_medium_red + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} +--- !u!1 &767912324630415071 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + m_PrefabInstance: {fileID: 461977270327753614} + m_PrefabAsset: {fileID: 0} --- !u!1001 &5997609963086137483 PrefabInstance: m_ObjectHideFlags: 0 @@ -9,7 +75,7 @@ PrefabInstance: m_Modifications: - target: {fileID: 492335034898022818, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} propertyPath: m_SynchronizeParameters.Array.size - value: 12 + value: 16 objectReference: {fileID: 0} - target: {fileID: 492335034898022818, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} propertyPath: m_SynchronizeParameters.Array.data[5].Name @@ -67,6 +133,38 @@ PrefabInstance: propertyPath: m_SynchronizeParameters.Array.data[11].Type value: 9 objectReference: {fileID: 0} + - target: {fileID: 492335034898022818, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[12].Name + value: potion + objectReference: {fileID: 0} + - target: {fileID: 492335034898022818, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[12].Type + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 492335034898022818, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[13].Name + value: spellcasting + objectReference: {fileID: 0} + - target: {fileID: 492335034898022818, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[13].Type + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 492335034898022818, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[14].Name + value: HorizontalAxis + objectReference: {fileID: 0} + - target: {fileID: 492335034898022818, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[14].Type + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 492335034898022818, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[15].Name + value: VerticalAxis + objectReference: {fileID: 0} + - target: {fileID: 492335034898022818, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[15].Type + value: 1 + objectReference: {fileID: 0} - target: {fileID: 492335034898022818, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} propertyPath: m_SynchronizeParameters.Array.data[6].SynchronizeType value: 1 @@ -258,6 +356,11 @@ GameObject: m_CorrespondingSourceObject: {fileID: 7028857168116585454, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} m_PrefabInstance: {fileID: 5997609963086137483} m_PrefabAsset: {fileID: 0} +--- !u!1 &4158422391300705829 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7678185868654642862, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} + m_PrefabInstance: {fileID: 5997609963086137483} + m_PrefabAsset: {fileID: 0} --- !u!114 &6192144265892874537 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 492335034898022818, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} @@ -269,6 +372,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9b8c4a61274f60b4ea5fb4299cfdbf14, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!4 &8747854477309951383 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3052689789721081116, guid: 088a10fcc3f776e4cbedbecef9997f19, type: 3} + m_PrefabInstance: {fileID: 5997609963086137483} + m_PrefabAsset: {fileID: 0} --- !u!1001 &5997609963189718090 PrefabInstance: m_ObjectHideFlags: 0 @@ -368,6 +476,82 @@ PrefabInstance: propertyPath: defaultBuildSlots.Array.data[3].ability value: objectReference: {fileID: 11400000, guid: d58ac5a6fef83a24e93311b30cc34b0d, type: 2} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.data[0] + value: + objectReference: {fileID: 636887558303459220} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.data[1] + value: + objectReference: {fileID: 3652505225288997733} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.data[0] + value: + objectReference: {fileID: 4158422391300705829} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.data[0] + value: + objectReference: {fileID: 767912324630415071} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.size + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].animationTypes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].animationTypes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[1] + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[2] + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[3] + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[4] + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[5] + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[6] + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].animationTypes.Array.data[0] + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].animationTypes.Array.data[0] + value: 7 + objectReference: {fileID: 0} - target: {fileID: 7687765528848249431, guid: 9c432d220280f704684a6d5b9354c782, type: 3} propertyPath: sceneViewId value: 0 diff --git a/Assets/Resources/PlayableCharacters/PlayerPrefab_Naturalist Variant.prefab b/Assets/Resources/PlayableCharacters/PlayerPrefab_Naturalist Variant.prefab index 2663fa6b..80a6ab22 100644 --- a/Assets/Resources/PlayableCharacters/PlayerPrefab_Naturalist Variant.prefab +++ b/Assets/Resources/PlayableCharacters/PlayerPrefab_Naturalist Variant.prefab @@ -107,6 +107,78 @@ PrefabInstance: propertyPath: defaultBuildSlots.Array.data[3].ability value: objectReference: {fileID: 11400000, guid: f9662c8eca616b7468e4d8fa659b55a7, type: 2} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.data[0] + value: + objectReference: {fileID: 1362499111226863775} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.data[0] + value: + objectReference: {fileID: 1362499111226863775} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.data[0] + value: + objectReference: {fileID: 8209752426614665391} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.size + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].animationTypes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].animationTypes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[1] + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[2] + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[3] + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[4] + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[5] + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[6] + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].animationTypes.Array.data[0] + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].animationTypes.Array.data[0] + value: 7 + objectReference: {fileID: 0} - target: {fileID: 7687765528848249431, guid: 9c432d220280f704684a6d5b9354c782, type: 3} propertyPath: sceneViewId value: 0 @@ -316,3 +388,74 @@ GameObject: m_CorrespondingSourceObject: {fileID: 4560873030512601238, guid: af5fddb774a0f724c92b801e22ea7965, type: 3} m_PrefabInstance: {fileID: 3288727662027773961} m_PrefabAsset: {fileID: 0} +--- !u!4 &8562278068480744587 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6588971775634375810, guid: af5fddb774a0f724c92b801e22ea7965, type: 3} + m_PrefabInstance: {fileID: 3288727662027773961} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &9020586377326726654 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8562278068480744587} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.y + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.x + value: 0.000000021855694 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_Name + value: potion_medium_red + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} +--- !u!1 &8209752426614665391 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + m_PrefabInstance: {fileID: 9020586377326726654} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Resources/PlayableCharacters/PlayerPrefab_Necromancer Variant.prefab b/Assets/Resources/PlayableCharacters/PlayerPrefab_Necromancer Variant.prefab index 17166a9d..5b56e736 100644 --- a/Assets/Resources/PlayableCharacters/PlayerPrefab_Necromancer Variant.prefab +++ b/Assets/Resources/PlayableCharacters/PlayerPrefab_Necromancer Variant.prefab @@ -49,6 +49,72 @@ MonoBehaviour: - {fileID: 11400000, guid: 4b21d1ec90616ac4a8f0ff30311a6a1f, type: 2} - {fileID: 11400000, guid: 6cf7c174663354f4bb94833236e61c18, type: 2} - {fileID: 11400000, guid: f0272d37cc7635f4cbdfb40b1a16a9e7, type: 2} +--- !u!1001 &1871391520838421915 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8127584132837939814} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.y + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.x + value: 0.000000021855694 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_Name + value: potion_medium_red + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} +--- !u!1 &1529514672671011018 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + m_PrefabInstance: {fileID: 1871391520838421915} + m_PrefabAsset: {fileID: 0} --- !u!1001 &2176522877944764073 PrefabInstance: m_ObjectHideFlags: 0 @@ -216,6 +282,78 @@ PrefabInstance: propertyPath: defaultBuildSlots.Array.data[3].ability value: objectReference: {fileID: 11400000, guid: e8ac285f957ac924babbb299999e6dbb, type: 2} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.data[0] + value: + objectReference: {fileID: 1366272763912873758} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.data[0] + value: + objectReference: {fileID: 1366272763912873758} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.data[0] + value: + objectReference: {fileID: 1529514672671011018} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.size + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].animationTypes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].animationTypes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[1] + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[2] + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[3] + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[4] + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[5] + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[6] + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].animationTypes.Array.data[0] + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].animationTypes.Array.data[0] + value: 7 + objectReference: {fileID: 0} - target: {fileID: 7687765528848249431, guid: 9c432d220280f704684a6d5b9354c782, type: 3} propertyPath: sceneViewId value: 0 @@ -550,9 +688,13 @@ PrefabInstance: propertyPath: m_Name value: Necromancer objectReference: {fileID: 0} + - target: {fileID: 6899894140144780136, guid: 5dae863231f47364a8cff4666c86675c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7716045718905858460, guid: 5dae863231f47364a8cff4666c86675c, type: 3} propertyPath: m_SynchronizeParameters.Array.size - value: 12 + value: 16 objectReference: {fileID: 0} - target: {fileID: 7716045718905858460, guid: 5dae863231f47364a8cff4666c86675c, type: 3} propertyPath: m_SynchronizeParameters.Array.data[10].Name @@ -570,6 +712,38 @@ PrefabInstance: propertyPath: m_SynchronizeParameters.Array.data[11].Type value: 9 objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: 5dae863231f47364a8cff4666c86675c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[12].Name + value: potion + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: 5dae863231f47364a8cff4666c86675c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[12].Type + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: 5dae863231f47364a8cff4666c86675c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[13].Name + value: spellcasting + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: 5dae863231f47364a8cff4666c86675c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[13].Type + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: 5dae863231f47364a8cff4666c86675c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[14].Name + value: HorizontalAxis + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: 5dae863231f47364a8cff4666c86675c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[14].Type + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: 5dae863231f47364a8cff4666c86675c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[15].Name + value: VerticalAxis + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: 5dae863231f47364a8cff4666c86675c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[15].Type + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 5dae863231f47364a8cff4666c86675c, type: 3} --- !u!1 &1366272763912873758 stripped @@ -599,3 +773,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 75ba268000bc14f4287a8a1f8c3dabd6, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!4 &8127584132837939814 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4467107156232270255, guid: 5dae863231f47364a8cff4666c86675c, type: 3} + m_PrefabInstance: {fileID: 5563248454827535305} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Resources/PlayableCharacters/PlayerPrefab_Priest Variant.prefab b/Assets/Resources/PlayableCharacters/PlayerPrefab_Priest Variant.prefab index 01be3eca..03abb0d9 100644 --- a/Assets/Resources/PlayableCharacters/PlayerPrefab_Priest Variant.prefab +++ b/Assets/Resources/PlayableCharacters/PlayerPrefab_Priest Variant.prefab @@ -1,5 +1,71 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1001 &1782838645173298144 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1719249078034872000} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.y + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.x + value: 0.000000021855694 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_Name + value: potion_medium_red + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} +--- !u!1 &1476199486818197169 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + m_PrefabInstance: {fileID: 1782838645173298144} + m_PrefabAsset: {fileID: 0} --- !u!1001 &2763436073792215827 PrefabInstance: m_ObjectHideFlags: 0 @@ -107,6 +173,78 @@ PrefabInstance: propertyPath: defaultBuildSlots.Array.data[3].ability value: objectReference: {fileID: 11400000, guid: 96c81c820f0bfe747af956cccd0f0ba4, type: 2} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.data[0] + value: + objectReference: {fileID: 3656268380590184611} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.data[0] + value: + objectReference: {fileID: 3656268380590184611} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.data[0] + value: + objectReference: {fileID: 1476199486818197169} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.size + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].animationTypes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].animationTypes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[1] + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[2] + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[3] + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[4] + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[5] + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[6] + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].animationTypes.Array.data[0] + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].animationTypes.Array.data[0] + value: 7 + objectReference: {fileID: 0} - target: {fileID: 7687765528848249431, guid: 9c432d220280f704684a6d5b9354c782, type: 3} propertyPath: sceneViewId value: 0 @@ -442,7 +580,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6567432688714911206, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} propertyPath: m_SynchronizeParameters.Array.size - value: 12 + value: 16 objectReference: {fileID: 0} - target: {fileID: 6567432688714911206, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} propertyPath: m_SynchronizeParameters.Array.data[6].Name @@ -492,6 +630,38 @@ PrefabInstance: propertyPath: m_SynchronizeParameters.Array.data[11].Type value: 9 objectReference: {fileID: 0} + - target: {fileID: 6567432688714911206, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[12].Name + value: potion + objectReference: {fileID: 0} + - target: {fileID: 6567432688714911206, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[12].Type + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 6567432688714911206, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[13].Name + value: spellcasting + objectReference: {fileID: 0} + - target: {fileID: 6567432688714911206, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[13].Type + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 6567432688714911206, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[14].Name + value: HorizontalAxis + objectReference: {fileID: 0} + - target: {fileID: 6567432688714911206, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[14].Type + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6567432688714911206, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[15].Name + value: VerticalAxis + objectReference: {fileID: 0} + - target: {fileID: 6567432688714911206, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[15].Type + value: 1 + objectReference: {fileID: 0} - target: {fileID: 6567432688714911206, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} propertyPath: m_SynchronizeParameters.Array.data[6].SynchronizeType value: 1 @@ -502,6 +672,11 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} +--- !u!4 &1719249078034872000 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4353885798923642103, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} + m_PrefabInstance: {fileID: 3150237142380810807} + m_PrefabAsset: {fileID: 0} --- !u!114 &3518186580167511544 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1973983944860229583, guid: 78e91c3f61b3c724fbdc0ad0d233215e, type: 3} diff --git a/Assets/Resources/PlayableCharacters/PlayerPrefab_Rogue Variant.prefab b/Assets/Resources/PlayableCharacters/PlayerPrefab_Rogue Variant.prefab index 3d956b35..e8266b81 100644 --- a/Assets/Resources/PlayableCharacters/PlayerPrefab_Rogue Variant.prefab +++ b/Assets/Resources/PlayableCharacters/PlayerPrefab_Rogue Variant.prefab @@ -1,5 +1,71 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1001 &2239639892059628099 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 186265326639328476} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.y + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.x + value: 0.000000021855694 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_Name + value: potion_medium_red + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} +--- !u!1 &1429230204660686610 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + m_PrefabInstance: {fileID: 2239639892059628099} + m_PrefabAsset: {fileID: 0} --- !u!1001 &3831314495265512977 PrefabInstance: m_ObjectHideFlags: 0 @@ -207,6 +273,10 @@ PrefabInstance: propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.size value: 1 objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.size + value: 1 + objectReference: {fileID: 0} - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.data[0] value: @@ -219,6 +289,10 @@ PrefabInstance: propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.data[0] value: objectReference: {fileID: 5031646247094158430} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.data[0] + value: + objectReference: {fileID: 1429230204660686610} - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.size value: 7 @@ -546,6 +620,11 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: d5ece5c7a51e20345adcea09015e8780, type: 3} +--- !u!4 &186265326639328476 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5026741655768996343, guid: d5ece5c7a51e20345adcea09015e8780, type: 3} + m_PrefabInstance: {fileID: 5140627754366678315} + m_PrefabAsset: {fileID: 0} --- !u!4 &1419554064565073273 stripped Transform: m_CorrespondingSourceObject: {fileID: 6117129996266291282, guid: d5ece5c7a51e20345adcea09015e8780, type: 3} diff --git a/Assets/Resources/PlayableCharacters/PlayerPrefab_Vampire Variant.prefab b/Assets/Resources/PlayableCharacters/PlayerPrefab_Vampire Variant.prefab index 77b6646c..d29a52e0 100644 --- a/Assets/Resources/PlayableCharacters/PlayerPrefab_Vampire Variant.prefab +++ b/Assets/Resources/PlayableCharacters/PlayerPrefab_Vampire Variant.prefab @@ -1,5 +1,71 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1001 &1323047377024126535 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1604519788515968365} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.y + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.x + value: 0.000000021855694 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_Name + value: potion_medium_red + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} +--- !u!1 &2205920790569038614 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 5f1d0835850e6a746b7be9a3856a9501, type: 3} + m_PrefabInstance: {fileID: 1323047377024126535} + m_PrefabAsset: {fileID: 0} --- !u!1001 &3150897364273738946 PrefabInstance: m_ObjectHideFlags: 0 @@ -165,7 +231,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7716045718905858460, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} propertyPath: m_SynchronizeParameters.Array.size - value: 12 + value: 16 objectReference: {fileID: 0} - target: {fileID: 7716045718905858460, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} propertyPath: m_SynchronizeParameters.Array.data[10].Name @@ -183,8 +249,45 @@ PrefabInstance: propertyPath: m_SynchronizeParameters.Array.data[11].Type value: 9 objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[12].Name + value: potion + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[12].Type + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[13].Name + value: spellcasting + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[13].Type + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[14].Name + value: HorizontalAxis + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[14].Type + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[15].Name + value: VerticalAxis + objectReference: {fileID: 0} + - target: {fileID: 7716045718905858460, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} + propertyPath: m_SynchronizeParameters.Array.data[15].Type + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} +--- !u!4 &1604519788515968365 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4467107156232270255, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} + m_PrefabInstance: {fileID: 3150897364273738946} + m_PrefabAsset: {fileID: 0} --- !u!114 &4224308224228921298 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1235672432261282576, guid: cfa80d1224dc4bf46adaf48681a6080c, type: 3} @@ -386,6 +489,70 @@ PrefabInstance: propertyPath: defaultBuildSlots.Array.data[3].ability value: objectReference: {fileID: 11400000, guid: f2c34fbff4781f84aa75dcc83f2fe57b, type: 2} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].weapons.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].weapons.Array.size + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].weapons.Array.data[0] + value: + objectReference: {fileID: 2205920790569038614} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.size + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].animationTypes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].animationTypes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[1] + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[2] + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[3] + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[4] + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[5] + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[0].animationTypes.Array.data[6] + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[1].animationTypes.Array.data[0] + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 7471597901585849079, guid: 9c432d220280f704684a6d5b9354c782, type: 3} + propertyPath: visualWeaponSlots.Array.data[2].animationTypes.Array.data[0] + value: 7 + objectReference: {fileID: 0} - target: {fileID: 7687765528848249431, guid: 9c432d220280f704684a6d5b9354c782, type: 3} propertyPath: sceneViewId value: 0 diff --git a/Assets/Resources/PlayerPrefab.prefab b/Assets/Resources/PlayerPrefab.prefab index abf8ae78..744b5c83 100644 --- a/Assets/Resources/PlayerPrefab.prefab +++ b/Assets/Resources/PlayerPrefab.prefab @@ -186,6 +186,7 @@ MonoBehaviour: key: {fileID: 11400000, guid: 092fa402deb2cef49ad39df894f4525b, type: 2} castingStateController: {fileID: 7040887640505163424} onAbilityKeyBinderSpawned: {fileID: 11400000, guid: 9bfd488187aea4848a890711a2d587c8, type: 2} + gamepadBinding: {fileID: 11400000, guid: 2742d06c180116b4081691c7978914e9, type: 2} --- !u!1 &480331571121010796 GameObject: m_ObjectHideFlags: 0 @@ -358,7 +359,7 @@ NavMeshAgent: m_Speed: 4.5 m_Acceleration: 45 avoidancePriority: 50 - m_AngularSpeed: 3600 + m_AngularSpeed: 0 m_StoppingDistance: 0.25 m_AutoTraverseOffMeshLink: 1 m_AutoBraking: 1 @@ -409,7 +410,40 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8d838855b75eb1b49bf5cac84fad9df2, type: 3} m_Name: m_EditorClassIdentifier: - lookSpeed: 5 + lookSpeed: 360 + gamepadRotationSpeed: 3600 + minimumInputThreshold: 0.1 + movementType: 1 + gamepadDeadzone: 0.2 + gamepadInputCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + showDebugVisuals: 1 + currentMovementDirection: {x: 0, y: 0} + currentAimDirection: {x: 0, y: 0} + lastAimDirection2: {x: 0, y: 0} + relativeMovementDirection: {x: 0, y: 0} --- !u!114 &4486792688999778717 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1336,6 +1370,7 @@ MonoBehaviour: key: {fileID: 11400000, guid: 8c87c2ccccdd90548bc46b87e6616d7d, type: 2} castingStateController: {fileID: 7040887640505163424} onAbilityKeyBinderSpawned: {fileID: 11400000, guid: 9bfd488187aea4848a890711a2d587c8, type: 2} + gamepadBinding: {fileID: 11400000, guid: 1f4224a53abaaeb488c0fa8c746f0653, type: 2} --- !u!1 &3607197976230645580 GameObject: m_ObjectHideFlags: 0 @@ -1938,6 +1973,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: lookAt: {fileID: 1543509794229652648} + gamepadDeadzone: 0.2 --- !u!1 &5880674649554418044 GameObject: m_ObjectHideFlags: 0 @@ -2020,6 +2056,7 @@ MonoBehaviour: key: {fileID: 11400000, guid: 448485539eeac0146bdea3687c26059d, type: 2} castingStateController: {fileID: 7040887640505163424} onAbilityKeyBinderSpawned: {fileID: 11400000, guid: 9bfd488187aea4848a890711a2d587c8, type: 2} + gamepadBinding: {fileID: 11400000, guid: 35844ec4f29bfd643866a2dc26c4031c, type: 2} --- !u!1 &6262495489912555994 GameObject: m_ObjectHideFlags: 0 @@ -2119,6 +2156,7 @@ MonoBehaviour: key: {fileID: 11400000, guid: 8fa70b4cecf91e64bb8b56f58df9a018, type: 2} castingStateController: {fileID: 7040887640505163424} onAbilityKeyBinderSpawned: {fileID: 11400000, guid: 9bfd488187aea4848a890711a2d587c8, type: 2} + gamepadBinding: {fileID: 11400000, guid: 1b1841e76dc92c54497a6b0cc65a3b4c, type: 2} --- !u!1 &6842177883150729818 GameObject: m_ObjectHideFlags: 0 @@ -2338,6 +2376,7 @@ MonoBehaviour: key: {fileID: 11400000, guid: 89726de95474445429e07386fe137ed0, type: 2} castingStateController: {fileID: 7040887640505163424} onAbilityKeyBinderSpawned: {fileID: 11400000, guid: 9bfd488187aea4848a890711a2d587c8, type: 2} + gamepadBinding: {fileID: 11400000, guid: cb70b7a88547bc045abb0f2ed54807d1, type: 2} --- !u!1 &7350507655590327706 GameObject: m_ObjectHideFlags: 0 @@ -2539,6 +2578,11 @@ MonoBehaviour: movementMask: serializedVersion: 2 m_Bits: 8 + defaultTargetDistance: 2 + minDistance: 1 + maxDistance: 6 + distanceAdjustSpeed: 5 + gamepadDeadzone: 0.2 --- !u!1 &8131561142356934979 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/0-Splash.unity b/Assets/Scenes/0-Splash.unity index e2ce41e4..b03eadb7 100644 --- a/Assets/Scenes/0-Splash.unity +++ b/Assets/Scenes/0-Splash.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.06332277, g: 0.12671807, b: 0.13228, a: 1} + m_IndirectSpecularColor: {r: 0.027658941, g: 0.058103442, b: 0.061011355, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -1649,7 +1649,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2959850296485017366, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchoredPosition.x - value: 168.74998 + value: 0 objectReference: {fileID: 0} - target: {fileID: 2959850296485017366, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchoredPosition.y @@ -2365,7 +2365,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7475116342296380174, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchoredPosition.x - value: 506.24997 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7475116342296380174, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchoredPosition.y diff --git a/Assets/Scriptables/Data/Resources/Abilities/Debug/Player/Potion.asset b/Assets/Scriptables/Data/Resources/Abilities/Debug/Player/Potion.asset index f8b591d2..2e8e0918 100644 --- a/Assets/Scriptables/Data/Resources/Abilities/Debug/Player/Potion.asset +++ b/Assets/Scriptables/Data/Resources/Abilities/Debug/Player/Potion.asset @@ -12,6 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4e59b462147ebfc49a7a387e9bf168f4, type: 3} m_Name: Potion m_EditorClassIdentifier: + displayName: Icon: {fileID: 21300000, guid: 00bb925151ca0004882e11e583903f24, type: 3} targettingTags: - {fileID: 11400000, guid: 9e6b298c2ce2856418b205442417a433, type: 2} @@ -21,7 +22,9 @@ MonoBehaviour: manaCost: 0 healthCost: 0 classResourceCost: 0 + percentMaxManaCost: 0 + percentMaxHealthCost: 0 cooldown: 20 castableWhileMoving: 1 - animationType: 6 + animationType: 7 healingPercent: 0.6 diff --git a/Assets/Scripts/AoERayHitLocationSnapshotController.cs b/Assets/Scripts/AoERayHitLocationSnapshotController.cs index 652fc269..0fc949d7 100644 --- a/Assets/Scripts/AoERayHitLocationSnapshotController.cs +++ b/Assets/Scripts/AoERayHitLocationSnapshotController.cs @@ -1,6 +1,4 @@ using Photon.Pun; -using System.Collections; -using System.Collections.Generic; using UnityEngine; public class AoERayHitLocationSnapshotController : MonoBehaviour @@ -8,28 +6,44 @@ public class AoERayHitLocationSnapshotController : MonoBehaviour public Transform aoeRayHitLocationSnapshot; public LayerMask movementMask; + [Header("Gamepad Settings")] + [SerializeField] private float defaultTargetDistance = 5f; + [SerializeField] private float minDistance = 2f; + [SerializeField] private float maxDistance = 10f; + [SerializeField] private float distanceAdjustSpeed = 5f; + [SerializeField] private float gamepadDeadzone = 0.2f; + protected PhotonView photonView; - - Ray ray; + protected Ray ray; protected RaycastHit hit; - - protected Vector3 targetPoint = new Vector3(); - - bool isCasting; + protected Vector3 targetPoint = Vector3.zero; + protected bool isCasting; + protected bool isUsingGamepad; + protected float currentTargetDistance; + protected Vector3 lastValidAimDirection; protected virtual void Awake() { photonView = GetComponentInParent(); aoeRayHitLocationSnapshot.parent = null; + currentTargetDistance = defaultTargetDistance; + lastValidAimDirection = transform.forward; } private void OnEnable() { - CastBarHandler.Instance.OnCastingStateChanged.AddListener(UpdateIsCastingState); + if (CastBarHandler.Instance != null) + { + CastBarHandler.Instance.OnCastingStateChanged.AddListener(UpdateIsCastingState); + } } + private void OnDisable() { - CastBarHandler.Instance.OnCastingStateChanged.RemoveListener(UpdateIsCastingState); + if (CastBarHandler.Instance != null) + { + CastBarHandler.Instance.OnCastingStateChanged.RemoveListener(UpdateIsCastingState); + } } protected virtual void Start() @@ -37,24 +51,140 @@ public class AoERayHitLocationSnapshotController : MonoBehaviour if (!photonView.IsMine) this.enabled = false; } + protected virtual void Update() + { + if (Camera.main == null) return; + if (isCasting) return; + + DetectInputMethod(); + + if (isUsingGamepad) + { + HandleGamepadAiming(); + } + else + { + HandleMouseAiming(); + } + } + + private void DetectInputMethod() + { + Vector2 gamepadLook = new Vector2( + Input.GetAxisRaw(GameConstants.Input.AimHorizontalAxis), + Input.GetAxisRaw(GameConstants.Input.AimVerticalAxis) + ); + + float rightTrigger = Input.GetAxisRaw("RightTrigger"); + float leftTrigger = Input.GetAxisRaw("LeftTrigger"); + bool triggerInput = Mathf.Abs(rightTrigger) > gamepadDeadzone || Mathf.Abs(leftTrigger) > gamepadDeadzone; + + if (gamepadLook.magnitude > gamepadDeadzone || triggerInput) + { + isUsingGamepad = true; + } + else if (Input.GetAxisRaw("Mouse X") != 0 || Input.GetAxisRaw("Mouse Y") != 0) + { + isUsingGamepad = false; + } + } + + private void HandleGamepadAiming() + { + // Get aim direction from right stick + Vector2 aimInput = new Vector2( + Input.GetAxisRaw(GameConstants.Input.AimHorizontalAxis), + Input.GetAxisRaw(GameConstants.Input.AimVerticalAxis) + ); + + // Update target distance based on both triggers + float rightTrigger = Input.GetAxisRaw("RightTrigger"); + float leftTrigger = Input.GetAxisRaw("LeftTrigger"); + + // Right trigger increases distance, left trigger decreases + float distanceChange = (rightTrigger - leftTrigger) * distanceAdjustSpeed * Time.deltaTime; + currentTargetDistance += distanceChange; + currentTargetDistance = Mathf.Clamp(currentTargetDistance, minDistance, maxDistance); + + // Calculate target position + Vector3 aimDirection; + if (aimInput.magnitude > gamepadDeadzone) + { + Vector3 cameraForward = Camera.main.transform.forward; + Vector3 cameraRight = Camera.main.transform.right; + cameraForward.y = 0f; + cameraRight.y = 0f; + cameraForward.Normalize(); + cameraRight.Normalize(); + + aimDirection = (cameraForward * aimInput.y + cameraRight * aimInput.x).normalized; + lastValidAimDirection = aimDirection; + } + else + { + aimDirection = lastValidAimDirection; + } + + // Calculate target position with ground detection + Vector3 targetPosition = transform.position + aimDirection * currentTargetDistance; + ray = new Ray(targetPosition + Vector3.up * 10f, Vector3.down); + + if (Physics.Raycast(ray, out hit, 20f, movementMask)) + { + aoeRayHitLocationSnapshot.position = hit.point; + } + else + { + // Fallback if no ground is hit + targetPosition.y = transform.position.y; + aoeRayHitLocationSnapshot.position = targetPosition; + } + } + private void HandleMouseAiming() + { + ray = Camera.main.ScreenPointToRay(Input.mousePosition); + + if (Physics.Raycast(ray, out hit, 100f, movementMask)) + { + aoeRayHitLocationSnapshot.position = hit.point; + } + } + private void UpdateIsCastingState(bool isCasting) { this.isCasting = isCasting; if (isCasting) { - ray = Camera.main.ScreenPointToRay(Input.mousePosition); - - if (Physics.Raycast(ray, out hit, 100f, movementMask)) + if (isUsingGamepad) { - aoeRayHitLocationSnapshot.position = hit.point; + // Store the current AOE position for the cast + Vector3 currentPos = aoeRayHitLocationSnapshot.position; + currentPos.y = transform.position.y; + targetPoint = currentPos; + } + else + { + ray = Camera.main.ScreenPointToRay(Input.mousePosition); + if (Physics.Raycast(ray, out hit, 100f, movementMask)) + { + targetPoint = hit.point; + } } } } - private void OnDestroy() + private void OnDrawGizmosSelected() { - if (aoeRayHitLocationSnapshot != null) - Destroy(aoeRayHitLocationSnapshot.gameObject); + if (!Application.isPlaying) return; + + // Draw the current target distance + Gizmos.color = Color.yellow; + Gizmos.DrawWireSphere(transform.position, currentTargetDistance); + + // Draw the min/max range + Gizmos.color = Color.red; + Gizmos.DrawWireSphere(transform.position, minDistance); + Gizmos.DrawWireSphere(transform.position, maxDistance); } -} +} \ No newline at end of file diff --git a/Assets/Scripts/CharacterAnimatorController.cs b/Assets/Scripts/CharacterAnimatorController.cs index e2fd838a..bf41bb58 100644 --- a/Assets/Scripts/CharacterAnimatorController.cs +++ b/Assets/Scripts/CharacterAnimatorController.cs @@ -22,6 +22,8 @@ public class CharacterAnimatorController : MonoBehaviour public UnityEvent onFishingEnding = new UnityEvent(); public UnityEvent onFishingEnded = new UnityEvent(); + PlayerMovement playerMovement; + private void Awake() { anim = GetComponent(); @@ -29,6 +31,8 @@ public class CharacterAnimatorController : MonoBehaviour photonView = GetComponentInParent(); parentController = GetComponentInParent(); characterSpin = photonView.GetComponentInChildren(); + + playerMovement = GetComponentInParent(); } // Start is called before the first frame update @@ -68,6 +72,12 @@ public class CharacterAnimatorController : MonoBehaviour } anim.SetFloat("movementSpeed", agent.velocity.magnitude); + + if(playerMovement !=null) + { + anim.SetFloat("HorizontalAxis", Mathf.Clamp(playerMovement.relativeMovementDirection.x, -1f, 1f)); + anim.SetFloat("VerticalAxis", Mathf.Clamp(playerMovement.relativeMovementDirection.y, -1f, 1f)); + } } private void UpdateIsCastingState(bool isCasting) diff --git a/Assets/Scripts/Game/GameConstants.cs b/Assets/Scripts/Game/GameConstants.cs index 7916767f..9d7ecb33 100644 --- a/Assets/Scripts/Game/GameConstants.cs +++ b/Assets/Scripts/Game/GameConstants.cs @@ -67,6 +67,34 @@ public static class GameConstants } + public static class Input + { + // Movement + public const string HorizontalAxis = "Horizontal"; + public const string VerticalAxis = "Vertical"; + + // Aiming + public const string AimHorizontalAxis = "RightStickHorizontal"; + public const string AimVerticalAxis = "RightStickVertical"; + + // Triggers + public const string RightTrigger = "RightTrigger"; + public const string LeftTrigger = "LeftTrigger"; + + // Face Buttons + public const string ActionButton = "Submit"; + public const string CancelButton = "Cancel"; + public const string MenuButton = "Menu"; + + // Shoulder Buttons + public const string RightShoulder = "RightShoulder"; + public const string LeftShoulder = "LeftShoulder"; + + // D-Pad + public const string DPadHorizontal = "DPadHorizontal"; + public const string DPadVertical = "DPadVertical"; + } + public static class Audio { diff --git a/Assets/Scripts/Game/complete-input-config.cs b/Assets/Scripts/Game/complete-input-config.cs new file mode 100644 index 00000000..96aa1166 --- /dev/null +++ b/Assets/Scripts/Game/complete-input-config.cs @@ -0,0 +1,372 @@ +using UnityEngine; +using UnityEditor; +using System.Collections.Generic; + +public class GameInputSetup +{ + [MenuItem("Tools/Setup Complete Game Input")] + public static void SetupGameInput() + { + var inputManagerPath = "ProjectSettings/InputManager.asset"; + var serializedObject = new SerializedObject(AssetDatabase.LoadAllAssetsAtPath(inputManagerPath)[0]); + var axesProperty = serializedObject.FindProperty("m_Axes"); + + // First clear any existing duplicates + ClearExistingAxes(axesProperty); + + var axes = new List() + { + // Movement - Left Stick + new InputAxis() + { + name = "Horizontal", + descriptiveName = "Left Stick Horizontal", + deadZone = 0.2f, + sensitivity = 1f, + type = 2, + axis = 0, + joyNum = 0 + }, + new InputAxis() + { + name = "Vertical", + descriptiveName = "Left Stick Vertical", + deadZone = 0.2f, + sensitivity = 1f, + type = 2, + axis = 1, + invert = true, + joyNum = 0 + }, + // Keyboard Movement + new InputAxis() + { + name = "Horizontal", + negativeButton = "a", + positiveButton = "d", + gravity = 3f, + sensitivity = 3f, + type = 0, + }, + new InputAxis() + { + name = "Vertical", + negativeButton = "s", + positiveButton = "w", + gravity = 3f, + sensitivity = 3f, + type = 0, + }, + + // Aiming - Right Stick + new InputAxis() + { + name = "RightStickHorizontal", + descriptiveName = "Right Stick Horizontal", + deadZone = 0.2f, + sensitivity = 1f, + type = 2, + axis = 3, + joyNum = 0 + }, + // Alternative mapping for different controllers + new InputAxis() + { + name = "RightStickHorizontal", + descriptiveName = "Right Stick Horizontal Alt", + deadZone = 0.2f, + sensitivity = 1f, + type = 2, + axis = 5, + joyNum = 0 + }, + new InputAxis() + { + name = "RightStickVertical", + descriptiveName = "Right Stick Vertical", + deadZone = 0.2f, + sensitivity = 1f, + type = 2, + axis = 4, + invert = true, + joyNum = 0 + }, + // Alternative mapping for different controllers + new InputAxis() + { + name = "RightStickVertical", + descriptiveName = "Right Stick Vertical Alt", + deadZone = 0.2f, + sensitivity = 1f, + type = 2, + axis = 6, + invert = true, + joyNum = 0 + }, + + // Primary Abilities (Face Buttons) + new InputAxis() + { + name = "Ability1", + descriptiveName = "Primary Ability (A/X)", + positiveButton = "joystick button 0", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "Ability1", + positiveButton = "1", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "Ability2", + descriptiveName = "Secondary Ability (B/Circle)", + positiveButton = "joystick button 1", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "Ability2", + positiveButton = "2", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "Ability3", + descriptiveName = "Third Ability (X/Square)", + positiveButton = "joystick button 2", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "Ability3", + positiveButton = "3", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "Ability4", + descriptiveName = "Fourth Ability (Y/Triangle)", + positiveButton = "joystick button 3", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "Ability4", + positiveButton = "4", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + + // UI and Special Actions + new InputAxis() + { + name = "Interact", + descriptiveName = "Interact/Confirm", + positiveButton = "joystick button 0", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "Interact", + positiveButton = "e", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "Menu", + descriptiveName = "Menu/Pause", + positiveButton = "joystick button 7", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "Menu", + positiveButton = "escape", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "Inventory", + descriptiveName = "Inventory Toggle", + positiveButton = "joystick button 6", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "Inventory", + positiveButton = "i", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + + // Shoulder Buttons and Triggers + new InputAxis() + { + name = "LeftTrigger", + descriptiveName = "Left Trigger", + deadZone = 0.2f, + sensitivity = 1f, + type = 2, + axis = 8, + joyNum = 0 + }, + new InputAxis() + { + name = "RightTrigger", + descriptiveName = "Right Trigger", + deadZone = 0.2f, + sensitivity = 1f, + type = 2, + axis = 9, + joyNum = 0 + }, + new InputAxis() + { + name = "LeftBumper", + descriptiveName = "Left Bumper", + positiveButton = "joystick button 4", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + new InputAxis() + { + name = "RightBumper", + descriptiveName = "Right Bumper", + positiveButton = "joystick button 5", + gravity = 1000, + sensitivity = 1000, + type = 0 + }, + + // D-Pad + new InputAxis() + { + name = "DPadHorizontal", + descriptiveName = "D-Pad Horizontal", + deadZone = 0.2f, + sensitivity = 1f, + type = 2, + axis = 5, + joyNum = 0 + }, + new InputAxis() + { + name = "DPadVertical", + descriptiveName = "D-Pad Vertical", + deadZone = 0.2f, + sensitivity = 1f, + type = 2, + axis = 6, + invert = true, + joyNum = 0 + } + }; + + foreach (var axis in axes) + { + AddAxis(axesProperty, axis); + } + + serializedObject.ApplyModifiedProperties(); + Debug.Log("Input Manager setup complete! All game controls have been configured."); + } + + private static void ClearExistingAxes(SerializedProperty axesProperty) + { + var axesToClear = new HashSet + { + "RightStickHorizontal", "RightStickVertical", + "Ability1", "Ability2", "Ability3", "Ability4", + "LeftTrigger", "RightTrigger", + "LeftBumper", "RightBumper", + "DPadHorizontal", "DPadVertical" + }; + + var axesToRemove = new List(); + for (int i = 0; i < axesProperty.arraySize; ++i) + { + var axisProp = axesProperty.GetArrayElementAtIndex(i); + var name = axisProp.FindPropertyRelative("m_Name").stringValue; + if (axesToClear.Contains(name)) + { + axesToRemove.Add(i); + } + } + + for (int i = axesToRemove.Count - 1; i >= 0; --i) + { + axesProperty.DeleteArrayElementAtIndex(axesToRemove[i]); + } + } + + private static void AddAxis(SerializedProperty axesProperty, InputAxis axis) + { + axesProperty.arraySize++; + var axisProperty = axesProperty.GetArrayElementAtIndex(axesProperty.arraySize - 1); + + axisProperty.FindPropertyRelative("m_Name").stringValue = axis.name; + axisProperty.FindPropertyRelative("descriptiveName").stringValue = axis.descriptiveName; + axisProperty.FindPropertyRelative("descriptiveNegativeName").stringValue = axis.descriptiveNegativeName; + axisProperty.FindPropertyRelative("negativeButton").stringValue = axis.negativeButton; + axisProperty.FindPropertyRelative("positiveButton").stringValue = axis.positiveButton; + axisProperty.FindPropertyRelative("altNegativeButton").stringValue = axis.altNegativeButton; + axisProperty.FindPropertyRelative("altPositiveButton").stringValue = axis.altPositiveButton; + axisProperty.FindPropertyRelative("gravity").floatValue = axis.gravity; + axisProperty.FindPropertyRelative("dead").floatValue = axis.deadZone; + axisProperty.FindPropertyRelative("sensitivity").floatValue = axis.sensitivity; + axisProperty.FindPropertyRelative("snap").boolValue = axis.snap; + axisProperty.FindPropertyRelative("invert").boolValue = axis.invert; + axisProperty.FindPropertyRelative("type").intValue = axis.type; + axisProperty.FindPropertyRelative("axis").intValue = axis.axis; + axisProperty.FindPropertyRelative("joyNum").intValue = axis.joyNum; + } +} + +[System.Serializable] +public class InputAxis +{ + public string name = ""; + public string descriptiveName = ""; + public string descriptiveNegativeName = ""; + public string negativeButton = ""; + public string positiveButton = ""; + public string altNegativeButton = ""; + public string altPositiveButton = ""; + public float gravity = 0f; + public float deadZone = 0f; + public float sensitivity = 0f; + public bool snap = false; + public bool invert = false; + public int type = 0; + public int axis = 0; + public int joyNum = 0; +} \ No newline at end of file diff --git a/Assets/Scripts/Game/complete-input-config.cs.meta b/Assets/Scripts/Game/complete-input-config.cs.meta new file mode 100644 index 00000000..01061475 --- /dev/null +++ b/Assets/Scripts/Game/complete-input-config.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 08ac96afd5da953418079f41c9812057 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Input.meta b/Assets/Scripts/Input.meta new file mode 100644 index 00000000..d1ce7eb5 --- /dev/null +++ b/Assets/Scripts/Input.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a86db79d0a81a6a4d96de5d131aba5e9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Input/GameInputBinding.cs b/Assets/Scripts/Input/GameInputBinding.cs new file mode 100644 index 00000000..f5d3e45c --- /dev/null +++ b/Assets/Scripts/Input/GameInputBinding.cs @@ -0,0 +1,51 @@ +// GameInputBinding.cs +using UnityEngine; + +[CreateAssetMenu(fileName = "InputBinding", menuName = "RiftMayhem/Input/Input Binding")] +public class GameInputBinding : ScriptableObject +{ + public string bindingName; + public KeyCode keyboardKey; + public string gamepadButton; + public string gamepadAxis; + public bool isAxis; + public float axisDeadzone = 0.2f; + + public float GetValue() + { + if (isAxis && !string.IsNullOrEmpty(gamepadAxis)) + { + float axisValue = Input.GetAxis(gamepadAxis); + return Mathf.Abs(axisValue) > axisDeadzone ? axisValue : 0f; + } + + if (!string.IsNullOrEmpty(bindingName) && Input.GetButton(bindingName)) + return 1f; + + return Input.GetKey(keyboardKey) ? 1f : 0f; + } + + public bool GetButtonDown() + { + if (!string.IsNullOrEmpty(bindingName) && Input.GetButtonDown(bindingName)) + return true; + + return Input.GetKeyDown(keyboardKey); + } + + public bool GetButton() + { + if (!string.IsNullOrEmpty(bindingName) && Input.GetButton(bindingName)) + return true; + + return Input.GetKey(keyboardKey); + } + + public bool GetButtonUp() + { + if (!string.IsNullOrEmpty(bindingName) && Input.GetButtonUp(bindingName)) + return true; + + return Input.GetKeyUp(keyboardKey); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Input/GameInputBinding.cs.meta b/Assets/Scripts/Input/GameInputBinding.cs.meta new file mode 100644 index 00000000..9a1c5a5d --- /dev/null +++ b/Assets/Scripts/Input/GameInputBinding.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c84fbdfdd7da4cb47bb5d1783a2b1058 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Input/GameInputManager.cs b/Assets/Scripts/Input/GameInputManager.cs new file mode 100644 index 00000000..b9c52ff2 --- /dev/null +++ b/Assets/Scripts/Input/GameInputManager.cs @@ -0,0 +1,92 @@ +// GameInputManager.cs +using UnityEngine; +using System.Collections.Generic; + +public class GameInputManager : MonoBehaviour +{ + private static GameInputManager _instance; + public static GameInputManager Instance => _instance; + + public bool isUsingGamepad { get; private set; } + + [SerializeField] private float gamepadDetectionThreshold = 0.1f; + + private Dictionary inputBindings = new Dictionary(); + + private void Awake() + { + if (_instance != null && _instance != this) + { + Destroy(gameObject); + return; + } + _instance = this; + DontDestroyOnLoad(gameObject); + + LoadInputBindings(); + } + + private void Update() + { + DetectInputMethod(); + } + + private void DetectInputMethod() + { + // Check gamepad input + bool gamepadInput = + Mathf.Abs(Input.GetAxis(GameConstants.Input.HorizontalAxis)) > gamepadDetectionThreshold || + Mathf.Abs(Input.GetAxis(GameConstants.Input.VerticalAxis)) > gamepadDetectionThreshold || + Mathf.Abs(Input.GetAxis(GameConstants.Input.AimHorizontalAxis)) > gamepadDetectionThreshold || + Mathf.Abs(Input.GetAxis(GameConstants.Input.AimVerticalAxis)) > gamepadDetectionThreshold || + Input.GetAxis(GameConstants.Input.RightTrigger) > gamepadDetectionThreshold || + Input.GetAxis(GameConstants.Input.LeftTrigger) > gamepadDetectionThreshold; + + if (gamepadInput) + { + isUsingGamepad = true; + } + else if (Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1) || Input.anyKeyDown) + { + isUsingGamepad = false; + } + } + + private void LoadInputBindings() + { + var bindings = Resources.LoadAll("InputBindings"); + foreach (var binding in bindings) + { + inputBindings[binding.bindingName] = binding; + Debug.Log(binding.bindingName); + } + } + + public float GetValue(string bindingName) + { + if (inputBindings.TryGetValue(bindingName, out GameInputBinding binding)) + return binding.GetValue(); + return 0f; + } + + public bool GetButtonDown(string bindingName) + { + if (inputBindings.TryGetValue(bindingName, out GameInputBinding binding)) + return binding.GetButtonDown(); + return false; + } + + public bool GetButton(string bindingName) + { + if (inputBindings.TryGetValue(bindingName, out GameInputBinding binding)) + return binding.GetButton(); + return false; + } + + public bool GetButtonUp(string bindingName) + { + if (inputBindings.TryGetValue(bindingName, out GameInputBinding binding)) + return binding.GetButtonUp(); + return false; + } +} \ No newline at end of file diff --git a/Assets/Scripts/Input/GameInputManager.cs.meta b/Assets/Scripts/Input/GameInputManager.cs.meta new file mode 100644 index 00000000..7c9e34f7 --- /dev/null +++ b/Assets/Scripts/Input/GameInputManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6ae8fd3e6ba25e441b159d1c9468be7f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Input/PlayerInput.cs b/Assets/Scripts/Input/PlayerInput.cs new file mode 100644 index 00000000..79bd722e --- /dev/null +++ b/Assets/Scripts/Input/PlayerInput.cs @@ -0,0 +1,99 @@ +using Photon.Pun; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class PlayerInput : MonoBehaviour +{ + [Header("UI References")] + [SerializeField] private GameObject characterPanel; + [SerializeField] private GameObject inventoryPanel; + [SerializeField] private GameObject radialMenu; + + private PhotonView photonView; + private bool isRadialMenuOpen; + + private void Awake() + { + photonView = GetComponent(); + } + + private void Update() + { + if (!photonView.IsMine) return; + + // D-Pad controls + if (Input.GetButtonDown("DPadUp")) + { + TogglePanel(characterPanel); + } + if (Input.GetButtonDown("DPadDown")) + { + TogglePanel(inventoryPanel); + } + + // Radial Menu + float leftTrigger = Input.GetAxisRaw("LeftTrigger"); + if (leftTrigger > 0.5f && !isRadialMenuOpen) + { + OpenRadialMenu(); + } + else if (leftTrigger < 0.5f && isRadialMenuOpen) + { + CloseRadialMenu(); + } + + if (isRadialMenuOpen) + { + // Handle radial menu selection with right stick + Vector2 rightStick = new Vector2( + Input.GetAxisRaw("RightStickHorizontal"), + Input.GetAxisRaw("RightStickVertical") + ); + + if (rightStick.magnitude > 0.5f) + { + UpdateRadialMenuSelection(rightStick); + } + } + } + + private void TogglePanel(GameObject panel) + { + if (panel.activeSelf) + { + panel.SetActive(false); + } + else + { + // Close other panels first + characterPanel.SetActive(false); + inventoryPanel.SetActive(false); + // Open requested panel + panel.SetActive(true); + } + } + + private void OpenRadialMenu() + { + isRadialMenuOpen = true; + radialMenu.SetActive(true); + Time.timeScale = 0.2f; // Slow down time while menu is open + } + + private void CloseRadialMenu() + { + isRadialMenuOpen = false; + radialMenu.SetActive(false); + Time.timeScale = 1f; + } + + private void UpdateRadialMenuSelection(Vector2 direction) + { + float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg; + if (angle < 0) angle += 360f; + + // Update radial menu UI based on angle + // Each menu item covers 360° / number_of_items degrees + } +} \ No newline at end of file diff --git a/Assets/Scripts/Input/PlayerInput.cs.meta b/Assets/Scripts/Input/PlayerInput.cs.meta new file mode 100644 index 00000000..b2ea1f8e --- /dev/null +++ b/Assets/Scripts/Input/PlayerInput.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0a3ff82ff22325446bdcc5e679d6bfc9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Interactable.cs b/Assets/Scripts/Interactable.cs index 99248591..52f1e86f 100644 --- a/Assets/Scripts/Interactable.cs +++ b/Assets/Scripts/Interactable.cs @@ -66,6 +66,25 @@ public class Interactable : MonoBehaviour hasInteracted = false; } + // Add these methods to support gamepad interaction + public virtual void OnHighlight() + { + // Add highlight visual effect + // For example, outline shader, floating arrow, etc. + } + + public virtual void OnUnhighlight() + { + // Remove highlight effect + } + + public virtual string GetInteractionText() + { + // Return the interaction prompt text + // e.g., "Talk", "Loot", "Open", etc. + return "Interact"; + } + private void OnDrawGizmosSelected() { if (interactionTransform == null) diff --git a/Assets/Scripts/Interactables/GamepadInteractionController.cs b/Assets/Scripts/Interactables/GamepadInteractionController.cs new file mode 100644 index 00000000..aeed7504 --- /dev/null +++ b/Assets/Scripts/Interactables/GamepadInteractionController.cs @@ -0,0 +1,142 @@ +using Photon.Pun; +using System.Collections; +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +public class GamepadInteractionController : MonoBehaviour +{ + [Header("Settings")] + [SerializeField] private float interactionRadius = 3f; + [SerializeField] private float highlightRadius = 5f; + [SerializeField] private LayerMask interactableMask; + + [Header("UI References")] + [SerializeField] private GameObject interactionPrompt; + [SerializeField] private Image interactionIcon; + [SerializeField] private TMP_Text interactionText; + + private List nearbyInteractables = new List(); + private Interactable currentTarget; + private PhotonView photonView; + private bool isShowingInteractables; + + private void Awake() + { + photonView = GetComponent(); + } + + private void Update() + { + if (!photonView.IsMine) return; + + // Show interactables when holding Right Trigger + float rightTrigger = Input.GetAxisRaw("RightTrigger"); + isShowingInteractables = rightTrigger > 0.5f; + + if (isShowingInteractables) + { + UpdateNearbyInteractables(); + HighlightClosestInteractable(); + } + else + { + ClearHighlights(); + } + + // Interact with Right Bumper + if (Input.GetButtonDown("RightBumper") && currentTarget != null) + { + InteractWithCurrent(); + } + } + + private void UpdateNearbyInteractables() + { + nearbyInteractables.Clear(); + Collider[] colliders = Physics.OverlapSphere(transform.position, highlightRadius, interactableMask); + + foreach (var collider in colliders) + { + if (collider.TryGetComponent(out var interactable)) + { + nearbyInteractables.Add(interactable); + } + } + } + + private void HighlightClosestInteractable() + { + float closestDistance = float.MaxValue; + Interactable closest = null; + + foreach (var interactable in nearbyInteractables) + { + float distance = Vector3.Distance(transform.position, interactable.transform.position); + if (distance < closestDistance) + { + closestDistance = distance; + closest = interactable; + } + } + + // Only highlight if within interaction range + if (closest != null && closestDistance <= interactionRadius) + { + SetCurrentTarget(closest); + } + else + { + ClearCurrentTarget(); + } + } + + private void SetCurrentTarget(Interactable target) + { + if (currentTarget != target) + { + ClearCurrentTarget(); + currentTarget = target; + + // Show interaction prompt + interactionPrompt.SetActive(true); + interactionText.text = $"Press RB to {target.GetInteractionText()}"; + + // Highlight the interactable + target.OnHighlight(); + } + } + + private void ClearCurrentTarget() + { + if (currentTarget != null) + { + currentTarget.OnUnhighlight(); + currentTarget = null; + interactionPrompt.SetActive(false); + } + } + + private void ClearHighlights() + { + foreach (var interactable in nearbyInteractables) + { + interactable.OnUnhighlight(); + } + nearbyInteractables.Clear(); + ClearCurrentTarget(); + } + + private void InteractWithCurrent() + { + if (currentTarget != null) + { + float distance = Vector3.Distance(transform.position, currentTarget.transform.position); + if (distance <= interactionRadius) + { + currentTarget.Interact(true); + } + } + } +} diff --git a/Assets/Scripts/Interactables/GamepadInteractionController.cs.meta b/Assets/Scripts/Interactables/GamepadInteractionController.cs.meta new file mode 100644 index 00000000..b86764c7 --- /dev/null +++ b/Assets/Scripts/Interactables/GamepadInteractionController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: daa95e02f22b83b4d8d44e8af7a5e1f8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Player/AbilityKeyBinder.cs b/Assets/Scripts/Player/AbilityKeyBinder.cs index b03b12fc..68907e4a 100644 --- a/Assets/Scripts/Player/AbilityKeyBinder.cs +++ b/Assets/Scripts/Player/AbilityKeyBinder.cs @@ -1,7 +1,6 @@ using Kryz.CharacterStats.Examples; using Photon.Pun; using System.Collections; -using System.Collections.Generic; using UnityEngine; public class AbilityKeyBinder : MonoBehaviour @@ -15,6 +14,7 @@ public class AbilityKeyBinder : MonoBehaviour [SerializeField] private GameKey key; [SerializeField] private CastingStateController castingStateController; [SerializeField] private GameEvent_AbilityKeyBinder onAbilityKeyBinderSpawned; + [SerializeField] private GameInputBinding gamepadBinding; // New field for gamepad binding private PhotonView user; private Taggable userTag; @@ -56,31 +56,38 @@ public class AbilityKeyBinder : MonoBehaviour onLocalPlayerFainted.Response.AddListener(() => { isDead = true; - }); onLocalPlayerPermaDeath.Response.AddListener(() => { isDead = true; - }); onLocalPlayerRevived.Response.AddListener(() => { isDead = false; - }); onAbilityKeyBinderSpawned.Raise(this); } - // Update is called once per frame + void Update() { if (isDead) return; - if (Input.GetKeyDown(key.keyCode)) + // Check for input using both keyboard and gamepad + bool isInputPressed = + (key != null && Input.GetKeyDown(key.keyCode)) || + (!string.IsNullOrEmpty(gamepadBinding.bindingName) && GameInputManager.Instance.GetButtonDown(gamepadBinding.bindingName)); + + bool isInputReleased = + (key != null && Input.GetKeyUp(key.keyCode)) || + (!string.IsNullOrEmpty(gamepadBinding.bindingName) && GameInputManager.Instance.GetButtonUp(gamepadBinding.bindingName)); + + if (isInputPressed) { if (abilityBindInstance != null) abilityBindInstance.pressed.SetActive(true); - if (IsAbilityOffCooldown() && mana.EnoughMana(ability.GetFinalManaCost(mana)) && health.EnoughHealth(ability.GetFinalHealthCost(health))) + + if (IsAbilityOffCooldown() && mana.EnoughMana(ability.GetFinalManaCost(mana)) && health.EnoughHealth(ability.GetFinalHealthCost(health))) { if (ability is ChanneledAbility) { @@ -108,13 +115,14 @@ public class AbilityKeyBinder : MonoBehaviour } } } - if (Input.GetKeyUp(key.keyCode)) + + if (isInputReleased) { if (abilityBindInstance != null) abilityBindInstance.pressed.SetActive(false); + if (currentChanneling != null) { - if (networkedChanneling != null) { networkedChanneling.StopCoroutine(currentChanneling); @@ -148,6 +156,7 @@ public class AbilityKeyBinder : MonoBehaviour abilityBindInstance.manaCost.text = finalManaCost.ToString("F0"); abilityBindInstance.noMana.SetActive(!mana.EnoughMana(finalManaCost)); } + public void OnHealthChanged(float currentHealth) { finalHealthCost = ability.GetFinalHealthCost(health); @@ -160,9 +169,11 @@ public class AbilityKeyBinder : MonoBehaviour { return ability.cooldown <= 0 || !cooldownTracker.OnCooldown(ability); } + public void BindAbility(BaseAbility ability) { this.ability = ability; onAbilityKeyBinderSpawned.Raise(this); } -} + +} \ No newline at end of file diff --git a/Assets/Scripts/Player/PlayerMovement.cs b/Assets/Scripts/Player/PlayerMovement.cs index cb485d62..90278f62 100644 --- a/Assets/Scripts/Player/PlayerMovement.cs +++ b/Assets/Scripts/Player/PlayerMovement.cs @@ -1,73 +1,301 @@ using Photon.Pun; -using System.Collections; -using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; +public enum MovementType +{ + PointAndClick, + DirectionalInput +} + [RequireComponent(typeof(NavMeshAgent))] public class PlayerMovement : MonoBehaviour { - [SerializeField] private float lookSpeed; + [Header("Movement Settings")] + [SerializeField] private float lookSpeed = 10f; + [SerializeField] private float gamepadRotationSpeed = 300f; + [SerializeField] private float minimumInputThreshold = 0.1f; + [SerializeField] private MovementType movementType = MovementType.DirectionalInput; - Transform target; - NavMeshAgent agent; + [Header("Controller Settings")] + [SerializeField] private float gamepadDeadzone = 0.2f; + [SerializeField] private AnimationCurve gamepadInputCurve = AnimationCurve.Linear(0, 0, 1, 1); - Vector3 direction = Vector3.zero; - Quaternion lookRotation = new Quaternion(); + [Header("Debug Visualization")] + [SerializeField] private bool showDebugVisuals = false; + private Transform target; + private NavMeshAgent agent; + private Vector3 direction = Vector3.zero; + private Quaternion lookRotation = Quaternion.identity; + private Camera mainCamera; + private Plane groundPlane; + private Vector2 lastGamepadAimInput; + private Vector3 lastAimDirection; + private bool isUsingGamepad; + private Vector3 currentMoveDirection; + private bool isMoving; + private PhotonView photonView; + private ProjectileSpawnLocationController aimController; + private Vector3 currentAimPoint; + private bool isAiming; - PhotonView photonView; - - ProjectileSpawnLocationController aimController; + public Vector2 currentMovementDirection= new Vector2(); + public Vector2 currentAimDirection = new Vector2(); + public Vector2 lastAimDirection2 = new Vector2(); + public Vector2 relativeMovementDirection = new Vector2(); + private Vector3 mouseAimPoint; + private bool hasMouseAimPoint; private void Awake() { agent = GetComponent(); photonView = GetComponent(); + mainCamera = Camera.main; + groundPlane = new Plane(Vector3.up, Vector3.zero); aimController = GetComponentInChildren(); + lastAimDirection = transform.forward; } - // Start is called before the first frame update void Start() { - if (!photonView.IsMine) this.enabled = false; - } - - private void OnDestroy() - { - - } - - // Update is called once per frame - void Update() - { - if (target != null) + if (!photonView.IsMine) { - agent.SetDestination(target.position); - FaceTarget(); + this.enabled = false; + return; } - if (CastBarHandler.Instance.currentAbility is ChanneledAbility && CastBarHandler.Instance.castBar.activeSelf) + SetupAgentForDirectionalMovement(); + } + + private void Update() + { + if (movementType == MovementType.DirectionalInput) { - if (((ChanneledAbility)CastBarHandler.Instance.currentAbility).allowAiming) + DetectInputMethod(); + + // Handle movement first + HandleDirectionalMovement(); + + // Then handle aiming, with mouse taking priority + if (!isUsingGamepad) { - InstantFaceCast(aimController.GetLookat()); + HandleMouseAiming(); } else { - return; + HandleGamepadAiming(); + hasMouseAimPoint = false; // Reset mouse aim when using gamepad } + + HandleRelativeForAnimation(); + } + else if (target != null) + { + HandlePointAndClickMovement(); + } + + // Handle channeled ability rotation + if (CastBarHandler.Instance.currentAbility is ChanneledAbility && + CastBarHandler.Instance.castBar.activeSelf) + { + var channelAbility = (ChanneledAbility)CastBarHandler.Instance.currentAbility; + if (channelAbility.allowAiming) + { + InstantFaceCast(aimController.GetLookat()); + } + } + } + + private void DetectInputMethod() + { + Vector2 gamepadMove = new Vector2( + Input.GetAxisRaw(GameConstants.Input.HorizontalAxis), + Input.GetAxisRaw(GameConstants.Input.VerticalAxis)); + Vector2 gamepadLook = new Vector2( + Input.GetAxisRaw(GameConstants.Input.AimHorizontalAxis), + Input.GetAxisRaw(GameConstants.Input.AimVerticalAxis)); + + // Check for mouse movement + if (Input.GetAxis("Mouse X") != 0 || Input.GetAxis("Mouse Y") != 0) + { + isUsingGamepad = false; + return; + } + + // Check for gamepad input + if (gamepadMove.magnitude > gamepadDeadzone || gamepadLook.magnitude > gamepadDeadzone) + { + isUsingGamepad = true; + hasMouseAimPoint = false; // Reset mouse aim when using gamepad + } + } + + private void HandleDirectionalMovement() + { + if (agent.isStopped) return; + + currentMovementDirection = new Vector2( + Input.GetAxisRaw(GameConstants.Input.HorizontalAxis), + Input.GetAxisRaw(GameConstants.Input.VerticalAxis)); + + Vector3 cameraForward = mainCamera.transform.forward; + Vector3 cameraRight = mainCamera.transform.right; + cameraForward.y = 0f; + cameraRight.y = 0f; + cameraForward.Normalize(); + cameraRight.Normalize(); + + currentMoveDirection = (cameraForward * currentMovementDirection.y + + cameraRight * currentMovementDirection.x).normalized; + isMoving = currentMoveDirection.magnitude >= minimumInputThreshold; + + if (isMoving) + { + agent.SetDestination(transform.position + currentMoveDirection); } else { - return; + agent.velocity = Vector3.zero; + agent.SetDestination(transform.position); + } + + // If we're using mouse aim, maintain character rotation even while moving + if (!isUsingGamepad && hasMouseAimPoint) + { + Vector3 aimDirection = (mouseAimPoint - transform.position).normalized; + if (aimDirection != Vector3.zero) + { + transform.rotation = Quaternion.LookRotation(aimDirection); + } + } + } + + private void HandleAimingRotation() + { + if (isUsingGamepad) + { + HandleGamepadAiming(); + } + else + { + HandleMouseAiming(); + } + } + + private void HandleGamepadAiming() + { + currentAimDirection = new Vector2( + Input.GetAxisRaw(GameConstants.Input.AimHorizontalAxis), + Input.GetAxisRaw(GameConstants.Input.AimVerticalAxis) + ); + + if (currentAimDirection.magnitude > gamepadDeadzone) + { + isAiming = true; + Vector3 cameraForward = mainCamera.transform.forward; + Vector3 cameraRight = mainCamera.transform.right; + cameraForward.y = 0f; + cameraRight.y = 0f; + + Vector3 aimDirection = (cameraForward * currentAimDirection.y + cameraRight * currentAimDirection.x).normalized; + lastAimDirection = aimDirection; + lastAimDirection2.x = aimDirection.x; + lastAimDirection2.y = aimDirection.z; + + Quaternion targetRotation = Quaternion.LookRotation(aimDirection); + transform.rotation = Quaternion.RotateTowards( + transform.rotation, + targetRotation, + gamepadRotationSpeed * Time.deltaTime + ); + } + // Remove the else { isAiming = false; } - we want to maintain the last aim direction + // Instead, maintain the last valid aim direction + else if (lastAimDirection != Vector3.zero) + { + Quaternion targetRotation = Quaternion.LookRotation(lastAimDirection); + transform.rotation = Quaternion.RotateTowards( + transform.rotation, + targetRotation, + gamepadRotationSpeed * Time.deltaTime + ); + } + } + + private void HandleRelativeForAnimation() + { + // Calculate forward/backward movement relative to aim direction + relativeMovementDirection.y = Vector2.Dot(lastAimDirection2, currentMovementDirection); + + // Calculate strafe movement relative to aim direction + // Cross product for left/right movement + relativeMovementDirection.x = lastAimDirection2.x * currentMovementDirection.y - + lastAimDirection2.y * currentMovementDirection.x; + } + private void HandleMouseAiming() + { + Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition); + + if (groundPlane.Raycast(ray, out float distance)) + { + mouseAimPoint = ray.GetPoint(distance); + mouseAimPoint.y = transform.position.y; + hasMouseAimPoint = true; + + Vector3 aimDirection = (mouseAimPoint - transform.position).normalized; + if (aimDirection != Vector3.zero) + { + lastAimDirection = aimDirection; + lastAimDirection2.x = aimDirection.x; + lastAimDirection2.y = aimDirection.z; + + // Always update rotation when using mouse + transform.rotation = Quaternion.LookRotation(aimDirection); + } + } + } + + private void HandlePointAndClickMovement() + { + agent.SetDestination(target.position); + FaceTarget(); + } + + private void SetupAgentForDirectionalMovement() + { + agent.updateRotation = false; + agent.stoppingDistance = 0f; + agent.acceleration = 100f; + agent.angularSpeed = 0f; + } + + #region Public Methods + + public void SetMovementType(MovementType type) + { + movementType = type; + if (movementType == MovementType.DirectionalInput) + { + SetupAgentForDirectionalMovement(); + } + else + { + agent.updateRotation = true; + agent.stoppingDistance = 0.5f; + agent.acceleration = 8f; + agent.angularSpeed = 120f; } } public void ToggleAgentMoving(bool busy) { agent.isStopped = busy; + if (busy) + { + agent.SetDestination(transform.position); + } } public void MoveToPoint(Vector3 point) @@ -79,7 +307,6 @@ public class PlayerMovement : MonoBehaviour { agent.stoppingDistance = newTarget.radius * 0.8f; agent.updateRotation = false; - target = newTarget.interactionTransform; FaceTarget(); } @@ -88,7 +315,6 @@ public class PlayerMovement : MonoBehaviour { agent.stoppingDistance = 0f; agent.updateRotation = true; - target = null; } @@ -127,6 +353,32 @@ public class PlayerMovement : MonoBehaviour public void StopLocomotion(int index) { StopFollowingTarget(); - agent.SetDestination(this.transform.position); + agent.SetDestination(transform.position); } -} + + #endregion + + #region Debug + + private void OnDrawGizmos() + { + if (!showDebugVisuals) return; + + // Draw movement direction + Gizmos.color = Color.blue; + Gizmos.DrawRay(transform.position, currentMoveDirection * 2f); + + // Draw aim direction + Gizmos.color = Color.red; + Gizmos.DrawRay(transform.position, lastAimDirection * 2f); + + // Draw aim point if using mouse + if (!isUsingGamepad) + { + Gizmos.color = Color.yellow; + Gizmos.DrawWireSphere(currentAimPoint, 0.2f); + } + } + + #endregion +} \ No newline at end of file diff --git a/Assets/Scripts/ProjectileSpawnLocationController.cs b/Assets/Scripts/ProjectileSpawnLocationController.cs index b5696fe3..33a0d34b 100644 --- a/Assets/Scripts/ProjectileSpawnLocationController.cs +++ b/Assets/Scripts/ProjectileSpawnLocationController.cs @@ -1,99 +1,199 @@ using Photon.Pun; -using System.Collections; -using System.Collections.Generic; using UnityEngine; public class ProjectileSpawnLocationController : MonoBehaviour { [SerializeField] protected Transform lookAt; - Plane plane = new Plane(Vector3.down, 0); + [SerializeField] private float gamepadDeadzone = 0.2f; protected PhotonView photonView; + protected PlayerMovement playerMovement; + Plane plane = new Plane(Vector3.up, 0); Ray ray; - - protected Vector3 targetPoint = new Vector3(); - + protected Vector3 targetPoint = Vector3.zero; bool isCasting; Vector3 castLookatSnapshot; + bool isUsingGamepad; + Vector3 lastValidAimDirection; protected virtual void Awake() { photonView = GetComponentInParent(); + playerMovement = GetComponentInParent(); + lastValidAimDirection = transform.forward; // Initialize with a default forward direction } private void OnEnable() { - CastBarHandler.Instance.OnCastingStateChanged.AddListener(UpdateIsCastingState); + if (CastBarHandler.Instance != null) + { + CastBarHandler.Instance.OnCastingStateChanged.AddListener(UpdateIsCastingState); + } } + private void OnDisable() { - CastBarHandler.Instance.OnCastingStateChanged.RemoveListener(UpdateIsCastingState); + if (CastBarHandler.Instance != null) + { + CastBarHandler.Instance.OnCastingStateChanged.RemoveListener(UpdateIsCastingState); + } } - // Start is called before the first frame update protected virtual void Start() { - if (!photonView.IsMine) this.enabled = false; + if (!photonView.IsMine) + { + this.enabled = false; + return; + } } - // Update is called once per frame protected virtual void Update() { if (Camera.main == null) return; - if (isCasting) { lookAt.forward = castLookatSnapshot; + return; + } - if(CastBarHandler.Instance.currentAbility is ChanneledAbility) - { - if(((ChanneledAbility)CastBarHandler.Instance.currentAbility).allowAiming) - { + DetectInputMethod(); - } - else - { - return; - } - } - else + if (isUsingGamepad) + { + HandleGamepadAiming(); + } + else + { + HandleMouseAiming(); + } + + // Always ensure we have a valid forward direction + if (lookAt.forward == Vector3.zero) + { + lookAt.forward = lastValidAimDirection; + } + } + + private void DetectInputMethod() + { + Vector2 gamepadLook = new Vector2( + Input.GetAxisRaw(GameConstants.Input.AimHorizontalAxis), + Input.GetAxisRaw(GameConstants.Input.AimVerticalAxis) + ); + + if (gamepadLook.magnitude > gamepadDeadzone) + { + isUsingGamepad = true; + } + else if (Input.GetAxisRaw("Mouse X") != 0 || Input.GetAxisRaw("Mouse Y") != 0) + { + isUsingGamepad = false; + } + } + + private void HandleGamepadAiming() + { + Vector2 aimInput = new Vector2( + Input.GetAxisRaw(GameConstants.Input.AimHorizontalAxis), + Input.GetAxisRaw(GameConstants.Input.AimVerticalAxis) + ); + + if (aimInput.magnitude > gamepadDeadzone) + { + Vector3 cameraForward = Camera.main.transform.forward; + Vector3 cameraRight = Camera.main.transform.right; + + // Ensure we're working in the horizontal plane + cameraForward.y = 0f; + cameraRight.y = 0f; + cameraForward.Normalize(); + cameraRight.Normalize(); + + Vector3 aimDirection = (cameraForward * aimInput.y + cameraRight * aimInput.x).normalized; + if (aimDirection != Vector3.zero) { - return; + lastValidAimDirection = aimDirection; + lookAt.forward = aimDirection; } } - + else + { + // Use the last valid aim direction when no current input + lookAt.forward = lastValidAimDirection; + } + } + private void HandleMouseAiming() + { ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (plane.Raycast(ray, out float distance)) { targetPoint = ray.GetPoint(distance); targetPoint.y = this.transform.position.y; - lookAt.forward = targetPoint - lookAt.position; + Vector3 direction = (targetPoint - lookAt.position).normalized; + + if (direction != Vector3.zero) + { + lastValidAimDirection = direction; + lookAt.forward = direction; + } } } public Vector3 GetLookat() { - return lookAt.forward; + return lookAt.forward != Vector3.zero ? lookAt.forward : lastValidAimDirection; } private void UpdateIsCastingState(bool isCasting) { this.isCasting = isCasting; - if(isCasting) + if (isCasting) { - ray = Camera.main.ScreenPointToRay(Input.mousePosition); - - if (plane.Raycast(ray, out float distance)) + if (isUsingGamepad) { - targetPoint = ray.GetPoint(distance); - targetPoint.y = this.transform.position.y; - lookAt.forward = targetPoint - lookAt.position; - castLookatSnapshot = lookAt.forward; + Vector2 aimInput = new Vector2( + Input.GetAxisRaw(GameConstants.Input.AimHorizontalAxis), + Input.GetAxisRaw(GameConstants.Input.AimVerticalAxis) + ); + + if (aimInput.magnitude > gamepadDeadzone) + { + Vector3 cameraForward = Camera.main.transform.forward; + Vector3 cameraRight = Camera.main.transform.right; + cameraForward.y = 0f; + cameraRight.y = 0f; + cameraForward.Normalize(); + cameraRight.Normalize(); + + castLookatSnapshot = (cameraForward * aimInput.y + cameraRight * aimInput.x).normalized; + } + else + { + castLookatSnapshot = lastValidAimDirection; + } + } + else + { + ray = Camera.main.ScreenPointToRay(Input.mousePosition); + + if (plane.Raycast(ray, out float distance)) + { + targetPoint = ray.GetPoint(distance); + targetPoint.y = this.transform.position.y; + castLookatSnapshot = (targetPoint - lookAt.position).normalized; + } + } + + // Ensure we never have a zero vector for casting + if (castLookatSnapshot == Vector3.zero) + { + castLookatSnapshot = lastValidAimDirection; } } } -} +} \ No newline at end of file diff --git a/Assets/Starfield Skybox/Skybox.mat b/Assets/Starfield Skybox/Skybox.mat index 62ebc88b..56c7896d 100644 --- a/Assets/Starfield Skybox/Skybox.mat +++ b/Assets/Starfield Skybox/Skybox.mat @@ -94,7 +94,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Rotation: 6.8616924 + - _Rotation: 86.58252 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/ProjectSettings/InputManager.asset b/ProjectSettings/InputManager.asset index 17c8f538..883d2dda 100644 --- a/ProjectSettings/InputManager.asset +++ b/ProjectSettings/InputManager.asset @@ -293,3 +293,468 @@ InputManager: type: 0 axis: 0 joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: Left Stick Horizontal + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.2 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: Left Stick Vertical + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.2 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: a + positiveButton: d + altNegativeButton: + altPositiveButton: + gravity: 3 + dead: 0 + sensitivity: 3 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: s + positiveButton: w + altNegativeButton: + altPositiveButton: + gravity: 3 + dead: 0 + sensitivity: 3 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: RightStickHorizontal + descriptiveName: Right Stick Horizontal + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.2 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 3 + joyNum: 0 + - serializedVersion: 3 + m_Name: RightStickHorizontal + descriptiveName: Right Stick Horizontal Alt + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.2 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 5 + joyNum: 0 + - serializedVersion: 3 + m_Name: RightStickVertical + descriptiveName: Right Stick Vertical + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.2 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 4 + joyNum: 0 + - serializedVersion: 3 + m_Name: RightStickVertical + descriptiveName: Right Stick Vertical Alt + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.2 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 6 + joyNum: 0 + - serializedVersion: 3 + m_Name: Ability1 + descriptiveName: Primary Ability (A/X) + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Ability1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Ability2 + descriptiveName: Secondary Ability (B/Circle) + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Ability2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Ability3 + descriptiveName: Third Ability (X/Square) + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Ability3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Ability4 + descriptiveName: Fourth Ability (Y/Triangle) + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Potion + descriptiveName: PotionAbility (Q) + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 4 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 6 + joyNum: 0 + - serializedVersion: 3 + m_Name: Ability4 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: 4 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Interact + descriptiveName: Interact/Confirm + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Interact + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: e + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Menu + descriptiveName: Menu/Pause + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 7 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Menu + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Inventory + descriptiveName: Inventory Toggle + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 6 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Inventory + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: i + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: LeftTrigger + descriptiveName: Left Trigger + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.2 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 8 + joyNum: 0 + - serializedVersion: 3 + m_Name: RightTrigger + descriptiveName: Right Trigger + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.2 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 9 + joyNum: 0 + - serializedVersion: 3 + m_Name: LeftBumper + descriptiveName: Left Bumper + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 4 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: RightBumper + descriptiveName: Right Bumper + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 5 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: DPadHorizontal + descriptiveName: D-Pad Horizontal + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.2 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 5 + joyNum: 0 + - serializedVersion: 3 + m_Name: DPadVertical + descriptiveName: D-Pad Vertical + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.2 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 6 + joyNum: 0 + m_UsePhysicalKeys: 0