/// <summary> /// 获取游戏控制器 /// </summary> /// <param name="gameId"></param> /// <returns></returns> private IGameCtrl GetGameCtrl(int gameId) { cfg_gameEntity gameEntity = cfg_gameDBModel.Instance.Get(gameId); if (gameEntity != null) { return(GetGameCtrl(gameEntity.GameType)); } return(null); }
/// <summary> /// 设置菜单点击 /// </summary> /// <param name="gameId"></param> private void OnSettingMenuClick(int gameId) { m_nCurrentSelectGame = gameId; List <cfg_settingEntity> lst = cfg_settingDBModel.Instance.GetRuleByGameId(gameId); cfg_gameEntity gameEntity = cfg_gameDBModel.Instance.Get(gameId); if (gameEntity == null) { return; } int payment = gameEntity.Payment; int playerCount = 0; for (int i = 0; i < lst.Count; ++i) { cfg_settingEntity entity = lst[i]; if (entity.tags.Equals("player")) { List <cfg_settingEntity> options = cfg_settingDBModel.Instance.GetOptionsByRuleNameAndGameId(entity.gameId, entity.label); for (int j = 0; j < options.Count; ++j) { if (options[j].init == 1) { playerCount = options[j].value; } } break; } } bool isAA = payment == 1; if (payment == 2) { for (int i = 0; i < lst.Count; ++i) { cfg_settingEntity entity = lst[i]; if (entity.tags.Equals("card")) { List <cfg_settingEntity> options = cfg_settingDBModel.Instance.GetOptionsByRuleNameAndGameId(entity.gameId, entity.label); for (int j = 0; j < options.Count; ++j) { if (options[j].init == 1) { isAA = options[j].value == 2; } } break; } } } m_UICreateRoomView.SetContent(lst, payment, isAA, playerCount); }
/// <summary> /// 游戏按钮点击 /// </summary> /// <param name="obj"></param> private void btnRecordViewGameClick(object[] obj) { int gameID = (int)obj[0]; cfg_gameEntity game = cfg_gameDBModel.Instance.Get(gameID); if (game == null) { return; } RequestRecord(game.id); }
/// <summary> /// 字符串转换 /// </summary> /// <param name="str"></param> /// <param name="roomId"></param> /// <param name="gameId"></param> /// <param name="cfgId"></param> /// <param name="groupId"></param> /// <returns></returns> private string StringConvert(string str, int roomId = 0, int gameId = 0, int[] cfgId = null, int groupId = 0) { if (str.IndexOf("[&playerId]") > -1) { str = str.Replace("[&playerId]", AccountProxy.Instance.CurrentAccountEntity.passportId.ToString()); } if (str.IndexOf("[&groupId]") > -1) { if (groupId > 0) { str = str.Replace("[&groupId]", "群Id:" + groupId.ToString()); } else { str = str.Replace("[&groupId]", string.Empty); } } if (str.IndexOf("[&roomId]") > -1) { if (roomId == 0) { roomId = GameCtrl.Instance.GetRoomEntity().roomId; } str = str.Replace("[&roomId]", roomId.ToString()); } if (str.IndexOf("[&gameName]") > -1) { if (gameId == 0) { gameId = GameCtrl.Instance.CurrentGameId; } cfg_gameEntity entity = cfg_gameDBModel.Instance.Get(gameId); if (entity != null) { str = str.Replace("[&gameName]", entity.GameName); } } if (str.IndexOf("[&rule]") > -1) { if (cfgId == null) { List <cfg_settingEntity> lst = GameCtrl.Instance.GetRoomEntity().Config; string temp = string.Empty; for (int i = 0; i < lst.Count; ++i) { temp += lst[i].name + " "; } str = str.Replace("[&rule]", temp); } else { string temp = string.Empty; for (int i = 0; i < cfgId.Length; ++i) { cfg_settingEntity entity = cfg_settingDBModel.Instance.Get(cfgId[i]); if (entity != null) { temp += entity.name + " "; } } str = str.Replace("[&rule]", temp); } } return(str); }
/// <summary> /// 根据牌局Id请求战绩回调 /// </summary> /// <param name="args"></param> private void RequestRecordByBattleIdCallBack(NetWorkHttp.CallBackArgs args) { m_isBusy = false; if (args.HasError) { ShowMessage("提示", "网络连接失败"); } else { if (args.Value.code < 0) { ShowMessage("提示", args.Value.msg); return; } LitJson.JsonData jsonData = args.Value.data; if (jsonData.Count == 0) { ShowMessage("提示", "无此牌局战绩"); return; } List <TestRecord> lstRecord = LitJson.JsonMapper.ToObject <List <TestRecord> >(jsonData.ToJson()); RecordProxy.Instance.AllRecord = lstRecord; cfg_gameEntity gameEntity = cfg_gameDBModel.Instance.Get(m_CurrentRequestGameId); if (gameEntity == null) { return; } string gameType = gameEntity.GameType; TransferData data = new TransferData(); data.SetValue("GameType", gameType); List <TransferData> lst = new List <TransferData>(); for (int i = 0; i < lstRecord.Count; ++i) { TestRecord record = lstRecord[i]; TransferData recordData = new TransferData(); recordData.SetValue("Index", i + 1); recordData.SetValue("BattleId", record.battleId); recordData.SetValue("RoomId", record.roomId); recordData.SetValue("GameId", record.gameId); recordData.SetValue("MaxLoop", record.detail.Count); recordData.SetValue("RoomType", record.roomType); recordData.SetValue("OwnerName", record.ownerName); recordData.SetValue("DateTime", record.time); List <TransferData> lstPlayer = new List <TransferData>(); for (int j = 0; j < record.Players.Count; ++j) { TestPlayer player = record.Players[j]; TransferData playerData = new TransferData(); playerData.SetValue("NickName", player.nickname); playerData.SetValue("Gold", player.gold); playerData.SetValue("PlayerID", player.id); playerData.SetValue("IsPlayer", player.id == AccountProxy.Instance.CurrentAccountEntity.passportId); lstPlayer.Add(playerData); } recordData.SetValue("Player", lstPlayer); lst.Add(recordData); } data.SetValue("Record", lst); m_UIRecordView.ShowRecord(data); } }
/// <summary> /// 查看详情按钮点击 /// </summary> /// <param name="battleId"></param> private void OnBtnRecordViewDetailClick(object[] obj) { int battleId = (int)obj[0]; if (battleId == 0) { ShowMessage("提示", "请输入正确的战绩号"); return; } TestRecord record = RecordProxy.Instance.GetRecord(battleId); if (record == null) { return; } cfg_gameEntity gameEntity = cfg_gameDBModel.Instance.Get(m_CurrentRequestGameId); if (gameEntity == null) { return; } string gameType = gameEntity.GameType; TransferData data = new TransferData(); data.SetValue("GameType", gameType); data.SetValue("BattleId", battleId); data.SetValue("RoomId", record.roomId); data.SetValue("GameId", record.gameId); data.SetValue("MaxLoop", record.detail.Count); data.SetValue("DateTime", record.time); data.SetValue("ChineseGameName", gameEntity.GameName); data.SetValue("OwnerName", record.ownerName); List <TransferData> lstPlayers = new List <TransferData>(); List <TransferData> lst = new List <TransferData>(); for (int i = 0; i < record.Players.Count; ++i) { TransferData playerData = new TransferData(); playerData.SetValue("NickName", record.Players[i].nickname); playerData.SetValue("Gold", record.Players[i].gold); lstPlayers.Add(playerData); } data.SetValue("Player", lstPlayers); for (int i = 0; i < record.detail.Count; ++i) { TestRecordDetail detail = record.detail[i]; TransferData recordData = new TransferData(); recordData.SetValue("RecordId", detail.id); recordData.SetValue("Loop", detail.loop); recordData.SetValue("DateTime", detail.time); List <TransferData> lstPlayer = new List <TransferData>(); for (int j = 0; j < detail.players.Count; ++j) { TransferData playerData = new TransferData(); playerData.SetValue("NickName", detail.players[j].nickname); playerData.SetValue("Gold", detail.players[j].gold); playerData.SetValue("Avatar", detail.players[j].avatar); List <TransferData> lstPoker = new List <TransferData>(); for (int k = 0; k < detail.players[j].poker.Count; ++k) { TransferData pokerData = new TransferData(); pokerData.SetValue("Color", detail.players[j].poker[k].color); pokerData.SetValue("Size", detail.players[j].poker[k].size); lstPoker.Add(pokerData); } playerData.SetValue("Pokers", lstPoker); lstPlayer.Add(playerData); } recordData.SetValue("Player", lstPlayer); lst.Add(recordData); } data.SetValue("RecordDetail", lst); m_UIRecordView.ShowRecordDetail(data); }