06-14-2003, 03:21 AM
Hello, Lurker Lounge. I've lurked here for quite some time, but I only registered today.
I posted about this first at the Amazon Basin, but Brista said I should post it here, too, for a more critical look at it.
The URL: http://www.cs.colostate.edu/~deykea/d2weapons.html
In short, I felt like proramming something and decided that the weapon damage from the upgrade recipes would be a useful thing to have. It's had a lot of changes since the original.
The program itself was written in Java. It reads the weapons.txt and UniqueItems.txt files (taken from the MPQs and slightly modified *), does some processing, including taking the correct names from text dumps of the TBL files. and outputs the HTML/JavaScript file linked above.
The interface should be pretty intuitive.
If the damage is calculated incorrectly for any item, let me know.
As FenrisWulf posted here earlier, we both independently, at about the same time, realized that the Deathspade screenshots had the min damage applied before the enhanced damage. In addition, it was pretty common knowledge that the +1 base damage was not present in any of the weapon screenshots **. What my experimental 1.10 calculations does is to take off the +1 base damage and calculate enhanced damage last. It's not clear exactly what will come before enhanced damage and what will come after it, so I'm using the highest-damage possibility to show how scary that could be. Perhaps only min damage on the weapon itself will come first, and perhaps the calculations have reverted back since the Deathspade screenshots. When I get more information, I can implement it.
Note that I do allow "downgrades" and I do show all three damages even if you manually enter stats instead of picking a unique. I do, however, check if either the weapon or the unique is indestructible and disallow etherealness if either is. This does allow ethereal elite Azurewraths and Ginther's Rifts; I'm not sure what will happen when those get upgraded.
Also note that the "% Equivalent" value is derived through a division of the average damage (the bottom one if there are two) by the average base damage (+1 if it's the current calculations). This is intended as an approximate equivalence to show how damaging something is. Due to rounding, it's not perfectly accurate; there may be cases where a perfectly accurate number is impossible, anyways.
So, please let me know what you think, and tell me about any inaccuracies or errors in it.
* In order to work around a problem I had with my StringTokenizer, I placed 0s where there was no value at all. I also manually deleted everything but the unique weapons from the uniques file as this seemed easier than trying to tell the program what's a weapon and what isn't. Finally, there seems to be a bug, in that the Bardiche family has 7b7, Champion Sword, as ultracode instead of 7o7, Ogre Axe. I fixed this in my file, but I don't know if there are other such problems.
** It's entirely possible that the calculations are still the same and they just changed the base damage of Phase Blades, Pellet Bows and the Axe family. I deem this unlikely, though.
I posted about this first at the Amazon Basin, but Brista said I should post it here, too, for a more critical look at it.
The URL: http://www.cs.colostate.edu/~deykea/d2weapons.html
In short, I felt like proramming something and decided that the weapon damage from the upgrade recipes would be a useful thing to have. It's had a lot of changes since the original.
The program itself was written in Java. It reads the weapons.txt and UniqueItems.txt files (taken from the MPQs and slightly modified *), does some processing, including taking the correct names from text dumps of the TBL files. and outputs the HTML/JavaScript file linked above.
The interface should be pretty intuitive.
If the damage is calculated incorrectly for any item, let me know.
As FenrisWulf posted here earlier, we both independently, at about the same time, realized that the Deathspade screenshots had the min damage applied before the enhanced damage. In addition, it was pretty common knowledge that the +1 base damage was not present in any of the weapon screenshots **. What my experimental 1.10 calculations does is to take off the +1 base damage and calculate enhanced damage last. It's not clear exactly what will come before enhanced damage and what will come after it, so I'm using the highest-damage possibility to show how scary that could be. Perhaps only min damage on the weapon itself will come first, and perhaps the calculations have reverted back since the Deathspade screenshots. When I get more information, I can implement it.
Note that I do allow "downgrades" and I do show all three damages even if you manually enter stats instead of picking a unique. I do, however, check if either the weapon or the unique is indestructible and disallow etherealness if either is. This does allow ethereal elite Azurewraths and Ginther's Rifts; I'm not sure what will happen when those get upgraded.
Also note that the "% Equivalent" value is derived through a division of the average damage (the bottom one if there are two) by the average base damage (+1 if it's the current calculations). This is intended as an approximate equivalence to show how damaging something is. Due to rounding, it's not perfectly accurate; there may be cases where a perfectly accurate number is impossible, anyways.
So, please let me know what you think, and tell me about any inaccuracies or errors in it.
* In order to work around a problem I had with my StringTokenizer, I placed 0s where there was no value at all. I also manually deleted everything but the unique weapons from the uniques file as this seemed easier than trying to tell the program what's a weapon and what isn't. Finally, there seems to be a bug, in that the Bardiche family has 7b7, Champion Sword, as ultracode instead of 7o7, Ogre Axe. I fixed this in my file, but I don't know if there are other such problems.
** It's entirely possible that the calculations are still the same and they just changed the base damage of Phase Blades, Pellet Bows and the Axe family. I deem this unlikely, though.