³ò
˜õÜNc           @   sß  d  Z  d d k Z d d k Z d d k l Z d d k Z d d k l Z d d k l	 Z	 d d k
 l Z d d k l Z d d k l Z d d	 k l Z d d
 k l Z d d k l Z e ƒ  Z d e _ d e _ d e _ d d i d ƒ d i ƒ  d e _ d g e _ e i d ƒ Z e i d ƒ Z e i d ƒ Z e i d ƒ Z h  Z  d e! f d „  ƒ  YZ" e" ƒ  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d  „  Z+ d! „  Z, d" „  Z- d# „  Z. d$ „  Z/ d S(%   sj   
$Rev: 571 $
$LastChangedBy: satoon101 $
$LastChangedDate: 2011-10-24 01:05:16 -0400 (Mon, 24 Oct 2011) $
iÿÿÿÿN(   t	   getPlayer(   t	   AddonInfo(   t   Player(   t   UseridError(   t   setAttribute(   t   deleteAttribute(   t	   centermsg(   t   saytext2(   t   GG_Multi_Levelt   gg_multi_levels   GG Multi Levels   GG Dev Teams   5.1.%ss   $Rev: 571 $s   $Rev: i   i    t   gg_multi_level_tk_resett   gg_multi_level_speedt   gg_multi_level_gravityt   GravityManagerc           B   sD   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   sO   
    Class to manager the tick listener, and to manage the players gravity
    c         C   s   h  |  _  d S(   s*   
        Create 2 self. variables
        N(   t   gravityList(   t   self(    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyt   __init__?   s    c         C   sê   t  | ƒ } t |  i ƒ p t i d d |  i ƒ n | |  i j o |  i | ƒ n t i d | ƒ oD h  t i	 | d ƒ d <| d <t i	 | d ƒ d <|  i | <n) h  d	 d <| d <d
 d <|  i | <|  i
 | | ƒ d S(   sþ   
        Check if there are already any players in the gravityChange list.
        If there isn't, start the tick listener. Following this, check
        if the userid is in the dictionary, if so, remove them. Then create
        a new instance.
        g      Ð?t   gravity_checkt   userids   CBasePlayer.m_fFlagst   lastairvaluet   gravitys   CBaseEntity.movetypet   lastmovementvaluei    i   N(   t   intt   lenR   t
   gamethreadt   delayednamet   _tickert   removeGravityChanget   est   existst   getplayerpropt   _resetGravity(   R   R   t   amount(    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyt   addGravityChangeE   s"    					c         C   s˜   t  | ƒ } | |  i j o |  i | =|  i | d ƒ n t i i d | d ƒ t |  i ƒ p2 x |  i D] } t | d ƒ ql Wt i d ƒ n d S(   sé   
        Check if the player is in the dictioanry. If so, reset their gravity
        to 1 and delete their instance from the dictionary. If there are no
        more players within the gravityList, remove the tick listener.
        g      ð?s   es_xfire %s !self s   addoutput "gravity 1.0" 0.1 1R   N(	   R   R   R   R   t   servert   queuecmdR   R   t   cancelDelayed(   R   R   t   player(    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyR   e   s    

 c         C   s8   x |  i  D] } t | d ƒ q
 W|  `  t i d ƒ d S(   sŒ   
        Loop through all the players, reset their gravity to 1, delete the
        gravity list then unregister the tick listener.
        g      ð?R   N(   R   R   R   R$   (   R   R%   (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyt   deleteGravityListy   s
    
 c         C   s÷   xÚ |  i  D]Ï } y¼ t i d | ƒ o( t i | d ƒ } t i | d ƒ } n d } d } |  i  | d | j p |  i  | d | j o |  i | |  i  | d ƒ n | |  i  | d <| |  i  | d <Wq
 q
 q
 Xq
 Wt i d	 d
 |  i ƒ d S(   sW   
        Here we loop through all of the players, and check their gravity etc.
        R   s   CBasePlayer.m_fFlagss   CBaseEntity.movetypei    i   R   R   R   g      Ð?R   N(   R   R   R   R   R   R   R   R   (   R   R%   t   newavalt   newmval(    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyR   …   s"    
 	c         C   s    t  i i d | d | ƒ d  S(   Ns   es_xfire %s !self addoutput s   "gravity %s" 0.1 1(   R   R"   R#   (   R   R   R    (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyR   ¡   s    (	   t   __name__t
   __module__t   __doc__R   R!   R   R&   R   R   (    (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyR   ;   s   		 			c           C   s$   t  d d d ƒ t  d d g  ƒ d  S(   Ns   #allt   multiLevelsi    t   multiLevelEntities(   R   (    (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyt   load¬   s    c          C   sT   x) t  D]! }  t i d |  ƒ t |  ƒ q Wt i ƒ  t d d ƒ t d d ƒ d  S(   Ns   %i_multilevels   #allR,   R-   (   t   currentMultiLevelR   R$   t   remove_multi_levelR   R&   R   (   R   (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyt   unload²   s     
c         C   s&   t  |  d ƒ } d | _ g  | _ d  S(   NR   i    (   R   R,   R-   (   t	   event_vart   ggPlayer(    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyt   player_activateÆ   s    	c         C   s‹   t  |  d ƒ } | t j o, t | ƒ t i | ƒ t i d | ƒ n y t | d ƒ t | d ƒ Wn t t	 f j
 o d  Sn Xd  S(   NR   s   %i_multilevelR,   R-   (
   R   R/   R0   R   R   R   R$   R   t
   ValueErrorR   (   R2   R   (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyt   player_disconnectÎ   s    
c         C   s}   t  |  d ƒ } | t j o t i d | ƒ t | ƒ n |  d |  d j o t  t ƒ o d  Sqj n d t | ƒ _ d  S(   NR   s   %i_multilevelt   es_attackerteamt   es_userteami    (   R   R/   R   R$   R0   R
   R   R,   (   R2   R   (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyt   player_deathå   s    c         C   s=   x, t  D]$ } t i d | ƒ t i | ƒ q Wt  i ƒ  d  S(   Ns   %i_multilevel(   R/   R   R$   R   R   t   clear(   R2   R   (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyt   es_map_startú   s
     c         C   s   t  ƒ  d  S(   N(   t   stop_multi_levelers(   R2   (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyt   round_start  s    c         C   s   t  ƒ  d  S(   N(   R<   (   R2   (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyt   gg_win  s    c         C   só   t  |  d ƒ } t  |  d ƒ } | | j o d  Sn | p d  Sn |  d |  d j o d  Sn t | ƒ } | i d 7_ | i t  t ƒ j o] | t j o t i d | ƒ t | ƒ n t | ƒ d | _ t i	 d d | t | ƒ n d  S(	   NR   t   attackerR8   R7   i   s   %i_multileveli    i
   (
   R   R   R,   R	   R/   R   R$   R0   t   do_multi_levelR   (   R2   R   R?   R3   (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyt
   gg_levelup  s$    
	c          C   so   x^ t  i ƒ  D]P }  t |  ƒ } d | _ |  t j o t i d |  ƒ t |  ƒ n g  | _ q Wt i	 ƒ  d  S(   Ni    s   %i_multilevel(
   R   t   getUseridListR   R,   R/   R   R$   R0   R-   R:   (   R   R3   (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyR<   >  s     	c         C   s©  t  i d |  ƒ p d  Sn t  i |  ƒ } t d d h  | d <ƒ t d t |  ƒ i d h  | d <ƒ t |  ƒ i d ƒ } | t |  <t	 i
 |  d ƒ } t	 i | ƒ } d |  } | d	 |  7} | d
 |  7} | d |  7} | d |  7} | d |  7} t  i i | ƒ t t ƒ d t |  ƒ _ t t ƒ d j o1 t t ƒ d j o t i |  t t ƒ d ƒ n | o t |  ƒ i i | ƒ n t d |  d |  ƒ } | i ƒ  d  S(   NR   s   #allt   CenterMultiLevelledt   namet   MultiLevelledt
   multilevelt	   env_sparks+   es_xfire %s env_spark SetParent !activator;s1   es_xfire %s env_spark AddOutput "spawnflags 896";s1   es_xfire %s env_spark AddOutput "angles -90 0 0";s.   es_xfire %s env_spark AddOutput "magnitude 8";s0   es_xfire %s env_spark AddOutput "traillength 3";s    es_xfire %s env_spark StartSparkg      Y@id   i    g{®Gáz„?t   leveler(   R   R   t   getplayernameR   R   R   t   indext	   emitsoundR/   t   spet   giveNamedItemt   getIndexOfEntityR"   R#   R   R   R    t   speedR   R   R!   R-   t   appendR   t   fire(   R   RD   t   soundt   spark_instancet   spark_indext   cmdt   gg_multi_level_event(    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyR@   S  s.    %

&c         C   s¬   t  i d |  ƒ o• d t |  ƒ _ t i |  ƒ t |  ƒ } xK | i o@ | i i ƒ  } t  i	 d ƒ } | | j o t
 i | ƒ q> q> Wt  i |  t |  ƒ t |  =n d  S(   NR   g      ð?RG   (   R   R   R    RO   R   R   R   R-   t   popt   getEntityIndexesRL   t   removeEntityByIndext	   stopsoundR/   (   R   R3   t   indt   validIndexes(    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pyR0   „  s    (0   R+   R   R   t	   playerlibR    RL   t   gungame51.core.addons.shortcutsR   t   gungame51.core.playersR   t   gungame51.core.players.playersR   t    gungame51.core.players.shortcutsR   R   t"   gungame51.core.messaging.shortcutsR   R   t   gungame51.core.eventsR   t   infoRD   t   titlet   authort   splitt   versiont   translationst	   ServerVarR	   R
   R   R   R/   t   objectR   R   R.   R1   R4   R6   R9   R;   R=   R>   RA   R<   R@   R0   (    (    (    sr   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/scripts/included/gg_multi_level/gg_multi_level.pys   <module>   sJ   				$	k										/		1