mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
Merge pull request #4357 from Fox-McCloud/chem-stuff-disease
A Few More Disease and Reagents
This commit is contained in:
@@ -40,7 +40,7 @@
|
||||
seed_name = "ghost pepper"
|
||||
display_name = "ghost pepper plants"
|
||||
mutants = null
|
||||
chems = list("capsaicin" = list(8,2), "condensedcapsaicin" = list(4,4), "plantmatter" = list(1,50))
|
||||
chems = list("capsaicin" = list(8,2), "condensedcapsaicin" = list(4,4), "ghostchilijuice" = list(4,4), "plantmatter" = list(1,50))
|
||||
kitchen_tag = "ghostchili"
|
||||
preset_icon = "ghostchilipepper"
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
if(embedded_flag)
|
||||
handle_embedded_objects() //Moving with objects stuck in you can cause bad times.
|
||||
|
||||
if(slowed)
|
||||
tally += 10
|
||||
|
||||
var/health_deficiency = (maxHealth - health + staminaloss)
|
||||
if(reagents)
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
handle_slurring()
|
||||
handle_paralysed()
|
||||
handle_sleeping()
|
||||
handle_slowed()
|
||||
|
||||
|
||||
/mob/living/proc/handle_stunned()
|
||||
@@ -160,7 +161,10 @@
|
||||
clear_alert("asleep")
|
||||
return sleeping
|
||||
|
||||
|
||||
/mob/living/proc/handle_slowed()
|
||||
if(slowed)
|
||||
slowed = max(slowed-1, 0)
|
||||
return slowed
|
||||
|
||||
/mob/living/proc/handle_disabilities()
|
||||
//Eyes
|
||||
|
||||
@@ -333,7 +333,7 @@
|
||||
C.unEquip(C.legcuffed)
|
||||
C.legcuffed = initial(C.legcuffed)
|
||||
C.update_inv_legcuffed()
|
||||
|
||||
|
||||
if(C.reagents)
|
||||
for(var/datum/reagent/R in C.reagents.reagent_list)
|
||||
C.reagents.clear_reagents()
|
||||
@@ -358,12 +358,14 @@
|
||||
SetParalysis(0)
|
||||
SetStunned(0)
|
||||
SetWeakened(0)
|
||||
slowed = 0
|
||||
losebreath = 0
|
||||
dizziness = 0
|
||||
jitteriness = 0
|
||||
confused = 0
|
||||
drowsyness = 0
|
||||
radiation = 0
|
||||
druggy = 0
|
||||
nutrition = 400
|
||||
bodytemperature = 310
|
||||
sdisabilities = 0
|
||||
@@ -826,3 +828,11 @@
|
||||
butcher_results.Remove(path) //In case you want to have things like simple_animals drop their butcher results on gib, so it won't double up below.
|
||||
visible_message("<span class='notice'>[user] butchers [src].</span>")
|
||||
gib()
|
||||
|
||||
/mob/living/movement_delay()
|
||||
var/tally = 0
|
||||
|
||||
if(slowed)
|
||||
tally += 10
|
||||
|
||||
return tally
|
||||
@@ -98,6 +98,7 @@
|
||||
var/paralysis = 0.0
|
||||
var/stunned = 0.0
|
||||
var/weakened = 0.0
|
||||
var/slowed = 0
|
||||
var/losebreath = 0.0//Carbon
|
||||
var/intent = null//Living
|
||||
var/shakecamera = 0
|
||||
|
||||
@@ -63,8 +63,8 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/salmonella
|
||||
name = "Salmonella "
|
||||
id = "salmonella "
|
||||
name = "Salmonella"
|
||||
id = "salmonella"
|
||||
description = "A nasty bacteria found in spoiled food."
|
||||
reagent_state = LIQUID
|
||||
color = "#1E4600"
|
||||
@@ -74,6 +74,63 @@
|
||||
M.ForceContractDisease(new /datum/disease/food_poisoning(0))
|
||||
..()
|
||||
|
||||
/datum/reagent/gibbis
|
||||
name = "Gibbis"
|
||||
id = "gibbis"
|
||||
description = "Liquid gibbis."
|
||||
reagent_state = LIQUID
|
||||
color = "#FF0000"
|
||||
|
||||
/datum/reagent/gibbis/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume > 2.5)
|
||||
M.ForceContractDisease(new /datum/disease/gbs/curable(0))
|
||||
..()
|
||||
|
||||
/datum/reagent/prions
|
||||
name = "Prions"
|
||||
id = "prions"
|
||||
description = "A disease-causing agent that is neither bacterial nor fungal nor viral and contains no genetic material."
|
||||
reagent_state = LIQUID
|
||||
color = "#FFFFFF"
|
||||
|
||||
/datum/reagent/prions/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume > 4.5)
|
||||
M.ForceContractDisease(new /datum/disease/kuru(0))
|
||||
..()
|
||||
|
||||
/datum/reagent/grave_dust
|
||||
name = "Grave Dust"
|
||||
id = "grave_dust"
|
||||
description = "Moldy old dust taken from a grave site."
|
||||
reagent_state = LIQUID
|
||||
color = "#465046"
|
||||
|
||||
/datum/reagent/grave_dust/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume > 4.5)
|
||||
M.ForceContractDisease(new /datum/disease/vampire(0))
|
||||
..()
|
||||
|
||||
/datum/reagent/heartworms
|
||||
name = "Space heartworms"
|
||||
id = "heartworms"
|
||||
description = "Aww, gross! These things can't be good for your heart. They're gunna eat it!"
|
||||
reagent_state = SOLID
|
||||
color = "#925D6C"
|
||||
|
||||
/datum/reagent/heartworms/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(volume > 4.5)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/internal/heart/ate_heart = H.get_int_organ(/obj/item/organ/internal/heart)
|
||||
if(ate_heart)
|
||||
ate_heart.remove(H)
|
||||
qdel(ate_heart)
|
||||
..()
|
||||
|
||||
/datum/reagent/spore
|
||||
name = "Blob Spores"
|
||||
id = "spore"
|
||||
|
||||
@@ -67,6 +67,56 @@
|
||||
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
|
||||
|
||||
|
||||
/datum/reagent/ethanol/dragons_breath
|
||||
name = "Dragon's Breath"
|
||||
id = "dragonsbreath"
|
||||
description = "Possessing this stuff probably breaks the Geneva convention."
|
||||
reagent_state = LIQUID
|
||||
color = "#DC0000"
|
||||
alcohol_perc = 1
|
||||
|
||||
/datum/reagent/ethanol/dragons_breath/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
if(method == INGEST && prob(20))
|
||||
if(M.on_fire)
|
||||
M.adjust_fire_stacks(3)
|
||||
|
||||
/datum/reagent/ethanol/dragons_breath/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(M.reagents.has_reagent("milk"))
|
||||
to_chat(M, "<span class='notice'>The milk stops the burning. Ahhh.</span>")
|
||||
M.reagents.del_reagent("milk")
|
||||
M.reagents.del_reagent("dragonsbreath")
|
||||
return
|
||||
if(prob(8))
|
||||
to_chat(M, "<span class='userdanger'>Oh god! Oh GODD!!</span>")
|
||||
if(prob(50))
|
||||
to_chat(M, "<span class='danger'>Your throat burns terribly!</span>")
|
||||
M.emote(pick("scream","cry","choke","gasp"))
|
||||
M.Stun(1)
|
||||
if(prob(8))
|
||||
to_chat(M, "<span class='danger'>Why!? WHY!?</span>")
|
||||
if(prob(8))
|
||||
to_chat(M, "<span class='danger'>ARGHHHH!</span>")
|
||||
if(prob(2 * volume))
|
||||
to_chat(M, "<span class='userdanger'>OH GOD OH GOD PLEASE NO!!</b></span>")
|
||||
if(M.on_fire)
|
||||
M.adjust_fire_stacks(5)
|
||||
if(prob(50))
|
||||
to_chat(M, "<span class='userdanger'>IT BURNS!!!!</span>")
|
||||
M.visible_message("<span class='danger'>[M] is consumed in flames!</span>")
|
||||
M.dust()
|
||||
return
|
||||
..()
|
||||
|
||||
/datum/chemical_reaction/dragons_breath
|
||||
name = "Dragon's Breath"
|
||||
id = "dragonsbreath"
|
||||
result = "dragonsbreath"
|
||||
required_reagents = list("whiskey" = 1, "phlogiston" = 1, "pyrosium" = 1, "fuel" = 1, "ghostchilijuice"= 1)
|
||||
result_amount = 1
|
||||
mix_message = "A tiny mushroom cloud erupts from the container. That's not worrying at all!"
|
||||
mix_sound = 'sound/effects/meteorimpact.ogg'
|
||||
|
||||
// ROBOT ALCOHOL PAST THIS POINT
|
||||
// WOOO!
|
||||
|
||||
|
||||
@@ -601,3 +601,44 @@ datum/reagent/pepperoni/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vol
|
||||
if(!H.heart_attack)
|
||||
H.heart_attack = 1
|
||||
..()
|
||||
|
||||
/datum/reagent/ghost_chili_juice
|
||||
name = "Ghost chili juice"
|
||||
id = "ghostchilijuice"
|
||||
description = "Juice from the universe's hottest chilli. Do not consume."
|
||||
reagent_state = LIQUID
|
||||
color = "#FF7F32"
|
||||
|
||||
/datum/reagent/ghost_chili_juice/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(M.reagents.has_reagent("milk"))
|
||||
to_chat(M, "<span class='notice'>The milk stops the burning. Ahhh.</span>")
|
||||
M.reagents.del_reagent("milk")
|
||||
M.reagents.del_reagent("ghostchilijuice")
|
||||
return
|
||||
if(prob(8))
|
||||
to_chat(M, "<span class='userdanger'>Oh god! Oh GODD!!</span>")
|
||||
if(prob(50))
|
||||
to_chat(M, "<span class='danger'>Your throat burns furiously!</span>")
|
||||
M.emote(pick("scream","cry","choke","gasp"))
|
||||
M.Stun(1)
|
||||
if(prob(8))
|
||||
to_chat(M, "<span class='danger'>Why!? WHY!?</span>")
|
||||
if(prob(8))
|
||||
to_chat(M, "<span class='danger'>ARGHHHH!</span>")
|
||||
if(prob(33))
|
||||
M.visible_message("<span class='danger'>[M] suddenly and violently vomits!</span>")
|
||||
M.fakevomit(no_text = 1)
|
||||
to_chat(M, "<span class='notice'>Thank goodness. You're not sure how long you could have held out with heat that intense!</span>")
|
||||
M.reagents.del_reagent("ghostchilijuice")
|
||||
return
|
||||
if(prob(10))
|
||||
to_chat(M, "<span class='userdanger'>OH GOD OH GOD PLEASE NO!!</span>")
|
||||
if(M.on_fire)
|
||||
M.adjust_fire_stacks(5)
|
||||
if(prob(50))
|
||||
to_chat(M, "<span class='userdanger'>IT BURNS!!!!</span>")
|
||||
M.visible_message("<span class='danger'>[M] is consumed in flames!</span>")
|
||||
M.dust()
|
||||
return
|
||||
..()
|
||||
@@ -800,6 +800,7 @@ datum/reagent/stimulants/on_mob_life(var/mob/living/M as mob)
|
||||
M.adjustBruteLoss(-10*REM)
|
||||
M.adjustFireLoss(-10*REM)
|
||||
M.setStaminaLoss(0)
|
||||
M.slowed = 0
|
||||
M.dizziness = max(0,M.dizziness-10)
|
||||
M.drowsyness = max(0,M.drowsyness-10)
|
||||
M.confused = 0
|
||||
|
||||
@@ -351,6 +351,52 @@ datum/reagent/fartonium/on_mob_life(var/mob/living/M as mob)
|
||||
required_reagents = list("sodium" = 1, "hydrogen" = 1, "oxygen" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/datum/reagent/hugs
|
||||
name = "Pure hugs"
|
||||
id = "hugs"
|
||||
description = "Hugs, in liquid form. Yes, the concept of a hug. As a liquid. This makes sense in the future."
|
||||
reagent_state = LIQUID
|
||||
color = "#FF97B9"
|
||||
|
||||
/datum/reagent/love
|
||||
name = "Pure love"
|
||||
id = "love"
|
||||
description = "What is this emotion you humans call \"love?\" Oh, it's this? This is it? Huh, well okay then, thanks."
|
||||
reagent_state = LIQUID
|
||||
color = "#FF83A5"
|
||||
|
||||
/datum/reagent/love/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
to_chat(M, "<span class='notice'>You feel loved!</span>")
|
||||
|
||||
/datum/reagent/love/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
|
||||
if(M.a_intent == I_HARM)
|
||||
M.a_intent = I_HELP
|
||||
|
||||
if(prob(8))
|
||||
var/lovely_phrase = pick("appreciated", "loved", "pretty good", "really nice", "pretty happy with yourself, even though things haven't always gone as well as they could")
|
||||
to_chat(M, "<span class='notice'>You feel [lovely_phrase].</span>")
|
||||
|
||||
else if(!M.restrained())
|
||||
for(var/mob/living/carbon/C in orange(1, M))
|
||||
if(C)
|
||||
if(C == M)
|
||||
continue
|
||||
if(!C.stat)
|
||||
M.visible_message("<span class='notice'>[M] gives [C] a [pick("hug","warm embrace")].</span>")
|
||||
playsound(get_turf(M), 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
break
|
||||
..()
|
||||
|
||||
/datum/chemical_reaction/love
|
||||
name = "pure love"
|
||||
id = "love"
|
||||
result = "love"
|
||||
required_reagents = list("hugs" = 1, "chocolate" = 1)
|
||||
result_amount = 2
|
||||
mix_message = "The substance gives off a lovely scent!"
|
||||
|
||||
///Alchemical Reagents
|
||||
|
||||
datum/reagent/eyenewt
|
||||
|
||||
@@ -397,6 +397,15 @@
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/initropidril
|
||||
name = "Initropidril"
|
||||
id = "initropidril"
|
||||
result = "initropidril"
|
||||
required_reagents = list("crank" = 1, "histamine" = 1, "krokodil" = 1, "bath_salts" = 1, "atropine" = 1, "nicotine" = 1, "morphine" = 1)
|
||||
result_amount = 4
|
||||
mix_message = "A sweet and sugary scent drifts from the unpleasant milky substance."
|
||||
|
||||
|
||||
/datum/reagent/concentrated_initro
|
||||
name = "Concentrated Initropidril"
|
||||
id = "concentrated_initro"
|
||||
|
||||
@@ -787,7 +787,7 @@
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 6)
|
||||
reagents.add_reagent("mannitol", 6)
|
||||
reagents.add_reagent("prions", 10)
|
||||
bitesize = 2
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/ghostburger
|
||||
|
||||
@@ -299,7 +299,7 @@
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent(pick("polonium","initropidril","concentrated_initro","pancuronium","sodium_thiopental","ketamine","sulfonal","amanitin","coniine","curare","sarin","histamine","venom","cyanide","spidereggs","nanomachines"), 40)
|
||||
reagents.add_reagent(pick_list("chemistry_tools.json", "traitor_poison_bottle"), 40)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/plasma
|
||||
name = "plasma dust bottle"
|
||||
|
||||
Reference in New Issue
Block a user