Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
explosions, armors, helmets, and decapitation
#1
i see sometimes that people's heads, brains, skulls, etc. randomly have a chance to survive gibbing. this is good. i would like to propose a further nuance to this

if someone is wearing a good protective helmet, their head should have an increased chance to escape intact

if someone is wearing strong protective armor (indy armor, bomb disposal suit, whatever) but no good helmet to go with it, their head should be obliterated or removed by a strong blast, leaving a decapitated corpse
Reply
#2
I like this, it would make sec helmets actually useful other than as a way to cover up your horrendous hairdo. It'd be nice if helmets could slightly soften attacks to the head similar to body armour as well.
Reply
#3
(08-10-2016, 10:30 AM)ferriswheel1 Wrote: I like this, it would make sec helmets actually useful other than as a way to cover up your horrendous hairdo. It'd be nice if helmets could slightly soften attacks to the head similar to body armour as well.

Uhhhhh

They already do that.
Reply
#4
yeah dude, helmets are already fairly valuable when youre getting hit by regular objects or being punched. this thread pertains to explosives and gibbing, which dont really take helmets into account as far as i know. if im incorrect feel free to add in, testing armor/helmet/helmetless combos against explosives isnt an undertaking ive... undertaken
Reply
#5
(08-10-2016, 12:51 PM)misto Wrote: yeah dude, helmets are already fairly valuable when youre getting hit by regular objects or being punched. this thread pertains to explosives and gibbing, which dont really take helmets into account as far as i know. if im incorrect feel free to add in, testing armor/helmet/helmetless combos against explosives isnt an undertaking ive... undertaken

The only helmet that affects blast damage is the EOD helmet, and that only works if you're wearing the EOD armor along with it.
Reply
#6
i would have thought that the indy space helmet would also offer blast protection, that is part of the whole point of the indy space armor set.

how about armors, then? is their blast protection reduced or removed without some helmet to accompany them, or do they magically offer protection to even an exposed head?
Reply
#7
(08-10-2016, 01:11 PM)misto Wrote: i would have thought that the indy space helmet would also offer blast protection, that is part of the whole point of the indy space armor set.

how about armors, then? is their blast protection reduced or removed without some helmet to accompany them, or do they magically offer protection to even an exposed head?

Indy space helmet used to provide blast protection, but doesn't anymore for some reason.

Armor protects you even without a helmet.

Here's the relevant code for explosion interaction with a human.

Code:
/mob/living/carbon/human/ex_act(severity)
    ..() // Logs.
    if (src.nodamage) return
    // there used to be mining radiation check here which increases severity by one
    // this needs to be derived from material properties instead and is disabled for now
    src.flash(30)

    if (src.stat == 2 && src.client)
        spawn(1)
            src.gib(1)
        return

    else if (src.stat == 2 && !src.client)
        var/list/virus = src.ailments

        var/bdna = null // For forensics (Convair880).
        var/btype = null
        if (src.bioHolder.Uid && src.bioHolder.bloodType)
            bdna = src.bioHolder.Uid
            btype = src.bioHolder.bloodType
        gibs(src.loc, virus, null, bdna, btype)

        qdel(src)
        return

    var/shielded = 0
    var/spellshielded = 0
    for (var/obj/item/device/shield/S in src)
        if (S.active)
            shielded = 1
            break

    var/reduction = 0
    if (src.energy_shield) reduction = src.energy_shield.protect()
    if (src.spellshield)
        reduction += 30
        spellshielded = 1
        boutput(src, "<span style=\"color:red\"><b>Your Spell Shield absorbs some blast!</b></span>")
    var/in_severity = severity
    if (src.wear_suit && istype(src.wear_suit, /obj/item/clothing/suit/armor/EOD))
        reduction += rand(10,40)
        severity++ // let's make this function like mining armor
        boutput(src, "<span style=\"color:red\"><b>Your armor absorbs some of the blast!</span>")
        if (src.head && istype(src.head, /obj/item/clothing/head/helmet/EOD))
            reduction += rand(5,20) // buffed a bit - cogwerks
            severity++
        if (client && client.hellbanned)
            reduction = 0
            severity = in_severity
    else if (src.wear_suit && src.wear_suit.armor_value_explosion)
        var/sevmod = max(0,round(src.wear_suit.armor_value_explosion / 4))
        severity += sevmod
        reduction = rand(src.wear_suit.armor_value_explosion, src.wear_suit.armor_value_explosion * 4)
        if (client && client.hellbanned)
            reduction = 0
            severity = in_severity
        boutput(src, "<span style=\"color:red\"><b>Your armor absorbs some of the blast!</span>")
    else if (src.w_uniform && src.w_uniform.armor_value_explosion)
        var/sevmod = max(0,round(src.w_uniform.armor_value_explosion / 4))
        severity += sevmod
        reduction = rand(src.w_uniform.armor_value_explosion, src.w_uniform.armor_value_explosion * 4)
        if (client && client.hellbanned)
            reduction = 0
            severity = in_severity
        boutput(src, "<span style=\"color:red\"><b>Your jumpsuit absorbs some of the blast!</span>")

    var/b_loss = null
    var/f_loss = null

    if (spellshielded)
        severity++

    switch (severity)
        if (1.0)
            b_loss += max(500 - reduction, 0)
            spawn(1)
                src.gib(1)
            return

        if (2.0)
            if (!shielded)
                b_loss += max(60 - reduction, 0)

            f_loss += max(60 - reduction, 0)
            src.apply_sonic_stun(0, 0, 0, 0, 0, 30, 30)

            var/curprob = 30

            if (src.traitHolder && src.traitHolder.hasTrait("explolimbs"))
                curprob = round(curprob / 2)

            for (var/limb in list("l_arm","r_arm","l_leg","r_leg"))
                if (prob(curprob))
                    src.sever_limb(limb)
                    curprob -= 20 // let's not get too crazy

        if (3.0)
            b_loss += max(30 - reduction, 0)
            if (prob(50) && !shielded && !reduction)
                src.paralysis += 7

            src.apply_sonic_stun(0, 0, 0, 0, 0, 15, 15)
            var/curprob = 10

            if (src.traitHolder && src.traitHolder.hasTrait("explolimbs"))
                curprob = round(curprob / 2)

            for (var/limb in list("l_arm","r_arm","l_leg","r_leg"))
                if (prob(curprob))
                    src.sever_limb(limb)
                    curprob -= 10 // let's not get too crazy

        if (4.0 to INFINITY)
            boutput(src, "<span style=\"color:red\"><b>Your armor shields you from the blast!</b></span>")

    TakeDamage(zone="All", brute=b_loss, burn=f_loss, tox=0, damage_type=0, disallow_limb_loss=1)
Reply
#8
What the hell is that "hellbanned" var in there for?
Reply
#9
(08-10-2016, 02:06 PM)Nnystyxx Wrote: What the hell is that "hellbanned" var in there for?

Bad karma.

var/hellbanned = 0 //The intention here is to basically make the game stealthily unplayable, prevents you from getting randomly picked as traitor, silently drops some Move() and Click() calls, etc.
Reply
#10
(08-10-2016, 02:39 PM)Vitatroll Wrote:
(08-10-2016, 02:06 PM)Nnystyxx Wrote: What the hell is that "hellbanned" var in there for?

Bad karma.

var/hellbanned = 0 //The intention here is to basically make the game stealthily unplayable, prevents you from getting randomly picked as traitor, silently drops some Move() and Click() calls, etc.

Jesus, that's a thing?
Reply
#11
thats messed up. but anyways, uh, any thoughts on my idea folks?
Reply
#12
(08-10-2016, 05:08 PM)misto Wrote: thats messed up. but anyways, uh, any thoughts on my idea folks?

If you get to scoop brains outta freshly blown off helmets before putting them on yourself, sure
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)