Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - (NSArray *)performanceStatsForStat:(WOTStats *)stats deltaStats:(WOTStatsSlice *)deltaStatsSlice {
- if (!stats) {
- return nil;
- }
- NSArray *baseRows = [self requiredBasePerformanceRows];
- if (stats.battles == 0) {
- for (WGProfileStatsRow *row in baseRows) {
- row.value = [NSAttributedString dashAttributedString];
- if (self.isOwnProfile) {
- row.subvalue = [NSAttributedString dotAttributedString];
- }
- }
- } else {
- NSDictionary *deltaOptions = ((self.performanceMode == WGPerformanceModeAverage) ? FRACTION_VALUE_DELTA : VALUE_DELTA);
- WOTStats *oldStats = self.deltaStatsSlice.player.stats;
- WOTStats *delta = [stats statsBySubtractingStats:oldStats];
- #define avgDelta(param) @([stats averageForKey:@keypath(stats.param)] - [oldStats averageForKey:@keypath(stats.param)])
- // Array: @[value, avgValue, delta, avgDelta]
- #define valuesArray(param) @[@(stats.param), @([stats averageForKey:@keypath(stats.param)]), @(delta.param), avgDelta(param)]
- NSDictionary *performanceValues = @{@(WTAPerformanceRowDestroyed): valuesArray(frags),
- @(WTAPerformanceRowCapturePoints): valuesArray(capturePoints),
- @(WTAPerformanceRowDamageCaused): valuesArray(damageDealt),
- @(WTAPerformanceRowDefensePoints): valuesArray(defensePoints),
- @(WTAPerformanceRowHitRatio): valuesArray(hitsRatio),
- @(WTAPerformanceRowDetected): valuesArray(spotted),
- @(WTAPerformanceRowAverageDamageAssisted): @[@(0), @(stats.averageDamageAssisted), @(0), @(delta.averageDamageAssisted)],
- @(WTAPerformanceRowAverageDamageAssistedRadio): @[@(0), @(stats.averageDamageAssistedRadio), @(0), @(delta.averageDamageAssistedRadio)],
- @(WTAPerformanceRowAverageDamageAssistedTrack): @[@(0), @(stats.averageDamageAssistedTrack), @(0), @(delta.averageDamageAssistedTrack)],
- @(WTAPerformanceRowAverageDamageBlocked): @[@(0), @(stats.averageDamageBlocked), @(0), @(delta.averageDamageBlocked)],
- @(WTAPerformanceRowTankingFactor): valuesArray(tankingFactor),
- @(WTAPerformanceRowStunCount): @[@(stats.stunCount), @([stats stunAverageForKey:@"stunCount"]), @(delta.stunCount), @([delta stunAverageForKey:@"stunCount"])],
- @(WTAPerformanceRowStunAssistedDamage): @[@(stats.stunAssistedDamage), @([stats stunAverageForKey:@"stunAssistedDamage"]), @(delta.stunAssistedDamage), @([delta stunAverageForKey:@"stunAssistedDamage"])],
- };
- #undef valuesArray
- #undef avgDelta
- for (WGProfileStatsRow *row in baseRows) {
- NSNumber *currentValue = (self.performanceMode == WGPerformanceModeGeneral ? performanceValues[@(row.type)][0] : performanceValues[@(row.type)][1]);
- if (row.type == WTAPerformanceRowHitRatio) {
- row.value = [NSAttributedString singleValue:currentValue withOptions:PERCENT];
- } else {
- NSDictionary *options = FRACTION_VALUE;
- if (WGPerformanceModeAverage != self.performanceMode) {
- if (WTAPerformanceRowTankingFactor != row.type)
- options = VALUE;
- }
- row.value = [NSAttributedString singleValue:currentValue withOptions:options];
- }
- if (self.deltaShouldPresent) {
- if (self.deltaState == WGDeltaStateNormal) {
- NSNumber *currentDeltaValue = (self.performanceMode == WGPerformanceModeGeneral ? performanceValues[@(row.type)][2] : performanceValues[@(row.type)][3]);
- if (row.type == WTAPerformanceRowHitRatio) {
- row.subvalue = [NSAttributedString singleValue:currentDeltaValue withOptions:PERCENT_DELTA];
- } else if (row.type == WTAPerformanceRowTankingFactor) {
- row.subvalue = [NSAttributedString singleValue:currentDeltaValue withOptions:FRACTION_VALUE_DELTA];
- } else {
- row.subvalue = [NSAttributedString singleValue:currentDeltaValue withOptions:deltaOptions];
- }
- } else {
- row.subvalue = [NSAttributedString dotAttributedString];
- }
- }
- }
- }
- return baseRows;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement