calculator = AldrianasRogueDamageCalculator(test_stats, test_talents,
                                            test_glyphs, test_buffs, test_race,
                                            test_settings, test_level)

# Compute EP values.
ep_values = calculator.get_ep()

# Compute talents ranking
main_tree_talents_ranking, off_tree_talents_ranking = calculator.get_talents_ranking(
)

# Compute glyphs ranking
glyps_ranking = calculator.get_glyphs_ranking(['vendetta', 'backstab'])

# Compute EP values for procs and gear buffs
tier_ep_values = calculator.get_other_ep(
    ['rogue_t11_4pc', 'rogue_t11_2pc', 'rogue_t12_4pc', 'rogue_t12_2pc'])
metagem_ep_value = calculator.get_other_ep(['chaotic_metagem'])
trinkets_list = [
    'the_hungerer', 'matrix_restabilizer', 'rickets_magnetic_fireball_proc',
    'heroic_the_hungerer', 'heroic_matrix_restabilizer'
]
trinkets_ep_value = calculator.get_other_ep(trinkets_list)

# Compute weapon ep
mh_enchants_and_dps_ep_values, oh_enchants_and_dps_ep_values = calculator.get_weapon_ep(
    dps=True, enchants=True)
mh_speed_ep_values, oh_speed_ep_values = calculator.get_weapon_ep([1.4, 1.8])

# Compute DPS Breakdown.
dps_breakdown = calculator.get_dps_breakdown()
total_dps = sum(entry[1] for entry in dps_breakdown.items())
示例#2
0
# Set up settings.
test_cycle = settings.CombatCycle(stack_cds=True)
test_settings = settings.Settings(test_cycle, response_time=.5, duration=360, dmg_poison='dp', utl_poison='lp', is_pvp=False, stormlash=1,
                                  adv_params="", tricks_on_cooldown=False, latency=.025, merge_damage=True)

# Build a DPS object.
calculator = AldrianasRogueDamageCalculator(test_stats, test_talents, test_glyphs, test_buffs, test_race, test_settings, test_level)

# Compute DPS Breakdown.
dps_breakdown = calculator.get_dps_breakdown()
total_dps = sum(entry[1] for entry in dps_breakdown.items())

# Compute EP values.
ep_values = calculator.get_ep(baseline_dps=total_dps)
tier_ep_values = calculator.get_other_ep(['rogue_t14_4pc', 'rogue_t14_2pc', 'rogue_t15_4pc', 'rogue_t15_2pc', 'rogue_t16_2pc', 'rogue_t16_4pc'])
#mh_enchants_and_dps_ep_values, oh_enchants_and_dps_ep_values = calculator.get_weapon_ep(dps=True, enchants=True)

trinkets_list = [
    #5.2
    'heroic_rune_of_re_origination',
    'thunder_rune_of_re_origination',
    'rune_of_re_origination',
    'lfr_rune_of_re_origination',
    'heroic_bad_juju',
    'thunder_bad_juju',
    'bad_juju',
    'lfr_bad_juju',
    'heroic_thunder_talisman_of_bloodlust',
    'heroic_talisman_of_bloodlust',
    'thunder_talisman_of_bloodlust',
# Set up glyphs.
glyph_list = ['recuperate', 'sprint'] #just to have something
test_glyphs = glyphs.Glyphs(test_class, *glyph_list)

# Set up settings.
test_cycle = settings.AssassinationCycle(min_envenom_size_non_execute=4, min_envenom_size_execute=5,
                                         prioritize_rupture_uptime_non_execute=True, prioritize_rupture_uptime_execute=True)
test_settings = settings.Settings(test_cycle, response_time=.5, duration=360, dmg_poison='dp', utl_poison='lp', is_pvp=False)

# Build a DPS object.
calculator = AldrianasRogueDamageCalculator(test_stats, test_talents, test_glyphs, test_buffs, test_race, test_settings, test_level)

# Compute EP values.
ep_values = calculator.get_ep()
tier_ep_values = calculator.get_other_ep(['rogue_t14_4pc', 'rogue_t14_2pc'])
mh_enchants_and_dps_ep_values, oh_enchants_and_dps_ep_values = calculator.get_weapon_ep(dps=True, enchants=True)

trinkets_list = [
    'heroic_bottle_of_infinite_stars',
    'bottle_of_infinite_stars',
    'lfr_bottle_of_infinite_stars',
    'heroic_terror_in_the_mists',
    'terror_in_the_mists',
    'lfr_terror_in_the_mists',
    'relic_of_xuen',
    'windswept_pages',
    'jade_bandit_figurine',
    'hawkmasters_talon',
    'windswept_pages',
    'searing_words',
# Build a DPS object.
calculator = AldrianasRogueDamageCalculator(test_stats, test_talents, test_traits, test_buffs, test_race, test_spec, test_settings, test_level)

print(str(calculator.stats.get_character_stats(calculator.race, test_traits)))

# Compute DPS Breakdown.
dps_breakdown = calculator.get_dps_breakdown()
total_dps = sum(entry[1] for entry in list(dps_breakdown.items()))

# Compute EP values.
ep_values = calculator.get_ep(baseline_dps=total_dps)
tier_ep_values = calculator.get_other_ep(['rogue_t19_2pc', 'rogue_t19_4pc', 'rogue_orderhall_8pc',
                                          'rogue_t20_2pc', 'rogue_t20_4pc',
                                          'rogue_t21_2pc', 'rogue_t21_4pc',
                                          'mark_of_the_hidden_satyr', 'mark_of_the_distant_army',
                                          'mark_of_the_claw', 'march_of_the_legion_2pc',
                                          'journey_through_time_2pc', 'jacins_ruse_2pc',
                                          'kara_empowered_2pc'])


#talent_ranks = calculator.get_talents_ranking()
#trait_ranks = calculator.get_trait_ranking()

def max_length(dict_list):
    max_len = 0
    for i in dict_list:
        dict_values = list(i.items())
        if max_len < max(len(entry[0]) for entry in dict_values):
            max_len = max(len(entry[0]) for entry in dict_values)
test_level = 85

# Build a DPS object.
calculator = AldrianasRogueDamageCalculator(test_stats, test_talents, test_glyphs, test_buffs, test_race, test_settings, test_level)

# Compute EP values.
ep_values = calculator.get_ep()

# Compute talents ranking
main_tree_talents_ranking, off_tree_talents_ranking = calculator.get_talents_ranking()

# Compute glyphs ranking
glyps_ranking = calculator.get_glyphs_ranking(['vendetta', 'backstab'])

# Compute EP values for procs and gear buffs
tier_ep_values = calculator.get_other_ep(['rogue_t11_4pc', 'rogue_t11_2pc', 'rogue_t12_4pc', 'rogue_t12_2pc'])
metagem_ep_value = calculator.get_other_ep(['chaotic_metagem'])
trinkets_list = [
    'the_hungerer',
    'matrix_restabilizer',
    'rickets_magnetic_fireball_proc',
    'heroic_the_hungerer', 
    'heroic_matrix_restabilizer'
]
trinkets_ep_value = calculator.get_other_ep(trinkets_list)

# Compute weapon ep
mh_enchants_and_dps_ep_values, oh_enchants_and_dps_ep_values = calculator.get_weapon_ep(dps=True, enchants=True)
mh_speed_ep_values, oh_speed_ep_values = calculator.get_weapon_ep([1.4, 1.8])

# Compute DPS Breakdown.
    prioritize_rupture_uptime_execute=True)
test_settings = settings.Settings(test_cycle,
                                  response_time=.5,
                                  duration=360,
                                  dmg_poison='dp',
                                  utl_poison='lp',
                                  is_pvp=False)

# Build a DPS object.
calculator = AldrianasRogueDamageCalculator(test_stats, test_talents,
                                            test_glyphs, test_buffs, test_race,
                                            test_settings, test_level)

# Compute EP values.
ep_values = calculator.get_ep()
tier_ep_values = calculator.get_other_ep(['rogue_t14_4pc', 'rogue_t14_2pc'])
mh_enchants_and_dps_ep_values, oh_enchants_and_dps_ep_values = calculator.get_weapon_ep(
    dps=True, enchants=True)

trinkets_list = [
    'heroic_bottle_of_infinite_stars', 'bottle_of_infinite_stars',
    'lfr_bottle_of_infinite_stars', 'heroic_terror_in_the_mists',
    'terror_in_the_mists', 'lfr_terror_in_the_mists', 'relic_of_xuen',
    'windswept_pages', 'jade_bandit_figurine', 'hawkmasters_talon',
    'windswept_pages', 'searing_words', 'flashing_steel_talisman'
]
trinkets_ep_value = calculator.get_other_ep(trinkets_list)

trinkets_ep_value[
    'heroic_bottle_of_infinite_stars'] += 1218 * ep_values['mastery']
trinkets_ep_value['bottle_of_infinite_stars'] += 1079 * ep_values['mastery']
test_settings = settings.Settings(test_cycle, pantheon_trinket_users=0, num_boss_adds=0)

# Build a DPS object.
calculator = AldrianasRogueDamageCalculator(test_stats, test_talents, test_traits, test_buffs, test_race, test_spec, test_settings, test_level)

print(str(test_stats.get_character_stats(test_race, test_traits)))

# Compute DPS Breakdown.
dps_breakdown = calculator.get_dps_breakdown()
total_dps = sum(entry[1] for entry in list(dps_breakdown.items()))

# Compute EP values.
ep_values = calculator.get_ep(baseline_dps=total_dps)
#ep_values = calculator.get_ep()
tier_ep_values = calculator.get_other_ep(['rogue_t20_2pc', 'rogue_t20_4pc', 'the_first_of_the_dead', 'insignia_of_ravenholdt',
'mantle_of_the_master_assassin', 'specter_of_betrayal',
'golganneths_vitality', 'amanthuls_vision', 'shadowsinged_fang', 'seeping_scourgewing', 'terminus_signaling_beacon',
'gorshalachs_legacy', 'forgefiends_fabricator'])

#talent_ranks = calculator.get_talents_ranking()
trait_ranks = calculator.get_trait_ranking()

def max_length(dict_list):
    max_len = 0
    for i in dict_list:
        dict_values = list(i.items())
        if max_len < max(len(entry[0]) for entry in dict_values):
            max_len = max(len(entry[0]) for entry in dict_values)

    return max_len

def pretty_print(dict_list):