Esempio n. 1
0
 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)
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
 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)
Esempio n. 6
0
 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
Esempio n. 7
0
 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")
Esempio n. 8
0
 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")