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); // } }
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); } }