少年修仙传客户端代码仓库
4798 【前端】【1.3】日常界面-限时活动界面今日活动开启时间色值修改,新增已错过活动
2个文件已修改
86 ■■■■■ 已修改文件
System/DailyQuest/DailyQuestBehaviour.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestModel.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestBehaviour.cs
@@ -20,6 +20,7 @@
        [SerializeField] Text m_PracticePoint;
        [SerializeField] Text m_UnLockCondition;
        [SerializeField] TextEx m_Supplementary;
        [SerializeField] FontColorSizeConfig m_TimeColor;
        [SerializeField] Text m_AssistPoint;
        [SerializeField] Text m_GotoTxt;
        [SerializeField] Image m_Icon;
@@ -27,6 +28,7 @@
        [SerializeField] Button m_Goto;
        [SerializeField] Button m_Func;
        [SerializeField] Text m_FuncDisplay;
        [SerializeField] RectTransform m_TimeMiss;
        [SerializeField] Transform m_Complete;
        [SerializeField] Transform m_Locked;
        [SerializeField] RedpointBehaviour m_RedpointBehaviour;
@@ -40,7 +42,6 @@
        DailyQuestModel model { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        TrialDungeonModel trialDungeonModel { get { return ModelCenter.Instance.GetModel<TrialDungeonModel>(); } }
        DailyQuestModel.DailyQuestState state = DailyQuestModel.DailyQuestState.Normal;
@@ -215,6 +216,7 @@
            m_AssistPoint.gameObject.SetActive(state == DailyQuestModel.DailyQuestState.Completed);
            m_Goto.gameObject.SetActive(state == DailyQuestModel.DailyQuestState.Normal || state == DailyQuestModel.DailyQuestState.CanBuyTimes);
            m_Complete.gameObject.SetActive(false);
            m_TimeMiss.gameObject.SetActive(false);
            switch (state)
            {
@@ -226,11 +228,17 @@
                    HourMinute hourMinute;
                    if (model.TryGetOpenTime(data.id, out openTime2) && openTime2.TryGetTodayNearestOpenTime(out hourMinute))
                    {
                        if (hourMinute.AfterOpenTime(TimeUtility.ServerNow.Hour, TimeUtility.ServerNow.Minute) && completedTimes == 0)
                        {
                            m_TimeMiss.gameObject.SetActive(true);
                        }
                        m_Supplementary.text = StringUtility.Contact(Language.Get("DailyQuestWin_OpenTime"), hourMinute.ToOpenTime());
                        m_Supplementary.color = m_TimeColor.GetColorSize("TodayColor").color;
                    }
                    else
                    {
                        m_Supplementary.text = openTime2.ToOpenTimeString();
                        m_Supplementary.color = m_TimeColor.GetColorSize("NotTodayColor").color;
                    }
                    break;
                case DailyQuestModel.DailyQuestState.CanBuyTimes:
System/DailyQuest/DailyQuestModel.cs
@@ -12,7 +12,7 @@
{
    [XLua.LuaCallCSharp]
    public class DailyQuestModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IMapInitOk
    public class DailyQuestModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IMapInitOk
    {
        const int DAILYQUEST_REDPOINTID = 78000;
@@ -690,71 +690,79 @@
            var unLock1 = IsDailyQuestUnLock(_lhs);
            var unLock2 = IsDailyQuestUnLock(_rhs);
            if (unLock1 && !unLock2)
            DailyQuestOpenTime openTime1;
            TryGetOpenTime(_lhs, out openTime1);
            DailyQuestOpenTime openTime2;
            TryGetOpenTime(_rhs, out openTime2);
            var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
            var isActiveDay1 = openTime1.always || openTime1.GetHourMinuteByWeek(dayOfWeek) != null;
            var isActiveDay2 = openTime2.always || openTime2.GetHourMinuteByWeek(dayOfWeek) != null;
            var inOpenTime1 = openTime1.InOpenTime();
            var inOpenTime2 = openTime2.InOpenTime();
            var serverHour = TimeUtility.ServerNow.Hour;
            var serverMinute = TimeUtility.ServerNow.Minute;
            HourMinute hourMinute1;
            var miss1 = openTime1.TryGetTodayNearestOpenTime(out hourMinute1) && hourMinute1.AfterOpenTime(serverHour, serverMinute);
            HourMinute hourMinute2;
            var miss2 = openTime2.TryGetTodayNearestOpenTime(out hourMinute2) && hourMinute2.AfterOpenTime(serverHour, serverMinute);
            if ((unLock1 && inOpenTime1) && !(unLock2 && inOpenTime2))
            {
                return -1;
            }
            else if (!unLock1 && unLock2)
            else if (!(unLock1 && inOpenTime1) && (unLock2 && inOpenTime2))
            {
                return 1;
            }
            else
            {
                DailyQuestOpenTime openTime1;
                TryGetOpenTime(_lhs, out openTime1);
                DailyQuestOpenTime openTime2;
                TryGetOpenTime(_rhs, out openTime2);
                var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
                var isActiveDay1 = openTime1.always || openTime1.GetHourMinuteByWeek(dayOfWeek) != null;
                var isActiveDay2 = openTime2.always || openTime2.GetHourMinuteByWeek(dayOfWeek) != null;
                if (isActiveDay1 && !isActiveDay2)
                if ((unLock1 && isActiveDay1 && !miss1) && !(unLock2 && isActiveDay2 && !miss2))
                {
                    return -1;
                }
                else if (!isActiveDay1 && isActiveDay2)
                else if (!(unLock1 && isActiveDay1 && !miss1) && (unLock2 && isActiveDay2 && !miss2))
                {
                    return 1;
                }
                else
                {
                    var inOpenTime1 = openTime1.InOpenTime();
                    var inOpenTime2 = openTime2.InOpenTime();
                    if (inOpenTime1 && !inOpenTime2)
                    if ((unLock1 && !isActiveDay1) && !(unLock2 && !isActiveDay2))
                    {
                        return -1;
                    }
                    else if (!inOpenTime1 && inOpenTime2)
                    else if (!(unLock1 && !isActiveDay1) && (unLock2 && !isActiveDay2))
                    {
                        return 1;
                    }
                    else if (!inOpenTime1 && !inOpenTime2)
                    else
                    {
                        HourMinute hourMinute1;
                        var beforeOpenTime1 = openTime1.TryGetTodayNearestOpenTime(out hourMinute1);
                        HourMinute hourMinute2;
                        var beforeOpenTime2 = openTime2.TryGetTodayNearestOpenTime(out hourMinute2);
                        if (beforeOpenTime1 && !beforeOpenTime2)
                        if (unLock1 && !unLock2)
                        {
                            return -1;
                        }
                        else if (!beforeOpenTime1 && beforeOpenTime2)
                        else if (!unLock1 && unLock2)
                        {
                            return 1;
                        }
                        else
                        {
                            return HourMinute.Compare(hourMinute1, hourMinute2);
                            if (!miss1 && miss2)
                            {
                                return -1;
                            }
                            else if (miss1 && !miss2)
                            {
                                return 1;
                            }
                            else
                            {
                                return _lhs < _rhs ? -1 : 1;
                            }
                        }
                    }
                    else
                    {
                        return _lhs < _rhs ? -1 : 1;
                    }
                }
            }