³ò
$[êNc           @   s°  d  Z  d d k Z d d k l Z d d k l Z d d k	 Z
 d d k l Z d d k l Z d d k Td 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 d ƒ Z e i  d ƒ Z! d e" f d „  ƒ  YZ# d e$ f d „  ƒ  YZ% d e& f d „  ƒ  YZ' d e$ f d „  ƒ  YZ( d e e e e e f d „  ƒ  YZ) d e) e f d „  ƒ  YZ* d e f d  „  ƒ  YZ+ d S(!   sj   
$Rev: 594 $
$LastChangedBy: satoon101 $
$LastChangedDate: 2011-12-12 23:49:03 -0500 (Mon, 12 Dec 2011) $
iÿÿÿÿN(   t	   getPlayer(   t   getWeaponList(   t   AFK(   t   PlayerCallbacks(   t   *(   t   PlayerLevels(   t   PlayerMessaging(   t   PlayerSounds(   t   PlayerWeapons(   t
   PlayerWinsi   (   t   _PlayerMeta(   t   CustomAttributeCallbacks(   t	   SoundPacks   #allt   gg_soundpackt   UseridErrorc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   .   s   t   PreventLevelc           B   sr   e  Z d  e f d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 e
 d „  ƒ Z e
 d	 „  ƒ Z RS(
   t   PreventLevelAddonsc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   t  i |  | ƒ d  S(   N(   t   listt   append(   t   selft   addon(    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   4   s    c         C   s   t  i |  | ƒ d  S(   N(   R   t   extend(   R   t   addons(    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   7   s    c         C   s   |  i  | ƒ d  S(   N(   R   (   R   t   indexR   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt   insert:   s    c         C   s%   | |  j o t  i |  | ƒ n d  S(   N(   R   t   remove(   R   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   =   s    (   R   R   R   R   R   R   (    (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   3   s   			c         C   s$   |  i  ƒ  |  d <|  i  ƒ  |  d <d  S(   Nt   levelupt	   leveldown(   R   (   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt   __init__A   s    c         C   s   |  d |  d S(   NR   R   (    (   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt   __call__E   s    c         C   s&   |  d i  | ƒ |  d i  | ƒ d  S(   NR   R   (   R   (   R   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   H   s    c         C   s&   |  d i  | ƒ |  d i  | ƒ d  S(   NR   R   (   R   (   R   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   L   s    c         C   s,   |  d i  | | ƒ |  d i  | | ƒ d  S(   NR   R   (   R   (   R   R   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   P   s    c         C   s&   |  d i  | ƒ |  d i  | ƒ d  S(   NR   R   (   R   (   R   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   T   s    c         C   s   |  d S(   NR   (    (   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   X   s    c         C   s   |  d S(   NR   (    (   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   \   s    (   R   R   R   R   R   R   R   R   R   R   t   propertyR   R   (    (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   2   s   						t   StripExceptionsc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s#   |  i  | ƒ } t i |  | ƒ d  S(   N(   t   format_weaponR   R   (   R   t   weapon(    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   b   s    c         C   s>   g  } | D] } | |  i  | ƒ q ~ } t i |  | ƒ d  S(   N(   R"   R   R   (   R   t   weaponst   _[1]t   x(    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   f   s    *c         C   s    |  i  | ƒ } |  i | ƒ d  S(   N(   R"   R   (   R   R   R#   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   j   s    c         C   s4   |  i  | ƒ } | |  j o t i |  | ƒ n d  S(   N(   R"   R   R   (   R   R#   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   n   s    c         C   sV   t  | ƒ } | i d ƒ p d | } n |  i | ƒ p t d | ƒ ‚ n | d S(   Nt   weapon_s	   weapon_%ss   "%s" is not a valid weapon.i   (   t   strt
   startswitht   is_validt
   ValueError(   R   R#   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR"   s   s    c         C   s
   | t  j S(   N(   t   _VALID_WEAPONS(   R   R#   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR*   {   s    (   R   R   R   R   R   R   R"   R*   (    (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR!   a   s   					t   _PlayerContainerc           B   s;   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s“   (PRIVATE) A class-based dictionary that contains instances of
    Player. This dictionary stores and retrieves players based on their userid.

    c         O   s-   d |  i  j o t i |  ƒ |  _ n |  i S(   Nt   _the_instance(   t   __dict__t   dictt   __new__R.   (   t   clst   pt   k(    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR1   „   s    c         C   sÌ   y t  | ƒ } Wn) t t f j
 o t d | ƒ ‚ n X| |  j om t i d | ƒ p t d d | d ƒ ‚ n |  i | ƒ } | p t | ƒ |  | <q¶ |  i | | ƒ n t	 t
 |  ƒ i | ƒ S(   Ns   The userid "%s" is invalid.t   userids%   Unable to retrieve or create a players    instance for userid "%s". s*   The userid can not be found on the server.(   t   intR+   t	   TypeErrorR   t   _est   existst   _find_by_uniqueidt   _BasePlayert   _copy_player_instancet   superR-   t   __getitem__(   R   R5   t	   pInstance(    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR>   Š   s    c         C   sq   t  | ƒ i t ƒ } g  } |  i ƒ  D]) } |  | i | j o | |  | q& q& ~ } | o | i ƒ  Sn d S(   sÈ   Search for the player's uniqueid to see if they played previously
        in this round. If a match is found, the Player instance is returned. If
        no match is found, None is returned.

        N(   t
   _getPlayert   uniqueidt   Truet   copyt   steamidt   popt   None(   R   R5   RD   R%   R&   t   search(    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR:   ¢   s
    Cc         C   s>   t  | ƒ |  | <| i |  | _ | i |  | _ |  | i =d S(   s“   Copies the old _BasePlayer instance to the new userid key, then
        deletes they old userid key, and updates the new instance values.

        N(   R;   t   levelt   _levelt	   multikillR5   (   R   R5   R?   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR<   ³   s    c         C   sS   t  i ƒ  } x@ |  i ƒ  D]2 } | | j o |  | i | ƒ q n |  | =q Wd S(   sz   Reinitializes all existing players on the server and removes players
        that no longer exist on the server.

        N(   R8   t   getUseridListRC   R   (   R   t
   useridListR5   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt   resetÄ   s     (   R   R   t   __doc__R1   R>   R:   R<   RM   (    (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR-      s   				t   _ExtendedPlayerBasec           B   s   e  Z d  Z RS(   sq   Class that extends the functionality of levels, sound, messaging, and
    weapons to the _BasePlayer class.

    (   R   R   RN   (    (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyRO   Ö   s   R;   c           B   sC  e  Z e d  e d d ƒ d e d e ƒ d e d e ƒ d e d d ƒ d e ƒ  d	 e ƒ  d
 e d e ƒ d e d e	 ƒ ƒ Z
 e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z d „  Z d „  Z e d e d e ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e d „ Z RS(   RJ   t	   min_valuei    t   _afkt   instancet	   soundpackt   _useridi   t   _steamidt   _indext   _preventlevelt   stripexceptionsc         C   s   |  i  S(   s   Returns the player's userid.(   RT   (   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR5   ð   s    c         C   s   |  i  S(   s3   Returns the player's UniqueID value from playerlib.(   RU   (   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyRD   ö   s    c         C   s   |  i  S(   s*   Returns the player's index from playerlib.(   RV   (   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   ü   s    c         C   s   |  i  S(   N(   RQ   (   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt   afk  s    c         C   s   |  i  S(   N(   RW   (   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt   preventlevel  s    c         C   s   t  i |  i ƒ S(   s"   Returns the player's current team.(   R8   t   getplayerteamR5   (   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt	   _get_team  s    c      	   C   s  t  i d |  i ƒ p t d |  i ƒ ‚ n y0 t | ƒ } | t d d ƒ j o
 t ‚ n Wn) t t f j
 o t d | ƒ ‚ n X|  i | j o d  Sn t i	 |  i | ƒ | d j o d  Sn t
 |  i ƒ } | d j o d t d ƒ | _ n d t d ƒ | _ d  S(   NR5   s   userid (%s) doesn't exist.i   i   s   "%s" is an invalid teami   s	   player/%st   t_arctict
   t_guerillat   t_leett	   t_phoenixt   ct_gignt   ct_gsg9t   ct_sast   ct_urban(   R]   R^   R_   R`   (   Ra   Rb   Rc   Rd   (   R8   R9   R5   R+   R6   t   xrangeR7   t   teamt   _spet
   switchTeamR@   t   choicet   model(   R   t   valuet   pPlayer(    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt	   _set_team  s&    t   fgett   fsetc         C   sU   t  i |  | ƒ } t | ƒ | _ t | i ƒ i t ƒ | _ t | i ƒ i	 | _
 | S(   N(   t   objectR1   R6   RT   R@   R5   RA   RB   RU   R   RV   (   R2   R5   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR1   9  s
    c         C   s_   t  t |  ƒ i ƒ  t |  i ƒ |  _ d |  _ t ƒ  |  _ t	 t
 t ƒ ƒ |  _ t ƒ  |  _ d  S(   Ni    (   R=   R;   R   R   R5   RQ   RJ   R!   RX   R   R(   R   RS   R   RW   (   R   R5   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR   @  s    	c         C   s)   | d j o t  d | d ƒ ‚ n d  S(   NR5   RH   RZ   RD   RS   RX   RJ   t   winsRf   t   nameR   RY   s!   Unable to delete attribute "%s". s)   This is a required attribute for GunGame.(   s   userids   levels   preventlevels   steamids	   soundpacks   stripexceptionss	   multikills   winss   teams   names   indexs   afk(   t   AttributeError(   R   Rr   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt   __delattr__K  s
     

c         C   s   t  |  | ƒ S(   N(   t   getattr(   R   Rr   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR>   S  s    c         C   s   t  i |  | | ƒ d  S(   N(   Rp   t   __setattr__(   R   Rr   Rk   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt   __setitem__V  s    c         C   s   |  i  | ƒ d  S(   N(   Rt   (   R   Rr   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt   __delitem__Y  s    c         C   s   t  |  i ƒ S(   N(   R(   R5   (   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt   __str__\  s    c         C   s   |  i  S(   N(   R5   (   R   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyt   __int___  s    c         C   sn   t  i d |  i ƒ p d Sn |  i d j  o d Sn t |  i ƒ i o | o d Sn t i |  i ƒ d S(   s   Respawns the player.R5   Ni   (   R8   R9   R5   Rf   R@   t   isdeadRg   t   respawn(   R   t   force(    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR|   b  s    (   R   R   t   make_fieldst   IntegerFieldt   InstanceFieldR   R   t   StringFieldR   R!   t   _fieldsR    R5   RD   R   RY   RZ   R\   Rm   Rf   R1   R   Rt   R>   Rw   Rx   Ry   Rz   t   FalseR|   (    (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR;   ß   s4   				$								t   Playerc           B   s   e  Z d  „  Z RS(   c         C   s   t  ƒ  | S(   N(   R-   (   R2   R5   (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR1   t  s    (   R   R   R1   (    (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pyR„   s  s   (,   RN   t   esR8   t	   playerlibR    R@   t	   weaponlibR   t   _getWeaponListt   speRg   RY   R   t	   callbacksR   t   fieldst   levelsR   t	   messagingR   t   soundsR   R$   R   t   winnersR	   t    R
   R   t   gungame51.core.soundR   R,   t	   ServerVarR   t	   ExceptionR   R0   R   R   R!   R-   RO   R;   R„   (    (    (    sX   /home/saberrider/srcds/css/cstrike/addons/eventscripts/gungame51/core/players/players.pys   <module>   s2   
/W”