| System/Dungeon/TrialDungeonEntranceWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/TrialDungeonModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/TrialDungeonSelectBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/Dungeon/TrialDungeonEntranceWin.cs
@@ -14,30 +14,20 @@ { public class TrialDungeonEntranceWin : Window { [SerializeField] Text m_Title; [SerializeField] Text m_LevelLimit; [SerializeField] Text m_GradeLimit; [SerializeField] Text m_ChallengeTimes; [SerializeField] Text m_DropItemTxt; [SerializeField] Text m_Title; [SerializeField] Text m_LevelLimit; [SerializeField] Text m_PetHorseLevelLimit; [SerializeField] Text m_PreFloorLimit; [SerializeField] Text m_ChallengeTimes; [SerializeField] Text m_DropItemTxt; [SerializeField] Button m_GroupStart; [SerializeField] Button m_SingleStart; [SerializeField] Button m_AutoGroupStart; [SerializeField] Button m_Sweep; [SerializeField] Button m_CloseWin; [SerializeField] Button m_GroupStart; [SerializeField] Button m_SingleStart; [SerializeField] Button m_AutoGroupStart; [SerializeField] Button m_Sweep; [SerializeField] Button m_CloseWin; [SerializeField] RawImage m_BossPortrayal; [SerializeField] RawImage m_BossPortrayal; [SerializeField] Image m_BossRealm; [SerializeField] Text m_BossName; @@ -134,9 +124,13 @@ var playerLevel = PlayerDatas.Instance.baseData.LV; m_LevelLimit.gameObject.SetActive(playerLevel < dungeonConfig.LVLimitMin); var requirePetHorseLevel = trialDungeonModel.GetDungeonRequirePetHorseLevel(dungeonConfig.LineID); var petHorseLevel = trialDungeonModel.GetPetHorseLevel(); m_PetHorseLevelLimit.gameObject.SetActive(petHorseLevel < requirePetHorseLevel); DungeonRecord dungeonRecord; model.TryGetRecord(dungeonConfig.MapID, out dungeonRecord); int star = 1; int star = 0; if (dungeonConfig.LineID > 0) { dungeonRecord.lineGrades.TryGetValue(dungeonConfig.LineID - 1, out star); @@ -146,11 +140,7 @@ star = 5; } m_GradeLimit.gameObject.SetActive(star < GeneralDefine.munekadolockLimit); if (star < GeneralDefine.munekadolockLimit) { m_GradeLimit.text = Language.Get("TrialDungeonGradeLimit2", UIHelper.GetGrade(GeneralDefine.munekadolockLimit)); } m_PreFloorLimit.gameObject.SetActive(star == 0); UpdateDungeonTimes(model.GetTrialMaps()[0]); @@ -278,7 +268,7 @@ DungeonRecord dungeonRecord; model.TryGetRecord(config.MapID, out dungeonRecord); int star = 1; int star = 0; if (config.LineID > 0) { dungeonRecord.lineGrades.TryGetValue(config.LineID - 1, out star); @@ -287,7 +277,14 @@ { star = 5; } if (star < GeneralDefine.munekadolockLimit) if (star == 0) { return false; } var requirePetHorseLevel = trialDungeonModel.GetDungeonRequirePetHorseLevel(config.LineID); var petHorseLevel = trialDungeonModel.GetPetHorseLevel(); if (petHorseLevel < requirePetHorseLevel) { return false; } System/Dungeon/TrialDungeonModel.cs
@@ -7,16 +7,19 @@ namespace Snxxz.UI { [XLua.LuaCallCSharp] public class TrialDungeonModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk public class TrialDungeonModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { Dictionary<int, List<TrialExchangeConfig>> trialTokenExchangeDict = new Dictionary<int, List<TrialExchangeConfig>>(); Dictionary<int, int> lineToTokenClassDict; Dictionary<int, Dictionary<int, Item[]>> trialRewardDict = new Dictionary<int, Dictionary<int, Item[]>>(); Dictionary<int, int> trialDungeonPetHorseLevels = null; public Dictionary<int, List<int>> trialClassTokens = new Dictionary<int, List<int>>(); public List<int> trialTokens = new List<int>(); PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } } DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } PetModel petModel { get { return ModelCenter.Instance.GetModel<PetModel>(); } } MountModel horseModel { get { return ModelCenter.Instance.GetModel<MountModel>(); } } public event Action SelectEquipClassEvent; @@ -128,6 +131,9 @@ { trialSweepGradeLimit = int.Parse(funcConfig.Numerical1); } funcConfig = FuncConfigConfig.Get("MunekadoLockLimit"); trialDungeonPetHorseLevels = ConfigParse.GetDic<int, int>(funcConfig.Numerical2); } public override void UnInit() @@ -390,6 +396,35 @@ return config.exchangeItemID[0]; } public int GetDungeonRequirePetHorseLevel(int lineId) { if (trialDungeonPetHorseLevels.ContainsKey(lineId)) { return trialDungeonPetHorseLevels[lineId]; } return 0; } public int GetPetHorseLevel() { var level = 0; if (petModel._DicPetBack != null) { foreach (var item in petModel._DicPetBack.Values) { level += item.PetClass; } } if (horseModel._DicHorse != null) { foreach (var item in horseModel._DicHorse.Values) { level += item.Lv; } } return level; } #region 红点 void UpdateRedpoint() { System/Dungeon/TrialDungeonSelectBehaviour.cs
@@ -12,46 +12,23 @@ public class TrialDungeonSelectBehaviour : ScrollItem { [Header("Button")] [SerializeField] Button m_SelectButton; [Header("Image")] [SerializeField] Image m_BackGround; [SerializeField] Image m_SceneBG; [SerializeField] Image m_TitleIcon; [SerializeField] Image m_BossIcon; [SerializeField] Image m_BossFrame; [SerializeField] Text m_DungeonName; [SerializeField] Text m_BossLevel; [SerializeField] Text m_LevelLimit; [SerializeField] RectTransform m_ContainerHighest; [SerializeField] Image m_HighestGrade; [SerializeField] Button m_SelectButton; [SerializeField] Image m_BackGround; [SerializeField] Image m_SceneBG; [SerializeField] Image m_TitleIcon; [SerializeField] Image m_BossIcon; [SerializeField] Image m_BossFrame; [SerializeField] Text m_DungeonName; [SerializeField] Text m_PlayerLevel; [SerializeField] Text m_PetHorseLevel; [SerializeField] Text m_ChallengeRemind; [SerializeField] SmoothMask m_SmoothMask; [SerializeField] Transform m_Other; Dungeon dungeon; DungeonRecord dungeonRecord; TrialDungeonSelectWin m_TrailDungeonSelectWin; DungeonModel m_Model; DungeonModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DungeonModel>()); } } DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } TrialDungeonModel trialDungeonModel { get { return ModelCenter.Instance.GetModel<TrialDungeonModel>(); } } public override void Display(object _data) { @@ -88,49 +65,38 @@ var _npcId = config.BossActorID[0]; var bossConfig = NPCConfig.Get(_npcId); m_BossLevel.text = Language.Get("Z1024", config.LVLimitMin); m_BossLevel.color = PlayerDatas.Instance.baseData.LV >= config.LVLimitMin ? m_PlayerLevel.text = Language.Get("Z1024", config.LVLimitMin); m_PlayerLevel.color = PlayerDatas.Instance.baseData.LV >= config.LVLimitMin ? UIHelper.GetUIColor(TextColType.Green, true) : UIHelper.GetUIColor(TextColType.Red, true); var requirePetHorseLevel = trialDungeonModel.GetDungeonRequirePetHorseLevel(_dungeon.lineId); var petHorseLevel = trialDungeonModel.GetPetHorseLevel(); m_PetHorseLevel.text = Language.Get("Z1024", requirePetHorseLevel); m_PetHorseLevel.color = petHorseLevel >= requirePetHorseLevel ? UIHelper.GetUIColor(TextColType.Green, true) : UIHelper.GetUIColor(TextColType.Red, true); DungeonRecord dungeonRecord; model.TryGetRecord(_dungeon.mapId, out dungeonRecord); int prestar = 1; int star = 0; dungeonRecord.lineGrades.TryGetValue(config.LineID, out star); if (config.LineID > 0) bool prefloorPass = _dungeon.lineId == 0; if (_dungeon.lineId > 0 && dungeonRecord != null) { dungeonRecord.lineGrades.TryGetValue(config.LineID - 1, out prestar); } else { prestar = 5; var grade = 0; dungeonRecord.lineGrades.TryGetValue(config.LineID - 1, out grade); prefloorPass = grade > 0; } m_ContainerHighest.gameObject.SetActive(star > 0); if (star > 0) if (PlayerDatas.Instance.baseData.LV < config.LVLimitMin || petHorseLevel < requirePetHorseLevel || !prefloorPass) { m_HighestGrade.SetSprite(StringUtility.Contact("Remark_", GetStar(star))); m_HighestGrade.SetNativeSize(); var sizeDelta = m_HighestGrade.rectTransform.sizeDelta; m_HighestGrade.rectTransform.sizeDelta = sizeDelta * 0.76f; } if (PlayerDatas.Instance.baseData.LV < config.LVLimitMin) { m_LevelLimit.text = Language.Get("TrialDungeonLevelLimit"); m_LevelLimit.color = UIHelper.GetUIColor(TextColType.Red, true); SetImageGray(true); } else if (prestar < GeneralDefine.munekadolockLimit) { m_LevelLimit.text = Language.Get("TrialDungeonGradeLimit", Language.Get(StringUtility.Contact("Num_CHS_", config.LineID)), UIHelper.GetGrade(GeneralDefine.munekadolockLimit)); m_LevelLimit.color = UIHelper.GetUIColor(TextColType.Red, true); m_ChallengeRemind.text = Language.Get("TrialDungeonLock"); m_ChallengeRemind.color = UIHelper.GetUIColor(TextColType.Red, true); SetImageGray(true); } else { m_LevelLimit.text = Language.Get("TrialDungeonLocked"); m_LevelLimit.color = UIHelper.GetUIColor(TextColType.Green, true); m_ChallengeRemind.text = Language.Get("TrialDungeonUnLock"); m_ChallengeRemind.color = UIHelper.GetUIColor(TextColType.NavyBrown, true); SetImageGray(false); } @@ -144,7 +110,7 @@ private void Select() { m_TrailDungeonSelectWin.currentSelectDungeon=dungeon; m_TrailDungeonSelectWin.currentSelectDungeon = dungeon; model.selectedTrialDungeon = dungeon; WindowCenter.Instance.Open<TrialDungeonEntranceWin>(); } @@ -160,26 +126,7 @@ m_BossIcon.material = _gray ? m_SmoothMask.imageMaterials[1] : m_SmoothMask.imageMaterials[0]; m_TitleIcon.material = _gray ? m_SmoothMask.imageMaterials[1] : m_SmoothMask.imageMaterials[0]; } private string GetStar(int star) { switch (star) { case 5: return "S"; case 4: return "A"; case 3: return "B"; case 2: return "C"; default: return "D"; } } } }