def __init__(self, m, t): super(best_player, self).__init__(m,t) if t == "boss": dmgDict = battle.damage_dict(m) self.title = "Best player" # Max damage ratio kds = {key: value["kd"] for key, value in dmgDict.iteritems()} self.player, self.weight = max(kds.iteritems(), key=operator.itemgetter(1)) self.explanation = "{:.1f} K/D ratio".format(self.weight)
def __init__(self, m, t): super(liability, self).__init__(m,t) if t == "boss": dmgDict = battle.damage_dict(m) self.title = "Liability" # Max total damage dealt to group FUs = {key: value["damageTaken"] for key, value in dmgDict.iteritems()} self.player, self.weight = max(FUs.iteritems(), key=operator.itemgetter(1)) self.explanation = "{:.1f} HP total taken from group".format(self.weight)
def __init__(self, m, t): super(damp_squib, self).__init__(m,t) if t == "boss": dmgDict = battle.damage_dict(m) self.title = "Damp Squib" # Min damage ratio kds = {key: value["kd"] for key, value in dmgDict.iteritems()} self.player, self.kd = min(kds.iteritems(), key=operator.itemgetter(1)) self.explanation = "{:.1f} K/D ratio".format(self.kd) self.weight = 1./(self.kd + 1)
def __init__(self, m, t): super(useless, self).__init__(m,t) if t == "boss": dmgDict = battle.damage_dict(m) self.title = "Useless" # Min damage dealt attacks = {key: value["damageGiven"] for key, value in dmgDict.iteritems()} self.player, self.hp = min(attacks.iteritems(), key=operator.itemgetter(1)) self.explanation = "{:.1f} HP total attack".format(self.hp) self.weight = 1./(self.hp + 1)
def __init__(self, m, t): super(coward, self).__init__(m,t) if t == "boss": dmgDict = battle.damage_dict(m) self.title = "Coward" # Min number of attacks attacks = {key: value["nrAttacks"] for key, value in dmgDict.iteritems()} self.player, self.num = min(attacks.iteritems(), key=operator.itemgetter(1)) other_players = {key: value["nrAttacks"] for key, value in dmgDict.iteritems() \ if value["nrAttacks"] == self.num} self.weight = 100 if len(other_players) == 1 else -1 self.explanation = "only {} attacks".format(self.num)
def __init__(self, m, t): super(safe_bet, self).__init__(m,t) if t == "boss": dmgDict = battle.damage_dict(m) self.title = "Safe Bet" # Min total damage dealt to group FUs = {key: value["damageTaken"] for key, value in dmgDict.iteritems()} self.player, self.hp = min(FUs.iteritems(), key=operator.itemgetter(1)) self.explanation = "only {:.1f} HP total taken from group".format(self.hp) other_players = {key: value["damageTaken"] for key, value in dmgDict.iteritems() \ if value["damageTaken"] == self.hp} self.weight = 1./(self.hp + 1) if len(other_players) == 1 else -1
def __init__(self, m, t): super(warrior, self).__init__(m,t) if t == "boss": dmgDict = battle.damage_dict(m) self.title = "The Warrior" # Max HP in one attack attacks = {key: value["maxAttack"] for key, value in dmgDict.iteritems()} self.player, self.weight = max(attacks.iteritems(), key=operator.itemgetter(1)) self.explanation = "{:.1f} HP in one attack".format(self.weight) for message in m: if battle.attack.match(message["text"]): player, _, damage_given, _ = battle.attack.search(message["text"]).groups() if player == self.player and float(damage_given) == self.weight: self.quotation = get_relevant_quotation(message["id"], m) break else: self.quotation = ("Couldn't find the message!", "wtf")
def __init__(self, m, t): super(friendly_fire, self).__init__(m,t) if t == "boss": dmgDict = battle.damage_dict(m) self.title = "Friendly Fire" # Max single damage dealt to group FUs = {key: value["maxFU"] for key, value in dmgDict.iteritems()} self.player, self.weight = max(FUs.iteritems(), key=operator.itemgetter(1)) self.explanation = "{:.1f} HP taken from group in one day".format(self.weight) for message in m: if battle.attack.match(message["text"]): player, _, _, damage_taken = battle.attack.search(message["text"]).groups() if player == self.player and float(damage_taken) == self.weight: self.quotation = get_relevant_quotation(message["id"], m) break else: self.quotation = ("Couldn't find the message!", "wtf")