Skip to content

Commit

Permalink
fix timeouts and event handlers
Browse files Browse the repository at this point in the history
  • Loading branch information
jabdoa2 committed May 7, 2016
1 parent d1579eb commit 3b4a708
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions mpf/modes/credits/code/credits.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ def mode_init(self):
self.max_credit_units = 0
self.pricing_tiers = set()
self.credit_units_for_pricing_tiers = 0
self.reset_pricing_tier_count_this_game = False

self.credits_config = self.machine.config_validator.validate_config(
config_spec='credits',
Expand Down Expand Up @@ -121,7 +122,7 @@ def enable_credit_play(self, post_event=True, **kwargs):
value=credit_units,
persist=True,
expire_secs=self.credits_config[
'persist_credits_while_off_time'])
'persist_credits_while_off_time'])
else:
self.machine.create_machine_var(name='credit_units',
value=credit_units)
Expand All @@ -144,9 +145,9 @@ def enable_credit_play(self, post_event=True, **kwargs):
self.machine.events.add_handler('player_add_success',
self._player_add_success)
self.machine.events.add_handler('mode_game_started',
self._game_ended)
self.machine.events.add_handler('mode_game_ended',
self._game_started)
self.machine.events.add_handler('mode_game_stopped',
self._game_ended)
self.machine.events.add_handler('ball_starting',
self._ball_starting)
if post_event:
Expand Down Expand Up @@ -209,7 +210,7 @@ def _request_to_start_game(self):
def _player_add_success(self, **kwargs):
del kwargs
new_credit_units = (self._get_credit_units() -
self.credit_units_per_game)
self.credit_units_per_game)

if new_credit_units < 0:
self.log.warning("Somehow credit units went below 0?!? Resetting "
Expand Down Expand Up @@ -244,8 +245,9 @@ def _disable_credit_switch_handlers(self):
callback=self._service_credit_callback)

def _credit_switch_callback(self, value, audit_class):
self._add_credit_units(credit_units=value/self.credit_unit)
self._add_credit_units(credit_units=value / self.credit_unit)
self._audit(value, audit_class)
self._reset_timeouts()

def _service_credit_callback(self):
self.log.debug("Service Credit Added")
Expand Down Expand Up @@ -317,7 +319,6 @@ def _update_credit_strings(self):
numerator = 0
denominator = 0


if numerator:
if whole_num:
display_fraction = '{} {}/{}'.format(whole_num, numerator,
Expand Down Expand Up @@ -355,21 +356,24 @@ def _game_started(self):
self.delay.remove('clear_fractional_credits')
self.delay.remove('clear_all_credits')

def _game_ended(self):
def _reset_timeouts(self):
if self.credits_config['fractional_credit_expiration_time']:
self.log.debug("Adding delay to clear fractional credits")
self.delay.add(
self.delay.reset(
ms=self.credits_config['fractional_credit_expiration_time'],
callback=self._clear_fractional_credits,
name='clear_fractional_credits')

if self.credits_config['credit_expiration_time']:
self.log.debug("Adding delay to clear credits")
self.delay.add(
self.delay.reset(
ms=self.credits_config['credit_expiration_time'],
callback=self.clear_all_credits,
name='clear_all_credits')

def _game_ended(self):
self._reset_timeouts()

self.reset_pricing_tier_count_this_game = False

def _clear_fractional_credits(self):
Expand Down

0 comments on commit 3b4a708

Please sign in to comment.