mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-25 22:12:58 +01:00
Merge branch 'master' into placeholder
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
..()
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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,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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user