Ñò
6b)Lc           @   s¼   d  d k  Z  d  d k l Z d  d k l Z d  d k Z d  d k l Z d  d k Z d  d k l	 Z	 l
 Z
 l Z d Z d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   truediv(   t   array(   t   g(   t   casht   cput   labort   newst   sciencet   covertt   publict   Groupc           B   s_   e  Z d  Z d d d d „ Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z	 d „  Z
 RS(   iè  i    id   i'  c         C   s(   | |  _  | |  _ | |  _ | |  _ d  S(   N(   t   namet	   suspiciont   suspicion_decayt   discover_bonus(   t   selfR   R   R   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   __init__"   s    			c         C   s   t  d |  i |  i d ƒ S(   Ni   i'  (   t   maxR   R   (   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt
   decay_rate)   s    c         C   s   |  i  |  i ƒ  ƒ d  S(   N(   t   alter_suspicionR   (   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   new_day.   s    c         C   s   t  |  i | d ƒ |  _ d  S(   Ni    (   R   R   (   R   t   change(    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyR   1   s    c         C   s   t  |  i | d ƒ |  _ d  S(   Ni    (   R   R   (   R   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   alter_suspicion_decay4   s    c         C   s   t  |  i | d ƒ |  _ d  S(   Ni    (   R   R   (   R   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   alter_discover_bonus7   s    c         C   s   |  i  |  i ƒ d  S(   N(   R   t   discover_suspicion(   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   discovered_a_base:   s    c         C   s‹   | |  i  } | |  i ƒ  } | d j p |  i | d d j o d S| d j p |  i | d d j o d S| d j o d Sd Sd  S(	   Nid   i
   i'  i   i2   i   i    i   (   R   R   R   (   R   t   detects_per_dayt   raw_suspicion_per_dayt   suspicion_per_day(    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   detects_per_day_to_danger_level=   s    (   t   __name__t
   __module__R   R   R   R   R   R   R   R   R   (    (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyR
       s   						t
   DryRunInfoc           B   s   e  Z RS(    (   R   R   (    (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyR    P   s   t   Playerc           B   s¿   e  Z e Z d  d  d  d  d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 e d	 „ Z e d
 „ Z d „  Z e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   i    i   c         C   sY  | |  _  | |  _ | |  _ | |  _ | |  _ |  i ƒ  |  i d j o t |  _ n |  i	 ƒ  |  _ t
 |  _ | |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ h t d d d ƒd 6t d d d ƒd 6t d	 d d
 ƒd	 6t d d d ƒd 6|  _ d |  _ d |  _ |  _ t d t ƒ |  _ h  |  _ d d d d d g |  _ d |  _ d  S(   Ni    i   i'  R   R   i–   R   id   R   i2   R	   iÈ   t    (   i    i    i    (   t
   difficultyt   time_sect   time_mint	   time_hourt   time_dayt   make_raw_timest   raw_sect   Truet	   had_gracet   in_grace_periodt   Falset
   apotheosisR   t   interest_ratet   incomet   cpu_poolt   labor_bonust	   job_bonust   partial_cashR
   t   groupst   grace_multipliert   last_discoveryt   prev_discoveryR   t   longt   maintenance_costt	   cpu_usaget   available_cpust   sleeping_cpus(   R   R   R$   R%   R&   R'   R#   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyR   U   s6    					
										c         C   sH   | d j  o7 h  |  _  t i d i |  _ |  i o t |  _ qD n d  S(   Ng¤p=
×£@t
   Apotheosis(   R;   R   t   techst   doneR.   R*   R+   (   R   t   old_version(    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   convert_from}   s
    	
c         C   sU   |  i  d |  i |  _ |  i d |  i |  _ |  i d |  i |  _ |  i  |  _ d  S(   Ni   i<   (   R'   R&   t   raw_hourR%   t   raw_minR$   R)   t   raw_day(   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyR(   „   s    c         C   sj   t  |  i d ƒ \ |  _ |  _ t  |  i d ƒ \ |  _ |  _ t  |  i d ƒ \ |  _ |  _ |  i |  _ d  S(   Ni<   i   (	   t   divmodR)   RD   R$   RC   R%   RE   R&   R'   (   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   update_timesŠ   s    c         C   s   |  i  t i p t i S(   N(   RD   R   t   minutes_per_day(   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   mins_to_next_day“   s    c         C   s   |  i  t i p t i S(   N(   R)   R   t   seconds_per_day(   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   seconds_to_next_day–   s    c         C   s+   |  i  | ƒ \ } |  _ |  i | 7_ | S(   N(   t   get_job_infoR4   R   (   R   t   cpu_timet   earned(    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   do_jobs™   s    c         C   sš   | d  j o |  i } n | d j p t ‚ t i t i ƒ  d } t i d i o | | d } n | | | } | t i } | t i } | | f S(   Ni    s   Advanced Simulacrai
   (	   t   NoneR4   t   AssertionErrorR   t   jobst   get_job_levelR?   R@   RJ   (   R   RM   R4   t   cash_per_cput   raw_cashR   t   new_partial_cash(    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyRL   ž   s    c   8      C   s+  | d j o d S|  i  } |  i } |  i } |  i  | 7_  |  i ƒ  |  i | } | d j o$ | d } |  i  t i | 8_  n | d j } | o! |  i t i |  _  |  i ƒ  n | }	 |  i | }
 t i i  t i } |  i } |  i } g  } g  } g  } g  } g  } g  } d |  _	 t
 d t ƒ |  _ xÃ t i ƒ  D]µ } | i p | i | ƒ q<| i d  j	 o( | i i o | | | i f g 7} n g  } | i D]) } | o | i o | | | f q£q£~ } | | 7} |  i | i 7_ q<W|  i o t
 d t ƒ |  _ n |  i i d d ƒ |	 } |  i | ƒ } t i t |  i t ƒ | |	 ƒ } | } | |  i j o | |  i 8} d |  _ n |  i | 8_ d } d } d } |  i d } x;|  i i ƒ  D]*\ } }  |  d j o qÍn | |  8} |  |	 }! | d j oé |  i	 |! 7_	 | d j oÉ | o€ t i | i d |
 d |! ƒ d }" t i i	 t |" t ƒ 8_	 t i i t |" t ƒ 8_ | |  7} | t |" t ƒ 7} qÍn t i | i d |! d |
 ƒ }# |# o | i t i | ƒ qóq÷qÍqÍW|  i	 | |	 7_	 |  i t |	 }$ |$ |  i	 j o |$ |  i	 8}$ d |  _	 n |  i	 t |$ ƒ 8_	 d }$ d }% d }& xÅ | D]½ } | o† | i d |
 d |  i	 ƒ d }" t i i	 t |" t ƒ 8_	 t i i t |" t ƒ 8_ |% t |" t ƒ 7}% |& t |" t ƒ 7}& qwn | i d |
 ƒ }' |' o | i | ƒ qwqwWxø | D]ð \ } } | oƒ | i d |
 d d ƒ d }" t i i	 t |" t ƒ 8_	 t i i t |" t ƒ 8_ |% t |" t ƒ 7}% |& t |" t ƒ 7}& q?n | i d |
 ƒ }( |( oA | i  i! d j o | i | | f ƒ q/| i | | f ƒ q?q?Wd }) |  i	 d j o |  i |  i	 ƒ }) n | |  i j o | |  i 8} d |  _ n |  i | 8_ d } | oÒt" ƒ  }* |  i# ƒ  |* _$ |  i% |* _% |  i |* i$ |* i% 7_ | |* _& |) |* _' | |) |* _( | |* _) |& |* _* | |* _+ | |* _, | | |* _ | |* _- |  i |* _. t" ƒ  }+ |  i d |+ _/ |  i0 |+ _1 |+ i/ |+ i1 |+ _2 | |+ _) |% |+ _* |  i t |+ _+ |$ |+ _, |+ i+ |+ i, |+ _ |  i i d d ƒ |+ _& |  i	 t3 | ƒ |+ _' |  i i d d ƒ |+ i' |+ _( |  i i d d ƒ |+ _4 | |+ _5 |  i i d d ƒ | |+ _6 | |  _ | |  _ | |  _  |  i ƒ  |* |+ f SxZ | D]R }, |  i |, i7 =t i8 d h |, i9 d	 6|, i: d
 6}- |  i; ƒ  t i< i= |- ƒ q~Wx› | D]“ } t i8 d h | i9 d 6}- |  i; ƒ  t i< i= |- ƒ | i  i7 d j oE | i i  i7 d j o/ t i8 d h | i9 d 6}- t i< i= |- ƒ qÛqÛWx¡ | D]™ \ } }. | i i> | i  i? j o/ t i8 d h | i i  i9 d 6| i9 d 6}- n, t i8 d h | i i  i9 d 6| i9 d 6}- |  i; ƒ  t i< i= |- ƒ qy	WxV | D]N \ } } t i8 d h | i  i9 d 6| i9 d 6}- |  i; ƒ  t i< i= |- ƒ q
W|  i@ |  iA ƒ }/ |  iA o6 |/ o. tB |  _A |  i; ƒ  t i< i= t i8 d ƒ n g  }0 x½t i ƒ  D]¯} tB }1 | i oö |$ on | i t o` | i t |	 }2 tC d |$ |2 ƒ }$ |1 o0 t iD d |	 ƒ o |0 i | d f ƒ tE }1 q_n | ov t i | i t | |	 ƒ }3 |3 oO tC d | |3 ƒ } |1 o0 t iD d |	 ƒ o |0 i | d f ƒ tE }1 qØqÜqàn |/ p |1 p
 | iF ƒ  pˆ | iG ƒ  }4 t iH o d | i9 tI |4 ƒ f GHn xS |4 i ƒ  D]A \ }5 }6 t iD |6 d |	 ƒ o |0 i | |5 f ƒ tE }1 Pq:q:WqÔ
qÔ
W|  iJ |0 ƒ |/ pw xt t iK D]e }7 t iD t iK |7 iL d | ƒ o> t iK |7 iM d j o q¥n |  i; ƒ  t iK |7 iN ƒ  Pq¥q¥Wn | o |  iO ƒ  n |
 S(   Ni    i   RR   R1   t   timet   cpu_availableR   t   tech_gainedt   techt   tech_messaget   constructiont   bases   Stolen Computer Times	   Gaming PCt
   lucky_hackt   item_construction_singlet   itemt   item_construction_batcht   grace_warningg¸…ëQ¸Ž?t   maints#   Chance of discovery for base %s: %sg     ˆÃ@(   i    i    i    (   i    i    i    (P   R)   RD   RE   RG   R   RJ   t   plR   R4   R1   R   R9   R:   t	   all_basesR@   t   appendt   cpusRP   t   extra_itemst   maintenanceR.   R;   t   getRO   t   current_sharet   intR<   t	   iteritemsR?   t   calculate_workR   t   work_ont   typet	   item_typeR    t   get_interestt   interestR0   t   explicit_jobst	   pool_jobsRR   RZ   R\   t   maintenance_neededt   maintenance_shortfallt   startt   endt	   availableR=   t   sleepingt   totalt   floatt   explicit_poolt   default_poolt   poolt   idt   stringsR   t   resultt
   pause_gamet
   map_screent   show_messaget   countt   sizeR,   R+   R-   R   t   roll_chanceR*   t	   has_gracet   get_detect_chancet   debugt   reprt   remove_basest   eventst   chancet	   triggeredt   triggerR   (8   R   R$   t   dry_runt   old_timet   last_minutet   last_dayt   days_passedt
   extra_dayst
   day_passedt   secs_passedt   mins_passedt   time_of_dayt   old_casht   old_partial_casht   techs_researchedt   bases_constructedt   cpus_constructedt   items_constructedt   bases_under_constructiont   items_under_constructionR]   t   _[1]R`   t   unfinished_itemst   job_cput   explicit_job_casht   cash_maintenancet   full_cash_maintenancet   tech_cput	   tech_casht   default_cput   taskt   cpu_assignedt   real_cput   spentRY   t   cpu_maintenancet   construction_cput   construction_casht
   built_baset
   built_itemt   pool_job_casht	   cash_infot   cpu_infoRZ   t   textRg   t   gracet
   dead_basest   deadt   refundt
   base_needst   detect_chancet   groupR   t   event(    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt	   give_time°   sÖ   			

			 
,

 


	$  																
 

 
 
%
!
 

	
 

 
 !
c         C   s`  t  d d d d d g t ƒ |  _ d |  _ x| t i ƒ  D]n } | i o^ | i d j o$ |  i | i i	 d c  | i
 7*q¥ | i d j o |  i | i
 7_ q¥ q7 q7 Wg  } |  i D] } | t | ƒ q· ~ |  _ t |  i i ƒ  ƒ } | |  i d j o] t |  i d | ƒ } x4 |  i i ƒ  D]# \ } } t | | ƒ |  i | <q%Wt t i _ n d  S(   Ni    t   activet   overclockedt   suicidei   t   sleep(   s   activeRÅ   RÆ   (   R   R9   R<   R=   R   Re   R@   t   power_statet   locationt   safetyR   Rl   t   sumR;   t   valuesR    Rm   R*   R…   t   needs_rebuild(   R   R]   R¥   t   dangert
   needed_cput   pct_leftR®   R¯   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt
   recalc_cpuü  s"    !	 
$- c         C   sS  |  i  o t S| p t S|  i d j o t S|  i d j  o t St g  } t i ƒ  D] } | i o | | qY qY ~ ƒ } | d j o t S|  i d j  o t S| d j o t S|  i d j o t St g  } t i ƒ  D]( } | i o | i	 ƒ  o | | qâ qâ ~ ƒ } | d j o t S|  i d j o t S| d j o t St S(	   Ni   i   id   i   i
   i    i2   i   (
   R.   R*   R-   RE   R#   t   lenR   Re   R@   t
   is_complex(   R   R+   R¥   R]   t   basest   _[2]t   complex_bases(    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyR,     s4    
;.c         C   s   t  |  i |  i d ƒ S(   Ni'  (   Rl   R/   R   (   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyRr   L  s    c         C   sO   |  i  |  i ƒ  7_  |  i  |  i 7_  x! |  i i ƒ  D] } | i ƒ  q7 Wd  S(   N(   R   Rr   R0   R5   RÌ   R   (   R   RÁ   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyR   P  s
     c         C   s&   d t  _ t  i i ƒ  t t  i _ d  S(   Ni    (   R   t
   curr_speedR…   t   find_speed_buttonR*   RÍ   (   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyR„   Y  s    	c   
      C   sž  g  } x| D]ü \ } } | i  } | d j o t i d h | d 6} nŽ | |  i j oU | i | i ƒ |  i | i ƒ  t i d | } t i d h | d 6| d 6} n) d | GHt i d h | d 6d d 6} |  i ƒ  | i ƒ  t i	 i
 | d	 t i d
 ƒq Wg  } | D] }	 |	 o | |	 qq~ } | oZ t | ƒ d j o t i | ƒ | d |  _ n |  i |  _ | d |  _ t t i	 _ n d  S(   NRc   t   discover_maintR]   t	   discover_t   discoverRÁ   s*   Error: base destroyed for unknown reason: s   ???t   colort   redi   i    (   R   R   R‚   R5   Rf   RÉ   R   R„   t   destroyR…   R†   t   ggt   colorsRÒ   t   randomt   shuffleR7   R8   R*   RÍ   (
   R   R¼   t   discovery_locsR]   t   reasont	   base_namet   dialog_stringt   detect_phraseR¥   t   loc(    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyRŽ   ^  s6     	

	


!,c         C   sb   |  i  o d Sx, |  i i ƒ  D] } | i d j o d Sq W|  i d |  i d j o d Sd S(   Ni    i'  i   i   (   R.   R5   RÌ   R   R<   R=   (   R   RÁ   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt	   lost_gameŒ  s    
 	c         C   sî   |  i  } x… t i ƒ  D]w } | | i t  8} | i o& | i i o | | i i t  8} n x- | i D]" } | o | | i t  8} qg qg Wq WxV |  i i ƒ  D]E \ } } | t i	 j o) | d j o | t i	 | i t  8} q¡ q¡ W| S(   Ni    (
   R   R   Re   t	   cost_leftRg   R@   Rh   R;   t   itemsR?   (   R   t   result_cashR]   R`   R®   R   (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   future_cash¡  s    	 
    (   R   R   R-   t   intro_shownR   RB   R(   RG   RI   RK   RO   RP   RL   RÃ   RÑ   R*   R,   Rr   R   R„   RŽ   Ré   Rí   (    (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyR!   S   s(   '							ÿ M	5					.	(   s   newss   sciences   coverts   public(   Rá   t   operatorR    t   numpyR   R   t   graphicsRß   t   buyableR   R   R   t
   group_listt   objectR
   R    R!   (    (    (    sD   /home/trcarlson/Desktop/python/endg-singularity/trunk/code/player.pyt   <module>   s   0