Ejemplo n.º 1
0
    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();
        }
    }
Ejemplo n.º 2
0
 private void OnHuScore(Hashtable info)
 {
     selfGameState = SelfState.Not_playCard;
     _playersInfo.TreatedHu(info);
     _playersInfo.ReplacePlayerHandCardDataByHupai(hupaiCompletePlayerHandcardSlist);
     hupaiCompletePlayerHandcardSlist.Clear();
 }
Ejemplo n.º 3
0
    /// <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);
        }
    }
Ejemplo n.º 4
0
    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);
        }
    }
Ejemplo n.º 5
0
 private void DisPoseData()
 {
     if (_playersInfo != null)
     {
         _playersInfo.Dispose();
     }
     selfOrderIndex = 0;
     selfGameState  = SelfState.In_lobby;
     selfGetCardID  = 0;
 }
Ejemplo n.º 6
0
 private void OnOrderHandle(Int64 orderIndex)
 {
     currentPlayerID = orderIndex;
     if (currentPlayerID == selfOrderIndex)
     {
         selfGameState = SelfState.Can_playCard;
         TableController.Instance.canNotPengMjList.Clear();
     }
     else
     {
         selfGameState = SelfState.Not_playCard;
     }
 }
Ejemplo n.º 7
0
    // 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>();
    }
Ejemplo n.º 8
0
    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);
    }
Ejemplo n.º 9
0
    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);
            }
        }
    }
Ejemplo n.º 10
0
    // 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;
        }
    }