private void ActivateAbility(AbilitySystemComponent Source, AbilitySystemComponent Target, Entity AbilityEntity, HealAbilityComponent Ability)
        {
            var abilitySystemActor = Source.GetActor();


            //(_, var gameplayEventData) = await AbilitySystem.OnGameplayEvent.WaitForEvent((gameplayTag, eventData) => gameplayTag == WaitForEventTag);
            var gameplayEventData = new GameplayAbilitySystem.Events.GameplayEventData()
            {
                Instigator = Source,
                Target     = Target
            };

            GameObject instantiatedProjectile = null;

            instantiatedProjectile = Object.Instantiate(Prefab);
            instantiatedProjectile.transform.position = abilitySystemActor.transform.position + new Vector3(0, 1.5f, 0) + abilitySystemActor.transform.forward * 1.2f;
            var attributesComponent = GetComponentDataFromEntity <AttributesComponent>(false);

            Ability.ApplyGameplayEffects(World.Active.EntityManager, Source.entity, Target.entity, attributesComponent[Target.entity], Time.time);

            // Animation complete.  Spawn and send projectile at target
            // if (instantiatedProjectile != null) {
            //     SeekTargetAndDestroy(Source, Target, instantiatedProjectile, ability, AbilityEntity);
            // }
        }
Esempio n. 2
0
        private void ActivateAbility(AbilitySystemComponent Source, AbilitySystemComponent Target, Entity AbilityEntity, FireAbilityComponent ability)
        {
            var abilitySystemActor = Source.GetActor();


            //(_, var gameplayEventData) = await AbilitySystem.OnGameplayEvent.WaitForEvent((gameplayTag, eventData) => gameplayTag == WaitForEventTag);
            var gameplayEventData = new GameplayAbilitySystem.Events.GameplayEventData()
            {
                Instigator = Source,
                Target     = Target
            };

            GameObject instantiatedProjectile = null;

            instantiatedProjectile = Object.Instantiate(Prefab);
            instantiatedProjectile.transform.position = abilitySystemActor.transform.position + new Vector3(0, 1.5f, 0) + abilitySystemActor.transform.forward * 1.2f;

            // Animation complete.  Spawn and send projectile at target
            if (instantiatedProjectile != null)
            {
                SeekTargetAndDestroy(Source, Target, instantiatedProjectile, ability, AbilityEntity);
            }
        }