Giter VIP home page Giter VIP logo

tbc_dps_warrior_sim's People

Contributors

albinoyoda avatar crablicious avatar k13gomez avatar lbniese avatar loliver avatar lordblackadder avatar mrslan avatar paradigm72 avatar peterholmberg avatar robfalfa avatar thegroxempire avatar vigo2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

tbc_dps_warrior_sim's Issues

Poleaxe Specialization don't counted +5% Crit for DW Arms build

Hello I'm currently sim between 1h Swards and 1h Axe DW Arms specc.
Unfortunate it seems the tool doesn't consider the 5% Crit if I'm selecting poleaxe specialization.

I have an increase of ~20DPS Switching from 2x Spiteblade to The Decapitator + Gladiators Cleaver. (considering as well the switch from sword to axe specialization)
Wondering if it's correct or just an displayed error ?

Thank you for checking.

DW Axe Specc
DW Sword Specc

Missing Enchants

Number of Missing enchants on the simulator currently

+15 STR to gloves
+10 hit rating to boots
Mongoose on offhand
Cats Swiftness (+6agi/Minor speed) to boots

Will update as I find more

Incorrect PPM for Despair and Khorium Champion

Didn't get much time tonight to test PPM for these two weapons (30 min of only auto-attacks) but both appear to be lower than 1 PPM. Although it shouldn't matter much with new content around the corner.
KC test one 14/ 717 (not logged)
Despair test one 11/336 (not logged)
KC test two 18/605 (log attached)
Despair test two 13/559 (log attached)

prelim KC PPM = 32/1322 = 2.4% per swing
prelim despair PPM = 24/895 = 2.7% per swing
Despair.txt
KhoriumChampion.txt

Some player buffs are using talented, others untalented values

Namely, Blessing of Might (220 AP -> 264 AP) and Gift of the Wild (14 Agi/Str -> 18.9 Agi/Str) are using talented values, while Battle Shout (306 AP -> 382.5 AP) and all Shaman totems (WF 445 AP -> 578.5 AP; 86 Str -> 98.9 Str; 77 Agi -> 88.55 Agi) are using untalented values.

Heroic Strike/Cleave are re-queued too early

swing_weapon() is used for regular weapon swings and for extra attacks from Windfury and other weapon procs.

Among other things, it may convert white attacks into HS/Cleave, then re-queue them if sufficient rage is available. Afterwards, it handles the various "hit effects", and if any of them grant extra attacks, those are converted into HS/Cleave, again. This is generally impossible to do in-game.

Website Update !!

Hello, Developers

It has been while and website is still on old standard talents and had me to check other resourves website to provide my needs and it is hard to locate one with the princeples as your website has.

TManythanks,

loading config file won't change whether it's dual wield or two hand

happens when it's not my initial load
when I load my dual wield config, it works when I load the file initially after first visiting the website or reloading the website etc
however when I change it to two hand and run simulations and then load the file, it will change everything but the dual wield - two hand setting

Arms MS/WW ability timing

Any chance you can add an option that prevents WW or MS being used within 1.5 seconds of your next auto attack. Sometimes the Sim will use WW or MS as soon as it comes off cooldown just before your next AA, and it clips what would have been the next Slam cast.

Rage is granted irrespective of hit_result

In Combat_simulator.cpp, lines 1137-1176, unless in "compute_dpr" mode for cleave or heroic strike, rage_generation() is called irrespective of hit_result, so misses and dodges add rage for a 0-damage hit (3.5 * swing_speed / 2 or 1.75 * swing_speed / 2).

Rage generation for crits is too low

rage_generation() is using the same "hit_factor" for hits and crits (3.5 for MH / 1.75 for OH). It should use 7 for MH / 3.5 for OH on crits.

The Decapitator

Hello,

is it possible to add The Decapitator as an option for the off-hand.
The weapon was changed from main hand to one hand in the Zul Aman patch.

Thank you !

No way to force bloodlust at the start of the fight?

Is there no way to force bloodlust to be cast at the start of the fight instead of the end or am I missing the option? I see the option for extra bloodlusts being cast at the start, but I don't want to add extra bloodlusts, only 1 bloodlust for the whole fight.

Swing timers are not updated directly when you gain Flurry, or when Flurry fades

The swing timer is only updated in swing_weapon() (Combat_simulator.cpp:1087), so Flurry gains are only applied on the next MH or OH swing, effectively hasting first one, then the other. If Flurry fades, the haste loss is handled in the same way.

In game, both gaining or losing Flurry immediately updates the swing timers for both weapons, e.g. for a 2.6 speed MH, if WW procs Flurry exactly mid-swing, the next MH hit is 1.3 + 1.3 / 125% = 2.34 seconds after the first. If Flurry faded 0.8 seconds after a swing, the next MH hit would be 0.8 + (2.6 / 125% - 0.8) * 125% = 2.4 seconds later.

Simplify & consolidate DPR calculations

There's quite a bit of complexity to support the DPR mode for all abilities, and I believe the resulting DPR values aren't any more meaningful than those calculated by simpler methods:

a) statistical calculation, essentially average damage / average rage cost. For HS, Cleave, and Slam, this typically includes the hidden rage and damage costs of lost MH swing time, and the rage and damage gains from a queued OH swing. Execute also needs additional averaging. Most procs or external buffs are ignored.

b) sim with auto attacks only, and calculate damage (d0), rage gained (rg0), and rage spent (rs0); then, to find a "second order" DPR value for an ability, sim again with only auto attacks and that ability enabled, calculating damage (d), rage gained (rg), and rage spent (rs). DPR value is (d - d0) / ((rg - rs) - (rg0 - rs0)). It includes all procs or external buffs, e.g. higher Flurry uptime, extra attacks, Deep Wound damage.

I'm actually leaning towards a), since that's already enough to establish ability priorities, which is - as far as I know - the primary use of the DPR metric. Having those values upfront might also - one day ;) - allow to cut down the rotation configuration.

Braided Eternium Chain causes the rest of the items in the neck slot to be overestimated

If the "Suggest Armor Upgrades" feature is running, and the loop in Armory.cpp::item_upgrades ever switches away from Braided Eternium Chain, all subsequent Neck slot items it hits will have their DPS overestimated, because the Braided Eternium Chain buff will stay active even with different Neck slot items.

This is because we are automatically adding the braided_eternium_chain buff as a convenience factor here:

    if (character.has_item("braided_eternium_chain") && !character.has_buff(buffs.braided_eternium_chain))
    {
        character.add_buff(buffs.braided_eternium_chain);
    }

but never removing the buff if that condition becomes false on an item switch. I'm not sure exactly how to fix this because new code that removes the buff on an item switch needs to only do so if the manual "Braided Eternium Change" checkbox in settings isn't checked. I didn't see a way for the Armory.cpp code to access that.

For normal operation this doesn't happen when a different neck is selected, because Braided Eternium Chain is typically removed ahead of time by the optimizer. It will happen if Braided Eternium Chain is itself selected.
Screenshot 2022-04-16 at 14-31-02 TBC DPS Warrior Sim
For the gear set used to produce this, Natasha's Choker is actually ~8dps less than Braided Eternium Chain, but shows as ~3dps more in the Suggestions tool.

The Decapitator missing

I wanted to look which weapon is strongest for my fury warrior and noticed that "The Decapitator" from Prince Malchezzar in Karazhan seems to be missing.

Rampage, Flurry, and Unbridled Wrath should be handled as generic "hit effects"

I'd propose something along

interface Buff {
   ApplyOrRefresh(duration, simTime, simState)
   MaybeRemove(simTime, simState)
}

interface Proc {
   OnHit(hitState, simTime, simState)
}

with the various supported procs and buffs/debuffs being simple script-like implementations. This allows to remove a ton of global or near global ("manager") state, keeps the various "swing()"-like methods clean, and removes the runtime overhead of perpetually checking for non-existing procs or buffs.

Arpen formula incorrect

I've noticed through sim logs that the base arpen mitigation factor is:
Target armor: 3690. Mitigation factor: 25.899%.
This is 7700 armor - sunder - faerie fire - curse of reck
Following the established formula of DR% = Armor / (Armor - 22167.5 + 467.5 * MobLevel) we should see that the mitigation at 3690 armor isn't 25.89% but 23.57%

When adding 700 arpen worth of items we get:
Target armor: 2990. Mitigation factor: 22.070%.
This should be 20.0% instead.

Looking at source code like the formula the sim is using is
return 10557.5 / (10557.5 + target_armor)
But it should be using
return 1 - (target_armor/ (target_armor- 22167.5 + 467.5 * target_level))

My brain isn't big enough to say whether or not this is affecting the accelerating returns on arpen instead of diminishing, but even the baseline value being off means that arpen as a whole is being undervalued on the sim.

Non Phase 1 items occupy all slots for Helm and Neck proposed item upgrades

Current Helmet: warbringer_battle-helm
Upgrade: coif_of_alleria ( +39 ± 2.1 DPS).
Upgrade: cursed_vision_of_sargeras ( +45 ± 2.1 DPS).
Upgrade: mayhem_projection_goggles ( +47 ± 2.1 DPS).
Upgrade: surestrike_goggles_v3.0 ( +43 ± 2.1 DPS).
Upgrade: helm_of_the_illidari_shatterer ( +34 ± 2.1 DPS).

Current Neck: adamantite_chain_of_the_unbroken
Upgrade: choker_of_endless_nightmare ( +26 ± 2.1 DPS).
Upgrade: pendant_of_the_perilous ( +6.9 ± 1.9 DPS).
Upgrade: shattered_sun_pendant_of_might_aldor ( +9.8 ± 2.1 DPS).
Upgrade: shattered_sun_pendant_of_might_scryer ( +5.8 ± 2.1 DPS).

Other slots appear to be phase 1 appropriate

Attack power normalization given weapon type

Hello,

I was simming some different weapon types and got results inconsistent with my hypothesis. So I started looking into your source code. I failed to find where you calculate attack power normalization given weapon type.

Are you doing that, if so how?

Ty for your tool.

Crit Multiplier is wrongly calculated if bonus crit multiplier > 0 (RED)

The sim calculates it as (2 + crit_damage_bonus) * (1 + bonus_crit_multiplier), where e.g. crit_damage_bonus is 20% for 2/2 Impale, and bonus_crit_multiplier is 3% for RED.
It's actually (and weirdly) calculated as '1 + (1 + crit_damage_bonus) * (2 * (1 + bonus_crit_multiplier) - 1)`. For warriors, the difference is rather miniscule (e.g. 2.266 vs. 2.272), for casters with 100% crit_damage_bonus, it's 2.06 vs 2.09.

Issue #35 has not been fixed

Issue #35 still persists exactly as described - flurry haste is still only recalculated in swing_weapon(), at end of swing, for each weapon individually. It should be recalculated mid-swing, for both weapons at once.

In a similar vein, calculating flurry uptime via mh_hits_w_flurry and oh_hits_w_flurry doesn't make much sense, since swings may be partially hasted.

Incorrect stat boost World Breaker

World Breaker sims far better than it probably should, it seems that it is modeled as a stat boost with 4 seconds duration and 1 charge, however I could not find anywhere where we remove charges for this buff like we do for windfury_attack, so instead of it applying only to the next attack it applies to all attacks made in the 4 second period.

Tooltip: "Chance on hit: Increases the critical strike rating of your next attack made within 4 seconds by 900."

Badge not wanting to sim

Ran into bug after sim not wanting to run a 2h arms bug was persisting. Clearing cookies somehow made it run with a 2h, tested with bare hands (ran), dual wield (ran), and a non proc effect 2h (failed to run).

Ran sims with config files with various different trinkets in either trinket slot, each ran outside of when badge of the swarmguard was in either trinket slot, also tested badge with both on use trinkets and static stat trinkets.

Ran on chrome browser on a pc.

tbc-dps-warrior-sim-config (6).txt

Implement phasing

With the addition of T6/S3 weapons the results view is starting to get less relevant for players that are still in the prebis, t4 and even (to some extent) T5.

If I am running Karazhan on an alt and want to know what rings to get I am fed with results from late T5 or T6 which may not be relevant for this character. As such, adding a phase property to items and a checkbox in the interface would present more relevant results for those users.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.