浏览代码

升级逻辑

lcn 4 月之前
父节点
当前提交
078d1b9834

+ 110 - 0
Assets/Res/UI/HeroDetailPanel.prefab

@@ -2804,6 +2804,7 @@ GameObject:
   - component: {fileID: 6450843375123603411}
   - component: {fileID: 3309520447706144299}
   - component: {fileID: 1966616225348447026}
+  - component: {fileID: 4704716257281283673}
   m_Layer: 0
   m_HasEditorInfo: 1
   m_Name: Button_Promote
@@ -2879,6 +2880,50 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
     packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
     lasetJsonGUID: ace5466faa841bb7b9046587aae54d38
+--- !u!114 &4704716257281283673
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2292960775602257974}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 1966616225348447026}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
 --- !u!1 &2348262451627925547
 GameObject:
   m_ObjectHideFlags: 0
@@ -8059,6 +8104,7 @@ GameObject:
   - component: {fileID: 5940546225354624192}
   - component: {fileID: 6920444595140807751}
   - component: {fileID: 6339542083778085456}
+  - component: {fileID: 2876329134272659471}
   m_Layer: 0
   m_HasEditorInfo: 1
   m_Name: Button_Upgrade
@@ -8134,6 +8180,50 @@ MonoBehaviour:
     packgJsonPath: /Art/UIAssets/TextrueJson/all.txt
     packgSpritePath: Assets/Res/UIAtlas/all.spriteatlasv2
     lasetJsonGUID: ace5466faa841bb7b9046587aae54d38
+--- !u!114 &2876329134272659471
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5664409606135363520}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 6339542083778085456}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
 --- !u!1 &5664635391068350170
 GameObject:
   m_ObjectHideFlags: 0
@@ -9085,6 +9175,26 @@ MonoBehaviour:
     - gameObject: {fileID: 2983232722897563720}
     - gameObject: {fileID: 7900421520403642917}
     - gameObject: {fileID: 1181932463234986561}
+  - key: btnUpgrade
+    gameObject: {fileID: 2876329134272659471}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas:
+    - gameObject: {fileID: 9043530873077291103}
+    - gameObject: {fileID: 7786295750093721047}
+    - gameObject: {fileID: 2983232722897563720}
+    - gameObject: {fileID: 7900421520403642917}
+    - gameObject: {fileID: 1181932463234986561}
+  - key: btnPromote
+    gameObject: {fileID: 4704716257281283673}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas:
+    - gameObject: {fileID: 9043530873077291103}
+    - gameObject: {fileID: 7786295750093721047}
+    - gameObject: {fileID: 2983232722897563720}
+    - gameObject: {fileID: 7900421520403642917}
+    - gameObject: {fileID: 1181932463234986561}
   isAssetBundle: 1
 --- !u!1 &6353668298983276286
 GameObject:

文件差异内容过多而无法显示
+ 1395 - 1115
Assets/Scenes/UITest.scene


+ 8 - 0
Assets/Scripts/Core/Event/Event/CustomEventType.cs

@@ -12,5 +12,13 @@ namespace Fort23.Core
       /// 战斗道具飞行
       /// </summary>
       Combat_EquipFall,
+      /// <summary>
+      /// 英雄升级
+      /// </summary>
+      HeroUpgrade,
+      /// <summary>
+      /// 英雄升星
+      /// </summary>
+      HeroPromote,
     }
 }

+ 9 - 0
Assets/Scripts/GameLogic/Combat/CombatEvent/HeroLvUpgradeEventData.cs

@@ -0,0 +1,9 @@
+using Core.Utility.Event;
+
+namespace Common.Utility.CombatEvent
+{
+    public class HeroLvUpgradeEventData : EventDataBasic<HeroLvUpgradeEventData>
+    {
+        public int heroModelID;
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/CombatEvent/HeroLvUpgradeEventData.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 0402f8e7dca441fdace61cb0c172ffcf
+timeCreated: 1732699300

+ 3 - 1
Assets/Scripts/GameLogic/Hero/HeroInfo.cs

@@ -50,13 +50,15 @@ namespace GameLogic.Hero
             CalAttribute();
         }
 
-        public void Upgrade()
+        public HeroInfo Upgrade()
         {
             level.Value++;
             powerUpConfig = ConfigComponent.Instance.Get<HeroPowerUpConfig>(level.Value);
             CalFactor();
             CalBasicAttribute();
             PlayerManager.Instance.SaveHeroData(this);
+
+            return this;
         }
 
         public void Promote()

+ 14 - 0
Assets/Scripts/GameLogic/Player/PlayerManager.cs

@@ -34,6 +34,20 @@ public class PlayerManager : Singleton<PlayerManager>
         }
     }
 
+    public HeroInfo GetHeroInfo(int modelID)
+    {
+        for (int i = 0; i < heroListInLead.Count; i++)
+        {
+            HeroInfo info = heroListInLead[i];
+            if (info.modelID == modelID)
+            {
+                return info;
+            }
+        }
+
+        return null;
+    }
+
     private int leadHeroIdx = 0;
 
     /// <summary>

+ 27 - 1
Assets/Scripts/GameUI/UI/Hero/HeroDetailPanel.cs

@@ -1,5 +1,7 @@
+using Common.Utility.CombatEvent;
 using Core.Language;
 using Excel2Json;
+using Fort23.Core;
 using Fort23.UTool;
 using GameLogic.Hero;
 using UnityEngine.UI;
@@ -9,6 +11,9 @@ namespace Fort23.Mono
     [UIBinding(prefab = "HeroDetailPanel"  )]
     public partial class HeroDetailPanel : UIPanel
     {
+        
+        private HeroInfo heroInfo;
+        
         private void Init()
         {
             // InitHeroDetailPanel();
@@ -22,8 +27,24 @@ namespace Fort23.Mono
         public override void AddButtonEvent()
         {
             btnBack.onClick.AddListener(OnClickClose);
+            btnUpgrade.onClick.AddListener(OnClickUpgrade);
+            btnPromote.onClick.AddListener(OnClickPromote);
         }
 
+
+        private void OnClickPromote()
+        {
+            
+        }
+        
+        private void OnClickUpgrade()
+        {
+            heroInfo = heroInfo.Upgrade();
+            UpdateAttributeUI();
+            HeroLvUpgradeEventData data = new HeroLvUpgradeEventData();
+            data.heroModelID = heroInfo.modelID;
+            EventManager.Instance.Dispatch(CustomEventType.HeroUpgrade, data);
+        }
         private void OnClickClose()
         {
             UIManager.Instance.HideUIUIPanel(this);
@@ -31,6 +52,7 @@ namespace Fort23.Mono
 
         public void InitHeroDetailPanel(HeroInfo heroInfo)
         {
+            this.heroInfo = heroInfo;
             iconZhiYe.icon_name = heroInfo.iconZhiYe;
             heroName.text = LanguageManager.Instance.Text(heroInfo.modelConfig.name);
             HeroUITools.SetStarShow(stars, heroInfo.star.Value);
@@ -51,11 +73,15 @@ namespace Fort23.Mono
                     break;
             }
 
+            UpdateAttributeUI();
+        }
+
+        public void UpdateAttributeUI()
+        {
             txtHP.text = heroInfo.hp.Value.ToString();
             txtATK.text = heroInfo.attack.Value.ToString();
             txtDEF.text = heroInfo.defense.Value.ToString();
             txtSHANBI.text = heroInfo.shanbi.Value.ToString();
-
             txtLv.text = heroInfo.level.Value.ToString();
             txtExpGain.text = heroInfo.expGain.Value.ToString();
         }

+ 22 - 0
Assets/Scripts/GameUI/UI/Hero/HeroDetailPanelData.cs

@@ -208,6 +208,28 @@ namespace Fort23.Mono
 	      return _lockObj;
 	     }
 	   }
+	  private Button _btnUpgrade;
+	  public Button btnUpgrade
+	   {
+	   get{
+	      if (_btnUpgrade == null)
+	       {
+	         _btnUpgrade  = GetUIUnit<Button>("btnUpgrade"); 
+	       }
+	      return _btnUpgrade;
+	     }
+	   }
+	  private Button _btnPromote;
+	  public Button btnPromote
+	   {
+	   get{
+	      if (_btnPromote == null)
+	       {
+	         _btnPromote  = GetUIUnit<Button>("btnPromote"); 
+	       }
+	      return _btnPromote;
+	     }
+	   }
 	  #endregion 自定义数据结束 
 	 public override async CTask SetUIGameObject(GameObject gObjectPoolInterface)
 	{

+ 2 - 42
Assets/Scripts/GameUI/UI/Hero/WidgetHero.cs

@@ -63,48 +63,8 @@ namespace Fort23.Mono
             
             HeroUITools.SetStarShow(stars, heroInfo.star.Value);
             
-            // 最大星级展示个数(6星,只显示一颗星星,换颜色)
-            // int maxShowStar = 5;
-            //
-            // // 计算 当前星级 应该用什么星星的表现
-            // int group = (heroInfo.star - 1) / maxShowStar;
-            //
-            // int i = 1;
-            // foreach (GameObject star in stars)
-            // {
-            //     // Image image = star.GetComponent<Image>();
-            //
-            //     SetStarImg(group, star);
-            //     
-            //     if (heroInfo.star >= i)
-            //     {
-            //         star.SetActive(true);
-            //     }
-            //     else
-            //     {
-            //         star.SetActive(false);
-            //     }
-            //     i++;
-            // }
+            
         }
-
-        // private void SetStarImg(int group, GameObject starObj)
-        // {
-        //     Image image = starObj.GetComponent<Image>();
-        //     // 执行对应的逻辑  (0)GradeIcon_Star_s_Yellow  (1)GradeIcon_Star_s_Premium
-        //     switch (group)
-        //     {
-        //         case 0: // n = 1~5
-        //             image.name = "GradeIcon_Star_s_Yellow";
-        //             break;
-        //         case 1: // n = 6~10
-        //             image.name = "GradeIcon_Star_s_Premium";    
-        //             break;
-        //         default: // 其他情况
-        //             image.name = "GradeIcon_Star_s_Yellow";
-        //             break;
-        //     }
-        // }
-
+        
     }
 }

部分文件因为文件数量过多而无法显示