Photon - problem with RPC calls

Options
I'm writing a card game using Vuforia and Photon in Unity Game Engine. In my application there are some gameobjects that have photonView and they belong only to the scene view ("_GameManagement", "_CubeManagment", "_PlayerManagement"). Those object control the game.

_GameManagement - its an object that controls everything in game. The most important script is "Round". There is code that is responsible for controlling which player turn is to make a move, pick an object.
In my understanding, gameobject's scripts that belong to the scene are executed only by a master. In the script called Round there is a switch that should determine whose turn is for picking an object. Everything is alright when the first player is client. When client picks an object , bool SourceOfEnchantment1...4 is changed true and after this is next player turn (in case there are 2 players its master turn).

Everything changes when first player is master client. Basically script acts like those bools SourceOfEnchantment are already turned true and both players can pick an object.

Below the code of Round script. Please anyone can tell me what I'm doing wrong?


private void PickCube()


switch(PlayersOrderSwitch)
{
case (PlayerRound.Player1):

var SOE1 = PlayersOrder[0].GetComponent().SourceOfEnchantment.name;

CallNumber = 0;

photonView.RPC("ActiveSummonRune", PhotonTargets.AllViaServer, CallNumber);

if(SOE1 == "SourceOfEnchantment1")
{
if(SourceOfEnchantment1 == true)
{
Debug.Log("Rune Summoned - Next Player2");
photonView.RPC("Next2",PhotonTargets.AllViaServer);
}
}
if(SOE1 == "SourceOfEnchantment2")
{
if(SourceOfEnchantment2 == true)
{
Debug.Log("Rune Summoned - Next Player2");
photonView.RPC("Next2",PhotonTargets.AllViaServer);
}
}
if(SOE1 == "SourceOfEnchantment3")
{
if(SourceOfEnchantment3 == true)
{
Debug.Log("Rune Summoned - Next Player2");
photonView.RPC("Next2",PhotonTargets.AllViaServer);
}
}
if(SOE1 == "SourceOfEnchantment4")
{
if(SourceOfEnchantment4 == true)
{
Debug.Log("Rune Summoned - Next Player2");
photonView.RPC("Next2",PhotonTargets.AllViaServer);
}
}
break;

case (PlayerRound.Player2):

var SOE2 = PlayersOrder[1].GetComponent().SourceOfEnchantment.name;

CallNumber = 1;

photonView.RPC("ActiveSummonRune", PhotonTargets.AllViaServer, CallNumber);
if(SOE2 == "SourceOfEnchantment1")
{
if(SourceOfEnchantment1 == true)
{
Debug.Log("Rune Summoned - Next ChooseCubeSide");
photonView.RPC("Next3",PhotonTargets.AllViaServer);
}
}
if(SOE2 == "SourceOfEnchantment2")
{
if(SourceOfEnchantment2 == true)
{
Debug.Log("Rune Summoned - Next ChooseCubeSide");
photonView.RPC("Next3",PhotonTargets.AllViaServer);
}
}
if(SOE2 == "SourceOfEnchantment3")
{
if(SourceOfEnchantment3 == true)
{
Debug.Log("Rune Summoned - Next ChooseCubeSide");
photonView.RPC("Next3",PhotonTargets.AllViaServer);
}
}
if(SOE2 == "SourceOfEnchantment4")
{
if(SourceOfEnchantment4 == true)
{
Debug.Log("Rune Summoned - Next ChooseCubeSide");
photonView.RPC("Next3",PhotonTargets.AllViaServer);
}
}

break;

}
}
[PunRPC]
void Next2()
{
PlayersOrderSwitch = PlayerRound.Player2;
}
[PunRPC]
void Next3()
{
currentState = RoundState.ChooseCubeSide;
}
[PunRPC]
void ResetSummonedRune()
{

SourceOfEnchantment1 = false;
SourceOfEnchantment2 = false;
SourceOfEnchantment3 = false;
SourceOfEnchantment4 = false;

}
[PunRPC]
void ActiveSummonRune(int CallNumber)
{
PlayersOrder[CallNumber].GetComponent().SourceOfEnchantment.GetComponent().ButtonRune.SetActive(true);
}