123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- using Common.Utility.CombatEvent;
- using Core.Language;
- using Excel2Json;
- using Fort23.Core;
- using Fort23.UTool;
- using GameLogic.Combat.Buff;
- using GameLogic.Combat.CombatTool;
- using GameLogic.Combat.Hero;
- using UnityEngine;
- namespace Fort23.Mono
- {
- [UIBinding(prefab = "MagicWeaponWidget")]
- public partial class MagicWeaponWidget : UIComponent
- {
- private CombatMagicWeaponEntity combatMagicWeaponEntity;
- private bool isChargedFinish;
- private bool isForewarn;
- private ParticleSystemPool noshifang;
- private ParticleSystemPool chargedFinish;
- // private ParticleSystemPool chargedFinish;
- private void Init()
- {
- }
- public override void AddEvent()
- {
- StaticUpdater.Instance.AddLateUpdateCallBack(Update);
- CombatEventManager.Instance.AddEventListener(CombatEventType.AddBuff, AddBuff);
- CombatEventManager.Instance.AddEventListener(CombatEventType.UseMagicWeapon, UseMagicWeapon);
- CombatEventManager.Instance.AddEventListener(CombatEventType.RemoveBuff, RemoveBuff);
- }
- public override void DelEvent()
- {
- StaticUpdater.Instance.RemoveLateUpdateCallBack(Update);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddBuff, AddBuff);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseMagicWeapon, UseMagicWeapon);
- CombatEventManager.Instance.RemoveEventListener(CombatEventType.RemoveBuff, RemoveBuff);
- }
- private void UseMagicWeapon(IEventData iEventData)
- {
- UseMagicWeaponEventData useMagicWeaponEventData = iEventData as UseMagicWeaponEventData;
- if (useMagicWeaponEventData.combatMagicWeaponEntity == combatMagicWeaponEntity)
- {
- isChargedFinish = false;
- isForewarn = false;
- GObjectPool.Instance.Recycle(chargedFinish);
- chargedFinish = null;
- }
- }
- private void AddBuff(IEventData iEventData)
- {
- BuffEventData buffEventData = iEventData as BuffEventData;
- if (buffEventData.target == combatMagicWeaponEntity)
- {
- if (buffEventData.BuffBasic is b_1008)
- {
- GObjectPool.Instance.FetchAsync<ParticleSystemPool>("fx_ui_fb_Noshifang",
- delegate(ParticleSystemPool pool)
- {
- pool.transform.SetParent(transform);
- pool.transform.localPosition = new Vector3(0, 0, 0);
- pool.transform.SetAsLastSibling();
- noshifang = pool;
- });
- // feng.SetActive(true);
- }
- }
- }
- private void RemoveBuff(IEventData iEventData)
- {
- BuffEventData buffEventData = iEventData as BuffEventData;
- if (buffEventData.target == combatMagicWeaponEntity)
- {
- if (buffEventData.BuffBasic is b_1008)
- {
- GObjectPool.Instance.Recycle(noshifang);
- noshifang = null;
- }
- }
- }
- 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<b_1008>();
- if (b1008 != null)
- {
- return;
- }
- combatMagicWeaponEntity.UseMagicWeapon();
- });
- }
- public void InitWidget(CombatMagicWeaponEntity combatMagicWeaponEntity)
- {
- noshifang = null;
- chargedFinish = null;
- // feng.SetActive(false);
- this.combatMagicWeaponEntity = combatMagicWeaponEntity;
- }
- private void Update()
- {
- if (combatMagicWeaponEntity == null)
- {
- return;
- }
- float d =
- (combatMagicWeaponEntity.cd + combatMagicWeaponEntity.RootMagicWeaponControl.globalMagicWeaponCd) /
- (combatMagicWeaponEntity.MaxCd);
- float max = 140;
- float spMax = 80;
- float a = (max - spMax) / 2 / max;
- float startA = 1 - a;
- float fa = 1 - ((startA - d) / (startA - a));
- float y = icon_hui.imageH;
- icon_hui.fillAmount = fa;
- bg_hui.fillAmount = d;
- // bg_.fillAmount = d;
- if (combatMagicWeaponEntity.cd < 1 && !isForewarn)
- {
- isForewarn = true;
- GObjectPool.Instance.FetchAsync<ParticleSystemPool>("fx_ui_fb_gw_Starshifang",
- delegate(ParticleSystemPool pool)
- {
- pool.transform.SetParent(transform);
- pool.transform.localPosition = new Vector3(0, 0, 0);
- pool.transform.SetAsLastSibling();
- });
- }
- if (!isChargedFinish && combatMagicWeaponEntity.cd <= 0)
- {
- isChargedFinish = true;
- GObjectPool.Instance.FetchAsync<ParticleSystemPool>("fx_ui_fb_shifang",
- delegate(ParticleSystemPool pool)
- {
- pool.transform.SetParent(transform);
- pool.transform.localPosition = new Vector3(0, 0, 0);
- pool.transform.SetSiblingIndex(3);
- chargedFinish = pool;
- });
- }
- }
- }
- }
|