ZhuanPanPanel.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. using System;
  2. using System.Collections.Generic;
  3. using Common.Utility.CombatEvent;
  4. using Fort23.Core;
  5. using GameLogic.Combat.CombatTool;
  6. using GameLogic.Combat.Hero;
  7. using GameLogic.Combat.Skill;
  8. using UnityEngine;
  9. namespace Fort23.Mono
  10. {
  11. [UIBinding(prefab = "ZhuanPanPanel")]
  12. public partial class ZhuanPanPanel : UIPanel
  13. {
  14. private List<gf_widget> _gfWidgets = new List<gf_widget>();
  15. public static async CTask OpenZhuanPanPanel()
  16. {
  17. await UIManager.Instance.LoadAndOpenPanel<ZhuanPanPanel>(null, UILayer.Bottom);
  18. }
  19. private void Init()
  20. {
  21. }
  22. protected override void AddEvent()
  23. {
  24. StaticUpdater.Instance.AddLateUpdateCallBack(Update);
  25. CombatEventManager.Instance.AddEventListener(CombatEventType.ExercisesAlter, ExercisesAlter);
  26. }
  27. protected override void DelEvent()
  28. {
  29. StaticUpdater.Instance.RemoveLateUpdateCallBack(Update);
  30. }
  31. public override void AddButtonEvent()
  32. {
  33. }
  34. private async void ExercisesAlter(IEventData iEventData)
  35. {
  36. CombatHeroSkillControl combatHeroSkillControl = CombatController.currActiveCombat.CombatHeroController
  37. .playerHeroEntity.CombatHeroSkillControl
  38. .This<CombatHeroSkillControl>();
  39. for (int i = 0; i < combatHeroSkillControl._skillQueue.Count; i++)
  40. {
  41. SkillBasic skillBasic = combatHeroSkillControl._skillQueue[i];
  42. gf_widget gfWidget = await UIManager.Instance.CreateGComponentForObject<gf_widget>(this.gf_widget, null,
  43. Gf_root, isInstance: true, poolName: "gf_widget");
  44. gfWidget.SkillBasic = skillBasic;
  45. gfWidget.InitWidget(skillBasic);
  46. _gfWidgets.Add(gfWidget);
  47. }
  48. }
  49. public void Update()
  50. {
  51. if (CombatController.currActiveCombat==null||CombatController.currActiveCombat.CombatHeroController==null||CombatController.currActiveCombat.CombatHeroController.playerHeroEntity == null||CombatController.currActiveCombat.CombatHeroController.playerHeroEntity.CombatHeroSkillControl==null)
  52. {
  53. return;
  54. }
  55. CombatHeroSkillControl combatHeroSkillControl =CombatController.currActiveCombat.CombatHeroController.playerHeroEntity.CombatHeroSkillControl
  56. .This<CombatHeroSkillControl>();
  57. lanLiang.fillAmount=combatHeroSkillControl.addChongNeng/150f;
  58. lanLiang.color=!combatHeroSkillControl.isKuoLiQuanKai? new Color(0f, 0.84f, 1f):Color.red;
  59. for (int i = 0; i < _gfWidgets.Count; i++)
  60. {
  61. gf_widget gfWidget = _gfWidgets[i];
  62. // gfWidget.SkillBasic.angle += 1;
  63. // float jd = gfWidget.SkillBasic.angle % 360;
  64. // if (jd > gfWidget.SkillBasic.useAngle && gfWidget.SkillBasic.angle > gfWidget.SkillBasic.lasetAngle)
  65. // {
  66. // gfWidget.SkillBasic.lasetAngle += 360;
  67. // Debug.Log("旋转一圈");
  68. // }
  69. if (gfWidget.useCount != gfWidget.SkillBasic.useCount)
  70. {
  71. gfWidget.useCount = gfWidget.SkillBasic.useCount;
  72. switch (gfWidget.SkillBasic.SelfSkillConfig.attribute)
  73. {
  74. case 1:
  75. jin.Play("show",false);
  76. break;
  77. case 2:
  78. mu.Play("show",false);
  79. break;
  80. case 4:
  81. shui.Play("show",false);
  82. break;
  83. case 8:
  84. huo.Play("show",false);
  85. break;
  86. case 16:
  87. tu.Play("show",false);
  88. break;
  89. }
  90. }
  91. double hd = gfWidget.SkillBasic.angle * Math.PI / 180f;
  92. double a = Math.Cos(hd);
  93. double b = -Math.Sin(hd);
  94. double c = Math.Sin(hd);
  95. double d = a;
  96. double x = a * 0 + b * 60;
  97. double y = c * 0 + d * 60;
  98. gfWidget.transform.anchoredPosition = new Vector2((float)x, (float)y);
  99. }
  100. }
  101. }
  102. }