Prevent adding players during high scores on one ball game
Currently, you can add players when in high score mode in a one ball game. We only check for "ball==1" which still holds true at that point. Also check "game.ending" or something similar to prevent this. Also add a unit test.

Discussion: https://groups.google.com/forum/#!topic/mpf-users/vQiJRQNLRpQ
diff --git a/AUTHORS b/AUTHORS
index a33725f65..bbcab32fe 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -24,6 +24,7 @@ their spare time, unpaid, for the love of pinball!
  * Michael Fuegemann <mfuegemann@yahoo.de>
  * Pinki Mansukhani <birdsofpassage7@gmail.com>
  * Kevin Lee Drum <kevinleedrum@gmail.com>
+ * Sean Irby <sean.t.irby@gmail.com>
 
 MPF is inspired by pyprocgame and skeletongame which were written by:
 
diff --git a/mpf/modes/game/code/game.py b/mpf/modes/game/code/game.py
index 7ca7f5c7f..3e961075d 100644
--- a/mpf/modes/game/code/game.py
+++ b/mpf/modes/game/code/game.py
@@ -509,6 +509,10 @@ class Game(AsyncMode):
         # then we'll raise the event to ask other modules if it's ok to add a
         # player
 
+        if self.ending:
+            self.debug_log("Game is ending. Cannot add player.")
+            return False
+
         if len(self.player_list) >= self.max_players:
             self.debug_log("Game is at max players. Cannot add another.")
             return False
diff --git a/mpf/tests/test_HighScoreMode.py b/mpf/tests/test_HighScoreMode.py
index 7b04717f9..13f96b8e1 100644
--- a/mpf/tests/test_HighScoreMode.py
+++ b/mpf/tests/test_HighScoreMode.py
@@ -103,6 +103,30 @@ class TestHighScoreMode(MpfBcpTestCase):
         # high score should not end
         self.assertTrue(self.machine.modes["high_score"].active)
 
+
+    def test_add_player_during_high_score(self):
+        self.mock_event("high_score_enter_initials")
+        self.machine.modes["high_score"].high_scores = OrderedDict(
+            score=[('BRI', 7050550),
+                   ('GHK', 93060),
+                   ('JK', 87890),
+                   ('QC', 87890),
+                   ('MPF', 1000)])
+
+        self.start_game()
+        self.advance_time_and_run()
+        self.machine.game.player_list[0].score = 8000000
+        self.machine.game.end_game()
+        self.advance_time_and_run()
+        self.assertTrue(self.machine.modes["high_score"].active)
+
+        self.assertEqual(1, self._events['high_score_enter_initials'])
+        self.machine.game.request_player_add()
+        self.advance_time_and_run()
+
+        # player should not be added
+        self.assertEqual(len(self.machine.game.player_list), 1)
+
     def test_1_high_score(self):
         self.mock_event("high_score_enter_initials")
         self.machine.modes["high_score"].high_scores = OrderedDict(
['mpf/tests/test_HighScoreMode.py', 'mpf/modes/game/code/game.py', 'AUTHORS']