def damage_client(self, target, client, damage, gun, dx, dy, dz): v = vec(dx, dy, dz).div(DMF).rescale(DNF) target.state.receive_damage(damage) with self.broadcastbuffer(1, True) as cds: swh.put_damage(cds, target, client, damage) if target == client: #target.state.setpushed() pass elif not v.iszero(): if target.state.health <= 0: swh.put_hitpush(cds, target, gun, damage, v) else: with target.sendbuffer(1, True) as cds: swh.put_hitpush(cds, target, gun, damage, v) #target.state.setpushed() if target.state.health < 1: target.state.state = client_states.CS_DEAD target.state.deaths += 1 if self.gamemode.hasteams and client.team == target.team: client.state.frags -= 1 else: client.state.frags += 1 swh.put_died(cds, target, client)
def on_client_suicide(self, client): with self.broadcastbuffer(1, True) as cds: swh.put_died(cds, client, client) client.state.state = client_states.CS_DEAD