Beispiel #1
0
class Grenade(Projectile):
    def __init__(self, name, image, damage, splash_damage):
        super(Gun, self).__init__(name, image, weight, damage, 5, 10)
        self.splash_damage = splash_damage
    
    def explode(self):
        pass



class FragGrenade(Grenade):
    
    ITEM_CODE = 210
    
    def __init__(self):
        super(Grenade, self).__init__('Frag Grenade', 'frag_grenade.png', 8, 20, 15)
    
    def explode(self):
        # TODO: Blast radius.
        pass


ITEMS = (
    Phone,
)

ITEM_CODES = {item.ITEM_CODE for item in ITEMS}

ITEM_CODES_REVERSE_LOOKUP = reverse_dict(ITEM_CODES)
Beispiel #2
0
# OPT: Create bytes in advance for concatenation.
CLIENT_CODES_BYTES = {k: bytes((v,)) for k, v in CLIENT_CODES.items()}

EQUIP_SLOT_CODES = {
    CLIENT_CODES['equip_slot_1']: 1,
    CLIENT_CODES['equip_slot_2']: 2,
    CLIENT_CODES['equip_slot_3']: 3,
    CLIENT_CODES['equip_slot_4']: 4,
    CLIENT_CODES['equip_slot_5']: 5,
    CLIENT_CODES['equip_slot_6']: 6,
    CLIENT_CODES['equip_slot_7']: 7,
    CLIENT_CODES['equip_slot_8']: 8,
    CLIENT_CODES['equip_slot_9']: 9,
}

SERVER_CODES_REVERSE_LOOKUP = reverse_dict(SERVER_CODES)
CLIENT_CODES_REVERSE_LOOKUP = reverse_dict(CLIENT_CODES)


# Validation

# Networking

VALID_IP_HOSTNAME_CHARS = set(ascii_letters) | set(digits) | {'-', '.'}


# ip and hostname regexes sourced from http://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address
REGEXS = {
    'ip': b"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
    'hostname': b"^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$",
}