def dpm(args): preset = get_preset(args.id) gen: JobGenerator = jobMap[preset.job].JobGenerator() target, weapon_stat = TemplateGenerator().get_template_and_weapon_stat( gen, str(args.ulevel), args.cdr) v_builder = core.AlwaysMaximumVBuilder() graph = gen.package( target, v_builder, options=preset.options, ulevel=args.ulevel, weaponstat=weapon_stat, ability_grade=Ability_grade(4, 1), ) sche = policy.AdvancedGraphScheduler( graph, policy.TypebaseFetchingPolicy(priority_list=[ core.BuffSkillWrapper, core.SummonSkillWrapper, core.DamageSkillWrapper, ]), [rules.UniquenessRule()] + gen.get_predefined_rules(rules.RuleSet.BASE), ) analytics = core.StatAnalytics() control = core.Simulator(sche, target, analytics) control.start_simulation(args.time * 1000) dpm = analytics.get_dpm() print(preset.job, f"{dpm:,.3f}") return analytics.get_log()
def burst10(args): preset = get_preset(args.id) gen: JobGenerator = jobMap[preset.job].JobGenerator() target, weapon_stat = TemplateGenerator().get_template_and_weapon_stat( gen, str(args.ulevel), args.cdr) v_builder = core.AlwaysMaximumVBuilder() graph = gen.package( target, v_builder, options=preset.options, ulevel=args.ulevel, weaponstat=weapon_stat, ability_grade=Ability_grade(4, 1), ) sche = policy.AdvancedGraphScheduler( graph, policy.ListedFetchingPolicy( skill_ids=gen.get_skill_rotation_10sec(graph)), [rules.UniquenessRule()], ) analytics = core.StatAnalytics() control = core.Simulator(sche, target, analytics) control.start_simulation(args.time * 1000) start, end, dpm, loss = analytics.get_peak(10000) print(preset.job, f"{dpm:,.3f}") return analytics.get_log()
def burst10(args): preset = get_preset(args.id) template = get_template_generator("high_standard")().get_template( args.ulevel) target: ItemedCharacter = template(weaponList[preset.job], args.cdr) gen: JobGenerator = jobMap[preset.job].JobGenerator() v_builder = core.AlwaysMaximumVBuilder() graph = gen.package( target, v_builder, options=preset.options, ulevel=args.ulevel, weaponstat=[4, 9], ability_grade=Ability_grade(4, 1), ) sche = policy.AdvancedGraphScheduler( graph, policy.ListedFetchingPolicy( skill_ids=gen.get_skill_rotation_10sec(graph)), [rules.UniquenessRule()], ) analytics = core.StatAnalytics() control = core.Simulator(sche, target, analytics) control.start_simulation(args.time * 1000) start, end, dpm, loss = analytics.get_peak(10000) print(dpm) return analytics.get_log()
def get_modifier(args) -> core.CharacterModifier: preset = get_preset(args.id) gen: JobGenerator = jobMap[preset.job].JobGenerator() target, weapon_stat = TemplateGenerator().get_template_and_weapon_stat(gen, str(args.ulevel), args.cdr) v_builder = core.AlwaysMaximumVBuilder() gen.package( target, v_builder, options=preset.options, ulevel=args.ulevel, weaponstat=weapon_stat, ability_grade=Ability_grade(4, 1), farm=False, ) return gen.get_passive_skill_modifier()