Giter Club home page Giter Club logo

wowanalyzer / wowanalyzer Goto Github PK

View Code? Open in Web Editor NEW
495.0 37.0 568.0 443.02 MB

WoWAnalyzer is a tool to help you analyze and improve your World of Warcraft raiding performance through various relevant metrics and gameplay suggestions.

Home Page: http://wowanalyzer.com/

License: GNU Affero General Public License v3.0

HTML 0.03% CSS 0.06% Shell 0.01% Dockerfile 0.01% TypeScript 94.74% SCSS 0.69% JavaScript 4.47%
wow react analyzer log warcraftlogs warcraft world-of-warcraft wowanalyzer typescript javascript

wowanalyzer's Introduction

WoWAnalyzer

WoWAnalyzer is a tool to help you analyze and improve your World of Warcraft raiding performance through various relevant metrics and gameplay suggestions.

https://wowanalyzer.com

New to Open Source?

This guide is an excellent introduction and explains all the jargon we may use: https://medium.com/clarifai-champions/99-pr-oblems-a-beginners-guide-to-open-source-abc1b867385a

If you ever get stuck or want to have a chat, join us on our Discord server. We love to hear what you're (going to be) working on!

Our docs aren't very good, but we have a really fun and helpful developer community on Discord. So please consider joining and reaching out if you need help. Be bold!

Getting started

First make sure you have the following:

Now you need to pull a copy of the codebase onto your computer. Make a fork of the repo by clicking the Fork button at the top of this page. Next, click the green button Clone or download and copy your Clone with HTTPS URL, and then run the command git clone <paste link>. This will take a minute.

When cloning finishes, open a command window to the source and run the command yarn. This will take a minute or two the first time. While it's running, copy the .env.local.example file in the project root, and name it .env.local. Now you need to fill the WCL API key. To get your key, login to Warcraft Logs and go to your profile. Scroll to the bottom, enter the V1 Client Name "WoWAnalyzer (development)" (this is required) and copy the V1 Client Key, then replace INSERT_YOUR_OWN_API_KEY_HERE in .env.local with this key.

Optionally if you're on a bash compatible machine, you can run scripts/setup for an interactive setup of this application.

Once all that's done you're ready to fire up the development server! Just run the command yarn start in the project root. The first start may take a few minutes as it has to compile everything. This does get cached, so that any code changes while the server is already running will be compiled much quicker.

Docker Alternatively there's a Docker container available so you don't have to install any software other than Git (and your IDE with its dependencies which likely includes Node.js). Follow the above steps, skipping all `yarn` commands, and then fire up the Docker container with docker-compose up dev (first start might take a few minutes). Just like the regular development environment it will automatically recompile your code and refresh your browser whenever you make changes to the code so long as it is running. The app will be available at http://localhost:3000/.

Troubleshooting

If you are getting Error: Invalid key specified, ensure your key is correct in .env.local and restart yarn start after changing the file so the new value is loaded (.env files are cached).

If you are getting an error about a missing module or library you might have to update your dependencies. Run yarn install or docker-compose build dev if you're using the Docker container. Make sure there's no running yarn start or yarn test when you do as they might lock files.

Contributing

See the contributing guidelines for further information.

wowanalyzer's People

Contributors

5chmidt avatar abelito75 avatar anom0ly avatar buimichael avatar collcrom avatar dambroda avatar darthelit avatar dylandirlam avatar emallson avatar gebuz avatar hawkcorrigan avatar hpabst avatar juko8 avatar kfinch avatar khazakdk avatar krealle avatar martijnhols avatar niseko avatar obusk avatar oisinod avatar pewtro avatar ronaldpereira avatar sharrq avatar smtex avatar tjmoats avatar topplethenun avatar trevorm4 avatar vohrr avatar yajinni avatar zeboot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wowanalyzer's Issues

Basic version for Mistweaver

Discord @garg DMed me letting me know he would like to help making this in any way he can.

Need the following information:

  • List of all talents (see common/SPELLS_TALENTS
  • List of all abilities for CPM_ABILITIES
  • List of all abilities on the GCD for dead GCD time
  • List of all cooldowns (healing buffs like Innervate, Wings)

[Resto druid] Show dreamwalker healing

This necessarily doesn't have to do with anything with your play style. Although it can be interesting to see how much healing this golden trait has contributed to.

General: Add castefficiency for prepot/second pot

As a healer, check that potion of prolonged, potion of deadly grace or potion of old war was active on_initialize.

Also check that potion of prolonged, potion of deadly grace, potion of old war, leytorrent potion or ancient mana potion has been used in fight.

Otherwise add as suggestions.

Holy Priest

Use this issue to discuss features for this spec. Let us know when you're working on something, or plan to work on something.

Invalid key specified

What browser are you using?
Firefox 53.03

Link to an example report with the issue
https://www.warcraftlogs.com/reports/L18cDC2tgKGpr4z7/

Expected behavior
Hey ! I was hoping to use your tool to analyse my log, but when I try to analyse it, I get "Invalid key specified" - I am an idiot, so very probable I'mn doing something wrong, any chance to enlighten me what :) ?

Tooltip in mana graph

WCL shows a tooltip in the graph when hovering showing the mana level at that point and who died. Need to show something similar since users are used to having this information.

Disc Priest: Check refreshes of Atonement that wouldn't have expired within a few seconds

Refreshing Atonement is usually inefficient.

Shouldn't be hard to do with a custom module listening to refreshbuff. Will have to calculate the expected Atonement duration before hand, but we already do that for one of the talents/legendaries increases Atonement duration so can steal that part. Keep track of 2 statistics: refreshesTotal and refreshesLong where refreshesLong ignores Atonements that would expire within 3 seconds.

Language

The report could not be parsed. undefined is not an object (evaluating 'this.player.id')
For any russian nickname used in report for analysis.

Health pot suggestion

Health pot > warlock cookie this was changed, warlock cookies > health pot now. Check if there's a Warlock in the raid?
Health pot prior to death
Divine Shield prior to death?

Bountysource

Add in tracker of inefficient Plea casts.

It would be great to know how often Plea is being cast inefficiently (i.e. too many atonements up making Shadow Mend the better single Atonement applicator, or % of pleas cast while PW:S is up)

[Resto Druid] Add spring blossoms healing

Should consists of two parts:

  • Healing from spring blossoms
  • Healing from increased mastery stack.

Also add suggestions and severity levels:

Example:
Severiity: Minor < 7%, Average < 5%, Major <3%
Suggestion text: "Your healing from Spring Blossoms could be improved, you may considering selecting another talent" x%

Hostile debuff tracker

Track debuffs on enemies to see dot uptime and stuff. Would be nice to be able to see 2 kinds of uptimes:

  • Total uptime where uptime of adds are multiplied (e.g. 100% uptime on 4 mobs = 400%)
  • Fight uptime, where uptime is shown during the fight, e.g. if dots were never up on 2 targets at once and target A had 20% uptime and target B 60% it would show 80% uptime. If then there was a target C with overlapping uptime as B it would still be 80%.

Add Healing Efficiency per Mana spent

Similar to what checkmywow.has.

The amount of healing you did with each ability (not including overhealing), weighed by total mana spent.
A tab for this for all healers would be nice,
image

Mistweaver Monk

Use this issue to discuss features for this spec. Let us know when you're working on something, or plan to work on something.

Holy Paladin: Wasted Judgment of Light stacks statistic

I think Wasted Judgment of Light statistic would be interesting to see, especially to compare the "cast on CD and forget" and "cast only when debuff dropped" approaches; now that there's no cooldown on the JoL healing the wasted JoL should be low enough for tracking it to be negligible.

Would be great if anyone contributes this ;)

Show concordance of legionfall uptime

This necessarily doesn't have to do with anything with your play style. Although it can be interesting to see how much this golden trait has contributed to.

[Resto Druid] Add cultivation healing

Should consists of two parts:

  • Healing from cultivation
  • Healing from increased mastery stack.

Also add suggestions and severity levels:

Example:
Severiity: Minor < 8%, Average < 6%, Major <4%
Suggestion text: "Your healing from Cultivation could be improved, you may considering selecting another talent" x%

Enforce code style

Whenever reviewing PRs I see a bunch of code style choices that bug me, but I usually figure it's pointless to argue requiring changes just because of that. In order to reduce the inconsistencies I'd like to enforce some more eslint rules;

  • prefer-const
  • no-var
  • react/prop-types
  • one-var
  • order of imports (global/local)
  • require semicolons

I looked into using Prettier but it's pretty opinionated in the wrong way. For example it would reformat stuff to this:

const something =
  <div>Hello</div>;

In the first place this should be single line and then it would be ok. But if it was too long because for example the JSX was much longer, then it should be wrapped in parenthesis:

const something = (
  <div>Hello</div>
);

The reason for this is that it is consistent with requiring parenthesis when returning JSX;

return (
  <div>Hello</div>
);

and it makes sense linguistically (you wouldn't put a comma on the next line) and is easier to follow; when I see const something = ( I know the line is to be continued on the next line. Without parenthesis the JSX is just floating somewhere. The same goes for this:

{condition &&
  <div>
    Hello!
  </div>}

I looked into prettier-eslint, but ESLint is currently unable to add back the parenthesis after Prettier removed it, so that doesn't solve it. Ternaries are also messy.
Any solution with Prettier seems to be sub-optimal because of these wrongly opinionated issues, so even though CRA suggests using it instead of stricter ESLint rules, I reckon it is not a viable alternative at this time.

This will probably require ejecting, but I did that in the past and it's not that big a deal. The nice thing is that I'll also be able to remove .env again since the docs for that state it's recommended not to commit it.

Disc Priest

Use this issue to discuss features for this spec. Let us know when you're working on something, or plan to work on something.

Elemental Shaman

Use this issue to discuss features for this spec. Let us know when you're working on something, or plan to work on something.


Will get soon closed in favor of individual issues and milestones (i just need to create all the issues).

See: https://github.com/WoWAnalyzer/WoWAnalyzer/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20%5BElemental%20Shaman%5D


Rotation-TODO

Lightning Rod / Ascendance

  • Falme Shock Uptime
    • Uptime
    • AVG Maelstrom spend [>= 20]
    • Elemental Focus
  • Totem Mastery
    • Uptime
    • Number of Recasts
  • Elemental Blast
    • Uptime
    • Stat distrubution
  • Earth Shock
    • Casts
    • Maelstrom spend ( BoxPlot or only min,max and avg ) [>= 117 or 111]
  • Wasted Power of the Maelstrom
  • Wasted Stormkeeper Charges
  • Lava Burst casts and unspend Lava Surges

Icefury

  • Icefury
    • Maelstrom @ cast
    • Missed Frost Shocks
    • Frost Shock Maelstrom spend >= 20

Multi-target

  • Liquid Magma Totem (on cd, prio 3-4>)
  • Number of Flame Shock targets (1-3 targets)
  • Earthquake >= 50 Maelstrom
  • Chain Lightning
  • Lava Burst only on Proc (3 targets)

Gambling

  • Earth Shock at 70-75 if !Ascendance

Overall-TODO

  • Detect Number of Targets alive
  • Show equiped stat ratios
  • Detailed cast sequences for e.g opener or during BL
  • Group spec releated infos/statistics

Add "Bad talents" to suggestions.

This might be a bad idea since some "bad" talents and talent combination might be considered good/decent in some use cases.

Some encounters may even require you to spec a "bad talent", however this can be solved with checking the encounter ID. However that would in the long term be hard to maintain.

Holy Paladin

Use this issue to discuss features for this spec. Let us know when you're working on something, or plan to work on something.

  • Wasted Judgment of Light statistic
  • Devo DR
  • 4PT19 healing contribution (from FoL)

Resto Shaman

Use this issue to discuss features for this spec. Let us know when you're working on something, or plan to work on something.

[Resto druid] Show deep rooted healing

This necessarily doesn't have to do with anything with your play style. Although it can be interesting to see how much healing this golden trait has contributed to.

This might be a little complex to calculate throughput on.

Holy Paladin: Overhealing suggestions

Should probably primarily look at FoL overhealing. Beacon overhealing can't be helped.

Maybe LoD overhealing and suggesting holding onto it when there's nothing to heal.

Resto Druid

Use this issue to discuss features for this spec. Let us know when you're working on something, or plan to work on something.

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.