BeeStation / BeeStation-Hornet

99.95% station. 0.05% bees
https://beestation13.com
GNU Affero General Public License v3.0
200 stars 684 forks source link

[Bug]: 14TC Scientist traitor item is useless #11288

Open Tsar-Salat opened 3 months ago

Tsar-Salat commented 3 months ago

BYOND Version

No response

Round Date

No response

Round ID

No response

Test merges

No response

Describe the bug

When I tried setting up a TTV for the blastcannon traitor item, I found launching the TTV to make a pitiful explosion size.

image

This is absolutely from #7686, and the author not considering this item.

As it stands, it is impossible to use, as it checks the typepath of the tank transfer valve, not the new "bomb casings" they wanted you to put these in.

What did you expect?

I expected the traitor item worth nearly the entire TC budget... to actually make a decent explosion size?

Reproducible steps

  1. Make a decent TTV bomb
  2. Acquire Blast Cannon
  3. Insert TTV as ammo into Blast Cannon
  4. Fire, and watch your dreams die
github-actions[bot] commented 2 months ago

This issue has been inactive for long enough to be automatically marked as stale. If this was a bug report and hasn't been addressed yet, and is still a problem, please don't hesitate to notify a maintainer.

Tsar-Salat commented 2 months ago

@Rukofamicom

Rukofamicom commented 2 months ago

Hi

Rukofamicom commented 2 months ago

I'm gonna have to say this is not related to my PR sorry. My PR did not touch what this item uses when calculating the blast cannon and contrary to claims here I did consider it. Below is the code used to calculate the power of the blast cannon:

/obj/item/gun/blastcannon/proc/calculate_bomb()
    if(!istype(bomb) || !istype(bomb.tank_one) || !istype(bomb.tank_two))
        return 0
    var/datum/gas_mixture/temp = new(max(reaction_volume_mod, 0))
    bomb.merge_gases(temp)
    if(prereaction)
        temp.react(src)
        var/prereaction_pressure = temp.return_pressure()
        if(prereaction_pressure < TANK_FRAGMENT_PRESSURE)
            return 0
    for(var/i in 1 to reaction_cycles)
        temp.react(src)
    var/pressure = temp.return_pressure()
    qdel(temp)
    if(pressure < TANK_FRAGMENT_PRESSURE)
        return 0
    return ((pressure - TANK_FRAGMENT_PRESSURE) / TANK_FRAGMENT_SCALE)

So while this is true:

As it stands, it is impossible to use, as it checks the typepath of the tank transfer valve, not the new "bomb casings" they wanted you to put these in.

It has nothing to do with how the power is calculated for this. This item's power is totally unrelated to the maxcap settings and the 0.25 power multiplier for TTVs without a bomb casing as well.

Either the TTV sucked, or something else went wrong here as far as I can see. Get back to me if you can identify what went wrong or if you believe I'm wrong.

aramix273 commented 1 month ago

tested with a maxcap ttv from the usual toxins setup that I make the blastcannon does shoot a wave similar to a rod, but at the end of its range it seems to want to explode and runtimes in doing so

https://github.com/user-attachments/assets/5b6dc761-0335-4e0a-9cc3-e8426526f8d2

Runtime in blastcannon.dm,148: Cannot execute null.contents explosion().