     @kdRatioNull = @combatKillsNullSec / @combatDeathsNullSec
     @kdRatioWormhole = @combatKillsWormhole / @combatDeathsWormhole
 
-    @travelDistanceWarpedTotal = @calcTotal 'travelDistanceWarped'
+    @travelDistanceWarpedTotal = @total 'travelDistanceWarped'
+
+    @totalDamageDealt = @combatDamageToPlayersHybridAmount +
+                        @combatDamageToPlayersProjectileAmount +
+                        @combatDamageToPlayersEnergyAmount +
+                        @combatDamageToPlayersMissileAmount +
+                        @combatDamageToPlayersBombAmount +
+                        @combatDamageToPlayersSmartBombAmount +
+                        @combatDamageToPlayersFighterMissileAmount +
+                        @combatDamageToPlayersSuperAmount
 
     @iskSpentPercent = 100 * (@iskOut / @iskIn)
 

    # derive some stats
    @averageSessionLength = @characterMinutes / @characterSessionsStarted

    @combatKillsTotal = @calcTotal 'combatKills'
    @combatDeathsTotal = @calcTotal 'combatDeaths'
    @kdRatioTotal = @combatKillsTotal / @combatDeathsTotal

    @kdRatioHigh = @combatKillsHighSec / @combatDeathsHighSec

  constructor: (stats) ->
    for key, val of stats
      @[key] = val

    @secSuffixes = [
      'HighSec'
      'LowSec'
      'NullSec'
      'Wormhole'
    ]

    @calcDerived()

  total: _.memoize (prefix) ->
    statNames = _.map @secSuffixes, (suffix) -> prefix + suffix
    return _.reduce statNames, ((sum, stat) => sum + @[stat]), 0

  percent: _.memoize (prefix, suffix) ->
    total = @total prefix
    pct = @[prefix + suffix] / total
    return pct
  # resolver
  , (prefix, suffix) -> return "#{prefix}#{suffix}"

  calcDerived: ->
    # fix a few stats
