少年修仙传客户端代码仓库
client_Wu Xijin
2018-08-20 29ec69943cde9711787603a29f8b6327c726de94
1889 【前端】神兽地界及界面相关
11个文件已修改
369 ■■■■ 已修改文件
System/DogzDungeon/DogzBoxBehaviour.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonModel.cs 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonWin.cs 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzEliteMonsterBehaviour.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/BossIntroduceBehaviour.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousBossRebornBehaviour.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousModel.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/WorldBossWin.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GeneralConfig/GeneralConfig.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/InGamePushContainer.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzBoxBehaviour.cs
@@ -6,11 +6,43 @@
using System.Collections;
using UnityEngine.UI;
namespace Snxxz.UI {
namespace Snxxz.UI
{
    public class DogzBoxBehaviour:MonoBehaviour {
    public class DogzBoxBehaviour : MonoBehaviour
    {
        [SerializeField] Text m_BigBoxCount;
        [SerializeField] Text m_SmallBoxCount;
        [SerializeField] RawImage m_RawImage;
        DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
        public void Display()
        {
            UI3DModelExhibition.Instance.BeginShowNPC(999, Vector3.zero, m_RawImage);
            DisplayBoxSurplusInfo();
            model.boxSurplusChangeEvent += OnBoxInfoUpdate;
        }
        public void Dispose()
        {
            model.boxSurplusChangeEvent -= OnBoxInfoUpdate;
            UI3DModelExhibition.Instance.StopShowNPC();
        }
        private void OnBoxInfoUpdate()
        {
            DisplayBoxSurplusInfo();
        }
        private void DisplayBoxSurplusInfo()
        {
            var boxInfo = model.dogzDungeonBox;
            m_BigBoxCount.text = boxInfo.bigBoxSurplus.ToString();
            m_BigBoxCount.color = UIHelper.GetUIColor(boxInfo.bigBoxSurplus > 0 ? TextColType.White : TextColType.Red);
            m_SmallBoxCount.text = boxInfo.smallBoxSurplus.ToString();
            m_SmallBoxCount.color = UIHelper.GetUIColor(boxInfo.smallBoxSurplus > 0 ? TextColType.White : TextColType.Red);
        }
    }
System/DogzDungeon/DogzDungeonModel.cs
@@ -12,7 +12,6 @@
        public const int DOGZDUNGEON_REDPOINT = 76009;
        public const int DATA_MAPID = 1010010;
        int m_SelectedBoss = 0;
        public int selectedBoss {
            get {
@@ -30,10 +29,47 @@
            }
        }
        int m_WearyValue = 0;
        public int wearyValue {
            get { return m_WearyValue; }
            set {
                if (m_WearyValue != value)
                {
                    m_WearyValue = value;
                    if (bossWearyValueChangeEvent != null)
                    {
                        bossWearyValueChangeEvent();
                    }
                }
            }
        }
        int m_BigBoxCollectCount = 0;
        public int bigBoxCollectCount {
            get { return m_BigBoxCollectCount; }
            set {
                if (m_BigBoxCollectCount != value)
                {
                    m_BigBoxCollectCount = value;
                    if (bigBoxCollectCountChangeEvent != null)
                    {
                        bigBoxCollectCountChangeEvent();
                    }
                }
            }
        }
        public event Action<int> bossSelectedEvent;
        public event Action bossWearyValueChangeEvent;
        public event Action bigBoxCollectCountChangeEvent;
        public event Action boxSurplusChangeEvent;
        public event Action eliteSurplusChangeEvent;
        List<int> sortedBossIds = new List<int>();
        Dictionary<int, DogzDungeonBossData> bosses = new Dictionary<int, DogzDungeonBossData>();
        public DogzDungeonBox dogzDungeonBox = new DogzDungeonBox();
        public DogzDungeonGuard dogzDungeonGuard = new DogzDungeonGuard();
        Redpoint redpoint = new Redpoint(DOGZDUNGEON_REDPOINT);
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
@@ -55,25 +91,56 @@
            return new List<int>(bosses.Keys);
        }
        public int GetLatestUnLockBoss()
        public int GetRecommendBoss()
        {
            var playerLevel = PlayerDatas.Instance.baseData.LV;
            for (int i = sortedBossIds.Count - 1; i >= 0; i--)
            if (bigBoxCollectCount < 2) //未疲劳
            {
                var bossId = sortedBossIds[i];
                var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(bossId);
                if (IsBossUnLocked(bossId) && findPreciousModel.IsBossAlive(bossId) && playerLevel >= npcConfig.NPCLV)
                {
                    return bossId;
                }
                return 999;//大宝箱npc id
            }
            return sortedBossIds[0];
            if (wearyValue < GeneralConfig.Instance.bossWearyValues[1])
            {
                var playerLevel = PlayerDatas.Instance.baseData.LV;
                for (int i = sortedBossIds.Count - 1; i >= 0; i--)
                {
                    var bossId = sortedBossIds[i];
                    var dogzConfig = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(bossId);
                    if (dogzConfig.MonsterType == 3 || dogzConfig.MonsterType == 4)
                    {
                        var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(bossId);
                        if (IsBossUnLocked(bossId) && findPreciousModel.IsBossAlive(bossId) && playerLevel >= npcConfig.NPCLV)
                        {
                            return bossId;
                        }
                    }
                }
                return sortedBossIds[0];
            }
            return 999;//大宝箱 npcid
        }
        public bool IsBossUnLocked(int _bossId)
        {
            return bosses.ContainsKey(_bossId) && bosses[_bossId].isUnLocked;
        }
        public void UpdateBoxSurplusInfo()
        {
            if (boxSurplusChangeEvent != null)
            {
                boxSurplusChangeEvent();
            }
        }
        public void UpdateEliteSurplusInfo()
        {
            if (eliteSurplusChangeEvent != null)
            {
                eliteSurplusChangeEvent();
            }
        }
        private void ParseConfig()
@@ -87,9 +154,29 @@
            sortedBossIds.Sort(DogzDungeonBossData.LevelCompare);
        }
    }
    public class DogzDungeonBox
    {
        public int bigBoxSurplus;
        public int smallBoxSurplus;
        public void UpdateBoxInfo(int _big, int _small)
        {
            bigBoxSurplus = _big;
            smallBoxSurplus = _small;
        }
    }
    public class DogzDungeonGuard
    {
        public int guardSurplus;
        public void UpdateGuardInfo(int _surplus)
        {
            guardSurplus = _surplus;
        }
    }
    public class DogzDungeonBossData
    {
System/DogzDungeon/DogzDungeonWin.cs
@@ -17,16 +17,19 @@
    {
        [SerializeField] CyclicScroll m_Bosses;
        [SerializeField] Transform m_ContainerMonster;
        [SerializeField] Text m_MonsterLevel;
        [SerializeField] RawImage m_MonsterPortrait;
        [SerializeField] DogzBoxBehaviour m_BoxBehaviour;
        [SerializeField] DogzEliteMonsterBehaviour m_EliteMonsterBehaviour;
        [SerializeField] BossIntroduceBehaviour m_BossIntroduce;
        [SerializeField] Button m_Goto;
        [SerializeField] Button m_KillRecord;
        [SerializeField] Transform m_SurpassLevel;
        [SerializeField] ToggleButton m_Subscribe;
        [SerializeField] TextEx m_WearyValue;
        [SerializeField] RectTransform m_ContainerBoxCollectWeary;
        [SerializeField] TextEx m_BoxCollectWearyValue;
        [SerializeField] RectTransform m_ContainerBossKillWeary;
        [SerializeField] TextEx m_BossKillWearyValue;
        DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
@@ -73,33 +76,13 @@
        private void ShowBosses()
        {
            var bosses = model.GetBosses();
            model.selectedBoss = model.GetLatestUnLockBoss();
            model.selectedBoss = model.GetRecommendBoss();
            m_Bosses.Init(bosses);
            m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
            var config = ConfigManager.Instance.GetTemplate<BossHomeConfig>(model.selectedBoss);
            var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(model.selectedBoss);
            switch (config.MonsterType)
            {
                case 1:
                    m_KillRecord.gameObject.SetActive(false);
                    m_BossIntroduce.gameObject.SetActive(false);
                    m_ContainerMonster.gameObject.SetActive(true);
                    m_BossIntroduce.Dispose();
                    UI3DModelExhibition.Instance.BeginShowNPC(model.selectedBoss, Vector3.zero, m_MonsterPortrait);
                    m_MonsterLevel.text = Language.Get("Z1024", npcConfig.NPCLV);
                    break;
                case 2:
                    m_KillRecord.gameObject.SetActive(true);
                    m_BossIntroduce.gameObject.SetActive(true);
                    m_BossIntroduce.Display(model.selectedBoss, true);
                    m_ContainerMonster.gameObject.SetActive(false);
                    m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
                    break;
            }
            var npcDropConfig = ConfigManager.Instance.GetTemplate<NPCDropItemConfig>(model.selectedBoss);
            m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV);
            DisplayItemDropTip(model.selectedBoss);
            DisplayBossBaseInfo(model.selectedBoss);
            DisplayWearyValue(model.selectedBoss);
        }
        private void ShowKillRecords()
@@ -133,38 +116,93 @@
        private void OnBossSelected(int _bossId)
        {
            var config = ConfigManager.Instance.GetTemplate<BossHomeConfig>(_bossId);
            var npcDropConfig = ConfigManager.Instance.GetTemplate<NPCDropItemConfig>(_bossId);
            m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV);
            DisplayItemDropTip(_bossId);
            DisplayBossBaseInfo(_bossId);
            DisplayWearyValue(_bossId);
        }
        private void DisplayBossBaseInfo(int _bossId)
        {
            var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(_bossId);
            switch (config.MonsterType)
            {
                case 1:
                    m_KillRecord.gameObject.SetActive(false);
                    m_BossIntroduce.gameObject.SetActive(false);
                    m_ContainerMonster.gameObject.SetActive(true);
                    m_BossIntroduce.Dispose();
                    UI3DModelExhibition.Instance.BeginShowNPC(_bossId, Vector3.zero, m_MonsterPortrait);
                    var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(_bossId);
                    m_MonsterLevel.text = Language.Get("Z1024", npcConfig.NPCLV);
                    m_BossIntroduce.gameObject.SetActive(false);
                    m_EliteMonsterBehaviour.Dispose();
                    m_EliteMonsterBehaviour.gameObject.SetActive(false);
                    m_BoxBehaviour.gameObject.SetActive(true);
                    m_BoxBehaviour.Display();
                    break;
                case 2:
                    if (m_BossIntroduce.gameObject.activeInHierarchy)
                    {
                        m_BossIntroduce.Display(_bossId, false);
                    }
                    else
                    {
                        m_BossIntroduce.gameObject.SetActive(true);
                        m_BossIntroduce.Display(_bossId, true);
                    }
                    m_KillRecord.gameObject.SetActive(false);
                    m_BossIntroduce.Dispose();
                    m_BossIntroduce.gameObject.SetActive(false);
                    m_BoxBehaviour.gameObject.SetActive(false);
                    m_BoxBehaviour.Dispose();
                    m_EliteMonsterBehaviour.gameObject.SetActive(true);
                    m_EliteMonsterBehaviour.Display();
                    break;
                case 3:
                case 4:
                    m_KillRecord.gameObject.SetActive(true);
                    m_ContainerMonster.gameObject.SetActive(false);
                    m_BoxBehaviour.Dispose();
                    m_BoxBehaviour.gameObject.SetActive(false);
                    m_EliteMonsterBehaviour.Dispose();
                    m_EliteMonsterBehaviour.gameObject.SetActive(false);
                    m_BossIntroduce.gameObject.SetActive(true);
                    m_BossIntroduce.Display(_bossId, true);
                    m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(_bossId);
                    break;
            }
        }
        private void DisplayItemDropTip(int _bossId)
        {
            var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(model.selectedBoss);
            switch (config.MonsterType)
            {
                case 1:
                case 2:
                    m_SurpassLevel.gameObject.SetActive(false);
                    break;
                case 3:
                case 4:
                    var npcDropConfig = ConfigManager.Instance.GetTemplate<NPCDropItemConfig>(_bossId);
                    m_SurpassLevel.gameObject.SetActive(npcDropConfig.MaxLV != 0 && PlayerDatas.Instance.baseData.LV > npcDropConfig.MaxLV);
                    m_SurpassLevel.gameObject.SetActive(true);
                    break;
            }
        }
        private void DisplayWearyValue(int _bossId)
        {
            var config = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(model.selectedBoss);
            switch (config.MonsterType)
            {
                case 1:
                    m_ContainerBoxCollectWeary.gameObject.SetActive(true);
                    m_ContainerBossKillWeary.gameObject.SetActive(false);
                    var bigBoxCollectCountLimit = 2;
                    m_BossKillWearyValue.text = StringUtility.Contact(model.wearyValue, "/", bigBoxCollectCountLimit);
                    m_BossKillWearyValue.colorType = model.bigBoxCollectCount >= bigBoxCollectCountLimit ? TextColType.Red : TextColType.DarkGreen;
                    break;
                case 2:
                case 3:
                case 4:
                    m_ContainerBoxCollectWeary.gameObject.SetActive(false);
                    m_ContainerBossKillWeary.gameObject.SetActive(true);
                    var wearyValueLimit = GeneralConfig.Instance.bossWearyValues[1];
                    m_BossKillWearyValue.text = StringUtility.Contact(model.wearyValue, "/", wearyValueLimit);
                    m_BossKillWearyValue.colorType = model.wearyValue >= wearyValueLimit ? TextColType.Red : TextColType.DarkGreen;
                    break;
            }
        }
        private void EnterDogzDungeon()
        {
            var error = 0;
System/DogzDungeon/DogzEliteMonsterBehaviour.cs
@@ -6,11 +6,40 @@
using System.Collections;
using UnityEngine.UI;
namespace Snxxz.UI {
namespace Snxxz.UI
{
    public class DogzEliteMonsterBehaviour:MonoBehaviour {
    public class DogzEliteMonsterBehaviour : MonoBehaviour
    {
        [SerializeField] Text m_Elite;
        [SerializeField] RawImage m_RawImage;
        DogzDungeonModel model { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
        public void Display()
        {
            UI3DModelExhibition.Instance.BeginShowNPC(999, Vector3.zero, m_RawImage);
            DisplayGuardSurplusInfo();
            model.boxSurplusChangeEvent += OnGuardInfoUpdate;
        }
        public void Dispose()
        {
            model.boxSurplusChangeEvent -= OnGuardInfoUpdate;
            UI3DModelExhibition.Instance.StopShowNPC();
        }
        private void OnGuardInfoUpdate()
        {
            DisplayGuardSurplusInfo();
        }
        private void DisplayGuardSurplusInfo()
        {
            var guard = model.dogzDungeonGuard;
            m_Elite.text = guard.guardSurplus.ToString();
            m_Elite.color = UIHelper.GetUIColor(guard.guardSurplus > 0 ? TextColType.White : TextColType.Red);
        }
    }
System/FindPrecious/BossIntroduceBehaviour.cs
@@ -123,6 +123,9 @@
                    undoubtedlyRewards = demonJarConfig.MustItemID;
                    unusualRewards = demonJarConfig.RareItemID;
                    break;
                case FindPreciousType.DogzDungeon:
                    undoubtedlyRewards = ConfigManager.Instance.GetTemplate<DogzDungeonConfig>(bossId).RareItemID;
                    break;
            }
            if (m_UndoubtedlyRewardGroup != null)
System/FindPrecious/FindPreciousBossRebornBehaviour.cs
@@ -27,6 +27,7 @@
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        DemonJarModel demonJarModel { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } }
        BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
        DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
        private void OnEnable()
        {
@@ -45,7 +46,7 @@
            if (model.currentBossNotify != 0)
            {
                var type = model.GetBossFindPreciousType(model.currentBossNotify);
                if (type == FindPreciousModel.FindPreciousType.DemonJar)
                if (type == FindPreciousType.DemonJar)
                {
                    if (demonJarModel.GetSurplusTimes() <= 0)
                    {
@@ -83,19 +84,22 @@
            switch (type)
            {
                case FindPreciousModel.FindPreciousType.DemonJar:
                case FindPreciousType.DemonJar:
                    GotoKillDemonJarBoss(bossId);
                    break;
                case FindPreciousModel.FindPreciousType.WorldBoss:
                case FindPreciousType.WorldBoss:
                    GotoKillWorldBoss(bossId);
                    break;
                case FindPreciousModel.FindPreciousType.BossHome:
                case FindPreciousType.BossHome:
                    GotoKillBossHomeBoss(bossId);
                    break;
                case FindPreciousModel.FindPreciousType.ElderGodArea:
                case FindPreciousType.ElderGodArea:
                    GotoKillElderGodAreaBoss(bossId);
                    break;
                case FindPreciousModel.FindPreciousType.PersonalBoss:
                case FindPreciousType.PersonalBoss:
                    break;
                case FindPreciousType.DogzDungeon:
                    GotoKillDogzDungeonBoss(bossId);
                    break;
            }
@@ -244,6 +248,11 @@
        }
        private void GotoKillDogzDungeonBoss(int _bossId)
        {
        }
        private void EnterBossHome(int _floor)
        {
            var error = 0;
System/FindPrecious/FindPreciousModel.cs
@@ -424,6 +424,10 @@
            {
                return FindPreciousType.PersonalBoss;
            }
            else if (ConfigManager.Instance.ContainKey<DogzDungeonConfig>(_bossId))
            {
                return FindPreciousType.DogzDungeon;
            }
            return FindPreciousType.None;
        }
@@ -647,16 +651,6 @@
                return _lhs.time > _rhs.time ? -1 : 1;
            }
        }
        public enum FindPreciousType
        {
            None,
            WorldBoss,
            BossHome,
            PersonalBoss,
            ElderGodArea,
            DemonJar,
        }
    }
System/FindPrecious/WorldBossWin.cs
@@ -43,8 +43,9 @@
        protected override void OnPreOpen()
        {
            m_WearyValue.text = StringUtility.Contact(model.wearyValue, "/", GeneralConfig.Instance.bossWearyValues[0] + model.extraBossWearyValue);
            m_WearyValue.colorType = model.wearyValue >= GeneralConfig.Instance.bossWearyValues[0]+model.extraBossWearyValue ? TextColType.Red : TextColType.DarkGreen;
            var wearyValueLimit = GeneralConfig.Instance.bossWearyValues[0] + model.extraBossWearyValue;
            m_WearyValue.text = StringUtility.Contact(model.wearyValue, "/", wearyValueLimit);
            m_WearyValue.colorType = model.wearyValue >= wearyValueLimit ? TextColType.Red : TextColType.DarkGreen;
        }
        protected override void OnAfterOpen()
System/GeneralConfig/GeneralConfig.cs
@@ -115,6 +115,7 @@
    public List<int> bossHomeNoRebornRemindMaps = null;
    public List<int> elderGodNoRebornRemindMaps = null;
    public List<int> demonJarNoRebornRemindMaps = null;
    public List<int> dogzNoRebornRemindMaps = null;
    public string[][] ModeDefaultConfig { get; private set; }
    public int[] RealmGroup { get; private set; }
@@ -396,6 +397,7 @@
            bossHomeNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 2));
            elderGodNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 3));
            demonJarNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 4));
            dogzNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 5));
            if (ModeDefaultConfig == null)
            {
System/MainInterfacePanel/InGamePushContainer.cs
@@ -180,18 +180,20 @@
                    var mapId = PlayerDatas.Instance.baseData.MapID;
                    switch (findPreciousType)
                    {
                        case FindPreciousModel.FindPreciousType.WorldBoss:
                        case FindPreciousType.WorldBoss:
                            show = !GeneralConfig.Instance.worldBossNoRebornRemindMaps.Contains(mapId);
                            break;
                        case FindPreciousModel.FindPreciousType.BossHome:
                        case FindPreciousType.BossHome:
                            show = !GeneralConfig.Instance.bossHomeNoRebornRemindMaps.Contains(mapId);
                            break;
                        case FindPreciousModel.FindPreciousType.ElderGodArea:
                        case FindPreciousType.ElderGodArea:
                            show = !GeneralConfig.Instance.elderGodNoRebornRemindMaps.Contains(mapId);
                            break;
                        case FindPreciousModel.FindPreciousType.DemonJar:
                        case FindPreciousType.DemonJar:
                            show = !GeneralConfig.Instance.demonJarNoRebornRemindMaps.Contains(mapId);
                            break;
                        case FindPreciousType.DogzDungeon:
                            break;
                    }
                    if (show)
Utility/EnumHelper.cs
@@ -1114,11 +1114,13 @@
public enum FindPreciousType
{
    None,
    WorldBoss,
    BossHome,
    PersonalBoss,
    ElderGodArea,
    DemonJar,
    DogzDungeon,
}
public enum GotServerRewardType