diff --git a/code/controllers/subsystem/processing/circuit.dm b/code/controllers/subsystem/processing/circuit.dm index 880e7a16..9c87035b 100644 --- a/code/controllers/subsystem/processing/circuit.dm +++ b/code/controllers/subsystem/processing/circuit.dm @@ -70,6 +70,7 @@ PROCESSING_SUBSYSTEM_DEF(circuit) /obj/item/electronic_assembly/large/arm, /obj/item/electronic_assembly/large/tall, /obj/item/electronic_assembly/large/industrial, + /obj/item/electronic_assembly/large/vendor, /obj/item/electronic_assembly/drone/default, /obj/item/electronic_assembly/drone/arms, /obj/item/electronic_assembly/drone/secbot, diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index 38629673..9fc3ba34 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -766,6 +766,11 @@ icon_state = "setup_large_industrial" desc = "It's a case, for building large electronics with. This one resembles some kind of industrial machinery." +/obj/item/electronic_assembly/large/vendor + name = "type-g electronic machine" + icon_state = "setup_large_vendor" + desc = "It's a case, for building large electronics with. This one resembles a vending machine." + /obj/item/electronic_assembly/drone name = "electronic drone" icon_state = "setup_drone" diff --git a/hyperstation/code/modules/integrated_electronics/input.dm b/hyperstation/code/modules/integrated_electronics/input.dm new file mode 100644 index 00000000..d6516cae --- /dev/null +++ b/hyperstation/code/modules/integrated_electronics/input.dm @@ -0,0 +1,76 @@ +/obj/item/integrated_circuit/input/gmeasurement + name = "body measurement" + desc = "Used to get a measurement of a refs genitals size and body size." + icon_state = "medscan" + complexity = 5 + extended_desc = "Upon activation, the circuit will attempt to measure all body parts on the refs body within one tile away." + inputs = list("target" = IC_PINTYPE_REF) + outputs = list( + "penis length" = IC_PINTYPE_NUMBER, + "breast size" = IC_PINTYPE_NUMBER, + "testicle size" = IC_PINTYPE_NUMBER, + "body size" = IC_PINTYPE_NUMBER + ) + activators = list("scan" = IC_PINTYPE_PULSE_IN, "on scanned" = IC_PINTYPE_PULSE_OUT) + spawn_flags = IC_SPAWN_RESEARCH + power_draw_per_use = 40 + cooldown_per_use = 20 + ext_cooldown = 25 + +/obj/item/integrated_circuit/input/gmeasurement/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 + + var/obj/item/organ/genital/penis/P = L.getorganslot("penis") + var/obj/item/organ/genital/breasts/B = L.getorganslot("breasts") + var/obj/item/organ/genital/testicles/T = L.getorganslot("testicles") + +//reset data, just incase they dont have that genitle + set_pin_data(IC_OUTPUT, 1, 0) + set_pin_data(IC_OUTPUT, 2, 0) + set_pin_data(IC_OUTPUT, 3, 0) + set_pin_data(IC_OUTPUT, 4, 0) + +//get sizes + set_pin_data(IC_OUTPUT, 1, P.length) + set_pin_data(IC_OUTPUT, 2, B.cached_size) + set_pin_data(IC_OUTPUT, 3, T.cached_size ) + set_pin_data(IC_OUTPUT, 4, L.size_multiplier*100) + push_data() + activate_pin(2) + +/obj/item/integrated_circuit/input/pregtest + name = "pregnancy tester" + desc = "A circuit used to determine whether someone is pregnant or not and if they possess the abbility to be imprengated." + icon_state = "medscan" + complexity = 5 + inputs = list("target" = IC_PINTYPE_REF) + outputs = list( + "is pregnant" = IC_PINTYPE_BOOLEAN, + "breedable" = 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 + cooldown_per_use = 20 + ext_cooldown = 25 + +/obj/item/integrated_circuit/input/pregtest/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 + + var/obj/item/organ/genital/womb/W = L.getorganslot("womb") + + + set_pin_data(IC_OUTPUT, 1, null) + set_pin_data(IC_OUTPUT, 2, null) + set_pin_data(IC_OUTPUT, 1, W.pregnant) + set_pin_data(IC_OUTPUT, 2, L.breedable) + push_data() + activate_pin(2) diff --git a/icons/obj/assemblies/electronic_setups.dmi b/icons/obj/assemblies/electronic_setups.dmi index 5804c3f8..0adc98da 100644 Binary files a/icons/obj/assemblies/electronic_setups.dmi and b/icons/obj/assemblies/electronic_setups.dmi differ diff --git a/tgstation.dme b/tgstation.dme index f2725740..ff259b60 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -245,7 +245,6 @@ #include "code\controllers\subsystem\idlenpcpool.dm" #include "code\controllers\subsystem\input.dm" #include "code\controllers\subsystem\ipintel.dm" -#include "code\controllers\subsystem\item_spawning.dm" #include "code\controllers\subsystem\job.dm" #include "code\controllers\subsystem\jukeboxes.dm" #include "code\controllers\subsystem\language.dm" @@ -1031,7 +1030,6 @@ #include "code\game\objects\structures\tank_dispenser.dm" #include "code\game\objects\structures\target_stake.dm" #include "code\game\objects\structures\traps.dm" -#include "code\game\objects\structures\trash_piles.dm" #include "code\game\objects\structures\watercloset.dm" #include "code\game\objects\structures\windoor_assembly.dm" #include "code\game\objects\structures\window.dm" @@ -1819,7 +1817,6 @@ #include "code\modules\jobs\job_types\civilian_chaplain.dm" #include "code\modules\jobs\job_types\engineering.dm" #include "code\modules\jobs\job_types\job.dm" -#include "code\modules\jobs\job_types\job_alt_titles.dm" #include "code\modules\jobs\job_types\medical.dm" #include "code\modules\jobs\job_types\science.dm" #include "code\modules\jobs\job_types\security.dm" @@ -2900,6 +2897,7 @@ #include "hyperstation\code\modules\clothing\head.dm" #include "hyperstation\code\modules\crafting\bounties.dm" #include "hyperstation\code\modules\crafting\recipes.dm" +#include "hyperstation\code\modules\integrated_electronics\input.dm" #include "hyperstation\code\modules\patreon\patreon.dm" #include "hyperstation\code\modules\resize\holder_micro.dm" #include "hyperstation\code\modules\resize\resizing.dm"