| | |
| | | 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;
|
| | |
|
| | |
| | | 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>();
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | 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;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | 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;
|