Ñò
à’ŽPc        	   @   sÊ  d  d k  Z  d  d k Z d  d k l Z d  d k l Z l Z l Z l Z l	 Z	 d  d k  l
 Z
 e  i d Z e  i d Z e  i d Z e  i d Z e  i d	 Z e  i d
 Z e  i d Z e  i d Z e  i d Z e  i d Z e  i d Z d „  Z d „  Z d „  Z d „  Z d „  Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ h% d d 6e i d 6h  d 6h  d 6h e i  d 6e i! d 6d 6e" d  6e" d! 6e" d" 6e" d# 6h  h  f d$ 6d d% 6g  d& 6g  d' 6d( d) 6d* d+ 6d( d, 6e" d- 6d* d. 6d* d/ 6d* d0 6e" d1 6d* d2 6e# d3 6d* d4 6e# d5 6d* d6 6d d7 6d d8 6d( d9 6d d: 6d* d; 6e" d< 6h  d= 6e	 i% d> 6d* d? 6d* d@ 6h  dA 6Z& h
 dB dC 6d dD 6dO dF 6dP dG 6h  dH 6d dI 6h  dJ 6d dK 6h  dL 6d dM 6Z' dN „  Z( d S(Q   iÿÿÿÿN(   t   AmmoIterator(   t   PREBATTLE_ACCOUNT_STATEt   VEHICLE_CLASSESt   ARENA_GUI_TYPEt   PREBATTLE_ROLEt   PREBATTLE_COMPANY_DIVISION(   t   vehiclest   vehiclet   vehicleChassist   vehicleTurrett
   vehicleGunt   vehicleEnginet   vehicleFuelTankt   vehicleRadiot   tankmant   optionalDevicet   shellt	   equipmentc         C   sˆ   |  i  | d  ƒ } | d  j o |  St g  } | i ƒ  D]* \ } } | | j o | | | f q8 q8 ~ ƒ } | p |  S| |  | <|  S(   N(   t   gett   Nonet   dictt	   iteritems(   t   localized_datat   keyt	   languagest   ldt   _[1]t   langt   data(    (    s"   scripts/common/prebattle_shared.pyt   trimLocalizedData!   s    J
c         C   s   |  d @|  d @f S(   Ni   ið   (    (   t   roster(    (    s"   scripts/common/prebattle_shared.pyt   decodeRoster2   s    c         C   s   |  | d >BS(   Ni   (    (   t   teamt   assigned(    (    s"   scripts/common/prebattle_shared.pyt   encodeRoster:   s    c         C   s  | d \ } } | d } x¡ t  D]™ } | |  i i j o q! n | | j o@ | | \ } } | |  i j o
 | j n p t d f Sq! | |  i j o
 | j n p t d f Sq! W| d }	 |	 d  j	 o) t i |  i i d |	 j o t d f S|  i i	 }
 | d } | d  j	 o |
 | j o t d	 f S| d
 i
 |
 d  ƒ } | d  j	 of | \ } } xW t |  ƒ D]E } | o | | j o t d f S| o | | j o t d f SquWn | d } | d  j	 o� | \ } } x~ t | ƒ D]l \ } } | d j p | d j o qòn | o | | j o t d f S| o | | j o t d f SqòWn | d } | o� xŠ t | ƒ D]x \ } } | d j p | d j o q„n t i | ƒ d } | t j o q„n | | i
 | d ƒ j o t d f Sq„Wn t d  f S(   Nt   levelt
   classLevels   limits/classLevels   limits/levelt   nationsi    s   limits/nationsR   s   limits/vehiclest
   componentss   limits/componentst   ammos   limits/ammot   shellsiÿÿ  s   limits/shells(   R   t   typet   tagsR#   t   FalseR   R%   t   NAMESt   idt   compactDescrR   t+   _collectCurrentReplaceableVehicleComponentsR    R   t   parseIntCompactDescrt   _SHELLt   True(   t   vehDescrt   vehAmmot   limitst   minLevelt   maxLevelt   classLevelLimitst   classTagt   classMinLevelt   classMaxLevelt   nationLimitst   vehTypeCompDescrt   vehicleLimitst   componentLimitst   isValidR&   t	   compDescrt
   ammoLimitst   ammoSett   countt   shellsLimitst   itemTypeIdx(    (    s"   scripts/common/prebattle_shared.pyt   isVehicleValidD   sf    
 !!
+
 
 
 c         C   sÞ  | d \ } } d } d } h  } xá |  i  ƒ  D]Ó } | d t i @p q/ n d | j p d | j o/ t i d | d ƒ } | i }	 | i i }
 n | d }	 | d }
 | |	 j o
 | j n p t d f S| d	 7} | |	 7} | i	 |
 d ƒ d	 | |
 <q/ W| | d
 j  o t d f S| d \ } } | | j o
 | j n p t d f S| d } | d  j	 ob x_ | i ƒ  D]M \ }
 \ } } | i	 |
 d ƒ } | | j o
 | j n p t d f SqWn t d f S(   NR#   i    t   stateR=   t   vehLevelR.   t   vehCompDescrs   limits/leveli   t   minCounts   limit/minCountt
   totalLevels   limit/totalLevelR   s   limits/vehiclest    (   t
   itervaluesR   t   READYR   t   VehicleDescrR#   R)   R.   R+   R   R   R   R2   (   t   accountsInfoR5   R6   R7   RD   RL   t   vehst   accInfoR3   RI   R=   t   minTotalLevelt   maxTotalLevelR>   RK   t   maxCount(    (    s"   scripts/common/prebattle_shared.pyt   isTeamValid�   s@     	




 t   PrebattleSettingsc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t   _PrebattleSettings__settings(   t   selft   settings(    (    s"   scripts/common/prebattle_shared.pyt   __init__Á   s    c         C   s$   | |  i  j o |  i  | St | S(   N(   RY   t   SETTING_DEFAULTS(   RZ   R   (    (    s"   scripts/common/prebattle_shared.pyt   __getitem__Å   s    c         C   s   | |  i  | <d  S(   N(   RY   (   RZ   R   t   value(    (    s"   scripts/common/prebattle_shared.pyt   __setitem__Ì   s    c         C   s   t  |  i | ƒ S(   N(   t
   TeamLimitsRY   (   RZ   R    (    (    s"   scripts/common/prebattle_shared.pyt   getTeamLimitsÐ   s    (   t   __name__t
   __module__R\   R^   R`   Rb   (    (    (    s"   scripts/common/prebattle_shared.pyRX   ¾   s   			Ra   c           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   | d |  _  | |  _ d  S(   NR5   (   t   _TeamLimits__limitst   _TeamLimits__team(   RZ   R[   R    (    (    s"   scripts/common/prebattle_shared.pyR\   Ú   s    c         C   s^   | |  i  |  i j o |  i  |  i | S| |  i  i d h  ƒ j o |  i  d | St | S(   Ni    (   Re   Rf   R   t   LIMIT_DEFAULTS(   RZ   R   (    (    s"   scripts/common/prebattle_shared.pyR^   ß   s
    (   Rc   Rd   R\   R^   (    (    (    s"   scripts/common/prebattle_shared.pyRa   ×   s   	i   t   vert   arenaGuiTypet   rolest	   clanRolesi   t	   teamRolest	   hideNamest   hideVehiclest   hideOpponentCountt   concealFinalRostert   initialRosterst   defaultRostert   accountsToInvitet   clansToInviteRM   t   creatori    t   creatorClanDBIDt   creatorClanAbbrevt   isOpenedt   battlesLimitt	   winsLimitt   winnerIfDrawt   switchBattleTeamst   lifeTimet   destroyIfCreatorOutt	   startTimet   startIfReadyt   timeBetweenBattlest   arenaTypeIDt   roundLengtht   commentt   chatChannelst   arenaVoipChannelst	   notifyWebt	   extraDatat   divisiont   gameplaysMaskt   vehicleLockModet   vehicleLockTimeFactorsi   t   maxCountTotalRK   iÿÿ  RL   R#   R$   R   R&   R'   R(   R%   c         C   s  g  } |  i  } t | i ƒ d j o | i |  i d ƒ n t | i ƒ d j o | i |  i d ƒ n t | i ƒ d j o | i |  i d ƒ n x~ t |  i	 ƒ D]m \ } \ } } t | i	 | ƒ d j o | i | d ƒ n t | d ƒ d j o | i | d ƒ q© q© W| S(   Ni   R.   t   guns(
   R)   t   lent   chassist   appendt   enginest   enginet   radiost   radiot	   enumeratet   turrets(   t   vehicleDescrt   rest   vehicleTypet   posIdxt   turretDescrt   gunDescr(    (    s"   scripts/common/prebattle_shared.pyR/   "  s    	 (   i    iÿÿ  (   i    iÿÿ  ()   t   itemsR%   t   account_sharedR    t	   constantsR   R   R   R   R   R   t   ITEM_TYPE_INDICESt   _VEHICLEt   _CHASSISt   _TURRETt   _GUNt   _ENGINEt
   _FUEL_TANKt   _RADIOt   _TANKMANt   _OPTIONALDEVICER1   t
   _EQUIPMENTR   R   R"   RG   RW   t   objectRX   Ra   t   UNKNOWNt   SEE_1t   SEE_2R+   R2   R   t   ABSOLUTER]   Rg   R/   (    (    (    s"   scripts/common/prebattle_shared.pyt   <module>   s�   (
			
	K	/



