From b46dc6101ffc2230c5e459bf2a3fd8942b30422b Mon Sep 17 00:00:00 2001 From: Julia Butenhoff Date: Fri, 8 Apr 2022 15:37:34 -0500 Subject: [PATCH] Hail Fully Networked --- Assets/Prefabs/King/Hail.prefab | 69 ++++++++- Assets/Prefabs/King/HailArea.prefab | 18 +++ Assets/Prefabs/King/King.prefab | 2 +- Assets/Prefabs/King/Shadow.prefab | 69 ++++++++- Assets/Prefabs/King/TestHailMarker.prefab | 83 +++++++++++ .../Prefabs/King/TestHailMarker.prefab.meta | 7 + Assets/Scenes/Demos/KingImpGraybox.unity | 141 ++++++++---------- Assets/Scenes/Preloader.unity | 8 +- Assets/Scripts/KingScripts/Hail.cs | 71 ++++++--- Assets/Scripts/KingScripts/HailArea.cs | 38 +++-- Assets/Scripts/KingScripts/KingPlace.cs | 17 ++- ProjectSettings/TagManager.asset | 2 + UserSettings/EditorUserSettings.asset | 22 +-- 13 files changed, 419 insertions(+), 128 deletions(-) create mode 100644 Assets/Prefabs/King/TestHailMarker.prefab create mode 100644 Assets/Prefabs/King/TestHailMarker.prefab.meta diff --git a/Assets/Prefabs/King/Hail.prefab b/Assets/Prefabs/King/Hail.prefab index b45ec84..0e119f7 100644 --- a/Assets/Prefabs/King/Hail.prefab +++ b/Assets/Prefabs/King/Hail.prefab @@ -14,9 +14,11 @@ GameObject: - component: {fileID: 5907924033250747256} - component: {fileID: 7867345786326767111} - component: {fileID: 9161762588931088055} + - component: {fileID: -3491250774915047331} + - component: {fileID: 4995776973970165878} m_Layer: 0 m_Name: Hail - m_TagString: Untagged + m_TagString: Hail m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -126,3 +128,68 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: shadow: {fileID: 2481528670431999298, guid: 27744b51bdd10b246983d369908f08fc, type: 3} +--- !u!114 &-3491250774915047331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3697101767757923800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3} + m_Name: + m_EditorClassIdentifier: + NetworkInstanceId: 0 + PrefabHash: 16050285355892561699 + PrefabHashGenerator: Hail + AlwaysReplicateAsRoot: 0 + DontDestroyWithOwner: 0 +--- !u!114 &4995776973970165878 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3697101767757923800} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e96cb6065543e43c4a752faaa1468eb1, type: 3} + m_Name: + m_EditorClassIdentifier: + FixedSendsPerSecond: 20 + AssumeSyncedSends: 1 + InterpolatePosition: 1 + SnapDistance: 10 + InterpolateServer: 1 + MinMeters: 0.15 + MinDegrees: 1.5 + ExtrapolatePosition: 0 + MaxSendsToExtrapolate: 5 + Channel: + EnableRange: 0 + EnableNonProvokedResendChecks: 0 + DistanceSendrate: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 20 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 500 + value: 20 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 diff --git a/Assets/Prefabs/King/HailArea.prefab b/Assets/Prefabs/King/HailArea.prefab index 8175c2d..f863157 100644 --- a/Assets/Prefabs/King/HailArea.prefab +++ b/Assets/Prefabs/King/HailArea.prefab @@ -10,6 +10,7 @@ GameObject: m_Component: - component: {fileID: 2793902819963175727} - component: {fileID: 2793902819963175726} + - component: {fileID: 4237820721873937176} m_Layer: 0 m_Name: HailArea m_TagString: Untagged @@ -47,3 +48,20 @@ MonoBehaviour: LayerMask: serializedVersion: 2 m_Bits: 64 +--- !u!114 &4237820721873937176 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2793902819963175725} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3} + m_Name: + m_EditorClassIdentifier: + NetworkInstanceId: 0 + PrefabHash: 13600060014667963216 + PrefabHashGenerator: HailArea + AlwaysReplicateAsRoot: 0 + DontDestroyWithOwner: 0 diff --git a/Assets/Prefabs/King/King.prefab b/Assets/Prefabs/King/King.prefab index a443265..06a9deb 100644 --- a/Assets/Prefabs/King/King.prefab +++ b/Assets/Prefabs/King/King.prefab @@ -212,7 +212,7 @@ MonoBehaviour: SlimeWithoutNetwork: {fileID: 2511859290852366113, guid: ac312ddeb2b064d47a12cc319328d598, type: 3} Bumper: {fileID: 8337410631319514038, guid: 7637747d23035f14ca81f867f4c3ec31, type: 3} BumperWithoutNetwork: {fileID: 6693924812654725878, guid: 779115152a7c03340ab739e77b4eab49, type: 3} - HailSprite: {fileID: 0} + HailSprite: {fileID: 7196861874458538651, guid: 69eee063ae6700a41a40964271faf676, type: 3} HailObject: {fileID: 2793902819963175725, guid: c642a15af2183e94f81d67ead9ec7326, type: 3} Panel: {fileID: 3173415396104633710} FirstPlacing: 0 diff --git a/Assets/Prefabs/King/Shadow.prefab b/Assets/Prefabs/King/Shadow.prefab index afdedba..c1b6c5e 100644 --- a/Assets/Prefabs/King/Shadow.prefab +++ b/Assets/Prefabs/King/Shadow.prefab @@ -91,9 +91,11 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2481528670431999297} + - component: {fileID: 6247543118465619553} + - component: {fileID: 9090791394336275878} m_Layer: 0 m_Name: Shadow - m_TagString: Untagged + m_TagString: Shadows m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -113,3 +115,68 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6247543118465619553 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2481528670431999298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3} + m_Name: + m_EditorClassIdentifier: + NetworkInstanceId: 0 + PrefabHash: 9569413995982247613 + PrefabHashGenerator: Shadow + AlwaysReplicateAsRoot: 0 + DontDestroyWithOwner: 0 +--- !u!114 &9090791394336275878 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2481528670431999298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e96cb6065543e43c4a752faaa1468eb1, type: 3} + m_Name: + m_EditorClassIdentifier: + FixedSendsPerSecond: 20 + AssumeSyncedSends: 1 + InterpolatePosition: 1 + SnapDistance: 10 + InterpolateServer: 1 + MinMeters: 0.15 + MinDegrees: 1.5 + ExtrapolatePosition: 0 + MaxSendsToExtrapolate: 5 + Channel: + EnableRange: 0 + EnableNonProvokedResendChecks: 0 + DistanceSendrate: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 20 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 500 + value: 20 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 diff --git a/Assets/Prefabs/King/TestHailMarker.prefab b/Assets/Prefabs/King/TestHailMarker.prefab new file mode 100644 index 0000000..f1cd706 --- /dev/null +++ b/Assets/Prefabs/King/TestHailMarker.prefab @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7196861874458538651 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7196861874458538655} + - component: {fileID: 7196861874458538654} + - component: {fileID: 7196861874458538653} + m_Layer: 0 + m_Name: TestHailMarker + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7196861874458538655 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7196861874458538651} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 465.59, y: 504.7, z: 1311.67} + m_LocalScale: {x: 10, y: 20, z: 10} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7196861874458538654 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7196861874458538651} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &7196861874458538653 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7196861874458538651} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} diff --git a/Assets/Prefabs/King/TestHailMarker.prefab.meta b/Assets/Prefabs/King/TestHailMarker.prefab.meta new file mode 100644 index 0000000..1151c74 --- /dev/null +++ b/Assets/Prefabs/King/TestHailMarker.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 69eee063ae6700a41a40964271faf676 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Demos/KingImpGraybox.unity b/Assets/Scenes/Demos/KingImpGraybox.unity index 49cfa6d..a8c74ad 100644 --- a/Assets/Scenes/Demos/KingImpGraybox.unity +++ b/Assets/Scenes/Demos/KingImpGraybox.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.8643677, g: 0.8219142, b: 0.78027064, a: 1} + m_IndirectSpecularColor: {r: 0.864397, g: 0.82191086, b: 0.78032, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -12781,87 +12781,11 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 450954574} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &454718203 +--- !u!1 &454718203 stripped GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 7196861874458538651, guid: 69eee063ae6700a41a40964271faf676, type: 3} + m_PrefabInstance: {fileID: 7196861874912968800} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 454718207} - - component: {fileID: 454718206} - - component: {fileID: 454718205} - m_Layer: 0 - m_Name: TestHailMarker - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &454718205 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 454718203} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &454718206 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 454718203} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &454718207 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 454718203} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 465.59, y: 504.7, z: 1311.67} - m_LocalScale: {x: 10, y: 20, z: 10} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 16 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &462711446 GameObject: m_ObjectHideFlags: 0 @@ -64575,6 +64499,63 @@ MonoBehaviour: m_EditorClassIdentifier: networkItemList: [] pStats: {fileID: 0} +--- !u!1001 &7196861874912968800 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 7196861874458538651, guid: 69eee063ae6700a41a40964271faf676, type: 3} + propertyPath: m_Name + value: TestHailMarker + objectReference: {fileID: 0} + - target: {fileID: 7196861874458538655, guid: 69eee063ae6700a41a40964271faf676, type: 3} + propertyPath: m_RootOrder + value: 16 + objectReference: {fileID: 0} + - target: {fileID: 7196861874458538655, guid: 69eee063ae6700a41a40964271faf676, type: 3} + propertyPath: m_LocalPosition.x + value: 465.59 + objectReference: {fileID: 0} + - target: {fileID: 7196861874458538655, guid: 69eee063ae6700a41a40964271faf676, type: 3} + propertyPath: m_LocalPosition.y + value: 504.7 + objectReference: {fileID: 0} + - target: {fileID: 7196861874458538655, guid: 69eee063ae6700a41a40964271faf676, type: 3} + propertyPath: m_LocalPosition.z + value: 1311.67 + objectReference: {fileID: 0} + - target: {fileID: 7196861874458538655, guid: 69eee063ae6700a41a40964271faf676, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7196861874458538655, guid: 69eee063ae6700a41a40964271faf676, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7196861874458538655, guid: 69eee063ae6700a41a40964271faf676, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7196861874458538655, guid: 69eee063ae6700a41a40964271faf676, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7196861874458538655, guid: 69eee063ae6700a41a40964271faf676, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7196861874458538655, guid: 69eee063ae6700a41a40964271faf676, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7196861874458538655, guid: 69eee063ae6700a41a40964271faf676, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 69eee063ae6700a41a40964271faf676, type: 3} --- !u!114 &7616279936114683226 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/Preloader.unity b/Assets/Scenes/Preloader.unity index 031fce8..11bd141 100644 --- a/Assets/Scenes/Preloader.unity +++ b/Assets/Scenes/Preloader.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.3731193, g: 0.38073996, b: 0.35872698, a: 1} + m_IndirectSpecularColor: {r: 0.37311953, g: 0.38074014, b: 0.3587274, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -326,6 +326,12 @@ MonoBehaviour: PlayerPrefab: 0 - Prefab: {fileID: 8337410631319514038, guid: 7637747d23035f14ca81f867f4c3ec31, type: 3} PlayerPrefab: 0 + - Prefab: {fileID: 2793902819963175725, guid: c642a15af2183e94f81d67ead9ec7326, type: 3} + PlayerPrefab: 0 + - Prefab: {fileID: 3697101767757923800, guid: 5137ba8741866bd429180e6ae058498a, type: 3} + PlayerPrefab: 0 + - Prefab: {fileID: 2481528670431999298, guid: 27744b51bdd10b246983d369908f08fc, type: 3} + PlayerPrefab: 0 PlayerPrefabHash: id: 0 CreatePlayerPrefab: 0 diff --git a/Assets/Scripts/KingScripts/Hail.cs b/Assets/Scripts/KingScripts/Hail.cs index 23defe7..061d360 100644 --- a/Assets/Scripts/KingScripts/Hail.cs +++ b/Assets/Scripts/KingScripts/Hail.cs @@ -1,8 +1,10 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using MLAPI; +using MLAPI.Messaging; -public class Hail : MonoBehaviour +public class Hail : NetworkBehaviour { private Rigidbody hail; public GameObject shadow; @@ -11,42 +13,77 @@ public class Hail : MonoBehaviour private float m; private GameObject ShadTemp = null; + ulong shadowID = 0; void Start() { + if (!IsServer) { return; } + hail = GetComponent();//Gets the rigidbody attached to the bolder - ShadTemp = Instantiate(shadow);//Creates the shadow - ShadTemp.transform.position = new Vector3(hail.transform.position.x, hail.transform.position.y - 99.9f, hail.transform.position.z);//Sets it properly directly under the hail and .1 above the ground - ShadTemp.transform.localScale = new Vector3(ShadStSz, 0, ShadStSz);//Scales it to the proper start size m = hail.transform.localScale.x / 99.9f;//Find the proper rate of growth + + SpawnShadowServerRPC(); + } + + [ServerRpc(RequireOwnership = false)] + private void SpawnShadowServerRPC() { + ShadTemp = Instantiate(shadow, new Vector3(hail.transform.position.x, hail.transform.position.y - 99.9f, hail.transform.position.z), Quaternion.identity); + + ShadTemp.transform.localScale = new Vector3(ShadStSz, 0, ShadStSz);//Scales it to the proper start size + + ShadTemp.GetComponent().Spawn(null, true); + + shadowID = ShadTemp.GetComponent().NetworkObjectId; } void FixedUpdate() { + ScaleShadowServerRPC();//Scales the shadow to that size + DespawnMyselfServerRPC(shadowID);//Sees if it needs to destroy both + } + + [ServerRpc(RequireOwnership = false)] + private void ScaleShadowServerRPC() { float y = -m * (hail.transform.position.y - ShadTemp.transform.position.y) + hail.transform.localScale.x;//Find the proper current size - ShadTemp.transform.localScale = new Vector3(y, 0, y);//Scales the shadow to that size - Destruction();//Sees if it needs to destroy both + ScaleShadowClientRPC(shadowID, y); + } + + [ClientRpc] + private void ScaleShadowClientRPC(ulong sID, float size) { + GameObject[] shadows = GameObject.FindGameObjectsWithTag("Shadows"); + + foreach (GameObject shad in shadows) { + if (shad.GetComponent().NetworkObjectId == sID) { + shad.transform.localScale = new Vector3(size, 0, size); + } + } } void OnTriggerEnter(Collider other) { - if (other.tag == "Player") { + if (other.tag == "ArcherTarget") { GameObject player = other.gameObject;//Turns the collider into a game object - float Power = hail.velocity.magnitude * 10;//Finds the power of the hail by using it's velocity and a scaler + float Power = 50;//Finds the power of the hail by using it's velocity and a scaler //Find the dirrection of launch by finding the direction between the two points of the player and the Hail float px = player.transform.position.x; float pz = player.transform.position.z; - float hx = hail.transform.position.x; - float hz = hail.transform.position.z; + float hx = gameObject.transform.position.x; + float hz = gameObject.transform.position.z; //Direction pointing away from the center of the Hail Vector3 Dir = new Vector3(px - hx, 0, pz - hz); - player.GetComponent().GetHit(Dir, Power); //Ragdolls the player in the direction of the bolder depending on it's speed + other.GetComponent().GetHit(Dir, Power); } } - //Destroys the Hail and its shadow - void Destruction() { - if(hail.transform.position.y <= ShadTemp.transform.position.y) { - Destroy(ShadTemp); - Destroy(gameObject); + [ServerRpc(RequireOwnership = false)] + private void DespawnMyselfServerRPC(ulong sID) { + GameObject[] shadows = GameObject.FindGameObjectsWithTag("Shadows"); + + foreach (GameObject shad in shadows) { + if (shad.GetComponent().NetworkObjectId == sID) { + if (hail.transform.position.y <= shad.transform.position.y) { + shad.GetComponent().Despawn(true); + this.gameObject.GetComponent().Despawn(true); + } + } } } - } +} diff --git a/Assets/Scripts/KingScripts/HailArea.cs b/Assets/Scripts/KingScripts/HailArea.cs index 7c19aa8..f91b134 100644 --- a/Assets/Scripts/KingScripts/HailArea.cs +++ b/Assets/Scripts/KingScripts/HailArea.cs @@ -1,8 +1,10 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using MLAPI; +using MLAPI.Messaging; -public class HailArea : MonoBehaviour +public class HailArea : NetworkBehaviour { // Update is called once per frame private float Xmax = 15f; @@ -16,6 +18,8 @@ public class HailArea : MonoBehaviour public GameObject Hail; + private GameObject spawnedHail; + int timer = 0; int timeMax = 75; @@ -39,24 +43,33 @@ public class HailArea : MonoBehaviour } position = new Vector3(position.x, 100+height, position.z); //find ground and set y occordingly - SpawnHail(diameter, position); + SpawnHailServerRPC(diameter, position); } timer++; Lifetime++; if (Lifetime == 3000) { - Destruction(); + DespawnMyselfServerRPC(); } } // Spawns a singular Hail piece - void SpawnHail(float size, Vector3 pos) - { - //Spawn HailBall and its shadow - GameObject HailTemp = null; - HailTemp = Instantiate(Hail); - HailTemp.transform.position = pos; - HailTemp.transform.localScale = new Vector3(size, size, size); + [ServerRpc(RequireOwnership = false)] + void SpawnHailServerRPC(float size, Vector3 pos) { + spawnedHail = Instantiate(Hail, pos, Quaternion.identity); + spawnedHail.GetComponent().Spawn(null, true); + ResizeHailClientRPC(spawnedHail.GetComponent().NetworkObjectId, size); + } + + [ClientRpc] + private void ResizeHailClientRPC(ulong hailID, float size) { + GameObject[] hails = GameObject.FindGameObjectsWithTag("Hail"); + + foreach (GameObject hail in hails) { + if (hail.GetComponent().NetworkObjectId == hailID) { + hail.transform.localScale = new Vector3(size, size, size); + } + } } public void SetArea(float LeftBound, float RightBound, float TopBound, float BottomBound) { @@ -87,7 +100,8 @@ public class HailArea : MonoBehaviour } } - void Destruction() { - Destroy(gameObject); + [ServerRpc(RequireOwnership = false)] + private void DespawnMyselfServerRPC() { + this.gameObject.GetComponent().Despawn(true); } } diff --git a/Assets/Scripts/KingScripts/KingPlace.cs b/Assets/Scripts/KingScripts/KingPlace.cs index 7cfa18b..17d49a5 100644 --- a/Assets/Scripts/KingScripts/KingPlace.cs +++ b/Assets/Scripts/KingScripts/KingPlace.cs @@ -332,10 +332,10 @@ public class KingPlace : NetworkBehaviour GridCheck(RowNumb, Box, ref HailPlacing);//Makes sure the Box is a valid position } //Instanciate HailArea based on PlaceTemp = Top Left and HailCorner = Bottom Right - if (HailPlacing == false) { - GameObject Temp; - Temp = Instantiate(HailObject); - Temp.GetComponent().SetArea(PlaceTemp.transform.position.x, HailCorner.transform.position.x, PlaceTemp.transform.position.z, HailCorner.transform.position.z); + if (HailPlacing == false) { + Vector4 spawnLoc = new Vector4(PlaceTemp.transform.position.x, HailCorner.transform.position.x, PlaceTemp.transform.position.z, HailCorner.transform.position.z); + SpawnHailServerRPC(spawnLoc); + Destroy(PlaceTemp); Destroy(HailCorner); } @@ -414,4 +414,13 @@ public class KingPlace : NetworkBehaviour placedObj.GetComponent().Spawn(null, true); } + + [ServerRpc(RequireOwnership = false)] + private void SpawnHailServerRPC(Vector4 spawnLoc) { + placedObj = Instantiate(HailObject, Vector3.zero, Quaternion.identity); + + placedObj.GetComponent().SetArea(spawnLoc.x, spawnLoc.y, spawnLoc.z, spawnLoc.w); + + placedObj.GetComponent().Spawn(null, true); + } } diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index e686ea5..2eebc61 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -28,6 +28,8 @@ TagManager: - MountainRespawnPoint - PlayerModel - MountainGrid + - Shadows + - Hail layers: - Default - TransparentFX diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 6d0447a..cea817e 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -6,35 +6,35 @@ EditorUserSettings: serializedVersion: 4 m_ConfigSettings: RecentlyUsedScenePath-0: - value: 22424703114646680e0b0227036c7b151b180b6501273035202c1327d1e33136e7a923e7ee2e26 - flags: 0 - RecentlyUsedScenePath-1: value: 22424703114646680e0b0227036c731f1415016439262f2434 flags: 0 - RecentlyUsedScenePath-2: + RecentlyUsedScenePath-1: value: 22424703114646680e0b0227036c7b151b180b650e3a233126281f3fe7c23837e1ec25a7f234362820 flags: 0 + RecentlyUsedScenePath-2: + value: 22424703114646680e0b0227036c7b151b180b6501273035202c1327d1e33136e7a923e7ee2e26 + flags: 0 RecentlyUsedScenePath-3: value: 22424703114646680e0b0227036c7b151b180b6501273035202c1327d1e33136e7a923e7ee2e26 flags: 0 RecentlyUsedScenePath-4: - value: 22424703114646680e0b0227036c7b151b180b6501273035202c1327d1e33136e7a923e7ee2e26 + value: 22424703114646680e0b0227036c731f1415016439262f2434 flags: 0 RecentlyUsedScenePath-5: - value: 22424703114646680e0b0227036c731f1415016439262f2434 - flags: 0 - RecentlyUsedScenePath-6: value: 22424703114646680e0b0227036c7b151b180b6519016b0515163936efef2776f7e93ffdfe flags: 0 - RecentlyUsedScenePath-7: + RecentlyUsedScenePath-6: value: 22424703114646680e0b0227036c731f1415016439262f2434 flags: 0 - RecentlyUsedScenePath-8: + RecentlyUsedScenePath-7: value: 22424703114646680e0b0227036c78111b125507233d28242c20137df7ee3d2cfb flags: 0 - RecentlyUsedScenePath-9: + RecentlyUsedScenePath-8: value: 22424703114646680e0b0227036c7b151b180b650721283704240d14f0e12d3aedff78fce9332b25 flags: 0 + RecentlyUsedScenePath-9: + value: 22424703114646680e0b0227036c6f02131b172b282d347e38271427fb + flags: 0 vcSharedLogLevel: value: 0d5e400f0650 flags: 0