Exemplo n.º 1
0
    def send(self, user_ID, page=1, reset_navigation=True):
        """Build the popup afresh and send it to the user.

        Arguments:
        user_ID - the unique session ID of the user who should receive the
        popup.
        page (Keyword Default: 1) - the page of the menu that should be sent
        to the user.
        reset_navigation (Keyword Default: True) - whether or not the player's
        navigation history should be forgotten.

        """
        if user_ID in self.players:
            player = self.players[user_ID]
            if player._delay is not None:
                player._delay.stop()
            if reset_navigation:
                del player.history[:]
                del player.identifiers[:]
        else:
            player = self.players[user_ID] = _Player()
            player.user_ID = user_ID
        if self.get_items is not None:
            player.items[:] = self.get_items(user_ID)
        # As a result of valve's initiative, a value of 0 passed to the
        # timeout parameter no longer means infinite. The menu will
        # automatically disappear after about 5 seconds so it needs to be
        # constantly resent.
        player._delay = delays.Delay(es.menu, 0, user_ID,
                                     *self._build(user_ID, page))
        player._delay.start(4.5, True, True)
        player.popup = self, page
        player.history.append((self, page))
Exemplo n.º 2
0
def _level_change(user_ID, player_perk, old_level, new_level):
    if new_level == 0:
        if user_ID in _delays:
            delay = _delays.pop(user_ID)
            if delay.running:
                delay.stop()
        return
    if old_level == 0:
        delay = _delays[user_ID] = delays.Delay(_regenerate, user_ID)
        if not players.Player(user_ID).dead:
            delay.start(5, True)
Exemplo n.º 3
0
def player_spawn(event_var):
    user_ID = int(event_var["userid"])
    if players.Player(user_ID).team_ID not in (players.TERRORIST,
                                               players.COUNTER_TERRORIST):
        return
    if rpg.get_level(user_ID, _regeneration) == 0:
        return
    delay = _delays.get(user_ID)
    if delay is None:
        delay = _delays[user_ID] = delays.Delay(_regenerate, user_ID)
        delay.start(5, True)
    elif not delay.running:
        delay.start(5, True)
def _level_change(user_ID, player_perk, old_level, new_level):
    if new_level == 0:
        if user_ID in _delays:
            delay = _delays.pop(user_ID)
            if delay.running:
                delay.stop()
    else:
        player = players.Player(user_ID)
        replenish_iterval = _clip_replenish.perk_calculator(new_level)
        if old_level == 0:
            delay = _delays[user_ID] = delays.Delay(_replenish_clip, player)
            if not player.dead:
                delay.start(replenish_iterval, True)
        else:
            delay = _delays.get(user_ID)
            if delay is None:
                delay = _delays[user_ID] = delays.Delay(
                    _replenish_clip, player)
                if not player.dead:
                    delay.start(replenish_iterval, True)
            elif delay.running:
                delay.interval = replenish_iterval
def player_spawn(event_var):
    user_ID = int(event_var["userid"])
    player = players.Player(user_ID)
    if player.team_ID not in (players.TERRORIST, players.COUNTER_TERRORIST):
        return
    clip_replenish_level = rpg.get_level(user_ID, _clip_replenish)
    if clip_replenish_level == 0:
        return
    delay = _delays.get(user_ID)
    if delay is None:
        delay = _delays[user_ID] = delays.Delay(_replenish_clip, player)
        delay.start(_clip_replenish.perk_calculator(clip_replenish_level),
                    True)
    elif not delay.running:
        delay.start(_clip_replenish.perk_calculator(clip_replenish_level),
                    True)
Exemplo n.º 6
0
def player_hurt(event_var):
    victim_ID = int(event_var["userid"])
    if (int(event_var["attacker"]) == players.WORLD
            or int(event_var["hitgroup"]) != 1):
        return
    adrenaline_level = rpg.get_level(victim_ID, _adrenaline)
    if adrenaline_level == 0:
        return
    player = players.Player(victim_ID)
    player.speed = _adrenaline.perk_calculator(adrenaline_level)
    player.colour = (255, 0, 0, 255)
    delay = _delays.get(victim_ID)
    if delay is None:
        delay = _delays[victim_ID] = delays.Delay(_remove_effects, victim_ID)
        delay.start(1.2)
    else:
        if delay.running:
            delay.stop()
        delay.start(1.2)
Exemplo n.º 7
0
def player_hurt(event_var):
    victim_ID = int(event_var["userid"])
    attacker_ID = int(event_var["attacker"])
    if (attacker_ID == players.WORLD
            or list(weapons.weapon_types_by_names(
                event_var["weapon"]))[0].CATEGORY != weapons.CATEGORY_MELEE):
        return
    ice_stab_level = rpg.get_level(attacker_ID, _ice_stab)
    if ice_stab_level == 0:
        return
    player = players.Player(victim_ID)
    player.speed = _ice_stab.perk_calculator(ice_stab_level)
    player.colour = (0, 255, 0, 255)
    delay = _delays.get(victim_ID)
    if delay is None:
        delay = _delays[victim_ID] = delays.Delay(_remove_effects, victim_ID)
        delay.start(1.5)
    else:
        if delay.running:
            delay.stop()
        delay.start(1.5)