Пример #1
0
        void ProcessCmdType(MahjongOpCode opCode, MahjongMachineCmd cmd)
        {
            switch (opCode)
            {
            case MahjongOpCode.SwapPaiGroup:
            {
                MahjongSwapPaiCmd      swapPaiCmd;
                MahjongSwapPaiGroupCmd swapPaiGroupCmd = (MahjongSwapPaiGroupCmd)cmd;

                for (int j = 0; j < 4; j++)
                {
                    swapPaiCmd = (MahjongSwapPaiCmd)CreateCmd(MahjongOpCode.SwapPai);
                    swapPaiGroupCmd.cmdSeats[j] = swapPaiCmd;
                }
            }
            break;

            case MahjongOpCode.FaPai:
            {
                FaPaiCmd faPaiCmd = (FaPaiCmd)cmd;
                faPaiCmd.mjHandSelfPaiFaceValueList.Clear();
                faPaiCmd.selfHuaList.Clear();
                faPaiCmd.selfBuPaiList.Clear();
            }
            break;
            }
        }
Пример #2
0
        MahjongMachineCmd NewCmd(MahjongOpCode opCode)
        {
            MahjongMachineCmd cmd = null;

            switch (opCode)
            {
            case MahjongOpCode.PlayEffectAudio: cmd = new PlayEffectAudioOpCmd(); break;

            case MahjongOpCode.XiPai: cmd = new XiPaiCmd(); break;

            case MahjongOpCode.FaPai: cmd = new FaPaiCmd(); break;

            case MahjongOpCode.TurnNextPlayer: cmd = new TurnNextPlayerOpCmd(); break;

            case MahjongOpCode.ReqSelectSwapPai: cmd = new ReqSelectSwapPaiOpCmd(); break;

            case MahjongOpCode.ReqSelectQueMen: cmd = new ReqSelectQueMenOpCmd(); break;

            case MahjongOpCode.ReqSelectDaPai: cmd = new ReqSelectDaPaiOpCmd(); break;

            case MahjongOpCode.ReqSelectPCGTHPai: cmd = new ReqSelectPCGTHPaiOpCmd(); break;

            case MahjongOpCode.ShowSwapPaiHint: cmd = new ShowSwapPaiHintCmd(); break;

            case MahjongOpCode.HideSwapPaiUI: cmd = new MahjongMachineCmd(); cmd.opCode = MahjongOpCode.HideSwapPaiUI; break;

            case MahjongOpCode.QiDongDiceMachine: cmd = new QiDongDiceMachineCmd(); break;

            case MahjongOpCode.SwapPaiGroup: cmd = new MahjongSwapPaiGroupCmd(); break;

            case MahjongOpCode.SwapPai: cmd = new MahjongSwapPaiCmd(); break;

            case MahjongOpCode.QueMen: cmd = new QueMenCmd(); break;

            case MahjongOpCode.MoPai: cmd = new MahjongMoPaiOpCmd(); break;

            case MahjongOpCode.DaPai: cmd = new MahjongDaPaiOpCmd(); break;

            case MahjongOpCode.ChaPai: cmd = new MahjongChaPaiOpCmd(); break;

            case MahjongOpCode.SortPai: cmd = new MahjongPaiOpCmd(); cmd.opCode = MahjongOpCode.SortPai; break;

            case MahjongOpCode.BuHuaPai: cmd = new MahjongBuHuaPaiOpCmd(); break;

            case MahjongOpCode.HuPai: cmd = new MahjongHuPaiOpCmd(); break;

            case MahjongOpCode.PengChiGangPai: cmd = new MahjongPcgPaiOpCmd(); break;

            case MahjongOpCode.TuiDaoPai: cmd = new MahjongTuiDaoPaiOpCmd(); break;

            case MahjongOpCode.ShowScore: cmd = new ShowScoreCmd(); break;
            }

            return(cmd);
        }
Пример #3
0
        public MahjongMachineCmd CreateCmd(MahjongOpCode opCode)
        {
            List <MahjongMachineCmd> cmdList = cmdLists[(int)opCode];

            for (int i = 0; i < cmdList.Count; ++i)
            {
                int temI = (cmdListIdx[(int)opCode] + i) % cmdList.Count;
                if (cmdList[temI].isFree)
                {
                    ProcessCmdType(opCode, cmdList[temI]);
                    cmdListIdx[(int)opCode] = (temI + 1) % cmdList.Count;
                    cmdList[temI].isFree    = false;
                    return(cmdList[temI]);
                }
            }

            MahjongMachineCmd cmd = NewCmd(opCode);

            ProcessCmdType(opCode, cmd);
            cmd.isFree = false;
            cmdList.Add(cmd);
            return(cmd);
        }