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()
Exemple #3
0
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()