HeroDetailPanel.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. using Common.Utility.CombatEvent;
  2. using Core.Language;
  3. using Excel2Json;
  4. using Fort23.Core;
  5. using Fort23.UTool;
  6. using GameLogic.Hero;
  7. using UnityEngine.UI;
  8. namespace Fort23.Mono
  9. {
  10. [UIBinding(prefab = "HeroDetailPanel" )]
  11. public partial class HeroDetailPanel : UIPanel
  12. {
  13. private HeroInfo heroInfo;
  14. private void Init()
  15. {
  16. // InitHeroDetailPanel();
  17. }
  18. protected override void AddEvent()
  19. {
  20. }
  21. protected override void DelEvent()
  22. {
  23. }
  24. public override void AddButtonEvent()
  25. {
  26. btnBack.onClick.AddListener(OnClickClose);
  27. btnUpgrade.onClick.AddListener(OnClickUpgrade);
  28. btnPromote.onClick.AddListener(OnClickPromote);
  29. }
  30. private void OnClickPromote()
  31. {
  32. if (PlayerManager.Instance.gameConstantConfig.maxStar <= heroInfo.star.Value)
  33. {
  34. LogTool.Log("已到达最高星级:" + PlayerManager.Instance.gameConstantConfig.maxStar);
  35. return;
  36. }
  37. heroInfo.Promote();
  38. UpdateAttributeUI();
  39. HeroUITools.SetStarShow(stars, heroInfo.star.Value);
  40. SendEvent(HeroUpType.Promote);
  41. }
  42. private void OnClickUpgrade()
  43. {
  44. if (PlayerManager.Instance.gameConstantConfig.maxLv <= heroInfo.level.Value)
  45. {
  46. LogTool.Log("已到达最高等级:" + PlayerManager.Instance.gameConstantConfig.maxLv);
  47. return;
  48. }
  49. heroInfo.Upgrade();
  50. UpdateAttributeUI();
  51. SendEvent(HeroUpType.Level);
  52. }
  53. /// <summary>
  54. /// 发送英雄提升的事件
  55. /// </summary>
  56. /// <param name="upType">提升类型:升级、升星等.</param>
  57. private void SendEvent(HeroUpType upType)
  58. {
  59. HeroPowerUpEventData data = new HeroPowerUpEventData();
  60. data.heroModelID = heroInfo.modelID;
  61. data.upType = upType;
  62. PlayerManager.Instance.lastHeroInfo = heroInfo;
  63. EventManager.Instance.Dispatch(CustomEventType.HeroPowerUp, data);
  64. if (upType == HeroUpType.Level)
  65. {
  66. EventManager.Instance.Dispatch(CustomEventType.HeroLvUp, data);
  67. }
  68. else if (upType == HeroUpType.Promote)
  69. {
  70. EventManager.Instance.Dispatch(CustomEventType.HeroPromote, data);
  71. }
  72. }
  73. private void OnClickClose()
  74. {
  75. UIManager.Instance.HideUIUIPanel(this);
  76. }
  77. public void InitHeroDetailPanel(HeroInfo heroInfo)
  78. {
  79. this.heroInfo = heroInfo;
  80. iconZhiYe.icon_name = heroInfo.iconZhiYe;
  81. heroName.text = LanguageManager.Instance.Text(heroInfo.modelConfig.name);
  82. HeroUITools.SetStarShow(stars, heroInfo.star.Value);
  83. switch (heroInfo.modelConfig.rarity)
  84. {
  85. case 1:
  86. heroRarity.text = LanguageManager.Instance.Text(32);
  87. break;
  88. case 2:
  89. heroRarity.text = LanguageManager.Instance.Text(31);
  90. break;
  91. case 3:
  92. heroRarity.text = LanguageManager.Instance.Text(30);
  93. break;
  94. default:
  95. LogTool.Error("找不到hero的稀有度:" + heroInfo.modelConfig.ID);
  96. break;
  97. }
  98. UpdateAttributeUI();
  99. }
  100. public void UpdateAttributeUI()
  101. {
  102. txtHP.text = heroInfo.hp.Value.ToString();
  103. txtATK.text = heroInfo.attack.Value.ToString();
  104. txtDEF.text = heroInfo.defense.Value.ToString();
  105. txtSHANBI.text = heroInfo.shanbi.Value.ToString();
  106. txtLv.text = heroInfo.level.Value.ToString();
  107. txtExpGain.text = heroInfo.expGain.Value.ToString();
  108. }
  109. }
  110. }