using System; using System.Collections.Generic; using Common.Utility.CombatEvent; using Fort23.Core; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Hero; using GameLogic.Combat.Skill; using UnityEngine; namespace Fort23.Mono { [UIBinding(prefab = "ZhuanPanPanel")] public partial class ZhuanPanPanel : UIPanel { private List _gfWidgets = new List(); public static async CTask OpenZhuanPanPanel() { await UIManager.Instance.LoadAndOpenPanel(null, UILayer.Bottom); } private void Init() { } protected override void AddEvent() { StaticUpdater.Instance.AddLateUpdateCallBack(Update); CombatEventManager.Instance.AddEventListener(CombatEventType.ExercisesAlter, ExercisesAlter); } protected override void DelEvent() { StaticUpdater.Instance.RemoveLateUpdateCallBack(Update); } public override void AddButtonEvent() { } private async void ExercisesAlter(IEventData iEventData) { CombatHeroSkillControl combatHeroSkillControl = CombatController.currActiveCombat.CombatHeroController .playerHeroEntity.CombatHeroSkillControl .This(); for (int i = 0; i < combatHeroSkillControl._skillQueue.Count; i++) { SkillBasic skillBasic = combatHeroSkillControl._skillQueue[i]; gf_widget gfWidget = await UIManager.Instance.CreateGComponentForObject(this.gf_widget, null, Gf_root, isInstance: true, poolName: "gf_widget"); gfWidget.SkillBasic = skillBasic; gfWidget.InitWidget(skillBasic); _gfWidgets.Add(gfWidget); } } public void Update() { if (CombatController.currActiveCombat==null||CombatController.currActiveCombat.CombatHeroController==null||CombatController.currActiveCombat.CombatHeroController.playerHeroEntity == null||CombatController.currActiveCombat.CombatHeroController.playerHeroEntity.CombatHeroSkillControl==null) { return; } CombatHeroSkillControl combatHeroSkillControl =CombatController.currActiveCombat.CombatHeroController.playerHeroEntity.CombatHeroSkillControl .This(); lanLiang.fillAmount=combatHeroSkillControl.addChongNeng/150f; lanLiang.color=!combatHeroSkillControl.isKuoLiQuanKai? new Color(0f, 0.84f, 1f):Color.red; for (int i = 0; i < _gfWidgets.Count; i++) { gf_widget gfWidget = _gfWidgets[i]; // gfWidget.SkillBasic.angle += 1; // float jd = gfWidget.SkillBasic.angle % 360; // if (jd > gfWidget.SkillBasic.useAngle && gfWidget.SkillBasic.angle > gfWidget.SkillBasic.lasetAngle) // { // gfWidget.SkillBasic.lasetAngle += 360; // Debug.Log("旋转一圈"); // } if (gfWidget.useCount != gfWidget.SkillBasic.useCount) { gfWidget.useCount = gfWidget.SkillBasic.useCount; switch (gfWidget.SkillBasic.SelfSkillConfig.attribute) { case 1: jin.Play("show",false); break; case 2: mu.Play("show",false); break; case 4: shui.Play("show",false); break; case 8: huo.Play("show",false); break; case 16: tu.Play("show",false); break; } } double hd = gfWidget.SkillBasic.angle * Math.PI / 180f; double a = Math.Cos(hd); double b = -Math.Sin(hd); double c = Math.Sin(hd); double d = a; double x = a * 0 + b * 60; double y = c * 0 + d * 60; gfWidget.transform.anchoredPosition = new Vector2((float)x, (float)y); } } } }