• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 14:10
CET 20:10
KST 04:10
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
RSL Revival - 2025 Season Finals Preview8RSL Season 3 - Playoffs Preview0RSL Season 3 - RO16 Groups C & D Preview0RSL Season 3 - RO16 Groups A & B Preview2TL.net Map Contest #21: Winners12
Community News
Weekly Cups (Dec 15-21): Classic wins big, MaxPax & Clem take weeklies3ComeBackTV's documentary on Byun's Career !10Weekly Cups (Dec 8-14): MaxPax, Clem, Cure win4Weekly Cups (Dec 1-7): Clem doubles, Solar gets over the hump1Weekly Cups (Nov 24-30): MaxPax, Clem, herO win2
StarCraft 2
General
The Grack before Christmas Weekly Cups (Dec 15-21): Classic wins big, MaxPax & Clem take weeklies ComeBackTV's documentary on Byun's Career ! Micro Lags When Playing SC2? When will we find out if there are more tournament
Tourneys
$5,000+ WardiTV 2025 Championship $100 Prize Pool - Winter Warp Gate Masters Showdow Sparkling Tuna Cup - Weekly Open Tournament Winter Warp Gate Amateur Showdown #1 RSL Offline Finals Info - Dec 13 and 14!
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 505 Rise From Ashes Mutation # 504 Retribution Mutation # 503 Fowl Play Mutation # 502 Negative Reinforcement
Brood War
General
BGH Auto Balance -> http://bghmmr.eu/ Recommended FPV games (post-KeSPA) BW General Discussion FlaSh on: Biggest Problem With SnOw's Playstyle soO on: FanTaSy's Potential Return to StarCraft
Tourneys
Small VOD Thread 2.0 [Megathread] Daily Proleagues [BSL21] LB QuarterFinals - Sunday 21:00 CET [BSL21] WB SEMIFINALS - Saturday 21:00 CET
Strategy
Simple Questions, Simple Answers Game Theory for Starcraft Current Meta Fighting Spirit mining rates
Other Games
General Games
Nintendo Switch Thread 2025 POECurrency Christmas POE 2 Update 0.4.0 Curr 2025 IGGM Merry Christmas ARC Raiders Items Sale 2025 IGGM Christmas Diablo 4 Season 11 Items Sale 2025 IGGM Monopoly Go Christmas Sale
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Mafia Game Mode Feedback/Ideas Survivor II: The Amazon Sengoku Mafia TL Mafia Community Thread
Community
General
The Games Industry And ATVI Russo-Ukrainian War Thread How Does UI/UX Design Influence User Trust? US Politics Mega-thread Things Aren’t Peaceful in Palestine
Fan Clubs
White-Ra Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece
Sports
2024 - 2026 Football Thread Formula 1 Discussion
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List TL+ Announced Where to ask questions and add stream?
Blogs
The (Hidden) Drug Problem in…
TrAiDoS
I decided to write a webnov…
DjKniteX
James Bond movies ranking - pa…
Topin
Thanks for the RSL
Hildegard
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1087 users

Valkyrie dmg formula? - Page 2

Forum Index > Brood War Strategy
Post a Reply
Prev 1 2 3 4 Next All
StRyKeR
Profile Blog Joined January 2006
United States1739 Posts
Last Edited: 2021-01-07 14:20:36
January 05 2021 22:51 GMT
#21
I figured it out.

https://github.com/OpenBW/openbw/blob/master/bwgame.h


Sonko pointed me to the bwapi source code and I took a look. There is indeed a separate algorithm for "is_air_splash" and it makes two queues, one to deal full damage and one to deal splash.

Let's say L = outer splash radius, M = medium splash radius, S = inner splash radius.

Full queue
It builds a queue of units as such:
1) unit can't have same player as bullet's player (if it does, it must be the missile's target)
2) unit can't be the missile firer
3) unit has to be within L distance

Now, if the original bullet's target is in this queue and is within S distance, the queue is truncated to JUST the target, and full damage is dealt to it.
Otherwise, a RANDOM unit from this queue is chosen to take full damage.

Splash queue
1) unit can't have same player as bullet's player (if it does, it must be the missile's target)
2) unit can't be the missile firer
3) unit can't be missile target
4) unit can't be interceptor (!!!)
5) unit has to be within L distance

Then for each unit here, it does either 50%, 25%, or no damage depending on distance.


Let's apply it to our problematic cases.

Single target
The original target will always be in the Full queue because valkyrie missile has huge L.
It doesn't matter whether the target is within S distance because the queue only has size 1 and so the target takes full damage.

The Splash queue omits the original target, so nothing else needs to be done.

Conclusion: single target takes 100% no matter what

Multiple targets
As stated above, the original target will always be in the Full queue.
Case 1: Target is within S distance of the missile.

It becomes the ONLY element in the queue and takes full damage.
We now go to the splash queue. The non-targets within M take 50% and within S take 25%.

Conclusion: target takes 100%, rest take 50% or 25%

Case 2: Target is outside S distance of the missile.

A random unit in the Full queue is chosen to take 100% damage.
We now go to the splash queue. The non-targets within M take 50% and within S take 25%.

Conclusion: random unit takes 100%, non-targets take 50% or 25%.

Herein lies the issue -- the splash queue only excludes the target, NOT THE RANDOMLY PICKED UNIT FROM THE FULL QUEUE!
So it could be the case that the randomly picked unit was NOT the target, in which case that poor unit would take an additional 50% or 25% damage based on proximity! Let's call this "super damage", when unit takes more than 100% damage.

Note that this super damage can only occur if the target is NOT within S of the missile, because if it were, it would take the 100% from Full queue and be excluded from the Splash queue.
Since the missile pattern centers around the target, I imagine that most of the time, the target IS within S of the missile, so we don't see super damage.

Furthermore, it would be the case that the ORIGINAL target actually takes ZERO damage if the random unit picked during Full queue was not the target, since the splash queue specifically omits the target. So the existence of super damage implies the target received zero damage!

Note that the total damage is the same across the cases.

Finally, I think the "diminishing returns" observation is simply due to the fact the average missile misses its target. Let's pretend each missile is a student and each unit is a test question. Now, each student is dumb and scores 50% or 25% normally on any given question. However, the Full queue is a "get out of jail free card" that guarantees you a 100% on exactly one question. So if there is only one question, everyone scores a perfect score. If there are only a few questions, the class average is still high. Add a lot of questions, and it becomes clear that each student is failing.

Another interesting observation is that interceptors are immune to splash damage. In other words, it can never take damage via the Splash queue, so it must get damaged during the Full queue. Every valkyrie missile will hit at most one interceptor for full damage and deal no splash no matter how many interceptors there are. So in fact, valkyries are bad against interceptors. Similarly with corsairs.

Bonus observation:

If a corsair hits a group of say 11 stacked mutas, it will do a full 2.5 damage (not 5, since it's explosive damage) to the one target and 1.25 to the other 10. So no matter how stacked you are, it only does 2.5 to one muta. So if you have a group of corsairs, it helps to target fire one specific muta even if the mutas are clumped so that you do more concentrated damage on that one muta.
Ars longa, vita brevis, principia aeturna.
MeSaber
Profile Joined December 2009
Sweden1235 Posts
Last Edited: 2021-01-06 01:04:32
January 06 2021 01:02 GMT
#22
Well thats what we were after all along! Thanks Sonko/Stryker! =)

Great write-up btw.

Holy smokas. Valkyries/Corsair being bad vs interceptors is actually mind blowing.
-.-
Jealous
Profile Blog Joined December 2011
10253 Posts
January 06 2021 06:31 GMT
#23
Additional details from the Discord discussion when I first approached Sonko about this

[image loading]

[image loading]

[image loading]

[image loading]

Many thanks to PurpleWave and all other participants in the SSCAIT Discord for this. These are things I think that not even progamers and their staff had explored, because they were more worried about outcomes than the internal logic by which these things operate. Valkonic made a splash for a reason. Cheers.
"The right to vote is only the oar of the slaveship, I wanna be free." -- бум бум сучка!
Sonko
Profile Joined February 2019
154 Posts
January 06 2021 09:05 GMT
#24
Thanks for the mention, all I did was post the source to the openBW source
Here you can take a look at it.
A site about brood war AI: www.makingcomputerdothings.com
kogeT
Profile Joined September 2013
Poland2041 Posts
January 06 2021 12:27 GMT
#25
On January 06 2021 18:05 Sonko wrote:
Thanks for the mention, all I did was post the source to the openBW source
Here you can take a look at it.


Is that basicially whole BW decomplied?
https://www.twitch.tv/kogetbw
StRyKeR
Profile Blog Joined January 2006
United States1739 Posts
Last Edited: 2021-01-06 14:11:16
January 06 2021 14:07 GMT
#26
I just wanted to note that "more units mean being more spread out" is not the primary factor in the diminishing returns observed. You'd still see it even if the units were tightly stacked on top of each other. The main factor is the "Full queue" effect which guarantees the missile doing 100% damage to exactly one unit while doing 50%/25% to the rest.

In contrast, ground-based splash does not suffer from diminishing returns when stacked. For example, if a Protoss player were glitching their units into a tight ball to do stacked recall, a siege tank in siege mode could fire a few times and wipe all the units at once, dealing a full 100% damage to every unit. Or if a player drills their workers into one location, a single Reaver scarab would wipe all of them out for 100% damage.
Ars longa, vita brevis, principia aeturna.
Cryoc
Profile Joined July 2011
Germany911 Posts
January 06 2021 17:19 GMT
#27
Thanks for the investigation. I learned a lot. I always wondered, why Valkyries are bad vs Carriers, because based on the unit stats, half a control group of valkyries should destroy every interceptor of a Carrier fleet in seconds. Little did I know that they just excluded interceptors from taking any splash damage at all...

The developers must have liked Carriers a lot.
http://www.twitch.tv/cryoc
Jealous
Profile Blog Joined December 2011
10253 Posts
January 06 2021 20:41 GMT
#28
On January 06 2021 23:07 StRyKeR wrote:
I just wanted to note that "more units mean being more spread out" is not the primary factor in the diminishing returns observed. You'd still see it even if the units were tightly stacked on top of each other. The main factor is the "Full queue" effect which guarantees the missile doing 100% damage to exactly one unit while doing 50%/25% to the rest.

In contrast, ground-based splash does not suffer from diminishing returns when stacked. For example, if a Protoss player were glitching their units into a tight ball to do stacked recall, a siege tank in siege mode could fire a few times and wipe all the units at once, dealing a full 100% damage to every unit. Or if a player drills their workers into one location, a single Reaver scarab would wipe all of them out for 100% damage.

Ya, and what about Archon vs Muta? They ROAST stacked flocks, can literally kill like 36 stacked mutas in 3 hits no problem.
"The right to vote is only the oar of the slaveship, I wanna be free." -- бум бум сучка!
StRyKeR
Profile Blog Joined January 2006
United States1739 Posts
January 06 2021 22:01 GMT
#29
On January 07 2021 05:41 Jealous wrote:
Show nested quote +
On January 06 2021 23:07 StRyKeR wrote:
I just wanted to note that "more units mean being more spread out" is not the primary factor in the diminishing returns observed. You'd still see it even if the units were tightly stacked on top of each other. The main factor is the "Full queue" effect which guarantees the missile doing 100% damage to exactly one unit while doing 50%/25% to the rest.

In contrast, ground-based splash does not suffer from diminishing returns when stacked. For example, if a Protoss player were glitching their units into a tight ball to do stacked recall, a siege tank in siege mode could fire a few times and wipe all the units at once, dealing a full 100% damage to every unit. Or if a player drills their workers into one location, a single Reaver scarab would wipe all of them out for 100% damage.

Ya, and what about Archon vs Muta? They ROAST stacked flocks, can literally kill like 36 stacked mutas in 3 hits no problem.


I believe Archon splash isn't considered air splash, so that makes sense as well.
Ars longa, vita brevis, principia aeturna.
StRyKeR
Profile Blog Joined January 2006
United States1739 Posts
Last Edited: 2021-01-06 23:52:58
January 06 2021 23:45 GMT
#30
Some quick math vs N mutas:

Each missile does 100% of 6/2 = 3 to one muta and a mix of 50%, 25% to all others, let's average to 33%, which is 1 damage. So each missile does 3*1 + 1*(N - 1) = N + 2 damage, or 8N + 16 damage for an entire volley.

To see the diminishing returns, note that we calculate the baseline denominator as 24N, since if we assume each missile does full damage, which is 3, that yields 24 damage per volley and there are N units. So the efficiency rate is (8N + 16)/24N, or 1/3 + 2/(3N). In other words, the efficiency goes down with N, establishing diminishing returns.

N = 1 => 100%
N = 2 => 66%
N = 3 => 55%
N = 4 => 50% and so on.

Furthermore, the average muta takes (8N + 16)/N = 8 + 16/N damage. At 7 mutas, this is roughly 10 damage. In other words, if you have 7 mutas clumped versus a valk, taking a volley is essentially like each muta taking a single hit from a wraith. Taking into account firing speed, the damage output of a valk versus 7 mutas is about 2.5 wraiths. Might be good to keep in mind when calculating whether you should fight or flee with your mutas.
Ars longa, vita brevis, principia aeturna.
Freakling
Profile Joined October 2012
Germany1529 Posts
January 07 2021 07:23 GMT
#31
On January 06 2021 03:37 StRyKeR wrote:
I have an explanation for the single target case.
Given what we know about the spaghetti code, my bet is that Blizzard wanted you to be able to attack allies / your own units. But the issue is that valks (like reavers) cannot splash damage your own units. So if only the default splash algorithm is used for the valk, attacking yourself would cause 0 damage since they're splash only, even the intended target. They didn't want that, so they made every missile hit with 100% damage to the target unit regardless of miss. But if they do this with multiple units, valks would nonsensically do 100% to every unit even if miss. So once there's more than one target in the splash zone, they apply regular damage. Sloppy code imo, but consistent with their other sloppy coding.

Doesn't explain the > 100% damage though.
Good point, actually. I assume all of you went the route of doing tests on your own Wraiths, using normal melee play and your own Wraiths/Mutas? If so you have to consider that that may completely invalidate results, as far as enemy damage goes.
To make sure I'm not just talking out of some false memory, I actually made a test map where I can test it against stacks of enemy and neutral units.
MeSaber
Profile Joined December 2009
Sweden1235 Posts
January 07 2021 11:33 GMT
#32
On January 07 2021 08:45 StRyKeR wrote:
Some quick math vs N mutas:

Each missile does 100% of 6/2 = 3 to one muta and a mix of 50%, 25% to all others, let's average to 33%, which is 1 damage. So each missile does 3*1 + 1*(N - 1) = N + 2 damage, or 8N + 16 damage for an entire volley.

To see the diminishing returns, note that we calculate the baseline denominator as 24N, since if we assume each missile does full damage, which is 3, that yields 24 damage per volley and there are N units. So the efficiency rate is (8N + 16)/24N, or 1/3 + 2/(3N). In other words, the efficiency goes down with N, establishing diminishing returns.

N = 1 => 100%
N = 2 => 66%
N = 3 => 55%
N = 4 => 50% and so on.

Furthermore, the average muta takes (8N + 16)/N = 8 + 16/N damage. At 7 mutas, this is roughly 10 damage. In other words, if you have 7 mutas clumped versus a valk, taking a volley is essentially like each muta taking a single hit from a wraith. Taking into account firing speed, the damage output of a valk versus 7 mutas is about 2.5 wraiths. Might be good to keep in mind when calculating whether you should fight or flee with your mutas.


Thats actually very useful.
-.-
StRyKeR
Profile Blog Joined January 2006
United States1739 Posts
January 07 2021 12:21 GMT
#33
On January 07 2021 16:23 Freakling wrote:
Show nested quote +
On January 06 2021 03:37 StRyKeR wrote:
I have an explanation for the single target case.
Given what we know about the spaghetti code, my bet is that Blizzard wanted you to be able to attack allies / your own units. But the issue is that valks (like reavers) cannot splash damage your own units. So if only the default splash algorithm is used for the valk, attacking yourself would cause 0 damage since they're splash only, even the intended target. They didn't want that, so they made every missile hit with 100% damage to the target unit regardless of miss. But if they do this with multiple units, valks would nonsensically do 100% to every unit even if miss. So once there's more than one target in the splash zone, they apply regular damage. Sloppy code imo, but consistent with their other sloppy coding.

Doesn't explain the > 100% damage though.
Good point, actually. I assume all of you went the route of doing tests on your own Wraiths, using normal melee play and your own Wraiths/Mutas? If so you have to consider that that may completely invalidate results, as far as enemy damage goes.
To make sure I'm not just talking out of some false memory, I actually made a test map where I can test it against stacks of enemy and neutral units.


Read the first post on second page, I figured it out.
Ars longa, vita brevis, principia aeturna.
Freakling
Profile Joined October 2012
Germany1529 Posts
Last Edited: 2021-01-07 15:37:15
January 07 2021 15:25 GMT
#34
Shouldn't make mobile posts while still half asleep in bed in the morning… Also the problem with my own initial test setup was that I did not space out targets fa enough to get real single target damage. The combined spread+splash area of Valkyries is huge (about 5 tiles, it seems, could easily be calculated exactly from the scatter pattern positions and splash radii, of course).
However, my statement on the fact that the primary target in a tight stack is always the one to receive the least damage hold empirically true. I'll upload my test map shortly which easily proves this conclusively. Here it is
The algorithm, you laid out helps to better zero in on the exact mechanics behind that though: From 14 Missile hits only 5 hit more or less dead-centre, so we can assume that these fully hit the primary target (within 100% splash radius S). However it's probably only to be within 25% radius (L) of all the other missiles, which hit further out. So that gives an estimate of 4/7(5·6 + 9·1.5) ≈ 24, which is pretty accurate, though different, mostly lower values can be observed (it's statistical of course). Getting good estimates for the secondary targets is a lot harder, but it seems that between them "drifting off" into the 50% splash areas of more of the missile explosions and their randomly becoming the primary target of an attack they amass more damage over time than the actual, primary target.
StRyKeR
Profile Blog Joined January 2006
United States1739 Posts
Last Edited: 2021-01-07 16:30:55
January 07 2021 16:18 GMT
#35
The primary target never takes splash damage, so in your example, the other 9 missiles would do 0 splash damage to the primary target, and can only damage it via the random full queue process.

Primary target takes either 0% or 100%.
All others either take 25%, 50%, 125%, or 150%.

Say there are N targets total.

If as you said 5 of 14 missiles hit within S of the primary target, that primary target gets 100% and the rest get say, 33% on average.

Primary: 5*100%
Other: 5*33%

The other 9 of 14 missiles pick a random primary target, so every target has 1/N chance of 100%.
Non-primary takes, say 33% on average again.

Primary: 9/N*100%
Other: 9/N*100% + 9*33%

In summary, for 14 missiles, expected damage taken is:

Primary: (5*100% + 9/N*100%)/14 = 5/14 + 9/(N*14)
Other: (5*33% + 9/N*100% + 9*33%)/14 = 1/3 + 9/(N*14)

So ultimately, whether primary takes less damage depends on how many hits are straight on and also what the others on average take. Under the assumptions above, since 5/14 < 1/3, the primary target takes less damage.

Note that this estimation doesn't apply to the corsair since its missile always hits the primary target straight on (within S distance), and so the corsair always does more damage to the primary target (100%) as opposed to others (25% or 50%).
Ars longa, vita brevis, principia aeturna.
Freakling
Profile Joined October 2012
Germany1529 Posts
Last Edited: 2021-01-07 18:25:12
January 07 2021 18:22 GMT
#36
On January 08 2021 01:18 StRyKeR wrote:
The primary target never takes splash damage, so in your example, the other 9 missiles would do 0 splash damage to the primary target, and can only damage it via the random full queue process.

Primary target takes either 0% or 100%.
All others either take 25%, 50%, 125%, or 150%.

That makes the explanation even more clean-cut.

Say there are N targets total.

If as you said 5 of 14 missiles hit within S of the primary target, that primary target gets 100% and the rest get say, 33% on average.

Primary: 5*100%
Other: 5*33%

The other 9 of 14 missiles pick a random primary target, so every target has 1/N chance of 100%.
Non-primary takes, say 33% on average again.

Primary: 9/N*100%
Other: 9/N*100% + 9*33%

In summary, for 14 missiles, expected damage taken is:

Primary: (5*100% + 9/N*100%)/14 = 5/14 + 9/(N*14)
Other: (5*33% + 9/N*100% + 9*33%)/14 = 1/3 + 9/(N*14)

So ultimately, whether primary takes less damage depends on how many hits are straight on and also what the others on average take. Under the assumptions above, since 5/14 < 1/3, the primary target takes less damage.

Note that this estimation doesn't apply to the corsair since its missile always hits the primary target straight on (within S distance), and so the corsair always does more damage to the primary target (100%) as opposed to others (25% or 50%).

Imagine a Corsair with Valkyrie scattering on attacks O_o

Would be nice to actually have all the relevant code sequences quoted here for reference…
StRyKeR
Profile Blog Joined January 2006
United States1739 Posts
January 07 2021 18:39 GMT
#37
This was linked above: github.com

Just look there -- search for "is_air_splash". I think it's impossible to paste code readably on this forum.
Ars longa, vita brevis, principia aeturna.
Jealous
Profile Blog Joined December 2011
10253 Posts
Last Edited: 2021-01-07 19:33:27
January 07 2021 19:32 GMT
#38
On January 08 2021 03:39 StRyKeR wrote:
This was linked above: github.com

Just look there -- search for "is_air_splash". I think it's impossible to paste code readably on this forum.

You can try like this.
Don't
Test
Me
"The right to vote is only the oar of the slaveship, I wanna be free." -- бум бум сучка!
Freakling
Profile Joined October 2012
Germany1529 Posts
January 07 2021 20:39 GMT
#39
^
StRyKeR
Profile Blog Joined January 2006
United States1739 Posts
January 08 2021 16:44 GMT
#40
Here it is.
I'm wondering now if bwapi actually lists which units have air splash. I searched in the repository but couldn't find where such settings are set.


void bullet_deal_splash_damage(bullet_t* b) {
auto bb = square_at(b->sprite->position, b->weapon_type->outer_splash_radius);
if (is_air_splash) {
a_vector<unit_t*> targets;
for (unit_t* target : find_units(bb)) {
if (target == b->bullet_owner_unit) continue;
if (target->owner == b->owner && target != b->bullet_target) continue;
if (!weapon_can_target_unit(b->weapon_type, target)) continue;
int distance = unit_distance_to(target, b->sprite->position);
if (distance > b->weapon_type->outer_splash_radius) continue;
if (target == b->bullet_target && distance <= b->weapon_type->inner_splash_radius) {
targets = {target};
break;
}
targets.push_back(target);
}
if (!targets.empty()) {
size_t random_index = 0;
if (targets.size() != 1) random_index = lcg_rand(58) % targets.size();
bullet_deal_damage(b, targets[random_index]);
}
}
bool damages_allies = !is_air_splash && b->weapon_type->hit_type != weapon_type_t::hit_type_enemy_splash;
for (unit_t* target : find_units(bb)) {
if (target == b->bullet_owner_unit && b->weapon_type->id != WeaponTypes::Psionic_Storm) continue;
if (!damages_allies && target->owner == b->owner && target != b->bullet_target) continue;
if (!weapon_can_target_unit(b->weapon_type, target)) continue;
int distance = unit_distance_to(target, b->sprite->position);
if (distance > b->weapon_type->outer_splash_radius) continue;
if (b->weapon_type->id == WeaponTypes::Psionic_Storm) {
if (target->storm_timer) continue;
target->storm_timer = 1;
}
if (is_air_splash) {
if (target == b->bullet_target) continue;
if (unit_is(target, UnitTypes::Protoss_Interceptor)) continue;
}
if (!is_air_splash && distance <= b->weapon_type->inner_splash_radius) {
bullet_deal_damage(b, target, 1);
} else if (!u_burrowed(target)) {
if (distance <= b->weapon_type->medium_splash_radius) {
bullet_deal_damage(b, target, 2);
} else {
bullet_deal_damage(b, target, 4);
}
}
}
}

Ars longa, vita brevis, principia aeturna.
Prev 1 2 3 4 Next All
Please log in or register to reply.
Live Events Refresh
WardiTV Invitational
12:00
Christmas Day Games
Solar vs herOLIVE!
WardiTV2006
TaKeTV 630
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
ProTech152
BRAT_OK 78
MindelVK 21
StarCraft: Brood War
Britney 26512
Shuttle 542
Aegong 294
firebathero 217
Dewaltoss 146
Mini 143
Hyun 67
soO 21
910 15
HiyA 7
Dota 2
420jenkins1260
BananaSlamJamma51
LuMiX0
Counter-Strike
fl0m1115
byalli758
Heroes of the Storm
Liquid`Hasu171
Other Games
Beastyqt604
crisheroes370
ArmadaUGS220
Mew2King123
Organizations
Other Games
gamesdonequick553
StarCraft 2
angryscii 42
Other Games
BasetradeTV20
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 15 non-featured ]
StarCraft 2
• Adnapsc2 18
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• 80smullet 36
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Nemesis4050
Other Games
• imaqtpie1528
• Shiphtur320
Upcoming Events
Big Brain Bouts
21h 50m
Elazer vs Nicoract
Reynor vs Scarlett
Replay Cast
1d 4h
Sparkling Tuna Cup
2 days
Krystianer vs TBD
TriGGeR vs SKillous
Percival vs TBD
ByuN vs Nicoract
Replay Cast
3 days
Wardi Open
3 days
Liquipedia Results

Completed

KCM Race Survival 2025 Season 4
WardiTV 2025
META Madness #9

Ongoing

C-Race Season 1
IPSL Winter 2025-26
BSL Season 21
Slon Tour Season 2
CSL Season 19: Qualifier 2
eXTREMESLAND 2025
SL Budapest Major 2025
ESL Impact League Season 8
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22

Upcoming

CSL 2025 WINTER (S19)
BSL 21 Non-Korean Championship
Acropolis #4
IPSL Spring 2026
Bellum Gens Elite Stara Zagora 2026
HSC XXVIII
Big Gabe Cup #3
OSC Championship Season 13
Nations Cup 2026
ESL Pro League Season 23
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.