Merge branch 'master' into placeholder

This commit is contained in:
Ferner
2021-01-17 09:15:38 +01:00
371 changed files with 7131 additions and 8221 deletions
+2 -2
View File
@@ -171,7 +171,7 @@
if(!location)
return
if(chemholder.reagents.reagent_list.len) //reagent application - only run if there are extra reagents in the smoke
if(LAZYLEN(chemholder.reagents.reagent_volumes)) //reagent application - only run if there are extra reagents in the smoke
for(var/turf/T in wallList)
chemholder.reagents.touch_turf(T)
for(var/turf/T in targetTurfs)
@@ -253,7 +253,7 @@
else
smoke = new /obj/effect/effect/smoke/chem(location, smoke_duration + rand(smoke_duration*-0.25, smoke_duration*0.25), T, I)
if(chemholder.reagents.reagent_list.len)
if(LAZYLEN(chemholder?.reagents?.reagent_volumes))
chemholder.reagents.trans_to_obj(smoke, chemholder.reagents.total_volume / dist, copy = 1) //copy reagents to the smoke so mob/breathe() can handle inhaling the reagents
//Kinda ugly, but needed unless the system is reworked
+5 -5
View File
@@ -66,8 +66,8 @@
if(!metal)
F.create_reagents(10)
if(reagents)
for(var/datum/reagent/R in reagents.reagent_list)
F.reagents.add_reagent(R.type, 1, safety = 1) //added safety check since reagents in the foam have already had a chance to react
for(var/_R in reagents.reagent_volumes)
F.reagents.add_reagent(_R, 1, safety = 1) //added safety check since reagents in the foam have already had a chance to react
/obj/effect/effect/foam/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) // foam disolves when heated, except metal foams
if(!metal && prob(max(0, exposed_temperature - 475)))
@@ -107,8 +107,8 @@
// bit of a hack here. Foam carries along any reagent also present in the glass it is mixed with (defaults to water if none is present). Rather than actually transfer the reagents, this makes a list of the reagent ids and spawns 1 unit of that reagent when the foam disolves.
if(carry && !metal)
for(var/datum/reagent/R in carry.reagent_list)
carried_reagents += R.type
for(var/_R in carry.reagent_volumes)
carried_reagents += _R
/datum/effect/effect/system/foam_spread/start()
set waitfor = FALSE
@@ -127,7 +127,7 @@
for(var/id in carried_reagents)
F.reagents.add_reagent(id, 1, safety = 1) //makes a safety call because all reagents should have already reacted anyway
else
F.reagents.add_reagent(/datum/reagent/water, 1, safety = 1)
F.reagents.add_reagent(/decl/reagent/water, 1, safety = 1)
// wall formed by metal foams, dense and opaque, but easy to break
+1 -1
View File
@@ -31,7 +31,7 @@
if(length(reagents))
var/mob/M = locate() in get_turf(src)
if(M)
reagents.trans_to(M, reagents.get_reagent_amount() * 0.75)
reagents.trans_to(M, reagents.total_volume * 0.75)
sleep(lifespan)
qdel(src)
@@ -26,8 +26,9 @@
. = ..()
if (!mapload && ROUND_IS_STARTED)
SSfeedback.IncrementSimpleStat("messes_made")
var/turf/T = get_turf(src)
if(T.is_space())
animate(src, alpha = 0, time = 5 SECONDS)
QDEL_IN(src, 5 SECONDS)
if(!T?.is_space())
return
animate(src, alpha = 0, time = 5 SECONDS)
QDEL_IN(src, 5 SECONDS)
+5 -9
View File
@@ -27,15 +27,11 @@
name = "honeycomb"
icon_state = "honeycomb"
desc = "Dripping with sugary sweetness."
New()
..()
/obj/item/reagent_containers/food/snacks/honeycomb/Initialize()
. = ..()
reagents.add_reagent(/datum/reagent/nutriment/honey,10)
reagents.add_reagent(/datum/reagent/nutriment, 0.5)
reagents.add_reagent(/datum/reagent/sugar, 2)
reagents_to_add = list(
/decl/reagent/nutriment/honey = 10,
/decl/reagent/nutriment = 0.5,
/decl/reagent/sugar = 2
)
bitesize = 2
/obj/item/book/manual/hydroponics_beekeeping
+11 -10
View File
@@ -18,17 +18,17 @@
/obj/item/reagent_containers/glass/beaker/vial/random
flags = 0
var/list/random_reagent_list = list(list(/datum/reagent/water = 15) = 1, list(/datum/reagent/spacecleaner = 15) = 1)
var/list/random_reagent_list = list(list(/decl/reagent/water = 15) = 1, list(/decl/reagent/spacecleaner = 15) = 1)
/obj/item/reagent_containers/glass/beaker/vial/random/toxin
random_reagent_list = list(
list(/datum/reagent/mindbreaker = 10, /datum/reagent/space_drugs = 20) = 3,
list(/datum/reagent/mercury = 15) = 3,
list(/datum/reagent/toxin/carpotoxin = 15) = 2,
list(/datum/reagent/impedrezene = 15) = 2,
list(/datum/reagent/toxin/dextrotoxin = 10) = 1,
list(/datum/reagent/mental/neurapan = 15) = 2,
list(/datum/reagent/toxin/spectrocybin = 15) = 1)
list(/decl/reagent/mindbreaker = 10, /decl/reagent/space_drugs = 20) = 3,
list(/decl/reagent/mercury = 15) = 3,
list(/decl/reagent/toxin/carpotoxin = 15) = 2,
list(/decl/reagent/impedrezene = 15) = 2,
list(/decl/reagent/toxin/dextrotoxin = 10) = 1,
list(/decl/reagent/mental/neurapan = 15) = 2,
list(/decl/reagent/toxin/spectrocybin = 15) = 1)
/obj/item/reagent_containers/glass/beaker/vial/random/Initialize()
. = ..()
@@ -40,7 +40,8 @@
reagents.add_reagent(reagent, picked_reagents[reagent])
var/list/names = new
for(var/datum/reagent/R in reagents.reagent_list)
for(var/_R in reagents.reagent_volumes)
var/decl/reagent/R = decls_repository.get_decl(_R)
names += R.name
desc = "Contains [english_list(names)]."
@@ -54,6 +55,6 @@
. = ..()
if(is_open_container())
flags ^= OPENCONTAINER
reagents.add_reagent(/datum/reagent/venenum,volume)
reagents.add_reagent(/decl/reagent/venenum,volume)
desc = "Contains venenum."
update_icon()
+10 -10
View File
@@ -3,42 +3,42 @@
colour = "#DA0000"
shadeColour = "#810C0C"
colourName = "red"
reagents_to_add = list(/datum/reagent/crayon_dust/red = 10)
reagents_to_add = list(/decl/reagent/crayon_dust/red = 10)
/obj/item/pen/crayon/orange
icon_state = "crayonorange"
colour = "#FF9300"
shadeColour = "#A55403"
colourName = "orange"
reagents_to_add = list(/datum/reagent/crayon_dust/orange = 10)
reagents_to_add = list(/decl/reagent/crayon_dust/orange = 10)
/obj/item/pen/crayon/yellow
icon_state = "crayonyellow"
colour = "#FFF200"
shadeColour = "#886422"
colourName = "yellow"
reagents_to_add = list(/datum/reagent/crayon_dust/yellow = 10)
reagents_to_add = list(/decl/reagent/crayon_dust/yellow = 10)
/obj/item/pen/crayon/green
icon_state = "crayongreen"
colour = "#A8E61D"
shadeColour = "#61840F"
colourName = "green"
reagents_to_add = list(/datum/reagent/crayon_dust/green = 10)
reagents_to_add = list(/decl/reagent/crayon_dust/green = 10)
/obj/item/pen/crayon/blue
icon_state = "crayonblue"
colour = "#00B7EF"
shadeColour = "#0082A8"
colourName = "blue"
reagents_to_add = list(/datum/reagent/crayon_dust/blue = 10)
reagents_to_add = list(/decl/reagent/crayon_dust/blue = 10)
/obj/item/pen/crayon/purple
icon_state = "crayonpurple"
colour = "#DA00FF"
shadeColour = "#810CFF"
colourName = "purple"
reagents_to_add = list(/datum/reagent/crayon_dust/purple = 10)
reagents_to_add = list(/decl/reagent/crayon_dust/purple = 10)
/obj/item/pen/crayon/mime
icon_state = "crayonmime"
@@ -46,7 +46,7 @@
colour = "#FFFFFF"
shadeColour = "#000000"
colourName = "mime"
reagents_to_add = list(/datum/reagent/crayon_dust/grey = 15)
reagents_to_add = list(/decl/reagent/crayon_dust/grey = 15)
/obj/item/pen/crayon/mime/attack_self(mob/living/user as mob) //inversion
if(colour != "#FFFFFF" && shadeColour != "#000000")
@@ -64,7 +64,7 @@
colour = "#FFF000"
shadeColour = "#000FFF"
colourName = "rainbow"
reagents_to_add = list(/datum/reagent/crayon_dust/brown = 20)
reagents_to_add = list(/decl/reagent/crayon_dust/brown = 20)
/obj/item/pen/crayon/rainbow/attack_self(mob/living/user as mob)
colour = input(user, "Please select the main colour.", "Crayon colour") as color
@@ -96,7 +96,7 @@
to_chat(user, "You finish drawing.")
target.add_fingerprint(user) // Adds their fingerprints to the floor the crayon is drawn on.
if(reagents && LAZYLEN(reagents_to_add))
for(var/datum/reagent/R in reagents_to_add)
for(var/decl/reagent/R in reagents_to_add)
reagents.remove_reagent(R,0.5/LAZYLEN(reagents_to_add)) //using crayons reduces crayon dust in it.
if(!reagents.has_all_reagents(reagents_to_add))
to_chat(user, "<span class='warning'>You used up your crayon!</span>")
@@ -117,4 +117,4 @@
..(user, target_zone)
/obj/item/pen/crayon/attack_self(var/mob/user)
return
return
@@ -110,8 +110,8 @@
if(M.getBrainLoss() > 15)
to_chat(user, SPAN_NOTICE("There's visible lag between left and right pupils' reactions."))
var/list/pinpoint = list(/datum/reagent/oxycomorphine=1,/datum/reagent/mortaphenyl=5)
var/list/dilating = list(/datum/reagent/space_drugs=5,/datum/reagent/mindbreaker=1)
var/list/pinpoint = list(/decl/reagent/oxycomorphine=1,/decl/reagent/mortaphenyl=5)
var/list/dilating = list(/decl/reagent/space_drugs=5,/decl/reagent/mindbreaker=1)
var/datum/reagents/ingested = H.get_ingested_reagents()
if(H.reagents.has_any_reagent(pinpoint) || ingested.has_any_reagent(pinpoint))
to_chat(user, SPAN_NOTICE("\The [M]'s pupils are already pinpoint and cannot narrow any more."))
@@ -13,7 +13,6 @@
slot_flags = 0 //No wearing desklamps
light_wedge = LIGHT_OMNI
// green-shaded desk lamp
/obj/item/device/flashlight/lamp/green
desc = "A classic green-shaded desk lamp."
@@ -23,10 +22,44 @@
brightness_on = 5
light_color = "#FFC58F"
/obj/item/device/flashlight/lamp/verb/toggle_light()
set name = "Toggle light"
set category = "Object"
set src in oview(1)
//Lava Lamps: Because we're already stuck in the 70ies with those fax machines.
/obj/item/device/flashlight/lamp/lava
name = "data encryption lamp"
desc = "Random oil globules within were parsed in photos for your protection. Enjoy this kitschy memorabilia by sticking it on your desk."
icon_state = "lavalamp"
brightness_on = 3
matter = list(DEFAULT_WALL_MATERIAL = 250, MATERIAL_GLASS = 200)
if(!usr.stat)
attack_self(usr)
/obj/item/device/flashlight/lamp/lava/update_icon()
if(on)
set_light(brightness_on)
else
set_light(0)
cut_overlays()
var/image/I = image(icon = icon, icon_state = "lavalamp-[on ? "on" : "off"]")
I.color = light_color
add_overlay(I)
/obj/item/device/flashlight/lamp/lava/red
light_color = COLOR_RED
/obj/item/device/flashlight/lamp/lava/blue
light_color = COLOR_BLUE
/obj/item/device/flashlight/lamp/lava/cyan
light_color = COLOR_CYAN
/obj/item/device/flashlight/lamp/lava/green
light_color = COLOR_GREEN
/obj/item/device/flashlight/lamp/lava/orange
light_color = COLOR_ORANGE
/obj/item/device/flashlight/lamp/lava/purple
light_color = COLOR_PURPLE
/obj/item/device/flashlight/lamp/lava/pink
light_color = COLOR_PINK
/obj/item/device/flashlight/lamp/lava/yellow
light_color = COLOR_YELLOW
+9 -1
View File
@@ -45,9 +45,10 @@
pai.death(0)
return ..()
/obj/item/device/paicard/attackby(obj/item/C as obj, mob/user as mob)
/obj/item/device/paicard/attackby(obj/item/C, mob/user)
if(istype(C, /obj/item/card/id))
scan_ID(C, user)
return
else if(istype(C, /obj/item/device/encryptionkey))
if(length(installed_encryptionkeys) > 2)
to_chat(user, SPAN_WARNING("\The [src] already has the full number of possible encryption keys installed!"))
@@ -67,6 +68,7 @@
to_chat(pai, SPAN_NOTICE("You now have access to these radio channels: [english_list(radio.channels)]."))
else
to_chat(user, SPAN_WARNING("\The [src] would not gain any new channels from \the [EK]."))
return
else if(C.isscrewdriver())
if(!length(installed_encryptionkeys))
to_chat(user, SPAN_WARNING("There are no installed encryption keys to remove!"))
@@ -77,6 +79,12 @@
EK.forceMove(get_turf(src))
installed_encryptionkeys -= EK
recalculateChannels()
return
else if(istype(C, /obj/item/stack/nanopaste))
if(!pai)
to_chat(user, SPAN_WARNING("You cannot repair a pAI device if there's no active pAI personality installed."))
return
pai.attackby(C, user)
/obj/item/device/paicard/proc/recalculateChannels()
radio.channels = list("Common" = radio.FREQ_LISTENING, "Entertainment" = radio.FREQ_LISTENING)
+30 -36
View File
@@ -265,11 +265,11 @@ BREATH ANALYZER
if(H.reagents.total_volume)
var/unknown = 0
var/reagentdata[0]
for(var/A in H.reagents.reagent_list)
var/datum/reagent/R = A
for(var/_R in H.reagents.reagent_volumes)
var/decl/reagent/R = decls_repository.get_decl(_R)
if(R.scannable)
print_reagent_default_message = FALSE
reagentdata["[R.type]"] = "<span class='notice'> [round(H.reagents.get_reagent_amount(R.type), 1)]u [R.name]</span>"
reagentdata["[_R]"] = "<span class='notice'> [round(REAGENT_VOLUME(H.reagents, _R), 1)]u [R.name]</span>"
else
unknown++
if(reagentdata.len)
@@ -284,7 +284,8 @@ BREATH ANALYZER
var/datum/reagents/ingested = H.get_ingested_reagents()
if(ingested && ingested.total_volume)
var/unknown = 0
for(var/datum/reagent/R in ingested.reagent_list)
for(var/_R in ingested.reagent_volumes)
var/decl/reagent/R = decls_repository.get_decl(_R)
if(R.scannable)
print_reagent_default_message = FALSE
dat += "<span class='notice'>[R.name] found in subject's stomach.</span>"
@@ -389,20 +390,16 @@ BREATH ANALYZER
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
return
if(reagents.total_volume)
var/list/blood_traces = list()
for(var/datum/reagent/R in reagents.reagent_list)
if(R.type != /datum/reagent/blood)
reagents.clear_reagents()
to_chat(user, "<span class='warning'>The sample was contaminated! Please insert another sample</span>")
return
else
blood_traces = params2list(R.data["trace_chem"])
break
if(LAZYLEN(reagents.reagent_volumes) > 1 || !REAGENT_DATA(reagents, /decl/reagent/blood))
reagents.clear_reagents()
to_chat(user, "<span class='warning'>The sample was contaminated! Please insert another sample</span>")
return
var/list/blood_traces = params2list(reagents.reagent_data[/decl/reagent/blood]["trace_chem"])
var/dat = "Trace Chemicals Found: "
for(var/R in blood_traces)
var/datum/reagent/C = new R()
for(var/_C in blood_traces)
var/decl/reagent/C = decls_repository.get_decl(_C)
if(details)
dat += "[C] ([blood_traces[R]] units) "
dat += "[C] ([blood_traces[_C]] units) "
else
dat += "[C] "
to_chat(user, "[dat]")
@@ -442,20 +439,16 @@ BREATH ANALYZER
return
if(!istype(O))
return
if(isemptylist(O.reagents?.reagent_volumes))
to_chat(user, "<span class='notice'>No active chemical agents found in [O].</span>")
return
if(!isnull(O.reagents))
var/dat = ""
if(O.reagents.reagent_list.len > 0)
var/one_percent = O.reagents.total_volume / 100
for (var/datum/reagent/R in O.reagents.reagent_list)
dat += "\n \t <span class='notice'>[R][details ? ": [R.volume / one_percent]%" : ""]"
if(dat)
to_chat(user, "<span class='notice'>Chemicals found: [dat]</span>")
else
to_chat(user, "<span class='notice'>No active chemical agents found in [O].</span>")
else
to_chat(user, "<span class='notice'>No significant chemical agents found in [O].</span>")
var/dat = ""
var/one_percent = O.reagents.total_volume / 100
for (var/_R in O.reagents.reagent_volumes)
var/decl/reagent/R = decls_repository.get_decl(_R)
dat += "\n \t <span class='notice'>[R][details ? ": [O.reagents.reagent_volumes[_R] / one_percent]%" : ""]"
to_chat(user, "<span class='notice'>Chemicals found: [dat]</span>")
return
/obj/item/device/reagent_scanner/adv
@@ -618,7 +611,8 @@ BREATH ANALYZER
if(H.breathing && H.breathing.total_volume)
var/unknown = 0
for(var/datum/reagent/R in H.breathing.reagent_list)
for(var/_R in H.breathing.reagent_volumes)
var/decl/reagent/R = decls_repository.get_decl(_R)
if(R.scannable)
to_chat(user,"<span class='notice'>[R.name] found in subject's respitory system.</span>")
else
@@ -687,12 +681,12 @@ BREATH ANALYZER
"paralysis" = H.paralysis,
"bodytemp" = H.bodytemperature,
"borer_present" = H.has_brain_worms(),
"inaprovaline_amount" = H.reagents.get_reagent_amount(/datum/reagent/inaprovaline),
"dexalin_amount" = H.reagents.get_reagent_amount(/datum/reagent/dexalin),
"stoxin_amount" = H.reagents.get_reagent_amount(/datum/reagent/soporific),
"bicaridine_amount" = H.reagents.get_reagent_amount(/datum/reagent/bicaridine),
"dermaline_amount" = H.reagents.get_reagent_amount(/datum/reagent/dermaline),
"blood_amount" = H.vessel.get_reagent_amount(/datum/reagent/blood),
"inaprovaline_amount" = REAGENT_VOLUME(H.reagents, /decl/reagent/inaprovaline),
"dexalin_amount" = REAGENT_VOLUME(H.reagents, /decl/reagent/dexalin),
"stoxin_amount" = REAGENT_VOLUME(H.reagents, /decl/reagent/soporific),
"bicaridine_amount" = REAGENT_VOLUME(H.reagents, /decl/reagent/bicaridine),
"dermaline_amount" = REAGENT_VOLUME(H.reagents, /decl/reagent/dermaline),
"blood_amount" = REAGENT_VOLUME(H.vessel, /decl/reagent/blood),
"disabilities" = H.sdisabilities,
"lung_ruptured" = H.is_lung_ruptured(),
"external_organs" = H.organs.Copy(),
+5 -4
View File
@@ -22,12 +22,13 @@
else
icon_state = "[initial(icon_state)]-empty"
/obj/item/stack/nanopaste/attack(mob/living/M as mob, mob/user as mob, var/target_zone)
if (!istype(M) || !istype(user))
/obj/item/stack/nanopaste/attack(atom/M, mob/user, var/target_zone)
if(!ismob(M) || !istype(user))
return 0
if (!can_use(1, user))
return 0
if (istype(M,/mob/living/silicon/robot)) //Repairing cyborgs
if (isrobot(M)) //Repairing cyborgs
var/mob/living/silicon/robot/R = M
if (R.getBruteLoss() || R.getFireLoss() )
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
@@ -41,7 +42,7 @@
else
to_chat(user, "<span class='notice'>All [R]'s systems are nominal.</span>")
if (istype(M,/mob/living/carbon/human)) //Repairing robolimbs
else if(ishuman(M)) //Repairing robolimbs
var/mob/living/carbon/human/H = M
var/obj/item/organ/external/S = H.get_organ(target_zone)
+50 -2
View File
@@ -66,7 +66,7 @@
if(O.reagents.total_volume < 1)
to_chat(user, "The [O] is empty.")
else if(O.reagents.total_volume >= 1)
if(O.reagents.has_reagent(/datum/reagent/acid/polyacid, 1))
if(O.reagents.has_reagent(/decl/reagent/acid/polyacid, 1))
to_chat(user, "The acid chews through the balloon!")
O.reagents.splash(user, reagents.total_volume)
qdel(src)
@@ -991,7 +991,6 @@
drop_sound = 'sound/items/drop/rubber.ogg'
pickup_sound = 'sound/items/pickup/rubber.ogg'
/obj/item/toy/xmastree
name = "miniature Christmas tree"
desc = "Now with 99% less pine needles."
@@ -1002,6 +1001,55 @@
drop_sound = 'sound/items/drop/cardboardbox.ogg'
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
//baystation desk toys
/obj/item/toy/desk
var/on = FALSE
var/activation_sound = /decl/sound_category/switch_sound
/obj/item/toy/desk/update_icon()
if(on)
icon_state = "[initial(icon_state)]-on"
else
icon_state = initial(icon_state)
/obj/item/toy/desk/attack_self(mob/user)
activate(user)
/obj/item/toy/desk/AltClick(mob/user)
activate(user)
/obj/item/toy/desk/proc/activate(mob/user)
on = !on
playsound(src.loc, activation_sound, 75, 1)
update_icon()
return 1
/obj/item/toy/desk/newtoncradle
name = "\improper Newton's cradle"
desc = "A ancient 21th century super-weapon model demonstrating that Sir Isaac Newton is the deadliest sonuvabitch in space."
desc_fluff = "Aside from car radios, Eridanian Dregs are reportedly notorious for stealing these things. It is often theorized that the very same ball bearings are used in black-market cybernetics."
icon_state = "newtoncradle"
/obj/item/toy/desk/fan
name = "office fan"
desc = "Your greatest fan."
desc_fluff = "For weeks, the atmospherics department faced a conundrum on how to lower temperatures in a localized area through complicated pipe channels and ventilation systems. The problem was promptly solved by ordering several desk fans."
icon_state = "fan"
/obj/item/toy/desk/officetoy
name = "office toy"
desc = "A generic microfusion powered office desk toy. Only generates magnetism and ennui."
desc_fluff = "The mechanism inside is a Hephasteus trade secret. No peeking!"
icon_state = "desktoy"
/obj/item/toy/desk/dippingbird
name = "dipping bird toy"
desc = "Engineers marvel at this scale model of a primitive thermal engine. It's highly debated why the majority of owners were in low-level bureaucratic jobs."
desc_fluff = "One of the key essentials for every Eridanian suit - it's practically a rite of passage to own one of these things."
icon_state = "dippybird"
/obj/item/toy/partypopper
name = "party popper"
desc = "Instructions : Aim away from face. Wait for appropriate timing. Pull cord, enjoy confetti."
+17 -18
View File
@@ -126,22 +126,22 @@ obj/item/clothing/mask/chewable/Destroy()
/obj/item/clothing/mask/chewable/tobacco/bad
name = "chewing tobacco"
desc = "A chewy wad of cheap tobacco. Cut in long strands and treated with syrup so it tastes less like an ash-tray when you stuff it into your face."
reagents_to_add = list(/datum/reagent/toxin/tobacco/fake = 2)
reagents_to_add = list(/decl/reagent/toxin/tobacco/fake = 2)
/obj/item/clothing/mask/chewable/tobacco/generic
name = "chewing tobacco"
desc = "A chewy wad of tobacco. Cut in long strands and treated with syrup so it doesn't taste like an ash-tray when you stuff it into your face."
reagents_to_add = list(/datum/reagent/toxin/tobacco = 2)
reagents_to_add = list(/decl/reagent/toxin/tobacco = 2)
/obj/item/clothing/mask/chewable/tobacco/fine
name = "chewing tobacco"
desc = "A chewy wad of fine tobacco. Cut in long strands and treated with syrup so it doesn't taste like an ash-tray when you stuff it into your face."
reagents_to_add = list(/datum/reagent/toxin/tobacco/rich = 2)
reagents_to_add = list(/decl/reagent/toxin/tobacco/rich = 2)
/obj/item/clothing/mask/chewable/tobacco/nico
name = "nicotine gum"
desc = "A chewy wad of synthetic rubber, laced with nicotine. Possibly the least disgusting method of nicotine delivery."
reagents_to_add = list(/datum/reagent/mental/nicotine = 2)
reagents_to_add = list(/decl/reagent/mental/nicotine = 2)
icon_state = "nic_gum"
type_butt = /obj/item/trash/spitgum
wrapped = TRUE
@@ -156,7 +156,7 @@ obj/item/clothing/mask/chewable/Destroy()
slot_flags = SLOT_EARS | SLOT_MASK
chem_volume = 50
chewtime = 300
reagents_to_add = list(/datum/reagent/sugar = 2)
reagents_to_add = list(/decl/reagent/sugar = 2)
/obj/item/trash/spitgum
name = "old gum"
@@ -176,7 +176,7 @@ obj/item/clothing/mask/chewable/Destroy()
/obj/item/clothing/mask/chewable/candy/gum/Initialize()
. = ..()
reagents.add_reagent(pick(/datum/reagent/drink/banana,/datum/reagent/drink/berryjuice,/datum/reagent/drink/grapejuice,/datum/reagent/drink/lemonjuice,/datum/reagent/drink/limejuice,/datum/reagent/drink/orangejuice,/datum/reagent/drink/watermelonjuice),10)
reagents.add_reagent(pick(/decl/reagent/drink/banana,/decl/reagent/drink/berryjuice,/decl/reagent/drink/grapejuice,/decl/reagent/drink/lemonjuice,/decl/reagent/drink/limejuice,/decl/reagent/drink/orangejuice,/decl/reagent/drink/watermelonjuice),10)
color = reagents.get_color()
update_icon()
@@ -187,9 +187,8 @@ obj/item/clothing/mask/chewable/Destroy()
item_state = null
wrapped = FALSE
/obj/item/clothing/mask/chewable/candy/gum/gumball/medical/Initialize()
. = ..()
reagents.add_reagent(/datum/reagent/tricordrazine, 5)
/obj/item/clothing/mask/chewable/candy/gum/gumball/medical
reagents_to_add = list(/decl/reagent/tricordrazine = 5)
/obj/item/storage/box/fancy/gum
@@ -244,7 +243,7 @@ obj/item/clothing/mask/chewable/Destroy()
/obj/item/clothing/mask/chewable/candy/lolli/Initialize()
. = ..()
reagents.add_reagent(pick(/datum/reagent/drink/banana,/datum/reagent/drink/berryjuice,/datum/reagent/drink/grapejuice,/datum/reagent/drink/lemonjuice,/datum/reagent/drink/limejuice,/datum/reagent/drink/orangejuice,/datum/reagent/drink/watermelonjuice),20)
reagents.add_reagent(pick(/decl/reagent/drink/banana,/decl/reagent/drink/berryjuice,/decl/reagent/drink/grapejuice,/decl/reagent/drink/lemonjuice,/decl/reagent/drink/limejuice,/decl/reagent/drink/orangejuice,/decl/reagent/drink/watermelonjuice),20)
color = reagents.get_color()
update_icon()
@@ -256,10 +255,10 @@ obj/item/clothing/mask/chewable/Destroy()
/obj/item/clothing/mask/chewable/candy/lolli/meds/Initialize()
. = ..()
var/datum/reagent/payload = pick(list(
/datum/reagent/perconol,
/datum/reagent/mortaphenyl,
/datum/reagent/dylovene))
var/decl/reagent/payload = pick(list(
/decl/reagent/perconol,
/decl/reagent/mortaphenyl,
/decl/reagent/dylovene))
reagents.add_reagent(payload, 15)
color = reagents.get_color()
desc = "[desc] This one is labeled '[initial(payload.name)]'."
@@ -267,13 +266,13 @@ obj/item/clothing/mask/chewable/Destroy()
/obj/item/clothing/mask/chewable/candy/lolli/weak_meds
name = "medicine lollipop"
desc = "A sucrose sphere on a small handle, it has been infused with medication."
reagents_to_add = list(/datum/reagent/sugar = 6)
reagents_to_add = list(/decl/reagent/sugar = 6)
/obj/item/clothing/mask/chewable/candy/lolli/weak_meds/Initialize()
. = ..()
var/datum/reagent/payload = pick(list(
/datum/reagent/dylovene,
/datum/reagent/inaprovaline))
var/decl/reagent/payload = pick(list(
/decl/reagent/dylovene,
/decl/reagent/inaprovaline))
reagents.add_reagent(payload, 15)
color = reagents.get_color()
desc = "[desc] This one is labeled '[initial(payload.name)]'."
@@ -198,15 +198,15 @@ CIGARETTE PACKETS ARE IN FANCY.DM
playsound(src, 'sound/items/cigs_lighters/cig_light.ogg', 75, 1, -1)
src.reagents.set_temperature(T0C + 45)
damtype = "fire"
if(reagents.get_reagent_amount(/datum/reagent/toxin/phoron)) // the phoron explodes when exposed to fire
if(REAGENT_VOLUME(reagents, /decl/reagent/toxin/phoron)) // the phoron explodes when exposed to fire
var/datum/effect/effect/system/reagents_explosion/e = new()
e.set_up(round(reagents.get_reagent_amount(/datum/reagent/toxin/phoron) / 2.5, 1), get_turf(src), 0, 0)
e.set_up(round(REAGENT_VOLUME(reagents, /decl/reagent/toxin/phoron) / 2.5, 1), get_turf(src), 0, 0)
e.start()
qdel(src)
return
if(reagents.get_reagent_amount(/datum/reagent/fuel)) // the fuel explodes, too, but much less violently
if(REAGENT_VOLUME(reagents, /decl/reagent/fuel)) // the fuel explodes, too, but much less violently
var/datum/effect/effect/system/reagents_explosion/e = new()
e.set_up(round(reagents.get_reagent_amount(/datum/reagent/fuel) / 5, 1), get_turf(src), 0, 0)
e.set_up(round(REAGENT_VOLUME(reagents, /decl/reagent/fuel) / 5, 1), get_turf(src), 0, 0)
e.start()
qdel(src)
return
@@ -304,11 +304,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
zippomes = "<span class='notice'>With a flick of their wrist, USER lights their NAME with their FLAME.</span>"
weldermes = "<span class='notice'>USER casually lights the NAME with FLAME.</span>"
ignitermes = "<span class='notice'>USER fiddles with FLAME, and manages to light their NAME.</span>"
/obj/item/clothing/mask/smokable/cigarette/Initialize()
. = ..()
reagents.add_reagent(/datum/reagent/toxin/tobacco,10)
reagents.add_reagent(/datum/reagent/mental/nicotine,5) // 2/3 ratio, Adds 0.03 units per second
reagents_to_add = list(
/decl/reagent/toxin/tobacco = 10,
/decl/reagent/mental/nicotine = 5
)
/obj/item/clothing/mask/smokable/cigarette/attackby(obj/item/W as obj, mob/user as mob)
..()
@@ -365,64 +364,47 @@ CIGARETTE PACKETS ARE IN FANCY.DM
/obj/item/clothing/mask/smokable/cigarette/vanilla
burn_rate = 0.015
/obj/item/clothing/mask/smokable/cigarette/vanilla/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent(/datum/reagent/toxin/tobacco,15)
reagents_to_add = list(/decl/reagent/toxin/tobacco = 15)
/obj/item/clothing/mask/smokable/cigarette/acmeco
burn_rate = 0.015
/obj/item/clothing/mask/smokable/cigarette/acmeco/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent(/datum/reagent/toxin/tobacco,5)
reagents.add_reagent(/datum/reagent/mental/nicotine,5)
reagents.add_reagent(/datum/reagent/lexorin,2)
reagents.add_reagent(/datum/reagent/serotrotium,3)
reagents_to_add = list(
/decl/reagent/toxin/tobacco = 5,
/decl/reagent/mental/nicotine = 5,
/decl/reagent/lexorin = 2,
/decl/reagent/serotrotium = 3
)
/obj/item/clothing/mask/smokable/cigarette/blank
burn_rate = 0.015
chem_volume = 15
/obj/item/clothing/mask/smokable/cigarette/blank/Initialize()
. = ..()
reagents.clear_reagents()
reagents_to_add = null
/obj/item/clothing/mask/smokable/cigarette/dromedaryco
/obj/item/clothing/mask/smokable/cigarette/dromedaryco/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent(/datum/reagent/toxin/tobacco,5)
reagents.add_reagent(/datum/reagent/mental/nicotine,10)
reagents_to_add = list(
/decl/reagent/toxin/tobacco = 5,
/decl/reagent/mental/nicotine = 10
)
/obj/item/clothing/mask/smokable/cigarette/nicotine
/obj/item/clothing/mask/smokable/cigarette/nicotine/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent(/datum/reagent/toxin/tobacco/rich,5)
reagents.add_reagent(/datum/reagent/mental/nicotine,10)
reagents_to_add = list(
/decl/reagent/toxin/tobacco/rich = 5,
/decl/reagent/mental/nicotine = 10
)
/obj/item/clothing/mask/smokable/cigarette/rugged
/obj/item/clothing/mask/smokable/cigarette/rugged/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent(/datum/reagent/toxin/tobacco/fake,10)
reagents.add_reagent(/datum/reagent/mental/nicotine,5)
reagents_to_add = list(
/decl/reagent/toxin/tobacco/fake = 10,
/decl/reagent/mental/nicotine = 5
)
/obj/item/clothing/mask/smokable/cigarette/adhomai
name = "adhomian cigarette"
desc = "An adhomian cigarette made from processed S'rendarr's Hand."
/obj/item/clothing/mask/smokable/cigarette/adhomai/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent(/datum/reagent/toxin/tobacco,5)
reagents.add_reagent(/datum/reagent/mental/nicotine,5)
reagents_to_add = list(
/decl/reagent/toxin/tobacco = 5,
/decl/reagent/mental/nicotine = 5
)
////////////
// CIGARS //
@@ -445,12 +427,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
ignitermes = "<span class='notice'>USER fiddles with FLAME, and manages to light their NAME with the power of science.</span>"
drop_sound = 'sound/items/drop/gloves.ogg'
pickup_sound = 'sound/items/pickup/gloves.ogg'
/obj/item/clothing/mask/smokable/cigarette/cigar/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent(/datum/reagent/toxin/tobacco/rich,25)
reagents.add_reagent(/datum/reagent/mental/nicotine,5) // 1/5 Ratio
reagents_to_add = list(
/decl/reagent/toxin/tobacco/rich = 25,
/decl/reagent/mental/nicotine = 5
)
/obj/item/clothing/mask/smokable/cigarette/cigar/havana
name = "premium Havanian cigar"
@@ -460,13 +440,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_off = "cigar2off"
type_butt = /obj/item/trash/cigbutt/cigarbutt/alt
chem_volume = 60
/obj/item/clothing/mask/smokable/cigarette/cigar/havana/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent(/datum/reagent/toxin/tobacco/rich,15)
reagents.add_reagent(/datum/reagent/mental/nicotine,5) // 1/6 Ratio
reagents.add_reagent(/datum/reagent/tricordrazine,10)
reagents_to_add = list(
/decl/reagent/toxin/tobacco/rich = 15,
/decl/reagent/mental/nicotine = 5,
/decl/reagent/tricordrazine = 10
)
/obj/item/clothing/mask/smokable/cigarette/cigar/cohiba
name = "\improper Cohiba robusto cigar"
@@ -476,13 +454,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_off = "cigar2off"
type_butt = /obj/item/trash/cigbutt/cigarbutt/alt
chem_volume = 120
/obj/item/clothing/mask/smokable/cigarette/cigar/cohiba/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent(/datum/reagent/toxin/tobacco/rich,30)
reagents.add_reagent(/datum/reagent/mental/nicotine,10) //1/6 Ratio
reagents.add_reagent(/datum/reagent/tricordrazine,20)
reagents_to_add = list(
/decl/reagent/toxin/tobacco/rich = 30,
/decl/reagent/mental/nicotine = 10,
/decl/reagent/tricordrazine = 20
)
/obj/item/trash/cigbutt
name = "cigarette butt"
@@ -523,11 +499,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
icon_on = "sausageon"
type_butt = /obj/item/trash/cigbutt/sausagebutt
chem_volume = 6
/obj/item/clothing/mask/smokable/cigarette/rolled/sausage/Initialize()
. = ..()
reagents.clear_reagents()
reagents.add_reagent(/datum/reagent/nutriment/protein,6)
reagents_to_add = list(/decl/reagent/nutriment/protein = 6)
/obj/item/trash/cigbutt/sausagebutt
name = "sausage butt"
@@ -1009,4 +981,4 @@ CIGARETTE PACKETS ARE IN FANCY.DM
qdel(I)
qdel(src)
return
..()
..()
@@ -9,4 +9,8 @@
origin_tech = list(TECH_DATA = 2)
req_components = list(
"/obj/item/stock_parts/matter_bin" = 1,
"/obj/item/stock_parts/manipulator" = 1)
"/obj/item/stock_parts/manipulator" = 1)
/obj/item/circuitboard/biogenerator/small
name = T_BOARD("small biogenerator")
build_path = /obj/machinery/biogenerator/small
@@ -38,7 +38,7 @@
/obj/item/reagent_containers/extinguisher_refill/attack_self(mob/user as mob) //Copied from inhalers.
if(is_open_container())
if(reagents && reagents.reagent_list.len)
if(LAZYLEN(reagents.reagent_volumes))
to_chat(user,"<span class='notice'>With a quick twist of the cartridge's lid, you secure the reagents inside \the [src].</span>")
flags &= ~OPENCONTAINER
else
@@ -59,12 +59,12 @@
return
if(is_open_container())
if(reagents && reagents.reagent_list.len)
if(LAZYLEN(reagents?.reagent_volumes))
to_chat(user,"<span class='notice'>It contains [round(reagents.total_volume, accuracy)] units of non-aerosol mix.</span>")
else
to_chat(user,"<span class='notice'>It is empty.</span>")
else
if(reagents && reagents.reagent_list.len)
if(LAZYLEN(reagents?.reagent_volumes))
to_chat(user,"<span class='notice'>The reagents are secured in the aerosol mix.</span>")
else
to_chat(user,"<span class='notice'>The cartridge seems spent.</span>")
@@ -75,7 +75,7 @@
/obj/item/reagent_containers/extinguisher_refill/filled/Initialize()
. = ..()
reagents.add_reagent(/datum/reagent/toxin/fertilizer/monoammoniumphosphate, volume)
reagents.add_reagent(/decl/reagent/toxin/fertilizer/monoammoniumphosphate, volume)
flags &= ~OPENCONTAINER
/obj/item/extinguisher
@@ -122,7 +122,7 @@
/obj/item/extinguisher/New()
create_reagents(max_water)
reagents.add_reagent(/datum/reagent/toxin/fertilizer/monoammoniumphosphate, max_water)
reagents.add_reagent(/decl/reagent/toxin/fertilizer/monoammoniumphosphate, max_water)
..()
/obj/item/extinguisher/examine(mob/user)
@@ -201,9 +201,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(/datum/reagent/aluminum, 30)
B2.reagents.add_reagent(/datum/reagent/foaming_agent, 10)
B2.reagents.add_reagent(/datum/reagent/acid/polyacid, 10)
B1.reagents.add_reagent(/decl/reagent/aluminum, 30)
B2.reagents.add_reagent(/decl/reagent/foaming_agent, 10)
B2.reagents.add_reagent(/decl/reagent/acid/polyacid, 10)
detonator = new/obj/item/device/assembly_holder/timer_igniter(src)
@@ -222,11 +222,11 @@
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
B1.reagents.add_reagent(/datum/reagent/aluminum, 15)
B1.reagents.add_reagent(/datum/reagent/fuel,20)
B2.reagents.add_reagent(/datum/reagent/toxin/phoron, 15)
B2.reagents.add_reagent(/datum/reagent/acid, 15)
B1.reagents.add_reagent(/datum/reagent/fuel,20)
B1.reagents.add_reagent(/decl/reagent/aluminum, 15)
B1.reagents.add_reagent(/decl/reagent/fuel,20)
B2.reagents.add_reagent(/decl/reagent/toxin/phoron, 15)
B2.reagents.add_reagent(/decl/reagent/acid, 15)
B1.reagents.add_reagent(/decl/reagent/fuel,20)
detonator = new/obj/item/device/assembly_holder/timer_igniter(src)
@@ -245,10 +245,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(/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/sugar, 25)
B1.reagents.add_reagent(/decl/reagent/toxin/plantbgone, 25)
B1.reagents.add_reagent(/decl/reagent/potassium, 25)
B2.reagents.add_reagent(/decl/reagent/phosphorus, 25)
B2.reagents.add_reagent(/decl/reagent/sugar, 25)
detonator = new/obj/item/device/assembly_holder/timer_igniter(src)
@@ -267,12 +267,12 @@
var/obj/item/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/reagent_containers/glass/beaker/B2 = new(src)
B1.reagents.add_reagent(/datum/reagent/sugar, 20)
B1.reagents.add_reagent(/datum/reagent/potassium,20)
B1.reagents.add_reagent(/datum/reagent/soporific, 10)
B1.reagents.add_reagent(/datum/reagent/dylovene, 10)
B2.reagents.add_reagent(/datum/reagent/polysomnine,40)
B2.reagents.add_reagent(/datum/reagent/phosphorus,20)
B1.reagents.add_reagent(/decl/reagent/sugar, 20)
B1.reagents.add_reagent(/decl/reagent/potassium,20)
B1.reagents.add_reagent(/decl/reagent/soporific, 10)
B1.reagents.add_reagent(/decl/reagent/dylovene, 10)
B2.reagents.add_reagent(/decl/reagent/polysomnine,40)
B2.reagents.add_reagent(/decl/reagent/phosphorus,20)
detonator = new/obj/item/device/assembly_holder/timer_igniter(src)
@@ -291,9 +291,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(/datum/reagent/surfactant, 40)
B2.reagents.add_reagent(/datum/reagent/water, 40)
B2.reagents.add_reagent(/datum/reagent/spacecleaner, 10)
B1.reagents.add_reagent(/decl/reagent/surfactant, 40)
B2.reagents.add_reagent(/decl/reagent/water, 40)
B2.reagents.add_reagent(/decl/reagent/spacecleaner, 10)
detonator = new/obj/item/device/assembly_holder/timer_igniter(src)
@@ -312,10 +312,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(/datum/reagent/toxin/cardox, 40)
B1.reagents.add_reagent(/datum/reagent/potassium, 40)
B2.reagents.add_reagent(/datum/reagent/phosphorus, 40)
B2.reagents.add_reagent(/datum/reagent/sugar, 40)
B1.reagents.add_reagent(/decl/reagent/toxin/cardox, 40)
B1.reagents.add_reagent(/decl/reagent/potassium, 40)
B2.reagents.add_reagent(/decl/reagent/phosphorus, 40)
B2.reagents.add_reagent(/decl/reagent/sugar, 40)
detonator = new/obj/item/device/assembly_holder/timer_igniter(src)
@@ -335,11 +335,11 @@
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(/datum/reagent/phosphorus, 40)
B1.reagents.add_reagent(/datum/reagent/potassium, 40)
B1.reagents.add_reagent(/datum/reagent/capsaicin/condensed, 40)
B2.reagents.add_reagent(/datum/reagent/sugar, 40)
B2.reagents.add_reagent(/datum/reagent/capsaicin/condensed, 80)
B1.reagents.add_reagent(/decl/reagent/phosphorus, 40)
B1.reagents.add_reagent(/decl/reagent/potassium, 40)
B1.reagents.add_reagent(/decl/reagent/capsaicin/condensed, 40)
B2.reagents.add_reagent(/decl/reagent/sugar, 40)
B2.reagents.add_reagent(/decl/reagent/capsaicin/condensed, 80)
detonator = new/obj/item/device/assembly_holder/timer_igniter(src)
@@ -358,10 +358,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(/datum/reagent/surfactant, 40)
B1.reagents.add_reagent(/datum/reagent/toxin/fertilizer/monoammoniumphosphate, 20)
B2.reagents.add_reagent(/datum/reagent/water, 40)
B2.reagents.add_reagent(/datum/reagent/toxin/fertilizer/monoammoniumphosphate, 20)
B1.reagents.add_reagent(/decl/reagent/surfactant, 40)
B1.reagents.add_reagent(/decl/reagent/toxin/fertilizer/monoammoniumphosphate, 20)
B2.reagents.add_reagent(/decl/reagent/water, 40)
B2.reagents.add_reagent(/decl/reagent/toxin/fertilizer/monoammoniumphosphate, 20)
detonator = new/obj/item/device/assembly_holder/timer_igniter(src)
@@ -108,7 +108,7 @@
/obj/item/grenade/flashbang/clusterbang/prime()
var/numspawned = rand(4,8)
var/again = 0
var/atom/A = loc
var/atom/A = get_turf(src)
for(var/more = numspawned,more > 0,more--)
if(prob(35))
again++
@@ -148,7 +148,7 @@
for(var/more = numspawned,more > 0,more--)
if(prob(35))
numspawned --
var/atom/A = src.loc
var/atom/A = get_turf(src)
for(,numspawned > 0, numspawned--)
spawn(0)
new /obj/item/grenade/flashbang/cluster(A)
@@ -348,7 +348,7 @@
applies_material_colour = FALSE
default_material = "steel"
parry_chance = 5
var/fuel_type = /datum/reagent/fuel
var/fuel_type = /decl/reagent/fuel
var/opendelay = 30 // How long it takes to perform a door opening action with this chainsaw, in seconds.
var/max_fuel = 300 // The maximum amount of fuel the chainsaw stores.
var/fuel_cost = 1 // Multiplier for fuel cost.
@@ -427,8 +427,8 @@
/obj/item/material/twohanded/chainsaw/proc/RemoveFuel(var/amount = 1)
if(reagents && istype(reagents))
amount *= fuel_cost
reagents.remove_reagent(fuel_type, Clamp(amount,0,reagents.get_reagent_amount(fuel_type)))
if(reagents.get_reagent_amount(fuel_type) <= 0)
reagents.remove_reagent(fuel_type, Clamp(amount,0,REAGENT_VOLUME(reagents, fuel_type)))
if(REAGENT_VOLUME(reagents, fuel_type) <= 0)
PowerDown()
else
PowerDown()
@@ -450,7 +450,7 @@
/obj/item/material/twohanded/chainsaw/examine(mob/user)
if(..(user, 1))
to_chat(user, "A heavy-duty chainsaw meant for cutting wood. Contains <b>[round(reagents.get_reagent_amount(fuel_type))]</b> unit\s of fuel.")
to_chat(user, "A heavy-duty chainsaw meant for cutting wood. Contains <b>[round(REAGENT_VOLUME(reagents, fuel_type))]</b> unit\s of fuel.")
if(powered)
to_chat(user, SPAN_NOTICE("It is currently powered on."))
@@ -494,7 +494,7 @@
PowerDown(user)
else if(!wielded)
to_chat(user, SPAN_WARNING("You need to hold this with two hands to turn this on."))
else if(reagents.get_reagent_amount(/datum/reagent/fuel) <= 0)
else if(REAGENT_VOLUME(reagents, /decl/reagent/fuel) <= 0)
user.visible_message(SPAN_WARNING("[user] pulls the cord on \the [src], but nothing happens."), SPAN_WARNING("You pull the cord on \the [src], but nothing happens."), SPAN_NOTICE("You hear a cord being pulled."))
else
var/max = rand(3,6)
+1 -1
View File
@@ -77,7 +77,7 @@
cleantime = 15
var/refill_enabled = TRUE //Self-refill toggle for when a janitor decides to mop with something other than water.
var/refill_rate = 0.5 //Rate per process() tick mop refills itself
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
var/refill_reagent = /decl/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()
..()
+10 -10
View File
@@ -14,14 +14,14 @@
volume = 60
unacidable = 0
flags = OPENCONTAINER
shatter = FALSE
fragile = 0
var/paint_reagent = null //name of the reagent responsible for colouring the paint
var/paint_type = null //used for colouring detective technicolor coat and hat
reagents_to_add = list(/datum/reagent/water = 3/5, /datum/reagent/toxin/plasticide = 1/5)
reagents_to_add = list(/decl/reagent/paint = 4/5)
/obj/item/reagent_containers/glass/paint/Initialize()
reagents_to_add[paint_reagent] = 1/5
for(var/datum/reagent/R in reagents_to_add)
for(var/decl/reagent/R in reagents_to_add)
reagents_to_add[R] *= volume
. = ..()
reagents.handle_reactions()
@@ -54,29 +54,29 @@
update_icon()
/obj/item/reagent_containers/glass/paint/red
paint_reagent = /datum/reagent/crayon_dust/red
paint_reagent = /decl/reagent/crayon_dust/red
paint_type = "red"
/obj/item/reagent_containers/glass/paint/yellow
paint_reagent = /datum/reagent/crayon_dust/yellow
paint_reagent = /decl/reagent/crayon_dust/yellow
paint_type = "yellow"
/obj/item/reagent_containers/glass/paint/green
paint_reagent = /datum/reagent/crayon_dust/green
paint_reagent = /decl/reagent/crayon_dust/green
paint_type = "green"
/obj/item/reagent_containers/glass/paint/blue
paint_reagent = /datum/reagent/crayon_dust/blue
paint_reagent = /decl/reagent/crayon_dust/blue
paint_type = "blue"
/obj/item/reagent_containers/glass/paint/purple
paint_reagent = /datum/reagent/crayon_dust/purple
paint_reagent = /decl/reagent/crayon_dust/purple
paint_type = "purple"
/obj/item/reagent_containers/glass/paint/black
paint_reagent = /datum/reagent/carbon
paint_reagent = /decl/reagent/carbon
paint_type = "black"
/obj/item/reagent_containers/glass/paint/white
paint_reagent = /datum/reagent/aluminum
paint_reagent = /decl/reagent/aluminum
paint_type = "white"
+1 -1
View File
@@ -29,7 +29,7 @@
/obj/item/soap/proc/wet()
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
reagents.add_reagent(/datum/reagent/spacecleaner, capacity)
reagents.add_reagent(/decl/reagent/spacecleaner, capacity)
/obj/item/soap/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/key))
@@ -28,14 +28,14 @@
if(!proximity)
return
if(user.mind && (user.mind.assigned_role == "Chaplain"))
if(A.reagents && A.reagents.has_reagent(/datum/reagent/water)) //blesses all the water in the holder
if(A.reagents.get_reagent_amount(/datum/reagent/water) > 60)
if(A.reagents && A.reagents.has_reagent(/decl/reagent/water)) //blesses all the water in the holder
if(REAGENT_VOLUME(A.reagents, /decl/reagent/water) > 60)
to_chat(user, SPAN_NOTICE("There's too much water for you to bless at once!"))
else
to_chat(user, SPAN_NOTICE("You bless the water in [A], turning it into holy water."))
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)
var/water2holy = REAGENT_VOLUME(A.reagents, /decl/reagent/water)
A.reagents.del_reagent(/decl/reagent/water)
A.reagents.add_reagent(/decl/reagent/water/holywater, water2holy)
/obj/item/storage/bible/attackby(obj/item/W as obj, mob/user as mob)
if(src.use_sound)
@@ -133,6 +133,7 @@
item_state = "candlepack"
icon_type = "candle"
storage_type = "pack"
w_class = ITEMSIZE_SMALL
throwforce = 2
slot_flags = SLOT_BELT
storage_slots = 5
@@ -40,18 +40,21 @@
if(temp && !temp.is_usable())
to_chat(user, SPAN_NOTICE("You try to move your [temp.name], but cannot!"))
return
var/response = ""
if(amount > 0)
response = alert(user, "Do you take a pair of gloves?", "Take gloves?", "Yes", "No")
if (response != "Yes")
var/list/glove_types = list(
"Standard Gloves" = /obj/item/clothing/gloves/latex/nitrile,
"Unathi Gloves" = /obj/item/clothing/gloves/latex/nitrile/unathi,
"Tajara Gloves" = /obj/item/clothing/gloves/latex/nitrile/tajara
)
var/chosen_type = input(user, "Which pair of gloves would you like?", capitalize_first_letters(name)) as null|anything in glove_types
if(!chosen_type)
add_fingerprint(user)
return
amount--
var/obj/item/clothing/gloves/latex/nitrile/P
P = new()
P.forceMove(user.loc)
var/chosen_path = glove_types[chosen_type]
var/obj/item/clothing/gloves/latex/nitrile/P = new chosen_path(get_turf(src))
user.put_in_hands(P)
to_chat(user, SPAN_NOTICE("You take [P] out of [src]."))
to_chat(user, SPAN_NOTICE("You take \the [P] out of \the [src]."))
else
to_chat(user, SPAN_NOTICE("[src] is empty!"))
@@ -181,31 +181,31 @@
..()
var/obj/item/storage/box/fancy/cigarettes/pack
pack = new /obj/item/storage/box/fancy/cigarettes(src)
fill_cigarre_package(pack, list(/datum/reagent/aluminum = 5, /datum/reagent/potassium = 5, /datum/reagent/sulfur = 5))
fill_cigarre_package(pack, list(/decl/reagent/aluminum = 5, /decl/reagent/potassium = 5, /decl/reagent/sulfur = 5))
pack.desc += " 'F' has been scribbled on it."
pack = new /obj/item/storage/box/fancy/cigarettes(src)
fill_cigarre_package(pack, list(/datum/reagent/aluminum = 5, /datum/reagent/potassium = 5, /datum/reagent/sulfur = 5))
fill_cigarre_package(pack, list(/decl/reagent/aluminum = 5, /decl/reagent/potassium = 5, /decl/reagent/sulfur = 5))
pack.desc += " 'F' has been scribbled on it."
pack = new /obj/item/storage/box/fancy/cigarettes(src)
fill_cigarre_package(pack, list(/datum/reagent/potassium = 5, /datum/reagent/sugar = 5, /datum/reagent/phosphorus = 5))
fill_cigarre_package(pack, list(/decl/reagent/potassium = 5, /decl/reagent/sugar = 5, /decl/reagent/phosphorus = 5))
pack.desc += " 'S' has been scribbled on it."
pack = new /obj/item/storage/box/fancy/cigarettes(src)
fill_cigarre_package(pack, list(/datum/reagent/potassium = 5, /datum/reagent/sugar = 5, /datum/reagent/phosphorus = 5))
fill_cigarre_package(pack, list(/decl/reagent/potassium = 5, /decl/reagent/sugar = 5, /decl/reagent/phosphorus = 5))
pack.desc += " 'S' has been scribbled on it."
pack = new /obj/item/storage/box/fancy/cigarettes(src)
// Dylovene. Going with 1.5 rather than 1.6666666...
fill_cigarre_package(pack, list(/datum/reagent/potassium = 1.5, /datum/reagent/ammonia = 1.5, /datum/reagent/silicon = 1.5))
fill_cigarre_package(pack, list(/decl/reagent/potassium = 1.5, /decl/reagent/ammonia = 1.5, /decl/reagent/silicon = 1.5))
// Mindbreaker
fill_cigarre_package(pack, list(/datum/reagent/silicon = 4.5, /datum/reagent/hydrazine = 4.5, /datum/reagent/dylovene = 4.5))
fill_cigarre_package(pack, list(/decl/reagent/silicon = 4.5, /decl/reagent/hydrazine = 4.5, /decl/reagent/dylovene = 4.5))
pack.desc += " 'MB' has been scribbled on it."
pack = new /obj/item/storage/box/fancy/cigarettes(src)
pack.reagents.add_reagent(/datum/reagent/tricordrazine, 15 * pack.storage_slots)
pack.reagents.add_reagent(/decl/reagent/tricordrazine, 15 * pack.storage_slots)
pack.desc += " 'T' has been scribbled on it."
new /obj/item/flame/lighter/zippo(src)
@@ -252,4 +252,4 @@
desc = "Comes with 4x autoinjectors filled with drugs to counter chemical side-effects. Each injector has 2 uses."
starts_with = list(
/obj/item/reagent_containers/hypospray/autoinjector/sideeffectbgone = 4
)
)
@@ -127,10 +127,7 @@
desc = "A janitorial watertank backpack with nozzle to clean dirt and graffiti."
icon_state = "waterpackjani"
item_state = "waterpackjani"
/obj/item/watertank/janitor/Initialize()
. = ..()
reagents.add_reagent(/datum/reagent/spacecleaner, 500)
reagents_to_add = list(/decl/reagent/spacecleaner = 500)
/obj/item/reagent_containers/spray/chemsprayer/mister/janitor
name = "janitor spray nozzle"
+6 -6
View File
@@ -267,7 +267,7 @@
var/datum/reagents/R = new/datum/reagents(max_fuel)
reagents = R
R.my_atom = src
R.add_reagent(/datum/reagent/fuel, max_fuel)
R.add_reagent(/decl/reagent/fuel, max_fuel)
update_icon()
/obj/item/weldingtool/update_icon()
@@ -443,7 +443,7 @@
//Returns the amount of fuel in the welder
/obj/item/weldingtool/proc/get_fuel()
return reagents.get_reagent_amount(/datum/reagent/fuel)
return REAGENT_VOLUME(reagents, /decl/reagent/fuel)
//Removes fuel from the welding tool. If a mob is passed, it will perform an eyecheck on the mob. This should probably be renamed to use()
/obj/item/weldingtool/proc/remove_fuel(var/amount = 1, var/mob/M = null, var/colourChange = TRUE)
@@ -453,7 +453,7 @@
set_light(0.7, 2, l_color = LIGHT_COLOR_CYAN)
addtimer(CALLBACK(src, /atom/proc/update_icon), 5)
if(get_fuel() >= amount)
reagents.remove_reagent(/datum/reagent/fuel, amount)
reagents.remove_reagent(/decl/reagent/fuel, amount)
if(M)
eyecheck(M)
return 1
@@ -574,7 +574,7 @@
var/gen_amount = ((world.time-last_gen) / fuelgen_delay)
var/remainder = max_fuel - get_fuel()
gen_amount = min(gen_amount, remainder)
reagents.add_reagent(/datum/reagent/fuel, gen_amount)
reagents.add_reagent(/decl/reagent/fuel, gen_amount)
if(get_fuel() >= max_fuel)
set_processing(0)
else
@@ -821,6 +821,6 @@
else if(UserLoc == slot_r_hand)
user.apply_damage(5, BURN, BP_R_HAND)
to_chat(user, SPAN_DANGER("The steel wool burns your right hand!"))
new /obj/effect/decal/cleanable/ash(get_turf(src))
qdel(src)
qdel(src)
+2 -1
View File
@@ -567,7 +567,8 @@
allowed_mobs = list(
/mob/living/simple_animal/hostile/retaliate/goat, /mob/living/simple_animal/cow, /mob/living/simple_animal/corgi/fox,
/mob/living/simple_animal/hostile/carp, /mob/living/simple_animal/hostile/bear, /mob/living/simple_animal/hostile/alien, /mob/living/simple_animal/hostile/giant_spider,
/mob/living/simple_animal/hostile/commanded/dog, /mob/living/simple_animal/hostile/retaliate/cavern_dweller, /mob/living/carbon/human/)
/mob/living/simple_animal/hostile/commanded/dog, /mob/living/simple_animal/hostile/retaliate/cavern_dweller, /mob/living/carbon/human,
/mob/living/simple_animal/pig)
/obj/item/trap/animal/large/attack_hand(mob/user)
if(user == buckled_mob)
@@ -13,7 +13,7 @@
var/datum/reagents/R = new/datum/reagents(max_fuel) //Lotsa refills
reagents = R
R.my_atom = src
R.add_reagent(/datum/reagent/fuel, max_fuel)
R.add_reagent(/decl/reagent/fuel, max_fuel)
/obj/item/weldpack/attackby(obj/item/W as obj, mob/user as mob)
if(W.iswelder())
+30 -1
View File
@@ -363,6 +363,35 @@
/obj/item/toy/balloon/candycane = 1
)
/obj/random/desktoy
name = "random desk toy"
desc = "This is a random desk toy."
icon = 'icons/obj/toy.dmi'
icon_state = "dippybird"
spawnlist = list(
/obj/item/toy/desk/newtoncradle,
/obj/item/toy/desk/fan,
/obj/item/toy/desk/officetoy,
/obj/item/toy/desk/dippingbird
)
/obj/random/lavalamp
name = "random lava lamp"
desc = "This is a random lava lamp."
icon = 'icons/obj/lighting.dmi'
icon_state = "lavalamp"
spawnlist = list(
/obj/item/device/flashlight/lamp/lava,
/obj/item/device/flashlight/lamp/lava/red,
/obj/item/device/flashlight/lamp/lava/orange,
/obj/item/device/flashlight/lamp/lava/yellow,
/obj/item/device/flashlight/lamp/lava/green,
/obj/item/device/flashlight/lamp/lava/cyan,
/obj/item/device/flashlight/lamp/lava/blue,
/obj/item/device/flashlight/lamp/lava/purple,
/obj/item/device/flashlight/lamp/lava/pink
)
/obj/random/smalltank
name = "random small tank"
@@ -1701,4 +1730,4 @@
/obj/item/pizzabox/mushroom,
/obj/item/pizzabox/meat,
/obj/item/pizzabox/pineapple
)
)
@@ -118,20 +118,24 @@
//Supply
new /obj/item/storage/box/flashbangs(src)
//Appearance
new /obj/item/storage/backpack/security(src)
new /obj/item/storage/backpack/satchel_sec(src)
new /obj/item/clothing/under/rank/head_of_security(src)
new /obj/item/clothing/under/rank/head_of_security/corp(src)
new /obj/item/clothing/suit/storage/toggle/armor/hos(src)
new /obj/item/clothing/suit/armor/hos(src)
if(prob(50))
new /obj/item/storage/backpack/security(src)
else
new /obj/item/storage/backpack/satchel_sec(src)
new /obj/item/clothing/suit/storage/vest/hos(src)
new /obj/item/clothing/head/hos/cap(src)
new /obj/item/clothing/head/hos/cap/alt(src)
if(prob(50))
new /obj/item/clothing/under/rank/head_of_security(src)
new /obj/item/clothing/head/beret/security/hos(src)
new /obj/item/clothing/head/hos(src)
else
new /obj/item/clothing/under/rank/head_of_security/corp(src)
new /obj/item/clothing/head/beret/security/hos/corp(src)
new /obj/item/clothing/head/hos/corp(src)
new /obj/item/clothing/head/helmet/hos(src)
new /obj/item/clothing/head/beret/security/hos(src)
new /obj/item/clothing/head/beret/security/hos/alt(src)
new /obj/item/clothing/suit/security/hos(src)
new /obj/item/clothing/accessory/badge/hos(src)
new /obj/item/clothing/gloves/black_leather(src)
new /obj/item/clothing/suit/storage/toggle/armor/hos(src)
//Tools
new /obj/item/device/radio/headset/heads/hos(src)
new /obj/item/device/radio/headset/heads/hos/alt(src)
@@ -165,16 +169,21 @@
/obj/structure/closet/secure_closet/hos2/fill()
//Appearance
new /obj/item/storage/backpack/security(src)
new /obj/item/storage/backpack/satchel_sec(src)
new /obj/item/clothing/under/rank/head_of_security(src)
new /obj/item/clothing/under/rank/head_of_security/corp(src)
if(prob(50))
new /obj/item/storage/backpack/security(src)
else
new /obj/item/storage/backpack/satchel_sec(src)
new /obj/item/clothing/suit/storage/vest/hos(src)
new /obj/item/clothing/head/beret/security/hos(src)
new /obj/item/clothing/head/beret/security/hos/alt(src)
new /obj/item/clothing/head/hos/cap(src)
new /obj/item/clothing/head/hos/cap/alt(src)
if(prob(50)) // chance to spawn either corporate or regular outfit. to prevent locker bloat which makes it lag when right clicked
new /obj/item/clothing/under/rank/head_of_security(src)
new /obj/item/clothing/head/beret/security/hos(src)
new /obj/item/clothing/head/hos(src)
else
new /obj/item/clothing/under/rank/head_of_security/corp(src)
new /obj/item/clothing/head/beret/security/corp(src)
new /obj/item/clothing/head/hos/corp(src)
new /obj/item/clothing/head/helmet/hos(src)
new /obj/item/clothing/suit/security/hos(src)
//Tools
new /obj/item/clothing/glasses/sunglasses/sechud/aviator(src)
new /obj/item/device/radio/headset/heads/hos(src)
@@ -206,15 +215,19 @@
else
new /obj/item/storage/backpack/satchel_sec(src)
new /obj/item/clothing/suit/storage/vest/warden(src)
new /obj/item/clothing/under/rank/warden(src)
new /obj/item/clothing/under/rank/warden/corp(src)
new /obj/item/clothing/suit/armor/vest/warden(src)
new /obj/item/clothing/suit/armor/vest/warden/commissar(src)
new /obj/item/clothing/head/beret/security/warden(src)
new /obj/item/clothing/head/warden/commissar(src)
new /obj/item/clothing/head/warden(src)
new /obj/item/clothing/head/warden/alt(src)
if(prob(50))
if(prob(50))
new /obj/item/clothing/under/rank/warden(src)
else
new /obj/item/clothing/under/rank/warden/blue(src)
new /obj/item/clothing/head/beret/security/warden(src)
new /obj/item/clothing/head/warden(src)
else
new /obj/item/clothing/under/rank/warden/corp(src)
new /obj/item/clothing/head/beret/security/corp(src)
new /obj/item/clothing/head/warden/corp(src)
new /obj/item/clothing/head/helmet(src)
new /obj/item/clothing/suit/security/warden(src)
new /obj/item/clothing/accessory/badge/warden(src)
new /obj/item/clothing/gloves/black_leather(src)
//Tools
@@ -251,6 +264,7 @@
else
new /obj/item/storage/backpack/satchel_sec(src)
new /obj/item/clothing/head/beret/security(src)
new /obj/item/clothing/head/softcap/security(src)
new /obj/item/clothing/suit/storage/hazardvest/cadet(src)
new /obj/item/clothing/under/rank/cadet(src)
//Tools
@@ -285,11 +299,20 @@
new /obj/item/storage/backpack/security(src)
else
new /obj/item/storage/backpack/satchel_sec(src)
new /obj/item/clothing/head/softcap/security/corp(src)
new /obj/item/clothing/head/beret/security/corp(src)
new /obj/item/clothing/under/rank/security/corp(src)
new /obj/item/clothing/suit/storage/vest/officer(src)
if(prob(50))
if(prob(50))
new /obj/item/clothing/under/rank/security(src)
else
new /obj/item/clothing/under/rank/security/blue(src)
new /obj/item/clothing/head/beret/security/officer(src)
new /obj/item/clothing/head/softcap/security(src)
else
new /obj/item/clothing/under/rank/security/corp(src)
new /obj/item/clothing/head/beret/security/corp(src)
new /obj/item/clothing/head/softcap/security/corp(src)
new /obj/item/clothing/head/helmet(src)
new /obj/item/clothing/suit/security/officer(src)
new /obj/item/clothing/accessory/badge/officer(src)
new /obj/item/clothing/mask/gas/alt(src)
//Tools
@@ -375,9 +398,9 @@
/obj/structure/closet/secure_closet/csi/fill()
//Appearance
new /obj/item/clothing/suit/storage/forensics/blue(src)
new /obj/item/clothing/suit/storage/forensics/red(src)
new /obj/item/clothing/suit/storage/vest/csi(src)
new /obj/item/clothing/gloves/black(src)
new /obj/item/clothing/suit/storage/toggle/forensics(src)
new /obj/item/clothing/suit/storage/vest/ft(src)
new /obj/item/clothing/under/det/forensics(src)
new /obj/item/clothing/under/det/black(src)
new /obj/item/clothing/under/det/classic(src)
@@ -51,6 +51,10 @@
name = "cow crate"
held_type = /mob/living/simple_animal/cow
/obj/structure/largecrate/animal/pig
name = "pig crate"
held_type = /mob/living/simple_animal/pig
/obj/structure/largecrate/animal/goat
name = "goat crate"
held_type = /mob/living/simple_animal/hostile/retaliate/goat
+6 -6
View File
@@ -6,7 +6,7 @@
anchored = TRUE
density = FALSE
layer = ABOVE_CABLE_LAYER
var/datum/reagent/reagent_id
var/decl/reagent/reagent_id
var/state = 0
var/health = 100
var/mine_rate = 1 // how fast you can mine it
@@ -16,7 +16,7 @@
/obj/structure/reagent_crystal/Initialize(mapload, var/reagent_i = null, var/our_creator = null)
. = ..()
if(!reagent_i)
var/list/chems = list(/datum/reagent/acetone, /datum/reagent/aluminum, /datum/reagent/ammonia, /datum/reagent/carbon, /datum/reagent/copper, /datum/reagent/iron, /datum/reagent/lithium, /datum/reagent/mercury, /datum/reagent/potassium, /datum/reagent/radium, /datum/reagent/sodium)
var/list/chems = list(/decl/reagent/acetone, /decl/reagent/aluminum, /decl/reagent/ammonia, /decl/reagent/carbon, /decl/reagent/copper, /decl/reagent/iron, /decl/reagent/lithium, /decl/reagent/mercury, /decl/reagent/potassium, /decl/reagent/radium, /decl/reagent/sodium)
reagent_i = pick(chems)
reagent_id = reagent_i
name = replacetext(name, "chemical", lowertext(initial(reagent_id.name)))
@@ -158,12 +158,12 @@
/obj/item/reagent_crystal/Initialize(mapload, reagent_i, amount)
. = ..()
create_reagents(5)
create_reagents(max(5, amount))
reagents.add_reagent(reagent_i, amount)
var/datum/reagent/R = new reagent_i
var/decl/reagent/R = decls_repository.get_decl(reagent_i)
name = "[lowertext(R.name)] crystal"
desc = "A [lowertext(R.name)] crystal. It looks rough, unprocessed."
desc_info = "This crystal can be grinded to obtain the chemical material locked within."
desc_info = "This crystal can be ground to obtain the chemical material locked within."
color = reagents.get_color()
/obj/item/storage/bag/crystal
@@ -173,4 +173,4 @@
icon_state = "satchel"
slot_flags = SLOT_BELT | SLOT_POCKET
max_storage_space = 100
can_hold = list(/obj/item/reagent_crystal)
can_hold = list(/obj/item/reagent_crystal)
+1 -1
View File
@@ -32,7 +32,7 @@
myreplacer = new /obj/item/device/lightreplacer(src)
mybucket = new /obj/structure/mopbucket(src)
mybucket.reagents.add_reagent(/datum/reagent/water, mybucket.bucketsize)
mybucket.reagents.add_reagent(/decl/reagent/water, mybucket.bucketsize)
for(signs, signs < 4, signs++)
new /obj/item/clothing/suit/caution(src)
+2 -3
View File
@@ -50,16 +50,15 @@
/obj/structure/plasticflaps/attackby(obj/item/W, mob/user)
if(manipulating) return
manipulating = TRUE
if(W.iswirecutter() || W.sharp && !W.noslice)
manipulating = TRUE
visible_message(SPAN_NOTICE("[user] begins cutting down \the [src]."),
SPAN_NOTICE("You begin cutting down \the [src]."))
if(!do_after(user, 30/W.toolspeed))
manipulating = FALSE
return
playsound(src.loc, 'sound/items/wirecutter.ogg', 50, 1)
visible_message(SPAN_NOTICE("[user] cuts down \the [src]."),
SPAN_NOTICE("You cut down \the [src]."))
visible_message(SPAN_NOTICE("[user] cuts down \the [src]."), SPAN_NOTICE("You cut down \the [src]."))
dismantle()
/obj/structure/plasticflaps/mining //A specific type for mining that doesn't allow airflow because of them damn crates
+5 -5
View File
@@ -235,7 +235,7 @@
var/obj/effect/effect/water/W = new(O)
W.create_reagents(spray_amount)
W.reagents.add_reagent(/datum/reagent/water, spray_amount)
W.reagents.add_reagent(/decl/reagent/water, spray_amount)
W.set_up(O, spray_amount)
if(iscarbon(O))
@@ -364,7 +364,7 @@
return
is_washing = 1
var/turf/T = get_turf(src)
reagents.add_reagent(/datum/reagent/water, 2)
reagents.add_reagent(/decl/reagent/water, 2)
T.clean(src)
spawn(100)
is_washing = 0
@@ -472,7 +472,7 @@
to_chat(usr, SPAN_WARNING("\The [RG] is already full."))
return
RG.reagents.add_reagent(/datum/reagent/water, min(RG.volume - RG.reagents.total_volume, amount_per_transfer_from_this))
RG.reagents.add_reagent(/decl/reagent/water, min(RG.volume - RG.reagents.total_volume, amount_per_transfer_from_this))
user.visible_message("<b>[user]</b> fills \a [RG] using \the [src].",
SPAN_NOTICE("You fill \a [RG] using \the [src]."))
playsound(loc, 'sound/effects/sink.ogg', 75, 1)
@@ -497,7 +497,7 @@
return
var/trans = min(S.volume - S.reagents.total_volume, S.amount_per_transfer_from_this)
S.reagents.add_reagent(/datum/reagent/water, trans)
S.reagents.add_reagent(/decl/reagent/water, trans)
user.visible_message(SPAN_NOTICE("[usr] uses \the [S] to draw water from \the [src]."),
SPAN_NOTICE("You draw [trans] units of water from \the [src]. \The [S] now contains [S.reagents.total_volume] units."))
if(1) // inject
@@ -530,7 +530,7 @@
else if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube))
return
else if(istype(O, /obj/item/mop))
O.reagents.add_reagent(/datum/reagent/water, 5)
O.reagents.add_reagent(/decl/reagent/water, 5)
to_chat(user, SPAN_NOTICE("You wet \the [O] in \the [src]."))
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
return