Update 1.1: I removed the "your combo" box, because of the way Taiko calculates pp, this value can be calculated from the number of misses. Same download link as before. (Also means one less box to fill in :p)

Community
Forum

posted

Total Posts

23

Topic Starter

https://www.dropbox.com/s/kaqumg6u91yt6hh/ULTIMATE%20OD%20TABLE%20FIXED.pdf?dl=0I tried to figure out the formulas and came up with this:

There are different formulas but yeah I'll probably try to figure them out again

https://www.dropbox.com/s/p3v6p1oxbqge5 ... .xlsx?dl=0

Maybe try it (?)

NM OD: Initial ODHope it helps

EZ OD: OD/2

HR OD: OD*1.4

DT OD: ROUND(OD/1.5+5.5) TO 2 DECIMALS

HT OD: ROUND(OD/0.75-5.5) TO 2 DECIMALS

EZ+DT OD: ROUND(EZ OD/1.5+5.5) TO 2 DECIMALS

HR+DT OD: ROUND(HR OD/1.5+5.5) TO 2 DECIMALS

EZ+HT OD: ROUND(EZ OD/0.75-5.5) TO 2 DECIMALS

HR+HT OD: ROUND(HR OD/0.75-5.5) TO 2 DECIMALS

300 Hit window: ROUND(49.5-(OD/0.5)*1.5) TO 1 DECIMAL

EDIT: Here's the new and better (???) taiko pp calculator (automated 300 hit window calculation based off _Gezo_'s od table): https://www.dropbox.com/s/52mikcnntehqn ... .html?dl=0

Wow, great job. Thank you for sharing this with us.

Topic Starter

NM OD: Initial ODHope it helps

EZ OD: OD/2

HR OD: OD*1.4

DT OD: ROUND(OD/1.5+5.5) TO 2 DECIMALS

HT OD: ROUND(OD/0.75-5.5) TO 2 DECIMALS

EZ+DT OD: ROUND(EZ OD/1.5+5.5) TO 2 DECIMALS

HR+DT OD: ROUND(HR OD/1.5+5.5) TO 2 DECIMALS

EZ+HT OD: ROUND(EZ OD/0.75-5.5) TO 2 DECIMALS

HR+HT OD: ROUND(HR OD/0.75-5.5) TO 2 DECIMALS

300 Hit window: ROUND(49.5-(OD/0.5)*1.5) TO 1 DECIMAL

EDIT: Here's the new and better (???) taiko pp calculator (automated 300 hit window calculation based off _Gezo_'s od table): https://www.dropbox.com/s/52mikcnntehqn ... .html?dl=0

private double GetHitWindow300()If anyone needs an explanation I can explain it, but yea, OD is weird when it comes to decimals...

{

string ODstr = map.GetTag("Difficulty", "OverallDifficulty");

if(ODstr.Length > 3)

throw new Exception("Error, OD has more than one decimal place");

double OD = Convert.ToDouble(ODstr);

if(((int)mods & (int)Modifiers.HardRock) > 0)

OD *= 1.4;

else if(((int)mods & (int)Modifiers.Easy) > 0)

OD *= 0.5;

OD = Dewlib.Clamp(OD, 0, 10);

//Calculate the integer part of OD first, then modify later based on the decimal

double window = 49.5 - 3 * Math.Floor(OD);

//If OD has a decimal place

if(OD % 1 != 0)

{

//Avoid precision bugs - round to one decimal place

double ODdecimal = Math.Round(OD - Math.Floor(OD), 1);

if(0.1 <= ODdecimal && ODdecimal <= 0.3)

window -= 1;

else if(0.4 <= ODdecimal && ODdecimal <= 0.6)

window -= 2;

else if(0.7 <= ODdecimal && ODdecimal <= 0.9)

window -= 3;

}

if(((int)mods & (int)Modifiers.DoubleTime) > 0 || ((int)mods & (int)Modifiers.Nightcore) > 0)

window /= 1.5;

else if(((int)mods & (int)Modifiers.HalfTime) > 0)

window /= 0.75;

return window;

}

I might add input validation and more CSS later.

http://pp.mon.im/

I might add input validation and more CSS later.

http://pp.mon.im/

Go for it, no worries

By the way, it looks like you forgot to clamp od after applying the multiplier from HR/EZ

http://puu.sh/rixFO/7e3a6e8060.jpg

Fixed. Also added display of OD with mods applied.