]> de.git.xonotic.org Git - xonotic/xonstat.git/commitdiff
Remove +/- points display on scoreboard.
authorAnt Zucaro <azucaro@gmail.com>
Sat, 21 Jul 2012 00:58:02 +0000 (20:58 -0400)
committerAnt Zucaro <azucaro@gmail.com>
Sat, 21 Jul 2012 00:58:02 +0000 (20:58 -0400)
I've decided not to show the +/- elo_deltas on the scoreboard
because they are individual measures. They thus belong on a
given player's info page instead. The player_info view is the
future destination of this data (not implemented yet).

Also, I'm preventing duel matches from being processed as both
duel and dm matches. Duel really is a mode of its own, even if
Xonotic doesn't have a dedicated mode for it.

xonstat/models.py
xonstat/templates/scoreboard.mako

index 6d3888802810e75ebf268f3a259465fc37283a8c..05a50ea227292b6d82dafc6bae844af5c6694aa3 100644 (file)
@@ -150,8 +150,9 @@ class Game(object):
         for e in elos:
             session.add(elos[e])
 
-        if game_type_cd == 'duel':
-            self.process_elos(session, "dm")
+        # no longer calculate DM elo for a duel game
+        # if game_type_cd == 'duel':
+            # self.process_elos(session, "dm")
 
 
     def update_elos(self, session, elos, scores, ep):
@@ -201,17 +202,18 @@ class Game(object):
                 adjustment = scorefactor_real - scorefactor_elo
                 eloadjust[ei.player_id] += adjustment
                 eloadjust[ej.player_id] -= adjustment
+
         elo_deltas = {}
         for pid in pids:
-            elo_delta = eloadjust[pid] * elos[pid].k * ep.global_K / float(len(elos) - 1)
+            new_elo = max(float(elos[pid].elo) + eloadjust[pid] * elos[pid].k * ep.global_K / float(len(elos) - 1), ep.floor)
+
+            # delta is new minus old
+            elo_deltas[pid] = new_elo - float(elos[pid].elo)
 
-            if float(elos[pid].elo) + elo_delta < ep.floor:
-                elo_deltas[pid] = elos[pid].elo - ep.floor
-            else:
-                elo_deltas[pid] = elo_delta
+            log.debug("Player {0}'s Elo going from {1} to {2}.".format(pid, 
+                elos[pid].elo, new_elo))
 
-            # can't go below the floor
-            elos[pid].elo = max(float(elos[pid].elo) + elo_delta, ep.floor)
+            elos[pid].elo = new_elo
             elos[pid].games += 1
 
         self.save_elo_deltas(session, elo_deltas)
index 7b4d940a21768af0926ae18d2754fbb4355c0bf2..288e271eb2fb3a02610f191e7563cc11089776d4 100644 (file)
@@ -16,11 +16,6 @@ ${scoreboard_header(game_type_cd, pgstats[0])}
       </td>
     ${scoreboard_row(game_type_cd, pgstat)}
       <td>${pgstat.score}</td>
-      % if pgstat.elo_delta == "0.00":
-          <td></td>
-      % else:
-          <td>${pgstat.elo_delta}</td>
-     % endif
     </tr>
   % endfor
   </tbody>
@@ -37,7 +32,6 @@ ${scoreboard_header(game_type_cd, pgstats[0])}
       <th class="deaths">Deaths</th>
       <th class="suicides">Suicides</th>
       <th class="score">Score</th>
-      <th class="points">Points</th>
     </tr>
     </thead>
 % endif
@@ -52,7 +46,6 @@ ${scoreboard_header(game_type_cd, pgstats[0])}
       <th class="fck" title="Flag Carrier Kill">FCK</th>
       <th class="returns">Returns</th>
       <th class="score">Score</th>
-      <th class="points">Points</th>
     </tr>
     </thead>
 % endif