123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- using System.Collections.Generic;
- using Common.Utility.CombatEvent;
- using Fort23.Core;
- using GameLogic.Combat.CombatTool;
- using GameLogic.Combat.Skill;
- using GameLogic.Player;
- 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;
- }
- 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;
- }
- }
- }
|