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();
    }
Example #2
0
    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();
    }
Example #3
0
 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();
     }
 }