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))
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)
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)
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)
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)