Exception in function show_buttons at Sun Apr 27 15:56:35 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 221, in _show_buttons
    maybe_return( check_buttons() )
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 196, in check_buttons
    maybe_return( buttons[button](*button_args()) )
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 295, in show_options
    result = handle_pause_menu(selection, menu_buttons)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 455, in handle_pause_menu
    g.save_game(possible_name)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/g.py", line 662, in save_game
    pickle.dump(bases, savefile)
NameError: global name 'bases' is not defined

Exception in function show_buttons at Sun Apr 27 15:57:57 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 221, in _show_buttons
    maybe_return( check_buttons() )
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 196, in check_buttons
    maybe_return( buttons[button](*button_args()) )
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 295, in show_options
    result = handle_pause_menu(selection, menu_buttons)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 455, in handle_pause_menu
    g.save_game(possible_name)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/g.py", line 662, in save_game
    pickle.dump(bases, savefile)
NameError: global name 'bases' is not defined

Exception in function show_buttons at Mon Apr 28 09:35:00 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 221, in _show_buttons
    maybe_return( check_buttons() )
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 196, in check_buttons
    maybe_return( buttons[button](*button_args()) )
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 401, in show_location
    menu_buttons)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 648, in display_base_list
    direction = base_screen.show_base(base, location)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/base_screen.py", line 105, in show_base
    key_callback=buttons.simple_key_handler(0))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 205, in _show_buttons
    do_refresh()
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 200, in do_refresh
    refresh_callback()
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/base_screen.py", line 102, in do_refresh
    refresh_base(name_button, detect_button, study_button, this_base)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/base_screen.py", line 119, in refresh_base
    detect_chance = this_base.get_detect_chance()
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/base.py", line 83, in get_detect_chance
    detect_chance[group] *= 10000 + suspicion
KeyError: 'news'

Exception in function show_buttons at Mon Apr 28 09:36:01 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 221, in _show_buttons
    maybe_return( check_buttons() )
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 196, in check_buttons
    maybe_return( buttons[button](*button_args()) )
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 295, in show_options
    result = handle_pause_menu(selection, menu_buttons)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 503, in handle_pause_menu
    g.load_game(load_return)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/g.py", line 836, in load_game
    locations = pickle.load(loadfile)
  File "/usr/lib/python2.5/pickle.py", line 1370, in load
    return Unpickler(file).load()
  File "/usr/lib/python2.5/pickle.py", line 858, in load
    dispatch[key](self)
  File "/usr/lib/python2.5/pickle.py", line 880, in load_eof
    raise EOFError
EOFError

Exception in function show_buttons at Tue Apr 29 23:42:17 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 198, in give_time
    if base.power_state != "Stasis":
AttributeError: 'Base' object has no attribute 'power_state'

Exception in function show_buttons at Tue Apr 29 23:50:09 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 198, in give_time
    if base.power_state != "Stasis":
AttributeError: 'Base' object has no attribute 'power_state'

Exception in function show_buttons at Tue Apr 29 23:50:16 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:18 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:18 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:19 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:19 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:19 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:20 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:20 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:20 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:20 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:20 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:20 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:20 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:20 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:50:21 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 227, in give_time
    if self.maintenance_cost[cpu] > self.cpu_pool:
AttributeError: 'player_class' object has no attribute 'maintenance_cost'

Exception in function show_buttons at Tue Apr 29 23:52:04 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 426, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 198, in give_time
    if base.power_state != "Stasis":
AttributeError: 'Base' object has no attribute 'power_state'

Exception in function show_buttons at Sat May  3 13:35:28 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 181, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 210, in _show_buttons
    need_refresh = tick_callback(g.clock.tick(30))
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/map_screen.py", line 429, in on_tick
    need_refresh = g.pl.give_time(milli_clock/1000)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.py", line 219, in give_time
    if base.power_state != "Stasis":
AttributeError: 'Base' object has no attribute 'power_state'

Exception in function show_buttons at Sat May  3 23:47:02 2008 PDT:
Traceback (most recent call last):
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/safety.py", line 45, in safe_call
    return func(*args, **kwargs)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 187, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 235, in _show_buttons
    maybe_return( check_buttons() )
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 202, in check_buttons
    maybe_return( buttons[button](*button_args()) )
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/research_screen.py", line 83, in main_research_screen
    pos_callback=do_refresh, return_callback=do_stop)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/listbox.py", line 180, in show_listbox
    _show_listbox(*args, **options)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/listbox.py", line 237, in _show_listbox
    refresh_callback=do_refresh)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 187, in show_buttons
    _show_buttons(buttons, key_callback, keyup_callback, click_callback, button_callback, button_args, refresh_callback, tick_callback)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 212, in _show_buttons
    do_refresh()
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/buttons.py", line 207, in do_refresh
    refresh_callback()
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/listbox.py", line 230, in do_refresh
    kw.pos_callback(kw.list_pos)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/research_screen.py", line 79, in do_refresh
    refresh_research(item_list[list_pos], item_CPU_list[list_pos])
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/research_screen.py", line 218, in refresh_research
    string = g.to_cpu(g.techs[tech_name].cost_left[1])+" CPU"
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/g.py", line 611, in to_cpu
    return add_commas(display_cpu)
  File "/home/trcarlson/Desktop/python/endg-singularity/trunk/code/g.py", line 568, in add_commas
    return int_with_commas + locale.format("%0.2f", decimal_part, grouping=True)[1:]
  File "/usr/lib/python2.5/locale.py", line 147, in format
    formatted = percent % value
TypeError: float argument required

