# Java-based optimal Rogue reforging calculator

### #21

Posted 01 February 2011 - 12:58 PM

A set of textboxes with the suggested values with the option of changing them? That way you can enter the EP-values for your particular talent-spec and gear level. That would also increase understanding as to what values are actually used in the reforging calculations.

### #22

Posted 01 February 2011 - 03:21 PM

A suggestion: Why not implement so you can enter the EP-values and the cap values?

A set of textboxes with the suggested values with the option of changing them? That way you can enter the EP-values for your particular talent-spec and gear level. That would also increase understanding as to what values are actually used in the reforging calculations.

That's actually the only thing that i want from Java app. It's much faster than korner version and i can use it after i get any item.

Java Reforger should also say if some items should not have any reforge at all. There's no such information in current version.

### #23

Posted 01 February 2011 - 05:27 PM

I downloaded the source and have a few questions.

First of all I'd like to try to always stay above HIT and EXP cap (using it normally it keeps putting me below EXP cap). I found this in the code, is there any way to alter it to force it to always hit EXP cap?int exp = statValues[Stat.exp.getIndex()]; if (exp > EXP_CAP) { result += EP_AT_EXP_CAP; } else { result += exp * EXP_COEFFICIENT; }

While I was at it I also edited the EP values for the Combat profile for 4.0.6 values. However when I try to compile it with javac (javac *.java) I get the following errors:Reforger.java:26: package net.wsnetwork.reforger.rogue does not exist import net.wsnetwork.reforger.rogue.CombatSpecModel; ^ Reforger.java:27: package net.wsnetwork.reforger.rogue does not exist import net.wsnetwork.reforger.rogue.MutiltateSpecModel; ^ Reforger.java:124: cannot find symbol symbol : class CombatSpecModel location: class net.wsnetwork.reforger.Reforger model = new CombatSpecModel(); ^ Reforger.java:127: cannot find symbol symbol : class MutiltateSpecModel location: class net.wsnetwork.reforger.Reforger model = new MutiltateSpecModel(); ^ 4 errors

Any tips on what I'm doing wrong? I'm assuming it has something to do with the CLASSPATH but since I'm new to Java I'm a bit lost lol.

Actually I take back what I said about the EXP part. The code looks fine, I'm probably ending up under EXP cap just because the java applet isn't able to reforge a few stats that I do have reforged. This is what the java app is set to reforge:

@Override public Map<Stat, Set<Stat>> getPossibleReforgings() { HashMap<Stat, Set<Stat>> result = new HashMap<Stat, Set<Stat>>(); Set<Stat> stats = new HashSet<Stat>(); stats.add(Stat.exp); stats.add(Stat.hst); result.put(Stat.hit, stats); stats = new HashSet<Stat>(); stats.add(Stat.hst); stats.add(Stat.exp); result.put(Stat.mst, stats); stats = new HashSet<Stat>(); stats.add(Stat.exp); stats.add(Stat.hit); result.put(Stat.hst, stats); stats = new HashSet<Stat>(); stats.add(Stat.hit); stats.add(Stat.mst); stats.add(Stat.hst); result.put(Stat.exp, stats); stats = new HashSet<Stat>(); stats.add(Stat.exp); stats.add(Stat.hit); stats.add(Stat.mst); stats.add(Stat.hst); result.put(Stat.cri, stats);

If the code was altered to this:

@Override public Map<Stat, Set<Stat>> getPossibleReforgings() { HashMap<Stat, Set<Stat>> result = new HashMap<Stat, Set<Stat>>(); Set<Stat> stats = new HashSet<Stat>(); stats.add(Stat.exp); stats.add(Stat.hst); result.put(Stat.hit, stats); stats = new HashSet<Stat>(); stats.add(Stat.hit); stats.add(Stat.hst); stats.add(Stat.exp); result.put(Stat.mst, stats); stats = new HashSet<Stat>(); stats.add(Stat.exp); stats.add(Stat.hit); result.put(Stat.hst, stats); stats = new HashSet<Stat>(); stats.add(Stat.hit); stats.add(Stat.mst); stats.add(Stat.hst); result.put(Stat.exp, stats); stats = new HashSet<Stat>(); stats.add(Stat.exp); stats.add(Stat.hit); stats.add(Stat.hst); result.put(Stat.cri, stats);

(Taking MST out of CRI and adding HIT to MST)

Would the time change at all? If not I think that should result in much better reforges (HIT/EXP/HST on every possible stat). MST could be added to a few if it wouldn't increase reforge times too much, but I suspect it would.

*All of the above is referring to the

**COMBAT**profile, although similar changes could probably be made to the Assassination profile*

### #24

Posted 01 February 2011 - 05:29 PM

That's actually the only thing that i want from Java app. It's much faster than korner version and i can use it after i get any item.

Java Reforger should also say if some items should not have any reforge at all. There's no such information in current version.

For what it's worth I am playing around with bsofts code to be more versatile for both rogues and any other class. We briefly touched base and he said he doesn't have the time to go all the way with his reforging tool. When I come up with something I'll be sending it to him for his review.

### #25

Posted 01 February 2011 - 05:38 PM

For what it's worth I am playing around with bsofts code to be more versatile for both rogues and any other class. We briefly touched base and he said he doesn't have the time to go all the way with his reforging tool. When I come up with something I'll be sending it to him for his review.

I started doing the same thing. I wanted to get a working copy that worked before I reached out to him. I'd be more then happy to review what you have done if you need another set of eyes.

### #26

Posted 02 February 2011 - 05:39 AM

### #27

Posted 02 February 2011 - 08:31 PM

Recommended reforgings:

["Blackscale Wraps" 37 Mastery to Expertise]

["Portal-Sealer's Breastplate" 62 Crit to Expertise]

["Calder's Coated Carrion Carver" 33 Crit to Expertise]

["Swiftflight Leggings" 67 Crit to Expertise]

["Signet of Bloody Sands" 34 Hit to Expertise]

["Helm of Secret Knowledge" 46 Crit to Expertise]

["Quel'Dormir Signet Ring" 23 Crit to Expertise]

["Clandestine Spaulders" 56 Crit to Expertise]

["Winged Axe" 19 Hit to Haste]

["Mindsear Shanker" 28 Hit to Expertise]

["Mirror-Polished Boots" 44 Mastery to Haste]

**["Skardyn's Grace" 504 Mastery to Haste]**["Pendant of Victorious Fury" 36 Mastery to Expertise]

["Cloak of Beasts" 30 Mastery to Haste]

Stats with no reforgings (EP = 4143.6):

Hit: 477

Mastery: 400

Haste: 1175

Expertise: 340

Crit: 725

Stats with current reforgings (EP = 4206.2):

Hit: 623

Mastery: 462

Haste: 1175

Expertise: 340

Crit: 517

Stats with recommended reforgings (EP = 4742.3):

Hit: 396

Mastery: -251

Haste: 1772

Expertise: 762

Crit: 438

Improvement over current reforgings: 536.2

Calculation time: 2.2K seconds (checked 12M possibilities per second)

### #28

Posted 03 February 2011 - 12:30 AM

using the jar

Recommended reforgings:

["Blackscale Wraps" 37 Mastery to Expertise]

["Portal-Sealer's Breastplate" 62 Crit to Expertise]

["Calder's Coated Carrion Carver" 33 Crit to Expertise]

["Swiftflight Leggings" 67 Crit to Expertise]

["Signet of Bloody Sands" 34 Hit to Expertise]

["Helm of Secret Knowledge" 46 Crit to Expertise]

["Quel'Dormir Signet Ring" 23 Crit to Expertise]

["Clandestine Spaulders" 56 Crit to Expertise]

["Winged Axe" 19 Hit to Haste]

["Mindsear Shanker" 28 Hit to Expertise]

["Mirror-Polished Boots" 44 Mastery to Haste]["Skardyn's Grace" 504 Mastery to Haste]["Pendant of Victorious Fury" 36 Mastery to Expertise]

["Cloak of Beasts" 30 Mastery to Haste]

Stats with no reforgings (EP = 4143.6):

Hit: 477

Mastery: 400

Haste: 1175

Expertise: 340

Crit: 725

Stats with current reforgings (EP = 4206.2):

Hit: 623

Mastery: 462

Haste: 1175

Expertise: 340

Crit: 517

Stats with recommended reforgings (EP = 4742.3):

Hit: 396

Mastery: -251

Haste: 1772

Expertise: 762

Crit: 438

Improvement over current reforgings: 536.2

Calculation time: 2.2K seconds (checked 12M possibilities per second)

Looks like on the Use of Skardyn's Grace it adds it to the general stats overall. Looking into why this is.

Edit:

The xml scheme on wowhead for items with Use: characteristic throws the periodic stat increase with the same pattern as any other secondary stat thats an Equip characteristic.

Very cheap fix at the moment. Replace the entire public StatVector(String wowheadData) constructor with the following in StatVector.java.

public StatVector(String wowheadData) { data = new int[Stat.possibleStats.length]; for (Stat stat : Stat.possibleStats) { Pattern pattern = Pattern.compile("\"" + stat.getWowheadName() + "\":(\\d+)"); Pattern useItemPattern = Pattern.compile("Use:"); Matcher useItemMatcher = useItemPattern.matcher(wowheadData); Matcher matcher = pattern.matcher(wowheadData); if (matcher.find() && !useItemMatcher.find()) { data[stat.getIndex()] = Integer.parseInt(matcher.group(1)); } else { data[stat.getIndex()] = 0; } } }

### #29

Posted 03 February 2011 - 08:45 AM

// EP value of spell hit and yellow hit at the hit cap private static final double EP_AT_SPELL_CAP = EP_AT_YELLOW_CAP + SPELL_HIT_COEFFICIENT * SPELL_HIT_CAP;

this would in numbers mean: 241 * 1.9 + 1127 * 1.4

I think that is wrong, because you are actually counting the yellow cap ratings twice. Once for 1.9 ep and once for 1.4 ep

So I guess, that right calculation would be 241 * 1.9 + (1127 - 241) * 1.4,.

This actually changes the results for combat

**alot**(read as: 241 * 1.4ep too much).

It only happens for stat vectors assuming hit rating above the spell cap.

As long as the calculated hit ratings are below the spell hit cap, your formulas are correct, as EP_AT_YELLOW_CAP is not used in the else if.

Regards,

White

// Edit:

Also a little suggestion: For combat, there is no case where reforging into MST or CRT will happen at all. There is always an option to reforge those values into something differnt (reason beeing, that even white hit rating is superior to those two).

Removing all StatVectors for those values could reduce calculation times for combat ratings to a good amount.

### #30

Posted 03 February 2011 - 08:53 AM

I think I found an calculation error for the combat ratings (might apply similarly to the assasination values)

// EP value of spell hit and yellow hit at the hit cap private static final double EP_AT_SPELL_CAP = EP_AT_YELLOW_CAP + SPELL_HIT_COEFFICIENT * SPELL_HIT_CAP;

this would in numbers mean: 241 * 1.9 + 1127 * 1.4

I think that is wrong, because you are actually counting the yellow cap ratings twice. Once for 1.9 ep and once for 1.4 ep

So I guess, that right calculation would be 241 * 1.9 + (1127 - 241) * 1.4,.

This actually changes the results for combatalot(read as: 241 * 1.4ep too much).

It only happens for stat vectors assuming hit rating above the spell cap.

As long as the calculated hit ratings are below the spell hit cap, your formulas are correct, as EP_AT_YELLOW_CAP is not used in the else if.

Regards,

White

I also found an error while using the java based tool that could be a consequence of the above statement.

On my combat rogue (almost full 359), the tool advises me to convert haste from my wind dancer tunic to hit and to leave fluid death unchanged ; which is obviously a non-sense

### #31

Posted 03 February 2011 - 09:32 AM

Reforger version 1.4.

Loading character info:

Using mutilate reforgings.

Loading items:

["Themios the Darkbringer" Stats=[Hit=0 Mastery=72 Haste=0 Expertise=0 Crit=72]]

["Rich Purple Silk Shirt" Stats=[Hit=0 Mastery=0 Haste=0 Expertise=0 Crit=0]]

["Necklace of Strife" Stats=[Hit=0 Mastery=127 Haste=127 Expertise=0 Crit=0]]

["Sticky Fingers" Stats=[Hit=0 Mastery=150 Haste=130 Expertise=0 Crit=0]]

["Throat Slasher" Stats=[Hit=86 Mastery=0 Haste=0 Expertise=0 Crit=86]]

["Helm of Numberless Shadows" Stats=[Hit=182 Mastery=0 Haste=0 Expertise=0 Crit=162]]

["Essence of the Cyclone" Stats=[Hit=0 Mastery=0 Haste=0 Expertise=0 Crit=0]]

["Tunic of Sinking Envy" Stats=[Hit=162 Mastery=0 Haste=0 Expertise=0 Crit=202]]

["Embrace of the Night" Stats=[Hit=130 Mastery=0 Haste=0 Expertise=0 Crit=150]]

["Aberration's Leggings" Stats=[Hit=0 Mastery=0 Haste=188 Expertise=0 Crit=228]]

["Poison Fang Bracers" Stats=[Hit=100 Mastery=0 Haste=100 Expertise=0 Crit=0]]

["Tabard of the Earthen Ring" Stats=[Hit=0 Mastery=0 Haste=0 Expertise=0 Crit=0]]

["Boots of the Predator" Stats=[Hit=130 Mastery=0 Haste=0 Expertise=0 Crit=150]]

["Quicksand Belt" Stats=[Hit=150 Mastery=0 Haste=0 Expertise=0 Crit=130]]

["Lightning Conductor Band" Stats=[Hit=127 Mastery=0 Haste=0 Expertise=0 Crit=127]]

["Tia's Grace" Stats=[Hit=0 Mastery=285 Haste=0 Expertise=0 Crit=0]]

["Organic Lifeform Inverter" Stats=[Hit=0 Mastery=97 Haste=0 Expertise=97 Crit=0]]

["Twitching Shadows" Stats=[Hit=0 Mastery=0 Haste=112 Expertise=0 Crit=112]]

["Mistral Circle" Stats=[Hit=0 Mastery=0 Haste=0 Expertise=0 Crit=0]]

java.lang.RuntimeException: Random enchant item found. These items are not yet supported.

at net.wsnetwork.reforger.Reforger.runReforging(Reforger.java:153)

at net.wsnetwork.reforger.ReforgerApplet$ReforgerRunnable.run(ReforgerApplet.java:99)

at java.lang.Thread.run(Unknown Source)

Vamo @ Stormscale - Game - World of Warcraft - it is my main hand dagger and conclave ring. I have an idea the conclave ring is the issue, since it's stats and reforging is not shown on armory either.

EDIT: Bsofs comment on the ring.

This appears to be the problem item:

["Mistral Circle" Stats=[Hit=0 Mastery=0 Haste=0 Expertise=0 Crit=0]]

Solving this problem is complex because neither Wowhead nor the Armory item pages report the stats on these items correctly. The stats will need to be pulled from your Armory page, which is more complex since the item might already be reforge and the HTML is harder to parse.

I'll see if I can get a fix done tomorrow.

Any plans to fix this issue soon? But, I dont understand HOW you are gonna fix it, since it fetches data from armory, and armory doesn't show stats. So it's really a error from blizzard

### #32

Posted 03 February 2011 - 04:03 PM

### #33

Posted 03 February 2011 - 05:02 PM

Another flaw. It worked before I changed daggers and a ring, I have the same enchants as before, but yet, it still says random enchant items found, not supported.

Vamo @ Stormscale - Game - World of Warcraft - it is my main hand dagger and conclave ring. I have an idea the conclave ring is the issue, since it's stats and reforging is not shown on armory either.

EDIT: Bsofs comment on the ring.

Any plans to fix this issue soon? But, I dont understand HOW you are gonna fix it, since it fetches data from armory, and armory doesn't show stats. So it's really a error from blizzard

Its the ring, need to pull the 4 random enchant stats of the items armory page and add it manually to the possible reforges. +143 (372 version) to hit for 2 of them, crit or haste, Mistral Circle - Game - World of Warcraft.

I'll work on it today and have edits up for you.

### #34

Posted 03 February 2011 - 05:03 PM

I also found an error while using the java based tool that could be a consequence of the above statement.

On my combat rogue (almost full 359), the tool advises me to convert haste from my wind dancer tunic to hit and to leave fluid death unchanged ; which is obviously a non-sense

Ya that is an issue. Looking into it as well.

### #35

Posted 03 February 2011 - 11:11 PM

### #36

Posted 03 February 2011 - 11:16 PM

### #37

Posted 03 February 2011 - 11:23 PM

More points in mastery always means more damage so far as I know - its not like it truncates down to the nearest whole point when computing benefit. So I'm afraid I have no idea what you're talking about.

As far as you know... this describes it very well! I haven't found anything about the mastery is calculated exactly. So stop flaming me and tell me who did some testing on this. Otherwise I believe the Blizzard UI more than you... sry!

Pls report if anyone has other clues about this topic!

### #38

Posted 03 February 2011 - 11:38 PM

As far as you know... this describes it very well! I haven't found anything about the mastery is calculated exactly. So stop flaming me and tell me who did some testing on this. Otherwise I believe the Blizzard UI more than you... sry!

Pls report if anyone has other clues about this topic!

Well, surely you're brilliant enough to realize that Mastery isn't truncated, but rather is treated in the same way as Expertise. That is to say, each individual point of mastery is as valuable as the next. There are no breakpoints.

This has been documented and well-understood by all classes since 4.0 went live several months ago. The character sheet does not represent the values accurately.

Edited for civility

### #39

Posted 04 February 2011 - 03:03 AM

Strange indeed..

### #40

Posted 04 February 2011 - 05:21 AM

As far as you know... this describes it very well! I haven't found anything about the mastery is calculated exactly. So stop flaming me and tell me who did some testing on this. Otherwise I believe the Blizzard UI more than you... sry!

Pls report if anyone has other clues about this topic!

Probably for the rogue thread but can someone briefly reiterate where the discrepancy comes from mastery increasing poison dmg by 3.5%/point. I must've of missed this conversation somewhere.

You know, I think a piece of my gear is throwing the tool off or the armory is reporting something wrong, it's taking my reforge and always giving me the wrong result after I reforge. But if I play with the results and change 1-2 pieces from what it tells me I can almost always make my goal for hit.

Strange indeed..

Whats the item ?

#### 0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users