| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
- using Fort23.UTool;
- using GameLogic.Combat.CombatTool;
- using UnityEngine;
- namespace GameLogic.Combat.Hero.State
- {
- public class CombatHeroActiveState : CombatHeroStateBasic
- {
- private Vector3 stratPos;
- private Vector3 endpos;
- private float currTime;
- private ParticleSystemPool loopFx;
- public CombatHeroActiveState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
- {
- }
- protected override void ProEnter()
- {
- if (combatHeroEntity.IsEnemy)
- {
- combatHeroEntity.GameObject.SetActive(false);
- stratPos = combatHeroEntity.dotPos+CombatController.currActiveCombat.playerHeroEntity.faceDir*100;
- endpos = combatHeroEntity.dotPos;
- currTime = 0;
- GObjectPool.Instance.FetchAsync<ParticleSystemPool>("fx_gw_dunguang_loop.prefab",
- delegate(ParticleSystemPool obj)
- {
- loopFx = obj;
- obj.own.transform.position = stratPos;
- });
- }
- else
- {
- combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
- }
- }
- protected override void ProUpdate(float t)
- {
- currTime += t*1.3f;
- if (loopFx != null)
- {
- loopFx.own.transform.position = Vector3.Lerp(stratPos, endpos, currTime);
- }
- if (currTime > 1)
- {
- combatHeroEntity.GameObject.SetActive(true);
- GObjectPool.Instance.FetchAsync<ParticleSystemPool>("fx_gw_dunguang_show.prefab",
- delegate(ParticleSystemPool obj)
- {
- obj.own.transform.position = endpos;
- });
- GObjectPool.Instance.Recycle(loopFx);
- combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
- }
- }
- }
- }
|