少年修仙传客户端代码仓库
LogicProject/System/CrossServerQualifying/CrossServerQualifying64Win.cs
@@ -17,13 +17,22 @@
    Button btn16;
    List<Image> selectImgs = new List<Image>();
    Button timeBtn;
    ButtonEx enterGame;
    ScrollerController scroller;
    Text timeTip;   //显示自己当前进场信息和小窗推送配合
    Button guessBtn;
    Image lineImg;
    Text waitTxt;
    Image arrow;
    ButtonEx enterGame;
    Text pkResultText;
    RectTransform pkTagetObjs; //有比赛场次的时候显示
    Text timeTip;   //显示自己当前进场信息和小窗推送配合
    Text pkTimesText;
    Text pkScoreText;
    RectTransform tagPlayerObj;
    RectTransform todayRaceObj;
    Text todayRaceText;
    Button littleCloseBtn;
    
@@ -47,6 +56,16 @@
        lineImg = proxy.GetWidgtEx<Image>("line");
        guessBtn = proxy.GetWidgtEx<Button>("guessBtn");
        arrow = proxy.GetWidgtEx<Image>("arrow");
        pkResultText = proxy.GetWidgtEx<Text>("pkResult");
        pkTagetObjs = proxy.GetWidgtEx<RectTransform>("chanllenge");
        pkTimesText = proxy.GetWidgtEx<Text>("challengeTimes");
        pkScoreText = proxy.GetWidgtEx<Text>("score");
        tagPlayerObj = proxy.GetWidgtEx<RectTransform>("tagetPlayer");
        todayRaceObj = proxy.GetWidgtEx<RectTransform>("raceTip");
        todayRaceText = proxy.GetWidgtEx<Text>("todayrace");
        littleCloseBtn = proxy.GetWidgtEx<Button>("littleClose");
    }
    protected override void AddListeners()
@@ -78,6 +97,11 @@
            arrow.SetActiveIL(false);
            WindowCenter.Instance.OpenIL<CrossServerQualifyingGuess8Win>();
        });
        littleCloseBtn.SetListener(()=>{
            CrossServerQualifyingModel.Instance.isShowRaceInfoYet = true;
            todayRaceObj.SetActive(!CrossServerQualifyingModel.Instance.isShowRaceInfoYet);
        });
    }
    protected override void OnPreOpen()
@@ -97,6 +121,11 @@
        {
            arrow.SetActiveIL(ILChampionshipTimeConfig.Get(battleID).StateValue == 80);
        }
        //顶部晋级信息显示
        var nextBattle = CrossServerQualifyingModel.Instance.GetMyNextBattle();
        pkResultText.SetActive(nextBattle != 0);
        pkResultText.text = Language.Get("CrossServerQualifying71", nextBattle);
    }
@@ -211,25 +240,92 @@
    void OnMinuteEvent()
    {
        var groupMark = CrossServerQualifyingModel.Instance.nowGroupMark;
        enterGame.SetActiveIL(false);
        pkTagetObjs.SetActiveIL(false);
        todayRaceObj.SetActiveIL(false);
        timeTip.text = string.Empty;
        var findIndex = CrossServerQualifyingModel.Instance.groupBtnMarks.IndexOf(groupMark);
        if (findIndex != -1 && groupMark <= 64 && groupMark >= 16)
        {
            var isInBattle = CrossServerQualifyingModel.Instance.HaveMyBattle(groupMark);
            enterGame.SetActiveIL(isInBattle);
            int battleID = CrossServerQualifyingModel.Instance.GetBattleID();
            if (isInBattle && ILChampionshipTimeConfig.Get(battleID).StateValue % 10 == 2)
            {
                pkTagetObjs.SetActiveIL(true);
                //ItemOverdue104 {0}分
                //ItemTipTime1   剩余时间:
                //OSCActivityNotOpen   活动未开始
                //FamilyMatchAlreadyEnd < color =#109d06>已结束</color>
                double minute = CrossServerQualifyingModel.Instance.GetRaceEndRemindMinute(battleID);
                if (minute >= 0)
                {
                    timeTip.text = StringUtility.Contact(Language.Get("ItemTipTime1"), " ", Language.Get("ItemOverdue104", (int)minute));
                }
                else
                {
                    timeTip.text = Language.Get("FamilyMatchAlreadyEnd");
                }
                ShowBattleInfo(groupMark);
            }
            if (isInBattle)
            {
                var battleID = ILChampionshipTimeConfig.GetBattleID((int)groupMark * 10 + 2);
                if (battleID != 0)
                ShowTodayRaceInfo();
            }
        }
    }
    void ShowBattleInfo(uint groupMark)
                {
                    timeTip.text = Language.Get("CrossServerQualifying20", CrossServerQualifyingModel.Instance.GetStartBattleTime(battleID));
                    return;
                }
            }
        }
        uint tagPlayerID;
        var battleResult = CrossServerQualifyingModel.Instance.GetMyBattleInfo(groupMark, out tagPlayerID);
        int challengeCnt = battleResult.ContainsKey((int)PlayerDatas.Instance.baseData.PlayerID) ? battleResult[(int)PlayerDatas.Instance.baseData.PlayerID].Length : 0;
        //FindPrecious_14   挑战次数:
        pkTimesText.text = StringUtility.Contact(Language.Get("FindPrecious_14"), " ",
            CrossServerQualifyingModel.Instance.challengeMaxCnt - challengeCnt,
            "/", CrossServerQualifyingModel.Instance.challengeMaxCnt);
        
        // 战斗结果明细 {"playerID":[[第1局胜负,第1局总积分,胜负基础分,hp分,时间分], ...], ...}
        int myScore = 0;
        int tagScore = 0;
        var keys = battleResult.Keys.ToList();
        for (int i = 0; i < keys.Count; i++)
        {
            var key = keys[i];
            if (key == (int)PlayerDatas.Instance.baseData.PlayerID)
            {
                for (int j = 0; j < battleResult[key].Length; j++)
                {
                    myScore += battleResult[key][j][1];
                }
            }
            else
            {
                for (int j = 0; j < battleResult[key].Length; j++)
                {
                    tagScore += battleResult[key][j][1];
                }
            }
        }
        //L2033   比分:
        pkScoreText.text = StringUtility.Contact( Language.Get("L2033"), " ", myScore, " - ", tagScore);
        var _cell = tagPlayerObj.GetILBehaviour<CSQShootOutPlayerCell>();
        _cell.Display(tagPlayerID, 0);
    }
    void ShowTodayRaceInfo()
    {
        todayRaceObj.SetActiveIL(!CrossServerQualifyingModel.Instance.isShowRaceInfoYet);
        string raceInfo = StringUtility.Contact(Language.Get("CrossServerQualifying70"), "</r>");
        foreach (int mark in CrossServerQualifyingModel.Instance.groupBtnMarks)
        {
            int tmpBattleID = ILChampionshipTimeConfig.GetBattleID(mark * 10 + 2);
            var tmpConfig = ILChampionshipTimeConfig.Get(tmpBattleID);
            raceInfo = StringUtility.Contact(raceInfo, "</r>", tmpConfig.Title, "    ",
                tmpConfig.StartHour.ToString("D2"), ":", tmpConfig.StartMinute.ToString("D2"), " - ",
                tmpConfig.EndHour.ToString("D2"), ":", tmpConfig.EndMinute.ToString("D2"));
        }
        todayRaceText.text = raceInfo;
    }
    void UpdateRace()