public void AddCommand(S2CBattleCommand msg) { TurnData turnData; if (!mTurnDataDic.TryGetValue(msg.TurnId, out turnData)) { turnData = new TurnData(); mTurnDataDic[msg.TurnId] = turnData; } List <Command> commandList = new List <Command>(); for (int i = 0; i < msg.Commands.Count; i++) { Command command = null; switch (msg.Commands[i].Type) { case CommandType.EMove: { command = Command.Deserialize <MoveCommand>(msg.Commands[i].Data.ToByteArray()); } break; case CommandType.ENone: { command = Command.Deserialize <NullCommand>(msg.Commands[i].Data.ToByteArray()); } break; } commandList.Add(command); } turnData.AddCommand(msg.PlayerId, commandList); }