Merge branch 'master' into screaming

This commit is contained in:
Poojawa
2019-04-20 23:33:23 -05:00
committed by GitHub
21 changed files with 194 additions and 60 deletions
+3 -2
View File
@@ -221,9 +221,10 @@
else // A variation of get_hear inlined here to take advantage of the compiler's fastpath for obj/mob in view
var/lum = T.luminosity
T.luminosity = 6 // This is the maximum luminosity
for(var/mob/M in view(R, T))
var/list/cachedview = view(R, T)
for(var/mob/M in cachedview)
processing_list += M
for(var/obj/O in view(R, T))
for(var/obj/O in cachedview)
processing_list += O
T.luminosity = lum
+6
View File
@@ -81,6 +81,12 @@
to_chat(usr, "<span class='danger'>The drip beeps: Warning, incompatible creature!</span>")
return
var/mob/living/L
if(isliving(target))
L = target
if(!L.can_inject(usr, 1))
return
if(Adjacent(target) && usr.Adjacent(target))
if(beaker)
usr.visible_message("<span class='warning'>[usr] attaches [src] to [target].</span>", "<span class='notice'>You attach [src] to [target].</span>")
+4 -4
View File
@@ -816,10 +816,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<tr><td colspan=4><hr></td></tr>"
dat += "<tr><td colspan=4><b><center>[gear_tab]</center></b></td></tr>"
dat += "<tr><td colspan=4><hr></td></tr>"
dat += "<tr style='vertical-align:top;'><td width=15%><b>Name</b></td>"
dat += "<td width=5% style='vertical-align:top'><b>Cost</b></td>"
dat += "<td><font size=2><b>Restrictions</b></font></td>"
dat += "<td><font size=2><b>Description</b></font></td></tr>"
dat += "<tr width=10% style='vertical-align:top;'><td width=15%><b>Name</b></td>"
dat += "<td style='vertical-align:top'><b>Cost</b></td>"
dat += "<td width=10%><font size=2><b>Restrictions</b></font></td>"
dat += "<td width=80%><font size=2><b>Description</b></font></td></tr>"
for(var/j in GLOB.loadout_items[gear_tab])
var/datum/gear/gear = GLOB.loadout_items[gear_tab][j]
var/donoritem
+6 -1
View File
@@ -27,14 +27,19 @@
if("mam_snouts" in pref_species.default_features)
if(H.dna.features["mam_snouts"] != "None")
muzzle_var = ALT_STYLE
else
muzzle_var = NORMAL_STYLE
else if("snout" in pref_species.default_features)
if(H.dna.features["snout"] != "None")
muzzle_var = ALT_STYLE
else
muzzle_var = NORMAL_STYLE
else
muzzle_var = NORMAL_STYLE
H.update_inv_head()
H.update_inv_head()
/obj/item/clothing/head/worn_overlays(isinhands = FALSE)
. = list()
+5
View File
@@ -30,10 +30,15 @@
if("mam_snouts" in pref_species.default_features)
if(H.dna.features["mam_snouts"] != "None")
muzzle_var = ALT_STYLE
else
muzzle_var = NORMAL_STYLE
else if("snout" in pref_species.default_features)
if(H.dna.features["snout"] != "None")
muzzle_var = ALT_STYLE
else
muzzle_var = NORMAL_STYLE
else
muzzle_var = NORMAL_STYLE
+63 -21
View File
@@ -13,16 +13,49 @@
var/list/vents = list()
var/randomProbability = 1
var/reagentsAmount = 100
var/list/saferChems = list("water","carbon","flour","cleaner","nutriment","condensedcapsaicin","mushroomhallucinogen","lube","pink_glitter","cryptobiolin",
"plantbgone","blood","charcoal","space_drugs","morphine","holywater","ethanol","hot_coco","sacid","mindbreaker","rotatium","bluespace",
"pax","laughter","concentrated_barbers_aid","colorful_reagent","dizzysolution","tiresolution","sodiumchloride","beer","hair_dye","sugar","white_glitter","growthserum")
var/list/saferChems = list(
"water",
"carbon",
"flour",
"cleaner",
"nutriment",
"condensedcapsaicin",
"mushroomhallucinogen",
"lube",
"pink_glitter",
"cryptobiolin",
"plantbgone",
"blood",
"charcoal",
"space_drugs",
"morphine",
"holywater",
"ethanol",
"hot_coco",
"sacid",
"mindbreaker",
"rotatium",
"bluespace",
"pax",
"laughter",
"concentrated_barbers_aid",
"colorful_reagent",
"dizzysolution",
"tiresolution",
"sodiumchloride",
"beer",
"hair_dye",
"sugar",
"white_glitter",
"growthserum"
)
//needs to be chemid unit checked at some point
/datum/round_event/vent_clog/announce()
priority_announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert")
/datum/round_event/vent_clog/setup()
endWhen = rand(25, 100)
endWhen = rand(120, 180)
for(var/obj/machinery/atmospherics/components/unary/vent_scrubber/temp_vent in GLOB.machines)
var/turf/T = get_turf(temp_vent)
if(T && is_station_level(T.z) && !temp_vent.welded)
@@ -30,25 +63,34 @@
if(!vents.len)
return kill()
/datum/round_event/vent_clog/start()
for(var/obj/machinery/atmospherics/components/unary/vent in vents)
if(vent && vent.loc)
var/datum/reagents/R = new/datum/reagents(1000)
R.my_atom = vent
if (prob(randomProbability))
R.add_reagent(get_random_reagent_id(), reagentsAmount)
else
R.add_reagent(pick(saferChems), reagentsAmount)
/datum/round_event/vent_clog/tick()
var/datum/effect_system/foam_spread/foam = new
foam.set_up(200, get_turf(vent), R)
foam.start()
if(!vents.len)
return kill()
var/cockroaches = prob(33) ? 3 : 0
while(cockroaches)
new /mob/living/simple_animal/cockroach(get_turf(vent))
cockroaches--
CHECK_TICK
CHECK_TICK
var/obj/machinery/atmospherics/components/unary/vent = pick(vents)
vents -= vent
if(!vent)
return
var/turf/T = get_turf(vent)
if(!T)
return
var/datum/reagents/R = new/datum/reagents(1000)
R.my_atom = vent
if (prob(randomProbability))
R.add_reagent(get_random_reagent_id(), reagentsAmount)
else
R.add_reagent(pick(saferChems), reagentsAmount)
var/datum/effect_system/smoke_spread/chem/C = new
C.set_up(R,16,T,TRUE)
C.start()
playsound(T, 'sound/effects/smoke.ogg', 50, 1, -3)
/datum/round_event_control/vent_clog/threatening
name = "Clogged Vents: Threatening"
@@ -1309,4 +1309,35 @@
set_pin_data(IC_OUTPUT, 2, regurgitated_contents)
push_data()
activate_pin(2)
//Degens
/obj/item/integrated_circuit/input/bonermeter
name = "bonermeter"
desc = "Detects the target's arousal and various statistics about the target's arousal levels. Invasive!"
icon_state = "medscan"
complexity = 4
inputs = list("target" = IC_PINTYPE_REF)
outputs = list(
"current arousal" = IC_PINTYPE_NUMBER,
"minimum arousal" = IC_PINTYPE_NUMBER,
"maximum arousal" = IC_PINTYPE_NUMBER,
"can be aroused" = IC_PINTYPE_BOOLEAN
)
activators = list("scan" = IC_PINTYPE_PULSE_IN, "on scanned" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_RESEARCH
power_draw_per_use = 40
/obj/item/integrated_circuit/input/bonermeter/do_work()
var/mob/living/L = get_pin_data_as_type(IC_INPUT, 1, /mob/living)
if(!istype(L) || !L.Adjacent(get_turf(src)) ) //Invalid input
return
set_pin_data(IC_OUTPUT, 1, L.getArousalLoss())
set_pin_data(IC_OUTPUT, 2, L.min_arousal)
set_pin_data(IC_OUTPUT, 3, L.max_arousal)
set_pin_data(IC_OUTPUT, 4, L.canbearoused)
push_data()
activate_pin(2)
@@ -144,7 +144,7 @@
w_class = WEIGHT_CLASS_SMALL
complexity = 10
cooldown_per_use = 1
ext_cooldown = 1
ext_cooldown = 2
inputs = list("direction" = IC_PINTYPE_DIR)
outputs = list("obstacle" = IC_PINTYPE_REF)
activators = list("step towards dir" = IC_PINTYPE_PULSE_IN,"on step"=IC_PINTYPE_PULSE_OUT,"blocked"=IC_PINTYPE_PULSE_OUT)
@@ -125,7 +125,7 @@
name = "man-machine interface tank"
desc = "This circuit is just a jar filled with an artificial liquid mimicking the cerebrospinal fluid."
extended_desc = "This jar can hold 1 man-machine interface and let it take control of some basic functions of the assembly."
complexity = 29
complexity = 60
inputs = list("laws" = IC_PINTYPE_LIST)
outputs = list(
"man-machine interface" = IC_PINTYPE_REF,
@@ -254,7 +254,7 @@
name = "pAI connector circuit"
desc = "This circuit lets you fit in a personal artificial intelligence to give it some form of control over the bot."
extended_desc = "You can wire various functions to it."
complexity = 29
complexity = 60
inputs = list("laws" = IC_PINTYPE_LIST)
outputs = list(
"personal artificial intelligence" = IC_PINTYPE_REF,
+1 -1
View File
@@ -963,7 +963,7 @@
prereq_ids = list("biotech","engineering")
boost_item_paths = list(/obj/item/gun/energy/alien, /obj/item/scalpel/alien, /obj/item/hemostat/alien, /obj/item/retractor/alien, /obj/item/circular_saw/alien,
/obj/item/cautery/alien, /obj/item/surgicaldrill/alien, /obj/item/screwdriver/abductor, /obj/item/wrench/abductor, /obj/item/crowbar/abductor, /obj/item/multitool/abductor,
/obj/item/weldingtool/abductor, /obj/item/wirecutters/abductor, /obj/item/circuitboard/machine/abductor, /obj/item/abductor_baton, /obj/item/abductor)
/obj/item/weldingtool/abductor, /obj/item/wirecutters/abductor, /obj/item/circuitboard/machine/abductor, /obj/item/abductor_baton, /obj/item/abductor, /obj/item/stack/sheet/mineral/abductor)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
export_price = 20000
hidden = TRUE