少年修仙传客户端代码仓库
client_Wu Xijin
2019-03-15 a927c1e826d698552ed0b2a32b1fb76cc77ca1a7
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
3个文件已修改
215 ■■■■ 已修改文件
System/Dungeon/TrialDungeonEntranceWin.cs 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TrialDungeonModel.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TrialDungeonSelectBehaviour.cs 121 ●●●● 补丁 | 查看 | 原始文档 | 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";
            }
        }
    }
}