//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, April 11, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using TableConfig; namespace Snxxz.UI { public partial class AchievementGoto { public static int guideAchievementId; static DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel(); } } static DemonJarModel demonJarModel { get { return ModelCenter.Instance.GetModel(); } } static FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel(); } } static DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel(); } } static BlastFurnaceModel blastFurnaceModel { get { return ModelCenter.Instance.GetModel(); } } static TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel(); } } public static void GotoKillNpc(int _achievementId) { var config = Config.Instance.Get(_achievementId); var npcId = config.Condition[0]; GAStaticDefine.NPCLocation location; var find = GAStaticDefine.TryGetMapNPCLocation(npcId, out location); if (!find) { return; } var mapConfig = Config.Instance.Get(location.mapId); if (mapConfig.MapFBType == (int)MapType.OpenCountry) { return; } else { var dataMapId = ModelCenter.Instance.GetModel().GetDataMapIdByMapId(location.mapId); switch (dataMapId) { case DemonJarModel.DEMONJAR_MAPID: demonJarModel.selectedBoss = npcId; demonJarModel.lockSelectedBoss = true; DemonJarBossData bossData = null; if (demonJarModel.TryGetBossData(npcId, out bossData)) { if (PlayerDatas.Instance.baseData.LV < bossData.unLockLevel) { SysNotifyMgr.Instance.ShowTip("DemonJar_Text2"); } else if (!findPreciousModel.IsBossAlive(npcId)) { SysNotifyMgr.Instance.ShowTip("Achievement_36_1"); } else { guideAchievementId = _achievementId; } } break; case 31140: dailyQuestModel.currentDailyQuest = (int)DailyQuestType.IceCrystal; var dailyQuestState = dailyQuestModel.GetQuestState((int)DailyQuestType.IceCrystal); switch (dailyQuestState) { case DailyQuestModel.DailyQuestState.Normal: case DailyQuestModel.DailyQuestState.CanBuyTimes: guideAchievementId = _achievementId; break; case DailyQuestModel.DailyQuestState.Completed: SysNotifyMgr.Instance.ShowTip("Achievement_36_2"); break; case DailyQuestModel.DailyQuestState.Locked: //提示未解锁 break; } break; default: break; } } } public static void GotoFairyLand(int _achievementId) { dailyQuestModel.currentDailyQuest = (int)DailyQuestType.FairyLand; var dailyQuestState = dailyQuestModel.GetQuestState((int)DailyQuestType.FairyLand); switch (dailyQuestState) { case DailyQuestModel.DailyQuestState.Normal: guideAchievementId = _achievementId; break; case DailyQuestModel.DailyQuestState.CanBuyTimes: SysNotifyMgr.Instance.ShowTip("Achievement_46"); break; case DailyQuestModel.DailyQuestState.Completed: SysNotifyMgr.Instance.ShowTip("AchievementDungeonCompleted"); break; } } public static void GotoTrial(int _achievementId) { dailyQuestModel.currentDailyQuest = (int)DailyQuestType.Trial; var dailyQuestState = dailyQuestModel.GetQuestState((int)DailyQuestType.Trial); switch (dailyQuestState) { case DailyQuestModel.DailyQuestState.Normal: guideAchievementId = _achievementId; break; case DailyQuestModel.DailyQuestState.Completed: SysNotifyMgr.Instance.ShowTip("Achievement_54"); break; } } public static void GotoIceCrystal(int _achievementId) { dailyQuestModel.currentDailyQuest = (int)DailyQuestType.IceCrystal; var dailyQuestState = dailyQuestModel.GetQuestState((int)DailyQuestType.IceCrystal); switch (dailyQuestState) { case DailyQuestModel.DailyQuestState.Normal: guideAchievementId = _achievementId; break; case DailyQuestModel.DailyQuestState.CanBuyTimes: SysNotifyMgr.Instance.ShowTip("Achievement_125"); break; case DailyQuestModel.DailyQuestState.Completed: SysNotifyMgr.Instance.ShowTip("AchievementDungeonCompleted"); break; } } public static void GotoBuyDungeonTimes(int _achievementId) { var config = Config.Instance.Get(_achievementId); var dataMapId = config.Condition[0]; var canBuyTimes = dungeonModel.GetBuyTimesLimit(dataMapId); var boughtTimes = dungeonModel.GetBoughtTimes(dataMapId); if (canBuyTimes > 0 && canBuyTimes > boughtTimes) { guideAchievementId = _achievementId; } else { SysNotifyMgr.Instance.ShowTip("Achievement_99"); } } public static void GotoExploreMap(int _achievementId) { guideAchievementId = _achievementId; } public static void GotoRuneTower(int _achievementId) { guideAchievementId = _achievementId; } public static void GotoDungeonInspire(int _achievementId) { var config = Config.Instance.Get(_achievementId); var dataMapId = config.Condition[0]; switch (dataMapId) { case DemonJarModel.DEMONJAR_MAPID: var bossId = demonJarModel.GetLatestUnLockBoss(); if (bossId > 0) { demonJarModel.selectedBoss = bossId; demonJarModel.lockSelectedBoss = true; if (findPreciousModel.IsBossAlive(bossId)) { guideAchievementId = _achievementId; } else { DemonJarBossData bossData = null; if (demonJarModel.TryGetBossData(bossId, out bossData)) { if (PlayerDatas.Instance.baseData.LV < bossData.unLockLevel) { SysNotifyMgr.Instance.ShowTip("DemonJar_Text2"); } } if (!findPreciousModel.IsBossAlive(bossId)) { SysNotifyMgr.Instance.ShowTip("Achievement_81_2"); } } } break; case 31080: dailyQuestModel.currentDailyQuest = (int)DailyQuestType.FairyLand; var dailyQuestState = dailyQuestModel.GetQuestState((int)DailyQuestType.FairyLand); switch (dailyQuestState) { case DailyQuestModel.DailyQuestState.Normal: guideAchievementId = _achievementId; break; case DailyQuestModel.DailyQuestState.CanBuyTimes: SysNotifyMgr.Instance.ShowTip("Achievement_81_1"); break; } break; } } public static void GotoKylin_7(int _achievementId) { dailyQuestModel.currentDailyQuest = (int)DailyQuestType.Kirin; var dailyQuestState = dailyQuestModel.GetQuestState((int)DailyQuestType.Kirin); switch (dailyQuestState) { case DailyQuestModel.DailyQuestState.Normal: guideAchievementId = _achievementId; break; case DailyQuestModel.DailyQuestState.CanBuyTimes: SysNotifyMgr.Instance.ShowTip("Achievement_49"); break; case DailyQuestModel.DailyQuestState.Completed: SysNotifyMgr.Instance.ShowTip("AchievementDungeonCompleted"); break; } } public static void GotoKylin_49(int _achievementId) { var config = Config.Instance.Get(_achievementId); var dungeon = new Dungeon(31190, config.Condition[0] - 1); dungeonModel.currentDungeon = dungeon; dungeonModel.selectedKylinDungeon = dungeon; guideAchievementId = _achievementId; } //日常界面本身有特效,这个是不要的 public static void GotoGetDailyActiveValueAward(int _achievementId) { var activeValueRewards = Config.Instance.GetAllKeys(); var rewardable = false; foreach (var key in activeValueRewards) { var config = Config.Instance.Get(key); DailyQuestActiveValueReward rewardData; if (dailyQuestModel.TryGetActiveValueRewardData(int.Parse(key), out rewardData)) { if (!rewardData.got && dailyQuestModel.totalActiveValue >= config.Liveness) { rewardable = true; break; } } } if (rewardable) { guideAchievementId = _achievementId; } else { //提示,无奖可领 } } public static void GotoStove(int _achievementId) { if (blastFurnaceModel.StoveLV < 1) { treasureModel.currentCategory = TreasureCategory.Fairy; treasureModel.selectedTreasure = 301; guideAchievementId = _achievementId; } else { guideAchievementId = _achievementId; } } public static void GotoNuwa(int _achievementId) { dailyQuestModel.currentDailyQuest = (int)DailyQuestType.EmperorRelic; var dailyQuestState = dailyQuestModel.GetQuestState((int)DailyQuestType.EmperorRelic); switch (dailyQuestState) { case DailyQuestModel.DailyQuestState.Locked: SysNotifyMgr.Instance.ShowTip("Achievement_63_2"); break; case DailyQuestModel.DailyQuestState.Normal: guideAchievementId = _achievementId; break; case DailyQuestModel.DailyQuestState.CanBuyTimes: SysNotifyMgr.Instance.ShowTip("Achievement_63"); break; case DailyQuestModel.DailyQuestState.Completed: SysNotifyMgr.Instance.ShowTip("AchievementDungeonCompleted"); break; } } public static void GotoSpSkillLevelUp(int _achievementId) { var config = Config.Instance.Get(_achievementId); var index = PlayerDatas.Instance.baseData.Job - 1; var skillId = index < config.Condition.Length ? config.Condition[index] : config.Condition[0]; var treasureId = 0; var humanTreasures = treasureModel.GetTreasureCategory(TreasureCategory.Human); foreach (var id in humanTreasures) { Treasure treasure; treasureModel.TryGetTreasure(id, out treasure); if (treasure.GetPotential(skillId) != null) { treasureId = treasure.id; break; } } var skillConfig = Config.Instance.Get(skillId); var treasureConfig = Config.Instance.Get(treasureId); if (treasureId != 0) { if (!FuncOpen.Instance.IsFuncOpen(82)) { FuncOpen.Instance.ProcessorFuncErrorTip(82); return; } Treasure treasure; if (treasureModel.TryGetTreasure(treasureId, out treasure)) { if (!treasure.IsHighestStage) { SysNotifyMgr.Instance.ShowTip("TreasureSkillUnGet", skillConfig.SkillName, treasureConfig.Name); return; } guideAchievementId = _achievementId; } } } public static void GotoKillMapMonster(int _achievementId) { guideAchievementId = _achievementId; } } }