//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, April 11, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace vnxbqy.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 AlchemyModel alchemyModel { get { return ModelCenter.Instance.GetModel(); } } static TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel(); } } public static void GotoKillNpc(int _achievementId) { var config = SuccessConfig.Get(_achievementId); var npcId = config.Condition[0]; GAStaticDefine.NPCLocation location; var find = GAStaticDefine.TryGetMapNPCLocation(npcId, out location); if (!find) { return; } var mapConfig = MapConfig.Get(location.mapId); if (mapConfig.MapFBType == (int)MapType.OpenCountry) { return; } else { var dataMapId = ModelCenter.Instance.GetModel().GetDataMapIdByMapId(location.mapId); switch (dataMapId) { case DemonJarModel.DATA_MAPID: demonJarModel.selectedBoss = npcId; demonJarModel.lockSelectedBoss = true; DemonJarBossData bossData = null; if (demonJarModel.TryGetBossData(npcId, out bossData)) { if (!findPreciousModel.IsBossUnlock(npcId)) { SysNotifyMgr.Instance.ShowTip("DemonJar_Text2"); } else if (!findPreciousModel.IsBossAlive(npcId)) { SysNotifyMgr.Instance.ShowTip("Achievement_36_1"); } else { guideAchievementId = _achievementId; } } break; case 31140: dailyQuestModel.wannaLookDailyQuest = (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.wannaLookDailyQuest = (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.wannaLookDailyQuest = (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.wannaLookDailyQuest = (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 = SuccessConfig.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 = SuccessConfig.Get(_achievementId); var dataMapId = config.Condition[0]; switch (dataMapId) { case DemonJarModel.DATA_MAPID: var bossId = demonJarModel.GetRecommendBoss(); 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 (!findPreciousModel.IsBossUnlock(bossId)) { SysNotifyMgr.Instance.ShowTip("DemonJar_Text2"); } } if (!findPreciousModel.IsBossAlive(bossId)) { SysNotifyMgr.Instance.ShowTip("Achievement_81_2"); } } } break; case 31080: dailyQuestModel.wannaLookDailyQuest = (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.wannaLookDailyQuest = (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 = SuccessConfig.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 = DailyLivenessRewardConfig.GetKeys(); var rewardable = false; foreach (var key in activeValueRewards) { var config = DailyLivenessRewardConfig.Get(key); DailyQuestActiveValueReward rewardData; if (dailyQuestModel.TryGetActiveValueRewardData(int.Parse(key), out rewardData)) { if (!rewardData.got && dailyQuestModel.currentActiveValue >= config.Liveness) { rewardable = true; break; } } } if (rewardable) { guideAchievementId = _achievementId; } else { //提示,无奖可领 } } public static void GotoStove(int _achievementId) { if (alchemyModel.stoveLevel < 1) { treasureModel.currentCategory = TreasureCategory.Fairy; treasureModel.selectedTreasure = 301; guideAchievementId = _achievementId; } else { guideAchievementId = _achievementId; } } public static void GotoNuwa(int _achievementId) { dailyQuestModel.wannaLookDailyQuest = (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 = SuccessConfig.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 = SkillConfig.Get(skillId); //var treasureConfig = TreasureConfig.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; } } }