Slow time for every enemy at a certain distance from inside RPC

SO i’m creating a slow motion effect that can be used against enemies when they are at a distance of 200 or less away from “me”(player).

here is the RPC code.
it work to the point where it slows the time down across the network but it is slowing time for every single player and not just those who are at a distance of 200.

this script is placed on my player.

	[RPC]
	void SlowTimeForEveryEnemyCloseToMe( float TScale)
	{
				// check which team i am on 

				if (TeamImOn == "Red") {
						if (GameObject.FindGameObjectsWithTag ("blueTeam") != null) {
								gos = GameObject.FindGameObjectsWithTag ("blueTeam");
						}
			
				}
				if (TeamImOn == "Blue") {
						if (GameObject.FindGameObjectsWithTag ("redTeam") != null) {
								gos = GameObject.FindGameObjectsWithTag ("redTeam");   
						}
			
				}
				// check distance
		try
		{
				foreach (GameObject go in gos) {
						float dist;
						dist = Vector3.Distance (go.transform.position, transform.position);
						if (dist < 200.0f) {
				 
					Time.timeScale = TScale ;
						}
				}
		}
	catch
	{
		return;
	}
	}

If you are using an authoritative setup, this would be the responsibility of the server. If you are not running a central server, each client would check their own slowmo-state.

For the non-server approach, this is the basics:

  1. Send an RPC to the NetworkView of the object which has the slowmo effect around itself
  2. This sets a bool which says slowmo active/not active
  3. On each local client, you check if they are within range of another player which has “slowmo” set to true (and its on the other team)
  4. If they are slow them down, if they are not, speed them up