少年修仙传客户端代码仓库
client_linchunjie
2018-10-09 4005b414447400b597c79f6393f8331b43e05dcd
Merge branch 'master' into 3687天赋功能
10个文件已修改
2个文件已添加
326 ■■■■ 已修改文件
System/FindPrecious/ElderEliteMonsterBehaviour.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/ElderEliteMonsterBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/ElderGodAreaModel.cs 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/ElderGodAreaWin.cs 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/ElderGodBreifInfoBehaviour.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/EquipDevourWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PackModelInterface.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PlayerPackModels.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Store/StoreModel.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/SettingEffectMgr.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasurePotentialPanel.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/ElderEliteMonsterBehaviour.cs
New file
@@ -0,0 +1,33 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Saturday, August 18, 2018
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using TableConfig;
namespace Snxxz.UI
{
    public class ElderEliteMonsterBehaviour : MonoBehaviour
    {
        [SerializeField] RawImage m_RawImage;
        public void Display(int npcId)
        {
            var config = Config.Instance.Get<NPCConfig>(npcId);
            UI3DModelExhibition.Instance.ShowNPC(npcId, config.UIModeLOffset, config.UIModelRotation, m_RawImage);
        }
        public void Dispose()
        {
            UI3DModelExhibition.Instance.StopShow();
        }
    }
}
System/FindPrecious/ElderEliteMonsterBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 2aefe6a576cf98e49a1b99cc59e23efe
timeCreated: 1534563304
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/FindPrecious/ElderGodAreaModel.cs
@@ -13,9 +13,7 @@
        int m_SelectedBoss = 0;
        public int selectedBoss {
            get {
                return this.m_SelectedBoss;
            }
            get { return this.m_SelectedBoss; }
            set {
                if (this.m_SelectedBoss != value)
                {
@@ -39,6 +37,7 @@
        public event Action<int> bossSelectedEvent;
        public event Action<int> surplusTimesChangeEvent;
        List<int> sortedElites = new List<int>();
        List<int> sortedBossIds = new List<int>();
        Dictionary<int, ElderGodBossData> elderGodBosses = new Dictionary<int, ElderGodBossData>();
        Dictionary<int, int> npcAngers = new Dictionary<int, int>();
@@ -82,27 +81,61 @@
        public bool IsBossUnLocked(int _bossId)
        {
            var playerLevel = PlayerDatas.Instance.baseData.LV;
            return elderGodBosses.ContainsKey(_bossId) && playerLevel >= elderGodBosses[_bossId].unLockLevel;
            var config = Config.Instance.Get<ElderGodAreaConfig>(_bossId);
            if (config == null)
            {
                return false;
            }
            if (config.MonsterType == 1)
            {
                return true;
            }
            else
            {
                var playerLevel = PlayerDatas.Instance.baseData.LV;
                return elderGodBosses.ContainsKey(_bossId) && playerLevel >= elderGodBosses[_bossId].unLockLevel;
            }
        }
        public List<int> GetElderGodBosses()
        {
            return new List<int>(sortedBossIds);
            var bosses = new List<int>();
            bosses.Add(sortedElites[0]);
            bosses.AddRange(sortedBossIds);
            return bosses;
        }
        public int GetLatestUnLockBoss()
        public int GetRecommendNpc()
        {
            for (int i = 0; i < sortedBossIds.Count; i++)
            foreach (var item in sortedBossIds)
            {
                var bossId = sortedBossIds[i];
                if (findPreciousModel.IsBossAlive(bossId))
                if (findPreciousModel.IsBossAlive(item))
                {
                    return bossId;
                    return item;
                }
            }
            return sortedElites[0];
        }
        public int GetRecommendEliteNpc()
        {
            var npc = 0;
            var levelDelta = int.MaxValue;
            var myLevel = PlayerDatas.Instance.baseData.LV;
            foreach (var item in sortedElites)
            {
                var config = Config.Instance.Get<NPCConfig>(item);
                var delta = Mathf.Abs(myLevel - config.NPCLV);
                if (delta < levelDelta)
                {
                    npc = item;
                    levelDelta = delta;
                }
            }
            return sortedBossIds[0];
            return npc;
        }
        private void ParseConfig()
@@ -115,12 +148,25 @@
                {
                    elderGodBosses[config.NPCID] = new ElderGodBossData(config.NPCID);
                }
                else
                {
                    sortedElites.Add(config.NPCID);
                }
                npcAngers[config.NPCID] = config.MonsterAnger;
            }
            sortedElites.Sort(EliteMonsterCompare);
            sortedBossIds.AddRange(elderGodBosses.Keys);
            sortedBossIds.Sort(ElderGodBossData.LevelCompare);
        }
        private int EliteMonsterCompare(int lhs, int rhs)
        {
            var config1 = Config.Instance.Get<NPCConfig>(lhs);
            var config2 = Config.Instance.Get<NPCConfig>(rhs);
            return config1.NPCLV < config2.NPCLV ? -1 : 1;
        }
        public void OnMapInitOk()
@@ -128,7 +174,17 @@
            var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
            if (dataMapId == ELDERGODAREA_MAPID)
            {
                MapTransferUtility.Instance.MoveToNPC(selectedBoss);
                var target = 0;
                if (sortedElites.Contains(selectedBoss))
                {
                    target = GetRecommendEliteNpc();
                }
                else
                {
                    target = selectedBoss;
                }
                MapTransferUtility.Instance.MoveToNPC(target);
            }
        }
    }
System/FindPrecious/ElderGodAreaWin.cs
@@ -16,22 +16,16 @@
    public class ElderGodAreaWin : Window
    {
        [SerializeField] CyclicScroll m_Bosses;
        [SerializeField] ElderEliteMonsterBehaviour m_EliteMonsterBehaviour;
        [SerializeField] BossIntroduceBehaviour m_BossIntroduce;
        [SerializeField] Text m_Times;
        [SerializeField] Button m_Goto;
        [SerializeField] Button m_KillRecord;
        [SerializeField] ToggleButton m_Subscribe;
        ElderGodAreaModel m_Model;
        ElderGodAreaModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<ElderGodAreaModel>()); } }
        FindPreciousModel m_FindPreciousModel;
        FindPreciousModel findPreciousModel { get { return m_FindPreciousModel ?? (m_FindPreciousModel = ModelCenter.Instance.GetModel<FindPreciousModel>()); } }
        DungeonModel m_DungeonModel;
        DungeonModel dungeonModel {
            get { return m_DungeonModel ?? (m_DungeonModel = ModelCenter.Instance.GetModel<DungeonModel>()); }
        }
        ElderGodAreaModel model { get { return ModelCenter.Instance.GetModel<ElderGodAreaModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        #region Built-in
        protected override void BindController()
@@ -81,9 +75,9 @@
            var bosses = new List<int>();
            bosses.AddRange(model.GetElderGodBosses());
            model.selectedBoss = model.GetLatestUnLockBoss();
            model.selectedBoss = model.GetRecommendNpc();
            DisplayNpcBaseInfo(true);
            m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(model.selectedBoss);
            m_BossIntroduce.Display(model.selectedBoss, true);
            m_Bosses.Init(bosses);
            m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss));
        }
@@ -111,7 +105,9 @@
                        break;
                    case 2:
                        WindowCenter.Instance.Close<FindPreciousFrameWin>();
                        MapTransferUtility.Instance.MoveToNPC(model.selectedBoss);
                        var config = Config.Instance.Get<ElderGodAreaConfig>(model.selectedBoss);
                        var targetNpc = config.MonsterType == 1 ? model.GetRecommendEliteNpc() : model.selectedBoss;
                        MapTransferUtility.Instance.MoveToNPC(targetNpc);
                        break;
                    case 3:
                        SysNotifyMgr.Instance.ShowTip("DungeonNoGO");
@@ -167,10 +163,34 @@
        private void OnBossSelected(int _bossId)
        {
            m_BossIntroduce.Display(_bossId, false);
            DisplayNpcBaseInfo(false);
            m_Subscribe.isOn = findPreciousModel.IsBossSubscribed(_bossId);
        }
        private void DisplayNpcBaseInfo(bool immediately)
        {
            var npcId = model.selectedBoss;
            var config = Config.Instance.Get<ElderGodAreaConfig>(npcId);
            switch (config.MonsterType)
            {
                case 1:
                    m_KillRecord.gameObject.SetActive(false);
                    m_BossIntroduce.gameObject.SetActive(false);
                    m_EliteMonsterBehaviour.gameObject.SetActive(true);
                    m_EliteMonsterBehaviour.Display(npcId);
                    break;
                case 2:
                    m_KillRecord.gameObject.SetActive(true);
                    m_BossIntroduce.gameObject.SetActive(true);
                    m_EliteMonsterBehaviour.gameObject.SetActive(false);
                    m_BossIntroduce.Display(npcId, immediately);
                    break;
                default:
                    break;
            }
        }
        private void CheckAchievementGuide()
        {
            if (AchievementGoto.guideAchievementId != 0)
System/FindPrecious/ElderGodBreifInfoBehaviour.cs
@@ -27,7 +27,8 @@
        protected override InteractorableState interactorableState {
            get {
                var selected = selectedBossId == bossId;
                var dieOrLocked = !model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId);
                var config = Config.Instance.Get<ElderGodAreaConfig>(bossId);
                var dieOrLocked = config.MonsterType == 2 && (!model.IsBossUnLocked(bossId) || !findPreciousModel.IsBossAlive(bossId));
                if (!dieOrLocked)
                {
@@ -74,6 +75,44 @@
            UpdateBossNameLevelFont(interactorableState);
        }
        protected override void DrawBossBaseInfo(string _icon, string _name, int _level, int _realm)
        {
            var config = Config.Instance.Get<ElderGodAreaConfig>(bossId);
            m_Portrait.SetSprite(_icon);
            m_Portrait.SetNativeSize();
            switch (config.MonsterType)
            {
                case 1:
                    m_BossName.text = Language.Get("ElderGodMonster");
                    m_BossLevel.text = string.Empty;
                    m_RealmContainer.gameObject.SetActive(false);
                    break;
                case 2:
                    m_BossName.text = _name;
                    m_BossLevel.text = Language.Get("Z1024", _level);
                    if (m_Realm != null && m_RealmContainer != null)
                    {
                        if (Config.Instance.ContainKey<RealmConfig>(_realm))
                        {
                            m_RealmContainer.gameObject.SetActive(true);
                            var realmConfig = Config.Instance.Get<RealmConfig>(_realm);
                            if (realmConfig != null)
                            {
                                m_Realm.SetSprite(realmConfig.Img);
                            }
                        }
                        else
                        {
                            m_RealmContainer.gameObject.SetActive(false);
                        }
                    }
                    break;
                default:
                    break;
            }
        }
        protected override void OnSubscribe(int _bossId)
        {
            base.OnSubscribe(_bossId);
System/KnapSack/Logic/EquipDevourWin.cs
@@ -588,10 +588,10 @@
        public void SendEquipdevourQuest()
        {
            if (!modelInterface.isPackResetOk) return;
            if (!modelInterface.isPackResetOk || SettingEffectMgr.Instance.isStartDecompose) return;
            playerPack.isAutoDecompose = false;
            SettingEffectMgr.Instance.isStartDecompose = true;
            CA32C_tagCMEquipDecompose _petEat = new CA32C_tagCMEquipDecompose();
            byte[] _petIndex = new byte[realDevourlist.Count];
            for (int i = 0; i < realDevourlist.Count; i++)
System/KnapSack/Logic/PackModelInterface.cs
@@ -1213,8 +1213,9 @@
        /// <param name="_oneKeySelllist"></param>
        public void SendOneKeySellQuest(List<ItemModel> _oneKeySelllist)
        {
            if (!isPackResetOk) return;
            if (!isPackResetOk || SettingEffectMgr.Instance.isStartOneKeySell) return;
            SettingEffectMgr.Instance.isStartOneKeySell = true;
            byte[] itemIndexs = new byte[_oneKeySelllist.Count];
            int i = 0;
            for (i = 0; i < _oneKeySelllist.Count; i++)
System/KnapSack/Logic/PlayerPackModels.cs
@@ -1398,8 +1398,9 @@
        public void SendEquipdevourQuest()
        {
            List<ItemModel> itemModels = GetCanDevourModellist();
            if (itemModels == null || itemModels.Count < minDecomposeNum || !modelInterface.isPackResetOk) return;
            if (itemModels == null || itemModels.Count < minDecomposeNum || !modelInterface.isPackResetOk || SettingEffectMgr.Instance.isStartDecompose) return;
            SettingEffectMgr.Instance.isStartDecompose = true;
            isAutoDecompose = true;
            recordAutoDecomNum = itemModels.Count;
            CA32C_tagCMEquipDecompose _petEat = new CA32C_tagCMEquipDecompose();
System/Store/StoreModel.cs
@@ -1083,12 +1083,21 @@
        {
            foreach(var key in shopRedDict.Keys)
            {
                if(shopRedDict[key].state != RedPointState.None)
                StoreConfig storeConfig = Config.Instance.Get<StoreConfig>(key);
                ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(storeConfig.ItemID);
                switch (itemConfig.Type)
                {
                    string record = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "ShopId",key);
                    shopRedDict[key].state = RedPointState.None;
                    LocalSave.SetBool(record, false);
                    case 26:
                    case 41:
                        if (shopRedDict[key].state != RedPointState.None)
                        {
                            string record = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "ShopId", key);
                            shopRedDict[key].state = RedPointState.None;
                            LocalSave.SetBool(record, false);
                        }
                        break;
                }
            }
        }
System/SystemSetting/SettingEffectMgr.cs
@@ -52,6 +52,8 @@
    private float delayTime = 2f;
    private bool isGetNewItem = false;
    public bool isStartDecompose { get; set; }
    public bool isStartOneKeySell { get; set; }
    private void Awake()
    {
@@ -68,15 +70,21 @@
        DeadModel.playerDieEvent += OnPlayerDie;
        m_storeModel.RefreshBuyResultEvent += RefreshBuySuccess;
        DeadModel.CloseRebornWinEvent += PlayerRebornSuccess;
        playerPack.RefreshDecomAttrAct += DecomposeSuccess;
        DTC0721_tagMakeItemAnswer.MakeItemAnswerEvent += OneKeySellSuccess;
    }
    public void Begin()
    {
        isStartDecompose = false;
        isStartOneKeySell = false;
    }
    float secondTimer = 0;
    float halfSecondTimer = 0;
    float autoSellCoolTimer = 0;
    float autoDecomposeCoolTimer = 0;
    private void LateUpdate()
    {
        if (!(StageManager.Instance.CurrentStage is DungeonStage))
@@ -100,11 +108,32 @@
            }
        }
     
        if(isStartDecompose)
        {
            autoDecomposeCoolTimer += Time.deltaTime;
            if(autoDecomposeCoolTimer >= 5f)
            {
                autoDecomposeCoolTimer = 0;
                isStartDecompose = false;
            }
        }
        if (isStartOneKeySell)
        {
            autoSellCoolTimer += Time.deltaTime;
            if (autoSellCoolTimer >= 5f)
            {
                autoSellCoolTimer = 0;
                isStartOneKeySell = false;
            }
        }
        if (secondTimer >= 1f)
        {
            secondTimer = 0f;
            RefreshBagItem();
        }
    }
    private void PlayerRebornSuccess()
@@ -112,6 +141,18 @@
        isPlayerDie = false;
    }
    private void OneKeySellSuccess(H0721_tagMakeItemAnswer obj)
    {
        if (obj.MakeType != (byte)MakeType.Def_mitKeySell)
            return;
        isStartOneKeySell = false;
    }
    private void DecomposeSuccess()
    {
        isStartDecompose = false;
    }
    public bool GetSettingEffect()
    {
@@ -158,7 +199,7 @@
    {
        if (playerPack.GetReaminGridCount(PackType.rptItem) < 5 && modelInterface.isPackResetOk)
        {
            if (HangUpSetModel.Instance.GetBool(HangUpAutoBoolType.isAutoDevour))
            if (HangUpSetModel.Instance.GetBool(HangUpAutoBoolType.isAutoDevour) && !isStartDecompose)
            {
                if(playerPack.IsReachMinDecomposeNum())
                {
@@ -167,7 +208,9 @@
                }
            }
            if (HangUpSetModel.Instance.GetBool(HangUpAutoBoolType.isAutoSell) && modelInterface.GetSellItemList().Count > 0)
            if (HangUpSetModel.Instance.GetBool(HangUpAutoBoolType.isAutoSell)
                && !isStartOneKeySell
                && modelInterface.GetSellItemList().Count > 0)
            {
                modelInterface.SendOneKeySellQuest(modelInterface.GetSellItemList());
                return;
System/Treasure/TreasureModel.cs
@@ -874,7 +874,7 @@
                                var itemConfig = Config.Instance.Get<ItemConfig>(item.id);
                                var itemColor = itemConfig.ItemColor;
                                if (minCostItemColor == 0 || itemColor < minCostItemColor ||
                                    (itemColor == minCostItemColor && minCostItemCount < item.count))
                                    (itemColor == minCostItemColor && item.count < minCostItemCount))
                                {
                                    minCostItemColor = itemColor;
                                    minCostItemCount = item.count;
@@ -1312,6 +1312,7 @@
                    }
                }
            }
            UpdateSkillLevelUpRedpoints();
        }
        public void HumanTreasureStateChange(int _id)
System/Treasure/TreasurePotentialPanel.cs
@@ -438,12 +438,16 @@
            if (_id == 82)
            {
                m_ContainerLock.gameObject.SetActive(!FuncOpen.Instance.IsFuncOpen(82));
                if (FuncOpen.Instance.IsFuncOpen(82))
                if (FuncOpen.Instance.IsFuncOpen(82) && model.serverInited)
                {
                    potentialBriefInfos[0].potentialTween.SetStartState();
                    potentialBriefInfos[0].potentialTween.enabled = false;
                    m_TreasureAnimation.UnlockTreasurePotential(0);
                    model.SetPotentialUnlockShow(model.selectedTreasure);
                }
                if (!m_SelectTotalEffect)
                {
                    DisplayPotentialEffect();
                }
            }
        }
@@ -863,7 +867,7 @@
        private void PotentialLevelUpdate(int _potentialId, int arg2)
        {
            if (_potentialId == model.selectedPotential)
            if (_potentialId == model.selectedPotential && !m_SelectTotalEffect)
            {
                DisplayPotentialEffect();
            }
@@ -890,19 +894,20 @@
                }
            }
            var levelUpConfig = GetPotentialLevelUpConfig();
            if (!ContainsPotentialBook(model.selectedPotentialBook))
            if(_potentialId == model.selectedPotential && !m_SelectTotalEffect)
            {
                AutoSelectPotentialBook();
                //model.selectedPotentialBook = 0;
                var levelUpConfig = GetPotentialLevelUpConfig();
                if (!ContainsPotentialBook(model.selectedPotentialBook))
                {
                    AutoSelectPotentialBook();
                }
                var curconfig = Config.Instance.Get<SkillConfig>(potential.id);
                var level = potential.level;
                var isMax = level >= curconfig.SkillMaxLV;
                m_ContainerUpgrade.gameObject.SetActive(!isMax && FuncOpen.Instance.IsFuncOpen(82));
            }
            var curconfig = Config.Instance.Get<SkillConfig>(potential.id);
            var level = potential.level;
            var isMax = level >= curconfig.SkillMaxLV;
            m_ContainerUpgrade.gameObject.SetActive(!isMax && FuncOpen.Instance.IsFuncOpen(82));
        }
        private void OnPotentialLevelUp(int _treasureId, int _potential, bool _ok)