public override void Update(FlowNode_StartMultiPlay self) { DebugUtility.Log("StartMultiPlay State_Start Update"); MyPhoton instance = PunMonoSingleton <MyPhoton> .Instance; if (instance.CurrentState != MyPhoton.MyState.ROOM) { self.Failure(); } else { MyPhoton.MyRoom currentRoom = instance.GetCurrentRoom(); if (currentRoom == null) { self.Failure(); } else if (this.mPlayerNum != currentRoom.playerCount) { self.FailureStartMulti(); } else if (!instance.IsOldestPlayer() && !currentRoom.start) { self.Failure(); } else { bool flag = true; using (List <MyPhoton.MyPlayer> .Enumerator enumerator = instance.GetRoomPlayerList().GetEnumerator()) { while (enumerator.MoveNext()) { JSON_MyPhotonPlayerParam photonPlayerParam = JSON_MyPhotonPlayerParam.Parse(enumerator.Current.json); if (photonPlayerParam.state != 2) { flag = false; if (instance.IsOldestPlayer()) { if (!instance.IsOldestPlayer(photonPlayerParam.playerID)) { if (photonPlayerParam.state != 1) { self.FailureStartMulti(); return; } } else { continue; } } DebugUtility.Log("StartMultiPlay State_Start Update allStart is false"); break; } } } if (flag) { DebugUtility.Log("StartMultiPlay State_Start Update change state to game start"); self.GotoState <FlowNode_StartMultiPlay.State_GameStart>(); } else if (currentRoom.start) { DebugUtility.Log("StartMultiPlay State_Start Update room is closed"); JSON_MyPhotonPlayerParam photonPlayerParam = JSON_MyPhotonPlayerParam.Parse(instance.GetMyPlayer().json); if (photonPlayerParam.state == 2) { return; } photonPlayerParam.state = 2; instance.SetMyPlayerParam(photonPlayerParam.Serialize()); DebugUtility.Log("StartMultiPlay State_Start Update update my state"); } else { if (!instance.IsOldestPlayer()) { return; } DebugUtility.Log("StartMultiPlay State_Start Update close room"); instance.CloseRoom(); } } } }