[MIRROR] Remove reagent ids and use typepaths where applicable (#5612)

* Remove reagent ids and use typepaths where applicable

* Remove reagent ids and use typepaths where applicable

* Resolves some easier conflicts

* Resolves medical_tools.dm

* Resolves robots.dm

* Handles cinnamon

Wow, I cannot do this manually. Fuckin' regex time.

* Removes 27 merge conflicts (!!!!!)

* Makes it actually half-attempt to compile

* I just -- I give up, it's over

* mk

* mk

* mk

* hm

* ok

* what a bloody chain reaction jesus

* ok

* and done

* went threw and changed the ones I missed

* ok

* dangit altoids hurry the fek up

* Fixes whatever I found find thru this regex:

reagents[\s\w]*=[\s\w]*list\([^\/]+\)
This commit is contained in:
yogstation13-bot
2019-06-10 14:26:31 +02:00
committed by Gary Lafortune
parent e93dafcc8e
commit f9ad21cbf1
341 changed files with 3797 additions and 3696 deletions

View File

@@ -28,7 +28,7 @@
"g" = (
/obj/structure/reagent_dispensers/water_cooler{
name = "punch cooler";
reagent_id = "bacchus_blessing"
reagent_id = /datum/reagent/consumable/ethanol/bacchus_blessing
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{

View File

@@ -3366,7 +3366,7 @@
"lq" = (
/obj/structure/table,
/obj/item/reagent_containers/glass/beaker{
list_reagents = list("sacid" = 50)
list_reagents = list(/datum/reagent/toxin/acid = 50)
},
/obj/item/paper/crumpled/bloody/ruins/thederelict/unfinished,
/obj/item/pen,

View File

@@ -47,7 +47,7 @@
"ap" = (
/obj/structure/table,
/obj/machinery/chem_dispenser/drinks/beer{
dispensable_reagents = list("beer","kahlua","whiskey","wine","vodka","gin","rum","tequila","vermouth","cognac","ale","absinthe","hcider","creme_de_menthe","creme_de_cacao","triple_sec","sake","ethanol","iron","minttoxin","atomicbomb","fernet");
dispensable_reagents = list(/datum/reagent/consumable/ethanol/beer,/datum/reagent/consumable/ethanol/kahlua,/datum/reagent/consumable/ethanol/whiskey,/datum/reagent/consumable/ethanol/wine,/datum/reagent/consumable/ethanol/vodka,/datum/reagent/consumable/ethanol/gin,/datum/reagent/consumable/ethanol/rum,/datum/reagent/consumable/ethanol/tequila,/datum/reagent/consumable/ethanol/vermouth,/datum/reagent/consumable/ethanol/cognac,/datum/reagent/consumable/ethanol/ale,/datum/reagent/consumable/ethanol/absinthe,/datum/reagent/consumable/ethanol/hcider,/datum/reagent/consumable/ethanol/creme_de_menthe,/datum/reagent/consumable/ethanol/creme_de_cacao,/datum/reagent/consumable/ethanol/triple_sec,/datum/reagent/consumable/ethanol/sake,/datum/reagent/consumable/ethanol,/datum/reagent/iron,/datum/reagent/toxin/minttoxin,/datum/reagent/consumable/ethanol/atomicbomb,/datum/reagent/consumable/ethanol/fernet);
emagged_reagents = null;
name = "Exotic booze dispenser"
},
@@ -56,7 +56,7 @@
"aq" = (
/obj/structure/table,
/obj/machinery/chem_dispenser/drinks{
dispensable_reagents = list("water","ice","coffee","cream","tea","icetea","cola","spacemountainwind","dr_gibb","space_up","tonic","sodawater","lemon_lime","pwr_game","shamblers","sugar","orangejuice","grenadine","limejuice","tomatojuice","lemonjuice","menthol","thirteenloko","whiskeycola","mindbreaker","tirizene");
dispensable_reagents = list(/datum/reagent/water,/datum/reagent/consumable/ice,/datum/reagent/consumable/coffee,/datum/reagent/consumable/cream,/datum/reagent/consumable/tea,/datum/reagent/consumable/icetea,/datum/reagent/consumable/cola,/datum/reagent/consumable/spacemountainwind,/datum/reagent/consumable/dr_gibb,/datum/reagent/consumable/space_up,/datum/reagent/consumable/tonic,/datum/reagent/consumable/sodawater,/datum/reagent/consumable/lemon_lime,/datum/reagent/consumable/pwr_game,/datum/reagent/consumable/shamblers,/datum/reagent/consumable/sugar,/datum/reagent/consumable/orangejuice,/datum/reagent/consumable/grenadine,/datum/reagent/consumable/limejuice,/datum/reagent/consumable/tomatojuice,/datum/reagent/consumable/lemonjuice,/datum/reagent/consumable/menthol,/datum/reagent/consumable/thirteenloko,/datum/reagent/consumable/whiskeycola,/datum/reagent/toxin/mindbreaker,/datum/reagent/toxin/staminatoxin);
emagged_reagents = null;
name = "Exotic soda dispenser"
},

View File

@@ -59,4 +59,4 @@
#define TRACKER_MINDSHIELD_TIME 1200
#define TRACKER_AWAKENED_TIME 3000
#define TRACKER_BONUS_LARGE 300
#define TRACKER_BONUS_SMALL 100
#define TRACKER_BONUS_SMALL 100

View File

@@ -41,4 +41,4 @@
#define BANISH_FUNERAL_GARB "funeral"
#define LORE 1
#define LAW 2
#define LAW 2

View File

@@ -70,6 +70,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
#define ishumanbasic(A) (is_species(A, /datum/species/human))
#define iscatperson(A) (ishumanbasic(A) && istype(A.dna.species, /datum/species/human/felinid) )
#define isethereal(A) (is_species(A, /datum/species/ethereal))
#define isvampire(A) (is_species(A,/datum/species/vampire))
//more carbon mobs
#define ismonkey(A) (istype(A, /mob/living/carbon/monkey))

View File

@@ -56,7 +56,7 @@ SUBSYSTEM_DEF(economy)
return ..()
/datum/controller/subsystem/economy/fire(resumed = 0)
boring_eng_payout() // Payout based on integrity.
boring_eng_payout() // Payout based on nothing. What will replace it? Surplus power, powered APC's, air alarms? Who knows.
boring_sci_payout() // Payout based on slimes.
boring_secmedsrv_payout() // Payout based on crew safety, health, and mood.
boring_civ_payout() // Payout based on ??? Profit

View File

@@ -46,7 +46,7 @@
return
// No decay if formaldehyde in corpse or when the corpse is charred
if(C.reagents.has_reagent("formaldehyde", 15) || HAS_TRAIT(C, TRAIT_HUSK))
if(C.reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 15) || HAS_TRAIT(C, TRAIT_HUSK))
return
// Also no decay if corpse chilled or not organic/undead

View File

@@ -78,4 +78,4 @@
/datum/component/thermite/proc/attackby_react(datum/source, obj/item/thing, mob/user, params)
if(thing.is_hot())
thermite_melt(user)
thermite_melt(user)

View File

@@ -1415,4 +1415,3 @@
H.remove_quirk(T)
else
H.add_quirk(T,TRUE)

View File

@@ -103,7 +103,7 @@
if(!(spread_flags & DISEASE_SPREAD_AIRBORNE) && !force_spread)
return
if(affected_mob.reagents.has_reagent("spaceacillin") || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10)))
if(affected_mob.reagents.has_reagent(/datum/reagent/medicine/spaceacillin) || (affected_mob.satiety > 0 && prob(affected_mob.satiety/10)))
return
var/spread_range = 2

View File

@@ -34,10 +34,10 @@
// The order goes from easy to cure to hard to cure.
var/static/list/advance_cures = list(
"sodiumchloride", "sugar", "orangejuice",
"spaceacillin", "salglu_solution", "ethanol",
"leporazine", "synaptizine", "lipolicide",
"silver", "gold"
/datum/reagent/consumable/sodiumchloride, /datum/reagent/consumable/sugar, /datum/reagent/consumable/orangejuice,
/datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution, /datum/reagent/consumable/ethanol,
/datum/reagent/medicine/leporazine, /datum/reagent/medicine/synaptizine, /datum/reagent/toxin/lipolicide,
/datum/reagent/silver, /datum/reagent/gold
)
/*

View File

@@ -138,7 +138,7 @@ Bonus
var/get_damage = rand(15,21) * power
M.adjustOxyLoss(get_damage)
if(paralysis)
M.reagents.add_reagent_list(list("pancuronium" = 3, "sodium_thiopental" = 3))
M.reagents.add_reagent_list(list(/datum/reagent/toxin/pancuronium = 3, /datum/reagent/toxin/sodium_thiopental = 3))
return 1
/datum/symptom/asphyxiation/proc/Asphyxiate_death(mob/living/M, datum/disease/advance/A)

View File

@@ -156,7 +156,7 @@ Bonus
M.adjust_fire_stacks(get_stacks)
M.take_overall_damage(burn = get_stacks / 2, required_status = BODYPART_ORGANIC)
if(chems)
M.reagents.add_reagent("clf3", 2 * power)
M.reagents.add_reagent(/datum/reagent/clf3, 2 * power)
return 1
/datum/symptom/alkali/proc/Alkali_fire_stage_5(mob/living/M, datum/disease/advance/A)
@@ -164,5 +164,5 @@ Bonus
M.adjust_fire_stacks(get_stacks)
M.take_overall_damage(burn = get_stacks, required_status = BODYPART_ORGANIC)
if(chems)
M.reagents.add_reagent_list(list("napalm" = 4 * power, "clf3" = 4 * power))
M.reagents.add_reagent_list(list(/datum/reagent/napalm = 4 * power, /datum/reagent/clf3 = 4 * power))
return 1

View File

@@ -124,7 +124,7 @@ Bonus
var/get_damage = rand(6,10)
M.take_overall_damage(brute = get_damage, required_status = BODYPART_ORGANIC)
if(chems)
M.reagents.add_reagent_list(list("heparin" = 2, "lipolicide" = 2))
M.reagents.add_reagent_list(list(/datum/reagent/toxin/heparin = 2, /datum/reagent/toxin/lipolicide = 2))
if(zombie)
M.reagents.add_reagent("romerol", 1)
M.reagents.add_reagent(/datum/reagent/romerol, 1)
return 1

View File

@@ -118,7 +118,7 @@
/datum/symptom/heal/chem/Heal(mob/living/M, datum/disease/advance/A, actual_power)
for(var/datum/reagent/R in M.reagents.reagent_list) //Not just toxins!
M.reagents.remove_reagent(R.id, actual_power)
M.reagents.remove_reagent(R.type, actual_power)
if(food_conversion)
M.adjust_nutrition(0.3)
if(prob(2))
@@ -311,11 +311,11 @@
if(M.fire_stacks < 0)
M.fire_stacks = min(M.fire_stacks + 1 * absorption_coeff, 0)
. += power
if(M.reagents.has_reagent("holywater"))
M.reagents.remove_reagent("holywater", 0.5 * absorption_coeff)
if(M.reagents.has_reagent(/datum/reagent/water/holywater))
M.reagents.remove_reagent(/datum/reagent/water/holywater, 0.5 * absorption_coeff)
. += power * 0.75
else if(M.reagents.has_reagent("water"))
M.reagents.remove_reagent("water", 0.5 * absorption_coeff)
else if(M.reagents.has_reagent(/datum/reagent/water))
M.reagents.remove_reagent(/datum/reagent/water, 0.5 * absorption_coeff)
. += power * 0.5
/datum/symptom/heal/water/Heal(mob/living/carbon/M, datum/disease/advance/A, actual_power)
@@ -374,7 +374,7 @@
gases = environment.gases
if(gases["plasma"] && gases["plasma"][MOLES] > gases["plasma"][GAS_META][META_GAS_MOLES_VISIBLE]) //if there's enough plasma in the air to see
. += power * 0.5
if(M.reagents.has_reagent("plasma"))
if(M.reagents.has_reagent(/datum/reagent/toxin/plasma))
. += power * 0.75
/datum/symptom/heal/plasma/Heal(mob/living/carbon/M, datum/disease/advance/A, actual_power)

View File

@@ -44,10 +44,10 @@
if(A.stage >= 4)
M.drowsyness = max(0, M.drowsyness - 2)
if(M.reagents.has_reagent("mindbreaker"))
M.reagents.remove_reagent("mindbreaker", 5)
if(M.reagents.has_reagent("histamine"))
M.reagents.remove_reagent("histamine", 5)
if(M.reagents.has_reagent(/datum/reagent/toxin/mindbreaker))
M.reagents.remove_reagent(/datum/reagent/toxin/mindbreaker, 5)
if(M.reagents.has_reagent(/datum/reagent/toxin/histamine))
M.reagents.remove_reagent(/datum/reagent/toxin/histamine, 5)
M.hallucination = max(0, M.hallucination - 10)
if(A.stage >= 5)

View File

@@ -5,7 +5,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Ethanol"
cures = list("ethanol")
cures = list(/datum/reagent/consumable/ethanol)
agent = "Excess Lepidopticides"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
desc = "If left untreated subject will regurgitate butterflies."

View File

@@ -5,7 +5,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Sugar"
cures = list("sugar")
cures = list(/datum/reagent/consumable/sugar)
agent = "Apidae Infection"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
desc = "If left untreated subject will regurgitate bees."

View File

@@ -4,7 +4,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Mannitol"
cures = list("mannitol")
cures = list(/datum/reagent/medicine/mannitol)
agent = "Cryptococcus Cosmosis"
viable_mobtypes = list(/mob/living/carbon/human)
cure_chance = 15//higher chance to cure, since two reagents are required

View File

@@ -3,7 +3,7 @@
max_stages = 3
spread_text = "On contact" //Yogs
cure_text = "Rest & Spaceacillin"
cures = list("spaceacillin")
cures = list(/datum/reagent/medicine/spaceacillin)
agent = "XY-rhinovirus"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
permeability_mod = 0.5

View File

@@ -4,7 +4,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Common Cold Anti-bodies & Spaceacillin"
cures = list("spaceacillin")
cures = list(/datum/reagent/medicine/spaceacillin)
agent = "ICE9-rhinovirus"
viable_mobtypes = list(/mob/living/carbon/human)
desc = "If left untreated the subject will slow, as if partly frozen."

View File

@@ -8,7 +8,7 @@
viable_mobtypes = list(/mob/living/carbon/human)
desc = "If left untreated the subject will 'REDACTED'!" // yogsfixed this description cause it was causing issues
severity = "Dangerous!"
cures = list("rezadone")
cures = list(/datum/reagent/medicine/rezadone)
disease_flags = CAN_CARRY|CAN_RESIST
spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS
process_dead = TRUE

View File

@@ -4,7 +4,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Mutadone"
cures = list("mutadone")
cures = list(/datum/reagent/medicine/mutadone)
disease_flags = CAN_CARRY|CAN_RESIST|CURABLE
agent = "S4E1 retrovirus"
viable_mobtypes = list(/mob/living/carbon/human)

View File

@@ -4,7 +4,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Synaptizine & Sulfur"
cures = list("synaptizine","sulfur")
cures = list(/datum/reagent/medicine/synaptizine,/datum/reagent/sulfur)
agent = "Gravitokinetic Bipotential SADS-"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
desc = "If left untreated death will occur."

View File

@@ -3,7 +3,7 @@
max_stages = 3
spread_text = "Airborne"
cure_text = "Spaceacillin"
cures = list("spaceacillin")
cures = list(/datum/reagent/medicine/spaceacillin)
cure_chance = 10
agent = "H13N1 flu virion"
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)

View File

@@ -3,7 +3,7 @@
max_stages = 3
spread_text = "Airborne"
cure_text = "Spaceacillin & Anti-bodies to the common flu"
cures = list("spaceacillin")
cures = list(/datum/reagent/medicine/spaceacillin)
cure_chance = 10
agent = "1nqu1s1t10n flu virion"
viable_mobtypes = list(/mob/living/carbon/human)

View File

@@ -8,7 +8,7 @@
viable_mobtypes = list(/mob/living/carbon/human)
stage_prob = 1
disease_flags = CURABLE
cures = list("sodiumchloride", "mutadone")
cures = list(/datum/reagent/consumable/sodiumchloride, /datum/reagent/medicine/mutadone)
/datum/disease/gastrolosis/stage_act()
..()

View File

@@ -4,7 +4,7 @@
spread_text = "On contact"
spread_flags = DISEASE_SPREAD_BLOOD | DISEASE_SPREAD_CONTACT_SKIN | DISEASE_SPREAD_CONTACT_FLUIDS
cure_text = "Synaptizine & Sulfur"
cures = list("synaptizine","sulfur")
cures = list(/datum/reagent/medicine/synaptizine,/datum/reagent/sulfur)
cure_chance = 15//higher chance to cure, since two reagents are required
agent = "Gravitokinetic Bipotential SADS+"
viable_mobtypes = list(/mob/living/carbon/human)

View File

@@ -59,7 +59,7 @@
H.visible_message("<span class='userdanger'>[H] clutches at [H.p_their()] chest as if [H.p_their()] heart is stopping!</span>")
H.adjustStaminaLoss(60)
H.set_heartattack(TRUE)
H.reagents.add_reagent("corazone", 3) // To give the victim a final chance to shock their heart before losing consciousness
H.reagents.add_reagent(/datum/reagent/medicine/corazone, 3) // To give the victim a final chance to shock their heart before losing consciousness
cure()
else
cure()

View File

@@ -3,7 +3,7 @@
max_stages = 4
spread_text = "Airborne"
cure_text = "Iron"
cures = list("iron")
cures = list(/datum/reagent/iron)
agent = "Fukkos Miracos"
viable_mobtypes = list(/mob/living/carbon/human)
disease_flags = CAN_CARRY|CAN_RESIST|CURABLE

View File

@@ -5,7 +5,7 @@
spread_flags = DISEASE_SPREAD_SPECIAL
disease_flags = CURABLE
cure_text = "Holy Water."
cures = list("holywater")
cures = list(/datum/reagent/water/holywater)
cure_chance = 20
agent = "Avian Vengence"
viable_mobtypes = list(/mob/living/carbon/human)

View File

@@ -3,7 +3,7 @@
max_stages = 4
spread_text = "Airborne"
cure_text = "Banana products, especially banana bread."
cures = list("banana")
cures = list(/datum/reagent/consumable/banana)
cure_chance = 75
agent = "H0NI<42 Virus"
viable_mobtypes = list(/mob/living/carbon/human)

View File

@@ -17,7 +17,7 @@
..()
agent = "Virus class [pick("A","B","C","D","E","F")][pick("A","B","C","D","E","F")]-[rand(50,300)]"
if(prob(40))
cures = list("mutadone")
cures = list(/datum/reagent/medicine/mutadone)
else
restcure = 1

View File

@@ -93,7 +93,7 @@
/datum/disease/transformation/jungle_fever
name = "Jungle Fever"
cure_text = "Death."
cures = list("adminordrazine")
cures = list(/datum/reagent/medicine/adminordrazine)
spread_text = "Monkey Bites"
spread_flags = DISEASE_SPREAD_SPECIAL
viable_mobtypes = list(/mob/living/carbon/monkey, /mob/living/carbon/human)
@@ -156,7 +156,7 @@
name = "Robotic Transformation"
cure_text = "An injection of copper."
cures = list("copper")
cures = list(/datum/reagent/copper)
cure_chance = 5
agent = "R2D2 Nanomachines"
desc = "This disease, actually acute nanomachine infection, converts the victim into a cyborg."
@@ -189,7 +189,7 @@
name = "Xenomorph Transformation"
cure_text = "Spaceacillin & Glycerol"
cures = list("spaceacillin", "glycerol")
cures = list(/datum/reagent/medicine/spaceacillin, /datum/reagent/glycerol)
cure_chance = 5
agent = "Rip-LEY Alien Microbes"
desc = "This disease changes the victim into a xenomorph."
@@ -218,7 +218,7 @@
/datum/disease/transformation/slime
name = "Advanced Mutation Transformation"
cure_text = "frost oil"
cures = list("frostoil")
cures = list(/datum/reagent/consumable/frostoil)
cure_chance = 80
agent = "Advanced Mutation Toxin"
desc = "This highly concentrated extract converts anything into more of itself."
@@ -247,7 +247,7 @@
/datum/disease/transformation/corgi
name = "The Barkening"
cure_text = "Death"
cures = list("adminordrazine")
cures = list(/datum/reagent/medicine/adminordrazine)
agent = "Fell Doge Majicks"
desc = "This disease transforms the victim into a corgi."
severity = DISEASE_SEVERITY_BIOHAZARD
@@ -271,8 +271,8 @@
/datum/disease/transformation/morph
name = "Gluttony's Blessing"
cure_text = "Unknown" //Yogs - changed "nothing" to "unknown"
cures = list("adminordrazine")
cure_text = /datum/reagent/consumable/nothing
cures = list(/datum/reagent/medicine/adminordrazine)
agent = "Gluttony's Blessing"
desc = "A 'gift' from somewhere terrible."
stage_prob = 20
@@ -289,7 +289,7 @@
/datum/disease/transformation/gondola
name = "Gondola Transformation"
cure_text = "Condensed Capsaicin, ingested or injected." //getting pepper sprayed doesn't help
cures = list("condensedcapsaicin") //beats the hippie crap right out of your system
cures = list(/datum/reagent/consumable/condensedcapsaicin) //beats the hippie crap right out of your system
cure_chance = 80
stage_prob = 5
agent = "Tranquility"
@@ -310,17 +310,17 @@
if (prob(5))
affected_mob.emote("smile")
if (prob(20))
affected_mob.reagents.add_reagent_list(list("pax" = 5))
affected_mob.reagents.add_reagent_list(list(/datum/reagent/pax = 5))
if(3)
if (prob(5))
affected_mob.emote("smile")
if (prob(20))
affected_mob.reagents.add_reagent_list(list("pax" = 5))
affected_mob.reagents.add_reagent_list(list(/datum/reagent/pax = 5))
if(4)
if (prob(5))
affected_mob.emote("smile")
if (prob(20))
affected_mob.reagents.add_reagent_list(list("pax" = 5))
affected_mob.reagents.add_reagent_list(list(/datum/reagent/pax = 5))
if (prob(2))
to_chat(affected_mob, "<span class='danger'>You let go of what you were holding.</span>")
var/obj/item/I = affected_mob.get_active_held_item()

View File

@@ -4,7 +4,7 @@
max_stages = 5
spread_text = "Airborne"
cure_text = "Spaceacillin & salbutamol"
cures = list("spaceacillin", "salbutamol")
cures = list(/datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salbutamol)
agent = "Fungal Tubercle bacillus Cosmosis"
viable_mobtypes = list(/mob/living/carbon/human)
cure_chance = 5//like hell are you getting out of hell

View File

@@ -3,7 +3,7 @@
max_stages = 4
spread_text = "Airborne"
cure_text = "The Manly Dorf"
cures = list("manlydorf")
cures = list(/datum/reagent/consumable/ethanol/manly_dorf)
cure_chance = 100
agent = "Rincewindus Vulgaris"
viable_mobtypes = list(/mob/living/carbon/human)

View File

@@ -34,7 +34,7 @@
* */
/datum/recipe
var/list/reagents_list // example: = list("berryjuice" = 5) // do not list same reagent twice
var/list/reagents_list // example: = list(/datum/reagent/consumable/berryjuice = 5) // do not list same reagent twice
var/list/items // example: =list(/obj/item/crowbar, /obj/item/welder) // place /foo/bar before /foo
var/result //example: = /obj/item/reagent_containers/food/snacks/donut
var/time = 100 // 1/10 part of second
@@ -88,7 +88,7 @@
var/obj/result_obj = new result(container)
for (var/obj/O in (container.contents-result_obj))
if (O.reagents)
O.reagents.del_reagent("nutriment")
O.reagents.del_reagent(/datum/reagent/consumable/nutriment)
O.reagents.update_total()
O.reagents.trans_to(result_obj, O.reagents.total_volume)
qdel(O)

View File

@@ -485,7 +485,7 @@
else
owner.visible_message("[owner]'s soul is absorbed into the rod, relieving the previous snake of its duty.")
var/mob/living/simple_animal/hostile/retaliate/poison/snake/healSnake = new(owner.loc)
var/list/chems = list("bicaridine", "salbutamol", "kelotane", "antitoxin")
var/list/chems = list(/datum/reagent/medicine/bicaridine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/antitoxin)
healSnake.poison_type = pick(chems)
healSnake.name = "Asclepius's Snake"
healSnake.real_name = "Asclepius's Snake"

View File

@@ -355,7 +355,7 @@
/datum/status_effect/cultghost/tick()
if(owner.reagents)
owner.reagents.del_reagent("holywater") //can't be deconverted
owner.reagents.del_reagent(/datum/reagent/water/holywater) //can't be deconverted
/datum/status_effect/crusher_mark
id = "crusher_mark"

View File

@@ -375,7 +375,7 @@
medical_record_text = "Patient suffers from acute Reality Dissociation Syndrome and experiences vivid hallucinations."
/datum/quirk/insanity/on_process()
if(quirk_holder.reagents.has_reagent("mindbreaker"))
if(quirk_holder.reagents.has_reagent(/datum/reagent/toxin/mindbreaker))
quirk_holder.hallucination = 0
return
if(prob(2)) //we'll all be mad soon enough
@@ -424,7 +424,7 @@
gain_text = "<span class='danger'>You suddenly feel the craving for drugs.</span>"
lose_text = "<span class='notice'>You feel like you should kick your drug habit.</span>"
medical_record_text = "Patient has a history of hard drugs."
var/drug_list = list("crank", "krokodil", "morphine", "happiness", "methamphetamine") //List of possible IDs
var/drug_list = list(/datum/reagent/drug/crank, /datum/reagent/drug/krokodil, /datum/reagent/medicine/morphine, /datum/reagent/drug/happiness, /datum/reagent/drug/methamphetamine) //List of possible IDs
var/reagent_id //ID picked from list
var/datum/reagent/reagent_type //If this is defined, reagent_id will be unused and the defined reagent type will be instead.
var/datum/reagent/reagent_instance

View File

@@ -333,12 +333,12 @@
//returns the mob's dna info as a list, to be inserted in an object's blood_DNA list
/mob/living/proc/get_blood_dna_list()
if(get_blood_id() != "blood")
if(get_blood_id() != /datum/reagent/blood)
return
return list("ANIMAL DNA" = "Y-")
/mob/living/carbon/get_blood_dna_list()
if(get_blood_id() != "blood")
if(get_blood_id() != /datum/reagent/blood)
return
var/list/blood_dna = list()
if(dna)

View File

@@ -8,7 +8,7 @@
spray_range = 1
stream_range = 1
volume = 30
list_reagents = list("lube" = 30)
list_reagents = list(/datum/reagent/lube = 30)
//COMBAT CLOWN SHOES
//Clown shoes with combat stats and noslip. Of course they still squeak.
@@ -166,7 +166,7 @@
customfoodfilling = FALSE
seed = null
tastes = list("explosives" = 10)
list_reagents = list("vitamin" = 1)
list_reagents = list(/datum/reagent/consumable/nutriment/vitamin = 1)
/obj/item/grown/bananapeel/bombanana
desc = "A peel from a banana. Why is it beeping?"

View File

@@ -17,10 +17,10 @@
var/list/available_chems
var/controls_inside = FALSE
var/list/possible_chems = list(
list("epinephrine", "morphine", "salbutamol", "bicaridine", "kelotane"),
list("oculine","inacusiate"),
list("antitoxin", "mutadone", "mannitol", "pen_acid"),
list("omnizine")
list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/morphine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/kelotane),
list(/datum/reagent/medicine/oculine,/datum/reagent/medicine/inacusiate),
list(/datum/reagent/medicine/antitoxin, /datum/reagent/medicine/mutadone, /datum/reagent/medicine/mannitol, /datum/reagent/medicine/pen_acid),
list(/datum/reagent/medicine/omnizine)
)
var/list/chem_buttons //Used when emagged to scramble which chem is used, eg: antitoxin -> morphine
var/scrambled_chems = FALSE //Are chem buttons scrambled? used as a warning
@@ -162,7 +162,7 @@
data["chems"] = list()
for(var/chem in available_chems)
var/datum/reagent/R = GLOB.chemical_reagents_list[chem]
data["chems"] += list(list("name" = R.name, "id" = R.id, "allowed" = chem_allowed(chem)))
data["chems"] += list(list("name" = R.name, "id" = ckey(R.name), "allowed" = chem_allowed(chem)))
data["occupant"] = list()
var/mob/living/mob_occupant = occupant
@@ -212,7 +212,7 @@
var/chem = params["chem"]
if(!is_operational() || !mob_occupant)
return
if(mob_occupant.health < min_health && chem != "epinephrine")
if(mob_occupant.health < min_health && chem != /datum/reagent/medicine/epinephrine)
return
if(inject_chem(chem, usr))
. = TRUE
@@ -235,7 +235,7 @@
if(!mob_occupant || !mob_occupant.reagents)
return
var/amount = mob_occupant.reagents.get_reagent_amount(chem) + 10 <= 20 * efficiency
var/occ_health = mob_occupant.health > min_health || chem == "epinephrine"
var/occ_health = mob_occupant.health > min_health || chem == /datum/reagent/medicine/epinephrine
return amount && occ_health
/obj/machinery/sleeper/proc/reset_chem_buttons()
@@ -271,7 +271,7 @@
desc = "A large cryogenics unit built from brass. Its surface is pleasantly cool the touch."
icon_state = "sleeper_clockwork"
enter_message = "<span class='bold inathneq_small'>You hear the gentle hum and click of machinery, and are lulled into a sense of peace.</span>"
possible_chems = list(list("epinephrine", "salbutamol", "bicaridine", "kelotane", "oculine", "inacusiate", "mannitol"))
possible_chems = list(list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/oculine, /datum/reagent/medicine/inacusiate, /datum/reagent/medicine/mannitol))
/obj/machinery/sleeper/clockwork/process()
if(occupant && isliving(occupant))

View File

@@ -88,7 +88,7 @@
selected_category = href_list["category"]
if(href_list["disposeI"]) //Get rid of a reagent incase you add the wrong one by mistake
reagents.del_reagent(href_list["disposeI"])
reagents.del_reagent(text2path(href_list["disposeI"]))
if(href_list["make"])
@@ -99,10 +99,10 @@
return
var/synth_cost = being_built.reagents_list["synthflesh"]*prod_coeff
var/synth_cost = being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff
var/power = max(2000, synth_cost/5)
if(reagents.has_reagent("synthflesh", being_built.reagents_list["synthflesh"]*prod_coeff))
if(reagents.has_reagent(/datum/reagent/medicine/synthflesh, being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff))
busy = TRUE
use_power(power)
flick("limbgrower_fill",src)
@@ -116,8 +116,8 @@
return
/obj/machinery/limbgrower/proc/build_item()
if(reagents.has_reagent("synthflesh", being_built.reagents_list["synthflesh"]*prod_coeff)) //sanity check, if this happens we are in big trouble
reagents.remove_reagent("synthflesh",being_built.reagents_list["synthflesh"]*prod_coeff)
if(reagents.has_reagent(/datum/reagent/medicine/synthflesh, being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff)) //sanity check, if this happens we are in big trouble
reagents.remove_reagent(/datum/reagent/medicine/synthflesh,being_built.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff)
var/buildpath = being_built.build_path
if(ispath(buildpath, /obj/item/bodypart)) //This feels like spatgheti code, but i need to initilise a limb somehow
build_limb(buildpath)
@@ -202,7 +202,7 @@
for(var/datum/reagent/R in reagents.reagent_list)
dat += "[R.name]: [R.volume]"
dat += "<A href='?src=[REF(src)];disposeI=[R.id]'>Purge</A><BR>"
dat += "<A href='?src=[REF(src)];disposeI=[R]'>Purge</A><BR>"
dat += "</div>"
return dat
@@ -212,12 +212,12 @@
return dat
/obj/machinery/limbgrower/proc/can_build(datum/design/D)
return (reagents.has_reagent("synthflesh", D.reagents_list["synthflesh"]*prod_coeff)) //Return whether the machine has enough synthflesh to produce the design
return (reagents.has_reagent(/datum/reagent/medicine/synthflesh, D.reagents_list[/datum/reagent/medicine/synthflesh]*prod_coeff)) //Return whether the machine has enough synthflesh to produce the design
/obj/machinery/limbgrower/proc/get_design_cost(datum/design/D)
var/dat
if(D.reagents_list["synthflesh"])
dat += "[D.reagents_list["synthflesh"] * prod_coeff] Synthetic flesh "
if(D.reagents_list[/datum/reagent/medicine/synthflesh])
dat += "[D.reagents_list[/datum/reagent/medicine/synthflesh] * prod_coeff] Synthetic flesh "
return dat
/obj/machinery/limbgrower/emag_act(mob/user)

View File

@@ -193,11 +193,11 @@
if(!R || !patient || !SG || !(SG in chassis.equipment))
return 0
var/to_inject = min(R.volume, inject_amount)
if(to_inject && patient.reagents.get_reagent_amount(R.id) + to_inject <= inject_amount*2)
if(to_inject && patient.reagents.get_reagent_amount(R.type) + to_inject <= inject_amount*2)
occupant_message("Injecting [patient] with [to_inject] units of [R.name].")
log_message("Injecting [patient] with [to_inject] units of [R.name].", LOG_MECHA)
log_combat(chassis.occupant, patient, "injected", "[name] ([R] - [to_inject] units)")
SG.reagents.trans_id_to(patient,R.id,to_inject)
SG.reagents.trans_id_to(patient,R.type,to_inject)
update_equip_info()
return
@@ -232,8 +232,8 @@
M.AdjustParalyzed(-80)
M.AdjustImmobilized(-80)
M.AdjustUnconscious(-80)
if(M.reagents.get_reagent_amount("epinephrine") < 5)
M.reagents.add_reagent("epinephrine", 5)
if(M.reagents.get_reagent_amount(/datum/reagent/medicine/epinephrine) < 5)
M.reagents.add_reagent(/datum/reagent/medicine/epinephrine, 5)
chassis.use_power(energy_drain)
update_equip_info()
@@ -263,7 +263,7 @@
. = ..()
create_reagents(max_volume, NO_REACT)
syringes = new
known_reagents = list("epinephrine"="Epinephrine","charcoal"="Charcoal")
known_reagents = list(/datum/reagent/medicine/epinephrine="Epinephrine",/datum/reagent/medicine/charcoal="Charcoal")
processed_reagents = new
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/detach()
@@ -329,8 +329,7 @@
if(M.can_inject(null, 1))
if(mechsyringe.reagents)
for(var/datum/reagent/A in mechsyringe.reagents.reagent_list)
R += A.id + " ("
R += num2text(A.volume) + "),"
R += "[A.name] ([num2text(A.volume)]"
mechsyringe.icon_state = initial(mechsyringe.icon_state)
mechsyringe.icon = initial(mechsyringe.icon)
mechsyringe.reagents.reaction(M, INJECT)
@@ -443,7 +442,7 @@
var/output
for(var/datum/reagent/R in reagents.reagent_list)
if(R.volume > 0)
output += "[R]: [round(R.volume,0.001)] - <a href=\"?src=[REF(src)];purge_reagent=[R.id]\">Purge Reagent</a><br />"
output += "[R]: [round(R.volume,0.001)] - <a href=\"?src=[REF(src)];purge_reagent=[R]\">Purge Reagent</a><br />"
if(output)
output += "Total: [round(reagents.total_volume,0.001)]/[reagents.maximum_volume] - <a href=\"?src=[REF(src)];purge_all=1\">Purge All</a>"
return output || "None"
@@ -479,7 +478,7 @@
return 0
occupant_message("Analyzing reagents...")
for(var/datum/reagent/R in A.reagents.reagent_list)
if(R.can_synth && add_known_reagent(R.id,R.name))
if(R.can_synth && add_known_reagent(R.type,R.name))
occupant_message("Reagent analyzed, identified as [R.name] and added to database.")
send_byjax(chassis.occupant,"msyringegun.browser","reagents_form",get_reagents_form())
occupant_message("Analyzis complete.")

View File

@@ -177,7 +177,7 @@
/obj/item/mecha_parts/mecha_equipment/extinguisher/Initialize()
. = ..()
create_reagents(1000)
reagents.add_reagent("water", 1000)
reagents.add_reagent(/datum/reagent/water, 1000)
/obj/item/mecha_parts/mecha_equipment/extinguisher/action(atom/target) //copypasted from extinguisher. TODO: Rewrite from scratch.
if(!action_checks(target) || get_dist(chassis, target)>3)

View File

@@ -266,10 +266,10 @@
/obj/mecha/proc/mech_toxin_damage(mob/living/target)
playsound(src, 'sound/effects/spray2.ogg', 50, 1)
if(target.reagents)
if(target.reagents.get_reagent_amount("cryptobiolin") + force < force*2)
target.reagents.add_reagent("cryptobiolin", force/2)
if(target.reagents.get_reagent_amount("toxin") + force < force*2)
target.reagents.add_reagent("toxin", force/2.5)
if(target.reagents.get_reagent_amount(/datum/reagent/cryptobiolin) + force < force*2)
target.reagents.add_reagent(/datum/reagent/cryptobiolin, force/2)
if(target.reagents.get_reagent_amount(/datum/reagent/toxin) + force < force*2)
target.reagents.add_reagent(/datum/reagent/toxin, force/2.5)
/obj/mecha/mech_melee_attack(obj/mecha/M)

View File

@@ -57,7 +57,7 @@
/obj/effect/decal/cleanable/blood/gibs/Initialize(mapload, list/datum/disease/diseases)
. = ..()
reagents.add_reagent("liquidgibs", 5)
reagents.add_reagent(/datum/reagent/liquidgibs, 5)
if(already_rotting)
start_rotting(rename=FALSE)
else

View File

@@ -13,7 +13,7 @@
/obj/effect/decal/cleanable/ash/Initialize()
. = ..()
reagents.add_reagent("ash", 30)
reagents.add_reagent(/datum/reagent/ash, 30)
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
@@ -27,7 +27,7 @@
/obj/effect/decal/cleanable/ash/large/Initialize()
. = ..()
reagents.add_reagent("ash", 30) //double the amount of ash.
reagents.add_reagent(/datum/reagent/ash, 30) //double the amount of ash.
/obj/effect/decal/cleanable/glass
name = "tiny shards"
@@ -84,7 +84,7 @@
/obj/effect/decal/cleanable/greenglow/filled/Initialize()
. = ..()
reagents.add_reagent(pick("uranium", "radium"), 5)
reagents.add_reagent(pick(/datum/reagent/uranium, /datum/reagent/uranium/radium), 5)
/obj/effect/decal/cleanable/cobweb
name = "cobweb"
@@ -132,7 +132,7 @@
var/datum/reagent/consumable/nutri_check = R
if(nutri_check.nutriment_factor >0)
H.adjust_nutrition(nutri_check.nutriment_factor * nutri_check.volume)
reagents.remove_reagent(nutri_check.id,nutri_check.volume)
reagents.remove_reagent(nutri_check.type,nutri_check.volume)
reagents.trans_to(H, reagents.total_volume, transfered_by = user)
qdel(src)

View File

@@ -52,7 +52,7 @@
/obj/effect/decal/cleanable/oil/Initialize()
. = ..()
reagents.add_reagent("oil", 30)
reagents.add_reagent(/datum/reagent/oil, 30)
/obj/effect/decal/cleanable/oil/attackby(obj/item/I, mob/living/user)
var/attacked_by_hot_thing = I.is_hot()

View File

@@ -54,7 +54,7 @@
var/obj/effect/decal/cleanable/plasma/P = (locate(/obj/effect/decal/cleanable/plasma) in get_turf(src))
if(!P)
P = new(loc)
P.reagents.add_reagent("stable_plasma", absorbed_plasma)
P.reagents.add_reagent(/datum/reagent/stable_plasma, absorbed_plasma)
flick("[icon_state]-disolve", src)
QDEL_IN(src, 5)

View File

@@ -137,7 +137,7 @@
victim.put_in_hands(chainsaw, forced = TRUE)
chainsaw.attack_self(victim)
chainsaw.wield(victim)
victim.reagents.add_reagent("adminordrazine",25)
victim.reagents.add_reagent(/datum/reagent/medicine/adminordrazine,25)
to_chat(victim, "<span class='warning'>KILL, KILL, KILL! YOU HAVE NO ALLIES ANYMORE, KILL THEM ALL!</span>")
victim.client.color = pure_red

View File

@@ -41,7 +41,7 @@
layer = FLY_LAYER
/obj/effect/supplypod_selector
icon_state = "supplypod_selector"
icon_state = "supplypod_selector"
layer = FLY_LAYER
//Makes a tile fully lit no matter what

View File

@@ -55,7 +55,7 @@
var/amount_grown = 0
var/player_spiders = 0
var/directive = "" //Message from the mother
var/poison_type = "toxin"
var/poison_type = /datum/reagent/toxin
var/poison_per_bite = 5
var/list/faction = list("spiders")

View File

@@ -173,7 +173,7 @@ RSF
to_chat(user, "Fabricating Cookie..")
var/obj/item/reagent_containers/food/snacks/cookie/S = new /obj/item/reagent_containers/food/snacks/cookie(T)
if(toxin)
S.reagents.add_reagent("chloralhydratedelayed", 10)
S.reagents.add_reagent(/datum/reagent/toxin/chloralhydrate, 10)
if (iscyborg(user))
var/mob/living/silicon/robot/R = user
R.cell.charge -= 100

View File

@@ -68,7 +68,7 @@
// make some colorful reagent, and apply it to the lungs
L.create_reagents(10)
L.reagents.add_reagent("colorful_reagent", 10)
L.reagents.add_reagent(/datum/reagent/colorful_reagent, 10)
L.reagents.reaction(L, TOUCH, 1)
// TODO maybe add some colorful vomit?
@@ -81,7 +81,7 @@
return (TOXLOSS|OXYLOSS)
else if(can_use(user) && !L)
user.visible_message("<span class='suicide'>[user] is spraying toner on [user.p_them()]self from [src]! It looks like [user.p_theyre()] trying to commit suicide.</span>")
user.reagents.add_reagent("colorful_reagent", 1)
user.reagents.add_reagent(/datum/reagent/colorful_reagent, 1)
user.reagents.reaction(user, TOUCH, 1)
return TOXLOSS

View File

@@ -120,4 +120,4 @@
flags_1 = CONDUCT_1
w_class = WEIGHT_CLASS_SMALL
materials = list(MAT_METAL=50, MAT_GLASS=50)
grind_results = list("iron" = 10, "silicon" = 10)
grind_results = list(/datum/reagent/iron = 10, /datum/reagent/silicon = 10)

View File

@@ -25,7 +25,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/smoketime = 5 // 10 seconds
w_class = WEIGHT_CLASS_TINY
heat = 1000
grind_results = list("phosphorus" = 2)
grind_results = list(/datum/reagent/phosphorus = 2)
/obj/item/match/process()
smoketime--
@@ -119,7 +119,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/lastHolder = null
var/smoketime = 180 // 1 is 2 seconds, so a single cigarette will last 6 minutes.
var/chem_volume = 30
var/list/list_reagents = list("nicotine" = 15)
var/list/list_reagents = list(/datum/reagent/drug/nicotine = 15)
/obj/item/clothing/mask/cigarette/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is huffing [src] as quickly as [user.p_they()] can! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer.</span>")
@@ -174,15 +174,15 @@ CIGARETTE PACKETS ARE IN FANCY.DM
hitsound = 'sound/items/welder.ogg'
damtype = "fire"
force = 4
if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire
if(reagents.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire
var/datum/effect_system/reagents_explosion/e = new()
e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0)
e.set_up(round(reagents.get_reagent_amount(/datum/reagent/toxin/plasma) / 2.5, 1), get_turf(src), 0, 0)
e.start()
qdel(src)
return
if(reagents.get_reagent_amount("welding_fuel")) // the fuel explodes, too, but much less violently
if(reagents.get_reagent_amount(/datum/reagent/fuel)) // the fuel explodes, too, but much less violently
var/datum/effect_system/reagents_explosion/e = new()
e.set_up(round(reagents.get_reagent_amount("welding_fuel") / 5, 1), get_turf(src), 0, 0)
e.set_up(round(reagents.get_reagent_amount(/datum/reagent/fuel) / 5, 1), get_turf(src), 0, 0)
e.start()
qdel(src)
return
@@ -291,29 +291,29 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/cigarette/uplift
desc = "An Uplift Smooth brand cigarette."
list_reagents = list("nicotine" = 13, "menthol" = 5)
list_reagents = list(/datum/reagent/drug/nicotine = 13, /datum/reagent/consumable/menthol = 5)
/obj/item/clothing/mask/cigarette/robust
desc = "A Robust brand cigarette."
/obj/item/clothing/mask/cigarette/robustgold
desc = "A Robust Gold brand cigarette."
list_reagents = list("nicotine" = 15, "gold" = 3) // Just enough to taste a hint of expensive metal.
list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/gold = 3) // Just enough to taste a hint of expensive metal.
/obj/item/clothing/mask/cigarette/carp
desc = "A Carp Classic brand cigarette."
/obj/item/clothing/mask/cigarette/syndicate
desc = "An unknown brand cigarette."
list_reagents = list("nicotine" = 15, "omnizine" = 15)
list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/medicine/omnizine = 15)
/obj/item/clothing/mask/cigarette/shadyjims
desc = "A Shady Jim's Super Slims cigarette."
list_reagents = list("nicotine" = 15, "lipolicide" = 4, "ammonia" = 2, "plantbgone" = 1, "toxin" = 1.5)
list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/toxin/lipolicide = 4, /datum/reagent/ammonia = 2, /datum/reagent/toxin/plantbgone = 1, /datum/reagent/toxin = 1.5)
/obj/item/clothing/mask/cigarette/xeno
desc = "A Xeno Filtered brand cigarette."
list_reagents = list ("nicotine" = 20, "regen_jelly" = 15, "krokodil" = 4)
list_reagents = list (/datum/reagent/drug/nicotine = 20, /datum/reagent/medicine/regen_jelly = 15, /datum/reagent/drug/krokodil = 4)
// Rollies.
@@ -336,17 +336,17 @@ CIGARETTE PACKETS ARE IN FANCY.DM
pixel_y = rand(-5, 5)
/obj/item/clothing/mask/cigarette/rollie/nicotine
list_reagents = list("nicotine" = 15)
list_reagents = list(/datum/reagent/drug/nicotine = 15)
/obj/item/clothing/mask/cigarette/rollie/trippy
list_reagents = list("nicotine" = 15, "mushroomhallucinogen" = 35)
list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/drug/mushroomhallucinogen = 35)
starts_lit = TRUE
/obj/item/clothing/mask/cigarette/rollie/cannabis
list_reagents = list("space_drugs" = 15, "lipolicide" = 35)
list_reagents = list(/datum/reagent/drug/space_drugs = 15, /datum/reagent/toxin/lipolicide = 35)
/obj/item/clothing/mask/cigarette/rollie/mindbreaker
list_reagents = list("mindbreaker" = 35, "lipolicide" = 15)
list_reagents = list(/datum/reagent/toxin/mindbreaker = 35, /datum/reagent/toxin/lipolicide = 15)
/obj/item/cigbutt/roach
name = "roach"
@@ -373,7 +373,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
item_state = "cigaroff"
smoketime = 300 // 11 minutes
chem_volume = 40
list_reagents = list("nicotine" = 25)
list_reagents = list(/datum/reagent/drug/nicotine = 25)
/obj/item/clothing/mask/cigarette/cigar/cohiba
name = "\improper Cohiba Robusto cigar"
@@ -383,7 +383,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_off = "cigar2off"
smoketime = 600 // 20 minutes
chem_volume = 80
list_reagents =list("nicotine" = 40)
list_reagents =list(/datum/reagent/drug/nicotine = 40)
/obj/item/clothing/mask/cigarette/cigar/havana
name = "premium Havanian cigar"
@@ -393,7 +393,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_off = "cigar2off"
smoketime = 900 // 30 minutes
chem_volume = 50
list_reagents =list("nicotine" = 15)
list_reagents =list(/datum/reagent/drug/nicotine = 15)
/obj/item/cigbutt
name = "cigarette butt"
@@ -402,7 +402,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_state = "cigbutt"
w_class = WEIGHT_CLASS_TINY
throwforce = 0
grind_results = list("carbon" = 2)
grind_results = list(/datum/reagent/carbon = 2)
/obj/item/cigbutt/cigarbutt
name = "cigar butt"
@@ -531,7 +531,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
heat = 1500
resistance_flags = FIRE_PROOF
light_color = LIGHT_COLOR_FIRE
grind_results = list("iron" = 1, "welding_fuel" = 5, "oil" = 5)
grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/oil = 5)
/obj/item/lighter/Initialize()
. = ..()
@@ -698,7 +698,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
heat = 3000 //Blue flame!
light_color = LIGHT_COLOR_CYAN
overlay_state = "slime"
grind_results = list("iron" = 1, "welding_fuel" = 5, "pyroxadone" = 5)
grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/medicine/pyroxadone = 5)
///////////
@@ -752,7 +752,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/vape/Initialize(mapload, param_color)
. = ..()
create_reagents(chem_volume, NO_REACT)
reagents.add_reagent("nicotine", 50)
reagents.add_reagent(/datum/reagent/drug/nicotine, 50)
if(!icon_state)
if(!param_color)
param_color = pick("red","blue","black","white","green","purple","yellow","orange")
@@ -841,14 +841,14 @@ CIGARETTE PACKETS ARE IN FANCY.DM
reagents.reaction(C, INGEST, fraction)
if(!reagents.trans_to(C, REAGENTS_METABOLISM))
reagents.remove_any(REAGENTS_METABOLISM)
if(reagents.get_reagent_amount("welding_fuel"))
if(reagents.get_reagent_amount(/datum/reagent/fuel))
//HOT STUFF
C.fire_stacks = 2
C.IgniteMob()
if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire
if(reagents.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire
var/datum/effect_system/reagents_explosion/e = new()
e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0)
e.set_up(round(reagents.get_reagent_amount(/datum/reagent/toxin/plasma) / 2.5, 1), get_turf(src), 0, 0)
e.start()
qdel(src)
return

View File

@@ -12,7 +12,7 @@
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
materials = list(MAT_GLASS=1000)
w_class = WEIGHT_CLASS_SMALL
grind_results = list("silicon" = 20)
grind_results = list(/datum/reagent/silicon = 20)
var/build_path = null
/obj/item/circuitboard/proc/apply_default_parts(obj/machinery/M)

View File

@@ -1,209 +1,209 @@
/* Clown Items
* Contains:
* Soap
* Bike Horns
* Air Horns
* Canned Laughter
*/
/*
* Soap
*/
/obj/item/soap
name = "soap"
desc = "A cheap bar of soap. Doesn't smell."
gender = PLURAL
icon = 'icons/obj/items_and_weapons.dmi'
icon_state = "soap"
lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi'
w_class = WEIGHT_CLASS_TINY
item_flags = NOBLUDGEON
throwforce = 0
throw_speed = 3
throw_range = 7
grind_results = list("lye" = 10)
var/cleanspeed = 35 //slower than mop
force_string = "robust... against germs"
var/uses = 100
/obj/item/soap/ComponentInitialize()
. = ..()
AddComponent(/datum/component/slippery, 80)
/obj/item/soap/examine(mob/user)
. = ..()
var/max_uses = initial(uses)
var/msg = "It looks like it just came out of the package."
if(uses != max_uses)
var/percentage_left = uses / max_uses
switch(percentage_left)
if(0 to 0.15)
msg = "There's just a tiny bit left of what it used to be, you're not sure it'll last much longer."
if(0.15 to 0.30)
msg = "It's dissolved quite a bit, but there's still some life to it."
if(0.30 to 0.50)
msg = "It's past its prime, but it's definitely still good."
if(0.50 to 0.75)
msg = "It's started to get a little smaller than it used to be, but it'll definitely still last for a while."
else
msg = "It's seen some light use, but it's still pretty fresh."
to_chat(user, "<span class='notice'>[msg]</span>")
/obj/item/soap/nanotrasen
desc = "A heavy duty bar of Nanotrasen brand soap. Smells of plasma."
grind_results = list("plasma" = 10, "lye" = 10)
icon_state = "soapnt"
cleanspeed = 28 //janitor gets this
uses = 300
/obj/item/soap/homemade
desc = "A homemade bar of soap. Smells of... well...."
icon_state = "soapgibs"
cleanspeed = 30 // faster to reward chemists for going to the effort
/obj/item/soap/deluxe
desc = "A deluxe Waffle Co. brand bar of soap. Smells of high-class luxury."
icon_state = "soapdeluxe"
cleanspeed = 20 //captain gets one of these
/obj/item/soap/syndie
desc = "An untrustworthy bar of soap made of strong chemical agents that dissolve blood faster."
icon_state = "soapsyndie"
cleanspeed = 5 //faster than mop so it is useful for traitors who want to clean crime scenes
/obj/item/soap/suicide_act(mob/user)
user.say(";FFFFFFFFFFFFFFFFUUUUUUUDGE!!", forced="soap suicide")
user.visible_message("<span class='suicide'>[user] lifts [src] to [user.p_their()] mouth and gnaws on it furiously, producing a thick froth! [user.p_they(TRUE)]'ll never get that BB gun now!</span>")
new /obj/effect/particle_effect/foam(loc)
return (TOXLOSS)
/obj/item/soap/proc/decreaseUses(mob/user)
uses--
if(uses <= 0)
to_chat(user, "<span class='warning'>[src] crumbles into tiny bits!</span>")
qdel(src)
/obj/item/soap/afterattack(atom/target, mob/user, proximity)
. = ..()
if(!proximity || !check_allowed_items(target))
return
//I couldn't feasibly fix the overlay bugs caused by cleaning items we are wearing.
//So this is a workaround. This also makes more sense from an IC standpoint. ~Carn
if(user.client && ((target in user.client.screen) && !user.is_holding(target)))
to_chat(user, "<span class='warning'>You need to take that [target.name] off before cleaning it!</span>")
else if(istype(target, /obj/effect/decal/cleanable))
user.visible_message("[user] begins to scrub \the [target.name] out with [src].", "<span class='warning'>You begin to scrub \the [target.name] out with [src]...</span>")
if(do_after(user, src.cleanspeed, target = target))
to_chat(user, "<span class='notice'>You scrub \the [target.name] out.</span>")
qdel(target)
decreaseUses(user)
else if(ishuman(target) && user.zone_selected == BODY_ZONE_PRECISE_MOUTH)
var/mob/living/carbon/human/H = user
if(user.zone_selected == "mouth")
user.visible_message("<span class='warning'>\the [user] washes \the [target]'s mouth out with [src.name]!</span>", "<span class='notice'>You wash \the [target]'s mouth out with [src.name]!</span>") //washes mouth out with soap sounds better than 'the soap' here
H.lip_style = null //removes lipstick
H.adjust_hygiene(5) //it kinda works i guess
else
user.visible_message("<span class='warning'>\the [user] washes \the [target] with [src.name]!</span>", "<span class='notice'>You wash \the [target] with [src.name]!</span>")
H.adjust_hygiene(20)
H.update_body()
decreaseUses(user)
return
else if(istype(target, /obj/structure/window))
user.visible_message("[user] begins to clean \the [target.name] with [src]...", "<span class='notice'>You begin to clean \the [target.name] with [src]...</span>")
if(do_after(user, src.cleanspeed, target = target))
to_chat(user, "<span class='notice'>You clean \the [target.name].</span>")
target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
target.set_opacity(initial(target.opacity))
decreaseUses(user)
else
user.visible_message("[user] begins to clean \the [target.name] with [src]...", "<span class='notice'>You begin to clean \the [target.name] with [src]...</span>")
if(do_after(user, src.cleanspeed, target = target))
to_chat(user, "<span class='notice'>You clean \the [target.name].</span>")
for(var/obj/effect/decal/cleanable/C in target)
qdel(C)
target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
SEND_SIGNAL(target, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM)
target.wash_cream()
decreaseUses(user)
return
/*
* Bike Horns
*/
/obj/item/bikehorn
name = "bike horn"
desc = "A horn off of a bicycle."
icon = 'icons/obj/items_and_weapons.dmi'
icon_state = "bike_horn"
item_state = "bike_horn"
lefthand_file = 'icons/mob/inhands/equipment/horns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/horns_righthand.dmi'
throwforce = 0
hitsound = null //To prevent tap.ogg playing, as the item lacks of force
w_class = WEIGHT_CLASS_TINY
slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT
throw_speed = 3
throw_range = 7
attack_verb = list("HONKED")
var/component = /datum/component/squeak/bikehorn
/obj/item/bikehorn/Initialize()
. = ..()
AddComponent(component, 50)
/obj/item/bikehorn/attack(mob/living/carbon/M, mob/living/carbon/user)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "honk", /datum/mood_event/honk)
return ..()
/obj/item/bikehorn/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] solemnly points [src] at [user.p_their()] temple! It looks like [user.p_theyre()] trying to commit suicide!</span>")
playsound(src, 'sound/items/bikehorn.ogg', 50, TRUE)
return (BRUTELOSS)
//air horn
/obj/item/bikehorn/airhorn
name = "air horn"
desc = "Damn son, where'd you find this?"
icon_state = "air_horn"
component = /datum/component/squeak/airhorn
//golden bikehorn
/obj/item/bikehorn/golden
name = "golden bike horn"
desc = "Golden? Clearly, it's made with bananium! Honk!"
icon_state = "gold_horn"
item_state = "gold_horn"
var/flip_cooldown = 0
/obj/item/bikehorn/golden/attack()
if(flip_cooldown < world.time)
flip_mobs()
return ..()
/obj/item/bikehorn/golden/attack_self(mob/user)
if(flip_cooldown < world.time)
flip_mobs()
..()
/obj/item/bikehorn/golden/proc/flip_mobs(mob/living/carbon/M, mob/user)
var/turf/T = get_turf(src)
for(M in ohearers(7, T))
if(ishuman(M) && M.can_hear())
var/mob/living/carbon/human/H = M
if(istype(H.ears, /obj/item/clothing/ears/earmuffs))
continue
M.emote("flip")
flip_cooldown = world.time + 7
//canned laughter
/obj/item/reagent_containers/food/drinks/soda_cans/canned_laughter
name = "Canned Laughter"
desc = "Just looking at this makes you want to giggle."
icon_state = "laughter"
list_reagents = list("laughter" = 50)
/* Clown Items
* Contains:
* Soap
* Bike Horns
* Air Horns
* Canned Laughter
*/
/*
* Soap
*/
/obj/item/soap
name = "soap"
desc = "A cheap bar of soap. Doesn't smell."
gender = PLURAL
icon = 'icons/obj/items_and_weapons.dmi'
icon_state = "soap"
lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi'
w_class = WEIGHT_CLASS_TINY
item_flags = NOBLUDGEON
throwforce = 0
throw_speed = 3
throw_range = 7
grind_results = list(/datum/reagent/lye = 10)
var/cleanspeed = 35 //slower than mop
force_string = "robust... against germs"
var/uses = 100
/obj/item/soap/ComponentInitialize()
. = ..()
AddComponent(/datum/component/slippery, 80)
/obj/item/soap/examine(mob/user)
. = ..()
var/max_uses = initial(uses)
var/msg = "It looks like it just came out of the package."
if(uses != max_uses)
var/percentage_left = uses / max_uses
switch(percentage_left)
if(0 to 0.15)
msg = "There's just a tiny bit left of what it used to be, you're not sure it'll last much longer."
if(0.15 to 0.30)
msg = "It's dissolved quite a bit, but there's still some life to it."
if(0.30 to 0.50)
msg = "It's past its prime, but it's definitely still good."
if(0.50 to 0.75)
msg = "It's started to get a little smaller than it used to be, but it'll definitely still last for a while."
else
msg = "It's seen some light use, but it's still pretty fresh."
to_chat(user, "<span class='notice'>[msg]</span>")
/obj/item/soap/nanotrasen
desc = "A heavy duty bar of Nanotrasen brand soap. Smells of plasma."
grind_results = list(/datum/reagent/toxin/plasma = 10, /datum/reagent/lye = 10)
icon_state = "soapnt"
cleanspeed = 28 //janitor gets this
uses = 300
/obj/item/soap/homemade
desc = "A homemade bar of soap. Smells of... well...."
icon_state = "soapgibs"
cleanspeed = 30 // faster to reward chemists for going to the effort
/obj/item/soap/deluxe
desc = "A deluxe Waffle Co. brand bar of soap. Smells of high-class luxury."
icon_state = "soapdeluxe"
cleanspeed = 20 //captain gets one of these
/obj/item/soap/syndie
desc = "An untrustworthy bar of soap made of strong chemical agents that dissolve blood faster."
icon_state = "soapsyndie"
cleanspeed = 5 //faster than mop so it is useful for traitors who want to clean crime scenes
/obj/item/soap/suicide_act(mob/user)
user.say(";FFFFFFFFFFFFFFFFUUUUUUUDGE!!", forced="soap suicide")
user.visible_message("<span class='suicide'>[user] lifts [src] to [user.p_their()] mouth and gnaws on it furiously, producing a thick froth! [user.p_they(TRUE)]'ll never get that BB gun now!</span>")
new /obj/effect/particle_effect/foam(loc)
return (TOXLOSS)
/obj/item/soap/proc/decreaseUses(mob/user)
uses--
if(uses <= 0)
to_chat(user, "<span class='warning'>[src] crumbles into tiny bits!</span>")
qdel(src)
/obj/item/soap/afterattack(atom/target, mob/user, proximity)
. = ..()
if(!proximity || !check_allowed_items(target))
return
//I couldn't feasibly fix the overlay bugs caused by cleaning items we are wearing.
//So this is a workaround. This also makes more sense from an IC standpoint. ~Carn
if(user.client && ((target in user.client.screen) && !user.is_holding(target)))
to_chat(user, "<span class='warning'>You need to take that [target.name] off before cleaning it!</span>")
else if(istype(target, /obj/effect/decal/cleanable))
user.visible_message("[user] begins to scrub \the [target.name] out with [src].", "<span class='warning'>You begin to scrub \the [target.name] out with [src]...</span>")
if(do_after(user, src.cleanspeed, target = target))
to_chat(user, "<span class='notice'>You scrub \the [target.name] out.</span>")
qdel(target)
decreaseUses(user)
else if(ishuman(target) && user.zone_selected == BODY_ZONE_PRECISE_MOUTH)
var/mob/living/carbon/human/H = user
if(user.zone_selected == "mouth")
user.visible_message("<span class='warning'>\the [user] washes \the [target]'s mouth out with [src.name]!</span>", "<span class='notice'>You wash \the [target]'s mouth out with [src.name]!</span>") //washes mouth out with soap sounds better than 'the soap' here
H.lip_style = null //removes lipstick
H.adjust_hygiene(5) //it kinda works i guess
else
user.visible_message("<span class='warning'>\the [user] washes \the [target] with [src.name]!</span>", "<span class='notice'>You wash \the [target] with [src.name]!</span>")
H.adjust_hygiene(20)
H.update_body()
decreaseUses(user)
return
else if(istype(target, /obj/structure/window))
user.visible_message("[user] begins to clean \the [target.name] with [src]...", "<span class='notice'>You begin to clean \the [target.name] with [src]...</span>")
if(do_after(user, src.cleanspeed, target = target))
to_chat(user, "<span class='notice'>You clean \the [target.name].</span>")
target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
target.set_opacity(initial(target.opacity))
decreaseUses(user)
else
user.visible_message("[user] begins to clean \the [target.name] with [src]...", "<span class='notice'>You begin to clean \the [target.name] with [src]...</span>")
if(do_after(user, src.cleanspeed, target = target))
to_chat(user, "<span class='notice'>You clean \the [target.name].</span>")
for(var/obj/effect/decal/cleanable/C in target)
qdel(C)
target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
SEND_SIGNAL(target, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM)
target.wash_cream()
decreaseUses(user)
return
/*
* Bike Horns
*/
/obj/item/bikehorn
name = "bike horn"
desc = "A horn off of a bicycle."
icon = 'icons/obj/items_and_weapons.dmi'
icon_state = "bike_horn"
item_state = "bike_horn"
lefthand_file = 'icons/mob/inhands/equipment/horns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/horns_righthand.dmi'
throwforce = 0
hitsound = null //To prevent tap.ogg playing, as the item lacks of force
w_class = WEIGHT_CLASS_TINY
slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT
throw_speed = 3
throw_range = 7
attack_verb = list("HONKED")
var/component = /datum/component/squeak/bikehorn
/obj/item/bikehorn/Initialize()
. = ..()
AddComponent(component, 50)
/obj/item/bikehorn/attack(mob/living/carbon/M, mob/living/carbon/user)
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "honk", /datum/mood_event/honk)
return ..()
/obj/item/bikehorn/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] solemnly points [src] at [user.p_their()] temple! It looks like [user.p_theyre()] trying to commit suicide!</span>")
playsound(src, 'sound/items/bikehorn.ogg', 50, TRUE)
return (BRUTELOSS)
//air horn
/obj/item/bikehorn/airhorn
name = "air horn"
desc = "Damn son, where'd you find this?"
icon_state = "air_horn"
component = /datum/component/squeak/airhorn
//golden bikehorn
/obj/item/bikehorn/golden
name = "golden bike horn"
desc = "Golden? Clearly, it's made with bananium! Honk!"
icon_state = "gold_horn"
item_state = "gold_horn"
var/flip_cooldown = 0
/obj/item/bikehorn/golden/attack()
if(flip_cooldown < world.time)
flip_mobs()
return ..()
/obj/item/bikehorn/golden/attack_self(mob/user)
if(flip_cooldown < world.time)
flip_mobs()
..()
/obj/item/bikehorn/golden/proc/flip_mobs(mob/living/carbon/M, mob/user)
var/turf/T = get_turf(src)
for(M in ohearers(7, T))
if(ishuman(M) && M.can_hear())
var/mob/living/carbon/human/H = M
if(istype(H.ears, /obj/item/clothing/ears/earmuffs))
continue
M.emote("flip")
flip_cooldown = world.time + 7
//canned laughter
/obj/item/reagent_containers/food/drinks/soda_cans/canned_laughter
name = "Canned Laughter"
desc = "Just looking at this makes you want to giggle."
icon_state = "laughter"
list_reagents = list(/datum/reagent/consumable/laughter = 50)

View File

@@ -62,7 +62,7 @@
var/edible = TRUE // That doesn't mean eating it is a good idea
var/list/reagent_contents = list("nutriment" = 1)
var/list/reagent_contents = list(/datum/reagent/consumable/nutriment = 1)
// If the user can toggle the colour, a la vanilla spraycan
var/can_change_colour = FALSE
@@ -445,63 +445,63 @@
icon_state = "crayonred"
paint_color = "#DA0000"
item_color = "red"
reagent_contents = list("nutriment" = 1, "redcrayonpowder" = 1)
reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/red = 1)
/obj/item/toy/crayon/orange
icon_state = "crayonorange"
paint_color = "#FF9300"
item_color = "orange"
reagent_contents = list("nutriment" = 1, "orangecrayonpowder" = 1)
reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/orange = 1)
/obj/item/toy/crayon/yellow
icon_state = "crayonyellow"
paint_color = "#FFF200"
item_color = "yellow"
reagent_contents = list("nutriment" = 1, "yellowcrayonpowder" = 1)
reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/yellow = 1)
/obj/item/toy/crayon/green
icon_state = "crayongreen"
paint_color = "#A8E61D"
item_color = "green"
reagent_contents = list("nutriment" = 1, "greencrayonpowder" = 1)
reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/green = 1)
/obj/item/toy/crayon/blue
icon_state = "crayonblue"
paint_color = "#00B7EF"
item_color = "blue"
reagent_contents = list("nutriment" = 1, "bluecrayonpowder" = 1)
reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/blue = 1)
/obj/item/toy/crayon/purple
icon_state = "crayonpurple"
paint_color = "#DA00FF"
item_color = "purple"
reagent_contents = list("nutriment" = 1, "purplecrayonpowder" = 1)
reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/purple = 1)
/obj/item/toy/crayon/black
icon_state = "crayonblack"
paint_color = "#1C1C1C" //Not completely black because total black looks bad. So Mostly Black.
item_color = "black"
reagent_contents = list("nutriment" = 1, "blackcrayonpowder" = 1)
reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/black = 1)
/obj/item/toy/crayon/white
icon_state = "crayonwhite"
paint_color = "#FFFFFF"
item_color = "white"
reagent_contents = list("nutriment" = 1, "whitecrayonpowder" = 1)
reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/white = 1)
/obj/item/toy/crayon/mime
icon_state = "crayonmime"
desc = "A very sad-looking crayon."
paint_color = "#FFFFFF"
item_color = "mime"
reagent_contents = list("nutriment" = 1, "invisiblecrayonpowder" = 1)
reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/invisible = 1)
charges = -1
/obj/item/toy/crayon/rainbow
icon_state = "crayonrainbow"
paint_color = "#FFF000"
item_color = "rainbow"
reagent_contents = list("nutriment" = 1, "colorful_reagent" = 1)
reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent = 1)
drawtype = RANDOM_ANY // just the default starter.
charges = -1
@@ -580,7 +580,7 @@
self_contained = FALSE // Don't disappear when they're empty
can_change_colour = TRUE
reagent_contents = list("welding_fuel" = 1, "ethanol" = 1)
reagent_contents = list(/datum/reagent/fuel = 1, /datum/reagent/consumable/ethanol = 1)
pre_noise = TRUE
post_noise = FALSE
@@ -731,7 +731,7 @@
volume_multiplier = 25
charges = 100
reagent_contents = list("clf3" = 1)
reagent_contents = list(/datum/reagent/clf3 = 1)
actually_paints = FALSE
paint_color = "#000000"
@@ -743,7 +743,7 @@
icon_uncapped = "clowncan2"
use_overlays = FALSE
reagent_contents = list("lube" = 1, "banana" = 1)
reagent_contents = list(/datum/reagent/lube = 1, /datum/reagent/consumable/banana = 1)
volume_multiplier = 5
/obj/item/toy/crayon/spraycan/lubecan/isValidSurface(surface)
@@ -762,7 +762,7 @@
pre_noise = FALSE
post_noise = FALSE
reagent_contents = list("nothing" = 1, "mutetoxin" = 1)
reagent_contents = list(/datum/reagent/consumable/nothing = 1, /datum/reagent/toxin/mutetoxin = 1)
#undef RANDOM_GRAFFITI
#undef RANDOM_LETTER

View File

@@ -260,7 +260,7 @@
var/produce_heat = 1500
heat = 1000
light_color = LIGHT_COLOR_FLARE
grind_results = list("sulfur" = 15)
grind_results = list(/datum/reagent/sulfur = 15)
/obj/item/flashlight/flare/Initialize()
. = ..()
@@ -429,7 +429,7 @@
color = LIGHT_COLOR_GREEN
icon_state = "glowstick"
item_state = "glowstick"
grind_results = list("phenol" = 15, "hydrogen" = 10, "oxygen" = 5) //Meth-in-a-stick
grind_results = list(/datum/reagent/phenol = 15, /datum/reagent/hydrogen = 10, /datum/reagent/oxygen = 5) //Meth-in-a-stick
var/fuel = 0
/obj/item/flashlight/glowstick/Initialize()

View File

@@ -330,7 +330,7 @@ GENE SCANNER
to_chat(user, "<span class='danger'>Subject is bleeding!</span>")
var/blood_percent = round((C.blood_volume / BLOOD_VOLUME_NORMAL)*100)
var/blood_type = C.dna.blood_type
if(blood_id != "blood")//special blood substance
if(blood_id != /datum/reagent/blood)//special blood substance
var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id]
if(R)
blood_type = R.name
@@ -406,7 +406,7 @@ GENE SCANNER
throw_range = 7
tool_behaviour = TOOL_ANALYZER
materials = list(MAT_METAL=30, MAT_GLASS=20)
grind_results = list("mercury" = 5, "iron" = 5, "silicon" = 5)
grind_results = list(/datum/reagent/mercury = 5, /datum/reagent/iron = 5, /datum/reagent/silicon = 5)
var/cooldown = FALSE
var/cooldown_time = 250
var/accuracy // 0 is the best accuracy.

View File

@@ -17,7 +17,7 @@
resistance_flags = FIRE_PROOF
var/max_water = 50
var/last_use = 1
var/chem = "water"
var/chem = /datum/reagent/water
var/safety = TRUE
var/refilling = FALSE
var/tanktype = /obj/structure/reagent_dispensers/watertank
@@ -55,7 +55,7 @@
icon_state = "foam_extinguisher0"
//item_state = "foam_extinguisher" needs sprite
dog_fashion = null
chem = "firefighting_foam"
chem = /datum/reagent/firefighting_foam
tanktype = /obj/structure/reagent_dispensers/foamtank
sprite_name = "foam_extinguisher"
precision = TRUE

View File

@@ -343,9 +343,9 @@
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
B1.reagents.add_reagent("aluminium", 30)
B2.reagents.add_reagent("foaming_agent", 10)
B2.reagents.add_reagent("facid", 10)
B1.reagents.add_reagent(/datum/reagent/aluminium, 30)
B2.reagents.add_reagent(/datum/reagent/foaming_agent, 10)
B2.reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 10)
beakers += B1
beakers += B2
@@ -361,9 +361,9 @@
var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
B1.reagents.add_reagent("aluminium", 75)
B2.reagents.add_reagent("smart_foaming_agent", 25)
B2.reagents.add_reagent("facid", 25)
B1.reagents.add_reagent(/datum/reagent/aluminium, 75)
B2.reagents.add_reagent(/datum/reagent/smart_foaming_agent, 25)
B2.reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 25)
beakers += B1
beakers += B2
@@ -379,9 +379,9 @@
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
B1.reagents.add_reagent("phosphorus", 25)
B2.reagents.add_reagent("stable_plasma", 25)
B2.reagents.add_reagent("sacid", 25)
B1.reagents.add_reagent(/datum/reagent/phosphorus, 25)
B2.reagents.add_reagent(/datum/reagent/stable_plasma, 25)
B2.reagents.add_reagent(/datum/reagent/toxin/acid, 25)
beakers += B1
beakers += B2
@@ -397,10 +397,10 @@
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
B1.reagents.add_reagent("plantbgone", 25)
B1.reagents.add_reagent("potassium", 25)
B2.reagents.add_reagent("phosphorus", 25)
B2.reagents.add_reagent("sugar", 25)
B1.reagents.add_reagent(/datum/reagent/toxin/plantbgone, 25)
B1.reagents.add_reagent(/datum/reagent/potassium, 25)
B2.reagents.add_reagent(/datum/reagent/phosphorus, 25)
B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 25)
beakers += B1
beakers += B2
@@ -416,9 +416,9 @@
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
B1.reagents.add_reagent("fluorosurfactant", 40)
B2.reagents.add_reagent("water", 40)
B2.reagents.add_reagent("cleaner", 10)
B1.reagents.add_reagent(/datum/reagent/fluorosurfactant, 40)
B2.reagents.add_reagent(/datum/reagent/water, 40)
B2.reagents.add_reagent(/datum/reagent/space_cleaner, 10)
beakers += B1
beakers += B2
@@ -434,9 +434,9 @@
var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/large/B2 = new(src)
B1.reagents.add_reagent("fluorosurfactant", 40)
B2.reagents.add_reagent("water", 40)
B2.reagents.add_reagent("ez_clean", 60) //ensures a t h i c c distribution
B1.reagents.add_reagent(/datum/reagent/fluorosurfactant, 40)
B2.reagents.add_reagent(/datum/reagent/water, 40)
B2.reagents.add_reagent(/datum/reagent/space_cleaner/ez_clean, 60) //ensures a t h i c c distribution
beakers += B1
beakers += B2
@@ -453,10 +453,10 @@
var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/large/B2 = new(src)
B1.reagents.add_reagent("condensedcapsaicin", 60)
B1.reagents.add_reagent("potassium", 40)
B2.reagents.add_reagent("phosphorus", 40)
B2.reagents.add_reagent("sugar", 40)
B1.reagents.add_reagent(/datum/reagent/consumable/condensedcapsaicin, 60)
B1.reagents.add_reagent(/datum/reagent/potassium, 40)
B2.reagents.add_reagent(/datum/reagent/phosphorus, 40)
B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 40)
beakers += B1
beakers += B2
@@ -472,11 +472,11 @@
var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src)
B1.reagents.add_reagent("facid", 290)
B1.reagents.add_reagent("potassium", 10)
B2.reagents.add_reagent("phosphorus", 10)
B2.reagents.add_reagent("sugar", 10)
B2.reagents.add_reagent("facid", 280)
B1.reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 290)
B1.reagents.add_reagent(/datum/reagent/potassium, 10)
B2.reagents.add_reagent(/datum/reagent/phosphorus, 10)
B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 10)
B2.reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 280)
beakers += B1
beakers += B2
@@ -492,10 +492,10 @@
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
B1.reagents.add_reagent("colorful_reagent", 25)
B1.reagents.add_reagent("potassium", 25)
B2.reagents.add_reagent("phosphorus", 25)
B2.reagents.add_reagent("sugar", 25)
B1.reagents.add_reagent(/datum/reagent/colorful_reagent, 25)
B1.reagents.add_reagent(/datum/reagent/potassium, 25)
B2.reagents.add_reagent(/datum/reagent/phosphorus, 25)
B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 25)
beakers += B1
beakers += B2
@@ -504,7 +504,7 @@
name = "generic glitter grenade"
desc = "You shouldn't see this description."
stage = READY
var/glitter_type = "glitter"
var/glitter_type = /datum/reagent/glitter
/obj/item/grenade/chem_grenade/glitter/Initialize()
. = ..()
@@ -512,9 +512,9 @@
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
B1.reagents.add_reagent(glitter_type, 25)
B1.reagents.add_reagent("potassium", 25)
B2.reagents.add_reagent("phosphorus", 25)
B2.reagents.add_reagent("sugar", 25)
B1.reagents.add_reagent(/datum/reagent/potassium, 25)
B2.reagents.add_reagent(/datum/reagent/phosphorus, 25)
B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 25)
beakers += B1
beakers += B2
@@ -522,17 +522,17 @@
/obj/item/grenade/chem_grenade/glitter/pink
name = "pink glitter bomb"
desc = "For that HOT glittery look."
glitter_type = "pink_glitter"
glitter_type = /datum/reagent/glitter/pink
/obj/item/grenade/chem_grenade/glitter/blue
name = "blue glitter bomb"
desc = "For that COOL glittery look."
glitter_type = "blue_glitter"
glitter_type = /datum/reagent/glitter/blue
/obj/item/grenade/chem_grenade/glitter/white
name = "white glitter bomb"
desc = "For that somnolent glittery look."
glitter_type = "white_glitter"
glitter_type = /datum/reagent/glitter/white
/obj/item/grenade/chem_grenade/clf3
name = "clf3 grenade"
@@ -544,10 +544,10 @@
var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src)
B1.reagents.add_reagent("fluorosurfactant", 250)
B1.reagents.add_reagent("clf3", 50)
B2.reagents.add_reagent("water", 250)
B2.reagents.add_reagent("clf3", 50)
B1.reagents.add_reagent(/datum/reagent/fluorosurfactant, 250)
B1.reagents.add_reagent(/datum/reagent/clf3, 50)
B2.reagents.add_reagent(/datum/reagent/water, 250)
B2.reagents.add_reagent(/datum/reagent/clf3, 50)
beakers += B1
beakers += B2
@@ -562,13 +562,13 @@
var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src)
B1.reagents.add_reagent("cryptobiolin", 75)
B1.reagents.add_reagent("water", 50)
B1.reagents.add_reagent("mutetoxin", 50)
B1.reagents.add_reagent("spore", 75)
B1.reagents.add_reagent("itching_powder", 50)
B2.reagents.add_reagent("fluorosurfactant", 150)
B2.reagents.add_reagent("mutagen", 150)
B1.reagents.add_reagent(/datum/reagent/cryptobiolin, 75)
B1.reagents.add_reagent(/datum/reagent/water, 50)
B1.reagents.add_reagent(/datum/reagent/toxin/mutetoxin, 50)
B1.reagents.add_reagent(/datum/reagent/toxin/spore, 75)
B1.reagents.add_reagent(/datum/reagent/toxin/itching_powder, 50)
B2.reagents.add_reagent(/datum/reagent/fluorosurfactant, 150)
B2.reagents.add_reagent(/datum/reagent/toxin/mutagen, 150)
beakers += B1
beakers += B2
@@ -582,11 +582,11 @@
var/obj/item/reagent_containers/glass/beaker/bluespace/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/bluespace/B2 = new(src)
B1.reagents.add_reagent("potassium", 50)
B1.reagents.add_reagent("phosphorus", 50)
B1.reagents.add_reagent("fungalspores", 200)
B2.reagents.add_reagent("blood", 250)
B2.reagents.add_reagent("sugar", 50)
B1.reagents.add_reagent(/datum/reagent/potassium, 50)
B1.reagents.add_reagent(/datum/reagent/phosphorus, 50)
B1.reagents.add_reagent(/datum/reagent/fungalspores, 200)
B2.reagents.add_reagent(/datum/reagent/blood, 250)
B2.reagents.add_reagent(/datum/reagent/consumable/sugar, 50)
beakers += B1
beakers += B2
@@ -602,8 +602,8 @@
var/obj/item/reagent_containers/glass/beaker/large/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/large/B2 = new(src)
B1.reagents.add_reagent("potassium", 100)
B2.reagents.add_reagent("holywater", 100)
B1.reagents.add_reagent(/datum/reagent/potassium, 100)
B2.reagents.add_reagent(/datum/reagent/water/holywater, 100)
beakers += B1
beakers += B2

View File

@@ -94,11 +94,11 @@
var/chem = pick(slime_chems)
var/amount = 5
if(chem == "lesser plasma") //In the rare case we get another rainbow.
chem = "plasma"
chem = /datum/reagent/toxin/plasma
amount = 4
if(chem == "holy water and uranium")
chem = "uranium"
reagents.add_reagent("holywater")
chem = /datum/reagent/uranium
reagents.add_reagent(/datum/reagent/water/holywater)
reagents.add_reagent(chem,amount)
/obj/effect/payload_spawner/random_slime/spawn_payload(type, numspawned)

View File

@@ -77,7 +77,7 @@
L.SetImmobilized(0)
L.SetParalyzed(0)
L.SetUnconscious(0)
L.reagents.add_reagent("muscle_stimulant", CLAMP(5 - L.reagents.get_reagent_amount("muscle_stimulant"), 0, 5)) //If you don't have legs or get bola'd, tough luck!
L.reagents.add_reagent(/datum/reagent/medicine/muscle_stimulant, CLAMP(5 - L.reagents.get_reagent_amount(/datum/reagent/medicine/muscle_stimulant), 0, 5)) //If you don't have legs or get bola'd, tough luck!
colorize(L)
/obj/item/hot_potato/examine(mob/user)

View File

@@ -43,9 +43,9 @@
imp_in.set_resting(FALSE)
imp_in.update_mobility()
imp_in.reagents.add_reagent("synaptizine", 10)
imp_in.reagents.add_reagent("omnizine", 10)
imp_in.reagents.add_reagent("stimulants", 10)
imp_in.reagents.add_reagent(/datum/reagent/medicine/synaptizine, 10)
imp_in.reagents.add_reagent(/datum/reagent/medicine/omnizine, 10)
imp_in.reagents.add_reagent(/datum/reagent/medicine/stimulants, 10)
if(!uses)
qdel(src)

View File

@@ -41,14 +41,14 @@
if(forkload)
if(M == user)
M.visible_message("<span class='notice'>[user] eats a delicious forkful of omelette!</span>")
M.reagents.add_reagent(forkload.id, 1)
M.reagents.add_reagent(forkload.type, 1)
else
M.visible_message("<span class='notice'>[user] is trying to feed [M] a delicious forkful of omelette!</span>") //yogs start
if(!do_mob(user, M))
return
log_combat(user, M, "fed omelette", forkload.id) //yogs end
log_combat(user, M, "fed omelette", forkload.type) //yogs end
M.visible_message("<span class='notice'>[user] feeds [M] a delicious forkful of omelette!</span>")
M.reagents.add_reagent(forkload.id, 1)
M.reagents.add_reagent(forkload.type, 1)
icon_state = "fork"
forkload = null

View File

@@ -25,7 +25,7 @@
/obj/item/mop/proc/clean(turf/A)
if(reagents.has_reagent("water", 1) || reagents.has_reagent("holywater", 1) || reagents.has_reagent("vodka", 1) || reagents.has_reagent("cleaner", 1))
if(reagents.has_reagent(/datum/reagent/water, 1) || reagents.has_reagent(/datum/reagent/water/holywater, 1) || reagents.has_reagent(/datum/reagent/consumable/ethanol/vodka, 1) || reagents.has_reagent(/datum/reagent/space_cleaner, 1))
SEND_SIGNAL(A, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM)
for(var/obj/effect/O in A)
if(is_cleanable(O))
@@ -89,7 +89,7 @@
mopspeed = 8
var/refill_enabled = TRUE //Self-refill toggle for when a janitor decides to mop with something other than water.
var/refill_rate = 1 //Rate per process() tick mop refills itself
var/refill_reagent = "water" //Determins what reagent to use for refilling, just in case someone wanted to make a HOLY MOP OF PURGING
var/refill_reagent = /datum/reagent/water //Determins what reagent to use for refilling, just in case someone wanted to make a HOLY MOP OF PURGING
/obj/item/mop/advanced/New()
..()

View File

@@ -116,7 +116,7 @@
/obj/item/banner/medical/special_inspiration(mob/living/carbon/human/H)
H.adjustToxLoss(-15)
H.setOxyLoss(0)
H.reagents.add_reagent("inaprovaline", 5)
H.reagents.add_reagent(/datum/reagent/medicine/inaprovaline, 5)
/obj/item/banner/science
name = "sciencia banner"

View File

@@ -396,7 +396,7 @@
if(DISPENSE_ICECREAM_MODE)
L = new /obj/item/reagent_containers/food/snacks/icecream(T)
var/obj/item/reagent_containers/food/snacks/icecream/I = L
I.add_ice_cream("vanilla")
I.add_ice_cream(/datum/reagent/consumable/vanilla)
I.desc = "Eat the ice cream."
var/into_hands = FALSE

View File

@@ -426,9 +426,9 @@
name = "medical cyborg expanded hypospray"
desc = "An upgrade to the Medical module's hypospray, allowing it \
to treat a wider range of conditions and problems."
additional_reagents = list("mannitol", "oculine", "inacusiate",
"mutadone", "haloperidol", "oxandrolone", "sal_acid", "rezadone",
"pen_acid")
additional_reagents = list(/datum/reagent/medicine/mannitol, /datum/reagent/medicine/oculine, /datum/reagent/medicine/inacusiate,
/datum/reagent/medicine/mutadone, /datum/reagent/medicine/haloperidol, /datum/reagent/medicine/oxandrolone, /datum/reagent/medicine/sal_acid, /datum/reagent/medicine/rezadone,
/datum/reagent/medicine/pen_acid)
/obj/item/borg/upgrade/piercing_hypospray
name = "cyborg piercing hypospray"

View File

@@ -10,7 +10,7 @@
points = 50
var/blink_range = 8 // The teleport range when crushed/thrown at someone.
refined_type = /obj/item/stack/sheet/bluespace_crystal
grind_results = list("bluespace" = 20)
grind_results = list(/datum/reagent/bluespace = 20)
/obj/item/stack/ore/bluespace_crystal/refined
name = "refined bluespace crystal"
@@ -53,7 +53,7 @@
blink_range = 4 // Not as good as the organic stuff!
points = 0 //nice try
refined_type = null
grind_results = list("bluespace" = 10, "silicon" = 20)
grind_results = list(/datum/reagent/bluespace = 10, /datum/reagent/silicon = 20)
//Polycrystals, aka stacks
/obj/item/stack/sheet/bluespace_crystal
@@ -66,7 +66,7 @@
materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT)
attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed")
novariants = TRUE
grind_results = list("bluespace" = 20)
grind_results = list(/datum/reagent/bluespace = 20)
point_value = 30
var/crystal_type = /obj/item/stack/ore/bluespace_crystal/refined

View File

@@ -111,7 +111,7 @@
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
heal_brute = 40
self_delay = 20
grind_results = list("styptic_powder" = 10)
grind_results = list(/datum/reagent/medicine/styptic_powder = 10)
/obj/item/stack/medical/bruise_pack/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is bludgeoning [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
@@ -166,7 +166,7 @@
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
heal_burn = 40
self_delay = 20
grind_results = list("silver_sulfadiazine" = 10)
grind_results = list(/datum/reagent/medicine/silver_sulfadiazine = 10)
/obj/item/stack/medical/ointment/suicide_act(mob/living/user)
user.visible_message("<span class='suicide'>[user] is squeezing \the [src] into [user.p_their()] mouth! [user.p_do(TRUE)]n't [user.p_they()] know that stuff is toxic?</span>")

View File

@@ -23,7 +23,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/glass
grind_results = list("silicon" = 20)
grind_results = list(/datum/reagent/silicon = 20)
point_value = 1
/obj/item/stack/sheet/glass/suicide_act(mob/living/carbon/user)
@@ -98,7 +98,7 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/plasmaglass
grind_results = list("silicon" = 20, "plasma" = 10)
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10)
/obj/item/stack/sheet/plasmaglass/fifty
amount = 50
@@ -149,7 +149,7 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/rglass
grind_results = list("silicon" = 20, "iron" = 10)
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/iron = 10)
point_value = 4
/obj/item/stack/sheet/rglass/attackby(obj/item/W, mob/user, params)
@@ -192,7 +192,7 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \
armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/plasmarglass
grind_results = list("silicon" = 20, "plasma" = 10, "iron" = 10)
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10, /datum/reagent/iron = 10)
point_value = 23
/obj/item/stack/sheet/plasmarglass/Initialize(mapload, new_amount, merge = TRUE)

View File

@@ -11,7 +11,7 @@
throw_range = 7
flags_1 = CONDUCT_1
max_amount = 60
grind_results = list("silicon" = 20, "copper" = 5)
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/copper = 5)
/obj/item/stack/light_w/attackby(obj/item/O, mob/user, params)
if(istype(O, /obj/item/stack/sheet/metal))

View File

@@ -105,7 +105,7 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \
sheettype = "diamond"
materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT)
novariants = TRUE
grind_results = list("carbon" = 20)
grind_results = list(/datum/reagent/carbon = 20)
point_value = 25
merge_type = /obj/item/stack/sheet/mineral/diamond
@@ -132,7 +132,7 @@ GLOBAL_LIST_INIT(diamond_recipes, list ( \
sheettype = "uranium"
materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT)
novariants = TRUE
grind_results = list("uranium" = 20)
grind_results = list(/datum/reagent/uranium = 20)
point_value = 20
merge_type = /obj/item/stack/sheet/mineral/uranium
@@ -159,7 +159,7 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \
resistance_flags = FLAMMABLE
max_integrity = 100
materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT)
grind_results = list("plasma" = 20)
grind_results = list(/datum/reagent/toxin/plasma = 20)
point_value = 20
merge_type = /obj/item/stack/sheet/mineral/plasma
@@ -200,7 +200,7 @@ GLOBAL_LIST_INIT(plasma_recipes, list ( \
singular_name = "gold bar"
sheettype = "gold"
materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT)
grind_results = list("gold" = 20)
grind_results = list(/datum/reagent/gold = 20)
point_value = 20
merge_type = /obj/item/stack/sheet/mineral/gold
@@ -229,7 +229,7 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \
singular_name = "silver bar"
sheettype = "silver"
materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT)
grind_results = list("silver" = 20)
grind_results = list(/datum/reagent/silver = 20)
point_value = 20
merge_type = /obj/item/stack/sheet/mineral/silver
@@ -258,7 +258,7 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \
sheettype = "bananium"
materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT)
novariants = TRUE
grind_results = list("banana" = 20)
grind_results = list(/datum/reagent/consumable/banana = 20)
point_value = 50
merge_type = /obj/item/stack/sheet/mineral/bananium
@@ -341,7 +341,7 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list ( \
singular_name = "snow block"
force = 1
throwforce = 2
grind_results = list("ice" = 20)
grind_results = list(/datum/reagent/consumable/ice = 20)
merge_type = /obj/item/stack/sheet/mineral/snow
GLOBAL_LIST_INIT(snow_recipes, list ( \

View File

@@ -103,7 +103,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
flags_1 = CONDUCT_1
resistance_flags = FIRE_PROOF
merge_type = /obj/item/stack/sheet/metal
grind_results = list("iron" = 20)
grind_results = list(/datum/reagent/iron = 20)
point_value = 2
/obj/item/stack/sheet/metal/ratvar_act()
@@ -164,7 +164,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 80)
resistance_flags = FIRE_PROOF
merge_type = /obj/item/stack/sheet/plasteel
grind_results = list("iron" = 20, "plasma" = 20)
grind_results = list(/datum/reagent/iron = 20, /datum/reagent/toxin/plasma = 20)
point_value = 23
/obj/item/stack/sheet/plasteel/Initialize(mapload, new_amount, merge = TRUE)
@@ -225,7 +225,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
resistance_flags = FLAMMABLE
merge_type = /obj/item/stack/sheet/mineral/wood
novariants = TRUE
grind_results = list("carbon" = 20)
grind_results = list(/datum/reagent/carbon = 20)
/obj/item/stack/sheet/mineral/wood/Initialize(mapload, new_amount, merge = TRUE)
recipes = GLOB.wood_recipes
@@ -419,7 +419,7 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \
sheettype = "runed"
merge_type = /obj/item/stack/sheet/runed_metal
novariants = TRUE
grind_results = list("iron" = 5, "blood" = 15)
grind_results = list(/datum/reagent/iron = 5, /datum/reagent/blood = 15)
/obj/item/stack/sheet/runed_metal/ratvar_act()
new /obj/item/stack/tile/brass(loc, amount)
@@ -486,7 +486,7 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \
throw_range = 3
turf_type = /turf/open/floor/clockwork
novariants = FALSE
grind_results = list("iron" = 5, "teslium" = 15)
grind_results = list(/datum/reagent/iron = 5, /datum/reagent/teslium = 15)
merge_type = /obj/item/stack/tile/brass
/obj/item/stack/tile/brass/narsie_act()
@@ -536,7 +536,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
throw_range = 3
turf_type = /turf/open/floor/bronze
novariants = FALSE
grind_results = list("iron" = 5, "copper" = 3) //we have no "tin" reagent so this is the closest thing
grind_results = list(/datum/reagent/iron = 5, /datum/reagent/copper = 3) //we have no "tin" reagent so this is the closest thing
merge_type = /obj/item/stack/tile/bronze
/obj/item/stack/tile/bronze/attack_self(mob/living/user)
@@ -589,7 +589,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
w_class = WEIGHT_CLASS_NORMAL
throw_speed = 1
throw_range = 3
grind_results = list("carbon" = 10)
grind_results = list(/datum/reagent/carbon = 10)
merge_type = /obj/item/stack/sheet/bone
GLOBAL_LIST_INIT(plastic_recipes, list(

View File

@@ -171,16 +171,16 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning",
for(var/obj/effect/rune/R in orange(2,user))
R.invisibility = 0
if(user.mind && (user.mind.isholy))
if(A.reagents && A.reagents.has_reagent("water")) // blesses all the water in the holder
if(A.reagents && A.reagents.has_reagent(/datum/reagent/water)) // blesses all the water in the holder
to_chat(user, "<span class='notice'>You bless [A].</span>")
var/water2holy = A.reagents.get_reagent_amount("water")
A.reagents.del_reagent("water")
A.reagents.add_reagent("holywater",water2holy)
if(A.reagents && A.reagents.has_reagent("unholywater")) // yeah yeah, copy pasted code - sue me
var/water2holy = A.reagents.get_reagent_amount(/datum/reagent/water)
A.reagents.del_reagent(/datum/reagent/water)
A.reagents.add_reagent(/datum/reagent/water/holywater,water2holy)
if(A.reagents && A.reagents.has_reagent(/datum/reagent/fuel/unholywater)) // yeah yeah, copy pasted code - sue me
to_chat(user, "<span class='notice'>You purify [A].</span>")
var/unholy2clean = A.reagents.get_reagent_amount("unholywater")
A.reagents.del_reagent("unholywater")
A.reagents.add_reagent("holywater",unholy2clean)
var/unholy2clean = A.reagents.get_reagent_amount(/datum/reagent/fuel/unholywater)
A.reagents.del_reagent(/datum/reagent/fuel/unholywater)
A.reagents.add_reagent(/datum/reagent/water/holywater,unholy2clean)
if(istype(A, /obj/item/storage/book/bible) && !istype(A, /obj/item/storage/book/bible/syndicate))
to_chat(user, "<span class='notice'>You purify [A], conforming it to your belief.</span>")
var/obj/item/storage/book/bible/B = A

View File

@@ -149,7 +149,7 @@
/obj/item/watertank/janitor/Initialize()
. = ..()
reagents.add_reagent("cleaner", 500)
reagents.add_reagent(/datum/reagent/space_cleaner, 500)
/obj/item/reagent_containers/spray/mister/janitor
name = "janitor spray nozzle"
@@ -185,7 +185,7 @@
/obj/item/watertank/atmos/Initialize()
. = ..()
reagents.add_reagent("water", 200)
reagents.add_reagent(/datum/reagent/water, 200)
/obj/item/watertank/atmos/make_noz()
return new /obj/item/extinguisher/mini/nozzle(src)
@@ -437,13 +437,13 @@
/obj/item/watertank/op/Initialize()
. = ..()
reagents.add_reagent("mutagen",350)
reagents.add_reagent("napalm",125)
reagents.add_reagent("welding_fuel",125)
reagents.add_reagent("clf3",300)
reagents.add_reagent("cryptobiolin",350)
reagents.add_reagent("plasma",250)
reagents.add_reagent("condensedcapsaicin",500)
reagents.add_reagent(/datum/reagent/toxin/mutagen,350)
reagents.add_reagent(/datum/reagent/napalm,125)
reagents.add_reagent(/datum/reagent/fuel,125)
reagents.add_reagent(/datum/reagent/clf3,300)
reagents.add_reagent(/datum/reagent/cryptobiolin,350)
reagents.add_reagent(/datum/reagent/toxin/plasma,250)
reagents.add_reagent(/datum/reagent/consumable/condensedcapsaicin,500)
/obj/item/reagent_containers/spray/mister/op
desc = "A mister nozzle attached to several extended water tanks. It suspiciously has a compressor in the system and is labelled entirely in New Cyrillic."

View File

@@ -37,7 +37,7 @@
/obj/item/weldingtool/Initialize()
. = ..()
create_reagents(max_fuel)
reagents.add_reagent("welding_fuel", max_fuel)
reagents.add_reagent(/datum/reagent/fuel, max_fuel)
update_icon()
@@ -97,7 +97,7 @@
/obj/item/weldingtool/proc/explode()
var/turf/T = get_turf(loc)
var/plasmaAmount = reagents.get_reagent_amount("plasma")
var/plasmaAmount = reagents.get_reagent_amount(/datum/reagent/toxin/plasma)
dyn_explosion(T, plasmaAmount/5)//20 plasma in a standard welder has a 4 power explosion. no breaches, but enough to kill/dismember holder
qdel(src)
@@ -142,7 +142,7 @@
/obj/item/weldingtool/attack_self(mob/user)
if(src.reagents.has_reagent("plasma"))
if(src.reagents.has_reagent(/datum/reagent/toxin/plasma))
message_admins("[ADMIN_LOOKUPFLW(user)] activated a rigged welder at [AREACOORD(user)].")
explode()
switched_on(user)
@@ -154,7 +154,7 @@
// Returns the amount of fuel in the welder
/obj/item/weldingtool/proc/get_fuel()
return reagents.get_reagent_amount("welding_fuel")
return reagents.get_reagent_amount(/datum/reagent/fuel)
// Uses fuel from the welding tool.
@@ -165,7 +165,7 @@
if(used)
burned_fuel_for = 0
if(get_fuel() >= used)
reagents.remove_reagent("welding_fuel", used)
reagents.remove_reagent(/datum/reagent/fuel, used)
check_fuel()
return TRUE
else
@@ -336,7 +336,7 @@
/obj/item/weldingtool/abductor/process()
if(get_fuel() <= max_fuel)
reagents.add_reagent("welding_fuel", 1)
reagents.add_reagent(/datum/reagent/fuel, 1)
..()
/obj/item/weldingtool/hugetank
@@ -373,6 +373,6 @@
..()
if(get_fuel() < max_fuel && nextrefueltick < world.time)
nextrefueltick = world.time + 10
reagents.add_reagent("welding_fuel", 1)
reagents.add_reagent(/datum/reagent/fuel, 1)
#undef WELDER_FUEL_BURN_INTERVAL

View File

@@ -70,7 +70,7 @@
name = "crushed can"
icon_state = "cola"
resistance_flags = NONE
grind_results = list("aluminium" = 10)
grind_results = list(/datum/reagent/aluminium = 10)
/obj/item/trash/attack(mob/M, mob/living/user)
return
@@ -80,7 +80,7 @@
icon = 'icons/obj/mining.dmi'
icon_state = "slag"
desc = "Someone's gotten on the naughty list."
grind_results = list("carbon" = 20)
grind_results = list(/datum/reagent/carbon = 20)
/obj/item/trash/coal/burn()
visible_message("[src] fuses into a diamond! Someone wasn't so naughty after all...")

View File

@@ -39,7 +39,7 @@
return
last_process = world.time
to_chat(user, "<span class='notice'>The water feels warm and soothing as you touch it. The fountain immediately dries up shortly afterwards.</span>")
user.reagents.add_reagent("godblood",20)
user.reagents.add_reagent(/datum/reagent/medicine/omnizine/godblood,20)
update_icon()
addtimer(CALLBACK(src, .proc/update_icon), time_between_uses)

View File

@@ -12,7 +12,7 @@
var/on = FALSE
var/current_temperature = SHOWER_NORMAL
var/datum/looping_sound/showering/soundloop
var/reagent_id = "water"
var/reagent_id = /datum/reagent/water
var/reaction_volume = 200
/obj/machinery/shower/Initialize()

View File

@@ -101,7 +101,7 @@
if (!open)
return
var/obj/item/reagent_containers/RG = I
RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
RG.reagents.add_reagent(/datum/reagent/water, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
to_chat(user, "<span class='notice'>You fill [RG] from [src]. Gross.</span>")
else
return ..()
@@ -199,7 +199,7 @@
icon = 'icons/obj/items_and_weapons.dmi'
icon_state = "urinalcake"
w_class = WEIGHT_CLASS_TINY
list_reagents = list("chlorine" = 3, "ammonia" = 1)
list_reagents = list(/datum/reagent/chlorine = 3, /datum/reagent/ammonia = 1)
foodtype = TOXIC | GROSS
/obj/item/reagent_containers/food/snacks/urinalcake/attack_self(mob/living/user)
@@ -222,7 +222,7 @@
desc = "A sink used for washing one's hands and face."
anchored = TRUE
var/busy = FALSE //Something's being washed at the moment
var/dispensedreagent = "water" // for whenever plumbing happens
var/dispensedreagent = /datum/reagent/water // for whenever plumbing happens
/obj/structure/sink/attack_hand(mob/living/user)
. = ..()

View File

@@ -545,7 +545,7 @@
if(istype(R, /datum/reagent/consumable))
var/datum/reagent/consumable/nutri_check = R
if(nutri_check.nutriment_factor >0)
M.reagents.remove_reagent(R.id,R.volume)
M.reagents.remove_reagent(R.type,R.volume)
//Whatever happens after high temperature fire dies out or thermite reaction works.
//Should return new turf

View File

@@ -755,7 +755,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
icon_state = "bed"
can_buckle = 1
var/static/list/injected_reagents = list("corazone")
var/static/list/injected_reagents = list(/datum/reagent/medicine/corazone)
/obj/structure/table/optable/abductor/Crossed(atom/movable/AM)
. = ..()

View File

@@ -319,15 +319,8 @@
/obj/item/organ/heart/gland/chem/Initialize()
. = ..()
for(var/X in subtypesof(/datum/reagent/drug))
var/datum/reagent/R = X
possible_reagents += initial(R.id)
for(var/X in subtypesof(/datum/reagent/medicine))
var/datum/reagent/R = X
possible_reagents += initial(R.id)
for(var/X in typesof(/datum/reagent/toxin))
var/datum/reagent/R = X
possible_reagents += initial(R.id)
for(var/R in subtypesof(/datum/reagent/drug) + subtypesof(/datum/reagent/medicine) + typesof(/datum/reagent/toxin))
possible_reagents += R
/obj/item/organ/heart/gland/chem/activate()
var/chem_to_add = pick(possible_reagents)

View File

@@ -57,7 +57,7 @@
return ..()
/mob/living/simple_animal/hostile/blob/proc/blob_chat(msg)
var/spanned_message = say_quote(msg, get_spans())
var/spanned_message = say_quote(msg)
var/rendered = "<font color=\"#EE4000\"><b>\[Blob Telepathy\] [real_name]</b> [spanned_message]</font>"
for(var/M in GLOB.mob_list)
if(isovermind(M) || istype(M, /mob/living/simple_animal/hostile/blob))
@@ -147,7 +147,7 @@
if(overmind && overmind.blobstrain)
overmind.blobstrain.on_sporedeath(src)
else
reagents.add_reagent("spore", 10)
reagents.add_reagent(/datum/reagent/toxin/spore, 10)
// Attach the smoke spreader and setup/start it.
S.attach(location)

View File

@@ -16,7 +16,7 @@
reagent.reaction_mob(L, VAPOR, 20, 0, mob_protection, overmind)//this will do between 10 and 20 damage(reduced by mob protection), depending on chemical, plus 4 from base brute damage.
/datum/blobstrain/reagent/on_sporedeath(mob/living/spore)
spore.reagents.add_reagent(reagent.id, 10)
spore.reagents.add_reagent(reagent.type, 10)
// These can only be applied by blobs. They are what (reagent) blobs are made out of.
/datum/reagent/blob

View File

@@ -28,7 +28,6 @@
/datum/reagent/blob/blazing_oil
name = "Blazing Oil"
id = "blazing_oil"
taste_description = "burning oil"
color = "#B68D00"

View File

@@ -12,7 +12,6 @@
/datum/reagent/blob/cryogenic_poison
name = "Cryogenic Poison"
id = "cryogenic_poison"
description = "will inject targets with a freezing poison that does high damage over time."
color = "#8BA6E9"
taste_description = "brain freeze"

View File

@@ -22,7 +22,6 @@
/datum/reagent/blob/electromagnetic_web
name = "Electromagnetic Web"
id = "electromagnetic_web"
taste_description = "pop rocks"
color = "#83ECEC"

View File

@@ -23,7 +23,6 @@
/datum/reagent/blob/energized_jelly
name = "Energized Jelly"
id = "energized_jelly"
taste_description = "gelatin"
color = "#EFD65A"

View File

@@ -20,7 +20,6 @@
/datum/reagent/blob/explosive_lattice
name = "Explosive Lattice"
id = "explosive_lattice"
taste_description = "the bomb"
color = "#8B2500"

View File

@@ -28,7 +28,6 @@
//does massive brute and burn damage, but can only expand manually
/datum/reagent/blob/networked_fibers
name = "Networked Fibers"
id = "networked_fibers"
taste_description = "efficiency"
color = "#CDC0B0"

View File

@@ -34,7 +34,6 @@
/datum/reagent/blob/pressurized_slime
name = "Pressurized Slime"
id = "pressurized_slime"
taste_description = "a sponge"
color = "#AAAABB"

View File

@@ -21,7 +21,6 @@
/datum/reagent/blob/reactive_spines
name = "Reactive Spines"
id = "reactive_spines"
taste_description = "rock"
color = "#9ACD32"

Some files were not shown because too many files have changed in this diff Show More