³ò
Õ%Hc           @   s†   d  d k  Z  d  d k Z d  d k Z d  d k l Z l Z l Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d d „ Z d	 „  Z d S(
   iÿÿÿÿN(   t   voidt   exitt   alwaysc   	         sÊ  t  i i t  i d ƒ ‡ f d †  } ‡ ‡ f d †  } t d ƒ } t d ƒ } d „  } h  } t d ƒ | t i d6 d7 d
 d t  i d d ƒ <t i d t  i	 d d	 f t  i	 d d	 f d d t  i d t  i d t  i d t  i d t  i d d ƒ	 ‰ t
 | ˆ <| | t i d t  i	 d d f d8 d d t  i d d ƒ <t i d9 t  i	 d d	 f d d t  i d t  i d t  i d t  i d t  i d d ƒ	 ‰ t
 | ˆ <| d ƒ | t i d: d; d d t  i d d ƒ <| d ƒ | t i d< d= d  d! t  i d d ƒ <| d" ƒ | t i d> d? d$ d% t  i d d d& d' ƒ<| d( ƒ | t i d@ dA d* d+ t  i d d ƒ <| | t i t  i	 d d, d f dB d- d- t  i d d ƒ <| | t i t  i	 d d d f dC d. d. t  i d d ƒ <| | t i t  i	 d d t  i	 d d f dD d/ d0 t  i d d ƒ <t i dE t  i	 d d1 d	 f d2 d t  i d t  i d t  i d t  i d t  i d d ƒ	 ‰  t
 | ˆ  <‡ ‡  ‡ ‡ f d3 †  } t i | d4 | d5 t i d ƒ ƒS(F   Nt   blackc              s!   t  i d ƒ t ˆ  ˆ  i ƒ d  S(   Nt   click(   t   gt
   play_soundt   change_techt   studying(    (   t	   this_base(    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyt   do_change_tech    s    c            s   ‡  ‡ ‡ f d †  } | S(   Nc              s!   t  i d ƒ t ˆ ˆ  ˆ ƒ d  S(   NR   (   R   R   t
   build_item(    (   t	   item_typeR	   t   location(    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyt   do_build_item%   s    (    (   R   R   (   R   R	   (   R   s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyt   make_do_build_item$   s    iÿÿÿÿi   c        	   S   sb   t  i d ƒ t  i t  i d t  i d d d
 d t  i d t  i d t  i d ƒ o d	 Sn d  S(   NR   t   really_destroyi    i   id   i–   t   bluet   whiteiþÿÿÿ(   id   id   (   i–   id   (   R   R   t   create_yesnot   stringst   fontt   colors(    (    (    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyt
   do_destroy-   s
    i    iF   i   t   BACKt   Bi   s   DETECTION CHANCEt    t	   dark_blueR   i   i2   iª   s   CHANGE RESEARCHt   Cs	   STUDYING:t   computei@  i<   iZ   i   s
   CHANGE (P)t   Pt   reactin   s
   CHANGE (R)t   Rt   networki    s
   CHANGE (N)t   Nt   force_underlinei   t   securityiÒ   s
   CHANGE (S)t   Si(   t   <t   >t   DESTROYt   Di‘   s	   BASE NAMEc              s   t  ˆ ˆ  ˆ ˆ ƒ d  S(   N(   t   refresh_base(    (   t   detect_buttont   name_buttonR	   t   study_button(    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyt
   do_refreshc   s    t   refresh_callbackt   key_callback(   i    i    (   iF   i   (   iª   i   (   i    i   (   i@  i<   (   iZ   i   (   i@  in   (   iZ   i   (   i@  i    (   iZ   i   (   i@  iÒ   (   iZ   i   (   i   i   (   i   i   (   iZ   i   (   iF   iÿÿÿÿ(   R   t   screent   fillR   R   t   buttonst   make_norm_buttonR   t   buttont   screen_sizeR    t   show_buttonst   simple_key_handler(	   R	   R   R
   R   t	   prev_baset	   next_baseR   t   menu_buttonsR.   (    (   R,   R-   R+   R   R	   s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyt	   show_base   sB    	0
;	(
0060;;F (
c         C   s˜  t  i i t  i d ƒ d } d } | i |  _ |  i ƒ  t  i d i p t  i	 d | _ nµ t
 } t  i d i p
 t } n | i | ƒ } t  i	 d d t  i | i d	 d
 ƒ ƒ d t  i | i d d
 ƒ ƒ d t  i | i d d
 ƒ ƒ d t  i | i d d
 ƒ ƒ | _ | i ƒ  | i d3 j o? t  i i | i ƒ p% t  i | i i o d | _ qgqkn d } | i }	 |	 d j o
 d }	 n\ |	 d j o
 d }	 nE t  i i |	 ƒ o
 d } n( t  i i |	 ƒ o t  i |	 i }	 n | |	 | _ | i ƒ  t  i i t  i d | | d t  i d d f ƒ t  i i t  i d | d | d d t  i d d f ƒ | i d
 d
 j o
 d  }
 n( | i d
 i i d! t | i ƒ  ƒ }
 t  i t  i d" |
 t  i d
 d# d$ | d% | d& f t  i d ƒ | i t | i ƒ d d
 j o | i t | i ƒ d i pk t  i t  i d' t  i | i t | i ƒ d i d( ƒ t  i d
 d# d$ | d% | d) f t  i d ƒ q£n | i d
 d
 j o
 d  }
 n | i d
 i i }
 t  i t  i d* |
 t  i d
 d# d$ | d% | d+ f t  i d ƒ | i d
 d
 j os | i d
 i p^ t  i t  i d' t  i | i d
 i d( ƒ t  i d
 d# d$ | d% | d, f t  i d ƒ qžn | i d d
 j o
 d  }
 n | i d i i }
 t  i t  i d- |
 t  i d
 d# d$ | d% | d. f t  i d ƒ | i d d
 j os | i d i p^ t  i t  i d' t  i | i d i d( ƒ t  i d
 d# d$ | d% | d/ f t  i d ƒ q™n | i d( d
 j o
 d  }
 n | i d( i i }
 t  i t  i d0 |
 t  i d
 d# d$ | d% | d1 f t  i d ƒ | i d( d
 j os | i d( i p^ t  i t  i d' t  i | i d( i d( ƒ t  i d
 d# d$ | d% | d2 f t  i d ƒ q”n d  S(4   NR   i
   i2   t   Socioanalyticst   detect_chance_unknown_bases   Advanced Socioanalyticst   detect_chances    NEWS: t   newsi    s     SCIENCE: t   sciences
     COVERT: t   coverts
     PUBLIC: t   publicR   s   CPU Poolt   Sleeps
   STUDYING: t   NOTHINGt   Constructiont   CONSTRUCTIONs	   WORKING: R   i,  i   i–   R   i*  i˜   t   Nones    x s   Processor: i   iÿÿÿÿi   i   s   Completion in i   i   s	   Reactor: iA   iP   s	   Network: is   i‚   s
   Security: i¥   i¾   (   R   s   CPU Pools   Sleep(   R   R1   R2   R   t   namet   textt   remake_buttont   techst   doneR   t   Truet   Falset   get_detect_chancet
   to_percentt   getR   t   jobst   has_keyR6   t   cpust   typet   strt   has_itemt   print_stringR   t   lent   to_timet	   cost_leftt   extra_items(   R,   R+   R-   R	   t   xstartt   ystartt   accurateR?   t   action_display_stringt   study_display_stringt	   item_name(    (    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyR*   i   s    

e
	



19
'0!(8 
08 
08 
0c            s&  ˆ i  i d j o t i t i d ƒ d Sn g  } g  ‰ g  } x t i D]„ } t i | i ˆ j og t i | i ƒ  p qK n y t i | i i	 | ƒ Wn t
 j
 o
 qK n X| i t i | ƒ qK qK W| i ƒ  | i ƒ  g  } | D] } | | i qò ~ ‰ g  } | D] } | | i q~ } t i ˆ ƒ t i d d d d f ‰  ‡ ‡ ‡ f d †  }	 h  }
 |	 |
 t i ˆ  d ˆ  d d f d d
 d t i d d ƒ <t i |
 t i ˆ  d d ˆ  d d f d d d t i d d ƒ <‡  ‡ ‡ f d †  } t i | |
 d | d |	 ƒd  S(   Ni   t   unbuildablei    i   i,  i2   c            sB   t  ˆ ˆ |  ˆ  ƒ ˆ i d j o ˆ i ƒ  o d ˆ _ n t S(   NRD   R   (   t   actual_buildR   t   is_buildingRN   (   t   list_pos(   R   t   item_id_listR	   (    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyt   do_buildð   s    io  id   t   BUILDt   Ui   ig   R   R   c            s   t  ˆ ˆ |  ˆ  ƒ d  S(   N(   t   refresh_item(   Rg   (   t   xy_locRh   R	   (    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyR.   ü   s    t   pos_callbackt   return_callback(   id   i2   (   id   i2   (   RV   t   sizeR   t   create_dialogR   t   itemsR   t	   availablet	   buildablet   indext
   ValueErrort   appendt   sortt   reverset   idRI   t   listboxt   resize_listR6   R3   R4   R   R   t   show_listbox(   R	   R   R   t   item_object_listt   item_display_listRc   t   _[1]t   xt   _[2]Ri   R;   R.   (    (   Rm   R   Rh   R	   s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyR   Æ   s:    
 

$$<Cc         C   s  | d j o d  Sn | d j oŠ xït  t |  i ƒ ƒ D]l } |  i | d j o/ |  i | i i t i | i j o q8 q n t i i t i | |  ƒ |  i | <q8 Wni| d j ok |  i	 d d j o0 |  i	 d i i t i | i j o d  Sqý n t i i t i | |  ƒ |  i	 d <nñ | d j ok |  i	 d d j o0 |  i	 d i i t i | i j o d  Squn t i i t i | |  ƒ |  i	 d <ny | d j ok |  i	 d d j o0 |  i	 d i i t i | i j o d  Sqín t i i t i | |  ƒ |  i	 d <n d  S(	   NR   R   i    R   R!   i   R$   i   (
   t   rangeRZ   RU   RV   Rz   R   Rr   t   itemt   ItemR]   (   R	   Rc   R   t   i(    (    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyRe     s2     +$'$'$c         C   sN  | d d | d f } t  i i t  i d | d d | d d d f ƒ t  i i t  i d | d d	 | d d d
 d f ƒ t  i t  i t  i d d t  i t  i i ƒ d t  i t  i i	 ƒ  ƒ d t  i
 d d d | d d | d d f t  i d ƒ | d j o d  Sn t  i t  i t  i | i t  i
 d d d | d d | d d f t  i d ƒ d } t  i t  i | t  i
 d d d | d d | d d f t  i d ƒ t  i t  i | i d ƒ d t  i d } t  i | i d j o" | d t |  i i ƒ d 7} n t  i t  i | t  i
 d d d | d d | d d f t  i d ƒ t  i t  i | i d ƒ } t  i t  i | t  i
 d d d | d d  | d d f t  i d ƒ t  i | i d j oõ t  i t  i | i d |  i i ƒ d } | t  i d 7} t  i t  i | t  i
 d d d | d d | d d! f t  i d ƒ d" t  i t  i | i |  i i ƒ } t  i t  i | t  i
 d d d | d d | d d# f t  i d ƒ n d# } t  i | i d j o
 d$ } n t  i t  i t  i | i t  i
 d d% d  | d d | d | f t  i d ƒ d  S(&   Ni    i–   i   R   i›   i,  i^  R   iœ   i*  i\  t   moneys   : s    (t   )i   iÿÿÿÿi    i   R   i   i-   s
   Item Cost:i   iA   t    R   s    xt   =iP   i   i"  id   s   Total CPU available: ix   iŒ   i   (   R   R1   R2   R   RY   R   t   to_moneyt   plt   casht   future_cashR   Rr   RI   t   costR   RW   RV   Rp   R[   t
   add_commast	   item_qualt   print_multilinet   description(   R	   Rc   Rm   t   xyt   stringt   x_start(    (    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyRl     sD    26?8 88,"88+8'<
c   	         sr  g  } g  ‰  xs t  i D]h } t  i | i oP ˆ i | ƒ o@ t  i | i ƒ  o( | i t  i | i ƒ ˆ  i | ƒ q~ q q W| i d ƒ ˆ  i d ƒ ˆ i o% | i t  i d ƒ ˆ  i d ƒ n ˆ i	 ƒ  p% | i t  i d ƒ ˆ  i d ƒ n | i t  i d ƒ ˆ  i d ƒ t  i
 ƒ  } | i t  i | d ƒ ˆ  i | ƒ t i ˆ  ƒ ‡  ‡ f d	 †  } t  i d
 d d d f ‰ ‡  ‡ ‡ f d †  } h  } | | t i ˆ d
 ˆ d d f d d d t  i d d ƒ <t i | t i ˆ d
 d ˆ d d f d d d t  i d d ƒ <d
 } | o  | ˆ  j o ˆ  i | ƒ } n t i | | d | d | d | ƒS(   Ns   ---R   t   nothingt   sleepRD   t   cpu_pools   CPU Pooli   c            sT   ˆ  |  ˆ _  ˆ i  d j o d ˆ _  n ˆ i  d j o d ˆ _ n
 d ˆ _ t S(   Nt   NothingR   RD   t   Active(   R   t   power_stateRN   (   Rg   (   t
   item_list2R	   (    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyt   change_studyf  s    	i    i   i,  i2   c            s   t  ˆ ˆ  |  ˆ ƒ d  S(   N(   t   refresh_tech(   Rg   (   R   R	   Rm   (    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyR.   r  s    i   io  id   t   CHANGER   i   ig   R   R   Rg   Rn   Ro   (   id   i2   (   id   i2   (   R   RL   RM   t   allow_studyRs   Rw   RI   R   R   Rf   t   get_job_levelRS   R{   R|   R6   R3   R4   R   R   Ru   R}   (	   R	   t   select_thist	   item_listt	   tech_namet   job_idRž   R.   R;   Rg   (    (   R   Rm   R	   s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyR   L  sD    
 "
<Cc         C   s9  | d d | d f } t  i i t  i d | d d | d d d f ƒ t  i i t  i d | d d	 | d d d
 d f ƒ t  i t  i t  i d d t  i |  i ƒ  ƒ t  i d d d | d d | d d f t  i d ƒ t  i t  i t  i d d t  i	 t  i
 i ƒ d t  i	 t  i
 i ƒ  ƒ d t  i d d d | d d | d d f t  i d ƒ | d j p | d j oª t  i t  i t  i d t  i d d d | d d | d d f t  i d ƒ t  i d } t  i t  i | t  i d d d | d d | d d f t  i d ƒ d  Sn | d  j oª t  i t  i t  i d! t  i d d d | d d | d d f t  i d ƒ t  i d" } t  i t  i | t  i d d d | d d | d d f t  i d ƒ d  Sn | d# j oª t  i t  i t  i d$ t  i d d d | d d | d d f t  i d ƒ t  i d% } t  i t  i | t  i d d d | d d | d d f t  i d ƒ d  Sn t  i i | ƒ o³t  i t  i t  i | d& t  i d d d | d d | d d f t  i d ƒ t  i d' i o‚ t  i t  i t  i	 t t  i | d |  i ƒ  d( ƒ ƒ d t  i d) t  i d d d | d d | d d f t  i d ƒ nu t  i t  i t  i	 t  i | d |  i ƒ  ƒ d t  i d) t  i d d d | d d | d d f t  i d ƒ t  i t  i t  i | d* t  i d d d | d d | d d+ f t  i d ƒ d  Sn t  i t  i t  i | i t  i d d d | d d | d d f t  i d ƒ d, } t  i t  i | t  i d d d | d d | d d f t  i d ƒ t  i	 t  i | i d ƒ d t  i d } t  i t  i | t  i d d d | d d | d d- f t  i d ƒ t  i t  i | i d ƒ d t  i d. } t  i t  i | t  i d d d | d d/ | d d- f t  i d ƒ t  i t  i t  i | i t  i d d d | d d | d d0 f t  i d ƒ d  S(1   Ni    iŒ   i   R   i›   i6  i^  R   iœ   i4  i\  t   cpu_per_dayR‰   i   iÿÿÿÿi    i   R‡   s   : s    (Rˆ   i   R   Rš   R—   i   i-   t   research_nothingi   i"  iA   RD   R˜   t   research_sleeps   CPU PoolR™   t   research_cpu_pooli   s   Advanced Simulacragš™™™™™ñ?t   money_per_dayi   iU   s
   Tech Cost:iP   t   cpui@  id   (   R   R1   R2   R   RY   R   R   t   processor_timeR   R‹   RŒ   R   RŽ   R’   RS   RT   RL   RM   t   intRI   R\   t   to_cpuR“   (   R	   R¥   R”   R•   (    (    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pyRŸ   …  sp    26 8?88888888K+08888,8,8(   R   R3   R{   R    R   R   R<   R*   R   Re   Rl   RH   R   RŸ   (    (    (    s@   /home/phil/rcs/svn/endgame-singularity/trunk/code/base_screen.pys   <module>   s   	M	]	<		09