Files
UnrealEngineUWP/Engine/Source/Runtime/SkillSystem/Private/SkillSystemGlobals.cpp
Fred Kimberley afe8c6722c Add stacking rules for gameplay effects.
#ue4

 - Added stacking rules and tests.
 - Changed effects with a period to execute on the next tick instead of instantly and updated gameplay effect tests to account for these changes.
 - Changed ticking of active effects to allow effects to execute multiple times in a single tick.
 - Make sure we're cleaning up actors between gameplay effect tests

#codereview Dave.Ratti

[CL 2055992 by Fred Kimberley in Main branch]
2014-04-24 19:35:28 -04:00

62 lines
1.7 KiB
C++

// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
#include "SkillSystemModulePrivatePCH.h"
USkillSystemGlobals::USkillSystemGlobals(const class FPostConstructInitializeProperties& PCIP)
: Super(PCIP)
{
}
UCurveTable * USkillSystemGlobals::GetGlobalCurveTable()
{
if (!GlobalCurveTable && !GlobalCurveTableName.IsEmpty())
{
GlobalCurveTable = LoadObject<UCurveTable>(NULL, *GlobalCurveTableName, NULL, LOAD_None, NULL);
#if WITH_EDITOR
// Hook into notifications for object re-imports so that the gameplay tag tree can be reconstructed if the table changes
if (GIsEditor && GlobalCurveTable)
{
GEditor->OnObjectReimported().AddUObject(this, &USkillSystemGlobals::OnCurveTableReimported);
}
#endif
}
return GlobalCurveTable;
}
UDataTable * USkillSystemGlobals::GetGlobalAttributeDataTable()
{
if (!GlobalAttributeDataTable && !GlobalAttributeDataTableName.IsEmpty())
{
GlobalAttributeDataTable = LoadObject<UDataTable>(NULL, *GlobalAttributeDataTableName, NULL, LOAD_None, NULL);
#if WITH_EDITOR
// Hook into notifications for object re-imports so that the gameplay tag tree can be reconstructed if the table changes
if (GIsEditor && GlobalAttributeDataTable)
{
GEditor->OnObjectReimported().AddUObject(this, &USkillSystemGlobals::OnDataTableReimported);
}
#endif
}
return GlobalAttributeDataTable;
}
#if WITH_EDITOR
void USkillSystemGlobals::OnCurveTableReimported(UObject* InObject)
{
if (GIsEditor && !IsRunningCommandlet() && InObject && InObject == GlobalCurveTable)
{
}
}
void USkillSystemGlobals::OnDataTableReimported(UObject* InObject)
{
if (GIsEditor && !IsRunningCommandlet() && InObject && InObject == GlobalAttributeDataTable)
{
}
}
#endif