Simple really.. I'm putting together a little tool that will show how many hits it takes a unit to kill another unit. I'm going to add the ability to add armor and attack upgrades so that players can try to maximize their strategies; for example it might take 1 ground weapon upgrade for protoss to kill off a unit 1 hit less which would be highly valuable information.
I assume all players to know how to properly use strategy with each unit and things like Void Ray probably won't be supported.
I'm not trying to advertise or plug the site... just offering a tool to the community and looking for some feedback so that it can be made more useful. I'm offering it to you guys first since I know there are some number crunchers around.
Please report any bugs or suggestions here.
Thanks.
- 4/5/2010 - Changed entire layout of page with tabs for easier viewing. Working on some sort of unit efficiency rating so that the most efficient unit (excluding micro, kiting, etc.. not calculable) can be displayed.
- 4/15/10 - Complete combat system overhaul.. please report any bugs.
- 4/19/10 - Fixed a bug that caused damage vs shields to account for armor when it should not have. Shield armor is now 0. - Immortal hardened shields implemented. - Stimpack, marine combat shield, protoss shields, guardian shield, EMP implemented as upgrades/abilities.
- 4/20/10 - All upgrades and abilities are now implemented.
- 5/4/10 - Implemented multiple unit vs multiple unit combat.
- 5/21/10 - Updated for Patch 13
- KNOWN ISSUES.
- Baneling damage isn't calculated correctly. - Void Ray damage is based on fully charged. - Battles that result in a tie are broken again.
I've implemented a program for generating hit charts. You can find it here.
I've made the source code available (Python). Feel free to incorporate the hit computation algorithm (or the charts) into your site if you find it helpful.
5.00 hits to kill this unit This unit does 30 extra damage per shot to this unit.
This should be fixed.. thanks for pointing this out, i noticed a pretty large mathematical error which should now fix a lot of calculations across the board.
Damage charts added showing dmg per rank of weapon and dmg per rank of armor. It does not account for a unit not actually being upgradable or not, so use your SC2 knowledge for now and don't be retarded.
Awesome work. A couple of problems, however: the hit to kill against immortals and zerg units is wrong. For immortals, you have to take into account that they take a max of 10 dmg for the first 10 hits. Also, you need to add +1 hp to all zerg units when they face off against an opponent with two attacks. For example, your program indicates that a thor will kill a hydra in one hit. This is not the case because one hp is instantly regenerated before the second hit takes place.
On April 01 2010 17:00 Suspected wrote: Awesome work. A couple of problems, however: the hit to kill against immortals and zerg units is wrong. For immortals, you have to take into account that they take a max of 10 dmg for the first 10 hits. Also, you need to add +1 hp to all zerg units when they face off against an opponent with two attacks. For example, your program indicates that a thor will kill a hydra in one hit. This is not the case because one hp is instantly regenerated before the second hit takes place.
I have reports that this functionality is no longer in game.. I do understand the 1hp/2sec regen of Zerg, but someone just tested and it took a full 2 seconds to regen drone hp after a hit on it. I can't confirm till I get home.
I tried it with only Drones earlier, but now I even tried it with Hydras. One Hydra can take 3 shots at another Hydra to bring it down from 90 to 54 (3x12=36 damage) before the attacked Hydra's regen starts to kick in. There is no instant regen anymore.
A simple addition that might increase it's utility... add the rate of fire and show how quickly it will kill the corresponding unit. Also, if you could easily swap attacker and defender, that might also be nice. Good work!
On April 02 2010 01:12 Ajax77 wrote: A simple addition that might increase it's utility... add the rate of fire and show how quickly it will kill the corresponding unit. Also, if you could easily swap attacker and defender, that might also be nice. Good work!
Pretty sure Blizzard uses float numbers for rate of fire. I've seen some dmg calcs out there, but I don't see how they are accurate. I would prefer not to add data that is "kind of" accurate. If this is not correct please tell me and I'd be happy to add it, but I think attack delay is stuff like .34623 seconds.
On April 02 2010 00:39 cyllu2 wrote: As much as I wished it would be so, Hydras don't have +6 to armored units.
edit: it doesn't seem to calculate with +6 to armored, it just says they have that bonus.
It actually was being calculated vs air units.. fixed. Thanks for the heads up. I'm going to output a lot more data to show what's happening so that we can make sure the calculations are proper soon.
It's not very useful at the moment, but can you add in how much time it takes as well? If something takes 5.5 hits to kill something else, put both the time for 5.5 hits and 6 hits.
On April 02 2010 00:39 cyllu2 wrote: As much as I wished it would be so, Hydras don't have +6 to armored units.
edit: it doesn't seem to calculate with +6 to armored, it just says they have that bonus.
Lol. That's the first unit I tried too and when I saw the +6 to armor I was like... I never knew!!!!
Rushed to check only to be disappointed. I don't mind though, hydras own.
The primary weapon targeted both air and ground, so that was old errant data that somehow found its way into my data set. I think at one time there were 2 separate attacks.. one for ground and one for air. It wasn't being calculated in my data, so really.. it was just a letdown to see it, nothing more
If we have REAL attack time values at some point.. if someone can extract the actual unit data, I can factor in attack times like a Marine fires every .346 seconds then if totalAttackTime % 2 = 0, regenerate 1hp if defending unit race = Zerg. I don't want to add this kind of data until we get exact numbers though as it would be misleading if its not 100% absolutely accurate to the .00001
On April 02 2010 03:01 Chairman Ray wrote: It's not very useful at the moment, but can you add in how much time it takes as well? If something takes 5.5 hits to kill something else, put both the time for 5.5 hits and 6 hits.
I appreciate your opinion, but knowing a Reaper can 2 shot Zerg and protoss workers if you get the +1 damage upgrade is QUITE useful information
Bug report: currently a drone takes 233.33 hits to kill a mothership
Nice job on the presentation, it looks pretty. A few comments, the interface is geared to giving information on two units, and then there's the single bit of information in the number of shots it takes to kill the other unit. This information is most useful in comparison to other unit combinations. By itself it doesn't say that much. Ah wait I read your comment and now I tried out that extra button you made that shows more damage calculations. Presentation in a sorted list please? :D
Besides the number of shots it takes to kill the unit, it would be informative if you would indicate the number of shots it takes the other way around, and then add a number of efficiency:
For the numbers, I will assume that regeneration is already compensated for.
It takes a zergling 18 hits to kill a hydra. It takes a hydra 2,92 hits to kill a zergling. But it makes more sense to say that three shots kill a zergling, as that last 0,08 bit of a shot goes completely lost. A zergling costs 25 minerals, 0 gas A hydra costs 100 minerals, 50 gas Attacking a hydra with a zergling, ignoring range versus melee advantage, and partial damage/healing and the like, can be given an efficiency rating. Either you give minerals and gas a separate rating, or you could value gas as double the worth of minerals or any other weight. If taken separate, the efficiency in minerals would be: 0,648888889 = (100*3)/(25*18) mineral efficiency of zergling attacking hydra = (hydra mineral * hydra hits to kill a zergling) / (zergling mineral * zergling hits to kill a hydra) gas efficiency would yield a divide by zero. If I were to weigh gas twice the value as minerals, I would get an efficiency of zergling attack a hydra: 1,33333 = ((100+2*50)*3)/((25+2*0)*18) when gas is equal worth to minerals: 1=((100+50)*3)/((25+0)*18) That is a perfect balance, I guess by design.
If such a score could be incorporated, that'd be neat.
Edit: oopsie, I made a mistake. You'll have to take attack cooldown into account in the efficiency rating. With the zergling/hydra example you'll see then, I predict, that the zergling is more efficient than the hydra, but if you factor in melee versus ranged it should balance out somewhat again as the hydra can get some hits in while the zergling is moving to the hydra (also calculable).
I think you could go a bit more in-depth ^_^ On Liquipedia II, there are numbers for cooldown and movement. Can you tell where I'm going with this? XD
With the cooldown speed, you can calculate how efficiently a unit can kill another unit (i.e. how much life they will have less, how much time it takes, etc.)
With the movement speed, you can calculate exactly how well a melee unit will perform against a ranged unit, and even calculate for kiting.
Obviously, it would take forever, but it's possible; especially easier since cooldowns are measured in game seconds, and movement speeds are measured in game seconds per matrix, rather than the funky system they used for SC1.
On April 02 2010 04:23 Badjas wrote: Bug report: currently a drone takes 233.33 hits to kill a mothership
And this is an issue why? lol
5dmg - 2armor = 3dmg per hit 350hp + 350shields = 700 700 / 3 = 233.33
I don't think drones can attack air, and a mothership most definitely hovers in the air.
No site has Mothership classified as a Air for a modifier.. not sc2armory, not liquipedia. Someone would need to confirm the classification of this unit as ground or air.
On April 02 2010 05:52 L wrote: Ultralisks are taking 35 shots to kill each other. I think Kaiserblades are outprioritizing headbutt for the calculation.
Headbutt targets buildings only, no? I know it's not listed on my site, but I'm pretty sure that's the mechanic.
Ok, so originally I wanted this to be a "quick" guide for people who already knew strategy and whatnot, but a lot of people seem to be asking a lot of questions regarding the reason for things.. so I"ll try to output more information so the damage calculations and whatnot are more understandable. Maybe tomorrow.
On April 02 2010 04:23 Badjas wrote: Bug report: currently a drone takes 233.33 hits to kill a mothership
Nice job on the presentation, it looks pretty. A few comments, the interface is geared to giving information on two units, and then there's the single bit of information in the number of shots it takes to kill the other unit. This information is most useful in comparison to other unit combinations. By itself it doesn't say that much. Ah wait I read your comment and now I tried out that extra button you made that shows more damage calculations. Presentation in a sorted list please? :D
Besides the number of shots it takes to kill the unit, it would be informative if you would indicate the number of shots it takes the other way around, and then add a number of efficiency:
For the numbers, I will assume that regeneration is already compensated for.
It takes a zergling 18 hits to kill a hydra. It takes a hydra 2,92 hits to kill a zergling. But it makes more sense to say that three shots kill a zergling, as that last 0,08 bit of a shot goes completely lost. A zergling costs 25 minerals, 0 gas A hydra costs 100 minerals, 50 gas Attacking a hydra with a zergling, ignoring range versus melee advantage, and partial damage/healing and the like, can be given an efficiency rating. Either you give minerals and gas a separate rating, or you could value gas as double the worth of minerals or any other weight. If taken separate, the efficiency in minerals would be: 0,648888889 = (100*3)/(25*18) mineral efficiency of zergling attacking hydra = (hydra mineral * hydra hits to kill a zergling) / (zergling mineral * zergling hits to kill a hydra) gas efficiency would yield a divide by zero. If I were to weigh gas twice the value as minerals, I would get an efficiency of zergling attack a hydra: 1,33333 = ((100+2*50)*3)/((25+2*0)*18) when gas is equal worth to minerals: 1=((100+50)*3)/((25+0)*18) That is a perfect balance, I guess by design.
If such a score could be incorporated, that'd be neat.
Edit: oopsie, I made a mistake. You'll have to take attack cooldown into account in the efficiency rating. With the zergling/hydra example you'll see then, I predict, that the zergling is more efficient than the hydra, but if you factor in melee versus ranged it should balance out somewhat again as the hydra can get some hits in while the zergling is moving to the hydra (also calculable).
I was thinking about incorporating something like this.. the only thing with the logic in this is attack delay changes depending on game speed, so I'm not sure what to do there.
I'd think you also need to factor in supply cost in there somewhere.. not sure the weight, but it could use some work for sure.
If we used the default attack speed of the game and used the time it took for one unit to kill the other compared to its resource cost.. I guess that might give some sort of useful data. Suggestions welcome
On April 02 2010 04:23 Badjas wrote: Bug report: currently a drone takes 233.33 hits to kill a mothership
And this is an issue why? lol
5dmg - 2armor = 3dmg per hit 350hp + 350shields = 700 700 / 3 = 233.33
I don't think drones can attack air, and a mothership most definitely hovers in the air.
No site has Mothership classified as a Air for a modifier.. not sc2armory, not liquipedia. Someone would need to confirm the classification of this unit as ground or air.
Fairly sure the Mothership is a full air unit, I played a game recently where I mass roached against a toss. He squeezed out a Mothership while I destroyed his base, roaches could not hit it.
All ground attacking units currently calculate number of hits to drop a Mothership, which shouldn't be possible.
I've made a lot of code changes to only show data that is actually possible. Meaning.. I removed the calculations for +4 to +6 for all units except protoss since that data is useless. It's only for shields + armor upgrades.
Please report any bugs with it as soon as you see them so I can make sure the data is accurate.
great tool thanks! I think your viking damage is calculating incorrectly by not including the x2 on air-to-air attack. Look at your results in pheonix vs viking as an example...it shows viking requiring twice the # of attacks as needed to kill
On April 06 2010 10:40 crisPtoss wrote: great tool thanks! I think your viking damage is calculating incorrectly by not including the x2 on air-to-air attack. Look at your results in pheonix vs viking as an example...it shows viking requiring twice the # of attacks as needed to kill
Viking is rated at 2.0 second delay attack speed. Would have to validate this information, but that's the current data on the air to air. It is measured in seconds. It is calculating the 2x.. just really slow attack speed compared to the Phoenix.
Looking for suggestions regarding the combat statistics page. What would you like to see added? This page is for unit vs unit stats and the outcome of a battle between the two regarding time to kill and damage delt.
It seams that when two different units kill eachother exactly in the same amount of time it assumes that they cannot attack eachother... probe vs drone for instance
On April 10 2010 02:27 rethos wrote: It seams that when two different units kill eachother exactly in the same amount of time it assumes that they cannot attack eachother... probe vs drone for instance
Should be fixed. Added a statement in the case of a draw.
There's a bug when you have the data charts up: each time you click on a unit, all of the data moves down a line. It resets when you click a different panel.
On April 11 2010 08:17 Zyphyr wrote: There's a bug when you have the data charts up: each time you click on a unit, all of the data moves down a line. It resets when you click a different panel.
I'm not seeing this, can you tell me what browser you're using?
On April 11 2010 10:59 Equaoh wrote: Did you take into account zerg regen? Collosus vs hydra without upgrades should take 3 shots, right?
The math on this should be every 2 seconds add 1 hp correct? I've got total fight time calculated, so it really should be 100sec fight = 50hp regen correct?
On April 11 2010 10:59 Equaoh wrote: Did you take into account zerg regen? Collosus vs hydra without upgrades should take 3 shots, right?
Hydralisk hp was dropped to 80, so no.. but... if it were 90: Colossus attack delay 2.2 seconds, damage 23 x 2.
Colossus attacks Hydra: Hydra hp 90 - 46 = 44hp 2 seconds have to pass and then Hydralisk gains 1hp = 45hp 0.2 seconds pass by and Colossus attacks again for 46 damage.
It's my understanding that Blizzard fixed instant Zerg regen that was a part of Starcraft 1 and has been tested by members of the community.
I'm pretty sure 2 marines vs 1 marauder is wrong. I think the problem might be your program thinks 1 marine = 45 hp, but 2 marines = 1 marine with double dmg and double hp? Or the marauder is switching back and forth which marine it attacks thus increasing the life span of a marine thus the marine is getting a few extra hits out when he should be dead.
2 Marines with no stim @ 45 hp vs 1 Marauder with no stim, both sides start attacking at same time:
[Time] Damage taken is in bold [0.0000] 2Rines @ 45hp 35hp vs Marauder 115hp [0.8608] 2Rines @ 45hp 35hp vs Marauder 105hp [1.5000] 2Rines @ 45hp 25hp vs Marauder 105hp [1.7216] 2Rines @ 45hp 25hp vs Marauder 95hp [2.5824] 2Rines @ 45hp 25hp vs Marauder 85hp [3.0000] 2Rines @ 45hp 15hp vs Marauder 85hp [3.4432] 2Rines @ 45hp 15hp vs Marauder 75hp [4.3040] 2Rines @ 45hp 15hp vs Marauder 65hp [4.5000] 2Rines @ 45hp 5hp vs Marauder 65hp [5.1648] 2Rines @ 45hp 5hp vs Marauder 55hp [6.0000] 2Rines @ 45hp 0hp vs Marauder 55hp [6.0256] 1Rine @ 45hp vs Marauder 50hp [6.8864] 1Rine @ 45hp vs Marauder 45hp [7.5000] 1Rine @ 35hp vs Marauder 45hp [7.7472] 1Rine @ 35hp vs Marauder 40hp [8.6080] 1Rine @ 35hp vs Marauder 35hp [9.0000] 1Rine @ 25hp vs Marauder 35hp [9.4688] 1Rine @ 25hp vs Marauder 30hp [10.3296] 1Rine @ 25hp vs Marauder 25hp [10.5000] 1Rine @ 15hp vs Marauder 25hp [11.1904] 1Rine @ 15hp vs Marauder 20hp [12.0000] 1Rine @ 5hp vs Marauder 20hp [12.0512] 1Rine @ 5hp vs Marauder 15hp [12.9120] 1Rine @ 5hp vs Marauder 10hp [13.5000] 1Rine @ 0hp vs Marauder 10hp
13.5 secs after marauders first attack he kills both marines. Marine #1 gets off 7 hits before he is killed, deals 35 dmg and marine #2 also did 35 dmg before marine #1 died. However marine #2 will end up getting off 16 shots before he is killed combined with marine #1's 7 shots they get off a combined 23 shots 12.912 secs.
However your program claims 2 marines win in 11.19 secs having dealt 26 hits which is impossible since a marine will die in 5 hits (6.000 secs after combat starts). I used Marine attack speed of 0.8608 and Marauder attack speed of 1.5000 which is what you have listed on your site.
[0.0000] 1Rine @ 80hp vs Marauder 115hp [0.8608] 1Rine @ 80hp vs Marauder 105hp [1.5000] 1Rine @ 70hp vs Marauder 105hp [1.7216] 1Rine @ 70hp vs Marauder 95hp [2.5824] 1Rine @ 70hp vs Marauder 85hp [3.0000] 1Rine @ 60hp vs Marauder 85hp [3.4432] 1Rine @ 60hp vs Marauder 75hp [4.3040] 1Rine @ 60hp vs Marauder 65hp [4.5000] 1Rine @ 50hp vs Marauder 65hp [5.1648] 1Rine @ 50hp vs Marauder 55hp [6.0000] 1Rine @ 40hp vs Marauder 55hp [6.0256] 1Rine @ 40hp vs Marauder 45hp [6.8864] 1Rine @ 40hp vs Marauder 35hp [7.5000] 1Rine @ 30hp vs Marauder 35hp [7.7472] 1Rine @ 30hp vs Marauder 25hp [8.6080] 1Rine @ 30hp vs Marauder 15hp [9.0000] 1Rine @ 20hp vs Marauder 15hp [9.4688] 1Rine @ 20hp vs Marauder 5hp [10.3296] 1Rine @ 20hp vs Marauder 0hp [10.5000] 1Rine @ 10hp vs Marauder 0hp [11.1904] 1Rine @ 10hp vs Marauder 0hp
So it really looks like your program doubles the hp and doubles the dmg, but also BOTH sides miss their first attack when you have more than 1 unit on either side. With a 90 hp marine doing 10 dmg to a marauder he should win in 10.3296 secs not 11.1904 (take out the first shot not registering). And a marauder would attack 8 times in 11.19 secs not 7 (11.1904/1.5)+1
I guess there's really no way to simulate real combat where 20 vs 20 units would engage each other at random 1v1's or 2v1's. The situations would be completely different every time depending on how far apart the units are and how fast they acquire different targets.
I'm not sure how to remedy that.
I mean... is 20v20 essentially a 1on1 with whoever would win the 1on1 the real victor? pretty much.. but how would you calculate a 20v10 marine vs hydralisk. Be rather hard to develop and entire combat system with targeting and unit death resulting in a new unit being targeted. I'm thinking I should just leave it at 1v1 with a possible readout of "takes x units to kill unit y"
On April 14 2010 13:29 MajicPanda wrote: I mean... is 20v20 essentially a 1on1 with whoever would win the 1on1 the real victor? pretty much..
Well splash damage would affect results greatly. I think it would probably be hard to do multiple unit battles, considering you have to factor in group dps, then recalculate group dps every time something dies.
I'll play around with it some more later, and check how well the 1v1s are.
Any chance you might add in stim / marine shields etc? As you generally will have both 55 hp marines with stim if you are going infantry. If not no big deal to me I can figure em out manually with attack speed figures.
On April 14 2010 13:29 MajicPanda wrote: I mean... is 20v20 essentially a 1on1 with whoever would win the 1on1 the real victor? pretty much..
Well splash damage would affect results greatly. I think it would probably be hard to do multiple unit battles, considering you have to factor in group dps, then recalculate group dps every time something dies.
I'll play around with it some more later, and check how well the 1v1s are.
Any chance you might add in stim / marine shields etc? As you generally will have both 55 hp marines with stim if you are going infantry. If not no big deal to me I can figure em out manually with attack speed figures.
If you can tell me how many shots a marine and marauder gets off while stim'd I can probably calculate it in to 1v1's. I had plans to add in marine hp and other upgrades as well.
I've completely re-designed the combat system... like a total overhaul and need some beta testing and feedback. The combat is actually a real time simulator and is probably behind in "features" than the other was, but this should become very accurate. I will even implement stim packs, upgrades like marine health, and other factors.
Please leave your testing comments in this thread.
See current issues in 1st post for more information.
Marine vs marauder is wrong, marine can only get off 7 attacks before he is killed not 8, his 8th attack would come .0256 secs after he died.
Marine vs roach is wrong, marine can only get 5 shots off not 6. .5568 secs away from 6th hit
Marine vs zergling is correct 6 attacks for marine, 8 for zergling.
Marine vs hydra is wrong. Marine should have 3 shots not 4. Once again marine is extremely close to his next shot .0924 secs away.
Don't really get why marine is getting an extra attack off, especially when its off by over half a sec vs roach. It may just be marines are wrong, or it may be a bigger problem.
And now for 2 fights where the unit that dies should also be getting his very last hit off the same exact millisecond he dies:
Sentry vs roach, says roach gets off 6 attacks in 10 secs correct, but it says sentry only 10 attacks when it should be 11, however the senty would also be dying at this same time too.
Zealot vs roach, 12 sec fight. Zealot gets off 11 attacks, roach 7 attacks and roach dies at the same exact time he shoots his last attack. correct.
So either the sentry not getting off his last hit is wrong, or the roach getting his last hit off is wrong. I'd say the sentry vs roach is prob wrong.
On April 16 2010 06:31 Craz wrote: Marine vs marauder is wrong, marine can only get off 7 attacks before he is killed not 8, his 8th attack would come .0256 secs after he died.
Marine vs roach is wrong, marine can only get 5 shots off not 6. .5568 secs away from 6th hit
Marine vs zergling is correct 6 attacks for marine, 8 for zergling.
Marine vs hydra is wrong. Marine should have 3 shots not 4. Once again marine is extremely close to his next shot .0924 secs away.
Don't really get why marine is getting an extra attack off, especially when its off by over half a sec vs roach. It may just be marines are wrong, or it may be a bigger problem.
And now for 2 fights where the unit that dies should also be getting his very last hit off the same exact millisecond he dies:
Sentry vs roach, says roach gets off 6 attacks in 10 secs correct, but it says sentry only 10 attacks when it should be 11, however the senty would also be dying at this same time too.
Zealot vs roach, 12 sec fight. Zealot gets off 11 attacks, roach 7 attacks and roach dies at the same exact time he shoots his last attack. correct.
So either the sentry not getting off his last hit is wrong, or the roach getting his last hit off is wrong. I'd say the sentry vs roach is prob wrong.
How this helps some more.
Hmm.. the combat log seems accurate though right? Apparently there's an attack calculated in somewhere in code that's not showing up in the log that I have. This log looks correct right?
There was a problem with air units not finishing the combat stats but that should be alleviated. Please let me know if you see anything else. Tie's are still broken.
Zealot starts the battle with HP: 100 / Shields: 50 Larva starts the battle with HP: 25 / Shields: 0 Neither unit can attack the other. 0.000: Zealot hits Larva for -4 -- Larva hp: 29 / shields: 0 1.200: Zealot hits Larva for -4 -- Larva hp: 33 / shields: 0 2.400: Zealot hits Larva for -4 -- Larva hp: 37 / shields: 0 3.600: Zealot hits Larva for -4 -- Larva hp: 41 / shields: 0
Is it buggy?
Thanks for pointing this out. Anything with insane armor like a larva is taking the damage below 1, so when I implement armor this would have caused issues. This is the only unit right now that will have this problem, so quit attacking larva
EDIT: This has been fixed, all attack damage per weapon is now a minimum of 1 per weapon on the unit. 5 x 2 would now be 1 x 2 resulting in 2 dmg.
Fixed a bug that caused shields to have armor without any upgrades. Shield armor now starts at 0. If this is wrong please let me know... as far as I know all shields have armor of 0 if not upgraded.
Ya I should hide these or put up a note on the page... i dont have my webserver installed on this machine so I can't test locally. Upgrades and abilities are still not yet 100% in.
Alright guys, I've fully implemented every upgrade I can think of and all armor/weapon upgrades. It takes into account min damage of 1 and for damage upgrades it takes into account bonus upgrades and normal upgrades.
The Combat stats does not reflect the log in certain cases.
For example, a Zergling vs a Zealot fight, it doesn't matter how many + dmg upgrades you have for the ling, he always does 8 dmg. However, the log clearly change the amount of dmg he can do in those two hits.
Someone attacking the site? lol it's down all a sudden since I posted the update changes And thanks Crus, I'll check into that. The log is real time and the stats aren't so I'll double check those numbers.
The Combat stats does not reflect the log in certain cases.
For example, a Zergling vs a Zealot fight, it doesn't matter how many + dmg upgrades you have for the ling, he always does 8 dmg. However, the log clearly change the amount of dmg he can do in those two hits.
Site is down for some reason.. checking into that, but I'm wondering where you saw this? I noticed the TOTAL damage given and received was probably wrong but the actual damage per hit should have been correct.
Bleeeh internal server error, cannot view, but this seems really useful. Except for against the numerous high-damage units, like immortals, where armor don't mean shit.
On April 21 2010 00:36 Osmoses wrote: Bleeeh internal server error, cannot view, but this seems really useful. Except for against the numerous high-damage units, like immortals, where armor don't mean shit.
I guess the most useful thing is seeing if +1 +2 +3 armor/weapons, stim pack, or whatever combo you can think of will 1 shot or take a shot off killing a unit.
Just wondering about something; Atk. Immortal Def. Thor Winner is usually an Immortal unless the thor uses the "250 mm gun skill" Source; However in this chart, the thor wins. Does this means that this hit tool uses this ability?
Atk. Sentry Def. Mutalisk The sentry is according to husky a counter to the mutalisk, but in this tool the muta wins.
Great tool all in all. Would be nice if you could add options for spells, upgrades and such.
On April 23 2010 05:20 Shouryu wrote: Just wondering about something; Atk. Immortal Def. Thor Winner is usually an Immortal unless the thor uses the "250 mm gun skill"
However in this chart, the thor wins. Does this means that this hit tool uses this ability?
Atk. Sentry Def. Mutalisk The sentry is according to husky a counter to the mutalisk, but in this tool the muta wins.
Great tool all in all. Would be nice if you could add options for spells, upgrades and such.
I do have options for upgrades, guardian shield, and some other abilties.. are you not seeing them?
My tool has the Immortal winning vs Thor, so I'm not sure what you're looking at exactly? My tool also shows 7 volleys from the Thor hitting the Immortal which is similar to what is happening in that video you linked.
Sentry vs Muta... did you use guardian shield? I think the issue you're seeing is 1v1 compared to 20 vs 20. In 20 v 20 sent vs muta the bounce attacks from the mutas become almost useless, so my tool isnt an end all for deciding a battle.. it's just a quick reference guide.
On my tool, Muta wins vs Sentry without guardian shield active, but if you use it.. the Sentry actually comes up the winner by 1 hit. It is very very accurate as long as the attack times we have are spot on.
has anyone asked about a more user-friendly way of turning on-off weapon and armor levels for units? The only way i found to reset it is to just re-select the unit, which works.
I'm also curious on the time it takes for units to take down buildings.
On April 23 2010 10:26 CrabTrap wrote: Great work, this tool will be VERY usefull
has anyone asked about a more user-friendly way of turning on-off weapon and armor levels for units? The only way i found to reset it is to just re-select the unit, which works.
I'm also curious on the time it takes for units to take down buildings.
I've made the interface for changing upgrades a lot more user friendly.
I need a little feedback from the community.. I'm honestly not a min maxer or do much with my own tool, I've just been bored on lunch breaks at work.
I've thought it might be a good idea to have a table output of each fight so that users can copy paste this into excel or whatnot to have it permanently stored.
I'd like some feedback on what kind of info would be useful to see in this table for comparison purposes. Any layout or table combo is perfectly acceptable as a suggestion. I might even try to automate this process and have it online in the future.
This kind of data not useful to anyone or does no one understand the capability? Was hoping to see some discussion about the # of hits and whatnot certain units take to kill others and some charting.
Take Marauder vs Stalker for instance. Attacker Defender Winner, BattleTime, AtkHPLeft, DefHPLeft, and upgrades. So with Marauder using +1, +2, +3 to weapons it shows the diff.
I would love to see you add a way to see how many of the selected unit it would take to kill the other unit. An example would be how many corruptors do you need to kill 1 void ray etc.
Are you sure you added the +10 hp to marine when you get the combat shield upgrade? I'm looking at the combat stats for both and it has it that the marine has 45 hp in both situations (with upgrade and without)
On April 29 2010 09:59 pandamanana wrote: I think I broke it. I made the attacker a Banshee and the defender an Ultralisk and it won't calculate the damage. Is that on purpose? ;3
Maybe you didnt wait for the battle to finish? Lol.. i need to maybe put a display saying it's STILL calculating for insanely long fights.
On April 29 2010 08:40 mesobored123 wrote: Are you sure you added the +10 hp to marine when you get the combat shield upgrade? I'm looking at the combat stats for both and it has it that the marine has 45 hp in both situations (with upgrade and without)
Is this possibly an interface issue? It says the one on left starts with 55hp for me and vise versa.
Little buggy here and there but ive implemented Nv1 combat. I have no plans to implement NvN combat, so this will probably be one of the last things I do besides possibly adding other abilities.
Second, I registered on this forum just to provide some feedback :
1. Need more precision on melee vs ranged battles. Add an option so we can see the outcome of combat if both units are on top of each other, or if they start at a distance (max range of the ranged unit), when it gets free hits on the melee. It would help us find out things like how many zealots you need to kill a tower, factoring in the "closing in time" factor. (I assume this is hard to do because stats on movement speed are not available?)
2. Add the zealot "charge" ability / upgrade? it makes a huge difference in battle.
3. Let us find out how many hits (and time) it takes for a unit to kill a building. You can either add all the buildings, or if it is too time consuming add a dummy building that has 1000 HP so we can test this out. We can't test this out now because units retaliate, while buildings don't. (This would help find out how many zealots it takes to kill a spaceport or pylon fast enough before a void ray comes out, or to counter a tower rush, etc. Mostly helps in figuring out BOs.)
Although, I got some NaN for the Ultralisk Ok, maybe that's because it can't attack air unit, but you should manage this case (write n/a or 0 for damage). And a little speed boost would be welcome too (no need to do it in real time ) (or maybe it's just due to the NaN?)
And it would be nice to be able to enter the number of unit manually.
So a few more minor twists and I think it will get perfect ^_^
I think the "winner" is the other unit to not die first. However, if you have 2 units from which one dies, then the winner should be the last standing unit
I think the "winner" is the other unit to not die first. However, if you have 2 units from which one dies, then the winner should be the last standing unit
On May 03 2010 22:17 Zalan wrote: Yeah, really a good idea.
Although, I got some NaN for the Ultralisk Ok, maybe that's because it can't attack air unit, but you should manage this case (write n/a or 0 for damage). And a little speed boost would be welcome too (no need to do it in real time ) (or maybe it's just due to the NaN?)
Great job!
It's in 4x speed... any faster and the nanoseconds become a little too close and can cause issues in javascript. maybe I'll learn C++ some day.. nah, too much sc2 to play.
Hahaha! C++ isn't that hard to manage for simple things (and I guess if you can do it in javascript, it's simple enough). Otherwise, you could try to do it in Java (which is in between JavaScript and C++). There is a ton of really nice tutorials on the net and you should be able to breeze through the important stuff in a night (when Blizzard will reset ). Moreover, you can use Java to make nice applets ^_^
Anyway, it's still nice, so don't feel like you must speed it up too much.
However, you should write some message to replace the NaN when attacking air units
C++ can't do javascript's job anyway. JS can run on the client machine and deliver instant results, while as far as i know there is no browser-integrated C++ interpreter, and using advanced delivery systems like activeX controls will most likely be blocked by windows security / etc.
Only way I can see is C++ Net + AJAX. Which is way overkill for this application... I'd say it is already doing a good enough job with simple JS.
But if you really want to speed it up, a simple way would be to store/save the results in the JS (they are not that big, i'd say they fit in less than a 10k JS file) once for all and just load them on the fly.
Draken, you are totally right. That's why I mentionned Java as a nice alternative.
But I think you are right, results could be saved, but isn't there a random factor? Also, there is a lot of possible combinations, so you'd need to get some automatic generator to update on each new patch, and you don't want your computer to process that for days
On May 06 2010 22:20 Zalan wrote: Draken, you are totally right. That's why I mentionned Java as a nice alternative.
But I think you are right, results could be saved, but isn't there a random factor? Also, there is a lot of possible combinations, so you'd need to get some automatic generator to update on each new patch, and you don't want your computer to process that for days
Does Java offer some sort of threaded method that would compute functions at the exact same time opposed to js computing line by line?
The results are a factor way too great to store. Theoretically I could but when you've got 1v1 and 3 armor upgrades, 3 defense upgrades, emp, stim pack, etc on BOTH sides of the fight the combinations get insane. Take that and also factor in the fact that you have # vs. # units... storing the data isn't exactly what i want.
On April 23 2010 05:20 Shouryu wrote: Just wondering about something; Atk. Immortal Def. Thor Winner is usually an Immortal unless the thor uses the "250 mm gun skill"
However in this chart, the thor wins. Does this means that this hit tool uses this ability?
I do have options for upgrades, guardian shield, and some other abilties.. are you not seeing them?
My tool has the Immortal winning vs Thor, so I'm not sure what you're looking at exactly? My tool also shows 7 volleys from the Thor hitting the Immortal which is similar to what is happening in that video you linked.
I just did a little testing of Thor vs. Immortal and got these damage values against the Immortal:
non-upgraded: 10 per hit guardian shield: 8 per hit shields +1: 10 per hit guardian shield and shield +1: 8 per hit
With no upgrades, the Thor wins with 8 hp, just like your tool says.
However, your tool also reports the same damage with guardian shield, which seems to be incorrect. You should be subtracting the armor for guardian shield after the hardened shield calculation is evaluated.
On April 23 2010 05:20 Shouryu wrote: Just wondering about something; Atk. Immortal Def. Thor Winner is usually an Immortal unless the thor uses the "250 mm gun skill"
However in this chart, the thor wins. Does this means that this hit tool uses this ability?
I do have options for upgrades, guardian shield, and some other abilties.. are you not seeing them?
My tool has the Immortal winning vs Thor, so I'm not sure what you're looking at exactly? My tool also shows 7 volleys from the Thor hitting the Immortal which is similar to what is happening in that video you linked.
I just did a little testing of Thor vs. Immortal and got these damage values against the Immortal:
non-upgraded: 10 per hit guardian shield: 8 per hit shields +1: 10 per hit guardian shield and shield +1: 8 per hit
With no upgrades, the Thor wins with 8 hp, just like your tool says.
However, your tool also reports the same damage with guardian shield, which seems to be incorrect. You should be subtracting the armor for guardian shield after the hardened shield calculation is evaluated.
Thank you for this bug report. I have adjusted the way hardened shield is calculated and removed a bunch of Immortal specific code and refactored the damage to this unit. Here is the combat log for: Thor vs. Immortal (+GS) The shield is huge as the last hit vs the Immortal has its damage reduced significantly, so the "bleed through" damage to the armor is very minimal.
Dunno if you factored in the health drop for Stims into your calculations. Did a test of 10 Marauders vs 10 Hydras and applied stims. The Marauder DPS seems to go up by 50%, but their health doesn't seem to go down.
On May 19 2010 04:20 Bibdy wrote: Dunno if you factored in the health drop for Stims into your calculations. Did a test of 10 Marauders vs 10 Hydras and applied stims. The Marauder DPS seems to go up by 50%, but their health doesn't seem to go down.
Marauder health is decreased by 20hp if a stim is used. It should say at the top of the combat log.
That's a very nice tool, combined with the unit tester custom map tool this is going to produce some interesting results, im sure Especially now that they are shutting down beta :>
there's no way to do calculations for sieged tanks that i can figure out. seems like they should be listed the way vikings are, as two separate units. i know the splash is like, impossible to figure out, but i'd still like to know which units can be one-shotted and how upgrades affect that
brood lords are listed as two food, when they are in fact four (not a big deal, but the main way i use the tool is to make equal-food comparisons, so might throw some people off)
there are a few missing upgrades. the most important is the infernal preigniter, which is listed in unit info but not selectable under combat statistics. it's a really critical upgrade in TvZ. i think there was another, but i can't remember what it is.
loving the tool though, i use it all the time. keep up the good work!
I have an idea to make it a little better since right now it acts as if the units start on top of each other and range isn't calculated. Do you think that you could make it so that the guy with the lesser range starts attacking a little later to cover for the range difference? for example on a colossus vs thor fight they both shoot at each other at 0:00 while the collosus has a greater range and should start attacking first if it had the extended thermal lance upgrade.
It would of course be impossible to take movement into consideration in a way to simulate micro but if range+speed were combined into the formula then we'd have a little more accurate results in the end.
On November 09 2010 02:42 Stirlitz wrote: I have an idea to make it a little better since right now it acts as if the units start on top of each other and range isn't calculated. Do you think that you could make it so that the guy with the lesser range starts attacking a little later to cover for the range difference? for example on a colossus vs thor fight they both shoot at each other at 0:00 while the collosus has a greater range and should start attacking first if it had the extended thermal lance upgrade.
It would of course be impossible to take movement into consideration in a way to simulate micro but if range+speed were combined into the formula then we'd have a little more accurate results in the end.
Great work, btw, quite helpful program!
I agree, this shouldn't be too hard. Just put a (x-y)/z second delay before the short range unit attacks, where
x = Range of the longer-range unit y = Range of the shorter-range unit z = Speed of the shorter-range unit, measured in range units per second