public override void Begin(FlowNode_MultiPlayJoinRoom self) { GameManager instance1 = MonoSingleton <GameManager> .Instance; MyPhoton instance2 = PunMonoSingleton <MyPhoton> .Instance; self.mJoinPlayerParam = JSON_MyPhotonPlayerParam.Create(0, 0); if (self.mJoinPlayerParam == null) { self.FailureLobby(); } else { JSON_MyPhotonRoomParam myPhotonRoomParam = new JSON_MyPhotonRoomParam(); myPhotonRoomParam.creatorName = MonoSingleton <GameManager> .Instance.Player.Name; myPhotonRoomParam.creatorLV = MonoSingleton <GameManager> .Instance.Player.CalcLevel(); myPhotonRoomParam.creatorFUID = JSON_MyPhotonRoomParam.GetMyCreatorFUID(); myPhotonRoomParam.roomid = GlobalVars.SelectedMultiPlayRoomID; myPhotonRoomParam.comment = GlobalVars.SelectedMultiPlayRoomComment; myPhotonRoomParam.passCode = GlobalVars.EditMultiPlayRoomPassCode; myPhotonRoomParam.iname = GlobalVars.SelectedQuestID; myPhotonRoomParam.type = (int)GlobalVars.SelectedMultiPlayRoomType; myPhotonRoomParam.isLINE = !self.IsLINE ? 0 : 1; myPhotonRoomParam.vsmode = instance1.GetVSMode(-1L) != VS_MODE.THREE_ON_THREE ? 1 : 0; int creatorLv = myPhotonRoomParam.creatorLV; string deviceId = MonoSingleton <GameManager> .Instance.DeviceId; int rankMatchScore = MonoSingleton <GameManager> .Instance.Player.RankMatchScore; int rankMatchClass = (int)MonoSingleton <GameManager> .Instance.Player.RankMatchClass; if (instance2.CreateRoom(GlobalVars.SelectedMultiPlayRoomName, myPhotonRoomParam.Serialize(), self.mJoinPlayerParam.Serialize(), creatorLv, deviceId, rankMatchScore, rankMatchClass)) { return; } self.FailureLobby(); } }
public override void Begin(FlowNode_MultiPlayJoinRoom self) { MyPhoton instance = PunMonoSingleton <MyPhoton> .Instance; self.mJoinPlayerParam = JSON_MyPhotonPlayerParam.Create(0, 0); if (self.mJoinPlayerParam == null) { self.FailureLobby(); } else { JSON_MyPhotonRoomParam myPhotonRoomParam = new JSON_MyPhotonRoomParam(); myPhotonRoomParam.creatorName = MonoSingleton <GameManager> .Instance.Player.Name; myPhotonRoomParam.creatorLV = MonoSingleton <GameManager> .Instance.Player.CalcLevel(); myPhotonRoomParam.creatorFUID = JSON_MyPhotonRoomParam.GetMyCreatorFUID(); myPhotonRoomParam.roomid = GlobalVars.SelectedMultiPlayRoomID; myPhotonRoomParam.comment = GlobalVars.SelectedMultiPlayRoomComment; myPhotonRoomParam.passCode = GlobalVars.EditMultiPlayRoomPassCode; myPhotonRoomParam.iname = GlobalVars.SelectedQuestID; myPhotonRoomParam.type = (int)GlobalVars.SelectedMultiPlayRoomType; myPhotonRoomParam.isLINE = !self.IsLINE ? 0 : 1; int plv = -1; int floor = -1; if (GlobalVars.SelectedMultiPlayVersusType == VERSUS_TYPE.Tower) { plv = myPhotonRoomParam.creatorLV; floor = MonoSingleton <GameManager> .Instance.Player.VersusTowerFloor; } if (instance.CreateRoom((int)self.VERSUS_PLAYER_MAX, GlobalVars.SelectedMultiPlayRoomName, myPhotonRoomParam.Serialize(), self.mJoinPlayerParam.Serialize(), GlobalVars.MultiPlayVersusKey, floor, plv)) { return; } self.FailureLobby(); } }
public override void Begin(FlowNode_MultiPlayJoinRoom self) { MyPhoton instance = PunMonoSingleton <MyPhoton> .Instance; QuestParam quest = MonoSingleton <GameManager> .Instance.FindQuest(GlobalVars.SelectedQuestID); if (quest == null || !quest.IsMulti || ((int)quest.playerNum < 1 || (int)quest.unitNum < 1) || ((int)quest.unitNum > 8 || quest.map == null || quest.map.Count <= 0)) { DebugUtility.Log("illegal iname:" + GlobalVars.SelectedQuestID); self.IllegalQuest(); } else { DebugUtility.Log("CreateRoom quest:" + quest.iname + " desc:" + quest.name); self.mJoinPlayerParam = JSON_MyPhotonPlayerParam.Create(0, 0); if (self.mJoinPlayerParam == null) { self.FailureLobby(); } else { JSON_MyPhotonRoomParam myPhotonRoomParam = new JSON_MyPhotonRoomParam(); myPhotonRoomParam.creatorName = MonoSingleton <GameManager> .Instance.Player.Name; myPhotonRoomParam.creatorLV = MonoSingleton <GameManager> .Instance.Player.CalcLevel(); myPhotonRoomParam.creatorFUID = JSON_MyPhotonRoomParam.GetMyCreatorFUID(); myPhotonRoomParam.roomid = GlobalVars.SelectedMultiPlayRoomID; myPhotonRoomParam.comment = GlobalVars.SelectedMultiPlayRoomComment; myPhotonRoomParam.passCode = GlobalVars.EditMultiPlayRoomPassCode; myPhotonRoomParam.iname = GlobalVars.SelectedQuestID; myPhotonRoomParam.type = (int)GlobalVars.SelectedMultiPlayRoomType; myPhotonRoomParam.isLINE = !self.IsLINE ? 0 : 1; DebugUtility.Log("create isLINE:" + (object)myPhotonRoomParam.isLINE + " iname:" + myPhotonRoomParam.iname + " roomid:" + (object)myPhotonRoomParam.roomid + " appID:" + GlobalVars.SelectedMultiPlayPhotonAppID + " token:" + GlobalVars.SelectedMultiPlayRoomName + " comment:" + myPhotonRoomParam.comment + " pass:"******" type:" + (object)myPhotonRoomParam.type + " json:" + myPhotonRoomParam.Serialize()); if (instance.CreateRoom((int)quest.playerNum, GlobalVars.SelectedMultiPlayRoomName, myPhotonRoomParam.Serialize(), self.mJoinPlayerParam.Serialize(), (string)null, -1, -1)) { return; } self.FailureLobby(); } } }
public override void Update(FlowNode_StartMultiPlay self) { 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 { JSON_MyPhotonRoomParam myPhotonRoomParam = !string.IsNullOrEmpty(currentRoom.json) ? JSON_MyPhotonRoomParam.Parse(currentRoom.json) : (JSON_MyPhotonRoomParam)null; if (myPhotonRoomParam == null) { self.Failure(); } else { if (myPhotonRoomParam.started == 0) { myPhotonRoomParam.started = 1; instance.SetRoomParam(myPhotonRoomParam.Serialize()); } if ((double)this.mStartWait > 0.0) { this.mStartWait -= Time.get_deltaTime(); if ((double)this.mStartWait > 0.0) { return; } GlobalVars.SelectedQuestID = myPhotonRoomParam.iname; GlobalVars.SelectedFriendID = (string)null; GlobalVars.SelectedFriend = (FriendData)null; GlobalVars.SelectedSupport.Set((SupportData)null); self.Success(); DebugUtility.Log("StartMultiPlay: " + myPhotonRoomParam.Serialize()); } else if ((double)this.mWait > 0.0) { this.mWait -= Time.get_deltaTime(); } else { List <MyPhoton.MyPlayer> roomPlayerList = instance.GetRoomPlayerList(); if ((myPhotonRoomParam.type == 1 || myPhotonRoomParam.type == 3) && roomPlayerList.Count == 1) { self.FailureStartMulti(); } else if (this.mConfirm) { using (List <MyPhoton.MyPlayer> .Enumerator enumerator = roomPlayerList.GetEnumerator()) { while (enumerator.MoveNext()) { JSON_MyPhotonPlayerParam photonPlayerParam = JSON_MyPhotonPlayerParam.Parse(enumerator.Current.json); if (photonPlayerParam.state != 3) { return; } if (photonPlayerParam.state < 2) { self.Failure(); return; } } } this.mStartWait = 0.1f; } else { MyPhoton.MyPlayer myPlayer = instance.GetMyPlayer(); if (this.mRecvList.Count <= 0) { this.mSend.senderPlayerID = myPlayer.photonPlayerID; this.mSend.playerListJson = (string)null; List <JSON_MyPhotonPlayerParam> photonPlayerParamList = new List <JSON_MyPhotonPlayerParam>(); for (int index = 0; index < roomPlayerList.Count; ++index) { JSON_MyPhotonPlayerParam photonPlayerParam = JSON_MyPhotonPlayerParam.Parse(roomPlayerList[index].json); photonPlayerParamList.Add(photonPlayerParam); } photonPlayerParamList.Sort((Comparison <JSON_MyPhotonPlayerParam>)((a, b) => a.playerIndex - b.playerIndex)); FlowNode_StartMultiPlay.PlayerList playerList = new FlowNode_StartMultiPlay.PlayerList(); playerList.players = photonPlayerParamList.ToArray(); Json_MyPhotonPlayerBinaryParam[] playerBinaryParamArray = new Json_MyPhotonPlayerBinaryParam[playerList.players.Length]; for (int index = 0; index < playerList.players.Length; ++index) { playerList.players[index].CreateJsonUnitData(); playerBinaryParamArray[index] = new Json_MyPhotonPlayerBinaryParam(); playerBinaryParamArray[index].Set(playerList.players[index]); } this.mSend.playerList = playerBinaryParamArray; byte[] msg = GameUtility.Object2Binary <FlowNode_StartMultiPlay.RecvData>(this.mSend); instance.SendRoomMessageBinary(true, msg, MyPhoton.SEND_TYPE.Sync, false); this.mRecvList.Add(this.mSend); this.mSend.playerListJson = playerList.Serialize(); } List <MyPhoton.MyEvent> events = instance.GetEvents(); for (int index = events.Count - 1; index >= 0; --index) { FlowNode_StartMultiPlay.RecvData buffer = (FlowNode_StartMultiPlay.RecvData)null; if (!GameUtility.Binary2Object <FlowNode_StartMultiPlay.RecvData>(out buffer, events[index].binary)) { DebugUtility.LogError("[PUN] started player list version error: " + events[index].json); instance.Disconnect(); return; } if (buffer == null || buffer.version < this.mSend.version) { DebugUtility.LogError("[PUN] started player list version error: " + events[index].json); instance.Disconnect(); return; } if (buffer.version <= this.mSend.version) { buffer.senderPlayerID = events[index].playerID; DebugUtility.Log("[PUN] recv started player list: " + events[index].json); this.mRecvList.Add(buffer); events.Remove(events[index]); } } using (List <MyPhoton.MyPlayer> .Enumerator enumerator = roomPlayerList.GetEnumerator()) { while (enumerator.MoveNext()) { MyPhoton.MyPlayer p = enumerator.Current; if (this.mRecvList.FindIndex((Predicate <FlowNode_StartMultiPlay.RecvData>)(r => r.senderPlayerID == p.photonPlayerID)) < 0) { return; } } } bool flag = true; using (List <FlowNode_StartMultiPlay.RecvData> .Enumerator enumerator = this.mRecvList.GetEnumerator()) { while (enumerator.MoveNext()) { FlowNode_StartMultiPlay.RecvData current = enumerator.Current; if (current.playerList.Length == this.mSend.playerList.Length) { for (int index = 0; index < this.mSend.playerList.Length; ++index) { if (!Json_MyPhotonPlayerBinaryParam.IsEqual(current.playerList[index], this.mSend.playerList[index])) { flag = false; } } if (!flag) { break; } } else { flag = false; break; } } } if (!flag) { DebugUtility.Log("[PUN] started player list is not equal. ver:" + (object)this.mSend.version); this.mRecvList.Clear(); ++this.mSend.version; this.mWait = 1f; } else { DebugUtility.Log("[PUN]started player list decided. ver:" + (object)this.mSend.version); List <JSON_MyPhotonPlayerParam> myPlayersStarted = instance.GetMyPlayersStarted(); myPlayersStarted.Clear(); foreach (JSON_MyPhotonPlayerParam player in JSONParser.parseJSONObject <FlowNode_StartMultiPlay.PlayerList>(this.mSend.playerListJson).players) { player.SetupUnits(); myPlayersStarted.Add(player); } if (instance.IsOldestPlayer()) { instance.UpdateRoomParam("started", (object)this.mSend.playerListJson); } if (events.Count > 0) { DebugUtility.LogError("[PUN] event must be empty."); } events.Clear(); JSON_MyPhotonPlayerParam photonPlayerParam = JSON_MyPhotonPlayerParam.Parse(myPlayer.json); photonPlayerParam.state = 3; instance.SetMyPlayerParam(photonPlayerParam.Serialize()); this.mConfirm = true; } } } } } } }
public override void OnActivate(int pinID) { switch (pinID) { case 0: case 4: case 22: this.ResetPlacementParam(); string empty1 = string.Empty; string str1 = !PlayerPrefsUtility.HasKey(PlayerPrefsUtility.ROOM_COMMENT_KEY) ? LocalizedText.Get("sys.DEFAULT_ROOM_COMMENT") : PlayerPrefsUtility.GetString(PlayerPrefsUtility.ROOM_COMMENT_KEY, string.Empty); if (string.IsNullOrEmpty(str1)) { str1 = LocalizedText.Get("sys.DEFAULT_ROOM_COMMENT"); } if (!MyMsgInput.isLegal(str1)) { DebugUtility.Log("comment is not legal"); this.ActivateOutputLinks(4801); break; } GlobalVars.ResumeMultiplayPlayerID = 0; GlobalVars.ResumeMultiplaySeatID = 0; GlobalVars.SelectedMultiPlayRoomComment = str1; DebugUtility.Log("MakeRoom Comment:" + GlobalVars.SelectedMultiPlayRoomComment); bool flag = false; if (pinID == 4) { GlobalVars.SelectedQuestID = FlowNode_OnUrlSchemeLaunch.LINEParam_decided.iname; GlobalVars.SelectedMultiPlayRoomType = FlowNode_OnUrlSchemeLaunch.LINEParam_decided.type; GlobalVars.EditMultiPlayRoomPassCode = "0"; flag = true; DebugUtility.Log("MakeRoom for LINE Quest:" + GlobalVars.SelectedQuestID + " Type:" + (object)GlobalVars.SelectedMultiPlayRoomType + " PassCodeHash:" + GlobalVars.SelectedMultiPlayRoomPassCodeHash); } GlobalVars.EditMultiPlayRoomPassCode = "0"; string s = FlowNode_Variable.Get("MultiPlayPasscode"); if (!string.IsNullOrEmpty(s)) { int result = 0; if (int.TryParse(s, out result)) { GlobalVars.EditMultiPlayRoomPassCode = result.ToString(); } } bool isPrivate = flag; FlowNode_MultiPlayAPI.RoomMakeTime = Time.get_realtimeSinceStartup(); bool limit = GlobalVars.SelectedMultiPlayLimit & GlobalVars.EditMultiPlayRoomPassCode == "0"; int unitlv = isPrivate || !limit ? 0 : GlobalVars.MultiPlayJoinUnitLv; bool clear = !isPrivate && limit && GlobalVars.MultiPlayClearOnly; int selectedMultiTowerFloor1 = GlobalVars.SelectedMultiTowerFloor; if (Network.Mode != Network.EConnectMode.Online) { GlobalVars.SelectedMultiPlayRoomID = (int)(DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds; GlobalVars.SelectedMultiPlayPhotonAppID = string.Empty; GlobalVars.SelectedMultiPlayRoomName = Guid.NewGuid().ToString(); DebugUtility.Log("MakeRoom RoomID:" + (object)GlobalVars.SelectedMultiPlayRoomID + " AppID:" + GlobalVars.SelectedMultiPlayPhotonAppID + " Name:" + GlobalVars.SelectedMultiPlayRoomName); this.Success(); break; } MultiInvitationSendWindow.ClearInvited(); ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.MAKE; if (pinID != 22) { this.ExecRequest((WebAPI) new ReqMPRoomMake(GlobalVars.SelectedQuestID, str1, GlobalVars.EditMultiPlayRoomPassCode, isPrivate, limit, unitlv, clear, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; } this.ExecRequest((WebAPI) new ReqMultiTwRoomMake(GlobalVars.SelectedMultiTowerID, str1, GlobalVars.EditMultiPlayRoomPassCode, selectedMultiTowerFloor1, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 2: case 5: case 23: case 50: string fuid = (string)null; if (pinID == 5) { fuid = FlowNode_OnUrlSchemeLaunch.LINEParam_decided.creatorFUID; } else if (pinID == 50) { fuid = GlobalVars.MultiInvitationRoomOwner; } DebugUtility.Log("ListRoom FUID:" + fuid); if (Network.Mode != Network.EConnectMode.Online) { this.StartCoroutine(this.GetPhotonRoomList(fuid)); break; } FlowNode_MultiPlayAPI.RoomList = (ReqMPRoom.Response)null; string iname = string.Empty; if (pinID == 2) { iname = GlobalVars.SelectedQuestID; } int selectedMultiTowerFloor2 = GlobalVars.SelectedMultiTowerFloor; ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.ROOM; if (pinID != 23) { this.ExecRequest((WebAPI) new ReqMPRoom(fuid, iname, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; } this.ExecRequest((WebAPI) new ReqMultiTwRoom(fuid, iname, selectedMultiTowerFloor2, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 3: case 6: case 24: case 51: if (FlowNode_MultiPlayAPI.RoomList == null || FlowNode_MultiPlayAPI.RoomList.rooms == null || FlowNode_MultiPlayAPI.RoomList.rooms.Length <= 0) { this.Failure(); break; } this.ResetPlacementParam(); bool LockRoom = false; switch (pinID) { case 6: if (FlowNode_MultiPlayAPI.RoomList.rooms.Length != 1 || FlowNode_MultiPlayAPI.RoomList.rooms[0] == null) { this.Failure(); return; } GlobalVars.SelectedMultiPlayRoomID = FlowNode_MultiPlayAPI.RoomList.rooms[0].roomid; DebugUtility.Log("JoinRoom for LINE RoomID:" + (object)GlobalVars.SelectedMultiPlayRoomID); break; case 51: if (FlowNode_MultiPlayAPI.RoomList.rooms.Length != 1 || FlowNode_MultiPlayAPI.RoomList.rooms[0] == null) { this.Failure(); return; } LockRoom = GlobalVars.MultiInvitationRoomLocked; GlobalVars.SelectedMultiPlayRoomID = FlowNode_MultiPlayAPI.RoomList.rooms[0].roomid; DebugUtility.Log("JoinRoom for Invitation RoomID:" + (object)GlobalVars.SelectedMultiPlayRoomID); break; } GlobalVars.ResumeMultiplayPlayerID = 0; GlobalVars.ResumeMultiplaySeatID = 0; GlobalVars.SelectedQuestID = (string)null; for (int index = 0; index < FlowNode_MultiPlayAPI.RoomList.rooms.Length; ++index) { if (FlowNode_MultiPlayAPI.RoomList.rooms[index].quest != null && !string.IsNullOrEmpty(FlowNode_MultiPlayAPI.RoomList.rooms[index].quest.iname) && FlowNode_MultiPlayAPI.RoomList.rooms[index].roomid == GlobalVars.SelectedMultiPlayRoomID) { GlobalVars.SelectedQuestID = FlowNode_MultiPlayAPI.RoomList.rooms[index].quest.iname; break; } } if (string.IsNullOrEmpty(GlobalVars.SelectedQuestID)) { this.Failure(); break; } if (Network.Mode != Network.EConnectMode.Online) { this.StartCoroutine(this.GetPhotonRoomName()); break; } int selectedMultiTowerFloor3 = GlobalVars.SelectedMultiTowerFloor; ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.JOIN; if (pinID != 24) { this.ExecRequest((WebAPI) new ReqMPRoomJoin(GlobalVars.SelectedMultiPlayRoomID, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback), LockRoom)); break; } this.ExecRequest((WebAPI) new ReqMultiTwRoomJoin(GlobalVars.SelectedMultiPlayRoomID, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback), LockRoom, selectedMultiTowerFloor3, false)); break; case 7: case 26: case 55: case 56: if (Network.Mode != Network.EConnectMode.Online) { this.Success(); break; } if (!string.IsNullOrEmpty(GlobalVars.EditMultiPlayRoomComment) && !MyMsgInput.isLegal(GlobalVars.EditMultiPlayRoomComment)) { DebugUtility.Log("comment is not legal"); this.ActivateOutputLinks(4801); break; } switch (pinID) { case 55: GlobalVars.EditMultiPlayRoomPassCode = "0"; GlobalVars.EditMultiPlayRoomComment = GlobalVars.SelectedMultiPlayRoomComment; break; case 56: GlobalVars.EditMultiPlayRoomPassCode = "1"; GlobalVars.EditMultiPlayRoomComment = GlobalVars.SelectedMultiPlayRoomComment; break; } ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.UPDATE; if (GlobalVars.SelectedMultiPlayRoomType != JSON_MyPhotonRoomParam.EType.TOWER) { this.ExecRequest((WebAPI) new ReqMPRoomUpdate(GlobalVars.SelectedMultiPlayRoomID, GlobalVars.EditMultiPlayRoomComment, GlobalVars.EditMultiPlayRoomPassCode, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; } string selectedMultiTowerId = GlobalVars.SelectedMultiTowerID; int selectedMultiTowerFloor4 = GlobalVars.SelectedMultiTowerFloor; this.ExecRequest((WebAPI) new ReqMultiTwRoomUpdate(GlobalVars.SelectedMultiPlayRoomID, GlobalVars.EditMultiPlayRoomComment, GlobalVars.EditMultiPlayRoomPassCode, selectedMultiTowerId, selectedMultiTowerFloor4, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 8: case 25: case 28: if (Network.Mode != Network.EConnectMode.Online) { this.Failure(); break; } if (GlobalVars.SelectedMultiPlayRoomID < FlowNode_MultiPlayAPI.ROOMID_VALIDATE_MIN || GlobalVars.SelectedMultiPlayRoomID > FlowNode_MultiPlayAPI.ROOMID_VALIDATE_MAX) { this.Failure(); break; } this.ResetPlacementParam(); GlobalVars.ResumeMultiplayPlayerID = 0; GlobalVars.ResumeMultiplaySeatID = 0; ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.JOIN; if (pinID != 25 && pinID != 28) { this.ExecRequest((WebAPI) new ReqMPRoomJoin(GlobalVars.SelectedMultiPlayRoomID, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback), true)); break; } this.API = FlowNode_MultiPlayAPI.EAPI.MT_JOIN; this.ExecRequest((WebAPI) new ReqMultiTwRoomJoin(GlobalVars.SelectedMultiPlayRoomID, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback), true, 0, pinID == 28)); break; case 9: if (Network.Mode != Network.EConnectMode.Online) { this.Success(); break; } ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.VERSION; this.ExecRequest((WebAPI) new ReqMPVersion(new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 10: if (Network.Mode != Network.EConnectMode.Online) { this.Success(); break; } GlobalVars.SelectedMultiPlayRoomName = string.Empty; GlobalVars.VersusRoomReuse = false; GlobalVars.ResumeMultiplayPlayerID = 0; GlobalVars.ResumeMultiplaySeatID = 0; GlobalVars.MultiPlayVersusKey = MonoSingleton <GameManager> .Instance.GetVersusKey(GlobalVars.SelectedMultiPlayVersusType); ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.VERSUS_START; this.ExecRequest((WebAPI) new ReqVersusStart(GlobalVars.SelectedMultiPlayVersusType, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 11: if (Network.Mode != Network.EConnectMode.Online) { this.Success(); break; } string empty2 = string.Empty; string str2 = !PlayerPrefsUtility.HasKey(PlayerPrefsUtility.ROOM_COMMENT_KEY) ? LocalizedText.Get("sys.DEFAULT_ROOM_COMMENT") : PlayerPrefsUtility.GetString(PlayerPrefsUtility.ROOM_COMMENT_KEY, string.Empty); if (string.IsNullOrEmpty(str2)) { str2 = LocalizedText.Get("sys.DEFAULT_ROOM_COMMENT"); } if (!MyMsgInput.isLegal(str2)) { DebugUtility.Log("comment is not legal"); this.ActivateOutputLinks(4801); break; } FlowNode_MultiPlayAPI.RoomMakeTime = Time.get_realtimeSinceStartup(); GlobalVars.SelectedMultiPlayRoomComment = str2; ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.VERSUS_MAKE; this.ExecRequest((WebAPI) new ReqVersusMake(GlobalVars.SelectedMultiPlayVersusType, str2, GlobalVars.SelectedQuestID, false, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 12: if (Network.Mode != Network.EConnectMode.Online) { this.Failure(); break; } if (GlobalVars.SelectedMultiPlayRoomID < FlowNode_MultiPlayAPI.ROOMID_VALIDATE_MIN || GlobalVars.SelectedMultiPlayRoomID > FlowNode_MultiPlayAPI.ROOMID_VALIDATE_MAX) { this.Failure(); break; } ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.VERSUS_JOIN; this.ExecRequest((WebAPI) new ReqVersusRoomJoin(GlobalVars.SelectedMultiPlayRoomID, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 13: if (Network.Mode != Network.EConnectMode.Online) { this.Success(); break; } if (!MyMsgInput.isLegal(GlobalVars.EditMultiPlayRoomComment)) { DebugUtility.Log("comment is not legal"); this.ActivateOutputLinks(4801); break; } ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.UPDATE; this.ExecRequest((WebAPI) new ReqVersusRoomUpdate(GlobalVars.SelectedMultiPlayRoomID, GlobalVars.EditMultiPlayRoomComment, GlobalVars.SelectedQuestID, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 14: GlobalVars.SelectedMultiPlayRoomName = string.Empty; GlobalVars.VersusRoomReuse = false; GlobalVars.ResumeMultiplayPlayerID = 0; GlobalVars.ResumeMultiplaySeatID = 0; GlobalVars.MultiPlayVersusKey = MonoSingleton <GameManager> .Instance.GetVersusKey(GlobalVars.SelectedMultiPlayVersusType); this.Success(); break; case 15: if (Network.Mode != Network.EConnectMode.Online) { this.Success(); break; } ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.VERSUS_LINE_REQ; this.ExecRequest((WebAPI) new ReqVersusLine(GlobalVars.SelectedMultiPlayRoomName, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 16: if (Network.Mode != Network.EConnectMode.Online) { this.Success(); break; } GlobalVars.VersusRoomReuse = false; FlowNode_MultiPlayAPI.RoomMakeTime = Time.get_realtimeSinceStartup(); ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.VERSUS_LINE_MAKE; this.ExecRequest((WebAPI) new ReqVersusLineMake(GlobalVars.SelectedMultiPlayRoomName, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 17: if (Network.Mode != Network.EConnectMode.Online) { this.Failure(); break; } GlobalVars.SelectedMultiPlayRoomID = FlowNode_OnUrlSchemeLaunch.LINEParam_decided.roomid; if (GlobalVars.SelectedMultiPlayRoomID < FlowNode_MultiPlayAPI.ROOMID_VALIDATE_MIN || GlobalVars.SelectedMultiPlayRoomID > FlowNode_MultiPlayAPI.ROOMID_VALIDATE_MAX) { this.Failure(); break; } ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.VERSUS_JOIN; this.ExecRequest((WebAPI) new ReqVersusRoomJoin(GlobalVars.SelectedMultiPlayRoomID, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 18: if (Network.Mode != Network.EConnectMode.Online) { this.Failure(); break; } ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.VERSUS_STATUS; this.ExecRequest((WebAPI) new ReqVersusStatus(new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 19: if (Network.Mode != Network.EConnectMode.Online) { this.Failure(); break; } ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.VERSUS_SEASON; this.ExecRequest((WebAPI) new ReqVersusSeason(new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 20: if (Network.Mode != Network.EConnectMode.Online) { this.Failure(); break; } ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.VERSUS_FRIEND; this.ExecRequest((WebAPI) new ReqVersusFriendScore(new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 21: GameManager instance1 = MonoSingleton <GameManager> .Instance; MyPhoton instance2 = PunMonoSingleton <MyPhoton> .Instance; if (UnityEngine.Object.op_Inequality((UnityEngine.Object)instance2, (UnityEngine.Object)null) && instance2.IsConnectedInRoom()) { GlobalVars.CreateAutoMultiTower = true; if (instance2.IsCreatedRoom()) { instance2.OpenRoom(true, false); MyPhoton.MyRoom currentRoom = instance2.GetCurrentRoom(); if (currentRoom != null) { JSON_MyPhotonRoomParam myPhotonRoomParam = JSON_MyPhotonRoomParam.Parse(currentRoom.json); if (myPhotonRoomParam != null) { List <MultiTowerFloorParam> mtAllFloorParam = instance1.GetMTAllFloorParam(GlobalVars.SelectedMultiTowerID); if (mtAllFloorParam != null) { GlobalVars.SelectedMultiTowerFloor = Mathf.Min(mtAllFloorParam.Count, GlobalVars.SelectedMultiTowerFloor + 1); } myPhotonRoomParam.challegedMTFloor = GlobalVars.SelectedMultiTowerFloor; myPhotonRoomParam.iname = GlobalVars.SelectedMultiTowerID + "_" + myPhotonRoomParam.challegedMTFloor.ToString(); instance2.SetRoomParam(myPhotonRoomParam.Serialize()); } } } instance2.AddMyPlayerParam("BattleStart", (object)false); instance2.AddMyPlayerParam("resume", (object)false); MyPhoton.MyPlayer myPlayer = instance2.GetMyPlayer(); if (myPlayer != null) { JSON_MyPhotonPlayerParam photonPlayerParam = JSON_MyPhotonPlayerParam.Parse(myPlayer.json); if (photonPlayerParam != null) { photonPlayerParam.mtChallengeFloor = instance1.GetMTChallengeFloor(); photonPlayerParam.mtClearedFloor = instance1.GetMTClearedMaxFloor(); instance2.SetMyPlayerParam(photonPlayerParam.Serialize()); } } this.Success(); break; } this.Failure(); break; case 27: if (Network.Mode != Network.EConnectMode.Online) { this.Failure(); break; } ((Behaviour)this).set_enabled(true); this.API = FlowNode_MultiPlayAPI.EAPI.MT_STATUS; this.ExecRequest((WebAPI) new ReqMultiTwStatus(GlobalVars.SelectedMultiTowerID, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback))); break; case 29: MyPhoton instance3 = PunMonoSingleton <MyPhoton> .Instance; if (UnityEngine.Object.op_Inequality((UnityEngine.Object)instance3, (UnityEngine.Object)null) && instance3.IsConnectedInRoom()) { this.Success(); break; } this.Failure(); break; } }
public override void Begin(FlowNode_MultiPlayJoinRoom self) { MyPhoton instance = PunMonoSingleton<MyPhoton>.Instance; self.mJoinPlayerParam = JSON_MyPhotonPlayerParam.Create(0, 0); if (self.mJoinPlayerParam == null) { self.FailureLobby(); } else { JSON_MyPhotonRoomParam myPhotonRoomParam = new JSON_MyPhotonRoomParam(); myPhotonRoomParam.creatorName = MonoSingleton<GameManager>.Instance.Player.Name; myPhotonRoomParam.creatorLV = MonoSingleton<GameManager>.Instance.Player.CalcLevel(); myPhotonRoomParam.creatorFUID = JSON_MyPhotonRoomParam.GetMyCreatorFUID(); myPhotonRoomParam.roomid = GlobalVars.SelectedMultiPlayRoomID; myPhotonRoomParam.comment = GlobalVars.SelectedMultiPlayRoomComment; myPhotonRoomParam.passCode = GlobalVars.EditMultiPlayRoomPassCode; myPhotonRoomParam.iname = GlobalVars.SelectedQuestID; myPhotonRoomParam.type = (int) GlobalVars.SelectedMultiPlayRoomType; myPhotonRoomParam.isLINE = !self.IsLINE ? 0 : 1; QuestParam quest = MonoSingleton<GameManager>.Instance.FindQuest(GlobalVars.SelectedQuestID); MultiTowerFloorParam mtFloorParam = MonoSingleton<GameManager>.Instance.GetMTFloorParam(quest.iname); int selectedMultiTowerFloor = GlobalVars.SelectedMultiTowerFloor; if (instance.CreateRoom((int) quest.playerNum, GlobalVars.SelectedMultiPlayRoomName, myPhotonRoomParam.Serialize(), self.mJoinPlayerParam.Serialize(), mtFloorParam.tower_id, selectedMultiTowerFloor, -1, (string) null, (string) null, -1, true)) return; self.FailureLobby(); } }
private void Update() { MyPhoton instance = PunMonoSingleton <MyPhoton> .Instance; if (this.mIgnore) { return; } if (instance.CurrentState != MyPhoton.MyState.ROOM) { if (instance.CurrentState != MyPhoton.MyState.NOP) { instance.Disconnect(); } this.ActivateOutputLinks(1); } else { List <MyPhoton.MyPlayer> roomPlayerList = instance.GetRoomPlayerList(); bool flag1 = GlobalVars.SelectedMultiPlayRoomType == JSON_MyPhotonRoomParam.EType.RAID; bool flag2 = GlobalVars.SelectedMultiPlayRoomType == JSON_MyPhotonRoomParam.EType.VERSUS && GlobalVars.SelectedMultiPlayVersusType == VERSUS_TYPE.Friend; bool flag3 = GlobalVars.SelectedMultiPlayRoomType == JSON_MyPhotonRoomParam.EType.TOWER; if (roomPlayerList.Find((Predicate <MyPhoton.MyPlayer>)(p => p.playerID == 1)) == null && (flag1 || flag2 || flag3)) { this.ActivateOutputLinks(7); } else { MyPhoton.MyRoom currentRoom = instance.GetCurrentRoom(); if (instance.IsUpdateRoomProperty) { if (currentRoom.start) { this.ActivateOutputLinks(5); return; } instance.IsUpdateRoomProperty = false; } JSON_MyPhotonRoomParam myPhotonRoomParam = JSON_MyPhotonRoomParam.Parse(currentRoom.json); string str1 = myPhotonRoomParam != null ? myPhotonRoomParam.comment : string.Empty; if (!this.mRoomComment.Equals(str1)) { DebugUtility.Log("change room comment"); this.ActivateOutputLinks(6); } this.mRoomComment = str1; string str2 = myPhotonRoomParam != null ? myPhotonRoomParam.passCode : string.Empty; if (!this.mRoomPass.Equals(str2)) { DebugUtility.Log("change room pass"); this.ActivateOutputLinks(50); } this.mRoomPass = str2; bool flag4 = false; if (roomPlayerList == null) { instance.Disconnect(); } else if (this.mPlayers == null) { flag4 = true; } else if (this.mPlayers.Count != roomPlayerList.Count) { flag4 = true; } else { for (int index = 0; index < this.mPlayers.Count; ++index) { if (this.mPlayers[index].playerID != roomPlayerList[index].playerID) { flag4 = true; break; } if (!this.mPlayers[index].json.Equals(roomPlayerList[index].json)) { flag4 = true; break; } } } if (!string.IsNullOrEmpty(this.mQuestName) && !this.mQuestName.Equals(myPhotonRoomParam.iname)) { DebugUtility.Log("change quest iname" + myPhotonRoomParam.iname); this.ActivateOutputLinks(10); } this.mQuestName = myPhotonRoomParam.iname; if (flag4) { this.mPlayers = new List <MyPhoton.MyPlayer>((IEnumerable <MyPhoton.MyPlayer>)roomPlayerList); this.ActivateOutputLinks(2); if (instance.IsOldestPlayer()) { JSON_MyPhotonPlayerParam[] photonPlayerParamArray = new JSON_MyPhotonPlayerParam[roomPlayerList.Count]; for (int index = 0; index < photonPlayerParamArray.Length; ++index) { photonPlayerParamArray[index] = JSON_MyPhotonPlayerParam.Parse(roomPlayerList[index].json); } myPhotonRoomParam.players = photonPlayerParamArray; instance.SetRoomParam(myPhotonRoomParam.Serialize()); } bool flag5 = true; using (List <MyPhoton.MyPlayer> .Enumerator enumerator = this.mPlayers.GetEnumerator()) { while (enumerator.MoveNext()) { JSON_MyPhotonPlayerParam photonPlayerParam = JSON_MyPhotonPlayerParam.Parse(enumerator.Current.json); if (photonPlayerParam.state == 0 || photonPlayerParam.state == 4 || photonPlayerParam.state == 5) { flag5 = false; break; } } } if (flag5) { this.ActivateOutputLinks(3); } else { this.ActivateOutputLinks(4); } } else { int count = instance.GetRoomPlayerList().Count; if (count == 1 && this.mMemberCnt != count) { this.ActivateOutputLinks(9); } this.mMemberCnt = instance.GetRoomPlayerList().Count; if (this.mIgnoreFullMember || instance.GetCurrentRoom().maxPlayers - 1 != count) { return; } this.ActivateOutputLinks(8); } } } }
public override void Begin(FlowNode_MultiPlayJoinRoom self) { GameManager instance1 = MonoSingleton <GameManager> .Instance; MyPhoton instance2 = PunMonoSingleton <MyPhoton> .Instance; self.mJoinPlayerParam = JSON_MyPhotonPlayerParam.Create(0, 0); if (self.mJoinPlayerParam == null) { self.FailureLobby(); } else { JSON_MyPhotonRoomParam myPhotonRoomParam = new JSON_MyPhotonRoomParam(); myPhotonRoomParam.creatorName = MonoSingleton <GameManager> .Instance.Player.Name; myPhotonRoomParam.creatorLV = MonoSingleton <GameManager> .Instance.Player.CalcLevel(); myPhotonRoomParam.creatorFUID = JSON_MyPhotonRoomParam.GetMyCreatorFUID(); myPhotonRoomParam.roomid = GlobalVars.SelectedMultiPlayRoomID; myPhotonRoomParam.comment = GlobalVars.SelectedMultiPlayRoomComment; myPhotonRoomParam.passCode = GlobalVars.EditMultiPlayRoomPassCode; myPhotonRoomParam.iname = GlobalVars.SelectedQuestID; myPhotonRoomParam.type = (int)GlobalVars.SelectedMultiPlayRoomType; myPhotonRoomParam.isLINE = !self.IsLINE ? 0 : 1; myPhotonRoomParam.vsmode = instance1.GetVSMode(-1L) != VS_MODE.THREE_ON_THREE ? 1 : 0; myPhotonRoomParam.draft_type = !GlobalVars.IsVersusDraftMode ? 0 : 1; int plv = -1; int floor = -1; int audienceMax = (int)MonoSingleton <GameManager> .Instance.MasterParam.FixParam.AudienceMax; string uid = (string)null; string luid = (string)null; if (GlobalVars.SelectedMultiPlayVersusType == VERSUS_TYPE.Tower) { plv = myPhotonRoomParam.creatorLV; floor = MonoSingleton <GameManager> .Instance.Player.VersusTowerFloor; uid = MonoSingleton <GameManager> .Instance.DeviceId; luid = MonoSingleton <GameManager> .Instance.VersusLastUid; } if (instance2.CreateRoom((int)self.VERSUS_PLAYER_MAX, GlobalVars.SelectedMultiPlayRoomName, myPhotonRoomParam.Serialize(), self.mJoinPlayerParam.Serialize(), GlobalVars.MultiPlayVersusKey, floor, plv, luid, uid, audienceMax, false)) { return; } self.FailureLobby(); } }