³ò
Õ%Hc           @   s|   d  d k  Z  d  d k Z d  d k Z d  d k l Z l Z l Z d  d k Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ	 d S(   iÿÿÿÿN(   t   casht   cput   labort   groupc           B   sM   e  Z d  Z d d d 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   (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyt   __init__   s    			c         C   s/   |  i  |  i d } |  i t | d ƒ ƒ d  S(   Ni'  i   (   R   R   t   alter_suspiciont   max(   R   t   quadratic_down(    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyt   new_day&   s    c         C   s   t  |  i | d ƒ |  _ d  S(   Ni    (   R   R   (   R   t   change(    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyR
   ,   s    c         C   s   t  |  i | d ƒ |  _ d  S(   Ni    (   R   R   (   R   R   (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyt   alter_suspicion_decay/   s    c         C   s   t  |  i | d ƒ |  _ d  S(   Ni    (   R   R   (   R   R   (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyt   alter_discover_bonus2   s    c         C   s   |  i  |  i ƒ d  S(   N(   R
   t   discover_suspicion(   R   (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyt   discovered_a_base5   s    (	   t   __name__t
   __module__R   R	   R   R
   R   R   R   (    (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyR      s   				t   player_classc           B   s¡   e  Z d  d  d  d  d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e	 d	 „ Z
 d
 „  Z e e	 e	 d „ Z d „  Z d „  Z d „  Z d „  Z RS(   i    i   c         C   sI  | |  _  | |  _ | |  _ | |  _ | |  _ |  i ƒ  |  i d j o t |  _ n |  i	 ƒ  |  _ | |  _
 d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ h  t d d d ƒd <t d d d ƒd <t d	 d d
 ƒd	 <t d d d ƒd <|  _ d |  _ d |  _ |  _ t i d ƒ |  _ t |  _ d |  _ d |  _ d  S(   Ni    i   i'  t   newsR   i–   t   scienceid   t   coverti2   t   publiciÈ   t    (   i    i    i    (   t
   difficultyt   time_sect   time_mint	   time_hourt   time_dayt   make_raw_timest   raw_sect   Truet	   had_gracet   in_grace_periodR    t   interest_ratet   incomet   cpu_poolt   labor_bonust	   job_bonust   partial_cashR   t   groupst   grace_multipliert   last_discoveryt   prev_discoveryt   buyablet   arrayt   maintenance_costt   have_cput   complete_basest   complex_bases(   R   R    R   R   R   R   R   (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyR	   9   s4    					
										c         C   su   | d j o d |  _  n | d j o  t d t |  i ƒ ƒ |  _ n | d j o |  i ƒ  |  i ƒ  |  _ n d  S(   Ng…ëQ¸…@i   gq=
×£p@g    €„.AgHáz®G@(   R   t   intt   floatR(   R,   R    R$   R#   (   R   t   old_version(    (    s;   /home/phil/rcs/svn/endgame-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   (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyR    m   s    c         C   sp   |  i  d |  _ |  i d |  _ |  i d |  _ |  i  d |  _ |  i d |  _ |  i d |  _ |  i |  _ d  S(   Ni<   i   (   R!   R:   R9   R;   R   R   R   R   (   R   (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyt   update_timess   s    c         C   s   |  i  t i p t i S(   N(   R:   t   gt   minutes_per_day(   R   (    (    s;   /home/phil/rcs/svn/endgame-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   (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyt   seconds_to_next_day„   s    c         C   s+   |  i  | ƒ \ } |  _ |  i | 7_ d  S(   N(   t   get_job_infoR*   R    (   R   t   cpu_timet   earned(    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyt   do_jobs‡   s    c         C   s†   | d  j o |  i } n t i t i ƒ  d } t i d i o | | d } n | | | } | t i } | t i } | | f S(   Ni    s   Advanced Simulacrai
   (   t   NoneR*   R=   t   jobst   get_job_levelt   techst   doneR@   (   R   RC   R*   t   cash_per_cput   raw_cashR    t   new_partial_cash(    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyRB   ‹   s    c   )      C   s+  | d j o d  Sn t  } |  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 }
 g  } g  } h  } g  } g  } g  } d |  _ t  |  _	 d |  _
 d |  _ t i d ƒ |  _ xÙt i ƒ  D]Ë} | i p | i | ƒ qE|  i
 d 7_
 | i ƒ  o |  i d 7_ n g  } | i D]) } | o | i o | | | f q£q£~ } g  } | i D]) } | o | i o | | | f qãqã~ } | | | 7} |  i | i 7_ | i d j oË | i ƒ  | } |  i	 p | |  _	 | i d j o qEn | i t i j o |  i | ƒ qEn |  i | 7_ | i t i j oD t i | i } | i d d d | ƒ } | o | i | ƒ qqqEqEW|  i t |  i j o# |  i t c |  i 8<d |  _ n$ |  i |  i t 8_ d |  i t <x8 | D]0 } | i d d ƒ } | o | i | ƒ qxqxWxx | D]p \ } } | i d d ƒ } | oK | i d j o | i | | f ƒ q#| i | d ƒ | | c d 7<q³q³W|  i d j o |  i |  i ƒ d |  _ n xA t i i  ƒ  D]0 } | i d |	 ƒ } | o | i | ƒ qdqdWt i! |  i t" |
 | ƒ } | |  i" j o | |  i" 8} d |  _" n |  i" | 8_" d } x8 | D]0 } | i d |	 ƒ } | o | i | ƒ qúqúWx{ | D]s \ } } | i d |	 ƒ } | oN | i# i d j o | i | | f ƒ q¨| i | d ƒ | | c d 7<q5q5W|  i$ |  i% |  i
 |  i ƒ } xS | D]K } t i& d	 h  | i' d
 <| i( d <} t i) | ƒ d t _* d } qÑWx¢ | D]š } t i& d h  | i' d <} d t _* d } t i) | ƒ | i# i+ d j oH | i d i# i+ d j o. t i& d h  | i' d <} t i) | ƒ q'q'WxB| i, ƒ  D]4\ } } | t- | i ƒ j o
 | }  n@ t- g  }! | i D]" } | o | i o |! | qq~! ƒ }  |  t- | i ƒ j oS t i& d h  | i d i# i' d <| i' d <} t i) | ƒ d t _* d } qÒ|  | j oS t i& d h  | i d i# i' d <| i' d <} t i) | ƒ d t _* d } qÒqÒWx\ | D]T \ } } t i& d h  | i# i' d <| i' d <} t i) | ƒ d t _* d } qW|  i% o8 | o0 t  |  _% t i) t i& d ƒ d } d t _* n g  }" xÕt i ƒ  D]Ç} | o | i. ƒ  o‚ | i/ ƒ  }# t i0 o d | i' t1 |# ƒ f GHn xM |# i, ƒ  D]; \ }$ }% t i2 |% d | ƒ o |" i | |$ f ƒ Pq	q	Wn | i oë |  i t og | i t oY t3 d |  i t | i t ƒ |  i t <t i4 d ƒ o |" i | d f ƒ t5 }& qÛ	n | ok t i! | i t" |
 | ƒ }' |' oD t3 d | |' ƒ } t i4 d ƒ o |" i | d f ƒ t5 }& qI
qM
qQ
n | i t i j o! t i | i i o d | _ q¾q¾W|  i6 |" ƒ o
 d } n xl t i7 D]a }( t i2 t i7 |( i8 d | ƒ o: t i7 |( i9 d j o q­
n t i7 |( i: ƒ  d } Pq­
q­
W| o |  i; ƒ  n | S(   Ni    i   t   Stasist   Activet   cash_availablet   cpu_availablet   computet   timet   tech_gainedt   techt   tech_messaget   constructiont   bases   Stolen Computer Times	   Gaming PCt
   lucky_hackt   item_construction_singlet   itemt   item_construction_batcht   grace_warnings#   Chance of discovery for base %s: %sg     ˆÃ@i–   t   maintR   (   i    i    i    (<   t   FalseR:   R;   R!   R<   R=   R@   t   plR'   R2   R3   R4   R/   R0   R1   t	   all_basesRJ   t   appendt
   is_complext   cpust   extra_itemst   maintenancet   power_statet   processor_timet   studyingRG   RE   RI   t   work_onR   t	   item_typet
   setdefaultt   valuest   current_shareR    t   typeR$   R#   t   stringsR   t   resultt   create_dialogt
   curr_speedt   idt	   iteritemst   lent	   has_gracet   get_detect_chancet   debugt   reprt   roll_chanceR   t   roll_percentR"   t   remove_basest   eventst   chancet	   triggeredt   triggerR   ()   R   R   t   needs_refresht   last_minutet   last_dayt   days_passedt
   extra_dayst
   day_passedt   secs_passedt   mins_passedt   time_of_dayt   techs_researchedt   bases_constructedt   cpus_constructedt   items_constructedt   bases_under_constructiont   items_under_constructionRX   t   _[1]R[   t   unfinished_cpust   _[2]t   unfinished_itemst	   cpu_powerRU   RT   t
   built_baset
   built_itemt   cash_maintenancet   gracet   textt   new_cpust   finished_cpust   _[3]t
   dead_basest   detect_chanceR   R   t   deadt
   base_needst   event(    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyt	   give_time›   sŠ   		

				 
,,	      
	
 	 
(
)	

)	
 
"	
	 
 
'

 !	c         C   s¤  | p t  Sn |  i d j o t  Sn |  i d j  o t Sn | d  j o? t g  } t i ƒ  D] } | i o | | q` q` ~ ƒ } n | d j o t  Sn |  i d j  o t Sn | d j o t  Sn |  i d j o t Sn | d  j ol t g  } t i ƒ  D]H } | i o4 t | i	 ƒ d j p | i
 ƒ  d j o | | qNqq~ ƒ } n | d j o t  Sn |  i d	 j o t Sn | d j o t  Sn t S(
   Ni   i   id   i   i
   i   i   i    i2   (   R_   R;   R   R"   RF   Rv   R=   Ra   RJ   Rd   Rh   (   R   R#   t   basesR4   R‘   RX   R“   (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyR$   º  s8    ?
2c         C   sW   |  i  |  i |  i  d 7_  |  i  |  i 7_  x! |  i i ƒ  D] } | i ƒ  q? Wd  S(   Ni'  (   R    R%   R&   R+   Rm   R   (   R   R   (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyR   ò  s
     c         C   s±  g  } d } x| d  d  d … D]\ } } | i  } | d j o t i d h  | d <} n– | |  i j oY | i | i ƒ |  i | i ƒ  t i d | } t i d h  | d <| d <} n- d	 | GHt i d h  | d <d
 d <} t i | d t i d ƒd t _	 | i
 ƒ  d } q  Wg  }	 | D] }
 |
 o |	 |
 q7q7~	 } | oN t | ƒ d j o t i | ƒ | d |  _ n |  i |  _ | d |  _ n | S(   Ni    iÿÿÿÿR^   t   discover_maintRX   t	   discover_t   discoverR   s*   Error: base destroyed for unknown reason: s   ???t
   text_colort   redi   (   R   R=   Rp   R+   Rb   t   locationR   Rr   t   colorsRs   t   destroyRv   t   randomt   shuffleR-   R.   (   R   Rž   t   discovery_locsR‚   RX   t   reasont	   base_namet   dialog_stringt   detect_phraseR‘   t   loc(    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyR}   û  s:     	

	
	

,c         C   sH   x/ |  i  i ƒ  D] } | i d j o d Sq q W|  i p d Sn d S(   Ni'  i   i   i    (   R+   Rm   R   R2   (   R   R   (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyt	   lost_game+  s     
c         C   sô   |  i  } h  } xÞ t i ƒ  D]Ð } | | i d 8} t i i | i ƒ oC | i | i ƒ p, | t i | i i d 8} d | | i <qŒ n x- | i D]" } | o | | i d 8} q– q– Wx- | i D]" } | o | | i d 8} qÆ qÆ Wq W| S(   Ni    i   (	   R    R=   Ra   t	   cost_leftRI   t   has_keyRi   Rd   Re   (   R   t   result_cashRI   RX   R[   (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyt   future_cash=  s$    	 
  
  (   R   R   R	   R8   R    R<   R?   RA   RE   RF   RB   R£   R"   R$   R   R}   Rµ   R¹   (    (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pyR   8   s"   &							ÿ  7			0	(
   R­   R=   R/   R    R   R   t   finance_screent   objectR   R   (    (    (    s;   /home/phil/rcs/svn/endgame-singularity/trunk/code/player.pys   <module>   s   