lzx 1 日 前
コミット
276b1fc57e

+ 16 - 0
Assets/Scripts/GameLogic/Hero/HeroInfo.cs

@@ -1,4 +1,5 @@
 using System.Collections.Generic;
+using System.Linq;
 using Common.Utility.CombatEvent;
 using Excel2Json;
 using Fort23.Core;
@@ -26,6 +27,21 @@ namespace GameLogic.Hero
         }
 
 
+        public HeroInfo CopyHero()
+        {
+            AccountFileInfo.HeroData heroDataCopy = new AccountFileInfo.HeroData();
+            heroDataCopy.heroModelId = heroData.heroModelId;
+            heroDataCopy.heroPowerId = heroData.heroPowerId ;
+            heroDataCopy.exp = heroData.exp;
+            heroDataCopy.upTime = heroData.upTime;
+            heroDataCopy.isCombat = heroData.isCombat;
+            heroDataCopy.TaoismSkillId = heroData.TaoismSkillId;
+            heroDataCopy.ImmortalBond = heroData.ImmortalBond.ToList();
+            HeroInfo heroInfo = new HeroInfo();
+            heroInfo.InitHero(heroData);
+            return heroInfo;
+        }
+
         public void InitHero(AccountFileInfo.HeroData heroData)
         {
             this.heroData = heroData;

+ 91 - 3
Assets/Scripts/GameLogic/Player/PlayerManager.cs

@@ -61,7 +61,6 @@ public class PlayerManager : Singleton<PlayerManager>
         _timerEntity = null;
         _timerEntity = TimerComponent.Instance.AddTimer(m, () =>
         {
-          
             List<AccountFileInfo.DaoYouData> daoYouDatas = AccountFileInfo.Instance.playerData.daoYouDatas.ToList();
             foreach (var keyValuePair in GuaijiDaoYou)
             {
@@ -73,7 +72,8 @@ public class PlayerManager : Singleton<PlayerManager>
                     }
                 }
             }
-            int count = Random.Range(0,GuaijiDaoYou.Count+1);
+
+            int count = Random.Range(0, daoYouDatas.Count + 1);
             List<AccountFileInfo.DaoYouData> daoyou = new List<AccountFileInfo.DaoYouData>();
             for (int i = 0; i < count; i++)
             {
@@ -92,10 +92,59 @@ public class PlayerManager : Singleton<PlayerManager>
                 EventManager.Instance.Dispatch(CustomEventType.DaoYouCounUpdate, null);
             }
 
-            RandownDaoYou(gameConstantConfig.Daoyoushowuptime + 1000);
+            RandownDaoYou(gameConstantConfig.Daoyoushowuptime * 1000);
         });
     }
 
+    public int GetDaoYouLevel(AccountFileInfo.DaoYouData daoYouData)
+    {
+        DaoyouModelConfig daoyouModelConfig = ConfigComponent.Instance.Get<DaoyouModelConfig>(daoYouData.id);
+        int level = (int)(myHero.level.Value * daoyouModelConfig.growupRate * 0.01f);
+        if (level < 1) level = 1;
+        return level;
+    }
+
+    public int GetBl(AccountFileInfo.DaoYouData daoYouData, int guajibuffId)
+    {
+        DaoyouLevelupConfig daoyouLevelupConfig = ConfigComponent.Instance.Get<DaoyouLevelupConfig>(daoYouData.favorabilityLv);
+        int level = GetDaoYouLevel(daoYouData);
+        DaoyouguajiResourcLevel daoyouguajiResourcLevel = ConfigComponent.Instance.Get<DaoyouguajiResourcLevel>(level);
+        guajibuff guajibuff = ConfigComponent.Instance.Get<guajibuff>(guajibuffId);
+
+        int levelBl = 0;
+        int bl = 0;
+        switch (guajibuff.paraValue)
+        {
+            case 1:
+                levelBl = daoyouguajiResourcLevel.para1;
+                bl = (int)(guajibuff.GivingRate * levelBl * daoyouLevelupConfig.guajiGrowup * 0.01f * 0.001f);
+                return bl;
+                break;
+            case 2:
+                levelBl = daoyouguajiResourcLevel.para2;
+                bl = (int)(guajibuff.GivingRate * levelBl * daoyouLevelupConfig.guajiGrowup * 0.01f * 0.01f);
+                return bl;
+                break;
+            case 3:
+                levelBl = daoyouguajiResourcLevel.para3;
+                bl = (int)(guajibuff.GivingRate * levelBl * daoyouLevelupConfig.guajiGrowup * 0.01f * 0.01f);
+                return bl;
+                break;
+            case 4:
+                levelBl = daoyouguajiResourcLevel.para4;
+                bl = (int)(guajibuff.GivingRate * levelBl * daoyouLevelupConfig.guajiGrowup * 0.01f * 0.01f);
+                return bl;
+                break;
+            case 5:
+                levelBl = daoyouguajiResourcLevel.para4;
+                bl = (int)(guajibuff.GivingRate * levelBl * daoyouLevelupConfig.guajiGrowup * 0.01f * 0.01f);
+                return bl;
+                break;
+            default:
+                return 0;
+        }
+    }
+
     private void SetConfigs()
     {
         gameConstantConfig = ConfigComponent.Instance.Get<GameConstantConfig>(1);
@@ -175,12 +224,51 @@ public class PlayerManager : Singleton<PlayerManager>
             AccountFileInfo.Instance.SavePlayerData();
         }
 
+
         foreach (var keyValuePair in GuaijiDaoYou)
         {
             if (TimeHelper.ClientNow() > keyValuePair.Key)
             {
                 //判断概率给奖励
                 isUpdate = true;
+
+                foreach (var daoYouData in keyValuePair.Value)
+                {
+                    DaoyouModelConfig daoyouModelConfig = ConfigComponent.Instance.Get<DaoyouModelConfig>(daoYouData.id);
+                    int bl = GetBl(daoYouData, daoyouModelConfig.guajiBuffID[0]);
+
+                    int randomValue1 = Random.Range(0, 101);
+                    LogTool.Log("道友随机怪率:" + randomValue1 + " 比例:" + bl);
+                    if (randomValue1 >= bl)
+                    {
+                        for (var i = 1; i < daoyouModelConfig.guajiBuffID.Length; i++)
+                        {
+                            int count = GetBl(daoYouData, daoyouModelConfig.guajiBuffID[i]);
+                            guajibuff guajibuff = ConfigComponent.Instance.Get<guajibuff>(daoyouModelConfig.guajiBuffID[i]);
+                            switch (guajibuff.paraValue)
+                            {
+                                case 1:
+                                    BagController.AddItem(1003, count);
+                                    LogTool.Log("道友获得道具id:" + 1003 + " 数量:" + count);
+                                    break;
+                                case 2:
+                                    BagController.AddItem(1001, count);
+                                    LogTool.Log("道友获得道具id:" + 1001 + " 数量:" + count);
+                                    break;
+                                case 3:
+                                    BagController.AddItem(1005, count);
+                                    LogTool.Log("道友获得道具id:" + 1005 + " 数量:" + count);
+                                    break;
+                                case 4:
+                                    BagController.AddItem(1006, count);
+                                    LogTool.Log("道友获得道具id:" + 1006 + " 数量:" + count);
+                                    break;
+                            }
+                        }
+                    }
+                }
+
+
                 //移除
                 removeKey.Add(keyValuePair.Key);
             }

+ 4 - 0
Assets/Scripts/GameUI/UI/DaoYouPanel/DaoYouInfoPanel.cs

@@ -227,6 +227,10 @@ namespace Fort23.Mono
                 Btn_Eveent.gameObject.SetActive(false);
             }
 
+            HeroPowerUpConfig heroPowerUpConfig = ConfigComponent.Instance.Get<HeroPowerUpConfig>(PlayerManager.Instance.GetDaoYouLevel(daoYouData));
+            Text_JingJie.text = LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[0]) +
+                                LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[1]) +
+                                LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[2]);
 
             Text_Name.text = LanguageManager.Instance.Text(_daoyouModelConfig.name);
 

+ 2 - 1
Assets/Scripts/GameUI/UI/HeroInformationPanel/HeroBreakthroughSuccessPanel.cs

@@ -40,7 +40,8 @@ namespace Fort23.Mono
 
         public async void CustomInit(int type, List<HeroAttributeData> heroAttributes)
         {
-            HeroInfo heroInfo = new HeroInfo();
+            // HeroInfo heroInfo = new HeroInfo();
+            HeroInfo heroInfo = PlayerManager.Instance.myHero.CopyHero();
             heroInfo.InitHero(PlayerManager.Instance.myHero.heroData.heroModelId, PlayerManager.Instance.myHero.heroData.heroPowerId + 1);
             Text_CurretnJIngjie.text = LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[0]) +
                                        LanguageManager.Instance.Text(PlayerManager.Instance.myHero.powerUpConfig.jingjieLanIDs[1]) +

+ 2 - 5
Assets/Scripts/GameUI/UI/MainPanel/MainPanel.cs

@@ -75,7 +75,7 @@ namespace Fort23.Mono
             }
             else
             {
-                Icon_Daoyou.gameObject.SetActive(true);
+                Icon_Daoyou.gameObject.SetActive(false);
             }
         }
 
@@ -107,10 +107,7 @@ namespace Fort23.Mono
                 DivineSenceEventPreviewPanel.OpenPanel();
             });
             Btn_Map.onClick.AddListener(() => { LevelChoosePanel.OpenPanel(); });
-            Btn_DaoYou.onClick.AddListener(() =>
-            {
-                DaoYouPanel.OpenPanel();
-            });
+            Btn_DaoYou.onClick.AddListener(() => { DaoYouPanel.OpenPanel(); });
         }
 
         public override CTask<bool> AsyncInit(object[] uiData)

BIN
Excel2Json/Excel/DaoyouConfig.xlsx