少年修仙传客户端代码仓库
client_Wu Xijin
2018-08-17 d308e8e5ec02a2553d1a718e113235061659b87f
2598 【前端】日常界面,觉醒法宝条目改成法宝集魂
3个文件已修改
94 ■■■■ 已修改文件
System/DailyQuest/DailyQuestModel.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestWin.cs 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestModel.cs
@@ -110,7 +110,6 @@
            UpdateRedpoints();
            treasureModel.treasureStageUpEvent += OnTreasureStageUp;
            fairyLeagueModel.onFairyLeagueBattleEvent += OnFairyLeagueBattle;
            dungeonModel.dungeonRecordChangeEvent += OnDungeonRecordChange;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFunctionStateChange;
@@ -120,7 +119,6 @@
        public override void UnInit()
        {
            treasureModel.treasureStageUpEvent -= OnTreasureStageUp;
            fairyLeagueModel.onFairyLeagueBattleEvent -= OnFairyLeagueBattle;
            dungeonModel.dungeonRecordChangeEvent -= OnDungeonRecordChange;
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFunctionStateChange;
@@ -497,11 +495,6 @@
            }
        }
        private void OnTreasureStageUp(int _treasureId)
        {
            UpdateDailyActionRedpoint((int)DailyQuestType.TreasureAwaken);
        }
        private void OnFairyLeagueBattle()
        {
            UpdateDailyActionRedpoint((int)DailyQuestType.FairyLeague);
@@ -546,7 +539,7 @@
                            case DailyQuestType.ElderGodArea:
                            case DailyQuestType.DungeonAssist:
                            case DailyQuestType.RuneTower:
                            case DailyQuestType.TreasureAwaken:
                            case DailyQuestType.TreasureCollectSoul:
                                dailyQuest.redpoint.state = RedPointState.None;
                                break;
                            default:
System/DailyQuest/DailyQuestWin.cs
@@ -31,6 +31,7 @@
        DailyQuestModel model { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        PlayerTaskDatas taskModel { get { return ModelCenter.Instance.GetModel<PlayerTaskDatas>(); } }
        TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
        public int guidingDailyQuestId = 0;
@@ -272,8 +273,8 @@
                    WindowCenter.Instance.CloseImmediately<DailyQuestWin>();
                    WindowCenter.Instance.Open<RuneTowerWin>();
                    break;
                case DailyQuestType.TreasureAwaken:
                    GotoTreasureAwaken();
                case DailyQuestType.TreasureCollectSoul:
                    GotoTreasureCollectSoul();
                    break;
                case DailyQuestType.DungeonAssist:
                    WindowCenter.Instance.CloseImmediately<DailyQuestWin>();
@@ -456,23 +457,58 @@
            }
        }
        private void GotoTreasureAwaken()
        private void GotoTreasureCollectSoul()
        {
            var treasureModel = ModelCenter.Instance.GetModel<TreasureModel>();
            var treasures = treasureModel.GetTreasureCategory(TreasureCategory.Human);
            var gotoTreasureId = 0;
            for (int i = 0; i < treasures.Count; i++)
            for (int i = treasures.Count - 1; i >= 0; i--)
            {
                var treasureId = treasures[i];
                Treasure treasure;
                if (treasureModel.TryGetTreasure(treasureId, out treasure))
                if (IsTreasureCollectSoul(treasures[i]))
                {
                    var humanTreasure = treasure as HumanTreasure;
                    gotoTreasureId = treasures[i];
                    break;
                }
            }
                    if (humanTreasure.castSoulRedpoint.state == RedPointState.Simple)
            if (gotoTreasureId == 0)
            {
                var result = treasures.FindLast((x) =>
                  {
                      Treasure treasure;
                      if (treasureModel.TryGetTreasure(x, out treasure))
                      {
                          var humanTreasure = treasure as HumanTreasure;
                          var config = ConfigManager.Instance.GetTemplate<TreasureConfig>(humanTreasure.id);
                          return humanTreasure != null && (humanTreasure.humanState == HumanTreasureState.CastSoul);
                      }
                      else
                      {
                          return false;
                      }
                  }
                  );
                if (result != 0)
                {
                    gotoTreasureId = result;
                }
            }
            if (gotoTreasureId == 0)
            {
                for (int i = 0; i < treasures.Count; i++)
                {
                    Treasure treasure;
                    if (treasureModel.TryGetTreasure(treasures[i], out treasure))
                    {
                        gotoTreasureId = humanTreasure.id;
                        break;
                        var humanTreasure = treasure as HumanTreasure;
                        if (humanTreasure != null
                            && (humanTreasure.humanState == HumanTreasureState.Locked || humanTreasure.humanState == HumanTreasureState.Challenge))
                        {
                            gotoTreasureId = humanTreasure.id;
                            break;
                        }
                    }
                }
            }
@@ -504,6 +540,31 @@
            }
        }
        private bool IsTreasureCollectSoul(int _treasureId)
        {
            Treasure treasure;
            if (treasureModel.TryGetTreasure(_treasureId, out treasure))
            {
                var humanTreasure = treasure as HumanTreasure;
                if (humanTreasure.humanState == HumanTreasureState.CastSoul)
                {
                    foreach (var achievementGroup in treasure.achievementGroups.Values)
                    {
                        if (achievementGroup.IsAwardable())
                        {
                            return true;
                        }
                    }
                }
                return false;
            }
            else
            {
                return false;
            }
        }
        private bool IsDungeon()//是否在副本中
        {
            var mapId = PlayerDatas.Instance.baseData.MapID;
Utility/EnumHelper.cs
@@ -303,7 +303,7 @@
    FairyTask = 18,
    RuneTowerSweep = 19,
    RuneTower = 21,
    TreasureAwaken = 22,
    TreasureCollectSoul = 22,
    DungeonAssist = 23,
    BossHome = 24,
    PersonalBoss = 25,