timhul / ClassicSim

An event-driven simulation tool written in C++ for World of Warcraft Classic.
Other
116 stars 70 forks source link

Implementing Threat #144

Open jokal2 opened 4 years ago

jokal2 commented 4 years ago

I see this is on your v0.6 roadmap planning, but getting this started doesn't look too complicated. It seems like we would just need to add threat to

I think with the core there we would have functionality to printf("%f", threat_per_second). Polishing it would require:

timhul commented 4 years ago

I'm fine with adding at least the groundwork for a GUI representation so we can move towards a full implementation.

As for the GUI representation there are plenty of things I would like to do, that may or may not work visually so it's a bit of a prototyping there that's necessary.

Overall there should probably be another dropdown at the top that lists the roles that are of interest to the user:

Tank View

QuickSim TPS

In the Tank "view" I'd like the QuickSim result button (which is the one to the top-right to also display TPS (if it fits, again see my comment regarding what may not work visually above).

Threat Breakdown in Statistics

At least during "TankView" (maybe always?) should also have an "Ability Threat Breakdown" or such.

Further Work

Selecting a Tank role with the dropdown functionality enables the future implementation of tank-specific things such as:

Boss Selection for Incoming Damage

It should also make available boss selection for incoming damage modelling (another large area of work). Something like this list is expected:

Boss Rotations (back-end)

Depending on the selected boss there should be rotations available for each of them so they accurately casts their abilities.

Conclusion

There are lots more things that are of interest, so for the GUI representation it is important to keep this in mind, hence the current "requires further breakdown" label. Implementing some of the fundamental backend things as this issue suggests is a good start.

jokal2 commented 4 years ago

The GUI stuff is completely out of my element, I'm perfectly content with whatever you intend to do there.

I figure my next few steps are

timhul commented 4 years ago

Sounds reasonable. Revenge should have an internal buff like Overpower does. The initial implementation should consider also implementing it this way except with the buff always being active. Then it's only a matter of changing what activates the buff in the future.

Adding generic threat to damage will likely require particular design concern.

jokal2 commented 4 years ago

Left to do: