using Common.Utility.CombatEvent; using Core.Language; using Excel2Json; using Fort23.Core; using GameLogic.Combat.Buff; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Hero; namespace Fort23.Mono { [UIBinding(prefab = "MagicWeaponWidget")] public partial class MagicWeaponWidget : UIComponent { private CombatMagicWeaponEntity combatMagicWeaponEntity; private void Init() { } public override void AddEvent() { StaticUpdater.Instance.AddLateUpdateCallBack(Update); CombatEventManager.Instance.AddEventListener(CombatEventType.AddBuff, AddBuff); CombatEventManager.Instance.AddEventListener(CombatEventType.RemoveBuff, RemoveBuff); } public override void DelEvent() { StaticUpdater.Instance.RemoveLateUpdateCallBack(Update); CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddBuff, AddBuff); CombatEventManager.Instance.RemoveEventListener(CombatEventType.RemoveBuff, RemoveBuff); } private void AddBuff(IEventData iEventData) { BuffEventData buffEventData = iEventData as BuffEventData; if (buffEventData.target == combatMagicWeaponEntity) { if (buffEventData.BuffBasic is b_1008) { feng.SetActive(true); } } } private void RemoveBuff(IEventData iEventData) { BuffEventData buffEventData = iEventData as BuffEventData; if (buffEventData.target == combatMagicWeaponEntity) { if (buffEventData.BuffBasic is b_1008) { feng.SetActive(false); } } } public override void AddButtonEvent() { myButton.onClick.AddListener(() => { if (combatMagicWeaponEntity.IsEnemy) { // SkillConfig skillConfig = SkillBasic.SelfSkillConfig; CombatController.currActiveCombat.isUpdate = false; SkillMassgePanel.OpenSkillSelectPanel( LanguageManager.Instance.Text(combatMagicWeaponEntity.FaBaoInfo.FabaoConfig.name), LanguageManager.Instance.Text(combatMagicWeaponEntity.FaBaoInfo.FabaoConfig.model), delegate() { CombatController.currActiveCombat.isUpdate = true; }); return; } if (combatMagicWeaponEntity == null || !combatMagicWeaponEntity.IsCanUse()) { return; } b_1008 b1008 = combatMagicWeaponEntity.BuffControl.GetBuffBasicForType(); if (b1008 != null) { return; } combatMagicWeaponEntity.UseMagicWeapon(); }); } public void InitWidget(CombatMagicWeaponEntity combatMagicWeaponEntity) { feng.SetActive(false); this.combatMagicWeaponEntity = combatMagicWeaponEntity; } private void Update() { if (combatMagicWeaponEntity == null) { return; } float d = (combatMagicWeaponEntity.cd + combatMagicWeaponEntity.RootMagicWeaponControl.globalMagicWeaponCd) / (combatMagicWeaponEntity.MaxCd); cd.fillAmount = 1 - d; } } }