Browse Source

卡牌技能

zhaoyang 3 years ago
parent
commit
eb4fae4607

+ 1 - 1
GameClient/Assets/Game/CSShare

@@ -1 +1 @@
-Subproject commit df21de0b6dd064721ce67cabd2388b7b66759294
+Subproject commit 922a5dd4ec294df4557e5f88706b9c7cbfdeaea9

+ 53 - 7
GameClient/Assets/Game/HotUpdate/Data/SkillDataManager.cs

@@ -12,7 +12,7 @@ namespace GFGGame
         public const string SKILL_BREAK = "break";
         public const string SKILL_SHIELD = "shield";
 
-        public Dictionary<int, SkillData> skillData = new Dictionary<int, SkillData>();
+        public Dictionary<int, Dictionary<int, SkillData>> skillData = new Dictionary<int, Dictionary<int, SkillData>>();
 
         public void Clear()
         {
@@ -25,21 +25,33 @@ namespace GFGGame
             {
                 foreach (SkillData skillData in skillDatas)
                 {
-                    this.skillData.Add(skillData.id, skillData);
+                    if (!this.skillData.ContainsKey(skillData.cardId))
+                    {
+                        this.skillData[skillData.cardId] = new Dictionary<int, SkillData>();
+                    }
+                    // if(!this.skillData[skillData.cardId].ContainsKey(skillData.skillId)){
+
+                    // }this.skillData[skillData.cardId][skillData.skillId]=
+                    this.skillData[skillData.cardId][skillData.skillId] = skillData;
                 }
             }
         }
 
-        public void UpSkill(int skillId)
+        public void UpSkill(int cardId, int skillId)
         {
-            if (!skillData.ContainsKey(skillId))
+            if (!this.skillData.ContainsKey(cardId))
+            {
+                this.skillData[cardId] = new Dictionary<int, SkillData>();
+            }
+            if (!this.skillData[cardId].ContainsKey(skillId))
             {
                 SkillData skillData = new SkillData();
-                skillData.id = skillId;
+                skillData.cardId = cardId;
+                skillData.skillId = skillId;
                 skillData.lv = 1;
-                this.skillData.Add(skillId, skillData);
+                this.skillData[cardId][skillId] = skillData;
             }
-            skillData[skillId].lv += 1;
+            skillData[cardId][skillId].lv += 1;
             EventAgent.DispatchEvent(ConstMessage.CARD_UP_SKILL);
         }
 
@@ -57,5 +69,39 @@ namespace GFGGame
             }
             return npcSkillDic;
         }
+
+        public CardSkillCfg GetCardSkillCfg(int cardId, int skillId)
+        {
+            CardSkillCfg[] cardSkillCfgs = CardSkillCfgArray.Instance.GetCfgs(cardId);
+            CardSkillCfg cardSkillCfg = null;
+            for (int i = 0; i < cardSkillCfgs.Length; i++)
+            {
+                if (cardSkillCfgs[i].skillId == skillId)
+                {
+                    cardSkillCfg = cardSkillCfgs[i];
+                }
+            }
+            return cardSkillCfg;
+        }
+
+        public PassivitySkillCfg GetPassivitySkillCfg(int cardId, int skillId)
+        {
+            PassivitySkillCfg[] passivitySkillCfgs = PassivitySkillCfgArray.Instance.GetCfgs(cardId);
+            PassivitySkillCfg passivitySkillCfg = null;
+            for (int i = 0; i < passivitySkillCfgs.Length; i++)
+            {
+                if (passivitySkillCfgs[i].skillId == skillId)
+                {
+                    passivitySkillCfg = passivitySkillCfgs[i];
+                }
+            }
+            return passivitySkillCfg;
+        }
+
+        public SkillData GetSkillData(int cardId, int skillId)
+        {
+            SkillData skillData = SkillDataManager.Instance.skillData.ContainsKey(cardId) && SkillDataManager.Instance.skillData[cardId].ContainsKey(skillId) ? SkillDataManager.Instance.skillData[cardId][skillId] : null;
+            return skillData;
+        }
     }
 }

+ 2 - 1
GameClient/Assets/Game/HotUpdate/Data/VO/SkillData.cs

@@ -4,7 +4,8 @@ namespace GFGGame
 {
     public class SkillData
     {
-        public int id;
+        public int cardId;
+        public int skillId;
         public int lv;
     }
     public class BuffData

+ 3 - 3
GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs

@@ -587,16 +587,16 @@ namespace GFGGame
             item.m_txtName.text = skillScoreCfg.name;
 
             CardSkillCfg[] skillCfgs = CardSkillCfgArray.Instance.GetCfgs(skillScoreCfg.skillId);
-            SkillData skillData = SkillDataManager.Instance.skillData.ContainsKey(skillScoreCfg.skillId) ? SkillDataManager.Instance.skillData[skillScoreCfg.skillId] : null;
+            SkillData skillData = SkillDataManager.Instance.skillData.ContainsKey(skillScoreCfg.id) && SkillDataManager.Instance.skillData[skillScoreCfg.skillId].ContainsKey(skillScoreCfg.skillId) ? SkillDataManager.Instance.skillData[skillScoreCfg.id][skillScoreCfg.skillId] : null;
             int lv = skillData == null ? 1 : skillData.lv;
             item.m_txtLv.text = string.Format("{0}级", lv);
             item.m_btnUp.visible = lv == skillCfgs.Length ? false : true;
             if (item.m_btnUp.data == null)
             {
-                item.m_btnUp.data = skillScoreCfg;
+                // item.m_btnUp.data = skillScoreCfg;
                 item.m_btnUp.onClick.Add(() =>
                 {
-                    ViewManager.Show<CardSkillView>(item.m_btnUp.data);
+                    ViewManager.Show<CardSkillView>(new object[] { skillScoreCfg.id, skillScoreCfg.skillId });
                 });
             }
         }

+ 15 - 6
GameClient/Assets/Game/HotUpdate/Views/Card/CardSkillView.cs

@@ -5,8 +5,12 @@ namespace GFGGame
     public class CardSkillView : BaseWindow
     {
         private UI_CardSkillUI _ui;
-        private PassivitySkillCfg _viewData;
+        // private PassivitySkillCfg _viewData;
+        private int _cardId;
+        private int _skillId;
 
+        private CardSkillCfg cardSkillCfg;
+        private PassivitySkillCfg passivitySkillCfg;
         public override void Dispose()
         {
             base.Dispose();
@@ -30,17 +34,22 @@ namespace GFGGame
         {
             base.OnShown();
 
-            _viewData = (PassivitySkillCfg)viewData;
-            _ui.m_txtName.text = _viewData.name;
+            _cardId = (int)(viewData as object[])[0];
+            _skillId = (int)(viewData as object[])[1];
+            cardSkillCfg = SkillDataManager.Instance.GetCardSkillCfg(_cardId, _skillId);
+            passivitySkillCfg = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId);
+
+            _ui.m_txtName.text = passivitySkillCfg.name;
+            UpdateView();
         }
         private void UpdateView()
         {
             _ui.m_c1.selectedIndex = 0;
 
-            SkillData skillData = SkillDataManager.Instance.skillData.ContainsKey(_viewData.skillId) ? SkillDataManager.Instance.skillData[_viewData.skillId] : null;
+            SkillData skillData = SkillDataManager.Instance.GetSkillData(_cardId, _skillId);
             int lv = skillData == null ? 1 : skillData.lv;
             UpdateComLv(_ui.m_comCurLV, lv, lv + "级");
-            if (skillData != null && skillData.lv == PassivitySkillCfgArray.Instance.GetCfgs(_viewData.id).Length) //已满级
+            if (skillData != null && skillData.lv == PassivitySkillCfgArray.Instance.GetCfgs(_cardId).Length) //已满级
             {
                 _ui.m_c1.selectedIndex = 1;
                 return;
@@ -51,7 +60,7 @@ namespace GFGGame
         private void UpdateComLv(UI_ComSkillDiscribe com, int lv, string title)
         {
             com.m_txtLv.text = title;
-            com.m_txtDiscribe.text = CardSkillCfgArray.Instance.GetCfgs(_viewData.skillId)[lv - 1].describe;
+            com.m_txtDiscribe.text = cardSkillCfg.describe;
 
         }
         private void RenderListStarConsumeItem(int index, GObject obj)