public override async void BeginExecute() { base.BeginExecute(); var taskData = new CastProjectileTaskData(); taskData.ProjectilePrefab = (AbilityEntity as Skill1001Entity).SkillConfigObject.SkillEffectObject; var task = EntityFactory.CreateWithParent <CastProjectileAbilityTask>(this, taskData); await task.ExecuteTaskAsync(); AbilityEntity.ApplyAbilityEffect(InputCombatEntity); EndExecute(); }
public override async void BeginExecute() { base.BeginExecute(); //OwnerEntity.Publish(new PlayAnimationTask()); //EntityFactory.CreateWithParent<PlayAnimationTask>(this, "施法动作").ExecuteTaskAsync().Coroutine(); var taskData = new CastProjectileTaskData(); taskData.ProjectilePrefab = (AbilityEntity as Skill1001Entity).SkillConfigObject.SkillEffectObject; var task = EntityFactory.CreateWithParent <CastProjectileTask>(this, taskData); await task.ExecuteTaskAsync(); AbilityEntity.ApplyAbilityEffectsTo(InputCombatEntity); EndExecute(); }
private void SpawnCollider(ColliderSpawnEmitter colliderSpawnEmitter) { if (colliderSpawnEmitter.ColliderType == ColliderType.TargetFly) { var taskData = new CastProjectileTaskData(); taskData.FlyTime = 0.3f; taskData.TargetEntity = InputCombatEntity; var prefab = SkillExecutionAsset.transform.Find(colliderSpawnEmitter.ColliderName); taskData.ProjectilePrefab = prefab.gameObject; var task = Entity.CreateWithParent <CastProjectileTask>(OwnerEntity, taskData); task.OnEnterCallback = () => { AbilityEntity.ApplyAbilityEffectsTo(InputCombatEntity); }; task.ExecuteTaskAsync().Coroutine(); } if (colliderSpawnEmitter.ColliderType == ColliderType.FixedPosition) { var taskData = new CreateColliderTaskData(); taskData.Position = InputPoint; var prefab = SkillExecutionAsset.transform.Find(colliderSpawnEmitter.ColliderName); taskData.ColliderPrefab = prefab.gameObject; taskData.LifeTime = (int)(colliderSpawnEmitter.ExistTime * 1000); taskData.OnTriggerEnterCallback = (other) => { AbilityEntity.ApplyAbilityEffectsTo(other.GetComponent <Monster>().CombatEntity); }; var task = Entity.CreateWithParent <CreateColliderTask>(this, taskData); task.ExecuteTaskAsync().Coroutine(); } if (colliderSpawnEmitter.ColliderType == ColliderType.FixedDirection) { var taskData = new CreateColliderTaskData(); taskData.Position = OwnerEntity.Position; taskData.Direction = OwnerEntity.Direction; var prefab = SkillExecutionAsset.transform.Find(colliderSpawnEmitter.ColliderName); //var prefab = GetChildByName(SkillExecutionAsset.transform, colliderSpawnEmitter.ColliderName); taskData.ColliderPrefab = prefab.gameObject; taskData.LifeTime = (int)(colliderSpawnEmitter.ExistTime * 1000); taskData.OnTriggerEnterCallback = (other) => { AbilityEntity.ApplyAbilityEffectsTo(other.GetComponent <Monster>().CombatEntity); }; var task = Entity.CreateWithParent <CreateColliderTask>(this, taskData); task.ExecuteTaskAsync().Coroutine(); } }