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; } }
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); }
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); }