• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 18:42
CEST 00:42
KST 07:42
  • 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
Team TLMC #5 - Finalists & Open Tournaments0[ASL20] Ro16 Preview Pt2: Turbulence5Classic Games #3: Rogue vs Serral at BlizzCon9[ASL20] Ro16 Preview Pt1: Ascent10Maestros of the Game: Week 1/Play-in Preview12
Community News
Weekly Cups (Sept 8-14): herO & MaxPax split cups3WardiTV TL Team Map Contest #5 Tournaments1SC4ALL $6,000 Open LAN in Philadelphia7Weekly Cups (Sept 1-7): MaxPax rebounds & Clem saga continues29LiuLi Cup - September 2025 Tournaments3
StarCraft 2
General
#1: Maru - Greatest Players of All Time Weekly Cups (Sept 8-14): herO & MaxPax split cups SpeCial on The Tasteless Podcast Team TLMC #5 - Finalists & Open Tournaments Weekly Cups (Sept 1-7): MaxPax rebounds & Clem saga continues
Tourneys
WardiTV TL Team Map Contest #5 Tournaments Maestros of The Game—$20k event w/ live finals in Paris RSL: Revival, a new crowdfunded tournament series Sparkling Tuna Cup - Weekly Open Tournament SC4ALL $6,000 Open LAN in Philadelphia
Strategy
Custom Maps
External Content
Mutation # 491 Night Drive Mutation # 490 Masters of Midnight Mutation # 489 Bannable Offense Mutation # 488 What Goes Around
Brood War
General
[ASL20] Ro16 Preview Pt2: Turbulence BW General Discussion BGH Auto Balance -> http://bghmmr.eu/ ASL20 General Discussion Playing StarCraft as 2 people on the same network
Tourneys
[ASL20] Ro16 Group C Is there English video for group selection for ASL [ASL20] Ro16 Group B [IPSL] ISPL Season 1 Winter Qualis and Info!
Strategy
Simple Questions, Simple Answers Muta micro map competition Fighting Spirit mining rates [G] Mineral Boosting
Other Games
General Games
Stormgate/Frost Giant Megathread Path of Exile General RTS Discussion Thread Nintendo Switch Thread Borderlands 3
Dota 2
Official 'what is Dota anymore' discussion LiquidDota to reintegrate into TL.net
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Canadian Politics Mega-thread Russo-Ukrainian War Thread The Big Programming Thread
Fan Clubs
The Happy Fan Club!
Media & Entertainment
Movie Discussion! [Manga] One Piece Anime Discussion Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion MLB/Baseball 2023
World Cup 2022
Tech Support
Linksys AE2500 USB WIFI keeps disconnecting Computer Build, Upgrade & Buying Resource Thread High temperatures on bridge(s)
TL Community
BarCraft in Tokyo Japan for ASL Season5 Final The Automated Ban List
Blogs
The Personality of a Spender…
TrAiDoS
A very expensive lesson on ma…
Garnet
hello world
radishsoup
Lemme tell you a thing o…
JoinTheRain
RTS Design in Hypercoven
a11
Evil Gacha Games and the…
ffswowsucks
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1366 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
10175 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
Poland2040 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
Germany909 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
10175 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
10175 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
Next event in 1h 18m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
NeuroSwarm 293
CosmosSc2 17
Lillekanin 9
StarCraft: Brood War
Artosis 522
ggaemo 24
sSak 17
ajuk12(nOOB) 13
Counter-Strike
Stewie2K430
fl0m127
Super Smash Bros
PPMD87
Liquid`Ken20
Other Games
summit1g4415
Grubby3906
FrodaN2520
shahzam687
ToD202
C9.Mang0110
SortOf80
Trikslyr54
Maynarde50
Nathanias24
fpsfer 2
Organizations
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 19 non-featured ]
StarCraft 2
• RyuSc2 62
• davetesta34
• IndyKCrew
• sooper7s
• AfreecaTV YouTube
• Migwel
• intothetv
• LaughNgamezSOOP
• Kozan
StarCraft: Brood War
• blackmanpl 17
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• masondota22389
• WagamamaTV320
• Ler64
League of Legends
• TFBlade746
Other Games
• Scarra1183
• imaqtpie925
Upcoming Events
OSC
1h 18m
Sparkling Tuna Cup
11h 18m
Afreeca Starleague
11h 18m
Light vs Speed
Larva vs Soma
2v2
12h 18m
PiGosaur Monday
1d 1h
LiuLi Cup
1d 12h
RSL Revival
2 days
Maru vs Reynor
Cure vs TriGGeR
The PondCast
2 days
RSL Revival
3 days
Zoun vs Classic
Korean StarCraft League
4 days
[ Show More ]
BSL Open LAN 2025 - War…
4 days
RSL Revival
4 days
BSL Open LAN 2025 - War…
5 days
RSL Revival
5 days
Online Event
5 days
Wardi Open
6 days
Liquipedia Results

Completed

BSL 20 Team Wars
Chzzk MurlocKing SC1 vs SC2 Cup #2
HCC Europe

Ongoing

KCM Race Survival 2025 Season 3
BSL 21 Points
ASL Season 20
CSL 2025 AUTUMN (S18)
LASL Season 20
RSL Revival: Season 2
Maestros of the Game
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1

Upcoming

2025 Chongqing Offline CUP
BSL Polish World Championship 2025
IPSL Winter 2025-26
BSL Season 21
SC4ALL: Brood War
BSL 21 Team A
Stellar Fest
SC4ALL: StarCraft II
EC S1
ESL Impact League Season 8
SL Budapest Major 2025
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
MESA Nomadic Masters Fall
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
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.