vgstation-coders / vgstation13

Butts
GNU Affero General Public License v3.0
265 stars 543 forks source link

Mushroommen don't take damage in the light #18312

Closed D3athrow-Issues closed 6 years ago

D3athrow-Issues commented 6 years ago

(WEB REPORT BY: repertor REMOTE: 172.93.109.202:7777)

Revision

c0d799f4f3990fc51670ce88452f56f34dc8cb13

Description

Mushroom dudes don't get hurt in light, only hungry

Steps to Reproduce

sit in bright light as a mushroom lad

What you Expected

To shrivel up and die

What Actually Happened

Alive but starved

MadmanMartian commented 6 years ago

It's a feature.

` if(species.flags & REQUIRE_LIGHT) var/light_amount = 0 //How much light there is in the place, affects receiving nutrition and healing if(isturf(loc)) //Else, there's considered to be no light var/turf/T = loc light_amount = (T.get_lumcount() * 10) - 5

    nutrition += light_amount
    pain_shock_stage -= light_amount

    if(species.flags & IS_PLANT)
        if(nutrition > 500)
            nutrition = 500
        if(light_amount >= 3 && !reagents.has_reagent(HYPERZINE)) //If there's enough light, and you do not have hyperzine in body, heal
            adjustBruteLoss(-(light_amount))
            adjustToxLoss(-(light_amount))
            adjustOxyLoss(-(light_amount))
            //TODO: heal wounds, heal broken limbs.

if(species.flags & REQUIRE_DARK)
    var/light_amount = 0
    if(isturf(loc))
        var/turf/T = loc
        light_amount = T.get_lumcount() * 10

    nutrition -= -3+light_amount
    pain_shock_stage += -3+light_amount

    if(species.flags & IS_PLANT)
        if(nutrition > 500)
            nutrition = 500
        if(!reagents.has_reagent(HYPERZINE))
            adjustBruteLoss(-10+light_amount)
            adjustToxLoss(-10+light_amount)
            adjustOxyLoss(-10+light_amount)`
AI-Is-Rogue commented 6 years ago

I was under a different impression due to #17871 saying

Adds REQUIRE_DARK - Steadily regenerate in the dark. If you spend too long in the light you start to take damage.

MadmanMartian commented 6 years ago

My bad. I found that dionae REQUIRE_LIGHT doesn't damage them in darkness, so I made it the same but inverse for mushroom men

AI-Is-Rogue commented 6 years ago

Are you sure they don't get damaged? Because I've experienced the health doll deteriorate if given enough time while I was locked in the dark or a locker after becoming starved.

Pathid commented 6 years ago

@AI-Is-Rogue Oh they do now. There was a bug at the time that made them not lose nutrition enough to matter.

AI-Is-Rogue commented 6 years ago

Apparently dionae take damage from the hunger instead of the darkness directly, but the damage dealt to them is still a part of REQUIRE_LIGHT. Might need tweaking if you gave it to mushroommen since it seems to deal brute damage. https://github.com/vgstation-coders/vgstation13/blob/ee34f3534ba0a4f04a9338cef03c0e2c4d809f89/code/modules/mob/living/carbon/human/life/handle_chemicals_in_body.dm#L120-L123