Jump to content

Obesity Overhaul


Pootass

Recommended Posts

So, having played a bit on the station, I tried out the Obesity disability a decent amount. And I have to say, while it's annoying to move at such a crawl, for more sedentary jobs the Obesity disability really isn't too much of a problem, especially with not having to eat as much. I think it should be more of a genuine trade-off with more interaction with it and medical. so here's my suggestion.

Obesity, on top of making you slower, should increase your heart rate. I'm thinking somewhere north of 80. On top of that, there ought to be a ticking malus for being obese - sugar makes you diabetic easier, and every minute adds a small amount of damage to your heart. It ought to be balanced so that around 40 minutes-an hour, it gets to be a real problem, and can result in full cardiac arrest.

I basically think it should be balanced as so: Obesity lets you eat less, but at a cost to your health, and enough of an annoyance to the medical staff that they have a mechancial reason to tell you to drop the pounds. The last thing they want to be dealing with during a terror spider invasion is a civvie who ate everything the kitchen put out because he was bored. Of course, that'd basically be on him as a player. My observation is, not many people sit around and eat to that amount, so it wouldn't be a massive roadblock to the playerbase. It'd be more of an available route for RP that gives an extra layer of life to the station. It could even result in CMO's wanting to be damn sure that they won't have to deal with it that they start doing physicals - a good opportunity for antags to strike a big group of people, and a good minor action for slower extended shifts.

I hate to be so scant on coding advice, but I've coded for paradox mods, and not so much for this.If I had to take a wild guess, it's probably just a matter of ripping, say, the alcohol toxins damage and flipping it around to the tag for Obesity, but tying the damage going away not to waiting the damage out, but more to not being obese+overweight anymore. 

Link to comment
Share on other sites

Just as a follow-up, I've been hitting up code strings to get an idea for how this might be coded. I've found at least one example on how to implement this that might be useful.

So, for one, there's this one i've found in tgstation's github (Full disclosure. If it's not okay to raid other places for code, feel free to slap me for it.)

Spoiler

/datum/disease/heart_failure

form = "Condition"

name = "Myocardial Infarction"

max_stages = 5

stage_prob = 2

cure_text = "Heart replacement surgery to cure. Defibrillation (or as a last resort, uncontrolled electric shocking) may also be effective after the onset of cardiac arrest. Penthrite can also mitigate cardiac arrest."

agent = "Shitty Heart"

viable_mobtypes = list(/mob/living/carbon/human)

permeability_mod = 1

desc = "If left untreated the subject will die!"

severity = "Dangerous!"

disease_flags = CAN_CARRY|CAN_RESIST

spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS

visibility_flags = HIDDEN_PANDEMIC

required_organs = list(/obj/item/organ/heart)

bypasses_immunity = TRUE // Immunity is based on not having an appendix; this isn't a virus

var/sound = FALSE

/datum/disease/heart_failure/Copy()

var/datum/disease/heart_failure/D = ..()

D.sound = sound

return D

/datum/disease/heart_failure/stage_act()

..()

var/obj/item/organ/heart/O = affected_mob.getorgan(/obj/item/organ/heart)

var/mob/living/carbon/H = affected_mob

if(O && H.can_heartattack())

switch(stage)

if(1 to 2)

if(prob(2))

to_chat(H, "<span class='warning'>You feel [pick("discomfort", "pressure", "a burning sensation", "pain")] in your chest.</span>")

if(prob(2))

to_chat(H, "<span class='warning'>You feel dizzy.</span>")

H.confused += 6

if(prob(3))

to_chat(H, "<span class='warning'>You feel [pick("full", "nauseated", "sweaty", "weak", "tired", "short on breath", "uneasy")].</span>")

if(3 to 4)

if(!sound)

H.playsound_local(H, 'sound/health/slowbeat.ogg',40,0, channel = CHANNEL_HEARTBEAT)

sound = TRUE

if(prob(3))

to_chat(H, "<span class='danger'>You feel a sharp pain in your chest!</span>")

if(prob(25))

affected_mob.vomit(95)

H.emote("cough")

H.Paralyze(40)

H.losebreath += 4

if(prob(3))

to_chat(H, "<span class='danger'>You feel very weak and dizzy...</span>")

H.confused += 8

H.adjustStaminaLoss(40)

H.emote("cough")

if(5)

H.stop_sound_channel(CHANNEL_HEARTBEAT)

H.playsound_local(H, 'sound/effects/singlebeat.ogg', 100, 0)

if(H.stat == CONSCIOUS)

H.visible_message("<span class='danger'>[H] clutches at [H.p_their()] chest as if [H.p_their()] heart is stopping!</span>", \

"<span class='userdanger'>You feel a terrible pain in your chest, as if your heart has stopped!</span>")

H.adjustStaminaLoss(60)

H.set_heartattack(TRUE)

H.reagents.add_reagent(/datum/reagent/medicine/C2/penthrite, 3) // To give the victim a final chance to shock their heart before losing consciousness

cure()

else

cure()

However, this one, as i read it if correct, is entirely random. I know not how it's DONE, but it should be possible to make it a weighted chance - with a random chance for if(fat), and a smaller chance for non-fats. If you REALLY wanted to mess around, you could implement Goonstation's cholesterol system and make it weighted based on that, so that a non-fat could still get heart disease if they're chomping down on deep-fried cheeseburgers. 

 

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Terms of Use