|
https://bwcalc.com
I made a web app to calculate hits to kill and time to kill for units at all upgrade levels, including damage modifiers, hp and shield regen, burn damage, unit-specific upgrades and it is extremely accurate.
I'd like to add more things over time if people would use it, like # of medics healing, # SCVs repairing, estimations for splash damage, more buildings, spell damages.
If you have any feedback for changes or think you have found an error, please let me know.
edit May 12 2024: updated to add some unit information and a checkbox to show +/-% changes instead of raw numbers
edit May 13 2024: accuracy example, 2 Dragoons vs 2 carriers, 0.6 seconds or 1.76% variance. Extremely small variance for such a long engagement, units also have +/- a few frame randomness in attack animations: https://i.imgur.com/oXeo3f9.png
edit May 14 2024: added a checkbox for RANDOM miss chance. I'm going to be honest, it's random, like the game engine, which means it has chaotic results. On average it is approximately ~2x hits to kill with uphill miss chance, but honestly it's interesting to see the full range of randomness.
edit May 16 2024: created liquipedia page that is extremely detailed in how the calculations work and the limitations that exist BW Calculator
|
This is awesome. Thank you!
|
Yessirrr
|
Thank you. I added it to Liquipedia Tools
|
Arbiter needs 9999 or probably more attacks to kill a 2/3 Carrier. The more you know
|
On May 12 2024 17:33 [AS]Rattus wrote: Arbiter needs 9999 or probably more attacks to kill a 2/3 Carrier. The more you know And also firebat, who needs the same amount to kill a fully upgraded ultralisk
|
Nice!
Mischance calculations come to mind as another feature.
Also is this included:
The chance of an "air shot" is 1/256; that is, with the two units on equal elevation (including air units), a ranged unit's chance to hit is 99.609375%.
Keep up the great work! <3 <3 <3
|
On May 12 2024 17:33 [AS]Rattus wrote: Arbiter needs 9999 or probably more attacks to kill a 2/3 Carrier. The more you know
I had to test this one directly before because it broke my calculator. A no upgrade arbiter cannot kill a 2/3 carrier ever. Shield regens before arbiter hits. Armor and shield armor upgrades + base armor reduce damage below 0. Since the arbiter hits the shields, it does not deal the minimum hp damage of 0.5. So the carrier just goes 0 shields to 1 shields to 0 shields and the health bar never takes damage.
Anything that displays “9999” just means >1000 and I stop the calculations, just because it’s kind of meaningless at that point and I don’t want calculations to take forever!
|
This is seriously amazing, great job!
|
On May 12 2024 21:27 LUCKY_NOOB wrote: Nice!
Mischance calculations come to mind as another feature.
Also is this included:
The chance of an "air shot" is 1/256; that is, with the two units on equal elevation (including air units), a ranged unit's chance to hit is 99.609375%.
Keep up the great work! <3 <3 <3
Only problem with miss chance is it adds randomness to the calculation, i.e. every time you calculate it would be different. Like take Zealot vs Zergling, 3 hits to kill. Would I just 1/256 you press the calculation button and it says 4 hits instead? or always show 3 / 255 * 256 = 3.01 hits to kill? Maybe there's another way to add it but I'm not sure how to make it make sense.
Separately: I added unit info tables that show some basic info as well as a checkbox that lets you toggle between raw numbers and percent change I advise you ctrl+f5 on the website to update the formatting as I changed it a bit
|
Netherlands4732 Posts
Definitely not bother to include misses into calculations. Just add high ground, tree and regular miss chances as a note.
Btw do we even know if 2 back to back shots (1/256) can be misses? I wouldn't be surprised if Blizz added an exception that it cannot happen. In all my accumulated playing and watching I don't recall seeing it happen.
|
On May 13 2024 18:09 Peeano wrote: Definitely not bother to include misses into calculations. Just add high ground, tree and regular miss chances as a note.
Btw do we even know if 2 back to back shots (1/256) can be misses? I wouldn't be surprised if Blizz added an exception that it cannot happen. In all my accumulated playing and watching I don't recall seeing it happen.
This would make a little more sense, but it still isn't an exact calculation since missing is random, so the results could change every time you hit calculate (unless I just say the player misses every other hit). I do think I heard different doodads have different miss chances but I do not think that's documented anywhere, so I would only do the ~53.125% chance to hit on high ground.
|
|
On May 13 2024 23:57 MapleLeafSirup wrote: Haha Wraith vs Egg: 9999
9999 only means >1000, but I enjoy looking into these so I did. This actually appears to be an error based on the assumption that Eggs regenerate HP. It appears that Eggs and Cocoons do not regenerate health, in my testing just now, so that is a bug I need to fix. I had never tested it before.
Wraith should deal the games minimum 0.5 damage to an egg, meaning it will kill the egg in 400 hits.
This bug has been fixed 
(Not related to the above reply) Edit: I added an example of the calculation accuracy to the main post, which is also here: https://i.imgur.com/oXeo3f9.png
|
is awesome32269 Posts
Pretty cool! Thanks for sharing
|
On May 12 2024 21:27 LUCKY_NOOB wrote: Nice!
Mischance calculations come to mind as another feature.
Also is this included:
The chance of an "air shot" is 1/256; that is, with the two units on equal elevation (including air units), a ranged unit's chance to hit is 99.609375%.
Keep up the great work! <3 <3 <3
On May 13 2024 18:09 Peeano wrote: Definitely not bother to include misses into calculations. Just add high ground, tree and regular miss chances as a note.
Btw do we even know if 2 back to back shots (1/256) can be misses? I wouldn't be surprised if Blizz added an exception that it cannot happen. In all my accumulated playing and watching I don't recall seeing it happen.
I added random miss chance checkbox, 136/256 per Damage It is fully random so results change every single time
|
Wow so cool man!! Love SC community they contribute so much.
Will there ever be an app version instead of a link/browser?
|
On May 15 2024 13:57 Cheesefome wrote: Wow so cool man!! Love SC community they contribute so much.
Will there ever be an app version instead of a link/browser?
Ironically, I made it a website because I assumed if I released a desktop app that everyone would assume it's malware or something! I don't really plan to release a desktop app because it'd be a struggle to maintain both, with the website I can push bug fixes really quickly (i.e. like when I found out that I had Eggs and Cocoons regenerating HP, but they do not). I'm also still intending to add a lot of features over time. I feel like a Desktop app would just make all of this harder & slower so it's not something I'm interested in doing
|
On May 15 2024 08:37 facecsgo wrote:Show nested quote +On May 12 2024 21:27 LUCKY_NOOB wrote: Nice!
Mischance calculations come to mind as another feature.
Also is this included:
The chance of an "air shot" is 1/256; that is, with the two units on equal elevation (including air units), a ranged unit's chance to hit is 99.609375%.
Keep up the great work! <3 <3 <3 Show nested quote +On May 13 2024 18:09 Peeano wrote: Definitely not bother to include misses into calculations. Just add high ground, tree and regular miss chances as a note.
Btw do we even know if 2 back to back shots (1/256) can be misses? I wouldn't be surprised if Blizz added an exception that it cannot happen. In all my accumulated playing and watching I don't recall seeing it happen. I added random miss chance checkbox, 136/256 per DamageIt is fully random so results change every single time
Amazing! Yeah it was a suggestion in the spirit of completeness. Not that it's the most important info in the world but it's a nice touch. <3
I even use Discord from my browser these days. Only point of a program (calling it an app is too new school for my taste lel) is to have extra feature or if Flash forbid the site goes down the service lives on in the community.
I added it to the Build Orders document:
https://docs.google.com/spreadsheets/d/1O0XEPA9ZxqkMsul7UjEt1wotvkBE1drB/edit?pli=1#gid=1989302709
Keep up the great work! <3
|
Really nice job! Thank you!
|
On May 15 2024 23:54 facecsgo wrote:Show nested quote +On May 15 2024 13:57 Cheesefome wrote: Wow so cool man!! Love SC community they contribute so much.
Will there ever be an app version instead of a link/browser? Ironically, I made it a website because I assumed if I released a desktop app that everyone would assume it's malware or something! I don't really plan to release a desktop app because it'd be a struggle to maintain both, with the website I can push bug fixes really quickly (i.e. like when I found out that I had Eggs and Cocoons regenerating HP, but they do not). I'm also still intending to add a lot of features over time. I feel like a Desktop app would just make all of this harder & slower so it's not something I'm interested in doing
fair enough, thanks for the app ill def looking forward to new features!
|
Where are you hosting this? Since it is a single feature page, I could offer to host it on cplbw.com and save you from maintainance.
|
On May 18 2024 19:08 y2kid wrote: Where are you hosting this? Since it is a single feature page, I could offer to host it on cplbw.com and save you from maintainance.
Currently hosting on AWS free time, I believe it's simple enough and it's usage is low enough that it will be in the single-dollars on the current server I'm using. If it's not, I can swap to cheap lightsail tiers and keep it affordable! I appreciate the offer, but I would like to keep control of it if you know what I mean
|
IDEA: add buildings to it. In particular damage dealing buildings would be of interest but also like how many hits to snipe a pylon can be cool. Prolly had the idea already but a thought.. ^_._^
|
this explains everything on why Corsairs don't die to Hydras as easily
|
This is great thank you! I especially appreciate the liquipedia page you've created alongside the tool. Can you share something about the code and the stack? And again have to thank you for a third time that you've used no js for the frontend itself it's something I also adhere to in all my work as well. Great work and good engineering cheers!
Edit: Oh I misunderstood, this site is actually written in htmx? Sweet, this is one of the most interesting technologies I've read about in a while great to see used for such a good project I'm happy to have again learned something just by visiting the bw forums.
|
On May 12 2024 17:33 [AS]Rattus wrote: Arbiter needs 9999 or probably more attacks to kill a 2/3 Carrier. The more you know
Arbiters only have an attack so that they stop when they're grouped with other units. In the beta version, they didn't have an attack at all. And High Templar had the attack that the Hero Tassadar unit has.
|
On May 22 2024 00:48 PVJ wrote: This is great thank you! I especially appreciate the liquipedia page you've created alongside the tool. Can you share something about the code and the stack? And again have to thank you for a third time that you've used no js for the frontend itself it's something I also adhere to in all my work as well. Great work and good engineering cheers!
Edit: Oh I misunderstood, this site is actually written in htmx? Sweet, this is one of the most interesting technologies I've read about in a while great to see used for such a good project I'm happy to have again learned something just by visiting the bw forums.
I will be honest, I'm not a web developer at all, I just have some programming experience from running a heavily modded CSGO server for something like 5 years. I have a friend who does front end web dev for a living who told me everything to use, so I just followed his instruction and used some personal projects of his for ideas.
I used: python fastAPI Jinja2 templates htmx caddy podman AWS server
|
l don't understand why a Vulture needs 3 hits to kill a Drone but 2 for a Probe?
|
On May 24 2024 11:26 franklyyes wrote: l don't understand why a Vulture needs 3 hits to kill a Drone but 2 for a Probe?
Pretty sure Zerg HP regen starts faster than Protoss shield regen
|
On May 24 2024 15:00 Ethelis wrote:Show nested quote +On May 24 2024 11:26 franklyyes wrote: l don't understand why a Vulture needs 3 hits to kill a Drone but 2 for a Probe? Pretty sure Zerg HP regen starts faster than Protoss shield regen
Yes! Zerg regenerate while taking damage, Protoss needs to be 10 seconds out of combat before regenration starts. Protoss rate of regeneration is faster tho.
"Protoss shields use 7, so 256/7/24=~1.5 seconds per shield point. Zerg Health use 4, so 256/4/24=~2.67 seconds per health point."
"Due to the way Zerg regeneration works, which occurs at 1 point of damage every 64 frames (or roughly 0.37~ points every second at fastest speed) and triggers almost immediately after a unit sustains damage, most Zerg units have an effective additional hit point or more, unless they are killed almost instantaneously. For example, a Drone will take three hits from a single Vulture attacking it, as between the first and second shot the Drone regenerates to 21 hit points, even though the Drone has 40 hit points and 0 armor, and the Vulture deals 20 damage."
Damage
https://www.starcraftai.com/wiki/Regeneration
|
Netherlands4732 Posts
Today I learned. Can't wait until the next Zerg Carapace meta.
|
On May 24 2024 22:37 LUCKY_NOOB wrote:Show nested quote +On May 24 2024 15:00 Ethelis wrote:On May 24 2024 11:26 franklyyes wrote: l don't understand why a Vulture needs 3 hits to kill a Drone but 2 for a Probe? Pretty sure Zerg HP regen starts faster than Protoss shield regen Yes! Zerg regenerate while taking damage, Protoss needs to be 10 seconds out of combat before regenration starts. Protoss rate of regeneration is faster tho. "Protoss shields use 7, so 256/7/24=~1.5 seconds per shield point. Zerg Health use 4, so 256/4/24=~2.67 seconds per health point." "Due to the way Zerg regeneration works, which occurs at 1 point of damage every 64 frames (or roughly 0.37~ points every second at fastest speed) and triggers almost immediately after a unit sustains damage, most Zerg units have an effective additional hit point or more, unless they are killed almost instantaneously. For example, a Drone will take three hits from a single Vulture attacking it, as between the first and second shot the Drone regenerates to 21 hit points, even though the Drone has 40 hit points and 0 armor, and the Vulture deals 20 damage." Damagehttps://www.starcraftai.com/wiki/Regeneration
It is not true that protoss needs to be out of combat to start regeneration. Protoss starts regeneration immediately, like Zerg does, but health rounds up while shields round down. So 1 frame after damage is dealt, a Zerg unit regenerates 4/256 HP which displays as 1hp. Even if the Vulture hits twice and the unit has 4/256 of 1 point of HP, it displays as 1 and stays alive.
Since Protoss shields round down, the Probe could have 7/256 shields (displays as zero) and zero health. If Protoss does not have at least 1 full point of shield (256/256) the unit still dies. Protoss shields less than 1 full point of shields (256/256) do not count in the damage calculations at all
|
On May 25 2024 09:40 facecsgo wrote: It is not true that protoss needs to be out of combat to start regeneration. Protoss starts regeneration immediately, like Zerg does, but health rounds up while shields round down. So 1 frame after damage is dealt, a Zerg unit regenerates 4/256 HP which displays as 1hp. Even if the Vulture hits twice and the unit has 4/256 of 1 point of HP, it displays as 1 and stays alive.
Since Protoss shields round down, the Probe could have 7/256 shields (displays as zero) and zero health. If Protoss does not have at least 1 full point of shield (256/256) the unit still dies. Protoss shields less than 1 full point of shields (256/256) do not count in the damage calculations at all I still don't get why "health rounds up while shields round down", Zerg & Protoss don't study the same math we study ? 
Any other weird/interesting logic than this Drone regeneration and rounding ? and how do you/we know that "So 1 frame after damage is dealt, a Zerg unit regenerates 4/256 HP" ?
|
On June 02 2024 04:40 franklyyes wrote:Show nested quote +On May 25 2024 09:40 facecsgo wrote: It is not true that protoss needs to be out of combat to start regeneration. Protoss starts regeneration immediately, like Zerg does, but health rounds up while shields round down. So 1 frame after damage is dealt, a Zerg unit regenerates 4/256 HP which displays as 1hp. Even if the Vulture hits twice and the unit has 4/256 of 1 point of HP, it displays as 1 and stays alive.
Since Protoss shields round down, the Probe could have 7/256 shields (displays as zero) and zero health. If Protoss does not have at least 1 full point of shield (256/256) the unit still dies. Protoss shields less than 1 full point of shields (256/256) do not count in the damage calculations at all I still don't get why " health rounds up while shields round down", Zerg & Protoss don't study the same math we study ?  Any other weird/interesting logic than this Drone regeneration and rounding ? and how do you/we know that " So 1 frame after damage is dealt, a Zerg unit regenerates 4/256 HP" ?
The 4/256 rate is known information that can be easily tested by timing regen and knowing that logical frames are every 42ms in Fastest game mode. This equates to 1hp regenerated every 2.688 seconds. Rounding up is also a known game fact.
The partial regen starting after the zerg unit takes damage and rounding up can be tested as follows: A Dragoon deals 20 explosive damage, hitting a Zergling for 10 damage. A Dragoon hitting a Zergling with +1 armor deals (20 - 1) = 19 * 0.5 = 9.5 damage. The Zergling will drop from 35 hp to 25.5 HP (Note that 25.5 = 25 + 128/256) which will display as 26 hp since it rounds up. The Zergling begins regenerating 4/256 per logical frame, meaning it needs 32 logical frames (128/4) to regenerate 128/256 hp. On the 33rd logical frame after the hit, the Zergling will be at 26 + 4/256 HP which will round up and display as 27 health. 33 logical frames * 0.042 = 1.386 seconds after the hit, the Zergling will display 27 HP.
I just did this test and recorded at 60fps and reviewed frame-by-frame, the duration between the damage being dealt and the Zergling ticking from 26 to 27 HP was 1.383 seconds.
if the HP display did not round up, the Zergling would not show 26 HP after the 9.5 damage hit, it would show 25. If the Zergling instantly regenerated +1 HP, the Zergling would regenerate from 26 to 27 immediately after the hit.
|
|
Would be nice if it actually shows the result instead of me having to calculate it.
Like how many units of X it takes to kill unit Y?
|
Hi! I've noticed the site is down. Is there any way you could make this open source? Thanks!
|
|
|
|