There are few methods which will ensure all stats which this GameItemAttributeList affects are marked as dirty, meaning they'll recompute their final value.
// Call this to set all stats which any GameItemAttribute on this list affects to
// automatically recompute.
public void SetDirty() => SetAffectedStatsDirty();
// SetDirty all the stats on the Owner which are affected by the gameItemObject
public void SetAffectedStatsDirty(GameItemObject gameItemObject)
// If you'd like, you can override this to add custom functionality. Generally this
// is not something I'd expect you to do.
public override void SetAffectedStatsDirty(IAmGameModuleObject gameModuleObject)
// The Stat objects in the statList provided, or if none is provided, the
// DirectlyAffectsList, will be set dirty on the Owner of this list, if the owner
// has the Stat.
public void SetAffectedStatsDirty(List<Stat> statList = null)
// Returns a List<Stat> of all stats which this list affect.
public List<Stat> DirectlyAffectsList(Stat stat = null)
Modification Levels
Each GameItemObject has a ModificationLevel, which dictates how it affects Stats.
// Get a List<ModificationLevel> of all the modification levels on each
// GameItemObject in this list
public List<ModificationLevel> ModificationLevels