private void SetVersusAudienceParam(string text)
        {
            MyPhoton instance = PunMonoSingleton <MyPhoton> .Instance;

            if (!instance.IsMultiVersus)
            {
                return;
            }
            if (instance.IsOldestPlayer())
            {
                int startIndex = text.IndexOf("\"btlinfo\"");
                if (startIndex != -1)
                {
                    StringBuilder stringBuilder = new StringBuilder();
                    string        str           = text.Substring(startIndex);
                    string        roomParam     = instance.GetRoomParam("started");
                    if (!string.IsNullOrEmpty(roomParam))
                    {
                        stringBuilder.Append(roomParam);
                        --stringBuilder.Length;
                        stringBuilder.Append(",");
                        stringBuilder.Append(str);
                        --stringBuilder.Length;
                        instance.SetRoomParam("started", stringBuilder.ToString());
                    }
                }
            }
            instance.BattleStartRoom();
        }
示例#2
0
        public override void OnActivate(int pinID)
        {
            MyPhoton pt = PunMonoSingleton <MyPhoton> .Instance;

            if (UnityEngine.Object.op_Inequality((UnityEngine.Object)pt, (UnityEngine.Object)null))
            {
                string roomParam = pt.GetRoomParam("started");
                if (roomParam != null)
                {
                    JSON_MyPhotonPlayerParam[] players = JSONParser.parseJSONObject <FlowNode_StartMultiPlay.PlayerList>(roomParam).players;
                    if (players.Length > 0)
                    {
                        JSON_MyPhotonPlayerParam photonPlayerParam = this.Type != FlowNode_BindMultiUnit.TargetType.Player ? Array.Find <JSON_MyPhotonPlayerParam>(players, (Predicate <JSON_MyPhotonPlayerParam>)(p => p.playerID != pt.GetMyPlayer().playerID)) : Array.Find <JSON_MyPhotonPlayerParam>(players, (Predicate <JSON_MyPhotonPlayerParam>)(p => p.playerID == pt.GetMyPlayer().playerID));
                        if (photonPlayerParam != null)
                        {
                            PartyData partyOfType = MonoSingleton <GameManager> .Instance.Player.FindPartyOfType(PlayerPartyTypes.RankMatch);

                            for (int index = 0; index < this.Targets.Length && index < photonPlayerParam.units.Length && (GlobalVars.SelectedMultiPlayRoomType != JSON_MyPhotonRoomParam.EType.RANKMATCH || partyOfType == null || index < partyOfType.VSWAITMEMBER_START); ++index)
                            {
                                photonPlayerParam.units[index].unit = new UnitData();
                                photonPlayerParam.units[index].unit.Deserialize(photonPlayerParam.units[index].unitJson);
                                DataSource.Bind <UnitData>(this.Targets[index], photonPlayerParam.units[index].unit);
                                GameParameter.UpdateAll(this.Targets[index]);
                                if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.Image, (UnityEngine.Object)null) && index == 0)
                                {
                                    DataSource.Bind <UnitData>(this.Image, photonPlayerParam.units[index].unit);
                                    GameParameter.UpdateAll(this.Image);
                                }
                            }
                        }
                    }
                }
            }
            this.ActivateOutputLinks(2);
        }
示例#3
0
        private UnitData GetUnitData()
        {
            MyPhoton pt = PunMonoSingleton <MyPhoton> .Instance;

            if (UnityEngine.Object.op_Inequality((UnityEngine.Object)pt, (UnityEngine.Object)null))
            {
                string roomParam = pt.GetRoomParam("started");
                if (roomParam != null)
                {
                    JSON_MyPhotonPlayerParam[] players = JSONParser.parseJSONObject <FlowNode_StartMultiPlay.PlayerList>(roomParam).players;
                    if (players.Length > 0)
                    {
                        JSON_MyPhotonPlayerParam photonPlayerParam = Array.Find <JSON_MyPhotonPlayerParam>(players, (Predicate <JSON_MyPhotonPlayerParam>)(p => p.playerID == pt.GetMyPlayer().playerID));
                        if (photonPlayerParam != null)
                        {
                            UnitData unitData = new UnitData();
                            unitData.Deserialize(photonPlayerParam.units[0].unitJson);
                            return(unitData);
                        }
                    }
                }
            }
            return((UnitData)null);
        }
            public override void Update(FlowNode_StartMultiPlay self)
            {
                DebugUtility.Log("StartMultiPlay State_ResumeStart 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
                    {
                        JSON_MyPhotonPlayerParam photonPlayerParam1 = JSON_MyPhotonPlayerParam.Parse(instance.GetMyPlayer().json);
                        if (photonPlayerParam1.state != 2)
                        {
                            photonPlayerParam1.state = 2;
                            instance.SetMyPlayerParam(photonPlayerParam1.Serialize());
                        }
                        JSON_MyPhotonRoomParam myPhotonRoomParam = !string.IsNullOrEmpty(currentRoom.json) ? JSON_MyPhotonRoomParam.Parse(currentRoom.json) : (JSON_MyPhotonRoomParam)null;
                        if (myPhotonRoomParam == null)
                        {
                            self.Failure();
                        }
                        else
                        {
                            GlobalVars.SelectedQuestID  = myPhotonRoomParam.iname;
                            GlobalVars.SelectedFriendID = (string)null;
                            GlobalVars.SelectedFriend   = (FriendData)null;
                            GlobalVars.SelectedSupport.Set((SupportData)null);
                            self.Success();
                            DebugUtility.Log("StartMultiPlay: " + myPhotonRoomParam.Serialize());
                            List <MyPhoton.MyPlayer>        roomPlayerList        = instance.GetRoomPlayerList();
                            List <JSON_MyPhotonPlayerParam> photonPlayerParamList = new List <JSON_MyPhotonPlayerParam>();
                            for (int index = 0; index < roomPlayerList.Count; ++index)
                            {
                                JSON_MyPhotonPlayerParam photonPlayerParam2 = JSON_MyPhotonPlayerParam.Parse(roomPlayerList[index].json);
                                photonPlayerParam2.playerID = roomPlayerList[index].playerID;
                                photonPlayerParamList.Add(photonPlayerParam2);
                            }
                            photonPlayerParamList.Sort((Comparison <JSON_MyPhotonPlayerParam>)((a, b) => a.playerIndex - b.playerIndex));
                            List <JSON_MyPhotonPlayerParam> myPlayersStarted = instance.GetMyPlayersStarted();
                            myPlayersStarted.Clear();
                            string roomParam = instance.GetRoomParam("started");
                            if (roomParam != null)
                            {
                                foreach (JSON_MyPhotonPlayerParam player in JSONParser.parseJSONObject <FlowNode_StartMultiPlay.PlayerList>(roomParam).players)
                                {
                                    player.SetupUnits();
                                    myPlayersStarted.Add(player);
                                }
                            }
                            else
                            {
                                using (List <JSON_MyPhotonPlayerParam> .Enumerator enumerator = photonPlayerParamList.GetEnumerator())
                                {
                                    while (enumerator.MoveNext())
                                    {
                                        JSON_MyPhotonPlayerParam current = enumerator.Current;
                                        current.SetupUnits();
                                        myPlayersStarted.Add(current);
                                    }
                                }
                            }
                            photonPlayerParam1.state = 3;
                            instance.SetMyPlayerParam(photonPlayerParam1.Serialize());
                            instance.SetResumeMyPlayer(GlobalVars.ResumeMultiplayPlayerID);
                            instance.MyPlayerIndex = GlobalVars.ResumeMultiplaySeatID;
                        }
                    }
                }
            }