Merge pull request #4357 from Fox-McCloud/chem-stuff-disease

A Few More Disease and Reagents
This commit is contained in:
TheDZD
2016-05-06 18:12:18 -04:00
22 changed files with 824 additions and 27 deletions
+1 -1
View File
@@ -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)
+5 -1
View File
@@ -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
+11 -1
View File
@@ -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
+1
View File
@@ -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
+59 -2
View File
@@ -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"
+50
View File
@@ -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!
+41
View File
@@ -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
+46
View File
@@ -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
+9
View File
@@ -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"