Ñò
Ÿ,ÿMc        
   @   s†  d  d k  Z  d  d k l Z d  d k Z d  d k l Z d  d k Td Z d Z d Z	 h e d 6e d 6Z
 e e f Z d Z d  Z d! Z d" Z d# Z d$ Z d% Z e e e e e f Z e e f Z d& Z d' Z d( Z e e f Z d) Z d „  Z e d d ƒ Z d „  Z d „  Z d „  Z d e f d „  ƒ  YZ  d e f d „  ƒ  YZ! d „  Z" d „  Z# e  i$ i% Z& e! i$ i% Z' d e f d „  ƒ  YZ( d S(*   iÿÿÿÿN(   t
   namedtuple(   t
   IS_BASEAPP(   t   *i    i   t   Accountt   Clani   i   i   i   i   i   i   c         C   s   |  | B| B| B| d >BS(   Ni   (    (   t	   offerKindt   srcWareKindt   dstWareKindt   srcEntityTypet   dstEntityType(    (    s   scripts/common/offers.pyt   makeOfferFlags<   s    t   ParsedOfferFlagss=   offerKind srcWareKind dstWareKind srcEntityType dstEntityTypec         C   s:   |  t  @|  t @|  t @|  d @|  d ?d @f } t i | ƒ S(   Ni   i   (   t   _OFFER_KIND_MASKt   _SRC_WARE_KIND_MASKt   _DST_WARE_KIND_MASKR   t   _make(   t   flagst   raw(    (    s   scripts/common/offers.pyt   parseOfferFlagsM   s    c         C   s   |  d @S(   Ni   (    (   R   (    (    s   scripts/common/offers.pyt   parseSrcEntityTypeFromFlags[   s    c         C   s   |  d ?d @S(   Ni   i   (    (   R   (    (    s   scripts/common/offers.pyt   parseDstEntityTypeFromFlags]   s    t	   OutOffersc           B   s§   e  Z e d  d ƒ Z d d „ Z d „  Z d „  Z d d „ Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d d „ Z RS(   t   Offers5   flags dstDBID dstName srcWares dstWares validTill feec         C   sd   | i  d d ƒ | i  d h  ƒ | i  d h  ƒ | |  _ | d  j	 o | n t | d ƒ |  _ d  S(   Nt   nextIDi    t   donet   out(   t
   setdefaultt   _OutOffers__datat   Nonet   _WriterGettert   _OutOffers__outWriter(   t   selft
   offersDictt   outWriterGetter(    (    s   scripts/common/offers.pyt   __init__‡   s    	c         C   s   t  |  i d | ƒ S(   NR   (   t   _makeOutOfferR   (   R   t   offerID(    (    s   scripts/common/offers.pyt   __getitem__’   s    c         C   s2   |  i  d i | ƒ } | d  j	 o t | ƒ Sd  S(   NR   (   R   t   getR   R#   (   R   R$   t   offer(    (    s   scripts/common/offers.pyR&   —   s    c         C   s4   |  i  i d ƒ } | d  j o | S| i | | ƒ S(   Nt   outExt(   R   R&   R   (   R   R$   t   defaultR(   (    (    s   scripts/common/offers.pyt   getExt�   s    c         C   s>   g  } |  i  d i ƒ  D] \ } } | | t | ƒ f q ~ S(   NR   (   R   t	   iteritemsR#   (   R   t   _[1]t   idt   data(    (    s   scripts/common/offers.pyt   items¦   s    c         C   sL   |  i  d i ƒ  |  i  d i ƒ  |  i  i d d  ƒ |  i  d c d 7<d  S(   NR   R   R(   R   i   (   R   t   cleart   popR   (   R   (    (    s   scripts/common/offers.pyR0   «   s    c         C   s   t  |  i d ƒ S(   NR   (   t   lenR   (   R   (    (    s   scripts/common/offers.pyt   count³   s    c         C   s   |  i  d S(   NR   (   R   (   R   (    (    s   scripts/common/offers.pyt
   doneOffers¹   s    c         C   sb   g  } t  t i ƒ  ƒ } xC |  i d i ƒ  D]. \ } } | d | j o | i | ƒ q, q, W| S(   NR   i   (   t   intt   timeR   R+   t   append(   R   t   rest   currTimeR$   R'   (    (    s   scripts/common/offers.pyt   timedOutOffers¾   s     c         C   sƒ   g  } d } xj |  i  d i ƒ  D]U } | d t @} | t j o | i | d d ƒ q  | t j o | d 7} q  q  W| | f S(   Ni    R   i   i   (   R   t
   itervaluesR   t   SRC_WARE_VEHICLER7   t   SRC_WARE_TANKMAN(   R   t   vehst   numTmenR'   R   (    (    s   scripts/common/offers.pyt   inventorySlotsË   s     c         C   st   |  i  } |  i ƒ  i | ƒ | d | <| i d ƒ } | d  j	 o | i | d  ƒ n | d c d 7<t | d ƒ S(   NR   R(   R   i   (   R   R   R1   R&   R   R2   (   R   R$   R.   R(   (    (    s   scripts/common/offers.pyt
   moveToDoneÚ   s    	c         C   sm   |  i  ƒ  i | d  ƒ d  j	 oJ |  i d c d 7<|  i i d ƒ } | d  j	 o | i | d  ƒ qi n d  S(   NR   i   R(   (   R   R1   R   R   R&   (   R   R$   R(   (    (    s   scripts/common/offers.pyt   removeè   s
    c         C   s   |  i  d i | d  ƒ d  S(   NR   (   R   R1   R   (   R   R$   (    (    s   scripts/common/offers.pyt
   removeDoneñ   s    c         C   s'   |  i  d | d | j p t ‚ d  S(   NR   i   (   R   t   AssertionError(   R   R$   R	   t   dstEntityDBIDt   dstEntityName(    (    s   scripts/common/offers.pyt   updateDestinationö   s    c      	   C   sò   t  t i ƒ  ƒ } | t  | ƒ } | | | | |	 | | f } |  i } | d @d >| d d @} | d c d 7<| | d j o | | d j p t ‚ | |  i ƒ  | <| d  j	 o | | i d h  ƒ | <n | | | | | | |	 | |
 f f S(	   Niÿÿ i   R   iÿ  i   R   R   R(   (   R5   R6   R   RD   R   R   R   (   R   R   t   srcDBIDt   srcNamet   dstDBIDt   dstNamet   validSect   srcWarest   srcFeet   dstWarest   dstFeet   extR9   t	   validTillR'   R.   R$   (    (    s   scripts/common/offers.pyt   createOffer  s    	)N(   t   __name__t
   __module__R    R   R   R"   R%   R&   R*   R/   R0   R3   R4   R:   R@   RA   RB   RC   RG   RS   (    (    (    s   scripts/common/offers.pyR   q   s    														t   InOffersc           B   st   e  Z e d  d ƒ Z d d „ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z RS(   R   s@   srcOfferID flags srcDBID srcName srcWares dstWares validTill feec         C   sT   | i  d d ƒ | i  d h  ƒ | |  _ | d  j	 o | n t | d ƒ |  _ d  S(   NR   i    t   in(   R   t   _InOffers__dataR   R   t   _InOffers__inWriter(   R   R    t   inWriterGetter(    (    s   scripts/common/offers.pyR"   L  s
    	c         C   s   t  |  i d | ƒ S(   NRW   (   t   _makeInOfferRX   (   R   R$   (    (    s   scripts/common/offers.pyR%   U  s    c         C   s2   |  i  d i | ƒ } | d  j	 o t | ƒ Sd  S(   NRW   (   RX   R&   R   R[   (   R   R$   R'   (    (    s   scripts/common/offers.pyR&   Z  s    c         C   s>   g  } |  i  d i ƒ  D] \ } } | | t | ƒ f q ~ S(   NRW   (   RX   R+   R#   (   R   R,   R-   R.   (    (    s   scripts/common/offers.pyR/   `  s    c         C   s(   |  i  d i ƒ  |  i  d c d 7<d  S(   NRW   R   i   (   RX   R0   (   R   (    (    s   scripts/common/offers.pyR0   e  s    c         C   s   t  |  i d ƒ S(   NRW   (   R2   RX   (   R   (    (    s   scripts/common/offers.pyR3   k  s    c         C   sb   g  } t  t i ƒ  ƒ } xC |  i d i ƒ  D]. \ } } | d | j o | i | ƒ q, q, W| S(   NRW   i   (   R5   R6   RX   R+   R7   (   R   R8   R9   R$   R'   (    (    s   scripts/common/offers.pyR:   p  s     c         C   sf   x_ |  i  d i ƒ  D]J \ } } | d | j o- | d | j o t | d ƒ | j o | Sq Wd  S(   NRW   i    i   i   (   RX   R+   R   R   (   R   R   t   srcEntityDBIDt
   srcOfferIDt	   inOfferIDR'   (    (    s   scripts/common/offers.pyt   findOfferBySource{  s     "	c         C   s=   |  i  } | d } | d c d 7<t | ƒ |  i ƒ  | <| S(   NR   i   (   RX   t   tupleRY   (   R   R'   R.   R$   (    (    s   scripts/common/offers.pyt   add‡  s
    	
c         C   s:   |  i  ƒ  i | d  ƒ d  j	 o |  i d c d 7<n d  S(   NR   i   (   RY   R1   R   RX   (   R   R$   (    (    s   scripts/common/offers.pyRB   ‘  s    N(   RT   RU   R    R   R   R"   R%   R&   R/   R0   R3   R:   R_   Ra   RB   (    (    (    s   scripts/common/offers.pyRV   5  s   									
c         C   s¸   t  |  i ƒ } d } d } d  } | i t j o | |  i |  i 8} n2 | i t j o | |  i |  i 8} n
 |  i } | i t	 j o | |  i
 7} n | |  i
 7} | | | | f S(   Ni    (   R   R   R   R   t   SRC_WARE_GOLDRM   t   feet   SRC_WARE_CREDITSR   t   DST_WARE_GOLDRO   (   t   outOffert
   offerFlagst   goldt   creditsR/   (    (    s   scripts/common/offers.pyt   collectOutOfferResultsŸ  s    	c         C   s¸   t  |  i ƒ } d } d } d  } | i t j o | |  i 7} n+ | i t j o | |  i 7} n
 |  i } | i t j o | |  i	 |  i
 8} n | |  i	 |  i
 8} | | | | f S(   Ni    (   R   R   R   R   Rb   RM   Rd   R   Re   RO   Rc   (   t   inOfferRg   Rh   Ri   R/   (    (    s   scripts/common/offers.pyt   collectInOfferResultsº  s    	R   c           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t   _WriterGetter__d(   R   t   dict(    (    s   scripts/common/offers.pyR"   Õ  s    c         C   s   |  i  S(   N(   Rm   (   R   (    (    s   scripts/common/offers.pyt   __call__Ö  s    (   RT   RU   R"   Ro   (    (    (    s   scripts/common/offers.pyR   Ô  s   	(   R   R   i    iÀ   i    i   i   i   i   i   i    i   i ð  ()   R6   t   collectionsR    t   BigWorldt	   constantsR   t   debug_utilst   ENTITY_TYPE_ACCOUNTt   ENTITY_TYPE_CLANt   ENTITY_TYPE_NAMES_BY_IDSt   ENTITY_TYPE_IDS_BY_NAMESt   ENTITY_TYPE_IDSt
   OFFER_SELLR   Rb   Rd   t   SRC_WARE_ITEMSR<   R=   t   SRC_WARE_KINDSt   SRC_WARE_MONEY_KINDSR   Re   t   DST_WARE_CREDITSt   DST_WARE_KINDSR   R
   R   R   R   R   t   objectR   RV   Rj   Rl   R   R   R#   R[   R   (    (    (    s   scripts/common/offers.pyt   <module>   sN   


						Äj		