public void Enable(AttackEntity source, Vector3 targetPosition, float delayTimer, bool damageInDelay, Transform parent, bool damageFriendly)
        {
            didDamage = false;

            sourceFactionID = source.FactionEntity.FactionID;

            damage = source.GetDamageSettings(); //get the damage settings from the attack source

            this.delayTimer     = delayTimer;
            this.damageInDelay  = damageInDelay;
            this.damageFriendly = damageFriendly;

            if (this.delayTimer > 0.0f) //only if there's delay time, we'll have the attack object as child of another object
            {
                transform.SetParent(parent, true);
            }

            Vector3 lookAt = targetPosition - transform.position; //where the attack object will be looking at.

            if (lookAt != Vector3.zero)
            {
                transform.rotation = Quaternion.LookRotation(lookAt);
            }

            mvtAttributesSet    = false;                                                                                                                  //movement attributes not yet set since there might be a delay in which the attack object might move
            this.targetPosition = targetPosition;                                                                                                         //save target position.

            gameMgr.EffectPool.SpawnEffectObj(triggerEffect, transform.position, triggerEffect ? triggerEffect.transform.rotation : Quaternion.identity); //Get the spawn effect obj

            isActive = true;
        }