diff --git a/Assets/GameData/Action/Abilities/Crows Foresight Ability.asset b/Assets/GameData/Action/Abilities/Crows Foresight Ability.asset new file mode 100644 index 00000000..848e4440 --- /dev/null +++ b/Assets/GameData/Action/Abilities/Crows Foresight Ability.asset @@ -0,0 +1,22 @@ +%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: b44d66bdcfad03b4eb26798e1aa6dfaa, type: 3} + m_Name: Crows Foresight Ability + m_EditorClassIdentifier: + abilityKey: CrowsForesight + abilityName: Crows Foresight + abilityRadius: 10 + abilityMagnitude: 10 + abilityDuration: 30 + abilityCooldownTime: 10 + abilityApplicationRadius: 20 + prefab: {fileID: 0} diff --git a/Assets/GameData/Action/Abilities/Crows Foresight Ability.asset.meta b/Assets/GameData/Action/Abilities/Crows Foresight Ability.asset.meta new file mode 100644 index 00000000..3874c6f6 --- /dev/null +++ b/Assets/GameData/Action/Abilities/Crows Foresight Ability.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b4485e4bc8be814db7fc22a6778fbd5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameData/Action/Abilities/The Executioner Ability.asset b/Assets/GameData/Action/Abilities/The Executioner Ability.asset new file mode 100644 index 00000000..4bc34482 --- /dev/null +++ b/Assets/GameData/Action/Abilities/The Executioner Ability.asset @@ -0,0 +1,24 @@ +%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: 5fbc500f0c0786447b301227c4cc1555, type: 3} + m_Name: The Executioner Ability + m_EditorClassIdentifier: + abilityKey: TheExecutioner + abilityName: TheExecutioner + abilityRadius: 100 + abilityMagnitude: 0 + abilityDuration: 10 + abilityCooldownTime: 0 + abilityApplicationRadius: 20 + prefab: {fileID: 2026889198986879358, guid: cbe217685dd069b47ac56eefeb3f6cdc, type: 3} + travelTime: 2 + lineLength: 50 diff --git a/Assets/GameData/Action/Abilities/The Executioner Ability.asset.meta b/Assets/GameData/Action/Abilities/The Executioner Ability.asset.meta new file mode 100644 index 00000000..b60d6eb0 --- /dev/null +++ b/Assets/GameData/Action/Abilities/The Executioner Ability.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f58030efba278b040be08a2bb92abb0b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameData/NetworkPrefabs.asset b/Assets/GameData/NetworkPrefabs.asset index 01ea4495..7265f14c 100644 --- a/Assets/GameData/NetworkPrefabs.asset +++ b/Assets/GameData/NetworkPrefabs.asset @@ -84,3 +84,8 @@ MonoBehaviour: SourcePrefabToOverride: {fileID: 0} SourceHashToOverride: 0 OverridingTargetPrefab: {fileID: 0} + - Override: 0 + Prefab: {fileID: 2026889198986879358, guid: cbe217685dd069b47ac56eefeb3f6cdc, type: 3} + SourcePrefabToOverride: {fileID: 0} + SourceHashToOverride: 0 + OverridingTargetPrefab: {fileID: 0} diff --git a/Assets/Prefabs/Abilities/ExecutionerBox.prefab b/Assets/Prefabs/Abilities/ExecutionerBox.prefab new file mode 100644 index 00000000..235b4bda --- /dev/null +++ b/Assets/Prefabs/Abilities/ExecutionerBox.prefab @@ -0,0 +1,174 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2026889198986879358 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8598817611828152449} + - component: {fileID: 2485806974807532261} + - component: {fileID: 3387949930697230370} + - component: {fileID: 5819037828697006244} + - component: {fileID: 1609897315684736612} + - component: {fileID: 7035854930622407384} + - component: {fileID: -2894090944655826590} + m_Layer: 0 + m_Name: ExecutionerBox + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8598817611828152449 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026889198986879358} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.40158707, y: -0.2173497, z: -3.6909463} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2485806974807532261 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026889198986879358} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3387949930697230370 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026889198986879358} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &5819037828697006244 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026889198986879358} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &1609897315684736612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026889198986879358} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3} + m_Name: + m_EditorClassIdentifier: + GlobalObjectIdHash: 4026814562 + InScenePlacedSourceGlobalObjectIdHash: 0 + AlwaysReplicateAsRoot: 0 + SynchronizeTransform: 1 + ActiveSceneSynchronization: 0 + SceneMigrationSynchronization: 1 + SpawnWithObservers: 1 + DontDestroyWithOwner: 0 + AutoObjectParentSync: 1 +--- !u!114 &7035854930622407384 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026889198986879358} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: af3c444c61660374cbe12b32b6e08da9, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &-2894090944655826590 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026889198986879358} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e96cb6065543e43c4a752faaa1468eb1, type: 3} + m_Name: + m_EditorClassIdentifier: + UseUnreliableDeltas: 0 + SyncPositionX: 1 + SyncPositionY: 1 + SyncPositionZ: 1 + SyncRotAngleX: 0 + SyncRotAngleY: 1 + SyncRotAngleZ: 0 + SyncScaleX: 0 + SyncScaleY: 0 + SyncScaleZ: 0 + PositionThreshold: 0.001 + RotAngleThreshold: 0.01 + ScaleThreshold: 0.01 + UseQuaternionSynchronization: 0 + UseQuaternionCompression: 0 + UseHalfFloatPrecision: 0 + InLocalSpace: 0 + Interpolate: 1 + SlerpPosition: 0 diff --git a/Assets/Prefabs/Abilities/ExecutionerBox.prefab.meta b/Assets/Prefabs/Abilities/ExecutionerBox.prefab.meta new file mode 100644 index 00000000..8498bf9a --- /dev/null +++ b/Assets/Prefabs/Abilities/ExecutionerBox.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cbe217685dd069b47ac56eefeb3f6cdc +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Abilities/LR.prefab b/Assets/Prefabs/Abilities/LR.prefab new file mode 100644 index 00000000..e53d24c4 --- /dev/null +++ b/Assets/Prefabs/Abilities/LR.prefab @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &503753081936112103 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 567067790540479238} + - component: {fileID: 4696081453448924320} + m_Layer: 0 + m_Name: LR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &567067790540479238 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 503753081936112103} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 14.5, y: -9.54, z: -9.71} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!120 &4696081453448924320 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 503753081936112103} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: -0.3128357, y: 2.9657813e-17, z: 12.629293} + - {x: 5.018852, y: 6.482169e-17, z: -12.708946} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 1 diff --git a/Assets/Prefabs/Abilities/LR.prefab.meta b/Assets/Prefabs/Abilities/LR.prefab.meta new file mode 100644 index 00000000..651a0b93 --- /dev/null +++ b/Assets/Prefabs/Abilities/LR.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ce9789297c200d84e9a6648be9d17c6c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Character/PlayerAvatar.prefab b/Assets/Prefabs/Character/PlayerAvatar.prefab index b1f6511b..2a8879f4 100644 --- a/Assets/Prefabs/Character/PlayerAvatar.prefab +++ b/Assets/Prefabs/Character/PlayerAvatar.prefab @@ -1,5 +1,141 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &8840490614719648706 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 114959479276449053} + - component: {fileID: 767287028943156713} + m_Layer: 0 + m_Name: LineRenderer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &114959479276449053 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8840490614719648706} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 11.8, y: 0, z: -0.039826393} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6009713983291384766} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!120 &767287028943156713 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8840490614719648706} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 02312ff549bab6649a662b22d74656ca, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.030559063 + value: 0.4999995 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 0 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 1 + m_Loop: 0 + m_ApplyActiveColorSpace: 1 --- !u!1 &9073758047842524076 GameObject: m_ObjectHideFlags: 0 @@ -68,8 +204,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_ClientVisualsAnimator: {fileID: 1829276847453002016} m_VisualizationConfiguration: {fileID: 11400000, guid: 9504973cdecd65749889771972fa0117, type: 2} - IceEffect: {fileID: 8739829284446453964} - DashnCrashParticle: {fileID: 5712403137982753050} --- !u!1001 &1604529912481146835 PrefabInstance: m_ObjectHideFlags: 0 @@ -369,7 +503,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5109095020609682098, guid: d3e4ffd5da62ee94e9eccf3ab52ec129, type: 3} propertyPath: GlobalObjectIdHash - value: 3177087589 + value: 3937158934 objectReference: {fileID: 0} - target: {fileID: 5935320730402577130, guid: d3e4ffd5da62ee94e9eccf3ab52ec129, type: 3} propertyPath: m_Name @@ -394,129 +528,6 @@ GameObject: m_CorrespondingSourceObject: {fileID: 5935320730402577130, guid: d3e4ffd5da62ee94e9eccf3ab52ec129, type: 3} m_PrefabInstance: {fileID: 4134200829793049931} m_PrefabAsset: {fileID: 0} ---- !u!1001 &5618787808027028156 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 6009713983291384766} - m_Modifications: - - target: {fileID: 1158706824229198, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_Name - value: CFX3_Hit_Electric_B_Air - objectReference: {fileID: 0} - - target: {fileID: 1158706824229198, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalScale.x - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalScale.y - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalScale.z - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalPosition.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_ConstrainProportionsScale - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 114588619826810466, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_Enabled - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 198010905315165094, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: playOnAwake - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 198097802458817804, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: playOnAwake - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 198693709256649430, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: playOnAwake - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 198732920456235744, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: playOnAwake - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 199118148743193636, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_Materials.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 199446486065092498, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_Materials.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 199687444145009832, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_Materials.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 199761222371968728, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - propertyPath: m_Materials.Array.size - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} ---- !u!4 &5618073974498487862 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4109143227384970, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - m_PrefabInstance: {fileID: 5618787808027028156} - m_PrefabAsset: {fileID: 0} ---- !u!198 &5712403137982753050 stripped -ParticleSystem: - m_CorrespondingSourceObject: {fileID: 198010905315165094, guid: ddc205c0c8c9eca43be1bdcb38ef42e7, type: 3} - m_PrefabInstance: {fileID: 5618787808027028156} - m_PrefabAsset: {fileID: 0} --- !u!1001 &7831782662127126385 PrefabInstance: m_ObjectHideFlags: 0 @@ -545,10 +556,6 @@ PrefabInstance: propertyPath: m_Enabled value: 1 objectReference: {fileID: 0} - - target: {fileID: 4309865414312164521, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3} - propertyPath: DashnCrashParticle - value: - objectReference: {fileID: 5712403137982753050} - target: {fileID: 4600110157238723776, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3} propertyPath: m_AoePrefab value: @@ -571,7 +578,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4600110157238723790, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3} propertyPath: GlobalObjectIdHash - value: 3177087589 + value: 3737985212 objectReference: {fileID: 0} - target: {fileID: 4600110157238723790, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3} propertyPath: PrefabHashGenerator @@ -625,10 +632,6 @@ PrefabInstance: propertyPath: animator value: objectReference: {fileID: 1829276847453002016} - - target: {fileID: 7420593339233078707, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3} - propertyPath: IceEffect - value: - objectReference: {fileID: 8739829284446453964} - target: {fileID: 7420593339233078707, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3} propertyPath: crowModel value: @@ -637,10 +640,6 @@ PrefabInstance: propertyPath: m_ClientCharacter value: objectReference: {fileID: 7209204667172237188} - - target: {fileID: 7420593339233078707, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3} - propertyPath: DashnCrashParticle - value: - objectReference: {fileID: 5712403137982753050} - target: {fileID: 7420593339233078707, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3} propertyPath: m_ClientVisualization value: @@ -679,10 +678,7 @@ PrefabInstance: addedObject: {fileID: 3517306559314791930} - targetCorrespondingSourceObject: {fileID: 4600110157238723791, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3} insertIndex: -1 - addedObject: {fileID: 8900479470653809952} - - targetCorrespondingSourceObject: {fileID: 4600110157238723791, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3} - insertIndex: -1 - addedObject: {fileID: 5618073974498487862} + addedObject: {fileID: 114959479276449053} m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 4600110157238723781, guid: 0d2d836e2e83b754fa1a1c4022d6d65d, type: 3} insertIndex: -1 @@ -794,7 +790,6 @@ MonoBehaviour: m_PhysicsWrapper: {fileID: 6116655102486013040} m_AbilitySystem: {fileID: 7049454171559621213} m_UIMessageFeed: {fileID: 0} - DashNCrashParticle: {fileID: 5712403137982753050} --- !u!114 &4887850889182527394 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1175,6 +1170,8 @@ MonoBehaviour: - {fileID: 11400000, guid: e4794e2f71f66a74486c797344695ce7, type: 2} - {fileID: 11400000, guid: 6c697d5efda1b0147b0c3f4088ee62f9, type: 2} - {fileID: 11400000, guid: 834f18926d3364d40ab9894f716b4e3b, type: 2} + - {fileID: 11400000, guid: f58030efba278b040be08a2bb92abb0b, type: 2} + - {fileID: 11400000, guid: 6b4485e4bc8be814db7fc22a6778fbd5, type: 2} abilitiesUI: [] currentAbilityIndicator: {fileID: 92142163933926358} wallIndicator: {fileID: 1257869342993333690} @@ -1186,6 +1183,7 @@ MonoBehaviour: serializedVersion: 2 m_Bits: 8 mouseMoveThreshold: 0.1 + lineIndicator: {fileID: 767287028943156713} --- !u!114 &4321537148236331373 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1254,122 +1252,3 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 6733907396f36c44891916e5c62f25a0, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1001 &8902267411696898588 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 6009713983291384766} - m_Modifications: - - target: {fileID: 1986825038577700, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_Name - value: CFXM3_Ice_Shield - objectReference: {fileID: 0} - - target: {fileID: 1986825038577700, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_IsActive - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4485872338663228, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4485872338663228, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_LocalPosition.y - value: 0.01 - objectReference: {fileID: 0} - - target: {fileID: 4485872338663228, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4485872338663228, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4485872338663228, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_LocalRotation.x - value: -0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 4485872338663228, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4485872338663228, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 4485872338663228, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: -90 - objectReference: {fileID: 0} - - target: {fileID: 4485872338663228, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4485872338663228, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 198070479406265220, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: playOnAwake - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 198137107943165266, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: playOnAwake - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 198439140704244118, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: playOnAwake - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 198485380021228240, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: playOnAwake - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 198664209326411606, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: playOnAwake - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 198683552984657812, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: playOnAwake - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 199006148403064504, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_Materials.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 199044628598817136, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_Materials.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 199289156022316430, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_Materials.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 199373315510530320, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_Materials.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 199480734367830996, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_Materials.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 199597943726465290, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - propertyPath: m_Materials.Array.size - value: 1 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} ---- !u!198 &8739829284446453964 stripped -ParticleSystem: - m_CorrespondingSourceObject: {fileID: 198485380021228240, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - m_PrefabInstance: {fileID: 8902267411696898588} - m_PrefabAsset: {fileID: 0} ---- !u!4 &8900479470653809952 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4485872338663228, guid: d9ff999f14db2c44ea3d654f7f7304ab, type: 3} - m_PrefabInstance: {fileID: 8902267411696898588} - m_PrefabAsset: {fileID: 0} diff --git a/Assets/Scenes/Startup.unity b/Assets/Scenes/Startup.unity index c3bd8d7b..9f6ba45e 100644 --- a/Assets/Scenes/Startup.unity +++ b/Assets/Scenes/Startup.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.12731749, g: 0.13414757, b: 0.1210787, a: 1} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: diff --git a/Assets/Scripts/Gameplay/AbilitySystem.cs b/Assets/Scripts/Gameplay/AbilitySystem.cs index 0a336a14..6ec8019f 100644 --- a/Assets/Scripts/Gameplay/AbilitySystem.cs +++ b/Assets/Scripts/Gameplay/AbilitySystem.cs @@ -37,6 +37,10 @@ public class AbilitySystem : NetworkBehaviour NavMeshAgent m_Agent; private Dictionary abilityCursorMap; + [Header("Executioner Settings")] + [SerializeField] private LineRenderer lineIndicator; + private bool _isPlacingExecutioner; + private void InitializeAbilityCursorMap() { abilityCursorMap = new Dictionary @@ -100,6 +104,10 @@ public class AbilitySystem : NetworkBehaviour isWallPlacementStarted = false; } } + else if (activeAbility.abilityKey == "TheExecutioner") + { + HandleExecutionerPlacement(); + } else { ManageStandardAbilityIndicator(); @@ -117,7 +125,39 @@ public class AbilitySystem : NetworkBehaviour DeactivateIndicators(); } } + private Vector3 executionerStartPos; + private Vector3 executionerEndPos; + private void HandleExecutionerPlacement() + { + lineIndicator.gameObject.SetActive(true); + + if (Input.GetMouseButtonDown(0)) + { + if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out var hit)) + { + executionerStartPos = hit.point; + executionerEndPos = hit.point; + lineIndicator.SetPosition(0, executionerStartPos); + lineIndicator.SetPosition(1, executionerEndPos); + } + } + + if (Input.GetMouseButton(0)) + { + if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out var hit)) + { + executionerEndPos = hit.point; + lineIndicator.SetPosition(1, executionerEndPos); + } + } + if (Input.GetMouseButtonUp(0)) + { + UseActiveAbility(); + lineIndicator.gameObject.SetActive(false); + } + } + private void ManageVectorFenceIndicator() { if (wallIndicator != null) @@ -283,23 +323,35 @@ public class AbilitySystem : NetworkBehaviour public void UseActiveAbility() { - if (activeAbility == null) + if (activeAbility == null) return; + + Vector3 direction; + Vector3 startPosition; + + if (activeAbility.abilityKey == "TheExecutioner") { - Debug.LogWarning("[AbilitySystem] No active ability to use."); - return; + startPosition = executionerStartPos; + direction = (executionerEndPos - executionerStartPos).normalized; + } + else + { + GameObject indicator = activeAbility.abilityKey == "VectorFence" ? wallIndicator : currentAbilityIndicator; + startPosition = indicator.transform.position; + direction = indicator.transform.forward; } - GameObject indicator = activeAbility.abilityKey == "VectorFence" ? wallIndicator : currentAbilityIndicator; - Vector3 targetPosition = indicator.transform.position; - Vector3 targetRotation = indicator.transform.eulerAngles; - - if (!IsPlacementWithinRadius(targetPosition)) + if (!IsPlacementWithinRadius(startPosition)) { Debug.Log("[AbilitySystem] Not in Radius."); return; } - Debug.Log($"[AbilitySystem] Using active ability {activeAbility.abilityName}."); - RequestAbilityActivationServerRpc(activeAbility.abilityKey, targetPosition, targetRotation); + + Debug.Log($"[AbilitySystem] Using {activeAbility.abilityName}"); + RequestAbilityActivationServerRpc( + activeAbility.abilityKey, + startPosition, + direction + ); StartCoroutine(StartCooldown(activeAbility)); DeactivateAbilityMode(); } diff --git a/Assets/Scripts/Gameplay/CrowsForesightAbility.cs b/Assets/Scripts/Gameplay/CrowsForesightAbility.cs new file mode 100644 index 00000000..e7e8c536 --- /dev/null +++ b/Assets/Scripts/Gameplay/CrowsForesightAbility.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Collections.Generic; +using Unity.BossRoom.Gameplay.GameplayObjects.Character; +using UnityEngine; + +[CreateAssetMenu(menuName = "Abilities/CrowsForesight")] +public class CrowsForesightAbility : Ability +{ + public override void Execute(ServerCharacter character, Vector3 targetPosition, Vector3 targetRotation) + { + throw new System.NotImplementedException(); + } +} diff --git a/Assets/Scripts/Gameplay/CrowsForesightAbility.cs.meta b/Assets/Scripts/Gameplay/CrowsForesightAbility.cs.meta new file mode 100644 index 00000000..01b53493 --- /dev/null +++ b/Assets/Scripts/Gameplay/CrowsForesightAbility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b44d66bdcfad03b4eb26798e1aa6dfaa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Gameplay/ExecutionerBox.cs b/Assets/Scripts/Gameplay/ExecutionerBox.cs new file mode 100644 index 00000000..3ef36040 --- /dev/null +++ b/Assets/Scripts/Gameplay/ExecutionerBox.cs @@ -0,0 +1,54 @@ +using UnityEngine; +using Unity.Netcode; +using Unity.BossRoom.Gameplay.GameplayObjects.Character; +using UnityEngine.SocialPlatforms.Impl; + +public class ExecutionerBox : NetworkBehaviour +{ + private ServerCharacter _owner; + private Vector3 _endPos; + private float _travelTime; + private float _startTime; + private Vector3 _startPos; + + public void Initialize(ServerCharacter owner, Vector3 startPos, Vector3 endPos, float travelTime) + { + _owner = owner; + _startPos = startPos; + _endPos = endPos; + _travelTime = travelTime; + transform.position = startPos; + transform.LookAt(endPos); + _startTime = Time.time; + } + + private void Update() + { + if (!IsServer) return; + + float journeyProgress = (Time.time - _startTime) / _travelTime; + transform.position = Vector3.Lerp(_startPos, _endPos, journeyProgress); + + if (journeyProgress >= 1f) + NetworkObject.Despawn(); + } + + private void OnTriggerEnter(Collider other) + { + if (!IsServer) return; + + if (other.TryGetComponent(out var victim) && victim != _owner) + { + // Get owner client ID before despawning + ulong ownerId = _owner.OwnerClientId; + + // Handle score changes + ScoreManager.Instance.AddPlayerScore(ownerId, 10); // Add to owner + ScoreManager.Instance.SubtractPlayerScore(victim.OwnerClientId, 10); // Subtract from victim + + Debug.Log($"[ExecutionerBox] Scores updated. " + + $"Owner ({ownerId}) gained 10, " + + $"Victim ({victim.OwnerClientId}) lost 10"); + } + } +} diff --git a/Assets/Scripts/Gameplay/ExecutionerBox.cs.meta b/Assets/Scripts/Gameplay/ExecutionerBox.cs.meta new file mode 100644 index 00000000..75aa61bb --- /dev/null +++ b/Assets/Scripts/Gameplay/ExecutionerBox.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: af3c444c61660374cbe12b32b6e08da9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Gameplay/GameplayObjects/RuntimeDataContainers/GameDataSource.cs b/Assets/Scripts/Gameplay/GameplayObjects/RuntimeDataContainers/GameDataSource.cs index 0c5dc78c..b260519e 100644 --- a/Assets/Scripts/Gameplay/GameplayObjects/RuntimeDataContainers/GameDataSource.cs +++ b/Assets/Scripts/Gameplay/GameplayObjects/RuntimeDataContainers/GameDataSource.cs @@ -85,6 +85,8 @@ namespace Unity.BossRoom.Gameplay.GameplayObjects public string DashNCrashAbilityKey = "DashNCrash"; public string FreezeThrowAbilityKey = "FreezeThrow"; public string VectorWallAbilityKey = "VectorWall"; + public string TheExecutionerKey = "TheExecutioner"; + public string CrowsForesightKey = "CrowsForesight"; List m_AllActions; diff --git a/Assets/Scripts/Gameplay/TheExecutionerAbility.cs b/Assets/Scripts/Gameplay/TheExecutionerAbility.cs new file mode 100644 index 00000000..59f78509 --- /dev/null +++ b/Assets/Scripts/Gameplay/TheExecutionerAbility.cs @@ -0,0 +1,28 @@ +using UnityEngine; +using Unity.BossRoom.Gameplay.GameplayObjects.Character; +using Unity.Netcode; + +[CreateAssetMenu(menuName = "Abilities/TheExecutioner")] +public class TheExecutionerAbility : Ability +{ + [Header("Executioner Settings")] + public float travelTime = 2f; + public float lineLength = 50f; + + public override void Execute(ServerCharacter character, Vector3 startPoint, Vector3 direction) + { + Vector3 endPoint = startPoint + (direction * lineLength); + + GameObject boxInstance = Instantiate(prefab, startPoint, Quaternion.LookRotation(direction)); + if (boxInstance.TryGetComponent(out var netObj)) + { + netObj.Spawn(); + boxInstance.GetComponent().Initialize( + character, + startPoint, + endPoint, + travelTime + ); + } + } +} diff --git a/Assets/Scripts/Gameplay/TheExecutionerAbility.cs.meta b/Assets/Scripts/Gameplay/TheExecutionerAbility.cs.meta new file mode 100644 index 00000000..e57a08e7 --- /dev/null +++ b/Assets/Scripts/Gameplay/TheExecutionerAbility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5fbc500f0c0786447b301227c4cc1555 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Gameplay/UserInput/ClientInputSender.cs b/Assets/Scripts/Gameplay/UserInput/ClientInputSender.cs index 6f848422..04759f27 100644 --- a/Assets/Scripts/Gameplay/UserInput/ClientInputSender.cs +++ b/Assets/Scripts/Gameplay/UserInput/ClientInputSender.cs @@ -563,6 +563,16 @@ namespace Unity.BossRoom.Gameplay.UserInput //} ActivateAbilityIfAllowed(GameDataSource.Instance.VectorWallAbilityKey); } + if (Input.GetKeyDown(KeyCode.C)) // The Executioner + { + if (m_ServerCharacter.IsCrow) + { + m_UIMessageFeed.DisplayMessage("Ability not available for crow"); + return; + } + ActivateAbilityIfAllowed(GameDataSource.Instance.TheExecutionerKey); + } + } private void HandleSprint() @@ -615,21 +625,7 @@ namespace Unity.BossRoom.Gameplay.UserInput Debug.Log("Cannot activate ability mode while swap mode is active."); return; } - - // if (abilityKey == GameDataSource.Instance.DashNCrashAbilityKey && !m_ServerCharacter.IsCrow) - // { - // if (errorMessage != null) - // { - // m_UIMessageFeed.DisplayMessage(errorMessage); - // } - // Debug.Log("You must be the Crow to activate this ability."); - // return; - // } - // else - // { - // Debug.Log("abilitykey: " + abilityKey); - // } - + m_UIMessageFeed.DisplayMessage("Activated Ability mode"); m_AbilitySystem.ActivateAbilityByKey(abilityKey); }