LogicProject/System/CrossServerQualifying/CSQShootOutCell.cs
@@ -27,24 +27,24 @@ var battleGroup = CrossServerQualifyingModel.Instance.battleInfo[CrossServerQualifyingModel.Instance.select64Mark]; var group = battleGroup[(uint)index]; var playerA = players[0].GetILBehaviour<CSQShootOutPlayerCell>(); playerA?.Display(group.PlayerIDA, group.WinPlayerID); playerA?.Display(group.PlayerIDA, group.WinPlayerID, CrossServerQualifyingModel.Instance.select64Mark); var playerB = players[1].GetILBehaviour<CSQShootOutPlayerCell>(); playerB?.Display(group.PlayerIDB, group.WinPlayerID); playerB?.Display(group.PlayerIDB, group.WinPlayerID, CrossServerQualifyingModel.Instance.select64Mark); if (battleGroup.ContainsKey((uint)(index + 1))) { group = battleGroup[(uint)index + 1]; playerA = players[2].GetILBehaviour<CSQShootOutPlayerCell>(); playerA?.Display(group.PlayerIDA, group.WinPlayerID); playerA?.Display(group.PlayerIDA, group.WinPlayerID, CrossServerQualifyingModel.Instance.select64Mark); playerB = players[3].GetILBehaviour<CSQShootOutPlayerCell>(); playerB?.Display(group.PlayerIDB, group.WinPlayerID); playerB?.Display(group.PlayerIDB, group.WinPlayerID, CrossServerQualifyingModel.Instance.select64Mark); } else { playerA = players[2].GetILBehaviour<CSQShootOutPlayerCell>(); playerA?.Display(0, 0); playerA?.Display(0, 0, CrossServerQualifyingModel.Instance.select64Mark); playerB = players[3].GetILBehaviour<CSQShootOutPlayerCell>(); playerB?.Display(0, 0); playerB?.Display(0, 0, CrossServerQualifyingModel.Instance.select64Mark); } } } LogicProject/System/CrossServerQualifying/CSQShootOutPlayerCell.cs
@@ -16,7 +16,9 @@ Text nameStr; Text fightPower; ImageEx playerImg; Button playerBtn; uint m_groupMark; protected override void Awake() { headImg = proxy.GetWidgtEx<AvatarCell>("head"); @@ -24,10 +26,13 @@ nameStr = proxy.GetWidgtEx<Text>("name"); fightPower = proxy.GetWidgtEx<Text>("fightPower"); playerImg = proxy.GetWidgtEx<ImageEx>("playerImg"); playerBtn = proxy.GetWidgtEx<Button>("playerImg"); } public void Display(uint playerID, uint winner) public void Display(uint playerID, uint winner, uint groupMark = 0) { m_groupMark = groupMark; if (CrossServerQualifyingModel.Instance.fightersInfo.ContainsKey(playerID)) { var player = CrossServerQualifyingModel.Instance.fightersInfo[playerID]; @@ -54,6 +59,16 @@ playerImg.gray = winner != 0 ? true : false; } playerBtn.AddListener(() => { ShowScore(playerID, m_groupMark); }); } void ShowScore(uint playerID, uint m_groupMark) { if (m_groupMark == 0 || playerID == 0) return; CrossServerQualifyingModel.Instance.QueryRaceScoreEvent.Invoke(playerID, m_groupMark); } } LogicProject/System/CrossServerQualifying/CrossServerQualifying64Win.cs
@@ -34,6 +34,8 @@ Text todayRaceText; Button littleCloseBtn; RectTransform queryScoreObj; Text queryScoreText; #region Built-in @@ -65,6 +67,9 @@ todayRaceObj = proxy.GetWidgtEx<RectTransform>("raceTip"); todayRaceText = proxy.GetWidgtEx<Text>("todayrace"); littleCloseBtn = proxy.GetWidgtEx<Button>("littleClose"); queryScoreObj = proxy.GetWidgtEx<RectTransform>("scoreTip"); queryScoreText = proxy.GetWidgtEx<Text>("scoreText"); } @@ -106,6 +111,7 @@ protected override void OnPreOpen() { CrossServerQualifyingModel.Instance.QueryRaceScoreEvent += QueryRaceScoreEvent; var findIndex = CrossServerQualifyingModel.Instance.groupBtnMarks.IndexOf(CrossServerQualifyingModel.Instance.nowGroupMark); CrossServerQualifyingModel.Instance.select64Index = findIndex == -1 ? 2 : findIndex; @@ -126,6 +132,7 @@ var nextBattle = CrossServerQualifyingModel.Instance.GetMyNextBattle(); pkResultText.SetActive(nextBattle != 0); pkResultText.text = Language.Get("CrossServerQualifying71", nextBattle); queryScoreObj.SetActiveIL(false); } @@ -134,6 +141,7 @@ scroller.OnRefreshCell -= OnRefreshCell; GlobalTimeEvent.Instance.minuteEvent -= OnMinuteEvent; CrossServerQualifyingModel.Instance.UpdateCrossChampionshipPKZoneGroupInfoEvent -= UpdateRace; CrossServerQualifyingModel.Instance.QueryRaceScoreEvent -= QueryRaceScoreEvent; } protected override void OnAfterOpen() @@ -142,6 +150,57 @@ } #endregion void QueryRaceScoreEvent(uint playerID, uint groupMark) { if (groupMark == 0 || playerID == 0) { todayRaceObj.SetActiveIL(false); queryScoreObj.SetActiveIL(false); return; } var battleInfo = CrossServerQualifyingModel.Instance.QueryPKScoreInfoByPlayerID(groupMark, playerID); if (battleInfo.PlayerIDA == 0 || battleInfo.PlayerIDB == 0) { todayRaceObj.SetActiveIL(false); queryScoreObj.SetActiveIL(false); return; } todayRaceObj.SetActiveIL(false); queryScoreObj.SetActiveIL(true); int tagScoreA = 0; int tagScoreB = 0; var battleResult = battleInfo.battleResult; var keys = battleResult.Keys.ToList(); for (int i = 0; i < keys.Count; i++) { var key = keys[i]; if (key == battleInfo.PlayerIDA) { for (int j = 0; j < battleResult[key].Length; j++) { tagScoreA += battleResult[key][j][1]; } } else { for (int j = 0; j < battleResult[key].Length; j++) { tagScoreB += battleResult[key][j][1]; } } } var nameA = CrossServerQualifyingModel.Instance.fightersInfo.ContainsKey(battleInfo.PlayerIDA) ? CrossServerQualifyingModel.Instance.fightersInfo[battleInfo.PlayerIDA].PlayerName : Language.Get("UnDetermind"); var nameB = CrossServerQualifyingModel.Instance.fightersInfo.ContainsKey(battleInfo.PlayerIDB) ? CrossServerQualifyingModel.Instance.fightersInfo[battleInfo.PlayerIDB].PlayerName : Language.Get("UnDetermind"); queryScoreText.text = StringUtility.Contact(nameA, UIHelper.AppendColor(TextColType.NavyYellow, " VS "), nameB, "</r>", Language.Get("L2033"), " ", tagScoreA, " - ", tagScoreB); } void OnSelectGroup() { for (int i = 0; i < selectImgs.Count; i++) LogicProject/System/CrossServerQualifying/CrossServerQualifying8Win.cs
@@ -45,6 +45,11 @@ Text todayRaceText; Button littleCloseBtn; Button finalsBtn; //查看决赛积分按钮 RectTransform queryScoreObj; Text queryScoreText; #region Built-in protected override void BindController() { @@ -89,6 +94,10 @@ todayRaceObj = proxy.GetWidgtEx<RectTransform>("raceTip"); todayRaceText = proxy.GetWidgtEx<Text>("todayrace"); littleCloseBtn = proxy.GetWidgtEx<Button>("littleClose"); finalsBtn = proxy.GetWidgtEx<Button>("finalsBtn"); queryScoreObj = proxy.GetWidgtEx<RectTransform>("scoreTip"); queryScoreText = proxy.GetWidgtEx<Text>("scoreText"); } protected override void AddListeners() @@ -113,10 +122,22 @@ CrossServerQualifyingModel.Instance.isShowRaceInfoYet = true; todayRaceObj.SetActive(!CrossServerQualifyingModel.Instance.isShowRaceInfoYet); }); finalsBtn.AddListener(() => { uint playerID = 0; var battle = CrossServerQualifyingModel.Instance.battleInfo[2]; if (battle.Count > 0) { var playerIDs = battle[battle.Keys.ToList()[0]]; playerID = playerIDs.PlayerIDA == 0 ? playerIDs.PlayerIDB : playerIDs.PlayerIDA; } QueryRaceScoreEvent(playerID, 2); }); } protected override void OnPreOpen() { CrossServerQualifyingModel.Instance.QueryRaceScoreEvent += QueryRaceScoreEvent; GlobalTimeEvent.Instance.minuteEvent += OnMinuteEvent; CrossServerQualifyingModel.Instance.UpdateCrossChampionshipPKZoneGroupInfoEvent += UpdateRace; @@ -142,6 +163,7 @@ failAGrayImg.SetActiveIL(false); failBGrayImg.SetActiveIL(false); queryScoreObj.SetActiveIL(false); } protected override void OnAfterOpen() { @@ -167,6 +189,7 @@ protected override void OnPreClose() { CrossServerQualifyingModel.Instance.QueryRaceScoreEvent -= QueryRaceScoreEvent; GlobalTimeEvent.Instance.minuteEvent -= OnMinuteEvent; CrossServerQualifyingModel.Instance.UpdateCrossChampionshipPKZoneGroupInfoEvent -= UpdateRace; } @@ -279,7 +302,7 @@ { var playerID = i >= player8List.Count ? new Int2(0, 0) : player8List[i]; var _cell = players8[i].GetILBehaviour<CSQShootOutPlayerCell>(); _cell.Display((uint)playerID.x, (uint)playerID.y); _cell.Display((uint)playerID.x, (uint)playerID.y, 8); } //4强 @@ -299,7 +322,7 @@ { var playerID = i >= player4List.Count ? new Int2(0, 0) : player4List[i]; var _cell = players4[i].GetILBehaviour<CSQShootOutPlayerCell>(); _cell.Display((uint)playerID.x, (uint)playerID.y); _cell.Display((uint)playerID.x, (uint)playerID.y, 4); } } else @@ -442,5 +465,56 @@ DisplayRace(); } } void QueryRaceScoreEvent(uint playerID, uint groupMark) { if (groupMark == 0 || playerID == 0) { todayRaceObj.SetActiveIL(false); queryScoreObj.SetActiveIL(false); return; } var battleInfo = CrossServerQualifyingModel.Instance.QueryPKScoreInfoByPlayerID(groupMark, playerID); if (battleInfo.PlayerIDA == 0 || battleInfo.PlayerIDB == 0) { todayRaceObj.SetActiveIL(false); queryScoreObj.SetActiveIL(false); return; } todayRaceObj.SetActiveIL(false); queryScoreObj.SetActiveIL(true); int tagScoreA = 0; int tagScoreB = 0; var battleResult = battleInfo.battleResult; var keys = battleResult.Keys.ToList(); for (int i = 0; i < keys.Count; i++) { var key = keys[i]; if (key == battleInfo.PlayerIDA) { for (int j = 0; j < battleResult[key].Length; j++) { tagScoreA += battleResult[key][j][1]; } } else { for (int j = 0; j < battleResult[key].Length; j++) { tagScoreB += battleResult[key][j][1]; } } } var nameA = CrossServerQualifyingModel.Instance.fightersInfo.ContainsKey(battleInfo.PlayerIDA) ? CrossServerQualifyingModel.Instance.fightersInfo[battleInfo.PlayerIDA].PlayerName : Language.Get("UnDetermind"); var nameB = CrossServerQualifyingModel.Instance.fightersInfo.ContainsKey(battleInfo.PlayerIDB) ? CrossServerQualifyingModel.Instance.fightersInfo[battleInfo.PlayerIDB].PlayerName : Language.Get("UnDetermind"); queryScoreText.text = StringUtility.Contact(nameA, UIHelper.AppendColor(TextColType.NavyYellow, " VS "), nameB, "</r>", Language.Get("L2033"), " ", tagScoreA, " - ", tagScoreB); } } LogicProject/System/CrossServerQualifying/CrossServerQualifyingModel.cs
@@ -92,6 +92,8 @@ public int[][] doubleTimeArr; public int challengeMaxCnt; //挑战次数 public Action<uint, uint> QueryRaceScoreEvent; // 查询比分 DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } ServerMirrorFightModel mirrorFightModel { get { return ModelCenter.Instance.GetModel<ServerMirrorFightModel>(); } } @@ -506,6 +508,26 @@ return null; } public CrossChampionshipPKBattle QueryPKScoreInfoByPlayerID(uint groupMark, uint playerID) { if (battleInfo.ContainsKey(groupMark)) { var battle = battleInfo[groupMark]; var battleNums = battle.Keys.ToList(); for (int i = 0; i < battleNums.Count; i++) { var battleNum = battleNums[i]; if (battle[battleNum].PlayerIDA == playerID || battle[battleNum].PlayerIDB == playerID) { return battle[battleNum]; } } } return new CrossChampionshipPKBattle(); } public uint WinnerID; // 胜方ID