/// <inheritdoc /> public bool TryGetValue(TStatType key, out RPGStatValue <TStatType> value) { if (ContainsKey(key)) { return(InternalMap.TryGetValue(key, out value)); } //Kinda crappy we have to allocate but it's likely Gen0 value = RPGStatValue <TStatType> .Empty[key]; return(true); }
/// <summary> /// Do not call this method externally ever. /// (NOT THREAD-SAFE) /// </summary> /// <param name="statDefinition"></param> public void AddStats(RPGStatValue <TStatType> statDefinition) { if (statDefinition == null) { throw new ArgumentNullException(nameof(statDefinition)); } if (this.ContainsKey(statDefinition.StatType)) { InternalMap[statDefinition.StatType] = new RPGStatValue <TStatType>(statDefinition.StatType, InternalMap[statDefinition.StatType].Value + statDefinition.Value); } else { InternalMap[statDefinition.StatType] = statDefinition; } }