public override async void BeginExecute() { base.BeginExecute(); var taskData = new CreateEffectTaskData(); taskData.Position = GetParent <CombatEntity>().Position; taskData.Direction = InputDirection; taskData.LifeTime = 2000; taskData.EffectPrefab = GetAbilityEntity <Skill1004Entity>().SkillConfigObject.SkillEffectObject; var task = EntityFactory.CreateWithParent <CreateEffectTask>(this, taskData); task.ExecuteTaskAsync().Coroutine(); await TimerComponent.Instance.WaitAsync(1000); var taskData2 = new CreateTriggerTaskData(); taskData2.Position = GetParent <CombatEntity>().Position; taskData2.Direction = InputDirection; taskData2.LifeTime = 200; taskData2.TriggerPrefab = GetAbilityEntity <Skill1004Entity>().SkillConfigObject.AreaCollider; var task2 = EntityFactory.CreateWithParent <CreateTriggerTask>(this, taskData2); task2.OnTriggerEnterCallbackAction = (other) => { AbilityEntity.ApplyAbilityEffect(other.GetComponent <Monster>().CombatEntity); }; await task2.ExecuteTaskAsync(); EndExecute(); }
public override async void BeginExecute() { base.BeginExecute(); Hero.Instance.StopMove(); Hero.Instance.PlayThenIdleAsync(Hero.Instance.AnimationComponent.SkillAnimation).Coroutine(); Hero.Instance.SkillPlaying = true; Hero.Instance.transform.GetChild(0).eulerAngles = new Vector3(0, InputDirection, 0); var taskData = new CreateEffectTaskData(); taskData.Position = GetParent <CombatEntity>().Position; taskData.Direction = InputDirection; taskData.LifeTime = 2000; taskData.EffectPrefab = GetAbility <Skill1004Ability>().SkillConfigObject.SkillEffectObject; var task = EntityFactory.CreateWithParent <CreateEffectTask>(this, taskData); task.ExecuteTaskAsync().Coroutine(); await TimerComponent.Instance.WaitAsync(1500); var taskData2 = new CreateTriggerTaskData(); taskData2.Position = GetParent <CombatEntity>().Position; taskData2.Direction = InputDirection; taskData2.LifeTime = 200; taskData2.TriggerPrefab = GetAbility <Skill1004Ability>().SkillConfigObject.AreaCollider; taskData2.OnTriggerEnterCallback = (other) => { AbilityEntity.ApplyAbilityEffectsTo(other.GetComponent <Monster>().CombatEntity); }; var task2 = EntityFactory.CreateWithParent <CreateTriggerTask>(this, taskData2); await task2.ExecuteTaskAsync(); EndExecute(); Hero.Instance.SkillPlaying = false; }