ó
>ýiYc           @   ss   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m Z d d d „  ƒ  YZ d S(   iÿÿÿÿN(   t   g_debug(   t   timert
   SatManagerc           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   sj   | |  _  | |  _ t |  _ t |  _ t |  _ t |  _ t j ƒ  |  _	 t j ƒ  |  _
 i  |  _ i  |  _ d  S(   N(   t   settingst   playerTrackert   Truet   team1_sat_readyt   team2_sat_readyt   team1_hasSatellitet   team2_hasSatellitet   hostt   timer_getWallTimet   team1_lastScanTimet   team2_lastScanTimet   team1_scan_resultt   team2_scan_result(   t   selfR   R   (    (    s`   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\SatManager.pyt   __init__
   s    							c         C   so   | d k r' t  |  _ t j ƒ  |  _ n' | d k rN t  |  _ t j ƒ  |  _ n  t j |  j	 d |  j
 | ƒ d  S(   Ni   i   t   SAT_SCAN_INTERVAL(   t   FalseR   R
   R   R   R   R   R   t   onceR   t	   enableSat(   R   t   team(    (    s`   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\SatManager.pyt
   disableSat   s    		c         C   s4   | d k r t  |  _ n | d k r0 t  |  _ n  d  S(   Ni   i   (   R   R   R   (   R   R   (    (    s`   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\SatManager.pyR       s    c         C   s  t  |  _ t  |  _ x¿ t j j d ƒ D]« } | j ƒ  sÐ | j ƒ  rG q% t | d ƒ rh | j	 ƒ  d k  s% |  j
 d
 | j ƒ  ƒ d k  rŒ q% n  | j |  j d k r® t |  _ q% | j |  j d k r% t |  _ q% q% Wt rt j d |  j |  j f ƒ t j d	 |  j |  j f ƒ n  d  S(   Ns1   dice.hfe.world.ObjectTemplate.PlayerControlObjectt	   getDamageg{®Gáz„?g        gš™™™™™¹?t   TEAM1_SATELLITE_NAMEt   TEAM2_SATELLITE_NAMEs*   Team 1 sat ready: %s; Team 2 sat ready: %ss0   Team 1 hasSatellite: %s; Team 2 hasSatellite: %s(   g        g        g        (   R   R   R	   t   bf2t   objectManagert   getObjectsOfTypet
   getIsWreckt   getIsRemoteControlledt   hasattrR   t   getVectorDistancet   getPositiont   templateNameR   R   R    t   logt   outputR   R   (   R   t   pco(    (    s`   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\SatManager.pyt   renewSatState&   s    		?c         C   sJ   |  j  ƒ  | d k r& |  j o% |  j S| d k rB |  j oA |  j St Sd  S(   Ni   i   (   R'   R   R   R	   R   R   (   R   R   (    (    s`   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\SatManager.pyt   isAvailable9   s    
c         C   s.   | d k r |  j  S| d k r& |  j Sd  Sd  S(   Ni   i   (   R   R   (   R   R   (    (    s`   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\SatManager.pyt   getLastScanResultB   s
    c         C   sJ  |  j  | ƒ s t S| d k r1 |  j } d } n" | d k rO |  j } d } n t St rm t j d | ƒ n  | j ƒ  |  j j	 } | s£ t rŸ t j d ƒ n  t Sx“ | D]‹ } | | } | j
 | k rª | j rª | j j ƒ  rª | j j ƒ  o| j j ƒ  j |  j d k rª | j | j | j j ƒ  f | | <qª qª W|  j | ƒ t S(   Ni   i   s)   SatManager: Team %s start satellite scan!s(   SatManager: playerTracker not available!t   SAT_SCAN_EXCLUDE_KITS(   R(   R   R   R   R    R$   R%   t   clearR   t   playerStatesR   t   alivet   playert
   getVehiclet   getKitR#   R   t   positiont   velRateR   R   (   R   R   t
   playerInfot	   enemyTeamR,   t   indext   playerState(    (    s`   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\SatManager.pyt   startSatScanJ   s.     				 
 
V)c         C   s¥   d d d g } t  j | d | d ƒ | d <t  j | d | d ƒ | d <t  j | d | d ƒ | d <t  j | d | d | d | d | d | d ƒ S(   Ng        i    i   i   (   t   matht   fabst   sqrt(   R   t   pos1t   pos2t   diffVec(    (    s`   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\SatManager.pyR!   c   s
    (
   t   __name__t
   __module__R   R   R   R'   R(   R)   R7   R!   (    (    (    s`   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\SatManager.pyR      s   									(    (	   R
   R   R8   t   randomR$   t   artySettingsR    R   R   (    (    (    s`   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\SatManager.pyt   <module>   s   