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