ó
ÜøhYc           @   sƒ   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 l m Z d d d „  ƒ  YZ	 d S(   iÿÿÿÿN(   t	   BF2Object(   t   g_debug(   t   timert   ArtyManagerc           B   sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C   sY   | |  _  d |  _ d |  _ t |  _ t |  _ t j ƒ  |  _ t j ƒ  |  _	 |  j
 ƒ  d  S(   Ni    (   t   settingst   team1_arty_numt   team2_arty_numt   Truet   team1_arty_readyt   team2_arty_readyt   hostt   timer_getWallTimet   team1_lastArtyTimet   team2_lastArtyTimet   renewArtyState(   t   selfR   (    (    sa   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\ArtyManager.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   ARTY_ROUND_INTERVAL(   t   FalseR   R
   R   R   R	   R   R   t   onceR   t
   enableArty(   R   t   team(    (    sa   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\ArtyManager.pyt   disableArty   s    		c         C   s4   | d k r t  |  _ n | d k r0 t  |  _ n  d  S(   Ni   i   (   R   R   R	   (   R   R   (    (    sa   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\ArtyManager.pyR   !   s    c         C   s'  d |  _  d |  _ 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´ |  j  d 7_  q% | j |  j d	 k r% |  j d 7_ q% q% Wt r#t j d
 |  j  |  j f ƒ t j d |  j |  j f ƒ n  d  S(   Ni    s1   dice.hfe.world.ObjectTemplate.PlayerControlObjectt	   getDamageg{®Gáz„?g        gš™™™™™¹?t   TEAM1_ARTY_NAMEi   t   TEAM2_ARTY_NAMEs(   Team 1 arty num: %s; Team 2 arty num: %ss,   Team 1 arty ready: %s; Team 2 arty ready: %s(   g        g        g        (   R   R   t   bf2t   objectManagert   getObjectsOfTypet
   getIsWreckt   getIsRemoteControlledt   hasattrR   t   getVectorDistancet   getPositiont   templateNameR   R   t   logt   outputR   R	   (   R   t   pco(    (    sa   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\ArtyManager.pyR   '   s    		?c         C   sV   |  j  ƒ  | d k r, |  j d k o+ |  j S| d k rN |  j d k oM |  j St Sd  S(   Ni   i    i   (   R   R   R   R   R	   R   (   R   R   (    (    sa   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\ArtyManager.pyt   isAvailable?   s    
c         C   sd   t  r" t j d | d | ƒ n  |  j | ƒ r\ |  j | | |  j d ƒ |  j | ƒ t St Sd  S(   Ns   Team %s:s(   Requesting artillery strike at %s/%s/%s!t   ARTY_BURSTSIZE(	   R   R#   R$   R&   t   spawnArtyAtR   R   R   R   (   R   R   t   position(    (    sa   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\ArtyManager.pyt   startArtyAtI   s     c   	      C   s  | d k r d  Sd } | d k r. |  j  } n	 |  j } | d k r] t rY t j d ƒ n  d  S| d k rv |  j d p€ |  j d } xV t | ƒ D]H } t | ƒ } |  j | ƒ } | j	 | ƒ t r t j d | ƒ q q Wt
 j |  j d |  j | | | d ƒ d  S(   Ni    i   s   No artillery available!t   TEAM1_ARTY_SPAWNER_NAMEt   TEAM2_ARTY_SPAWNER_NAMEs#   Artillery object spawn at %s/%s/%s!t   ARTY_FIRE_INTERVAL(   R   R   R   R#   R$   R   t   rangeR    t   rndDevPositiont   setPositionR   R   R(   (	   R   R   R)   t
   roundsLeftt   arty_numt   arty_spwnamet   it   artySpwt   pos(    (    sa   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\ArtyManager.pyR(   T   s$    	 & c         C   s‰   t  j  ƒ  |  j d } t  j  ƒ  d t j } | d | t j | ƒ | d |  j d t  j  ƒ  |  j d | d | t j | ƒ f S(   Nt   ARTY_DEVIATION_RADIUSi   i    i   t   ARTY_SPAWN_HEIGHTt   ARTY_SPAWN_HEIGHT_RANDOM(   t   randomR   t   matht   pit   cost   sin(   R   R)   t   rt   th(    (    sa   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\ArtyManager.pyR/   j   s
    '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   (   R;   t   fabst   sqrt(   R   t   pos1t   pos2t   diffVec(    (    sa   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\ArtyManager.pyR    r   s
    (   t   __name__t
   __module__R   R   R   R   R&   R*   R(   R/   R    (    (    (    sa   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\ArtyManager.pyR   	   s   						
			(    (
   R
   R   R;   R:   R#   R    t   artySettingsR   R   R   (    (    (    sa   D:\Program files(unsetuped)\Battlefield 2\mods\NModvb\python\game\gamemodes\aiArty\ArtyManager.pyt   <module>   s   