少年修仙传客户端代码仓库
Client_PangDeRong
2018-10-19 921e2a1f00af3fe5a99d4e381f17da48aec54206
2179 【BUG】【1.1.0】【主干】仙魔之争界面显示错误
2个文件已修改
88 ■■■■■ 已修改文件
System/HeavenBattle/HeavenBattleModel.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HeavenBattle/HeavenBattleWin.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HeavenBattle/HeavenBattleModel.cs
@@ -11,12 +11,8 @@
{
    public const int HEAVEBATTLE_MAPID = 31010;
    public const int HEAVEBATTLE_TargetID = 38;
    public const int HEAVEBATTLE_START = 1;
    public const int HeavenBattleDailyId = 14;
    List<DungeonStateTimeConfig> prepareConfiglist;
    DailyQuestConfig dailyConfig;
    public HeavenBattleState heavenBattleState { get; private set; }
    Dictionary<DayOfWeek,WeekTime> heavenBattleWeekTimeDict = new Dictionary<DayOfWeek,WeekTime>();
    public Dictionary<int,List<XMZZVictoryRewardInfo>> heavenAwardDict { get; private set; }
    public Dictionary<int, ItemCellModel> campVicRewardDict { get; private set; }
    public Dictionary<int, ItemCellModel> campFailRewardDict { get; private set; }
@@ -49,24 +45,6 @@
    public override void Init()
    {
        heavenBattleWeekTimeDict.Clear();
        prepareConfiglist = DungeonStateTimeConfig.DungeonStateTimelist(HEAVEBATTLE_MAPID, HEAVEBATTLE_START);
        for(int i = 0; i < prepareConfiglist.Count;i++)
        {
           DungeonStateTimeConfig  prepareConfig = prepareConfiglist[i];
            WeekTime weekTime1 = new WeekTime(prepareConfig.StartWeekday, prepareConfig.StartHour
           , prepareConfig.StartMinute, prepareConfig.EndHour, prepareConfig.EndMinute);
            DayOfWeek dayOfWeek = (DayOfWeek)(prepareConfig.StartWeekday % 7);
            if(!heavenBattleWeekTimeDict.ContainsKey(dayOfWeek))
            {
                heavenBattleWeekTimeDict.Add(dayOfWeek, weekTime1);
            }
            else
            {
                heavenBattleWeekTimeDict[dayOfWeek] = weekTime1;
            }
        }
        FuncConfigConfig heavenAwardConfig = Config.Instance.Get<FuncConfigConfig>("XMZZAward");
        JsonData xmzzVicRewardData = JsonMapper.ToObject(heavenAwardConfig.Numerical1);
        heavenAwardDict = new Dictionary<int, List<XMZZVictoryRewardInfo>>();
@@ -189,7 +167,7 @@
        {
            if(dailyQuestModel.GetQuestState(dailyConfig.ID) != DailyQuestModel.DailyQuestState.OutTime)
            {
                if (!WindowCenter.Instance.IsOpen<HeavenBattleWin>())
                if (!WindowCenter.Instance.IsOpen<HeavenBattleWin>() && GetActivityRemainTime() > 0)
                {
                    var config = Config.Instance.Get<DailyQuestConfig>(dailyConfig.ID);
                    dungeonModel.currentDungeon = new Dungeon(config.RelatedID, 0);
@@ -348,40 +326,38 @@
    #endregion
    public HeavenBattleState GetXMZZState()
    {
        heavenBattleState = HeavenBattleState.None;
        DayOfWeek serverWeekDay = TimeUtility.ServerNow.DayOfWeek;
        if (heavenBattleWeekTimeDict.ContainsKey(serverWeekDay))
        {
            WeekTime activityEndWeek = new WeekTime(heavenBattleWeekTimeDict[serverWeekDay].dayOfWeek, heavenBattleWeekTimeDict[serverWeekDay].endHour, heavenBattleWeekTimeDict[serverWeekDay].endMinute
                , 0, 0);
            if ((WeekTime.Now - heavenBattleWeekTimeDict[serverWeekDay]).TotalSeconds >= 0
               && (activityEndWeek - WeekTime.Now).TotalSeconds >= 0)
            {
                heavenBattleState = HeavenBattleState.BattleStart;
            }
            else if ((WeekTime.Now - activityEndWeek).TotalSeconds > 0)
            {
                heavenBattleState = HeavenBattleState.BattleEnd;
            }
        }
        return heavenBattleState;
    }
    public int GetActivityRemainTime()
    {
        if (heavenBattleWeekTimeDict.ContainsKey(TimeUtility.ServerNow.DayOfWeek))
        DailyQuestOpenTime openTime = null;
        bool isActivity = dailyQuestModel.TryGetOpenTime(HeavenBattleDailyId,out openTime);
        if(isActivity)
        {
            DayOfWeek serverWeekDay = TimeUtility.ServerNow.DayOfWeek;
            List<HourMinute> hourMinutes = openTime.GetHourMinuteByWeek((int)TimeUtility.ServerNow.DayOfWeek);
            if(hourMinutes != null && hourMinutes.Count > 0)
            {
                HourMinute hourMinute = hourMinutes[0];
                DateTime endTime = new DateTime(TimeUtility.ServerNow.Year,TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day,
                    hourMinute.hourEnd,hourMinute.minuteEnd,0);
                DateTime startTime = new DateTime(TimeUtility.ServerNow.Year, TimeUtility.ServerNow.Month, TimeUtility.ServerNow.Day,
                 hourMinute.hourBegin, hourMinute.minuteBegin, 0);
                int advanceSec = Mathf.CeilToInt((float)(startTime - TimeUtility.ServerNow).TotalSeconds);
                int endSec = Mathf.CeilToInt((float)(endTime - TimeUtility.ServerNow).TotalSeconds);
                if(advanceSec > 0)
                {
                    return 0;
                }
                else if(endSec <= 0)
                {
                    return 0;
                }
                else
                {
                    return endSec;
                }
            WeekTime endTime = new WeekTime(heavenBattleWeekTimeDict[serverWeekDay].dayOfWeek, heavenBattleWeekTimeDict[serverWeekDay].endHour, heavenBattleWeekTimeDict[serverWeekDay].endMinute
                , 0, 0);
            return (int)(endTime - WeekTime.Now).TotalSeconds;
            }
        }
        return 0;
    }
System/HeavenBattle/HeavenBattleWin.cs
@@ -96,6 +96,9 @@
            //this.transform.SetAsLastSibling();
            RefreshPlayerInfoUI();
            RefreshBattleInfo(BATTLEINFO_TYPE);
            int remainTime = heavenModel.GetActivityRemainTime();
            RefreshRemainTimeText(remainTime);
            TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.HeavenBattleReaminTime, remainTime, RefreshRemainTimeText);
        }
        protected override void OnPreClose()
@@ -134,10 +137,7 @@
            victoryCntlist = heavenModel.heavenAwardDict.Keys.ToList();
            rewardSlider.minValue = victoryCntlist[0];
            rewardSlider.maxValue = victoryCntlist[victoryCntlist.Count - 1];
            int remainTime = heavenModel.GetActivityRemainTime();
            RefreshRemainTimeText(remainTime);
            TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.HeavenBattleReaminTime, remainTime, RefreshRemainTimeText);
            for (int i = victoryCntlist.Count - 1; i > -1; i--)
            {
                XMZZVictoryRewardInfo rewardInfo = heavenModel.heavenAwardDict[victoryCntlist[i]][0];