HeroInfo.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. using System.Collections.Generic;
  2. using Common.Utility.CombatEvent;
  3. using Excel2Json;
  4. using Fort23.Core;
  5. using Fort23.UTool;
  6. using Utility;
  7. namespace GameLogic.Hero
  8. {
  9. public class HeroInfo : CombatHeroInfo
  10. {
  11. public AccountFileInfo.HeroData heroData;
  12. private string _iconZhiYe;
  13. private Map<HeroAttributeType, int> attributeBlValue = new Map<HeroAttributeType, int>();
  14. public HeroInfo()
  15. {
  16. }
  17. public void InitHero(AccountFileInfo.HeroData heroData)
  18. {
  19. this.heroData = heroData;
  20. InitHero(heroData.heroModelId, heroData.heroPowerId);
  21. }
  22. public void InitHero(int modelID, int powerID)
  23. {
  24. this.modelID = modelID;
  25. SetDataConfig(modelID,
  26. powerID);
  27. ComputeHeroInfo();
  28. CalBasicAttribute();
  29. }
  30. public HeroInfo Upgrade()
  31. {
  32. heroData.heroPowerId++;
  33. InitHero(heroData);
  34. PlayerManager.Instance.SaveHeroData(this);
  35. return this;
  36. }
  37. public void ComputeHeroInfo()
  38. {
  39. attributeBlValue.Clear();
  40. CalAttribute();
  41. List<FaBaoInfo> myAllFaBao = PlayerManager.Instance.FaBaoControl.myAllFaBao;
  42. foreach (var faBaoInfo in myAllFaBao)
  43. {
  44. int star = faBaoInfo.star;
  45. for (int i = 0; i < star; i++)
  46. {
  47. if (faBaoInfo.FabaoConfig.StarupShuxingIDs.Length <= i)
  48. {
  49. break;
  50. }
  51. int shuxingID = faBaoInfo.FabaoConfig.StarupShuxingIDs[i];
  52. int shuxingValue = faBaoInfo.FabaoConfig.StarupShuxingValues[i];
  53. ComputeHeroAttributeType(shuxingID, shuxingValue);
  54. }
  55. }
  56. ///功法加被动属性
  57. List<SkillInfo> allSkill = PlayerManager.Instance.GongFaControl.allSkill;
  58. foreach (var VARIABLE in attributeBlValue)
  59. {
  60. switch (VARIABLE.Key)
  61. {
  62. case HeroAttributeType.HP_BL:
  63. hp.Value += (long)(hp.Value * (VARIABLE.Value / 100f));
  64. break;
  65. case HeroAttributeType.ATT_BL:
  66. attack.Value += (long)(attack.Value * (VARIABLE.Value / 100f));
  67. break;
  68. case HeroAttributeType.DEF_BL:
  69. defense.Value += (long)(defense.Value * (VARIABLE.Value / 100f));
  70. break;
  71. case HeroAttributeType.ShengShi_BL:
  72. shenshi.Value += (long)(shenshi.Value * (VARIABLE.Value / 100f));
  73. break;
  74. }
  75. }
  76. }
  77. private void ComputeHeroAttributeType(int shuxingID, int value)
  78. {
  79. switch ((HeroAttributeType)shuxingID)
  80. {
  81. case HeroAttributeType.HP:
  82. hp.Value += value;
  83. break;
  84. case HeroAttributeType.ATT:
  85. attack.Value += value;
  86. break;
  87. case HeroAttributeType.DEF:
  88. defense.Value += value;
  89. break;
  90. case HeroAttributeType.Gold:
  91. Metal += value;
  92. break;
  93. case HeroAttributeType.Wood:
  94. Wood += value;
  95. break;
  96. case HeroAttributeType.Fire:
  97. Fire += value;
  98. break;
  99. case HeroAttributeType.Water:
  100. Water += value;
  101. break;
  102. case HeroAttributeType.Earth:
  103. Earth += value;
  104. break;
  105. case HeroAttributeType.Shields:
  106. Shield.Value += value;
  107. break;
  108. default:
  109. if (attributeBlValue.TryGetValue((HeroAttributeType)shuxingID, out var value1)
  110. )
  111. {
  112. attributeBlValue[(HeroAttributeType)shuxingID] = value1 + value;
  113. }
  114. else
  115. {
  116. attributeBlValue.Add((HeroAttributeType)shuxingID, value);
  117. }
  118. break;
  119. }
  120. }
  121. }
  122. }