HeroInfo.cs 4.3 KB

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