//This bad boy is responsible for keeping track of book deliveries public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) { if (stream.IsWriting) { //We own this -> send the book order status string json = JsonUtility.ToJson(new BookOrders(currentBookOrders)); stream.SendNext(json); //Send the game time stream.SendNext(remainingLevelTime); //Send the game gold stream.SendNext(remainingLevelGold); //Send the customer spawn time stream.SendNext(customerSpawnTimer); //Send Pregame timer stream.SendNext(preGameCountdownRemainingTime); //Send customer queue string queueJson = JsonUtility.ToJson(queuedCustomers); stream.SendNext(queueJson); } else { //We are receiving the book status string bookStatus = (string)stream.ReceiveNext(); currentBookOrders = BookOrders.Deserialize(bookStatus); //Receive game time remainingLevelTime = (float)stream.ReceiveNext(); //Receive game gold remainingLevelGold = (int)stream.ReceiveNext(); //Receive customer spawn time customerSpawnTimer = (float)stream.ReceiveNext(); //Receive pre-game timer preGameCountdownRemainingTime = (float)stream.ReceiveNext(); //Receive our customer queue string queueJson = (string)stream.ReceiveNext(); queuedCustomers = JsonUtility.FromJson(queueJson); } UpdateGameTime(remainingLevelTime); UpdateGameGold(remainingLevelGold); UpdatePreGameTime(preGameCountdownRemainingTime); }