mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-14 08:34:16 +01:00
[Goonchem] Few Additional Chemicals
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
var/obj/vent = pick_n_take(vents)
|
||||
|
||||
var/list/gunk = list("water","carbon","flour","radium","toxin","cleaner","nutriment","condensedcapsaicin","psilocybin","lube",
|
||||
"plantbgone","banana","anti_toxin","space_drugs","hyperzine","holywater","ethanol","hot_coco","pacid",
|
||||
"atrazine","banana","anti_toxin","space_drugs","hyperzine","holywater","ethanol","hot_coco","pacid",
|
||||
"blood","stoxin","fluorine","ryetalyn","mutagen","oxycodone","fuel","cryptobiolin",
|
||||
"impedrezene","mindbreaker","nanites","lipozine","frostoil","doctorsdelight","beepskysmash",
|
||||
"tricordrazine", "amatoxin", "adminordrazine", "neurotoxin", "zombiepowder", "synaptizine")
|
||||
|
||||
@@ -330,6 +330,10 @@
|
||||
message = "<B>[src]</B> waves."
|
||||
m_type = 1
|
||||
|
||||
if ("quiver")
|
||||
message = "<B>[src]</B> quivers."
|
||||
m_type = 1
|
||||
|
||||
if ("gasp")
|
||||
if(miming)
|
||||
message = "<B>[src]</B> appears to be gasping!"
|
||||
|
||||
+10
-2
@@ -82,7 +82,7 @@
|
||||
/atom/proc/visible_message(var/message, var/blind_message)
|
||||
for(var/mob/M in viewers(src))
|
||||
M.show_message( message, 1, blind_message, 2)
|
||||
|
||||
|
||||
// Show a message to all mobs in earshot of this one
|
||||
// This would be for audible actions by the src mob
|
||||
// message is the message output to anyone who can hear.
|
||||
@@ -98,7 +98,7 @@
|
||||
if(self_message && M==src)
|
||||
msg = self_message
|
||||
M.show_message( msg, 2, deaf_message, 1)
|
||||
|
||||
|
||||
// Show a message to all mobs in earshot of this atom
|
||||
// Use for objects performing audible actions
|
||||
// message is the message output to anyone who can hear.
|
||||
@@ -1439,3 +1439,11 @@ mob/proc/yank_out_object()
|
||||
if(G.can_reenter_corpse || even_if_they_cant_reenter)
|
||||
return G
|
||||
break
|
||||
|
||||
|
||||
/mob/proc/fakevomit() //for aesthetic vomits that need to be instant and do not stun. -Fox
|
||||
src.visible_message("<span class='warning'>[src] pukes all over \himself!</span>","<span class='warning'>You puke all over yourself!</span>")
|
||||
playsound(loc, 'sound/effects/splat.ogg', 50, 1)
|
||||
var/turf/location = loc
|
||||
if (istype(location, /turf/simulated))
|
||||
location.add_vomit_floor(src, 1)
|
||||
@@ -1314,62 +1314,6 @@ datum
|
||||
..()
|
||||
return
|
||||
|
||||
plantbgone
|
||||
name = "Plant-B-Gone"
|
||||
id = "plantbgone"
|
||||
description = "A harmful toxic mixture to kill plantlife. Do not ingest!"
|
||||
reagent_state = LIQUID
|
||||
color = "#49002E" // rgb: 73, 0, 46
|
||||
|
||||
on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(1)
|
||||
..()
|
||||
return
|
||||
|
||||
// Clear off wallrot fungi
|
||||
reaction_turf(var/turf/T, var/volume)
|
||||
if(istype(T, /turf/simulated/wall))
|
||||
var/turf/simulated/wall/W = T
|
||||
if(W.rotting)
|
||||
W.rotting = 0
|
||||
for(var/obj/effect/E in W) if(E.name == "Wallrot") del E
|
||||
|
||||
for(var/mob/O in viewers(W, null))
|
||||
O.show_message(text("\blue The fungi are completely dissolved by the solution!"), 1)
|
||||
|
||||
reaction_obj(var/obj/O, var/volume)
|
||||
if(istype(O,/obj/structure/alien/weeds/))
|
||||
var/obj/structure/alien/weeds/alien_weeds = O
|
||||
alien_weeds.health -= rand(15,35) // Kills alien weeds pretty fast
|
||||
alien_weeds.healthcheck()
|
||||
else if(istype(O,/obj/effect/glowshroom)) //even a small amount is enough to kill it
|
||||
del(O)
|
||||
else if(istype(O,/obj/effect/plantsegment))
|
||||
if(prob(50)) del(O) //Kills kudzu too.
|
||||
// Damage that is done to growing plants is separately at code/game/machinery/hydroponics at obj/item/hydroponics
|
||||
|
||||
reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
src = null
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
if(!C.wear_mask) // If not wearing a mask
|
||||
C.adjustToxLoss(2) // 4 toxic damage per application, doubled for some reason
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.dna)
|
||||
if(H.species.flags & IS_PLANT) //plantmen take a LOT of damage
|
||||
H.adjustToxLoss(50)
|
||||
..()
|
||||
return
|
||||
if(ismonkey(M))
|
||||
var/mob/living/carbon/monkey/MO = M
|
||||
if(MO.dna)
|
||||
if(MO.dna.mutantrace == "plant") //plantmen monkeys (diona) take EVEN MORE damage
|
||||
MO.adjustToxLoss(100)
|
||||
..()
|
||||
return
|
||||
|
||||
plasma
|
||||
name = "Plasma"
|
||||
id = "plasma"
|
||||
@@ -1947,7 +1891,7 @@ datum
|
||||
|
||||
on_mob_life(var/mob/living/M)
|
||||
if(!M) M = holder.my_atom
|
||||
if (holder.has_reagent("plantbgone",45))
|
||||
if (holder.has_reagent("atrazine",45))
|
||||
holder.del_reagent("spore")
|
||||
if (prob(1))
|
||||
M << "\red Your mouth tastes funny."
|
||||
|
||||
@@ -347,8 +347,8 @@ datum
|
||||
name = "Sodium Chloride"
|
||||
id = "sodiumchloride"
|
||||
result = "sodiumchloride"
|
||||
required_reagents = list("sodium" = 1, "chlorine" = 1)
|
||||
result_amount = 2
|
||||
required_reagents = list("sodium" = 1, "chlorine" = 1, "water" = 1)
|
||||
result_amount = 3
|
||||
|
||||
flash_powder
|
||||
name = "Flash powder"
|
||||
@@ -595,13 +595,6 @@ datum
|
||||
required_reagents = list("ammonia" = 1, "water" = 1)
|
||||
result_amount = 2
|
||||
|
||||
plantbgone
|
||||
name = "Plant-B-Gone"
|
||||
id = "plantbgone"
|
||||
result = "plantbgone"
|
||||
required_reagents = list("chlorine" = 1, "hydrogen" = 1, "nitrogen" = 1)
|
||||
result_amount = 3
|
||||
|
||||
///////Changeling Blood Test/////////////
|
||||
changeling_test
|
||||
name = "Changeling blood test"
|
||||
|
||||
@@ -503,3 +503,16 @@ datum/reagent/pyrosium/on_tick()
|
||||
holder.handle_reactions()
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/azide
|
||||
name = "azide"
|
||||
id = "azide"
|
||||
result = null
|
||||
required_reagents = list("chlorine" = 1, "oxygen" = 1, "nitrogen" = 1, "ammonia" = 1, "sodium" = 1, "silver" = 1)
|
||||
result_amount = 1
|
||||
mix_message = "The substance violently detonates!"
|
||||
|
||||
/datum/chemical_reaction/azide/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
explosion(location,0,1,3)
|
||||
return
|
||||
@@ -450,4 +450,114 @@ datum/reagent/curare/on_mob_life(var/mob/living/M as mob)
|
||||
M.adjustToxLoss(1)
|
||||
M.adjustOxyLoss(1)
|
||||
..()
|
||||
return
|
||||
return
|
||||
|
||||
datum/reagent/sarin
|
||||
name = "Sarin"
|
||||
id = "sarin"
|
||||
description = "An extremely deadly neurotoxin."
|
||||
reagent_state = LIQUID
|
||||
color = "#C7C7C7"
|
||||
metabolization_rate = 0.1
|
||||
|
||||
/datum/chemical_reaction/sarin
|
||||
name = "sarin"
|
||||
id = "sarin"
|
||||
result = "sarin"
|
||||
required_reagents = list("chlorine" = 1, "fluorine" = 1, "hydrogen" = 1, "oxygen" = 1, "phosphorus" = 1, "fuel" = 1, "acetone" = 1, "atrazine" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "The mixture yields a colorless, odorless liquid."
|
||||
required_temp = 373
|
||||
|
||||
datum/reagent/sarin/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustFireLoss(1)
|
||||
M.adjustToxLoss(1)
|
||||
if(prob(20))
|
||||
M.emote(pick("twitch","scream", "drool", "quiver"))
|
||||
if(prob(5))
|
||||
M.confused = max(M.confused, 3)
|
||||
if(prob(15))
|
||||
M.fakevomit()
|
||||
if(prob(2))
|
||||
M.visible_message("<span class='danger'>[M] starts having a seizure!</span>", "<span class='danger'>You have a seizure!</span>")
|
||||
M.Paralyse(5)
|
||||
M.Jitter(1000)
|
||||
if(current_cycle >= 5)
|
||||
M.Jitter(50)
|
||||
if(current_cycle >= 20)
|
||||
if(prob(5))
|
||||
M.emote("collapse")
|
||||
switch(current_cycle)
|
||||
if(0 to 60)
|
||||
M.adjustBrainLoss(1)
|
||||
if(61 to INFINITY)
|
||||
M.adjustBrainLoss(2)
|
||||
M.Paralyse(5)
|
||||
M.losebreath += 5
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/atrazine
|
||||
name = "Atrazine"
|
||||
id = "atrazine"
|
||||
description = "A herbicidal compound used for destroying unwanted plants."
|
||||
reagent_state = LIQUID
|
||||
color = "#17002D"
|
||||
|
||||
datum/reagent/atrazine/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(2)
|
||||
..()
|
||||
return
|
||||
|
||||
// Clear off wallrot fungi
|
||||
datum/reagent/atrazine/reaction_turf(var/turf/T, var/volume)
|
||||
if(istype(T, /turf/simulated/wall))
|
||||
var/turf/simulated/wall/W = T
|
||||
if(W.rotting)
|
||||
W.rotting = 0
|
||||
for(var/obj/effect/E in W) if(E.name == "Wallrot") del E
|
||||
|
||||
for(var/mob/O in viewers(W, null))
|
||||
O.show_message(text("\blue The fungi are completely dissolved by the solution!"), 1)
|
||||
|
||||
datum/reagent/atrazine/reaction_obj(var/obj/O, var/volume)
|
||||
if(istype(O,/obj/structure/alien/weeds/))
|
||||
var/obj/structure/alien/weeds/alien_weeds = O
|
||||
alien_weeds.health -= rand(15,35) // Kills alien weeds pretty fast
|
||||
alien_weeds.healthcheck()
|
||||
else if(istype(O,/obj/effect/glowshroom)) //even a small amount is enough to kill it
|
||||
del(O)
|
||||
else if(istype(O,/obj/effect/plantsegment))
|
||||
if(prob(50)) del(O) //Kills kudzu too.
|
||||
// Damage that is done to growing plants is separately at code/game/machinery/hydroponics at obj/item/hydroponics
|
||||
|
||||
datum/reagent/atrazine/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
src = null
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
if(!C.wear_mask) // If not wearing a mask
|
||||
C.adjustToxLoss(2) // 4 toxic damage per application, doubled for some reason
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.dna)
|
||||
if(H.species.flags & IS_PLANT) //plantmen take a LOT of damage
|
||||
H.adjustToxLoss(50)
|
||||
..()
|
||||
return
|
||||
if(ismonkey(M))
|
||||
var/mob/living/carbon/monkey/MO = M
|
||||
if(MO.dna)
|
||||
if(MO.dna.mutantrace == "plant") //plantmen monkeys (diona) take EVEN MORE damage
|
||||
MO.adjustToxLoss(100)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/atrazine
|
||||
name = "atrazine"
|
||||
id = "atrazine"
|
||||
result = "atrazine"
|
||||
required_reagents = list("chlorine" = 1, "hydrogen" = 1, "nitrogen" = 1)
|
||||
result_amount = 3
|
||||
mix_message = "The mixture gives off a harsh odor"
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6)
|
||||
user.changeNext_move(CLICK_CD_RANGE*2)
|
||||
|
||||
|
||||
if(reagents.has_reagent("sacid"))
|
||||
message_admins("[key_name_admin(user)] fired sulphuric acid from \a [src].")
|
||||
log_game("[key_name(user)] fired sulphuric acid from \a [src].")
|
||||
@@ -226,7 +226,7 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/plantbgone/New()
|
||||
..()
|
||||
reagents.add_reagent("plantbgone", 100)
|
||||
reagents.add_reagent("atrazine", 100)
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/spray/plantbgone/afterattack(atom/A as mob|obj, mob/user as mob, proximity)
|
||||
|
||||
Reference in New Issue
Block a user