FGAEffectHandle FGAActiveEffectContainer::AddActiveEffect(FGAEffectSpec& EffectIn, const FGAEffectContext& Ctx)
{
	FGAEffectHandle handle = FGAEffectHandle::GenerateHandle();
	TSharedPtr<FGAActiveDuration> tempPeriodic = MakeShareable(new FGAActiveDuration(Ctx, EffectIn, handle));
	tempPeriodic->ActivateEffect();

	FGAActiveEffect activeEffect(handle, EffectIn, Ctx.Target->GetWorld()->GetTimeSeconds(),
								EffectIn.UIData, EffectIn.EffectCue);

	activeEffect.Duration = EffectIn.EffectDuration.Duration;
	activeEffect.Period = EffectIn.EffectDuration.Period;

	RepActiveEffects.Add(activeEffect);


	ActiveEffects.Add(handle, tempPeriodic);

	return handle;
}