• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 11:04
CEST 17:04
KST 00:04
  • 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
[ASL21] Ro8 Preview Pt2: Progenitors4Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun13[ASL21] Ro8 Preview Pt1: Inheritors16[ASL21] Ro16 Preview Pt2: All Star10Team Liquid Map Contest #22 - The Finalists22
Community News
RSL Revival: Season 5 - Qualifiers and Main Event10Code S Season 1 (2026) - RO12 Results12026 GSL Season 1 Qualifiers25Maestros of the Game 2 announced92026 GSL Tour plans announced15
StarCraft 2
General
Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool Code S Season 1 (2026) - RO12 Results Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun Team Liquid Map Contest #22 - The Finalists MaNa leaves Team Liquid
Tourneys
2026 GSL Season 2 Qualifiers Sparkling Tuna Cup - Weekly Open Tournament StarCraft Evolution League (SC Evo Biweekly) $1,400 SEL Season 3 Ladder Invitational RSL Revival: Season 5 - Qualifiers and Main Event
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players [M] (2) Frigid Storage
External Content
Mutation # 524 Death and Taxes The PondCast: SC2 News & Results Mutation # 523 Firewall Mutation # 522 Flip My Base
Brood War
General
Why there arent any 256x256 pro maps? BW General Discussion ASL21 General Discussion [ASL21] Ro8 Preview Pt2: Progenitors BGH Auto Balance -> http://bghmmr.eu/
Tourneys
[ASL21] Ro8 Day 3 [ASL21] Ro8 Day 2 [Megathread] Daily Proleagues Escore Tournament StarCraft Season 2
Strategy
Simple Questions, Simple Answers Fighting Spirit mining rates What's the deal with APM & what's its true value Any training maps people recommend?
Other Games
General Games
Stormgate/Frost Giant Megathread OutLive 25 (RTS Game) Daigo vs Menard Best of 10 Dawn of War IV Nintendo Switch Thread
Dota 2
The Story of Wings Gaming
League of Legends
G2 just beat GenG in First stand
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
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread European Politico-economics QA Mega-thread 3D technology/software discussion Canadian Politics Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Manga] One Piece Anime Discussion Thread [Req][Books] Good Fantasy/SciFi books Movie Discussion!
Sports
2024 - 2026 Football Thread Formula 1 Discussion McBoner: A hockey love story
World Cup 2022
Tech Support
streaming software Strange computer issues (software) [G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
Movie Stars In Video Games: …
TrAiDoS
ramps on octagon
StaticNine
Broowar part 2
qwaykee
Funny Nicknames
LUCKY_NOOB
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1542 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
10318 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
Poland2042 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
Germany912 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
10318 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
Germany1533 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
Germany1533 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
Germany1533 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
10318 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
Germany1533 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
Next event in 57m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Rex 128
StarCraft: Brood War
Calm 7353
GuemChi 4409
EffOrt 1399
Mini 918
BeSt 496
ggaemo 345
firebathero 202
Light 160
Sharp 128
Sexy 116
[ Show more ]
Zeus 100
Barracks 73
Hyun 66
Killer 53
ToSsGirL 49
Pusan 45
Backho 45
PianO 40
soO 28
Hm[arnc] 23
zelot 23
IntoTheRainbow 22
Movie 21
Rock 20
Terrorterran 18
NotJumperer 13
ajuk12(nOOB) 10
Sacsri 8
Dota 2
Gorgc5275
qojqva1480
syndereN361
monkeys_forever141
420jenkins133
Counter-Strike
olofmeister377
allub345
Super Smash Bros
Mew2King239
Other Games
singsing2013
B2W.Neo1169
hiko1094
Liquid`RaSZi828
Happy428
Hui .222
elazer107
ArmadaUGS89
Livibee66
Trikslyr15
Organizations
StarCraft 2
IntoTheiNu 1217
Other Games
WardiTV1042
Dota 2
PGL Dota 2 - Main Stream43
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 16 non-featured ]
StarCraft 2
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• HerbMon 24
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Nemesis2164
• TFBlade1275
• Jankos822
Other Games
• WagamamaTV368
• Shiphtur140
Upcoming Events
Monday Night Weeklies
57m
Replay Cast
8h 57m
Sparkling Tuna Cup
18h 57m
Afreeca Starleague
18h 57m
Snow vs Flash
WardiTV Invitational
19h 57m
SHIN vs Nicoract
Solar vs Nice
GSL
1d 18h
Classic vs Cure
Maru vs Rogue
GSL
2 days
SHIN vs Zoun
ByuN vs herO
OSC
2 days
OSC
2 days
Replay Cast
3 days
[ Show More ]
Escore
3 days
The PondCast
3 days
WardiTV Invitational
3 days
Zoun vs Ryung
Lambo vs ShoWTimE
OSC
4 days
Replay Cast
4 days
CranKy Ducklings
4 days
RSL Revival
4 days
SHIN vs Bunny
ByuN vs Shameless
WardiTV Invitational
4 days
Krystianer vs TriGGeR
Cure vs Rogue
uThermal 2v2 Circuit
4 days
BSL
5 days
Replay Cast
5 days
Sparkling Tuna Cup
5 days
RSL Revival
5 days
Cure vs Zoun
Clem vs Lambo
WardiTV Invitational
5 days
BSL
6 days
Replay Cast
6 days
Afreeca Starleague
6 days
Liquipedia Results

Completed

Proleague 2026-05-02
WardiTV TLMC #16
Nations Cup 2026

Ongoing

BSL Season 22
ASL Season 21
CSL 2026 SPRING (S20)
IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
SCTL 2026 Spring
RSL Revival: Season 5
2026 GSL S1
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026

Upcoming

YSL S3
Escore Tournament S2: W6
KK 2v2 League Season 1
BSL 22 Non-Korean Championship
Escore Tournament S2: W7
Escore Tournament S2: W8
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
Maestros of the Game 2
2026 GSL S2
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
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 © 2026 TLnet. All Rights Reserved.