private void OnOtherPlayerCards(ArrayList otherPlayerCard) { HupaiPlayerInfo hupInfo; Hashtable OnterInfo; ArrayList cardList; for (int i = 0; i < otherPlayerCard.Count; i++) { hupInfo = new HupaiPlayerInfo(); OnterInfo = (Hashtable)otherPlayerCard[i]; hupInfo.playerSeat = (Int64)OnterInfo["player"]; cardList = (ArrayList)OnterInfo["pai"]; for (int j = 0; j < cardList.Count; j++) { hupInfo.cardList.Add((Int64)cardList[j]); } hupInfo.cardList.Sort(); hupaiCompletePlayerHandcardSlist.Add(hupInfo); } if (_isLiuju) { _isLiuju = false; selfGameState = SelfState.Not_playCard; _playersInfo.ReplacePlayerHandCardDataByHupai(hupaiCompletePlayerHandcardSlist); hupaiCompletePlayerHandcardSlist.Clear(); } }
private void OnHuScore(Hashtable info) { selfGameState = SelfState.Not_playCard; _playersInfo.TreatedHu(info); _playersInfo.ReplacePlayerHandCardDataByHupai(hupaiCompletePlayerHandcardSlist); hupaiCompletePlayerHandcardSlist.Clear(); }
/// <summary> /// 自己进入房间 /// </summary> /// <param name="list"></param> private void onSelfJoinRoom(ArrayList list, CreatRoomData info) { creatRoomInfo = info; _playersInfo = new PlayerInfo(creatRoomInfo.playerNum); _playersInfo.gameRule = (GameRule)creatRoomInfo.playState; _PlayerInfoList = list; selfGameState = SelfState.Join_room; if (creatRoomInfo.payState == (int)PayRule.AAPay || creatRoomInfo.payState == (int)PayRule.OnePay) { gameType = GameType.fangkaGame; } else if (creatRoomInfo.payState == (int)PayRule.MatchPay) { gameType = GameType.integarl; } if (!CheckIsHaveSelf(SelfInfo))//区分断线重连 { _PlayerInfoList.Add(SelfInfo); _playersInfo.SelfJoinRoom(_PlayerInfoList); selfOrderIndex = _playersInfo.selfOrderIndex; // SceneManager.LoadScene("InGame"); MainManager.Instance.dontDestroyOnLoad.StartLoadingScene("InGame", RoutineJoinAndExitGameRoom); } else { _playersInfo.SelfJoinRoom(_PlayerInfoList); selfOrderIndex = _playersInfo.selfOrderIndex; MainManager.Instance.dontDestroyOnLoad.StartLoadingScene("InGame", ReconnectionLoadGameSceneComplete); } }
private void InitReconnectionData(ReconnectionData data) { touziInfo = data.dice; bankerID = data.bankerID; surplusCardCount = data.cardCount; laizi = data.laizi; gangPaiState = data.gangPaiInfo; if (laizi != 0) { gameIsBegin = true; } SetLaizipi(); reconnectionData = data; currentPlayerID = data.cardRighter; playerCardPlayerSeat = data.playCardPlayerSeat; currentCardID = data.processer_card; creatRoomInfo.baseScore = (int)data.score; creatRoomInfo.jushu = (int)data.times; ReconnectionProcesserID = data.processer; _playersInfo.laizi = data.laizi; if (data.cardRighter == selfOrderIndex) { selfGameState = SelfState.Can_playCard; } if (data.laizi != 0) { _playersInfo.Reconnection(data); } }
private void DisPoseData() { if (_playersInfo != null) { _playersInfo.Dispose(); } selfOrderIndex = 0; selfGameState = SelfState.In_lobby; selfGetCardID = 0; }
private void OnOrderHandle(Int64 orderIndex) { currentPlayerID = orderIndex; if (currentPlayerID == selfOrderIndex) { selfGameState = SelfState.Can_playCard; TableController.Instance.canNotPengMjList.Clear(); } else { selfGameState = SelfState.Not_playCard; } }
// Use this for initialization void Start() { mainRot = Quaternion.identity; DistanceLock = 10000000; LimitedDistance = 1000.0f; BattleCenter = GameObject.FindGameObjectWithTag("BattleCenter"); VersionSight = 0.2f; //TimeToSelectTarget = 2.0f; AttackRate = 3.0f; TargetPosition = Vector3.zero; selfState = SelfState.Patrol; flight = GetComponent <FlightSystem>(); rigid = GetComponent <Rigidbody>(); }
public void Init() { voteState = new Hashtable(); selfRoomList = new List <CreatRoomData>(); // gameType = GameType.fangkaGame; canNotPengMjList = new List <Int64>(); gangPaiState = new Hashtable(); creatRoomInfo = new CreatRoomData(); selfGameState = SelfState.In_lobby; _PlayerInfoList = new ArrayList(); totleCardCountList = new Hashtable(); totleCardCountList[PeopleNum.TwoPeople] = 72; totleCardCountList[PeopleNum.ThreePeople] = 72; totleCardCountList[PeopleNum.FourPeople] = 108; hupaiCompletePlayerHandcardSlist = new List <HupaiPlayerInfo>(); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Hashtable>(EventId.OtherJoinRoom, OnOtherJoinRoom); EventDispatcher.GetInstance().MainEventManager.AddEventListener <ArrayList, CreatRoomData>(EventId.SelfJoinRoom, onSelfJoinRoom); EventDispatcher.GetInstance().MainEventManager.AddEventListener <KeyValuePair <string, Int64> >(EventId.PlaySitDown, OnPlayerSitDown); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Int64, Int64, ArrayList>(EventId.Server_HandCard, OnBeginGame); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Int64, Int64>(EventId.ShowLaizi, OnShowLaizi); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Int64>(EventId.Order, OnOrderHandle); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Int64>(EventId.AddOneCard, OnAddOneHandle);//第一次发牌,如果是自己的庄,则先收到自己摸的牌,再收到摸赖子消息 EventDispatcher.GetInstance().MainEventManager.AddEventListener <Int64>(EventId.Server_draw, OnPlayerDrawCard); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Int64>(EventId.PlayCard, OnPlayPutOutCard); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Int64, Int64>(EventId.Server_PengCard, OnPengCard); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Int64, Int64, Int64>(EventId.Server_GangCard, OnGangCardHandle); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Hashtable>(EventId.Server_GangScore, OnGangScore); EventDispatcher.GetInstance().MainEventManager.AddEventListener <ArrayList, Int64, Int64>(EventId.Server_HuPai, OnHupai); EventDispatcher.GetInstance().MainEventManager.AddEventListener <ArrayList>(EventId.Server_HuPai_other_player_card, OnOtherPlayerCards); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Hashtable>(EventId.Server_HuScore, OnHuScore); EventDispatcher.GetInstance().UIFrameWorkEventManager.AddEventListener(EventId.UIFrameWork_Game_liuju, GameLiuJu); EventDispatcher.GetInstance().MainEventManager.AddEventListener <string>(EventId.PlayerExitRoom, OnPlayerExitRoom); EventDispatcher.GetInstance().UIFrameWorkEventManager.AddEventListener <int, int>(EventId.UIFrameWork_Game_Animation_Playover, OnAnimationPlayover); EventDispatcher.GetInstance().UIFrameWorkEventManager.AddEventListener(EventId.Server_End_Game, OnEndGame); EventDispatcher.GetInstance().UIFrameWorkEventManager.AddEventListener(EventId.Server_Disband_Eng_Game, OnDisbandEndGame); EventDispatcher.GetInstance().MainEventManager.AddEventListener <ReconnectionData>(EventId.Sever_Reconnection, OnReconnection); EventDispatcher.GetInstance().MainEventManager.AddEventListener <ArrayList>(EventId.Sever_Reconnection_SelfHandcard, OnReconnectionSelfHandcard); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Int64>(EventId.Sever_Reconnection_selfMopai_Num, OnReconnectionSelfMopaiNum); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Hashtable>(EventId.Server_Room_list, OnChangRoomList); EventDispatcher.GetInstance().MainEventManager.AddEventListener <string, Int64>(EventId.Server_Disband_Game_Vote, OnDisbandgame); EventDispatcher.GetInstance().MainEventManager.AddEventListener <Hashtable>(EventId.Server_Disband_Room_Vote_list, OnReconnectionDisbandList); }
private void OnPlayerSitDown(KeyValuePair <string, Int64> kvp) { Hashtable item; for (int i = 0; i < _PlayerInfoList.Count; i++) { item = (Hashtable)_PlayerInfoList[i]; if ((string)item["unionid"] == kvp.Key) { if (kvp.Key == SocketClient.Instance.playToken) { selfGameState = SelfState.SitDown; selfOrderIndex = kvp.Value; } item["site"] = kvp.Value; _playersInfo.PlayerSitDown(item); } } }
// Update is called once per frame void Update() { CalculateTargetBehavior(); switch (selfState) { case SelfState.Patrol: // Find Target automatically FindTarget(); if (Vector3.Distance(transform.position, BattleCenter.transform.position) > LimitedDistance) { selfState = SelfState.TurnPostion; } else { if (Target) { selfState = SelfState.Attacking; } } break; case SelfState.Attacking: if (Vector3.Distance(transform.position, BattleCenter.transform.position) > LimitedDistance) { selfState = SelfState.TurnPostion; } else { if (Target) { TraceTarget(Target); if (targetState == TargetState.IsLocked) { if (Random.Range(0f, 250f) <= AttackRate) { WeaponSelected = (int)Random.Range(1.0f, 2.999f); Attack(WeaponSelected); } } } else { selfState = SelfState.Patrol; } } break; case SelfState.Idle: break; case SelfState.TurnPostion: //Target = BattleCenter; if (Vector3.Distance(transform.position, BattleCenter.transform.position) <= LimitedDistance) { selfState = SelfState.Patrol; } else { TraceTarget(BattleCenter); } break; } }