public ConcurrentDictionary <short, ContributionStage> GetContributionStageDictionary(uint targetCharacterId) { List <PlayerContribution> contributionList; ContributionDictionary.TryGetValue(targetCharacterId, out contributionList); return(GetContributionStageDictionary(contributionList, ContributionFactors)); }
/// <summary> /// Get the list of playercontributions /// </summary> /// <param name="targetCharacterId"></param> /// <returns></returns> public List <PlayerContribution> GetContribution(uint targetCharacterId) { List <PlayerContribution> contributionList; ContributionDictionary.TryGetValue(targetCharacterId, out contributionList); return(contributionList); }
/// <summary> /// Get the total contribution value for the character. /// </summary> /// <param name="targetCharacterId"></param> /// <returns></returns> public short GetContributionValue(uint targetCharacterId) { List <PlayerContribution> contributionList; ContributionDictionary.TryGetValue(targetCharacterId, out contributionList); short contributionValue = 0; if (contributionList == null) { return(contributionValue); } if (ContributionFactors == null) { return(contributionValue); } var stagedContribution = GetContributionStageDictionary(contributionList, ContributionFactors); foreach (var contributionStage in stagedContribution) { contributionValue += contributionStage.Value.ContributionStageSum; } // double check something is not right. if (contributionValue > short.MaxValue) { RewardLogger.Error( $"ContributionManagerInstance exceeds max (over short.maxvalue) for Character {targetCharacterId}. {contributionList.Count} contribution records."); contributionValue = short.MaxValue; } if (contributionValue > MAXIMUM_CONTRIBUTION) { RewardLogger.Error( $"ContributionManagerInstance exceeds max ({MAXIMUM_CONTRIBUTION}) for Character {targetCharacterId}. {contributionList.Count} contribution records."); contributionValue = MAXIMUM_CONTRIBUTION; } RewardLogger.Trace($"Returning contributionValue of {contributionValue} for {targetCharacterId} "); return(contributionValue); }