123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- using System.Collections.Generic;
- using Common.Utility.CombatEvent;
- using Fort23.Core;
- using GameLogic.Combat.CombatTool;
- using GameLogic.Combat.Skill;
- using GameLogic.Player;
- using UnityEngine;
- namespace Fort23.Mono
- {
- [UIBinding(prefab = "WuXingGongFaWidget")]
- public partial class WuXingGongFaWidget : UIComponent
- {
- public int index;
- private SkillBasic currUseSkill;
- // private List<DengDaiSkillWidget> currDengDaiSkill = new List<DengDaiSkillWidget>();
- private void Init()
- {
- }
- public override void AddEvent()
- {
- CombatEventManager.Instance.AddEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdate);
- CombatEventManager.Instance.AddEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);
- CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkill, UseSkill);
- CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkillFinish, UseSkillFinish);
- CombatEventManager.Instance.AddEventListener(CombatEventType.FillInSkillSlots, FillInSkillSlots);
- }
- public override void DelEvent()
- {
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroHpUpdate, HeroHpUpdate);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkill, UseSkill);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkillFinish, UseSkillFinish);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.FillInSkillSlots, FillInSkillSlots);
- }
- public override void AddButtonEvent()
- {
- }
- public void ShowWidget(int index)
- {
- this.index = index;
- switch (index)
- {
- case 0:
- Name.text = "金";
- myImage.color = new Color(1f, 0.98f, 0.09f);
- break;
- case 1:
- Name.text = "水";
-
- myImage.color = new Color(0.19f, 0.51f, 1f);
- break;
- case 2:
- Name.text = "木";
- myImage.color = new Color(0.17f, 1f, 0.35f);
- break;
- case 3:
- Name.text = "火";
- myImage.color = new Color(1f, 0.19f, 0.04f);
- break;
- case 4:
- Name.text = "土";
- myImage.color = new Color(1f, 0.65f, 0.17f);
- break;
- }
- }
- private void FillInSkillSlots(IEventData iEventData)
- {
- FillInSkillSlotsEventData fillInSkillSlotsEventData = iEventData as FillInSkillSlotsEventData;
- if (fillInSkillSlotsEventData.SkillBasic.CombatHeroEntity.IsEnemy)
- {
- return;
- }
- // for (int i = 0; i < currDengDaiSkill.Count; i++)
- // {
- // DengDaiSkillWidget skillWidget = currDengDaiSkill[i];
- // if (currDengDaiSkill[i].SkillBasic == fillInSkillSlotsEventData.SkillBasic)
- // {
- // UIManager.Instance.DormancyGComponent(skillWidget);
- // currDengDaiSkill.RemoveAt(i);
- // }
- // }
- }
- private async void UseSkillFinish(IEventData iEventData)
- {
- UseSkillFinishEventData combatUseSkillEventData = iEventData as UseSkillFinishEventData;
- if (combatUseSkillEventData.SkillBasic.CombatHeroEntity.IsEnemy)
- {
- return;
- }
-
- SkillBasic skillBasic = combatUseSkillEventData.SkillBasic;
- bool isOk = IsMyWuXing(skillBasic.wuXingType);
- if (!isOk)
- {
- return;
- }
-
- useSkillIcon.gameObject.SetActive(false);
- // DengDaiSkillWidget dengDaiSkillWidget =
- // await UIManager.Instance.CreateGComponentForObject<DengDaiSkillWidget>(DengDaiSkillWidget, null,
- // root: dengDaiSkill, isInstance: true);
- // dengDaiSkillWidget.ShowWidget(skillBasic);
- // currDengDaiSkill.Add(dengDaiSkillWidget);
- }
- private bool IsMyWuXing(WuXingType wuXingType)
- {
- bool isOk = false;
- switch (wuXingType)
- {
- case WuXingType.Gold:
- if (index == 0)
- {
- isOk = true;
- }
- break;
- case WuXingType.Water:
- if (index == 1)
- {
- isOk = true;
- }
- break;
- case WuXingType.Wood:
- if (index == 2)
- {
- isOk = true;
- }
- break;
- case WuXingType.Fire:
- if (index == 3)
- {
- isOk = true;
- }
- break;
- case WuXingType.Earth:
- if (index == 4)
- {
- isOk = true;
- }
- break;
- }
- return isOk;
- }
- private void UseSkill(IEventData iEventData)
- {
- CombatUseSkillEventData combatUseSkillEventData = iEventData as CombatUseSkillEventData;
- if (!combatUseSkillEventData.useSkill.CombatHeroEntity.IsEnemy)
- {
- bool isOk = IsMyWuXing(combatUseSkillEventData.useSkill.wuXingType);
- if (isOk)
- {
- currUseSkill = combatUseSkillEventData.useSkill;
- useSkillIcon.gameObject.SetActive(true);
- useSkillIcon.icon_name = combatUseSkillEventData.useSkill.SelfSkillConfig.icon;
- }
- }
- }
- private void AddUseGongFa(IEventData iEventData)
- {
- AddUseGongFaEventData addUseGongFaEventData = iEventData as AddUseGongFaEventData;
- if (!addUseGongFaEventData.SkillBasic.CombatHeroEntity.IsEnemy)
- {
- bool isOk = IsMyWuXing(addUseGongFaEventData.SkillBasic.wuXingType);
- if (isOk)
- {
- uitween.Play("show", false);
- }
- }
- }
- private void HeroHpUpdate(IEventData iEventData)
- {
- CombatHeroInfo combatHeroInfo = CombatController.currActiveCombat.CombatHeroController
- .playerHeroEntity.CurrCombatHeroInfo;
- }
- }
- }
|