少年修仙传客户端代码仓库
LogicProject/System/CrossServerQualifying/CrossServerQualifying8Win.cs
@@ -14,9 +14,7 @@
{
    Transform raceTable;
    Text waitTxt;
    Text timeTip;   //显示自己当前进场信息和小窗推送配合
    Button raceBtn;
    ButtonEx enterGame;
    Button giftBtn;
    Button guessBtn;
    Text time1;
@@ -35,6 +33,15 @@
    Image arrow;
    Text nextTime;
    ButtonEx enterGame;
    RectTransform pkTagetObjs; //有比赛场次的时候显示
    Text timeTip;   //显示自己当前进场信息和小窗推送配合
    Text pkTimesText;
    Text pkScoreText;
    RectTransform tagPlayerObj;
    RectTransform todayRaceObj;
    Text todayRaceText;
    Button littleCloseBtn;
    #region Built-in
    protected override void BindController()
@@ -70,6 +77,14 @@
        fightPowerB = proxy.GetWidgtEx<Text>("fightPowerB");
        arrow = proxy.GetWidgtEx<Image>("arrow");
        nextTime = proxy.GetWidgtEx<Text>("nextTime");
        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()
@@ -88,6 +103,11 @@
        giftBtn.SetListener(() => {
            WindowCenter.Instance.OpenIL<CrossServerQualifyingRankWin>();
        });
        littleCloseBtn.SetListener(() => {
            CrossServerQualifyingModel.Instance.isShowRaceInfoYet = true;
            todayRaceObj.SetActive(!CrossServerQualifyingModel.Instance.isShowRaceInfoYet);
        });
    }
@@ -130,8 +150,8 @@
        }
        else
        {
            enterGame.SetActiveIL(false);
            timeTip.text = string.Empty;
            pkTagetObjs.SetActiveIL(false);
            todayRaceObj.SetActiveIL(false);
            DisplayTime();
            raceTable.SetActiveIL(false);
            waitTxt.SetActiveIL(true);
@@ -305,26 +325,97 @@
    void OnMinuteEvent()
    {
        enterGame.SetActiveIL(false);
        timeTip.text = string.Empty;
        pkTagetObjs.SetActiveIL(false);
        todayRaceObj.SetActiveIL(false);
        var groupMark = CrossServerQualifyingModel.Instance.nowGroupMark;
        if (groupMark <= 8 && groupMark != 0)
        {
            var isInBattle = CrossServerQualifyingModel.Instance.HaveMyBattle(groupMark);
            //如果玩家界面一直开着就需要刷新
            if (CrossServerQualifyingModel.Instance.HaveMyBattle(groupMark))
            int battleID = CrossServerQualifyingModel.Instance.GetBattleID();
            if (isInBattle && ILChampionshipTimeConfig.Get(battleID).StateValue % 10 == 2)
            {
                enterGame.SetActiveIL(true);
                var battleID = ILChampionshipTimeConfig.GetBattleID((int)groupMark * 10 + 2);
                if (battleID != 0)
                pkTagetObjs.SetActiveIL(true);
                //ItemOverdue104 {0}分
                //ItemTipTime1   剩余时间:
                //OSCActivityNotOpen   活动未开始
                //FamilyMatchAlreadyEnd < color =#109d06>已结束</color>
                double minute = CrossServerQualifyingModel.Instance.GetRaceEndRemindMinute(battleID);
                if (minute >= 0)
                {
                    timeTip.text = Language.Get("CrossServerQualifying20", CrossServerQualifyingModel.Instance.GetStartBattleTime(battleID));
                    timeTip.text = StringUtility.Contact(Language.Get("ItemTipTime1"), " ", Language.Get("ItemOverdue104", (int)minute));
                }
                else
                {
                    timeTip.text = Language.Get("FamilyMatchAlreadyEnd");
                }
                ShowBattleInfo(groupMark);
            }
            if (isInBattle)
            {
                ShowTodayRaceInfo();
            }
        }
    }
    void ShowBattleInfo(uint groupMark)
    {
        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.group8BtnMarks)
        {
            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()
    {
        if (!raceTable.gameObject.activeSelf)