浏览代码

卡牌技能

zhaoyang 3 年之前
父节点
当前提交
1e8ef73f0e

+ 1 - 1
FGUIProject/assets/Card/ComSkillDiscribe.xml

@@ -4,6 +4,6 @@
     <image id="n10_rhha" name="n10" src="rhha9p" fileName="images/kp_sjsj_di_1.png" xy="0,0" size="836,106"/>
     <image id="n9_rhha" name="n9" src="rhha9o" fileName="images/kp_sjsj_di_2.png" xy="30,5"/>
     <text id="n11_rhha" name="txtLv" xy="38,35" pivot="0.5,0" size="81,36" fontSize="26" color="#fffaf2" align="center" text="下一级"/>
-    <text id="n12_rhha" name="txtDiscribe" xy="146,13" size="659,80" fontSize="30" color="#a99881" autoSize="none" text="我是林清轩品牌代言人杨祐宁攜手林清轩山茶花护 肤一起守護你的青春。"/>
+    <text id="n12_rhha" name="txtDiscribe" xy="146,53" pivot="0,0.5" anchor="true" size="659,80" fontSize="30" color="#a99881" autoSize="height" text="我是林清轩品牌代言人杨祐宁攜手林清轩山茶花护 肤一起守護你的青春。"/>
   </displayList>
 </component>

+ 1 - 1
GameClient/Assets/Game/CSShare

@@ -1 +1 @@
-Subproject commit 682a5cd4e9e069a58269095e00b85c3ad05e808e
+Subproject commit 0351ffa9815503b495e4758846a2286e5a3af2a1

+ 25 - 15
GameClient/Assets/Game/HotUpdate/Data/ScoreSystemData.cs

@@ -151,11 +151,18 @@ namespace GFGGame
         {
             skillScore = 0;
             showCard = false;
-            PassivitySkillCfg[] cfgs = PassivitySkillCfgArray.Instance.GetCfgs(StoryDataManager.currentCardId);
-            for (int i = 0; i < cfgs.Length; i++)
+            // PassivitySkillCfg[] cfgs = PassivitySkillCfgArray.Instance.GetCfgs(StoryDataManager.currentCardId);
+            Dictionary<int, List<PassivitySkillCfg>> cfgs = SkillDataManager.Instance.dicPassivitySkill[StoryDataManager.currentCardId];
+
+            // for (int i = 0; i < cfgs.Length; i++)
+            // {
+            foreach (int key in cfgs.Keys)
             {
-                if (cfgs.Length == 0) break;
-                PassivitySkillCfg cfg = cfgs[i];
+
+                if (cfgs.Count == 0) break;
+                SkillData skillData = SkillDataManager.Instance.GetSkillData(StoryDataManager.currentCardId, key);
+
+                PassivitySkillCfg cfg = cfgs[key][skillData.lv - 1];
                 if (partId == cfg.subTypes || cfg.subTypes == 0)
                 {
                     int isProbability = Random.Range(0, 100) < cfg.probability ? 1 : 0;
@@ -164,7 +171,7 @@ namespace GFGGame
                         //卡牌中包含主技能且此技能被触发,在评分阶段才展示卡牌效果,一张卡牌只要有一个技能需要显示,那就直接显示
                         showCard = true;
                     }
-                    Debug.Log(" i:" + i + "   cardScore:" + skillScore);
+                    // Debug.Log(" i:" + i + "   cardScore:" + skillScore);
                     skillScore += mainScore * cfg.count / 100 * isProbability;
                 }
             }
@@ -188,17 +195,18 @@ namespace GFGGame
         /// <returns></returns>
         public PassivitySkillCfg GetShowSkillCfg(int cardId)
         {
-            PassivitySkillCfg[] cfgs = PassivitySkillCfgArray.Instance.GetCfgs(cardId);
-            if (cfgs.Length == 0)
+            Dictionary<int, List<PassivitySkillCfg>> cfgs = SkillDataManager.Instance.dicPassivitySkill[cardId];
+            if (cfgs.Count == 0)
             {
                 Debug.LogWarning(cardId + " 这张卡片没有配置技能");
                 return null;
             }
-            for (int i = 0; i < cfgs.Length; i++)
+            foreach (int key in cfgs.Keys)
             {
-                if (cfgs[i].showSkill == 1)
+                if (cfgs[key][0].showSkill == 1)
                 {
-                    return cfgs[i];
+                    SkillData skillData = SkillDataManager.Instance.GetSkillData(cardId, cfgs[key][0].skillId);
+                    return cfgs[key][skillData.lv - 1];
                 }
             }
             return null;
@@ -212,17 +220,19 @@ namespace GFGGame
         /// <returns></returns>
         public PassivitySkillCfg GetMainSkillCfg(int cardId)
         {
-            PassivitySkillCfg[] cfgs = PassivitySkillCfgArray.Instance.GetCfgs(cardId);
-            if (cfgs.Length == 0)
+            Dictionary<int, List<PassivitySkillCfg>> cfgs = SkillDataManager.Instance.dicPassivitySkill[cardId];
+
+            if (cfgs.Count == 0)
             {
                 Debug.LogWarning(cardId + " 这张卡片没有配置技能");
                 return null;
             }
-            for (int i = 0; i < cfgs.Length; i++)
+            foreach (int key in cfgs.Keys)
             {
-                if (cfgs[i].mainSkill == 1)
+                if (cfgs[key][0].mainSkill == 1)
                 {
-                    return cfgs[i];
+                    SkillData skillData = SkillDataManager.Instance.GetSkillData(cardId, key);
+                    return cfgs[key][skillData.lv - 1];
                 }
             }
             return null;

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Data/SkillDataManager.cs

@@ -106,7 +106,7 @@ namespace GFGGame
 
         public PassivitySkillCfg GetPassivitySkillCfg(int cardId, int skillId, int lv)
         {
-            return dicPassivitySkill[cardId][skillId][lv];
+            return dicPassivitySkill[cardId][skillId][lv - 1];
         }
     }
 }

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

@@ -89,7 +89,7 @@ namespace GFGGame
                 _ui.m_t1.Play();
             });
 
-            EventAgent.AddEventListener(ConstMessage.CARD_UP_SKILL, UpSkill);
+            EventAgent.AddEventListener(ConstMessage.CARD_UP_SKILL, UpdateUpSkillView);
             EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, OnItemChangeListener);
 
         }
@@ -667,9 +667,12 @@ namespace GFGGame
         }
         private void OnItemChangeListener()
         {
-            CardLvlCfg cardLvCfg = CardCfgManager.GetCardLvCfgByRarityAndLv(_viewData.itemCfg.rarity, _showLv);
-            _comFosterBottom.m_listLvConsume.numItems = cardLvCfg.materiarsArr.Length;
-            if (CardDataManager.isFullStar(_viewData.id, _viewData.star, false))
+            if (!CardDataManager.isFullLv(_viewData.id, _viewData.lv, false))
+            {
+                CardLvlCfg cardLvCfg = CardCfgManager.GetCardLvCfgByRarityAndLv(_viewData.itemCfg.rarity, _showLv);
+                _comFosterBottom.m_listLvConsume.numItems = cardLvCfg.materiarsArr.Length;
+            }
+            if (!CardDataManager.isFullStar(_viewData.id, _viewData.star, false))
             {
                 CardStarCfg cardStarCfg = CardCfgManager.GetCardStarCfgByTypeAndRarityAndStar(_viewData.itemCfg.subType, _viewData.itemCfg.rarity, _viewData.star);
                 _comFosterBottom.m_listStarConsume.numItems = cardStarCfg.materiarsArr.Length;

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

@@ -9,7 +9,6 @@ namespace GFGGame
         private int _cardId;
         private int _skillId;
 
-        private CardSkillCfg cardSkillCfg;
         private PassivitySkillCfg passivitySkillCfg;
         public override void Dispose()
         {
@@ -25,6 +24,7 @@ namespace GFGGame
             this.modal = true;
             viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
 
+            _ui.m_btnUpLv.onClick.Add(OnClickBtnUp);
             _ui.m_listConsume.itemRenderer = RenderListStarConsumeItem;
             EventAgent.AddEventListener(ConstMessage.CARD_UP_SKILL, UpdateView);
 
@@ -36,10 +36,13 @@ namespace GFGGame
 
             _cardId = (int)(viewData as object[])[0];
             _skillId = (int)(viewData as object[])[1];
+
             SkillData skillData = SkillDataManager.Instance.GetSkillData(_cardId, _skillId);
             passivitySkillCfg = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, skillData.lv);
 
             _ui.m_txtName.text = passivitySkillCfg.name;
+            _ui.m_comSkill.m_loaSkill.url = ResPathUtil.GetCardSmallPath(passivitySkillCfg.res);
+
             UpdateView();
         }
         private void UpdateView()
@@ -49,53 +52,83 @@ namespace GFGGame
             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(_cardId).Length) //已满级
+            if (skillData != null && skillData.lv == SkillDataManager.Instance.dicPassivitySkill[_cardId][_skillId].Count) //已满级
             {
                 _ui.m_c1.selectedIndex = 1;
                 return;
             }
+            _ui.m_comConsume.m_txtCount.text = passivitySkillCfg.costNum.ToString();
             UpdateComLv(_ui.m_comNextLv, lv + 1, "下一级");
-            // _ui.m_listConsume.numItems=
+            _ui.m_listConsume.numItems = passivitySkillCfg.materiarsArr.Length;
+
         }
         private void UpdateComLv(UI_ComSkillDiscribe com, int lv, string title)
         {
             com.m_txtLv.text = title;
-            com.m_txtDiscribe.text = cardSkillCfg.describe;
+            com.m_txtDiscribe.text = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, lv).describe;
+
 
         }
         private void RenderListStarConsumeItem(int index, GObject obj)
         {
 
             UI_ComStarConsume listItem = UI_ComStarConsume.Proxy(obj);
-            CardStarCfg cardStarCfg = listItem.target.parent.data as CardStarCfg;
-            listItem.target.data = cardStarCfg.materiarsArr[index][0];
+            SkillData skillData = SkillDataManager.Instance.GetSkillData(_cardId, _skillId);
+            passivitySkillCfg = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, skillData.lv);
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(passivitySkillCfg.materiarsArr[index][0]);
 
-            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cardStarCfg.materiarsArr[index][0]);
+            listItem.target.data = passivitySkillCfg.materiarsArr[index][0];
             listItem.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg);
 
-            int needCount = cardStarCfg.materiarsArr[index][1];
-            int hasCount = ItemDataManager.GetItemNum(cardStarCfg.materiarsArr[index][0]);
-            listItem.m_txtNeedCount.text = StringUtil.GetColorText(needCount.ToString(), hasCount < needCount ? "#D27869" : "#FDF3D7"); ;
+            int needCount = passivitySkillCfg.materiarsArr[index][1];
+            int hasCount = ItemDataManager.GetItemNum(passivitySkillCfg.materiarsArr[index][0]);
+            listItem.m_txtNeedCount.text = StringUtil.GetColorText(needCount.ToString(), hasCount < needCount ? "#FCBCBA" : "#FFF8EA"); ;
             listItem.m_txtHasCount.text = hasCount.ToString();
             listItem.m_btnPlus.visible = false;
             if (listItem.m_btnPlus.data == null)
             {
                 listItem.m_btnPlus.onClick.Add(() => OnClickBtnPlusStarConsum(index));
             }
-            listItem.m_btnPlus.data = cardStarCfg.materiarsArr[index][0];
+            listItem.m_btnPlus.data = passivitySkillCfg.materiarsArr[index][0];
 
             if (hasCount < needCount)
             {
                 //材料不足显示加号
-                // _comFosterBottom.m_btnUpStar.data = 1;
                 listItem.m_btnPlus.visible = true;
             }
         }
         private void OnClickBtnPlusStarConsum(int index)
         {
-            // int itemId = int.Parse(UI_ComStarConsume.Proxy(_comFosterBottom.m_listStarConsume.GetChildAt(index)).target.data.ToString());
-
-            // ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { ViewName.CARD_FOSTER_VIEW, this.viewData } });
+            int itemId = int.Parse(UI_ComStarConsume.Proxy(_ui.m_listConsume.GetChildAt(index)).target.data.ToString());
+            ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { ViewName.CARD_FOSTER_VIEW, this.viewData } });
+        }
+        private void OnClickBtnUp()
+        {
+            if (ItemDataManager.GetItemNum(passivitySkillCfg.costID) < passivitySkillCfg.costNum)
+            {
+                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(passivitySkillCfg.costID);
+                PromptController.Instance.ShowFloatTextPrompt(itemCfg.name + "不足");
+                return;
+            }
+            bool isEnough = true;
+            for (int i = 0; i < passivitySkillCfg.materiarsArr.Length; i++)
+            {
+                int needCount = passivitySkillCfg.materiarsArr[i][1];
+                int hasCount = ItemDataManager.GetItemNum(passivitySkillCfg.materiarsArr[i][0]);
+                if (hasCount < needCount)
+                {
+                    isEnough = false;
+                    PromptController.Instance.ShowFloatTextPrompt("升级材料不足");
+                    break;
+                }
+            }
+            if (!isEnough) return;
+            ItemDataManager.Remove(passivitySkillCfg.costID, passivitySkillCfg.costNum);
+            for (int i = 0; i < passivitySkillCfg.materiarsArr.Length; i++)
+            {
+                ItemDataManager.Remove(passivitySkillCfg.materiarsArr[i][0], passivitySkillCfg.materiarsArr[i][1]);
+            }
+            SkillDataManager.Instance.UpSkill(_cardId, _skillId);
 
         }
         protected override void OnHide()

二进制
GameClient/Assets/ResIn/UI/Card/Card_fui.bytes