07-07-2016, 01:23 PM
Okay, I was right.
Disregarding the various special circumstances for the various borg shields (bullets, blobs, meteors, explosions), we are left with this bit of code:
In other words, if a borg with an active shield takes damage from a source that isn't totally negated by the shield prior to the damage check, it will run it through that bit of code. Since melee isn't covered by any pre-damage code, it just goes straight into this.
Now, let's check the stats on a cyalume saber.
When turned on, a cyalume saber has force = 60. It does brute damage, so let's run it through physshield code.
max(brute - 25, 0) = max(60 - 25, 0) = max(35, 0) = 35.
A cyalume saber should hit through a borg's active force shield for around 35 damage without taking any other factors into account.
Now, the question is whether a c-saber is weakened to this level in practice or if there's some bug causing borgs to take the full 60 damage. The only way I can think of to test this would be to smack a borg with an active c-saber both with and without shields on and to then compare the damage inflicted.
Disregarding the various special circumstances for the various borg shields (bullets, blobs, meteors, explosions), we are left with this bit of code:
Code:
TakeDamage(zone, brute, burn)
brute = max(brute, 0)
burn = max(burn, 0)
if (burn == 0 && brute == 0)
return 0
for (var/obj/item/roboupgrade/R in src.upgrades)
if (istype(R, /obj/item/roboupgrade/fireshield) && R.activated)
burn = max(burn - 25, 0)
playsound(get_turf(src), "sound/effects/shieldhit2.ogg", 40, 1)
if (istype(R, /obj/item/roboupgrade/physshield) && R.activated)
brute = max(brute - 25, 0)
playsound(get_turf(src), "sound/effects/shieldhit2.ogg", 40, 1)
if (burn == 0 && brute == 0)
boutput(usr, "<span style=\"color:blue\">Your shield completely blocks the attack!</span>")
return 0
In other words, if a borg with an active shield takes damage from a source that isn't totally negated by the shield prior to the damage check, it will run it through that bit of code. Since melee isn't covered by any pre-damage code, it just goes straight into this.
Now, let's check the stats on a cyalume saber.
When turned on, a cyalume saber has force = 60. It does brute damage, so let's run it through physshield code.
max(brute - 25, 0) = max(60 - 25, 0) = max(35, 0) = 35.
A cyalume saber should hit through a borg's active force shield for around 35 damage without taking any other factors into account.
Now, the question is whether a c-saber is weakened to this level in practice or if there's some bug causing borgs to take the full 60 damage. The only way I can think of to test this would be to smack a borg with an active c-saber both with and without shields on and to then compare the damage inflicted.