Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Buffs scientist bio suits against slimes #37222

Open
wants to merge 6 commits into
base: Bleeding-Edge
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions code/modules/clothing/suits/bio.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/obj/item/clothing/head/bio_hood
name = "bio hood"
icon_state = "bio"
desc = "A hood that protects the head and face from biological comtaminants."
desc = "A hood that protects the head and face from biological contaminants."
permeability_coefficient = 0.01
flags = FPRINT
clothing_flags = PLASMAGUARD
Expand Down Expand Up @@ -53,7 +53,7 @@
//Security biosuit, grey with red stripe across the chest
/obj/item/clothing/head/bio_hood/security
name = "security bio hood"
desc = "A hood that protects the head and face from biological comtaminants. It has a reinforced synthetic lining to protect against tearing."
desc = "A hood that protects the head and face from biological contaminants. It has a reinforced synthetic lining to protect against tearing."
icon_state = "bio_security"
armor = list(melee = 25, bullet = 10, laser = 15, energy = 5, bomb = 5, bio = 100, rad = 20)

Expand Down Expand Up @@ -91,11 +91,16 @@

//Scientist's biosuit, white with a pink-ish hue
/obj/item/clothing/head/bio_hood/scientist
name = "scientist bio hood"
desc = "A hood that protects the head and face from biological contaminants. It has a reinforced synthetic lining to protect against slime glomps."
icon_state = "bio_scientist"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)

/obj/item/clothing/suit/bio_suit/scientist
name = "scientist bio suit"
desc = "A suit that protects against biological contamination. It has a reinforced synthetic lining to protect against slime glomps and feeding."
icon_state = "bio_scientist"

armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)

//CMO's biosuit, blue stripe
/obj/item/clothing/suit/bio_suit/cmo
Expand Down
46 changes: 24 additions & 22 deletions code/modules/mob/living/carbon/slime/powers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -63,34 +63,36 @@
if(M in view(1, src))
loc = M.loc

if(prob(15) && M.client && istype(M, /mob/living/carbon))
to_chat(M, "<span class='warning'>[pick("You can feel your body becoming weak!</span>", \
"You feel like you're about to die!", \
"You feel every part of your body screaming in agony!", \
"A low, rolling pain passes through your body!", \
"Your body feels as if it's falling apart!", \
"You feel extremely weak!", \
"A sharp, deep pain bathes every inch of your body!")]")

if(istype(M, /mob/living/carbon))
Victim.adjustCloneLoss(rand(1,10))
Victim.adjustToxLoss(rand(1,2))
var/bioprotectdivisor = istype(M.get_item_by_slot(slot_wear_suit), /obj/item/clothing/suit/bio_suit/scientist) ? 2 : 1
if(prob(15 / bioprotectdivisor) && M.client)
to_chat(M, "<span class='warning'>[pick("You can feel your body becoming weak!", \
"You feel like you're about to die!", \
"You feel every part of your body screaming in agony!", \
"A low, rolling pain passes through your body!", \
"Your body feels as if it's falling apart!", \
"You feel extremely weak!", \
"A sharp, deep pain bathes every inch of your body!")]</span>")

Victim.adjustCloneLoss(rand(1,10/bioprotectdivisor))
Victim.adjustToxLoss(rand(1,2/bioprotectdivisor))
if(Victim.health <= 0)
Victim.adjustToxLoss(rand(2,4))
Victim.adjustToxLoss(rand(2/bioprotectdivisor,4/bioprotectdivisor))

// Heal yourself
adjustToxLoss(-10)
adjustOxyLoss(-10)
adjustBruteLoss(-10)
adjustFireLoss(-10)
adjustCloneLoss(-10)
var/healrate = 10 / bioprotectdivisor
adjustToxLoss(-healrate)
adjustOxyLoss(-healrate)
adjustBruteLoss(-healrate)
adjustFireLoss(-healrate)
adjustCloneLoss(-healrate)

if(Victim)
for(var/mob/living/carbon/slime/slime in view(1,M))
if(slime.Victim == M && slime != src)
slime.Feedstop()

nutrition += rand(10,25)
nutrition += rand(10/bioprotectdivisor,25/bioprotectdivisor)
if(nutrition >= lastnut + 50)
if(prob(80))
lastnut = nutrition
Expand All @@ -106,10 +108,10 @@

else
if(prob(25))
to_chat(src, "<span class='warning'><i>[pick("This subject is incompatable</span>", \
"This subject does not have a life energy", "This subject is empty", \
"I am not satisified", "I can not feed from this subject", \
"I do not feel nourished", "This subject is not food")]...</i>")
to_chat(src, "<span class='warning'>[pick("I am not satisified",\
"I can not feed from this subject","I do not feel nourished",\
"This subject is incompatable","This subject does not have a life energy",\
"This subject is empty","This subject is not food")]...</span>")

sleep(rand(15,45))

Expand Down
Loading