def use(self, user): n = 0 d = 0 dmax = 5 while d != dmax: x = random.randint(1, 10) print(user.name + ' Tushib qoldi ' + str(x)) if x > 10 - user.energy - user.accuracy - user.tempaccuracy - 1: n += 1 d += 1 for a in user.abilities: n = a.onhit(a, n, user) # бонусный урон персонажа if n != 0: n += user.bonusdamage + 3 # уходит энергия user.energy -= 3 utils.damage(user, user.itemtarget, n, 'melee') if n != 0: user.fight.string.add( '🌩' + " |" + user.name + ' SEKIRA teleportatsiyasidan⭕️ foydalanib Oyboltani⛏ ' + user.itemtarget.name + 'ga masofadan uloqtirayabdi. Yetkazildi ' + str(n) + ' zarb!') else: user.fight.string.add( u'\U0001F4A8' + " |" + user.name + ' Oyboltani⛏ otayabdi, lekin tekkiza olmayabdi.') user.itemlist.remove(self) user.throwcd += 2 user.lostweapon = Weapon_list.speareternal del user.itemtarget
def use(self, user): n = 0 d = 0 dmax = 5 while d != dmax: x = random.randint(1, 10) print(user.name + ' Выпало ' + str(x)) if x > 10 - user.energy - user.accuracy - user.tempaccuracy - 1: n += 1 d += 1 for a in user.abilities: n = a.onhit(a, n, user) # бонусный урон персонажа if n != 0: n += user.bonusdamage + 1 # уходит энергия user.energy -= 3 utils.damage(user, user.itemtarget, n, 'melee') if n != 0: user.fight.string.add(u'\U0001F4A5' + " |" + user.name + ' кидает Копье Нарсил в ' + user.itemtarget.name + '. Нанесено ' + str(n) + ' урона!') else: user.fight.string.add(u'\U0001F4A8' + " |" + user.name + ' кидает Копье Нарсил, но не попадает.') user.itemlist.remove(self) user.throwcd += 3 user.lostweapon = Weapon_list.speareternal del user.itemtarget
def use(self, user): n = 0 d = 0 dmax = 5 while d != dmax: x = random.randint(1, 10) print(user.name + ' Tushib qoldi ' + str(x)) if x > 10 - user.energy - user.accuracy - user.tempaccuracy - 1: n += 1 d += 1 for a in user.abilities: n = a.onhit(a, n, user) # бонусный урон персонажа if n != 0: n += user.bonusdamage + 3 # уходит энергия user.energy -= 3 utils.damage(user, user.itemtarget, n, 'melee') if n != 0: user.fight.string.add(u'\U0001F4A5' + " |" + user.name + ' kristal nayzani🔹 otayabdi ' + user.itemtarget.name + '. Yetkazildi ' + str(n) + ' zarb!') else: user.fight.string.add( u'\U0001F4A8' + " |" + user.name + ' kristal nayzani🔹 otayabdi, lekin tekkiza olmayabdi.') user.itemlist.remove(self) user.throwcd += 3 user.lostweapon = Weapon_list.iceman del user.itemtarget
async def damage(self, ctx): """ Calculates damage based on hypothetical stat values. """ stats = { 'strength': 0, 'crit damage': 0, 'weapon damage': 0, 'combat level': 0 } questions = { 'strength': f'{ctx.author.mention}\nHow much **strength** do you want to have?', 'crit damage': f'{ctx.author.mention}\nHow much **crit damage** do you want to have?', 'weapon damage': f'{ctx.author.mention}\nHow much **damage** does your weapon have on the tooltip?', 'combat level': f'{ctx.author.mention}\nWhat is your **combat level**?' } for stat in stats.keys(): ans = await self.prompt_for_stat(ctx, questions[stat]) stats[stat] = ans mob = await self.prompt_for_mobs(ctx) enchant_levels = await ctx.prompt( message= f'{ctx.author.mention}\nDo you want to use **level 5** or **level 6** enchantments?', emoji_list=[('5️⃣', ENCHANTED_BOOK_5), ('6️⃣', ENCHANTED_BOOK_6)]) modifier = stats['combat level'] * 4 for enchantment in MOBS_RELEVANT_ENCHANTS[mob]: perk = ENCHANTMENT_BONUS[enchantment] if callable(perk): modifier += perk(enchant_levels[enchantment]) else: modifier += perk * enchant_levels[enchantment] calculated_dmg = round( damage(stats['weapon damage'], stats['strength'], stats['crit damage'], modifier)) no_crit_dmg = round( damage(stats['weapon damage'], stats['strength'], 0, modifier)) await Embed(ctx=ctx, title=f'Calculated damage').add_field( name='Damage with crit', value=f'{calculated_dmg}').add_field( name='Damage without crit', value=f'{no_crit_dmg}').add_field().add_field( name='Strength', value=f'{stats["strength"]}').add_field( name='Crit damage', value=f'{stats["crit damage"]}%' ).add_field().add_field( name='Weapon damage', value=f'{stats["weapon damage"]}').add_field( name='Combat level', value=f'{stats["combat level"]}' ).add_field().send()
def apply_effects(fight): for p in fight.actors: if p.bleedcounter > 0 and special_abilities.Sturdy.Sturdy in p.abilities: if p.bleedcounter >= 6: fight.string.add(u'\U00002763' + "| Кровотечение отнимает у " + p.name + ' жизнь!') p.hp -= 1 fight.string.add(u'\U00002665' * p.hp + ' |' + str(p.name) + " теряет " + str(1) + " жизнь(ей). Остается " + str(p.hp) + " хп.") p.bleedcounter = 0 p.bloodloss = True else: fight.string.add(u'\U00002763' + "|" + p.name + ' истекает кровью!' + '(' + str(6 - p.bleedcounter) + ')') p.bleedcounter += 1 elif p.bleedcounter > 0: if p.bleedcounter >= 4: fight.string.add(u'\U00002763' + "| Кровотечение отнимает у " + p.name + ' жизнь!') p.hp -= 1 fight.string.add(u'\U00002665' * p.hp + ' |' + str(p.name) + " теряет " + str(1) + " жизнь(ей). Остается " + str(p.hp) + " хп.") p.bleedcounter = 0 p.bloodloss = True else: fight.string.add(u'\U00002763' + "|" + p.name + ' истекает кровью!' + '(' + str(4 - p.bleedcounter) + ')') p.bleedcounter += 1 if p.firecounter > 0: if p.extinguish is True: p.firecounter = 0 p.extinguish = False elif p.offfire == fight.round: fight.string.add(u'\U0001F525' + "| Огонь на " + p.name + ' потух!') p.firecounter = 0 else: utils.damage(None, p, p.firecounter, 'fire') p.energy -= p.firecounter - 1 if p.firecounter - 1 == 0: fight.string.add(u'\U0001F525' + "|" + p.name + ' горит! Получает ' + str(p.firecounter) + " урона.") else: fight.string.add(u'\U0001F525' + "|" + p.name + ' горит! Теряет ' + str(p.firecounter - 1) + " энергии и получает " + str(p.firecounter) + " урона.") if p.stuncounter > 0: p.stuncounter -= 1 if p.stuncounter == 0: fight.string.add(u'\U0001F300' + '|' + p.name + ' приходит в себя.')
def use(self, user): if random.randint(1, 10)<=user.energy + 5: user.fight.string.add(u'\U0001F52A' + " |" + user.name + ' кидает Метательный Нож в ' + user.itemtarget.name + '. Нанесено 1 урона ' + u'\U00002763' + "|" + user.itemtarget.name + ' истекает кровью!') utils.damage(user, user.itemtarget, 1, 'melee') user.itemtarget.bleedcounter += 1 user.itemtarget.bloodloss = False else: user.fight.string.add(u'\U0001F4A8' + " |" + user.name + ' кидает Метательный Нож, но не попадает.') user.itemlist.remove(self) user.energy -= 1 del user.itemtarget
def use(self, user): if random.randint(1, 10) <= user.energy + 5: user.fight.string.add(u'\U0001F52A' + " |" + user.name + ' кидает Метательный Нож в ' + user.itemtarget.name + '. Нанесено 1 урона ' + u'\U00002763' + "|" + user.itemtarget.name + ' истекает кровью!') utils.damage(user, user.itemtarget, 1, 'melee') user.itemtarget.bleedcounter += 1 user.itemtarget.bloodloss = False else: user.fight.string.add(u'\U0001F4A8' + " |" + user.name + ' кидает Метательный Нож, но не попадает.') user.itemlist.remove(self) user.energy -= 1 del user.itemtarget
def apply_effects(fight): for p in fight.actors: if p.bleedcounter > 0 and special_abilities.Sturdy.Sturdy in p.abilities: if p.bleedcounter >= 6: fight.string.add(u'\U00002763' + "| Кровотечение отнимает у " + p.name + ' жизнь!') p.hp -= 1 fight.string.add(u'\U00002665' * p.hp + ' |' + str(p.name) + " теряет " + str(1) + " жизнь(ей). Остается " + str(p.hp) + " хп.") p.bleedcounter = 0 p.bloodloss = True else: fight.string.add(u'\U00002763' + "|" + p.name + ' истекает кровью!' + '(' + str(6-p.bleedcounter) + ')') p.bleedcounter += 1 elif p.bleedcounter > 0: if p.bleedcounter >= 4: fight.string.add(u'\U00002763' + "| Кровотечение отнимает у " + p.name + ' жизнь!') p.hp -= 1 fight.string.add(u'\U00002665' * p.hp + ' |' + str(p.name) + " теряет " + str(1) + " жизнь(ей). Остается " + str(p.hp) + " хп.") p.bleedcounter = 0 p.bloodloss = True else: fight.string.add(u'\U00002763' + "|" + p.name + ' истекает кровью!' + '(' + str(4-p.bleedcounter) + ')') p.bleedcounter += 1 if p.firecounter > 0: if p.extinguish is True: p.firecounter = 0 p.extinguish = False elif p.offfire == fight.round: fight.string.add(u'\U0001F525' + "| Огонь на " + p.name + ' потух!') p.firecounter = 0 else: utils.damage(None, p, p.firecounter, 'fire') p.energy -= p.firecounter - 1 if p.firecounter - 1 == 0: fight.string.add(u'\U0001F525' + "|" + p.name + ' горит! Получает ' + str(p.firecounter) + " урона.") else: fight.string.add(u'\U0001F525' + "|" + p.name + ' горит! Теряет ' + str(p.firecounter - 1) + " энергии и получает " + str(p.firecounter) + " урона.") if p.stuncounter > 0: p.stuncounter -= 1 if p.stuncounter == 0: fight.string.add(u'\U0001F300' + '|' + p.name + ' приходит в себя.')
def apply_effects(fight): for p in fight.actors: if p.bleedcounter > 0 and special_abilities.Sturdy.Sturdy in p.abilities: if p.bleedcounter >= 6: fight.string.add(u'\U00002763' + "| Qon yo`qotish " + p.name + ' dan jonni olib qo`ydi!') p.hp -= 1 fight.string.add(u'\U00002665' * p.hp + ' |' + str(p.name) + " " + str(1) + " ta jonni yo`qotoyabdi. Qoldi " + str(p.hp) + " ta jon.") p.bleedcounter = 0 p.bloodloss = True else: fight.string.add(u'\U00002763' + "|" + p.name + ' qon yo`qotaybdi!' + '(' + str(6-p.bleedcounter) + ')') p.bleedcounter += 1 elif p.bleedcounter > 0: if p.bleedcounter >= 4: fight.string.add(u'\U00002763' + "| Qon yo`qotish " + p.name + ' dan jonni olib qo`ydi!') p.hp -= 1 fight.string.add(u'\U00002665' * p.hp + ' |' + str(p.name) + " " + str(1) + " ta jonni yo`qotoyabdi. Qoldi " + str(p.hp) + " ta jon.") p.bleedcounter = 0 p.bloodloss = True else: fight.string.add(u'\U00002763' + "|" + p.name + ' qon yo`qotaybdi!' + '(' + str(4-p.bleedcounter) + ')') p.bleedcounter += 1 if p.firecounter > 0: if p.extinguish is True: p.firecounter = 0 p.extinguish = False elif p.offfire == fight.round: fight.string.add(u'\U0001F525' + "| Olov " + p.name + ' dagi o`chdi!') p.firecounter = 0 else: utils.damage(None, p, p.firecounter, 'fire') p.energy -= p.firecounter - 1 if p.firecounter - 1 == 0: fight.string.add(u'\U0001F525' + "|" + p.name + ' yonayabdi! U ' + str(p.firecounter) + " ta zarar ko`rdi.") else: fight.string.add(u'\U0001F525' + "|" + p.name + ' yonayabdi! Yoqotdi ' + str(p.firecounter - 1) + " ta energiya va oldi " + str(p.firecounter) + " ta zarar.") if p.stuncounter > 0: p.stuncounter -= 1 if p.stuncounter == 0: fight.string.add(u'\U0001F300' + '|' + p.name + ' o`ziga keldi.')
def use(self, user): if random.randint(1, 10) <= user.energy + 5: user.fight.string.add(u'\U0001F52A' + " |" + user.name + ' Uchar pichoqni otdi va ' + user.itemtarget.name + 'ga 1ta zarb yetkazdi ' + u'\U00002763' + "|" + user.itemtarget.name + ' qon yo`qotayabdi!') utils.damage(user, user.itemtarget, 1, 'melee') user.itemtarget.bleedcounter += 1 user.itemtarget.bloodloss = False else: user.fight.string.add( u'\U0001F4A8' + " |" + user.name + ' Uchar pichoqni otayabdi, lekin tegmayabdi.') user.itemlist.remove(self) user.energy -= 1 del user.itemtarget
def use(self, user): damage = random.randint(1, 2) enemycount = len(utils.get_other_team(user).actors) if enemycount > 2: target1 = utils.get_other_team(user).actors[random.randint( 0, enemycount - 1)] newtargets = list(utils.get_other_team(user).actors) newtargets.remove(target1) target2 = newtargets[random.randint(0, enemycount - 2)] utils.damage(user, target1, damage, 'explosion') utils.damage(user, target2, damage, 'explosion') user.fight.string.add( u'\U0001F4A3' + " |" + user.name + ' 𝗕𝗮𝗹𝗹𝗶𝘀𝘁𝗶𝗸 𝗥𝗮𝗸𝗲𝘁𝗮🚀 𝗼𝘁𝗮𝘆𝗮𝗯𝗱𝗶❕ \n📟𝗣𝗼𝗿𝘁𝗹𝗮𝘀𝗵 𝗸𝘂𝗰𝗵𝗶: ' + str(damage) + '❕ \n📡𝗡𝗶𝘀𝗵𝗼𝗻𝗹𝗮𝗿: ' + target2.name + ' va ' + target1.name + '❕') else: for c in utils.get_other_team(user).actors: utils.damage(user, c, damage, 'melee') user.fight.string.add( u'\U0001F4A3' + " |" + user.name + ' 𝗕𝗮𝗹𝗹𝗶𝘀𝘁𝗶𝗸 𝗥𝗮𝗸𝗲𝘁𝗮🚀 𝗼𝘁𝗮𝘆𝗮𝗯𝗱𝗶!❕ \n📟𝗣𝗼𝗿𝘁𝗹𝗮𝘀𝗵 𝗸𝘂𝗰𝗵𝗶: ' + str(damage) + '❕') user.energy -= 0 user.itemlist.remove(self)
def use(self, user): damage = random.randint(2, 3) enemycount = len(utils.get_other_team(user).actors) if enemycount > 2: target1 = utils.get_other_team(user).actors[random.randint(0, enemycount-1)] newtargets = list(utils.get_other_team(user).actors) newtargets.remove(target1) target2 = newtargets[random.randint(0, enemycount-2)] utils.damage(user, target1, damage, 'explosion') utils.damage(user, target2, damage, 'explosion') user.fight.string.add(u'\U0001F4A3' + " |" + user.name + ' кидает Гранату! Нанесено ' + str(damage) + ' урона по ' + target2.name + ' и ' + target1.name + '.') else: for c in utils.get_other_team(user).actors: utils.damage(user, c, damage, 'melee') user.fight.string.add(u'\U0001F4A3' + " |" + user.name + ' кидает Гранату! Нанесено ' + str( damage) + ' урона.') user.energy -= 2 user.itemlist.remove(self)
def use(self, user): damage = random.randint(2, 3) enemycount = len(utils.get_other_team(user).actors) if enemycount > 2: target1 = utils.get_other_team(user).actors[random.randint(0, enemycount - 1)] newtargets = list(utils.get_other_team(user).actors) newtargets.remove(target1) target2 = newtargets[random.randint(0, enemycount - 2)] utils.damage(user, target1, damage, 'melee') utils.damage(user, target2, damage, 'melee') user.fight.string.add(u'\U0001F47F' + " |" + user.name + ' взрывает труп! Нанесено ' + str(damage) + ' урона по ' + target2.name + ' и ' + target1.name + '.') else: for c in utils.get_other_team(user).actors: utils.damage(user, c, damage, 'melee') user.fight.string.add(u'\U0001F47F' + " |" + user.name + ' взрывает труп! Нанесено ' + str( damage) + ' урона.') user.corpsecounter -= 1 user.itemlist.remove(self)
def use(self, user): damage = random.randint(2, 3) enemycount = len(utils.get_other_team(user).actors) if enemycount > 2: target1 = utils.get_other_team(user).actors[random.randint( 0, enemycount - 1)] newtargets = list(utils.get_other_team(user).actors) newtargets.remove(target1) target2 = newtargets[random.randint(0, enemycount - 2)] utils.damage(user, target1, damage, 'explosion') utils.damage(user, target2, damage, 'explosion') user.fight.string.add(u'\U0001F4A3' + " |" + user.name + ' кидает Гранату! Нанесено ' + str(damage) + ' урона по ' + target2.name + ' и ' + target1.name + '.') else: for c in utils.get_other_team(user).actors: utils.damage(user, c, damage, 'melee') user.fight.string.add(u'\U0001F4A3' + " |" + user.name + ' кидает Гранату! Нанесено ' + str(damage) + ' урона.') user.energy -= 2 user.itemlist.remove(self)
def use(self, user): damage = random.randint(2, 3) enemycount = len(utils.get_other_team(user).actors) if enemycount > 2: target1 = utils.get_other_team(user).actors[random.randint( 0, enemycount - 1)] newtargets = list(utils.get_other_team(user).actors) newtargets.remove(target1) target2 = newtargets[random.randint(0, enemycount - 2)] utils.damage(user, target1, damage, 'melee') utils.damage(user, target2, damage, 'melee') user.fight.string.add(u'\U0001F47F' + " |" + user.name + ' o`likni portlatayabdi! Yetkaziladi ' + str(damage) + ' zarb ' + target2.name + ' va ' + target1.name + 'ga.') else: for c in utils.get_other_team(user).actors: utils.damage(user, c, damage, 'melee') user.fight.string.add(u'\U0001F47F' + " |" + user.name + ' o`likni portlatayabdi! Yetkaziladi ' + str(damage) + ' zarb.') user.corpsecounter -= 1 user.itemlist.remove(self)
def use(self, user): damage = random.randint(2, 3) enemycount = len(utils.get_other_team(user).actors) if enemycount > 2: target1 = utils.get_other_team(user).actors[random.randint( 0, enemycount - 1)] newtargets = list(utils.get_other_team(user).actors) newtargets.remove(target1) target2 = newtargets[random.randint(0, enemycount - 2)] utils.damage(user, target1, damage, 'melee') utils.damage(user, target2, damage, 'melee') user.fight.string.add(u'\U0001F47F' + " |" + user.name + ' взрывает труп! Нанесено ' + str(damage) + ' урона по ' + target2.name + ' и ' + target1.name + '.') else: for c in utils.get_other_team(user).actors: utils.damage(user, c, damage, 'melee') user.fight.string.add(u'\U0001F47F' + " |" + user.name + ' взрывает труп! Нанесено ' + str(damage) + ' урона.') user.corpsecounter -= 1 user.itemlist.remove(self)
def use(self, user): damage = random.randint(2, 3) enemycount = len(utils.get_other_team(user).actors) if enemycount > 2: target1 = utils.get_other_team(user).actors[random.randint( 0, enemycount - 1)] newtargets = list(utils.get_other_team(user).actors) newtargets.remove(target1) target2 = newtargets[random.randint(0, enemycount - 2)] utils.damage(user, target1, damage, 'explosion') utils.damage(user, target2, damage, 'explosion') user.fight.string.add(u'\U0001F4A3' + " |" + user.name + ' Granatani otdi! Yetkazildi ' + str(damage) + ' zarb - ' + target2.name + ' va ' + target1.name + '.') else: for c in utils.get_other_team(user).actors: utils.damage(user, c, damage, 'melee') user.fight.string.add(u'\U0001F4A3' + " |" + user.name + ' Granatani otdi! Yetkazildi ' + str(damage) + ' zarb.') user.energy -= 2 user.itemlist.remove(self)
async def send_optimizer_result(ctx, profile, best_route, include_dungeon): weapon = profile.weapon best_stats = best_route[0] or {} best_equip = best_route[1] or {} is_optimized = best_route[0]['is optimized'] if not best_equip: return await ctx.send( f'{ctx.author.mention}, Optimization is not possible with the options you chose!\n' f'Collect more talismans or raise your combat level before trying again.' ) embed = Embed( ctx=ctx, title='{s}'.format( s='Successful!' if is_optimized else 'Unsuccessful!') ).add_footer( text='Player\'s stats include pots.\n' '{s}'.format(s='Armor/Weapon includes dungeon stats.\n' if include_dungeon else '') + 'Please make sure your "before" stats are correct before reforging.' ) for equipment in best_equip: for rarity in best_equip[equipment]: text = colorize( ' + '.join([ f'{best_equip[equipment][rarity][reforge]} {reforge.title()}' for reforge in best_equip[equipment][rarity] ]), RARITY_COLORS[rarity]) embed.add_field( name=f'**{rarity.title()} {equipment.title()}**', value=text, inline=False) base_mod = profile.stats.combat_bonus + (profile.stats.archery_bonus if weapon.type == 'bow' else 0) if include_dungeon: normal_mod = emod('base', weapon) + base_mod normal_damage_before = damage( profile.weapon.stats.get_stat('damage', dungeon=include_dungeon), profile.stats.get_stat('strength', dungeon=include_dungeon), profile.stats.get_stat('crit damage', dungeon=include_dungeon), normal_mod) normal_damage_after = damage(best_stats['damage'], best_stats['strength'], best_stats['crit damage'], normal_mod) before_damage = f'```Base > {normal_damage_before:,.0f}```' after_damage = f'```Base > {normal_damage_after:,.0f}```' else: zealot_mod = emod('zealots', weapon) + base_mod slayer_mod = emod('slayer bosses', weapon) + base_mod slayer_mult = 1 if weapon.internal_name == 'REAPER_SWORD': slayer_mult = 3 elif weapon.internal_name == 'SCORPION_FOIL': slayer_mult = 2.5 zealot_damage_before = damage( profile.weapon.stats.get_stat('damage', dungeon=include_dungeon), profile.stats.get_stat('strength', dungeon=include_dungeon), profile.stats.get_stat('crit damage', dungeon=include_dungeon), zealot_mod) slayer_damage_before = damage( profile.weapon.stats.get_stat('damage', dungeon=include_dungeon), profile.stats.get_stat('strength', dungeon=include_dungeon), profile.stats.get_stat('crit damage', dungeon=include_dungeon), slayer_mod) slayer_damage_before *= slayer_mult zealot_damage_after = damage(best_stats['damage'], best_stats['strength'], best_stats['crit damage'], zealot_mod) slayer_damage_after = damage(best_stats['damage'], best_stats['strength'], best_stats['crit damage'], slayer_mod) slayer_damage_after *= slayer_mult before_damage = f'```Zealots > {zealot_damage_before:,.0f}\nSlayers > {slayer_damage_before:,.0f}```' after_damage = f'```Zealots > {zealot_damage_after:,.0f}\nSlayers > {slayer_damage_after:,.0f}```' weapon_damage_before = '' weapon_damage_after = '' if weapon.internal_name == 'MIDAS_SWORD': weapon_damage_before = f'Weapon damage > {profile.weapon.stats.get_stat("damage", dungeon=include_dungeon):.0f}' weapon_damage_after = f'Weapon damage > {best_stats["damage"]:.0f}' embed.add_field( name='**Before**', value= f'```Strength > {profile.stats.get_stat("strength", dungeon=include_dungeon):.0f}\n' f'Crit damage > {profile.stats.get_stat("crit damage", dungeon=include_dungeon):.0f}%\n' f'Crit chance > {profile.stats.get_stat("crit chance", dungeon=include_dungeon):.0f}%\n' f'Attack speed > {profile.stats.get_stat("attack speed", dungeon=include_dungeon):.0f}%\n' f'{weapon_damage_before}```{before_damage}') embed.add_field( name='**After**', value= f'```Strength > {best_stats["strength"]:.0f}\nCrit damage > {best_stats["crit damage"]:.0f}%\n' f'Crit chance > {best_stats["crit chance"]:.0f}%\nAttack speed > {best_stats["attack speed"]:.0f}%\n' f'{weapon_damage_after}```{after_damage}') if not is_optimized: embed.add_field( name='**Warning**', value= 'The bot took too long to optimize your gear so it gave up.\n' 'This result is the best it could do in the allotted time.', inline=False) await embed.send()