Git Product home page Git Product logo

revolution-rotation-calculator-'s People

Contributors

andreoliveira31 avatar chirophobic avatar eztouch avatar nightshadei 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

revolution-rotation-calculator-'s Issues

Possible miscalculation bug

Should assert that user enters the correct abilities for specified attack style

Magic abilities for magic attack style, ranged abilities for ranged, melee for melee. Universal abilities (like sacrifice, tuska's wrath) should be applicable to all 3 attack styles.

For example, users can choose "melee" attack style, however are able to add in non-melee abilities like "snap shot", "asphyxiate", etc. to their bars. In these cases, the bar calculations are rendered inaccurate/not useful.

It's fine if we assume good faith on the user to provide the correct abilities for the correct styles, but we don't want the scenario of having to rewrite all of the dictionaries down the line to accommodate for this.

I suggest creating an Abilities class from which the 3 distinct styles can be derived as children (Melee, Mage, Range) and then appropriate abilities added in the respective buckets.

Can work on something like that if you'd wish on a feature branch or something lol.

Just my 2 cents :)

Possibility of a web interface

Are there any thoughts on turning this program into a web app? I think it would greatly improve usability and allow non-tech savvy players to use it.

GitHub allows free hosting through the use of GitHub pages.

Possible bug in cooldown algorithm

def AdjustCooldowns(Current_Buff, Adrenaline, Time):
    for Ability in TrackCooldown:
        TrackCooldown[Ability] += Time
        TrackCooldown[Ability] = round(TrackCooldown[Ability], 1)
        if TrackCooldown[Ability] >= AbilityCooldown[Ability]:
            TrackCooldown[Ability] = 0
            if Ability in ThresholdIterator and Adrenaline >= 50:
                Ready[Ability] = True
            elif Ability in UltimateIterator and Adrenaline == 100:
                Ready[Ability] = True
            else:
                Ready[Ability] = True

...
    return Current_Buff

@NightShadeI
I'm not sure if I understood the algorithm properly, but it looks to me as if threshold and ultimate abilities without sufficient adrenaline will be activated because of else: Ready[Ability] = True
If this is indeed the case, it could be solved by replacing else with an elif to check if its a basic ability

Config file

Add example text for configuration file or a description of what the configuration file is looking for. The only way to get an idea currently is to guess, run the program, and read off the errors which people may not know to do that.

Input-safe

image

What's the point of the "What style will you be using?" line? And should it be type safe and check for "Melee," "Ranged," "Magic," "Mage," or other inputs. At the moment I'm not sure what it does, nor do I know if it's necessary, but I don't think "Your mom" is gonna be too helpful. ๐Ÿ˜›
That goes for the other lines as well.

Should we cache optimal abilities until the algorithm can be made faster?

Algorithm:

User inputs their config settings.
User inputs set of abilities.

If user config settings and abilities have been used by us before
Print optimal bar to the user, saving hours/days of their time.

Ideally, there would be another app, Revolution Rotation Browser, which shows abilities with the highest AADPT (Average Ability Damage Per Tick), where both apps communicate with one another, allowing submitting ability bar from Revolution Rotation Calculator to the Revolution Calculation Browser.

Missing Abilities

Some of the missing offensive abilities:
Meteor Strike(Ultimate) http://runescape.wikia.com/wiki/Meteor_Strike
Since we can't predict critical strikes (which will restore 10% adrenaline), we should ignore that part of the ability I think ๐Ÿค”.

Defensive Abilities:- Many people want to include some defensive abilities in their action bar. I think that they should be defined as the rest of abilities, with their damage set to 0. The algorithm would then find the highest damaging bar with the specified abilities.

Possible bug in auto-attack adrenaline calculations

if style[0] == "MAGIC":
auto_adrenaline = 2
else:
if style[1] != "2":
auto_adrenaline = 2
else:
auto_adrenaline = 3

From http://runescape.wikia.com/wiki/Abilities

Auto-attack with main-hand: +2%
Auto-attack with off-hand: +1%
Auto-attack with two-hand: +3%
Note that auto-attacks need to deal damage to grant adrenaline, while abilities do not.
Magic two-handed auto-attacks will always give +2% adrenaline, Ranged two-handed auto-attacks will always alternate between +2% and +3%, and Melee two-handed auto-attacks will always give +3% adrenaline.

Single handed magic attacks in the calculator currently generate 3% adrenaline, which is wrong I guess. We should probably inquire about whether the user uses one of the following:

  1. Main-hand weapon
  2. Off-hand wepaon
  3. Main-hand + off-hand weapons
  4. two-handed weapon
    • Magic
    • Melee
    • Ranged

Note: I did not have the time to test whether this information is correct or not.

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.