123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- using System;
- using System.Collections.Generic;
- using Common.Utility.CombatEvent;
- using Fort23.Core;
- using GameLogic.Combat.CombatTool;
- using GameLogic.Combat.Hero;
- using GameLogic.Combat.Hero.Turntable;
- using GameLogic.Combat.Skill;
- using UnityEngine;
- namespace Fort23.Mono
- {
- [UIBinding(prefab = "ZhuanPanPanel")]
- public partial class ZhuanPanPanel : UIPanel
- {
- private List<gf_widget> _gfWidgets = new List<gf_widget>();
- public static async CTask OpenZhuanPanPanel()
- {
- await UIManager.Instance.LoadAndOpenPanel<ZhuanPanPanel>(null, UILayer.Bottom);
- }
- private void Init()
- {
- }
- protected override void AddEvent()
- {
- StaticUpdater.Instance.AddLateUpdateCallBack(Update);
- CombatEventManager.Instance.AddEventListener(CombatEventType.ExercisesAlter, ExercisesAlter);
- CombatEventManager.Instance.AddEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);
- CombatEventManager.Instance.AddEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdate);
- }
- protected override void DelEvent()
- {
- StaticUpdater.Instance.RemoveLateUpdateCallBack(Update);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.ExercisesAlter, ExercisesAlter);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdate);
- }
- public override void AddButtonEvent()
- {
- lanLiang_button.onClick.AddListener(() =>
- {
- SkillSelectPanel.OpenSkillSelectPanel();
- });
- }
- private void AddUseGongFa(IEventData iEventData)
- {
- CombatHeroInfo combatHeroInfo = CombatController.currActiveCombat.CombatHeroController
- .playerHeroEntity.CurrCombatHeroInfo;
- jin_shangshi.text = "伤势:"+combatHeroInfo.Metal_Injury;
- mu_shangshi.text = "伤势:"+combatHeroInfo.Wood_Injury;
- shui_shangshi.text = "伤势:"+combatHeroInfo.Water_Injury;
- huo_shangshi.text = "伤势:"+combatHeroInfo.Fire_Injury;
- tu_shangshi.text = "伤势:"+combatHeroInfo.Earth_Injury;
- }
- private void HeroHpUpdate(IEventData iEventData)
- {
- CombatHeroInfo combatHeroInfo = CombatController.currActiveCombat.CombatHeroController
- .playerHeroEntity.CurrCombatHeroInfo;
- jin_shangshi.text = "伤势:"+combatHeroInfo.Metal_Injury;
- mu_shangshi.text = "伤势:"+combatHeroInfo.Wood_Injury;
- shui_shangshi.text = "伤势:"+combatHeroInfo.Water_Injury;
- huo_shangshi.text = "伤势:"+combatHeroInfo.Fire_Injury;
- tu_shangshi.text = "伤势:"+combatHeroInfo.Earth_Injury;
- }
- private async void ExercisesAlter(IEventData iEventData)
- {
- _gfWidgets.Clear();
- UIManager.Instance.DormancyAllGComponent<gf_widget>();
- CombatHeroSkillControl combatHeroSkillControl = CombatController.currActiveCombat.CombatHeroController
- .playerHeroEntity.CombatHeroSkillControl
- .This<CombatHeroSkillControl>();
- for (int i = 0; i < combatHeroSkillControl.SkillTurntable.allSkillSlots.Count; i++)
- {
- SkillSlots skillBasic = combatHeroSkillControl.SkillTurntable.allSkillSlots[i];
- if (skillBasic == null)
- {
- continue;
- }
- gf_widget gfWidget = await UIManager.Instance.CreateGComponentForObject<gf_widget>(this.gf_widget, null,
- Gf_root, isInstance: true);
- 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<CombatHeroSkillControl>();
- // lanLiang.fillAmount = combatHeroSkillControl.addChongNeng / 150f;
- // lanLiang.color = !combatHeroSkillControl.isKuoLiQuanKai
- // ? new Color(1f, 0.96f, 0f)
- // : new Color(0.96f, 0f, 1f);
- 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.useTriggerType)
- {
- case 0:
- jin.Play("show", false);
- break;
- case 1:
- mu.Play("show", false);
- break;
- case 2:
- shui.Play("show", false);
- break;
- case 3:
- huo.Play("show", false);
- break;
- case 4:
- 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);
- }
- }
- }
- }
|