Skip to content

asgaaron/RiotDesignTest

Repository files navigation

Hi! My name is Aaron Gardner, aka Feihu from NA! Welcome to my spell calculator, 
a project to practice leveraging RIOT's public API. I hope you like it!
If you have questions, please feel free to ask me on the LoL client.

Your API key must be in a text file at the project's root directory entitled 
'apikey'. Otherwise, replace line 155 of RiotDesignTest.java with:
BaseRiotAPI.setAPIKey("YOUR-API-KEY-HERE");
And place your API key into the field.

This calculator is pretty crude at this point. 
Spells that enhance auto-attacks, such as Xin's Q are not considered. Spells 
that do not deal damage are not considered.

The calculator does not know anything about its target or the current state of 
the champion casting the spell. Things like %health, current health are not 
taken into calculation.

Notes on functionality:
Spell damages are always calculated at their highest possible values. For 
example, Taric's Dazzle is calculated as if he casted it from 0 range, 
Morgana's Tormented Soil is calculated as if the target has 1% health, Sion's 
Decimating Smash uses the fully charged spell damage, and Kassadin's Riftwalk 
is on its highest stack.
Updates since 1.0:

Add functionality for calculating DPS -- DONE!
// Currently, CDR is a little useless. A 'Calculate DPS' function could 
// calculate damage done over user-defined periods of time, taking spell 
// cooldown into consideration.

Add functionality to calculate the damage of a specified spell -- DONE!
// Gets the name of a spell from the user, then calculates spell damage and 
// prints to the screen

All of Lux's spells are missing effect fields from the Riot API, base damages 
have been hard-coded.

Extra damage from champion's passives (e.g. Lux and Velkoz's passive abilites) 
is not taken into consideration.

Features planned:

Addition of a customizable target
// Target's stats including Armor, MR, CurrentHealth, MaxHealth, AD, and AP.
// This will make real damage calculation MUCH more accurate. For spells that 
// rely heavily on target's health, such as Mundo's Infected Cleaver, minimum
// damage is currently used.

Customizable spell levels
// Currently all spell damage is calculated at the spell's max rank. Adding 
// customizable spell levels would allow calculation for scenarios like best
// level-one spell, best level 6 spell, etc.

Ability to ask about context-specific spells
// E.g. 'How many of Syndra's spheres are around when she uses her ult?' or 
// 'How much damage will the target take while Zed's mark is active?'

Automatic parsing of sanitized tooltip
// Currently, the method of obtaining spell damage is pretty brute force. Will 
// require a lot of maintenance in the future. I would rather create a way to 
// parse this automatically. Looking into Mustache for this.

Make specific spell calculation better
// The calculator is not very good at finding spells if the name is slightly off.
// For example, Electro Harpoon is actually stored as Electro-Harpoon, and it is
// impossible to find it unless you know that specific quirk. Probably going to 
// use LevenshteinDistance (thanks John!)

About

A design test using Riot's public API - A calculator to find the most efficient spell at varying levels of AD, AP, and CDR

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages