
;x)Lc           @   s;  d  d k  Z  d  d k Z d  d k i Z d  d k i i Z d  d k l Z l	 Z	 l
 Z
 l Z l Z l Z d e
 i f d     YZ e d d d d d	 d
 d d  Z d e	 i f d     YZ e d e i d d e i d d e i d d e i d d e i d d e i d d e i d  Z d e
 i f d     YZ d S(   iN(   t	   constantst   widgett   dialogt   textt   buttont   listboxt   BuildDialogc           B   s>   e  Z e i d   Z d d e i d  Z d   Z d   Z	 RS(   t   _typei    ic         O   s>   t  t |   i | | | | | |  d  |  _ |  i |  _ d  S(   N(   t   superR   t   __init__t   Nonet   typet	   on_changet	   desc_func(   t   selft   parentt   post   sizet   anchort   argst   kwargs(    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyR	      s    	c         C   s  g  |  _  g  |  _ t i i   } | i   | i   xq | D]i } | i |  i j oP | i	   oC |  i
 i i i | i j o' |  i  i | i  |  i i |  q< q< W|  i
 i |  i  } | d  j o d  |  _ n |  i
 i |  i  i i |  _ t |  _ t t |   i   S(   N(   t   listt   key_listt   gt   itemst   valuest   sortt   reverset	   item_typeR   t	   availableR   t   baset   locationt   idt	   buildablet   appendt   namet   get_currentR
   t   defaultt   Truet   needs_rebuildR   R   t   show(   R   t	   item_listt   itemt   current(    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyR(   '   s"    		

  	c         C   s   | d  j	 oK t i | d
 d d | i   d t i d d t i d t i d t i	 nB t i | d d d d	 d t i d d t i d t i d t i	 d  S(   Ni    iR   t   background_colort	   dark_bluet   alignt   valignt   borderst    (   i    i    (   ii(   i    i    (   ii(
   R
   R   t   Textt   get_infot   ggt   colorsR    t   LEFTt   TOPt   ALL(   R   t   description_paneR*   (    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyR   =   s    (   i    i    (   ii(
   t   __name__t
   __module__R   t   causes_rebuildR   R    t   TOP_LEFTR	   R(   R   (    (    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyR      s
   	t   cput	   Processort   reactort   Reactort   networkt   Networkt   securityt   Securityt   ItemPanec           B   s,   e  Z e i d   Z d e i d d  Z RS(   R   gQ?gQ?R>   c         K   s  | i  d t i d  t t |   i | | | d | | | |  _ t i |  d d d t	 i
 d t	 i d |  i d t |  _ t i |  d  d! d t	 i
 d t	 i d |  i d	 d
 d t |  _ d } t d d d d d d d d  } | |  i }	 d | |	 i   f }
 t i |  d" d# d t	 i
 d	 |
 d |	 d |  i i i d h |  i d 6|  _ |	 i   | j o  t |  d } | |  i _ n d  S($   NR,   R-   R   i    gffffff?gQ?R.   t   boldR   s   Completion in 15 hours.t   CHANGER>   t   pR@   t   rRB   t   nRD   t   ss   %s (%s)g
ףp=
?g{Gz?gQ?g{Gz?t   hotkeyt   functionR   R   i   (   i    i    (   gffffff?gQ?(   i    gQ?(   gffffff?gQ?(   g
ףp=
?g{Gz?(   gQ?g{Gz?(   t
   setdefaultR4   R5   R   RF   R	   R   R   R2   R    R=   R6   R,   R&   t
   name_panelt   build_panelt   dictt   upperR   t   FunctionButtonR   t
   build_itemt   change_buttont   lent   force_underline(   R   R   R   R   R   R   R   t   change_textt   hotkey_dictRM   t   button_textt
   hotkey_pos(    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyR	   N   s6    							!	(   gQ?gQ?(   R:   R;   R   R<   R   R    R=   R	   (    (    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyRF   L   s   	t   activet   greent   sleept   yellowt   overclockedt   oranget   suicidet   redt   stasist   grayt   entering_stasist   leaving_stasist
   BaseScreenc           B   sV   e  Z e i d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z RS(   t   _basec         O   sB  t  |  d j  o | i d d-  n | i d d   } t t |   i | |   | |  _ t |   |  _	 t
 i |  d d. d t i |  _ t i |  d/ d0 d t i |  _ t i |  i d1 d2 d t i d t i d t i d d t i d d d d t |  _ t i |  i d3 d4 d t i d d d d d |  i d h t d 6|  _ |  i  t! i" |  i i#  t i |  i d5 d6 d t i d d d d d |  i d h t$ d 6|  _% |  i  t! i& |  i% i#  t i |  i d7 d8 d t i d t i' t i( t i) f d t i d d t i d d d d t |  _* t i+ |  d9 d t i, d d d d |  _- t i |  d: d; d t i d t i d d t i d t d" t i' d# t i. |  _/ t i0 |  d< d= d t i d t i d d t1 d$  |  _2 t3 |  i2 d> d& d' |  _4 t3 |  i2 d? d& d( |  _5 t3 |  i2 d@ d& d* |  _6 t3 |  i2 dA d& d, |  _7 d  S(B   Ni   R   g      ?g      ?R   R   g      R   i    ig{Gz?R0   t   border_colorR-   R,   t   blackt   shrink_factorg333333?RG   gQ?R   t   >RM   RN   R   t   forwardst   <g?t   BACKt   bg
ףp=
?gzG?gQ?R.   R/   i   g{Gz?R   R>   R@   g(\?RB   g      ?RD   (   g      ?g      ?(   g      g      (   i    i    (   ig{Gz?(   g      i    (   ig      (   ii    (   gQ?i(   i    i    (   gQ?i(   g      g      (   ig      (   g      i(   ig
ףp=
?(   gzG?gQ?(   i    g
ףp=
?(   g      ?gQ?(   g{Gz?g{Gz?(   g{Gz?g
ףp=
?(   g{Gz?g(\?(   g{Gz?g      ?(8   RW   RO   t   popR
   R   Ri   R	   R   R   t   build_dialogR   t   TextEntryDialogR    t
   MID_CENTERt   count_dialogR   t   WidgetR=   t   headerR   R2   t
   TOP_CENTERR8   R4   R5   R&   t   name_displayR   RT   t	   TOP_RIGHTt   switch_baset   next_base_buttont   add_key_handlert   pygamet   K_RIGHTt   activate_with_soundt   Falset   prev_base_buttont   K_LEFTR6   t   RIGHTt   BOTTOMt   state_displayt   ExitDialogButtont   BOTTOM_CENTERt   back_buttonR7   t   detect_framet   BorderedWidgett   ranget   contents_frameRF   t   cpu_panet   reactor_panet   network_panet   security_pane(   R   R   R   R   (    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyR	      sr    													c         C   s[   | d j o |  i  i } n) d d d g i |  } |  i  i | } | d  j	 o | Sd  S(   NR>   R@   RB   RD   (   R   t   cpust   indext   extra_itemsR
   (   R   R   t   targetR   (    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyR$      s    c         C   s  | d j o9|  i  i i } |  i  i d  j	 o |  i  i i | j } | o | |  i  i i 8} |  i  i i o] t i |  d d d d d t	 i
 d t i d } t i | |   } | i   | p d  Sq n t i d	 | i | f } | |  i _ t i d
 |  |  i _ t } x| p$t i |  i |   }	 |	 p
 t } qy t i |	  }
 |
 | j o
 | }
 n |
 d j o d  St i i | d |  i  d |
 } | o |  i  i | 7_ n | |  i  _ |  i  i   t } Wqt j
 oR t i |  d d d d d t	 i
 d t i d } t i | |   | i   qXqWn d d d g i |  } |  i  i | d  j p |  i  i | i | j o6 t i i | d |  i  |  i  i | <|  i  i   n |  i  i   d  S(   NR>   R   g      R   iR   R   t   will_lose_cpust   num_cpu_prompts   %di    R   t   countt   nanR@   RB   RD   (   g      g      (   g      i(   g      g      (   g      i(    R   R   R   R   R
   R   t   doneR   t   YesNoDialogR    Rv   R   t   stringst   call_dialogt   remove_hooksR#   Rw   R   t   localet   formatt   default_textR   R&   t   atoiR*   t   Itemt   check_powert
   ValueErrort   MessageDialogR   R   t
   recalc_cpu(   R   R   R   t
   space_leftt   matchest   ynt   go_aheadR   t   can_exitt   resultR   t   new_cpust   mdR   (    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyt   set_current   sb    	
 

	
	%c         C   s   | |  i  _ t i |  i  |   } d | j o t |  i  i  j  n o< |  i  i | } |  i | |  t |  _ t |  i	 i	 _ n d  S(   Ni    (
   Rt   R   R   R   RW   R   R   R&   R'   R   (   R   R   R   R   (    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyRU     s    *	c         C   s"   |  i  i |  |  _  t |  _ d  S(   N(   R   t	   next_baseR&   R'   (   R   Ro   (    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyR}     s    c         C   s   t  |  _ t t |   i   S(   N(   R&   R'   R   Ri   R(   (   R   (    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyR(     s    	c      	      st  d |  i  i |  i  i i f |  i _ d } t |  i  i |  i _ |  i  i i	   |  i _ |  i  i i
 } x d d d d g D] } t |  | d  } | | i _ |  i |  } | d  j o d } d	 } n8 | i } | i o
 d	 } n d
 t i | i d  } d t | | f | i _ | | i _ q| Wd	 } |  i  i i d j oq t |  i  i d d  } |  i  i i }	 |	 | j o d | } q| d j o d |	 } qd | |	 f } n |  i i i | 7_ t i d i p t i d |  i _ nf t i d i }
 |  i  i |
      f d   } | | d  | d  | d  | d  f |  i _ t t |   i    d  S(   Ns   %s (%s)s<   DISCOVERY CHANCE:
News: %s
Science: %s
Covert: %s
Public: %sR>   R@   RB   RD   t   _paneR
   R1   s   Completion in %s.i   s   %s: %si   R   i    s
    x%d (max)s    (room for %d)s    x%d (max %d)t   Socioanalyticst   detect_chance_unknown_bases   Advanced Socioanalyticsc            s   t  i   i |  d   S(   Ni    (   R   t
   to_percentt   get(   t   group(   t   chance(    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyt
   get_chanceV  s    t   newst   sciencet   covertt   public(!   R   R#   R   R{   R   t   state_colorst   power_stateR   t   colort
   capitalizet	   force_cput   getattrRV   t   visibleR$   R
   R   R   t   to_timet	   cost_leftt
   type_namesRP   RQ   R   R   R   t   techsR   R   t   get_detect_chanceR   Ri   t   rebuild(   R   t   discovery_templatet   mutableR*   t   paneR+   t   current_namet   current_buildR   R   t   accurateR   (    (   R   sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyR   "  sN    % 
	

(   R:   R;   R   R<   R   R	   R$   R   RU   R}   R(   R   (    (    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyRi      s   	K			;				(   R   R   t   code.gR   t   code.graphics.gt   graphicsR4   t   code.graphicsR    R   R   R   R   R   t   ChoiceDescriptionDialogR   RR   R   R   RF   R5   R   t   DialogRi   (    (    (    sJ   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/screens/base.pyt   <module>   s"   .,*