diff --git a/Assets/Scripts/PlayerScripts/NetworkedStateMachines/OffenseState/OffenseStateManager.cs b/Assets/Scripts/PlayerScripts/NetworkedStateMachines/OffenseState/OffenseStateManager.cs index 5c2ff10..256e96c 100644 --- a/Assets/Scripts/PlayerScripts/NetworkedStateMachines/OffenseState/OffenseStateManager.cs +++ b/Assets/Scripts/PlayerScripts/NetworkedStateMachines/OffenseState/OffenseStateManager.cs @@ -168,12 +168,34 @@ public class OffenseStateManager : NetworkBehaviour foreach(GameObject character in playableCharacters){ if(character.transform.root.GetComponent() != null && character.transform.root.GetComponent().NetworkObjectId == netObjId){ + + ulong kickedPlayerClientID = character.transform.root.GetComponent().OwnerClientId; + //Apply kick to other player - Debug.Log("Kicking other user"); - character.GetComponent().GetHit(direction, 20); + ClientRpcParams clientRpcParams = new ClientRpcParams + { + Send = new ClientRpcSendParams + { + TargetClientIds = new ulong[] { kickedPlayerClientID } + } + }; + + ApplyKickToPlayerClientRPC(kickedPlayerClientID, direction, clientRpcParams); return; } } } + + [ClientRpc] + private void ApplyKickToPlayerClientRPC(ulong playerToKickID, Vector3 direction, ClientRpcParams clientRpcParams) { + GameObject[] players = GameObject.FindGameObjectsWithTag("Player"); + + foreach (GameObject player in players) { + if (player.GetComponent().OwnerClientId == playerToKickID) { + player.GetComponentInChildren().GetHit(direction, 20); + return; + } + } + } }