[MDB Ignore] [IDB Ignore] Kills off /obj/item/device (#21774)

This has zero reason to exist in our code base. We have no procs or
variables tied to this. I removed it to make future modifications
cleaner.

---------

Signed-off-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
This commit is contained in:
Cody Brittain
2026-02-01 00:14:26 -05:00
committed by GitHub
parent 75424095ac
commit 3f62424312
857 changed files with 8690 additions and 8599 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
/// If the ghost has antagHUD.
var/antagHUD = 0
/// Necessary for seeing wires.
var/obj/item/device/multitool/ghost_multitool
var/obj/item/multitool/ghost_multitool
/// The POI we're orbiting.
var/orbiting_ref
+2 -2
View File
@@ -321,8 +321,8 @@
return 1
if (M.l_ear || M.r_ear)
var/obj/item/device/radio/headset/dongle
if(istype(M.l_ear,/obj/item/device/radio/headset))
var/obj/item/radio/headset/dongle
if(istype(M.l_ear,/obj/item/radio/headset))
dongle = M.l_ear
else
dongle = M.r_ear
+3 -3
View File
@@ -23,7 +23,7 @@
var/last_emote = 0 // timer for emotes
var/can_take_pai = TRUE
var/obj/item/device/paicard/pAI
var/obj/item/paicard/pAI
var/old_name
/mob/living/bot/Initialize()
@@ -136,14 +136,14 @@
user.put_in_hands(pAI)
user.visible_message(SPAN_NOTICE("\The [user] pries \the [pAI.pai] out of \the [src]."), SPAN_NOTICE("You pry \the [pAI.pai] out of \the [src]."))
pAI = null
else if(istype(attacking_item, /obj/item/device/paicard))
else if(istype(attacking_item, /obj/item/paicard))
if(!can_take_pai)
to_chat(user, SPAN_WARNING("\The [src] cannot take a pAI!"))
return
if(pAI)
to_chat(user, SPAN_WARNING("\The [src] already has a pAI installed!"))
return
var/obj/item/device/paicard/P = attacking_item
var/obj/item/paicard/P = attacking_item
P.pai.open_up(FALSE)
P.pai.close_up()
user.drop_from_inventory(P, src)
+1 -1
View File
@@ -307,7 +307,7 @@ GLOBAL_LIST_INIT_TYPED(cleanbot_types, /obj/effect/decal/cleanable, typesof(/obj
visible_message(SPAN_WARNING("[src] blows apart!"))
var/turf/T = get_turf(src)
new /obj/item/reagent_containers/glass/bucket(T)
new /obj/item/device/assembly/prox_sensor(T)
new /obj/item/assembly/prox_sensor(T)
if(prob(50))
new /obj/item/robot_parts/l_arm(T)
spark(src, 3, GLOB.alldirs)
+3 -3
View File
@@ -327,8 +327,8 @@
new /obj/item/material/minihoe(T)
new /obj/item/reagent_containers/glass/bucket(T)
new /obj/item/device/assembly/prox_sensor(T)
new /obj/item/device/analyzer/plant_analyzer(T)
new /obj/item/assembly/prox_sensor(T)
new /obj/item/analyzer/plant_analyzer(T)
if(tank)
tank.forceMove(T)
if(prob(50))
@@ -384,7 +384,7 @@
/obj/item/farmbot_arm_assembly/attackby(obj/item/attacking_item, mob/user)
..()
if(istype(attacking_item, /obj/item/device/analyzer/plant_analyzer) && build_step == 0)
if(istype(attacking_item, /obj/item/analyzer/plant_analyzer) && build_step == 0)
build_step++
to_chat(user, SPAN_NOTICE("You add the plant analyzer to [src]."))
name = "farmbot assembly"
+5 -5
View File
@@ -127,7 +127,7 @@
if(!underlays.len)
underlays += image(firstaid_item.icon, firstaid_item.icon_state)
var/matrix/M = matrix()
var/image/ha_image = image('icons/obj/item/device/healthanalyzer.dmi', "health")
var/image/ha_image = image('icons/obj/item/healthanalyzer.dmi', "health")
M.Translate(5, 0)
ha_image.transform = M
underlays += ha_image
@@ -273,8 +273,8 @@
firstaid_item.forceMove(Tsec)
firstaid_item.contents = null
firstaid_item = null
new /obj/item/device/assembly/prox_sensor(Tsec)
new /obj/item/device/healthanalyzer(Tsec)
new /obj/item/assembly/prox_sensor(Tsec)
new /obj/item/healthanalyzer(Tsec)
if (prob(50))
new /obj/item/robot_parts/l_arm(Tsec)
@@ -369,14 +369,14 @@
else
switch(build_step)
if(0)
if(istype(attacking_item, /obj/item/device/healthanalyzer))
if(istype(attacking_item, /obj/item/healthanalyzer))
user.drop_from_inventory(attacking_item,get_turf(src))
qdel(attacking_item)
build_step++
to_chat(user, SPAN_NOTICE("You add the health sensor to [src]."))
name = "first-aid/robot arm/health analyzer assembly"
var/matrix/M = matrix()
var/image/ha_image = image('icons/obj/item/device/healthanalyzer.dmi', "health")
var/image/ha_image = image('icons/obj/item/healthanalyzer.dmi', "health")
M.Translate(5, 0)
ha_image.transform = M
underlays += ha_image
+27 -27
View File
@@ -4,7 +4,7 @@
#define STATE_DIODES 3 // brain gets prepared at this step
#define STATE_SEALED 4 // sealed and fully operation
/obj/item/device/mmi
/obj/item/mmi
name = "man-machine interface"
desc = "The delicate nature of organic brains required a more novel and permanent solution to the problem of just rotting in the old MMI cradles. Zeng-Hu's unique (and very proprietary) formaldehyde-analogue preservation solution was the key ingredient in what became the new Zeng-Hu/Hephaestus joint venture brain-cases."
icon = 'icons/obj/assemblies.dmi'
@@ -32,11 +32,11 @@
var/static/list/valid_braintype = list("Skrell", "Vaurca")
/obj/item/device/mmi/Initialize()
/obj/item/mmi/Initialize()
. = ..()
set_cradle_state(STATE_EMPTY)
/obj/item/device/mmi/update_icon()
/obj/item/mmi/update_icon()
underlays = null
switch(cradle_state) // there's probably a way to optimize this to not need to regenerate the image, but this'll happen once a round every month or so? no reason to.
if(STATE_EMPTY)
@@ -53,13 +53,13 @@
if(STATE_SEALED)
icon_state = "mmi-sealedon"
/obj/item/device/mmi/proc/update_name()
/obj/item/mmi/proc/update_name()
if(brainmob)
name = "[initial(name)]: [brainmob.real_name]"
else
name = initial(name)
/obj/item/device/mmi/proc/set_cradle_state(var/new_state)
/obj/item/mmi/proc/set_cradle_state(var/new_state)
cradle_state = new_state
switch(cradle_state)
if(STATE_EMPTY)
@@ -74,12 +74,12 @@
extra_examine_info = "The braincase is sealed and ready for use. The only thing that will undo the seal is a circular saw, and that will destroy the brain inside."
update_icon()
/obj/item/device/mmi/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
/obj/item/mmi/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
. = ..()
if(extra_examine_info)
. += SPAN_NOTICE(extra_examine_info)
/obj/item/device/mmi/attackby(obj/item/attacking_item, mob/user)
/obj/item/mmi/attackby(obj/item/attacking_item, mob/user)
switch(cradle_state)
if(STATE_EMPTY)
if(!brainmob && istype(attacking_item, /obj/item/organ/internal/brain)) //Time to stick a brain in it --NEO
@@ -145,7 +145,7 @@
set_cradle_state(STATE_EMPTY)
update_name()
/obj/item/device/mmi/attack_self(mob/user)
/obj/item/mmi/attack_self(mob/user)
if(cradle_state == STATE_BRAIN)
to_chat(user, SPAN_NOTICE("You flip the case over \the [brainobj], getting it in place for diode insertion."))
set_cradle_state(STATE_NODIODES)
@@ -153,7 +153,7 @@
to_chat(user, SPAN_NOTICE("You flip the case up, exposing \the [brainobj]."))
set_cradle_state(STATE_BRAIN)
/obj/item/device/mmi/attack_hand(mob/user)
/obj/item/mmi/attack_hand(mob/user)
if(brainobj && cradle_state == STATE_BRAIN && user.get_inactive_hand() == src)
to_chat(user, SPAN_NOTICE("You remove \the [brainobj] from \the [src]."))
user.put_in_hands(brainobj)
@@ -163,7 +163,7 @@
return
return ..()
/obj/item/device/mmi/proc/transfer_mob_to_brain()
/obj/item/mmi/proc/transfer_mob_to_brain()
brainmob.container = null //Reset brainmob mmi var.
brainmob.forceMove(brainobj) //Throw mob into brain.
GLOB.living_mob_list -= brainmob //Get outta here
@@ -172,7 +172,7 @@
brainmob = null
braintype = null
/obj/item/device/mmi/proc/ready_for_use(var/mob/user)
/obj/item/mmi/proc/ready_for_use(var/mob/user)
if(cradle_state != STATE_SEALED)
to_chat(user, SPAN_WARNING("\The [src] hasn't been completed and sealed yet!"))
return FALSE
@@ -181,7 +181,7 @@
return FALSE
return TRUE
/obj/item/device/mmi/proc/transfer_identity(var/mob/living/carbon/human/H)//Same deal as the regular brain proc. Used for human-->robot people.
/obj/item/mmi/proc/transfer_identity(var/mob/living/carbon/human/H)//Same deal as the regular brain proc. Used for human-->robot people.
brainmob = new(src)
brainmob.name = H.real_name
brainmob.real_name = H.real_name
@@ -191,7 +191,7 @@
set_cradle_state(STATE_SEALED)
update_name()
/obj/item/device/mmi/proc/braintype_check()
/obj/item/mmi/proc/braintype_check()
if(!brainobj)
return
var/species_check = brainobj.species.category_name
@@ -201,7 +201,7 @@
if("Vaurca")
braintype = "vaurca"
/obj/item/device/mmi/relaymove(mob/living/user, direction)
/obj/item/mmi/relaymove(mob/living/user, direction)
. = ..()
if(user.stat || user.stunned)
@@ -210,7 +210,7 @@
if(istype(rig))
rig.forced_move(direction, user)
/obj/item/device/mmi/emag_act(remaining_charges, mob/user, emag_source)
/obj/item/mmi/emag_act(remaining_charges, mob/user, emag_source)
if(cradle_state == STATE_SEALED)
if(memory_suppression)
to_chat(user, SPAN_NOTICE("You disable \the [src]'s memory suppression systems."))
@@ -228,7 +228,7 @@
memory_suppression = TRUE
return 1
/obj/item/device/mmi/Destroy()
/obj/item/mmi/Destroy()
if(isrobot(loc))
var/mob/living/silicon/robot/borg = loc
borg.mmi = null
@@ -243,20 +243,20 @@
return ..()
/obj/item/device/mmi/radio_enabled
/obj/item/mmi/radio_enabled
name = "radio-enabled man-machine interface"
desc = "The delicate nature of organic brains required a more novel and permanent solution to the problem of just rotting in the old MMI cradles. Zeng-Hu's unique (and very proprietary) formaldehyde-analogue preservation solution was the key ingredient in what became the new Zeng-Hu/Hephaestus joint venture brain-cases. This one comes with a built-in radio."
origin_tech = list(TECH_BIO = 4)
var/obj/item/device/radio/radio = null//Let's give it a radio.
var/obj/item/radio/radio = null//Let's give it a radio.
/obj/item/device/mmi/radio_enabled/Initialize()
/obj/item/mmi/radio_enabled/Initialize()
. = ..()
radio = new(src)//Spawns a radio inside the MMI.
radio.set_broadcasting(TRUE) //So it's broadcasting from the start.
//Allows the brain to toggle the radio functions.
/obj/item/device/mmi/radio_enabled/verb/Toggle_Broadcasting()
/obj/item/mmi/radio_enabled/verb/Toggle_Broadcasting()
set name = "Toggle Broadcasting"
set desc = "Toggle broadcasting channel on or off."
set category = "MMI"
@@ -269,7 +269,7 @@
radio.set_broadcasting(!radio.get_broadcasting())
to_chat(brainmob, SPAN_NOTICE("Radio is [radio.get_broadcasting() ? "now" : "no longer"] broadcasting."))
/obj/item/device/mmi/radio_enabled/verb/Toggle_Listening()
/obj/item/mmi/radio_enabled/verb/Toggle_Listening()
set name = "Toggle Listening"
set desc = "Toggle listening channel on or off."
set category = "MMI"
@@ -282,7 +282,7 @@
radio.set_listening(!radio.get_listening())
to_chat(brainmob, SPAN_NOTICE("Radio is [radio.get_listening() ? "now" : "no longer"] receiving broadcast."))
/obj/item/device/mmi/emp_act(severity)
/obj/item/mmi/emp_act(severity)
. = ..()
if(!brainmob)
@@ -294,7 +294,7 @@
if(EMP_LIGHT)
brainmob.emp_damage += rand(10,20)
/obj/item/device/mmi/digital/Initialize(mapload, ...)
/obj/item/mmi/digital/Initialize(mapload, ...)
. = ..()
brainmob = new(src)
brainmob.add_language(LANGUAGE_EAL)
@@ -302,23 +302,23 @@
brainmob.container = src
brainmob.silent = 0
/obj/item/device/mmi/digital/transfer_identity(var/mob/living/carbon/H)
/obj/item/mmi/digital/transfer_identity(var/mob/living/carbon/H)
brainmob.dna = H.dna
brainmob.timeofhostdeath = H.timeofdeath
brainmob.set_stat(CONSCIOUS)
if(H.mind)
H.mind.transfer_to(brainmob)
/obj/item/device/mmi/shell
/obj/item/mmi/shell
name = "ai shell control module"
desc = "A specialised circuit created to permit an artificial intelligence to take over the body of a stationbound unit."
icon = 'icons/obj/module.dmi'
origin_tech = list(TECH_DATA = 6, TECH_ENGINEERING = 6)
/obj/item/device/mmi/shell/attackby()
/obj/item/mmi/shell/attackby()
return
/obj/item/device/mmi/shell/Initialize()
/obj/item/mmi/shell/Initialize()
. = ..()
set_cradle_state(STATE_SEALED)
icon_state = "shell_circuit"
@@ -27,7 +27,7 @@
return TRUE
/mob/living/carbon/brain/update_canmove()
if(istype(loc, /obj/item/device/mmi))
if(istype(loc, /obj/item/mmi))
canmove = 1
use_me = 1
else
@@ -1,5 +1,5 @@
/mob/living/carbon/brain/death(gibbed)
if(!gibbed && istype(container, /obj/item/device/mmi)) //If not gibbed but in a container.
if(!gibbed && istype(container, /obj/item/mmi)) //If not gibbed but in a container.
container.icon_state = "mmi_dead"
return ..(gibbed,"beeps shrilly as the MMI flatlines!")
else
@@ -1,5 +1,5 @@
/mob/living/carbon/brain/emote(var/act,var/m_type=1,var/message = null)
if(!(container && istype(container, /obj/item/device/mmi)))//No MMI, no emotes
if(!(container && istype(container, /obj/item/mmi)))//No MMI, no emotes
return
if (findtext(act, "-", 1, null))
+1 -1
View File
@@ -110,7 +110,7 @@
//Handling EMP effect in the Life(), it's made VERY simply, and has some additional effects handled elsewhere
if(emp_damage) //This is pretty much a damage type only used by MMIs, dished out by the emp_act
if(!(container && istype(container, /obj/item/device/mmi)))
if(!(container && istype(container, /obj/item/mmi)))
emp_damage = 0
else
emp_damage = round(emp_damage,1)//Let's have some nice numbers to work with
@@ -1,4 +1,4 @@
/obj/item/device/mmi/digital/posibrain
/obj/item/mmi/digital/posibrain
name = "positronic brain"
desc = "A cube of shining metal, four inches to a side and covered in shallow grooves."
icon = 'icons/obj/assemblies.dmi'
@@ -9,13 +9,13 @@
can_be_ipc = TRUE
var/searching = FALSE
/obj/item/device/mmi/digital/posibrain/Initialize()
/obj/item/mmi/digital/posibrain/Initialize()
. = ..()
var/datum/language/L = GLOB.all_languages[LANGUAGE_EAL]
brainmob.name = L.get_random_name()
brainmob.real_name = brainmob.name
/obj/item/device/mmi/digital/posibrain/update_icon()
/obj/item/mmi/digital/posibrain/update_icon()
if(brainmob.ckey)
icon_state = "[initial(icon_state)]-occupied"
else if(searching)
@@ -23,10 +23,10 @@
else
icon_state = initial(icon_state)
/obj/item/device/mmi/digital/posibrain/attackby(obj/item/attacking_item, mob/user)
/obj/item/mmi/digital/posibrain/attackby(obj/item/attacking_item, mob/user)
return
/obj/item/device/mmi/digital/posibrain/attack_self(mob/user)
/obj/item/mmi/digital/posibrain/attack_self(mob/user)
if(brainmob.ckey)
to_chat(user, SPAN_WARNING("\The [src] already has an active occupant!"))
return
@@ -41,7 +41,7 @@
SSghostroles.remove_spawn_atom("posibrain", src)
update_icon()
/obj/item/device/mmi/digital/posibrain/assign_player(var/mob/user)
/obj/item/mmi/digital/posibrain/assign_player(var/mob/user)
if(brainmob.ckey)
return
@@ -59,7 +59,7 @@
return src
/obj/item/device/mmi/digital/posibrain/update_name()
/obj/item/mmi/digital/posibrain/update_name()
var/new_name = tgui_input_text(brainmob, "Choose your name.", "Name Selection", brainmob.real_name, MAX_NAME_LEN)
if(new_name)
brainmob.real_name = new_name
@@ -68,7 +68,7 @@
visible_message(SPAN_NOTICE("\The [src] chimes quietly."))
return ..()
/obj/item/device/mmi/digital/posibrain/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
/obj/item/mmi/digital/posibrain/get_examine_text(mob/user, distance, is_adjacent, infix, suffix)
. = ..()
. += "This is [icon2html(src, user)] \a <EM>[src]</EM>!\n[desc]\n"
@@ -85,7 +85,7 @@
else
. += "<span class='deadsay'>It appears to be completely inactive.</span>\n"
/obj/item/device/mmi/digital/posibrain/ready_for_use(var/mob/user)
/obj/item/mmi/digital/posibrain/ready_for_use(var/mob/user)
if(!brainmob)
to_chat(user, SPAN_WARNING("\The [src] doesn't have a personality loaded on it yet!"))
return
@@ -94,10 +94,10 @@
return FALSE
return TRUE
/obj/item/device/mmi/digital/posibrain/set_cradle_state(var/new_state)
/obj/item/mmi/digital/posibrain/set_cradle_state(var/new_state)
return
/obj/item/device/mmi/digital/posibrain/emp_act(severity)
/obj/item/mmi/digital/posibrain/emp_act(severity)
. = ..()
if(!brainmob)
@@ -1,4 +1,4 @@
/obj/item/device/mmi/digital/robot
/obj/item/mmi/digital/robot
name = "robotic intelligence circuit"
desc = "The pinnacle of artifical intelligence which can be achieved using classical computer science."
icon = 'icons/obj/module.dmi'
@@ -6,22 +6,22 @@
w_class = WEIGHT_CLASS_NORMAL
origin_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 3, TECH_DATA = 4)
/obj/item/device/mmi/digital/robot/Initialize(mapload, ...)
/obj/item/mmi/digital/robot/Initialize(mapload, ...)
. = ..()
brainmob.name = "[pick(list("ADA","DOS","GNU","MAC","WIN"))]-[rand(1000, 9999)]"
brainmob.real_name = brainmob.name
name = "robotic intelligence circuit ([brainmob.name])"
/obj/item/device/mmi/digital/robot/update_icon()
/obj/item/mmi/digital/robot/update_icon()
icon_state = "mainboard"
/obj/item/device/mmi/digital/robot/transfer_identity(mob/living/carbon/H)
/obj/item/mmi/digital/robot/transfer_identity(mob/living/carbon/H)
..()
if(brainmob.mind)
brainmob.mind.assigned_role = "Robotic Intelligence"
to_chat(brainmob, "<span class='notify'>You feel slightly disoriented. That's normal when you're little more than a complex circuit.</span>")
/obj/item/device/mmi/digital/robot/ready_for_use(var/mob/user)
/obj/item/mmi/digital/robot/ready_for_use(var/mob/user)
if(!brainmob)
to_chat(user, SPAN_WARNING("\The [src] doesn't have a personality loaded on it yet!"))
return
@@ -30,11 +30,11 @@
return FALSE
return TRUE
/obj/item/device/mmi/digital/robot/set_cradle_state(var/new_state)
/obj/item/mmi/digital/robot/set_cradle_state(var/new_state)
return
/obj/item/device/mmi/digital/robot/attackby(obj/item/attacking_item, mob/user)
/obj/item/mmi/digital/robot/attackby(obj/item/attacking_item, mob/user)
return
/obj/item/device/mmi/digital/robot/attack_self(mob/user)
/obj/item/mmi/digital/robot/attack_self(mob/user)
return
+3 -3
View File
@@ -3,7 +3,7 @@
if (silent)
return
if(!(container && istype(container, /obj/item/device/mmi)))
if(!(container && istype(container, /obj/item/mmi)))
return //No MMI, can't speak, bucko./N
else
speaking = parse_language(message)
@@ -29,8 +29,8 @@
speaking.broadcast(src,trim(message))
return
if(istype(container, /obj/item/device/mmi/radio_enabled))
var/obj/item/device/mmi/radio_enabled/R = container
if(istype(container, /obj/item/mmi/radio_enabled))
var/obj/item/mmi/radio_enabled/R = container
if(R.radio)
R.radio.hear_talk(src, sanitize(message), verb, speaking)
..(trim(message), speaking, verb)
@@ -218,7 +218,7 @@
/// This needs to be updated to use signals.
var/holding_gps = FALSE
if(istype(src.get_active_hand(), /obj/item/device/gps) || istype(src.get_inactive_hand(), /obj/item/device/gps))
if(istype(src.get_active_hand(), /obj/item/gps) || istype(src.get_inactive_hand(), /obj/item/gps))
holding_gps = TRUE
var/area/A = get_area(src)
@@ -228,7 +228,7 @@
return src
/mob/living/carbon/human/proc/has_hearing_aid()
if(istype(l_ear, /obj/item/device/hearing_aid) || istype(r_ear, /obj/item/device/hearing_aid))
if(istype(l_ear, /obj/item/hearing_aid) || istype(r_ear, /obj/item/hearing_aid))
return TRUE
if(has_functioning_augment(BP_AUG_COCHLEAR))
return TRUE
@@ -185,7 +185,7 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(src), slot_wear_suit)
equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(src), slot_shoes)
equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_com(src), slot_l_ear)
equip_to_slot_or_del(new /obj/item/radio/headset/headset_com(src), slot_l_ear)
remote_network = REMOTE_BUNKER_ROBOT
SSvirtualreality.add_robot(src, remote_network)
@@ -200,7 +200,7 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
mind.name = real_name
status_flags |= NO_ANTAG
equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_penal(src), slot_l_ear)
equip_to_slot_or_del(new /obj/item/radio/headset/headset_penal(src), slot_l_ear)
remote_network = REMOTE_PRISON_ROBOT
SSvirtualreality.add_robot(src, remote_network)
@@ -222,7 +222,7 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
equip_to_slot_or_del(ID, slot_wear_id)
equip_to_slot_or_del(new /obj/item/clothing/under/rank/warden/remote(src), slot_w_uniform)
equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(src), slot_shoes)
equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_warden(src), slot_l_ear)
equip_to_slot_or_del(new /obj/item/radio/headset/headset_warden(src), slot_l_ear)
remote_network = REMOTE_WARDEN_ROBOT
SSvirtualreality.add_robot(src, remote_network)
@@ -261,7 +261,7 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy/mannequin)
equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(src), slot_wear_suit)
equip_to_slot_or_del(new /obj/item/clothing/shoes/jackboots(src), slot_shoes)
equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_com(src), slot_l_ear)
equip_to_slot_or_del(new /obj/item/radio/headset/headset_com(src), slot_l_ear)
remote_network = REMOTE_BUNKER_ROBOT
SSvirtualreality.add_robot(src, remote_network)
+16 -16
View File
@@ -179,11 +179,11 @@
/mob/living/carbon/human/get_radio()
var/list/headsets = list()
if(istype(l_ear, /obj/item/device/radio))
if(istype(l_ear, /obj/item/radio))
headsets["Left Ear"] = l_ear
if(istype(r_ear, /obj/item/device/radio))
if(istype(r_ear, /obj/item/radio))
headsets["Right Ear"] = r_ear
if(istype(wrists, /obj/item/device/radio))
if(istype(wrists, /obj/item/radio))
headsets["Wrist"] = wrists
if(length(headsets))
@@ -198,46 +198,46 @@
return TRUE
switch(message_mode)
if("intercom")
for(var/obj/item/device/radio/intercom/I in view(1))
for(var/obj/item/radio/intercom/I in view(1))
I.add_fingerprint(src)
used_radios += I
I.talk_into(src, message, null, verb, speaking)
if("headset")
var/obj/item/device/radio/R = get_radio()
var/obj/item/radio/R = get_radio()
if(R)
used_radios += R
R.talk_into(src, message, null, verb, speaking)
if("right ear")
var/obj/item/device/radio/R
var/obj/item/radio/R
var/has_radio = FALSE
if(istype(r_ear,/obj/item/device/radio))
if(istype(r_ear,/obj/item/radio))
R = r_ear
has_radio = TRUE
if(istype(r_hand, /obj/item/device/radio))
if(istype(r_hand, /obj/item/radio))
R = r_hand
has_radio = TRUE
if(has_radio)
used_radios += R
R.talk_into(src,message,null,verb,speaking)
if("left ear")
var/obj/item/device/radio/R
var/obj/item/radio/R
var/has_radio = FALSE
if(istype(l_ear, /obj/item/device/radio))
if(istype(l_ear, /obj/item/radio))
R = l_ear
has_radio = TRUE
if(istype(l_hand, /obj/item/device/radio))
if(istype(l_hand, /obj/item/radio))
R = l_hand
has_radio = TRUE
if(has_radio)
used_radios += R
R.talk_into(src,message,null,verb,speaking)
if("wrist")
var/obj/item/device/radio/R
var/obj/item/radio/R
var/has_radio = FALSE
if(istype(wrists,/obj/item/device/radio))
if(istype(wrists,/obj/item/radio))
R = wrists
has_radio = TRUE
if(istype(r_hand, /obj/item/device/radio))
if(istype(r_hand, /obj/item/radio))
R = wrists
has_radio = TRUE
if(has_radio)
@@ -248,7 +248,7 @@
return TRUE
else
if(message_mode)
var/obj/item/device/radio/R = get_radio()
var/obj/item/radio/R = get_radio()
if(R)
used_radios += R
R.talk_into(src, message, message_mode, verb, speaking)
@@ -259,7 +259,7 @@
return returns
/mob/living/carbon/human/binarycheck()
for(var/obj/item/device/radio/headset/dongle in list(l_ear, r_ear))
for(var/obj/item/radio/headset/dongle in list(l_ear, r_ear))
if(dongle.translate_binary)
return TRUE
return FALSE
@@ -217,7 +217,7 @@ They are very slow, reasonably strong, and quite durable. They also require ligh
if(SB)
break
if(SB)
SB.handle_item_insertion(new /obj/item/device/flashlight/survival(get_turf(H)), TRUE)
SB.handle_item_insertion(new /obj/item/flashlight/survival(get_turf(H)), TRUE)
/datum/species/diona/is_naturally_insulated()
return TRUE
@@ -805,7 +805,7 @@ There are several things that need to be remembered:
var/layer = L_EAR_LAYER
var/layer_alt = L_EAR_LAYER_ALT
var/obj/item/device/radio/headset/wrist/W = l_ear
var/obj/item/radio/headset/wrist/W = l_ear
if(istype(W) && W.mob_wear_layer == ABOVE_SUIT_LAYER_WR)
layer = L_EAR_LAYER_ALT
layer_alt = L_EAR_LAYER
@@ -846,7 +846,7 @@ There are several things that need to be remembered:
var/layer = R_EAR_LAYER
var/layer_alt = R_EAR_LAYER_ALT
var/obj/item/device/radio/headset/wrist/W = r_ear
var/obj/item/radio/headset/wrist/W = r_ear
if(istype(W) && W.mob_wear_layer == ABOVE_SUIT_LAYER_WR)
layer = R_EAR_LAYER_ALT
layer_alt = R_EAR_LAYER
@@ -1322,7 +1322,7 @@ There are several things that need to be remembered:
var/image/wrists_overlay = wrists.get_mob_overlay(src, mob_icon, mob_state, slot_wrists_str)
var/wrist_layer = ABOVE_SUIT_LAYER_WR
if(istype(wrists, /obj/item/clothing/wrists) || istype(wrists, /obj/item/device/radio/headset/wrist))
if(istype(wrists, /obj/item/clothing/wrists) || istype(wrists, /obj/item/radio/headset/wrist))
var/obj/item/clothing/wrists/W = wrists
wrist_layer = W.mob_wear_layer
+1 -1
View File
@@ -98,7 +98,7 @@
Stun(2)
//Being hit while using a deadman switch
var/obj/item/device/assembly/signaler/signaler = get_active_hand()
var/obj/item/assembly/signaler/signaler = get_active_hand()
if(istype(signaler))
if(signaler.deadman && prob(80))
log_and_message_admins("has triggered a signaler deadman's switch")
+1 -1
View File
@@ -147,7 +147,7 @@ var/list/channel_to_radio_key = new
/mob/living/proc/handle_message_mode(message_mode, message, verb, speaking, used_radios, alt_name, whisper)
if(message_mode == "intercom")
for(var/obj/item/device/radio/intercom/I in view(1, src))
for(var/obj/item/radio/intercom/I in view(1, src))
used_radios += I
I.talk_into(src, message, verb, speaking)
+4 -4
View File
@@ -68,8 +68,8 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
var/obj/machinery/camera/camera
/// For storing what is shown to the cameras
var/list/cameraRecords = list()
var/obj/item/device/multitool/ai_multi
var/obj/item/device/radio/headset/heads/ai_integrated/ai_radio
var/obj/item/multitool/ai_multi
var/obj/item/radio/headset/heads/ai_integrated/ai_radio
var/datum/announcement/priority/announcement
var/obj/machinery/ai_powersupply/psupply
@@ -145,7 +145,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
remove_verb(src, GLOB.ai_verbs_default)
remove_verb(src, silicon_subsystems)
/mob/living/silicon/ai/Initialize(mapload, datum/ai_laws/L, obj/item/device/mmi/B, safety = 0)
/mob/living/silicon/ai/Initialize(mapload, datum/ai_laws/L, obj/item/mmi/B, safety = 0)
shouldnt_see = typecacheof(/obj/effect/rune)
announcement = new()
announcement.title = "A.I. Announcement"
@@ -180,7 +180,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
ai_radio.myAi = src
additional_law_channels["Holopad"] = ":h"
ai_camera = new/obj/item/device/camera/siliconcam/ai_camera(src)
ai_camera = new/obj/item/camera/siliconcam/ai_camera(src)
if(istype(loc, /turf))
add_ai_verbs(src)
@@ -27,12 +27,12 @@
. = ..()
modules += new /obj/item/crowbar/hydraulic_rescue_tool(src)
modules += new /obj/item/wrench/robotic(src)
modules += new /obj/item/device/healthanalyzer(src)
modules += new /obj/item/healthanalyzer(src)
modules += new /obj/item/extinguisher/mini(src)
modules += new /obj/item/device/advanced_healthanalyzer/cyborg(src)
modules += new /obj/item/advanced_healthanalyzer/cyborg(src)
modules += new /obj/item/tank/jetpack/carbondioxide/synthetic(src)
modules += new /obj/item/inflatable_dispenser(src)
modules += new /obj/item/device/gps(src)
modules += new /obj/item/gps(src)
modules += new /obj/item/taperoll/medical(src)
modules += new /obj/item/taperoll/engineering(src)
modules += new /obj/item/taperoll/police(src)
@@ -40,7 +40,7 @@
modules += new /obj/item/pen/robopen(src)
modules += new /obj/item/form_printer(src)
modules += new /obj/item/gripper/paperwork(src)
modules += new /obj/item/device/flash(src)
modules += new /obj/item/flash(src)
/mob/living/silicon/robot/shell
spawn_module = /obj/item/robot_module/aicontrol
+1 -1
View File
@@ -21,7 +21,7 @@
pai_key = C.key
log_and_message_admins("made a pAI with key=[pai_key] at ([t.x],[t.y],[t.z])")
var/obj/item/device/paicard/card = new(t)
var/obj/item/paicard/card = new(t)
var/mob/living/silicon/pai/pai = new(card)
pai.key = pai_key
card.setPersonality(pai)
+11 -11
View File
@@ -16,8 +16,8 @@
var/ram = 100 // Used as currency to purchase different abilities
var/list/software = list()
var/userDNA // The DNA string of our assigned user
var/obj/item/device/paicard/card // The card we inhabit
var/obj/item/device/radio/pai/radio // Our primary radio
var/obj/item/paicard/card // The card we inhabit
var/obj/item/radio/pai/radio // Our primary radio
var/chassis = "repairbot" // A record of your chosen chassis.
@@ -96,7 +96,7 @@
var/hackprogress = 0 // Possible values: 0 - 1000, >= 1000 means the hack is complete and will be reset upon next check
var/hack_aborted = 0
var/obj/item/radio/integrated/signal/sradio // AI's signaller
var/obj/item/integrated_signaler/signal/sradio // AI's signaller
var/translator_on = 0 // keeps track of the translator module
@@ -156,11 +156,11 @@
P.set_light(light_range, light_power, light_color)
/mob/living/silicon/pai/Initialize(mapload)
var/obj/item/device/paicard/paicard = loc
var/obj/item/paicard/paicard = loc
if (!istype(paicard))
//If we get here, then we must have been created by adminspawning.
//so lets assist with debugging by creating our own card and adding ourself to it
paicard = new /obj/item/device/paicard(loc)
paicard = new /obj/item/paicard(loc)
paicard.pai = src
canmove = 0
@@ -169,9 +169,9 @@
sradio = new(src)
if(card)
if(!card.radio)
card.radio = new /obj/item/device/radio/pai(src.card)
card.radio = new /obj/item/radio/pai(src.card)
radio = card.radio
INVOKE_ASYNC(card, TYPE_PROC_REF(/obj/item/device/paicard, recalculateChannels))
INVOKE_ASYNC(card, TYPE_PROC_REF(/obj/item/paicard, recalculateChannels))
//Default languages without universal translator software
@@ -230,7 +230,7 @@
return 0
/mob/living/silicon/pai/restrained()
return !istype(loc, /obj/item/device/paicard) && ..()
return !istype(loc, /obj/item/paicard) && ..()
/mob/living/silicon/pai/emp_act(severity)
. = ..()
@@ -289,7 +289,7 @@
/*
// Debug command - Maybe should be added to admin verbs later
/mob/verb/makePAI(var/turf/t in view())
var/obj/item/device/paicard/card = new(t)
var/obj/item/paicard/card = new(t)
var/mob/living/silicon/pai/pai = new(card)
pai.key = src.key
card.setPersonality(pai)
@@ -418,7 +418,7 @@
set category = "IC.Maneuver"
// Pass lying down or getting up to our pet human, if we're in a rig.
if(istype(src.loc,/obj/item/device/paicard))
if(istype(src.loc,/obj/item/paicard))
resting = 0
var/obj/item/rig/rig = src.get_rig()
if(istype(rig))
@@ -548,5 +548,5 @@
/mob/living/silicon/pai/set_respawn_time()
set_death_time(MINISYNTH, world.time)
/obj/item/device/radio/pai
/obj/item/radio/pai
canhear_range = 0 // only people on their tile
@@ -1,9 +1,9 @@
//
//Robotic Component Analyzer, basically a health analyzer for robots
//
/obj/item/device/robotanalyzer
/obj/item/robotanalyzer
name = "cyborg analyzer"
icon = 'icons/obj/item/device/robotanalyzer.dmi'
icon = 'icons/obj/item/robotanalyzer.dmi'
icon_state = "robotanalyzer"
item_state = "analyzer"
desc = "A hand-held scanner able to diagnose robotic injuries."
@@ -16,7 +16,7 @@
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 1, TECH_ENGINEERING = 2)
matter = list(DEFAULT_WALL_MATERIAL = 500, MATERIAL_GLASS = 200)
/obj/item/device/robotanalyzer/attack(mob/living/target_mob, mob/living/user, target_zone)
/obj/item/robotanalyzer/attack(mob/living/target_mob, mob/living/user, target_zone)
robotic_analyze_mob(target_mob, user)
add_fingerprint(user)
@@ -132,19 +132,19 @@
else
. = "minor"
/obj/item/device/robotanalyzer/augment
/obj/item/robotanalyzer/augment
name = "retractable cyborg analyzer"
desc = "An scanner implanted directly into the hand, popping through the finger. This scanner can diagnose robotic injuries."
icon = 'icons/obj/item/device/robotanalyzer.dmi'
icon = 'icons/obj/item/robotanalyzer.dmi'
icon_state = "robotanalyzer"
item_state = "analyzer"
slot_flags = null
w_class = WEIGHT_CLASS_HUGE
/obj/item/device/robotanalyzer/augment/throw_at(atom/target, range, speed, mob/user)
/obj/item/robotanalyzer/augment/throw_at(atom/target, range, speed, mob/user)
user.drop_from_inventory(src)
/obj/item/device/robotanalyzer/augment/dropped()
/obj/item/robotanalyzer/augment/dropped()
. = ..()
loc = null
qdel(src)
@@ -26,7 +26,7 @@
// ID and Access
req_access = list(ACCESS_SYNDICATE)
id_card_type = /obj/item/card/id/syndicate
key_type = /obj/item/device/encryptionkey/syndicate
key_type = /obj/item/encryptionkey/syndicate
var/datum/antagonist/assigned_antagonist
/mob/living/silicon/robot/combat/Initialize()
@@ -45,7 +45,7 @@
assigned_antagonist.add_antagonist_mind(src.mind, TRUE)
if(assigned_antagonist.get_antag_radio())
module.channels[assigned_antagonist.get_antag_radio()] = TRUE
INVOKE_ASYNC(radio, TYPE_PROC_REF(/obj/item/device/radio/borg, recalculateChannels))
INVOKE_ASYNC(radio, TYPE_PROC_REF(/obj/item/radio/borg, recalculateChannels))
client.init_verbs()
say("Boot sequence complete!")
return src
@@ -271,7 +271,7 @@
SSghostroles.add_spawn_atom("matriarchmaintdrone", src)
/mob/living/silicon/robot/drone/init()
ai_camera = new /obj/item/device/camera/siliconcam/drone_camera(src)
ai_camera = new /obj/item/camera/siliconcam/drone_camera(src)
additional_law_channels["Drone"] = ":d"
if(!laws)
laws = new law_type
@@ -22,7 +22,7 @@
/obj/item/tank,
/obj/item/circuitboard,
/obj/item/smes_coil,
/obj/item/device/assembly,//Primarily for making improved cameras, but opens many possibilities
/obj/item/assembly,//Primarily for making improved cameras, but opens many possibilities
/obj/item/computer_hardware,
/obj/item/pipe,
/obj/item/smallDelivery,
@@ -242,7 +242,7 @@
/obj/item/extraction_pack,
/obj/item/smallDelivery,
/obj/item/gift,
/obj/item/device/mine_bot_upgrade
/obj/item/mine_bot_upgrade
)
/obj/item/gripper/paperwork
@@ -276,26 +276,26 @@
can_hold = list(
/obj/item/cell,
/obj/item/stock_parts,
/obj/item/device/mmi,
/obj/item/mmi,
/obj/item/robot_parts,
/obj/item/mech_component,
/obj/item/mecha_equipment,
/obj/item/device/radio/exosuit,
/obj/item/radio/exosuit,
/obj/item/borg/upgrade,
/obj/item/device/flash, // to build borgs,
/obj/item/flash, // to build borgs,
/obj/item/organ/internal/brain, // to insert into MMIs,
/obj/item/stack/cable_coil, // again, for borg building,
/obj/item/circuitboard,
/obj/item/slime_extract,
/obj/item/device/slime_scanner,
/obj/item/slime_scanner,
/obj/item/reagent_containers/glass,
/obj/item/reagent_containers/food/snacks/monkeycube,
/obj/item/seeds, // To be able to plant things for Xenobotany
/obj/item/grown, // To be able to plant things for Xenobotany
/obj/item/device/assembly, // For building bots and similar complex R&D devices
/obj/item/device/healthanalyzer,// For building medibots
/obj/item/assembly, // For building bots and similar complex R&D devices
/obj/item/healthanalyzer,// For building medibots
/obj/item/disk,
/obj/item/device/analyzer/plant_analyzer,//For farmbot construction
/obj/item/analyzer/plant_analyzer,//For farmbot construction
/obj/item/material/minihoe, // Farmbots and xenoflora
/obj/item/computer_hardware,
/obj/item/slimesteroid,
@@ -305,7 +305,7 @@
/obj/item/remote_mecha,
/obj/item/smallDelivery,
/obj/item/gift,
/obj/item/device/integrated_circuit_printer
/obj/item/integrated_circuit_printer
)
/obj/item/gripper/chemistry //A gripper designed for chemistry, to allow borgs to work efficiently in the lab
@@ -324,7 +324,7 @@
/obj/item/reagent_containers/inhaler,
/obj/item/reagent_containers/hypospray,
/obj/item/storage/pill_bottle,
/obj/item/device/hand_labeler,
/obj/item/hand_labeler,
/obj/item/paper,
/obj/item/stack/material/phoron,
/obj/item/reagent_containers/blood,
@@ -2,7 +2,7 @@
/obj/item/borg/combat/shield
name = "personal shielding"
desc = "A powerful experimental module that turns aside or absorbs incoming attacks at the cost of charge."
icon = 'icons/obj/item/device/chameleon.dmi'
icon = 'icons/obj/item/chameleon.dmi'
icon_state = "shield1" //placeholder for now // four fucking years alberyk. FOUR
var/shield_level = 0.5 //Percentage of damage absorbed by the shield.
@@ -77,8 +77,8 @@
desc = "A standard reinforced braincase, with spine-plugged neural socket and sensor gimbals."
icon_state = "head"
part = list(BP_HEAD)
var/obj/item/device/flash/left_flash = null
var/obj/item/device/flash/right_flash = null
var/obj/item/flash/left_flash = null
var/obj/item/flash/right_flash = null
var/law_manager = TRUE
/obj/item/robot_parts/robot_suit
@@ -208,8 +208,8 @@
to_chat(user, SPAN_WARNING("You need to attach a flash to it first!"))
return
if(istype(attacking_item, /obj/item/device/mmi/shell))
var/obj/item/device/mmi/shell/M = attacking_item
if(istype(attacking_item, /obj/item/mmi/shell))
var/obj/item/mmi/shell/M = attacking_item
if(check_completion())
var/mob/living/silicon/robot/O = new /mob/living/silicon/robot/shell(get_turf(src), TRUE)
if(!O)
@@ -235,8 +235,8 @@
to_chat(user, SPAN_WARNING("\The [attacking_item] can only be inserted after everything else is installed."))
return
if(istype(attacking_item, /obj/item/device/mmi))
var/obj/item/device/mmi/M = attacking_item
if(istype(attacking_item, /obj/item/mmi))
var/obj/item/mmi/M = attacking_item
if(check_completion())
if(!isturf(loc))
to_chat(user, SPAN_WARNING("You can't put \the [attacking_item] in, the frame has to be standing on the ground to be perfectly precise."))
@@ -280,7 +280,7 @@
return
// So you cannot make a cyborg with a positronic in it.
if(istype(M, /obj/item/device/mmi/digital/posibrain))
if(istype(M, /obj/item/mmi/digital/posibrain))
to_chat(user, SPAN_WARNING("Positronic brains are not compatible with this kind of chassis."))
return
@@ -311,7 +311,7 @@
callHook("borgify", list(O))
O.Namepick()
qdel(src)
else if(!istype(M, /obj/item/device/mmi/digital/posibrain))
else if(!istype(M, /obj/item/mmi/digital/posibrain))
to_chat(user, SPAN_WARNING("\The [attacking_item] can only be inserted after everything else is installed."))
return
@@ -367,8 +367,8 @@
/obj/item/robot_parts/head/attackby(obj/item/attacking_item, mob/user)
..()
if(istype(attacking_item, /obj/item/device/assembly/infra))
var/obj/item/device/assembly/S = attacking_item
if(istype(attacking_item, /obj/item/assembly/infra))
var/obj/item/assembly/S = attacking_item
var/obj/item/tv_assembly/A = new(user)
qdel(S)
user.put_in_hands(A)
@@ -383,10 +383,10 @@
to_chat(user, SPAN_NOTICE("You enable the lawing circuits on \the [src]."))
law_manager = TRUE
else if(istype(attacking_item, /obj/item/device/flash))
else if(istype(attacking_item, /obj/item/flash))
if(isrobot(user))
var/mob/living/silicon/robot/R = user
if(istype(R.module_active, /obj/item/device/flash))
if(istype(R.module_active, /obj/item/flash))
to_chat(user, SPAN_WARNING("You cannot detach your own flash and install it into \the [src]."))
return
else
@@ -6,7 +6,7 @@
icon_state = "screwdriver"
build_from_parts = FALSE
/obj/item/device/multitool/robotic
/obj/item/multitool/robotic
icon = 'icons/obj/robot_items.dmi'
/obj/item/wirecutters/robotic
@@ -273,7 +273,7 @@
if(client)
client.screen -= contents
for(var/obj/I in contents)
if(I && !(istype(I, /obj/item/cell) || istype(I, /obj/item/device/radio) || istype(I, /obj/machinery/camera) || istype(I, /obj/item/device/mmi)))
if(I && !(istype(I, /obj/item/cell) || istype(I, /obj/item/radio) || istype(I, /obj/machinery/camera) || istype(I, /obj/item/mmi)))
client.screen += I
if(module_state_1)
module_state_1.screen_loc = ui_inv1
@@ -1,5 +1,5 @@
/mob/living/silicon/robot/proc/photosync()
var/obj/item/device/camera/siliconcam/master_cam = connected_ai ? connected_ai.ai_camera : null
var/obj/item/camera/siliconcam/master_cam = connected_ai ? connected_ai.ai_camera : null
if(!master_cam)
return
@@ -10,7 +10,7 @@
law_update = FALSE
law_preset = /datum/ai_laws/conglomerate_aggressive
id_card_type = /obj/item/card/id/ert
key_type = /obj/item/device/encryptionkey/ert
key_type = /obj/item/encryptionkey/ert
has_jetpack = TRUE
/mob/living/silicon/robot/scrambled //should not stand linked to the station or the ai
@@ -80,9 +80,9 @@
// Internal components (non-datum)
var/obj/item/cell/cell
var/obj/item/device/radio/borg/radio
var/obj/item/radio/borg/radio
var/obj/machinery/camera/camera
var/obj/item/device/mmi/mmi
var/obj/item/mmi/mmi
var/obj/item/stock_parts/matter_bin/storage
var/obj/item/tank/jetpack/carbondioxide/synthetic/jetpack
@@ -158,7 +158,7 @@
mmi.brainmob.real_name = src.name
mmi.name = "[initial(mmi.name)]: [src.name]"
radio = new /obj/item/device/radio/borg(src)
radio = new /obj/item/radio/borg(src)
common_radio = radio
if(!camera)
@@ -235,13 +235,13 @@
update_access()
/mob/living/silicon/robot/proc/init()
ai_camera = new /obj/item/device/camera/siliconcam/robot_camera(src)
ai_camera = new /obj/item/camera/siliconcam/robot_camera(src)
laws = new law_preset()
if(spawn_module)
new spawn_module(src, src)
if(key_type)
radio.keyslot = new key_type(radio)
INVOKE_ASYNC(radio, TYPE_PROC_REF(/obj/item/device/radio/borg, recalculateChannels))
INVOKE_ASYNC(radio, TYPE_PROC_REF(/obj/item/radio/borg, recalculateChannels))
if(law_update)
var/new_ai = select_active_ai_with_fewest_borgs()
if(new_ai)
@@ -368,7 +368,7 @@
if(prefix)
mod_type = prefix
if(istype(mmi, /obj/item/device/mmi/digital/robot))
if(istype(mmi, /obj/item/mmi/digital/robot))
braintype = "Robot"
else
braintype = "Cyborg"
@@ -754,7 +754,7 @@
else
to_chat(user, SPAN_WARNING("\The [src] does not have a radio installed!"))
return
else if(istype(attacking_item, /obj/item/device/encryptionkey) && opened)
else if(istype(attacking_item, /obj/item/encryptionkey) && opened)
if(radio) //sanityyyyyy
radio.attackby(attacking_item, user) //GTFO, you have your own procs
else
@@ -789,7 +789,7 @@
user.drop_from_inventory(U, src)
return
else
if(attacking_item.force && !(istype(attacking_item, /obj/item/device/robotanalyzer) || istype(attacking_item, /obj/item/device/healthanalyzer)) )
if(attacking_item.force && !(istype(attacking_item, /obj/item/robotanalyzer) || istype(attacking_item, /obj/item/healthanalyzer)) )
spark_system.queue()
return ..()
else
@@ -67,7 +67,7 @@ GLOBAL_LIST_INIT(robot_modules, list(
apply_status_flags(R)
if(R.radio)
INVOKE_ASYNC(R.radio, TYPE_PROC_REF(/obj/item/device/radio/borg, recalculateChannels))
INVOKE_ASYNC(R.radio, TYPE_PROC_REF(/obj/item/radio/borg, recalculateChannels))
R.set_module_sprites(sprites)
R.icon_selected = FALSE
@@ -115,7 +115,7 @@ GLOBAL_LIST_INIT(robot_modules, list(
/obj/item/robot_module/proc/respawn_consumable(var/mob/living/silicon/robot/R, var/rate)
var/obj/item/extinguisher/E = locate() in modules
var/obj/item/device/flash/F = locate() in modules
var/obj/item/flash/F = locate() in modules
if(F)
if(F.broken)
F.broken = FALSE
@@ -216,7 +216,7 @@ GLOBAL_LIST_INIT(robot_modules, list(
/obj/item/robot_module/medical/general/Initialize()
. = ..()
modules += new /obj/item/device/healthanalyzer(src)
modules += new /obj/item/healthanalyzer(src)
modules += new /obj/item/reagent_containers/hypospray/borghypo/medical(src)
modules += new /obj/item/surgery/scalpel(src)
modules += new /obj/item/surgery/hemostat(src)
@@ -231,16 +231,16 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/reagent_containers/dropper/cyborg_pipette(src)
modules += new /obj/item/roller_holder(src)
modules += new /obj/item/reagent_containers/syringe/robotic(src)
modules += new /obj/item/device/reagent_scanner/adv(src)
modules += new /obj/item/device/mass_spectrometer(src)
modules += new /obj/item/reagent_scanner/adv(src)
modules += new /obj/item/mass_spectrometer(src)
modules += new /obj/item/autopsy_scanner(src)
modules += new /obj/item/device/breath_analyzer(src)
modules += new /obj/item/breath_analyzer(src)
modules += new /obj/item/taperoll/medical(src)
modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
modules += new /obj/item/device/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/extinguisher/mini(src) // For navigating space and/or low grav, and just being useful.
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
emag = new /obj/item/reagent_containers/hypospray/cmo(src)
emag.reagents.add_reagent(/singleton/reagent/wulumunusha, 30)
@@ -279,10 +279,10 @@ GLOBAL_LIST_INIT(robot_modules, list(
/obj/item/robot_module/medical/rescue/Initialize()
. = ..()
modules += new /obj/item/device/healthanalyzer(src)
modules += new /obj/item/device/reagent_scanner/adv(src)
modules += new /obj/item/device/mass_spectrometer(src)
modules += new /obj/item/device/breath_analyzer(src)
modules += new /obj/item/healthanalyzer(src)
modules += new /obj/item/reagent_scanner/adv(src)
modules += new /obj/item/mass_spectrometer(src)
modules += new /obj/item/breath_analyzer(src)
modules += new /obj/item/roller_holder(src)
modules += new /obj/item/reagent_containers/hypospray/borghypo/rescue(src)
modules += new /obj/item/reagent_containers/dropper/cyborg_pipette(src)
@@ -293,9 +293,9 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/taperoll/medical(src)
modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
modules += new /obj/item/device/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/extinguisher/mini(src) // For navigating space and/or low grav, and just being useful.
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
modules += new /obj/item/gripper/paperwork(src)
emag = new /obj/item/reagent_containers/hypospray/cmo(src)
@@ -372,19 +372,19 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/screwdriver/robotic(src)
modules += new /obj/item/wrench/robotic(src)
modules += new /obj/item/weldingtool/experimental(src)
modules += new /obj/item/device/pipe_painter(src)
modules += new /obj/item/pipe_painter(src)
modules += new /obj/item/gripper/no_use/loader(src)
modules += new /obj/item/gripper(src)
modules += new /obj/item/device/t_scanner(src) // to check underfloor wiring
modules += new /obj/item/device/analyzer(src) // to check air pressure in the area
modules += new /obj/item/device/lightreplacer(src) // to install lightning in the area
modules += new /obj/item/device/paint_sprayer(src)// to make america great again (c)
modules += new /obj/item/t_scanner(src) // to check underfloor wiring
modules += new /obj/item/analyzer(src) // to check air pressure in the area
modules += new /obj/item/lightreplacer(src) // to install lightning in the area
modules += new /obj/item/paint_sprayer(src)// to make america great again (c)
modules += new /obj/item/pickaxe/borgdrill(src) // as station is being located at the rock terrain, which is presumed to be digged out to clear the area for new rooms
modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
modules += new /obj/item/device/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/extinguisher(src) // For navigating space and/or low grav, and just being useful.
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
modules += new /obj/item/pen/robopen(src) // Pen for renaming doors
emag = new /obj/item/gun/energy/plasmacutter/mounted(src)
@@ -436,20 +436,20 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/screwdriver/robotic(src)
modules += new /obj/item/wrench/robotic(src)
modules += new /obj/item/wirecutters/robotic(src)
modules += new /obj/item/device/multitool/robotic(src)
modules += new /obj/item/multitool/robotic(src)
modules += new /obj/item/rfd/piping/borg(src)
modules += new /obj/item/device/t_scanner(src)
modules += new /obj/item/device/analyzer(src)
modules += new /obj/item/t_scanner(src)
modules += new /obj/item/analyzer(src)
modules += new /obj/item/gripper(src)
modules += new /obj/item/gripper/no_use/loader(src)
modules += new /obj/item/device/lightreplacer(src)
modules += new /obj/item/device/pipe_painter(src)
modules += new /obj/item/device/paint_sprayer(src)
modules += new /obj/item/lightreplacer(src)
modules += new /obj/item/pipe_painter(src)
modules += new /obj/item/paint_sprayer(src)
modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
modules += new /obj/item/device/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/extinguisher(src) // For navigating space and/or low grav, and just being useful.
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
modules += new /obj/item/pen/robopen(src) // Pen for renaming doors
emag = new /obj/item/melee/baton/robot/arm(src)
@@ -564,14 +564,14 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/soap/drone(src)
modules += new /obj/item/storage/bag/trash(src)
modules += new /obj/item/mop(src)
modules += new /obj/item/device/lightreplacer/advanced(src)
modules += new /obj/item/lightreplacer/advanced(src)
modules += new /obj/item/reagent_containers/glass/bucket(src) // a hydroponist's bucket
modules += new /obj/item/matter_decompiler(src) // free drone remains for all
modules += new /obj/item/taperoll/custodial(src) // To enable 'borgs to telegraph danger visually.
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
modules += new /obj/item/device/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/extinguisher/mini(src) // For navigating space and/or low grav, and just being useful.
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
modules += new /obj/item/wetfloor_holder(src) // Holds caution signs.
emag = new /obj/item/reagent_containers/spray(src)
@@ -604,7 +604,7 @@ GLOBAL_LIST_INIT(robot_modules, list(
/obj/item/robot_module/janitor/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
..()
var/obj/item/device/lightreplacer/LR = locate() in modules
var/obj/item/lightreplacer/LR = locate() in modules
LR.Charge(R, amount)
if(emag)
var/obj/item/reagent_containers/spray/S = emag
@@ -661,7 +661,7 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/reagent_containers/glass/bucket(src)
modules += new /obj/item/material/minihoe(src)
modules += new /obj/item/material/hatchet(src)
modules += new /obj/item/device/analyzer/plant_analyzer(src)
modules += new /obj/item/analyzer/plant_analyzer(src)
modules += new /obj/item/storage/bag/plants(src)
modules += new /obj/item/robot_harvester(src)
modules += new /obj/item/material/kitchen/rollingpin(src)
@@ -670,15 +670,15 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/pen/robopen(src)
modules += new /obj/item/form_printer(src)
modules += new /obj/item/gripper/paperwork(src)
modules += new /obj/item/device/hand_labeler(src)
modules += new /obj/item/hand_labeler(src)
modules += new /obj/item/tape_roll(src) //allows it to place flyers
modules += new /obj/item/device/quikpay(src)
modules += new /obj/item/quikpay(src)
modules += new /obj/item/reagent_containers/glass/rag(src) // a rag for.. yeah.. the primary tool of bartender
modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
modules += new /obj/item/device/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/extinguisher/mini(src) // For navigating space and/or low grav, and just being useful.
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
var/obj/item/rfd/service/M = new /obj/item/rfd/service(src)
@@ -712,18 +712,18 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/pen/robopen(src)
modules += new /obj/item/form_printer(src)
modules += new /obj/item/gripper/paperwork(src)
modules += new /obj/item/device/hand_labeler(src)
modules += new /obj/item/device/destTagger(src)
modules += new /obj/item/hand_labeler(src)
modules += new /obj/item/destTagger(src)
modules += new /obj/item/stamp(src)
modules += new /obj/item/stamp/denied(src)
modules += new /obj/item/tape_roll(src) //allows it to place flyers
modules += new /obj/item/device/quikpay(src)
modules += new /obj/item/quikpay(src)
modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
modules += new /obj/item/taperoll/police(src)
modules += new /obj/item/paper_scanner(src) //TODO: Add functionality to allow for scanned paperwork to show up in internal computer
modules += new /obj/item/device/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/extinguisher/mini(src) // For navigating space and/or low grav, and just being useful.
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
emag = new /obj/item/stamp/chameleon(src)
@@ -766,13 +766,13 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/mining_scanner(src)
modules += new /obj/item/ore_radar(src)
modules += new /obj/item/gripper/paperwork(src) // for Yield Declarations
modules += new /obj/item/device/gps/mining(src) // for locating itself in the deep space
modules += new /obj/item/gps/mining(src) // for locating itself in the deep space
modules += new /obj/item/gun/custom_ka/cyborg(src)
modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
modules += new /obj/item/device/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/extinguisher/mini(src) // For navigating space and/or low grav, and just being useful.
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
modules += new /obj/item/wrench/robotic(src)
modules += new /obj/item/screwdriver/robotic(src)
@@ -827,7 +827,7 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/gripper/research(src)
modules += new /obj/item/robot_harvester(src)
modules += new /obj/item/gripper/no_use/loader(src)
modules += new /obj/item/device/robotanalyzer(src)
modules += new /obj/item/robotanalyzer(src)
modules += new /obj/item/card/robot(src)
var/datum/matter_synth/wire = new /datum/matter_synth/wire(15)
@@ -845,17 +845,17 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/reagent_containers/syringe(src)
modules += new /obj/item/gripper/chemistry(src)
modules += new /obj/item/reagent_containers/dropper/cyborg_pipette(src)
modules += new /obj/item/device/reagent_scanner/adv(src)
modules += new /obj/item/reagent_scanner/adv(src)
modules += new /obj/item/storage/bag/plants(src)
modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
modules += new /obj/item/device/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/gps(src) // For being located while disabled and coordinating with life sensor consoles.
modules += new /obj/item/extinguisher(src) // For navigating space and/or low grav, and just being useful.
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
modules += new /obj/item/pen/robopen(src) // Pen for renaming robots
modules += new /obj/item/storage/part_replacer(src)
modules += new /obj/item/device/multitool/robotic(src) // To enable them to connect machines that require multitools e.g. tech-processors
modules += new /obj/item/multitool/robotic(src) // To enable them to connect machines that require multitools e.g. tech-processors
emag = new /obj/item/hand_tele(src)
var/datum/matter_synth/nanite = new /datum/matter_synth/nanite(10000)
@@ -929,17 +929,17 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/handcuffs/cyborg(src)
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
modules += new /obj/item/extinguisher(src) // For navigating space and/or low grav, and just being useful.
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
modules += new /obj/item/roller_holder(src)
modules += new /obj/item/device/healthanalyzer(src)
modules += new /obj/item/healthanalyzer(src)
modules += new /obj/item/reagent_containers/hypospray/borghypo/medical(src)
modules += new /obj/item/plastique/cyborg(src)
modules += new /obj/item/grenade/smokebomb/cyborg(src)
supported_upgrades = list(/obj/item/robot_parts/robot_component/jetpack)
if(R.radio)
INVOKE_ASYNC(R.radio, TYPE_PROC_REF(/obj/item/device/radio/borg, recalculateChannels))
INVOKE_ASYNC(R.radio, TYPE_PROC_REF(/obj/item/radio/borg, recalculateChannels))
/obj/item/robot_module/military
name = "military robot module"
@@ -962,7 +962,7 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/handcuffs/cyborg(src)
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
modules += new /obj/item/extinguisher(src) // For navigating space and/or low grav, and just being useful.
modules += new /obj/item/device/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/flash(src) // Non-lethal tool that prevents any 'borg from going lethal on Crew so long as it's an option according to laws.
modules += new /obj/item/crowbar/robotic(src) // Base crowbar that all 'borgs should have access to.
emag = new /obj/item/gun/energy/lasercannon/mounted(src)
@@ -979,14 +979,14 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/wrench/robotic(src)
modules += new /obj/item/crowbar/robotic(src)
modules += new /obj/item/wirecutters/robotic(src)
modules += new /obj/item/device/multitool/robotic(src)
modules += new /obj/item/multitool/robotic(src)
modules += new /obj/item/taperoll/engineering(src)
modules += new /obj/item/device/lightreplacer(src)
modules += new /obj/item/lightreplacer(src)
modules += new /obj/item/soap/drone(src)
modules += new /obj/item/extinguisher(src)
modules += new /obj/item/device/pipe_painter(src)
modules += new /obj/item/device/paint_sprayer(src)
modules += new /obj/item/device/t_scanner(src)
modules += new /obj/item/pipe_painter(src)
modules += new /obj/item/paint_sprayer(src)
modules += new /obj/item/t_scanner(src)
modules += new /obj/item/gripper/multi_purpose(src)
modules += new /obj/item/gripper/no_use/loader(src)
@@ -1055,7 +1055,7 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/rfd/piping/borg(src) // putting this here so it's next to the RFD-C on construction drones
/obj/item/robot_module/drone/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
var/obj/item/device/lightreplacer/LR = locate() in src.modules
var/obj/item/lightreplacer/LR = locate() in src.modules
LR.Charge(R, amount)
return ..()
@@ -1100,7 +1100,7 @@ GLOBAL_LIST_INIT(robot_modules, list(
languages[LANGUAGE_LOCAL_DRONE] = TRUE
/obj/item/robot_module/mining_drone/proc/set_up_default(var/mob/living/silicon/robot/R, var/has_drill = TRUE)
modules += new /obj/item/device/flash(src)
modules += new /obj/item/flash(src)
if(has_drill)
modules += new /obj/item/pickaxe/drill(src)
modules += new /obj/item/storage/bag/ore/drone(src)
@@ -1109,7 +1109,7 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/screwdriver/robotic(src)
modules += new /obj/item/wrench/robotic(src)
modules += new /obj/item/mining_scanner(src)
modules += new /obj/item/device/gps/mining(src)
modules += new /obj/item/gps/mining(src)
modules += new /obj/item/tank/jetpack/carbondioxide(src)
modules += new /obj/item/rfd/mining(src)
modules += new /obj/item/tethering_device(src)
@@ -1182,7 +1182,7 @@ GLOBAL_LIST_INIT(robot_modules, list(
/obj/item/robot_module/bluespace/Initialize(mapload, mob/living/silicon/robot/R)
. = ..()
modules += new /obj/item/device/flash(src)
modules += new /obj/item/flash(src)
modules += new /obj/item/borg/sight/meson(src)
modules += new /obj/item/rfd/construction/borg/infinite(src)
modules += new /obj/item/extinguisher(src)
@@ -1191,15 +1191,15 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/wrench/robotic(src)
modules += new /obj/item/crowbar/robotic(src)
modules += new /obj/item/wirecutters/robotic(src)
modules += new /obj/item/device/multitool/robotic(src)
modules += new /obj/item/device/t_scanner(src)
modules += new /obj/item/device/analyzer(src)
modules += new /obj/item/multitool/robotic(src)
modules += new /obj/item/t_scanner(src)
modules += new /obj/item/analyzer(src)
modules += new /obj/item/gripper(src)
modules += new /obj/item/gripper/no_use/loader(src)
modules += new /obj/item/device/lightreplacer(src)
modules += new /obj/item/lightreplacer(src)
modules += new /obj/item/inflatable_dispenser(src)
// Medical
modules += new /obj/item/device/healthanalyzer(src)
modules += new /obj/item/healthanalyzer(src)
modules += new /obj/item/reagent_containers/hypospray/borghypo/medical(src)
modules += new /obj/item/surgery/scalpel(src)
modules += new /obj/item/surgery/hemostat(src)
@@ -1345,9 +1345,9 @@ GLOBAL_LIST_INIT(robot_modules, list(
modules += new /obj/item/wrench/robotic(src)
modules += new /obj/item/crowbar/robotic(src)
modules += new /obj/item/wirecutters/robotic(src)
modules += new /obj/item/device/multitool/robotic(src)
modules += new /obj/item/device/analyzer(src)
modules += new /obj/item/device/healthanalyzer(src)
modules += new /obj/item/multitool/robotic(src)
modules += new /obj/item/analyzer(src)
modules += new /obj/item/healthanalyzer(src)
modules += new /obj/item/borg/sight/thermal(src)
modules += new /obj/item/gun/energy/pulse/mounted(src)
modules += new /obj/item/gun/energy/lasercannon/mounted/cyborg/overclocked(src)
+2 -2
View File
@@ -19,7 +19,7 @@
var/law_channel = DEFAULT_LAW_CHANNEL
var/list/additional_law_channels = list("State" = "")
var/list/stating_laws = list() // Channels laws are currently being stated on
var/obj/item/device/radio/common_radio // Used to determine default channels
var/obj/item/radio/common_radio // Used to determine default channels
// Hud Stuff
var/list/hud_list[10]
@@ -38,7 +38,7 @@
)
// Utility
var/obj/item/device/camera/siliconcam/ai_camera //photography
var/obj/item/camera/siliconcam/ai_camera //photography
// ID and Access
var/list/access_rights
@@ -1,7 +1,7 @@
/obj/item/device/soulstone/cultify()
/obj/item/soulstone/cultify()
return
/obj/item/device/soulstone
/obj/item/soulstone
name = "soul stone shard"
desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artefacts power."
icon = 'icons/obj/wizard.dmi'
@@ -15,7 +15,7 @@
//////////////////////////////Capturing////////////////////////////////////////////////////////
/obj/item/device/soulstone/attack(mob/living/target_mob, mob/living/user, target_zone)
/obj/item/soulstone/attack(mob/living/target_mob, mob/living/user, target_zone)
user.setClickCooldown(20)
var/mob/living/carbon/human/M = target_mob
@@ -39,7 +39,7 @@
///////////////////Options for using captured souls///////////////////////////////////////
/obj/item/device/soulstone/attack_self(mob/user)
/obj/item/soulstone/attack_self(mob/user)
if(!in_range(src, user))
return
user.set_machine(src)
@@ -56,7 +56,7 @@
soulstone_win.add_stylesheet("cult", 'html/browser/cult.css')
soulstone_win.open()
/obj/item/device/soulstone/Topic(href, href_list)
/obj/item/soulstone/Topic(href, href_list)
var/mob/U = usr
if (!in_range(src, U)||U.machine!=src)
U << browse(null, "window=soulstone")
@@ -98,13 +98,13 @@
desc = "This eerie contraption looks like it would come alive if supplied with a missing ingredient."
/obj/structure/constructshell/attackby(obj/item/attacking_item, mob/user)
if(istype(attacking_item, /obj/item/device/soulstone))
var/obj/item/device/soulstone/S = attacking_item
if(istype(attacking_item, /obj/item/soulstone))
var/obj/item/soulstone/S = attacking_item
S.transfer_soul("CONSTRUCT",src,user)
////////////////////////////Proc for moving soul in and out off stone//////////////////////////////////////
/obj/item/device/soulstone/proc/transfer_human(var/mob/living/carbon/human/T,var/mob/U)
/obj/item/soulstone/proc/transfer_human(var/mob/living/carbon/human/T,var/mob/U)
if(!istype(T))
return
if(src.imprinted != "empty")
@@ -154,7 +154,7 @@
src.imprinted = "[S.name]"
qdel(T)
/obj/item/device/soulstone/proc/transfer_shade(var/mob/living/simple_animal/shade/T,var/mob/U)
/obj/item/soulstone/proc/transfer_shade(var/mob/living/simple_animal/shade/T,var/mob/U)
if(!istype(T))
return;
if (T.stat == DEAD)
@@ -176,7 +176,7 @@
to_chat(T, "Your soul has been recaptured by the soul stone, its arcane energies are reknitting your ethereal form")
to_chat(U, "<span class='notice'>Capture successful!</span> : [T.name]'s has been recaptured and stored within the soul stone.")
/obj/item/device/soulstone/proc/transfer_construct(var/obj/structure/constructshell/T,var/mob/U)
/obj/item/soulstone/proc/transfer_construct(var/obj/structure/constructshell/T,var/mob/U)
var/mob/living/simple_animal/shade/A = locate() in src
if(!A)
to_chat(U, "<span class='danger'>Capture failed!</span>: The soul stone is empty! Go kill someone!")
@@ -220,7 +220,7 @@
Z.cancel_camera()
qdel(src)
/obj/item/device/soulstone/proc/transfer_soul(var/choice as text, var/target, var/mob/U as mob)
/obj/item/soulstone/proc/transfer_soul(var/choice as text, var/target, var/mob/U as mob)
switch(choice)
if("VICTIM")
transfer_human(target,U)
@@ -91,7 +91,7 @@
corpsesuit = /obj/item/clothing/suit/armor/vest
corpseshoes = /obj/item/clothing/shoes/combat
corpsegloves = /obj/item/clothing/gloves/swat
corpseradio = /obj/item/device/radio/headset
corpseradio = /obj/item/radio/headset
corpsemask = /obj/item/clothing/mask/gas
corpsehelmet = /obj/item/clothing/head/helmet/swat
corpseback = /obj/item/storage/backpack
@@ -108,7 +108,7 @@
corpsesuit = /obj/item/clothing/suit/space/void/merc
corpseshoes = /obj/item/clothing/shoes/combat
corpsegloves = /obj/item/clothing/gloves/swat
corpseradio = /obj/item/device/radio/headset
corpseradio = /obj/item/radio/headset
corpsemask = /obj/item/clothing/mask/gas/syndicate
corpsehelmet = /obj/item/clothing/head/helmet/space/void/merc
corpseback = /obj/item/tank/jetpack/oxygen
@@ -7,12 +7,12 @@
maxbodytemp = 500
mob_size = MOB_TINY
var/radio_type = /obj/item/device/radio/borg
var/obj/item/device/radio/borg/radio = null
var/radio_type = /obj/item/radio/borg
var/obj/item/radio/borg/radio = null
var/mob/living/silicon/ai/connected_ai = null
var/obj/item/cell/cell = null
var/obj/machinery/camera/camera = null
var/obj/item/device/mmi/mmi = null
var/obj/item/mmi/mmi = null
var/obj/item/card/id/internal_id = null
var/list/req_access = list(ACCESS_ROBOTICS) //Access needed to pop out the brain.
var/positronic
@@ -79,8 +79,8 @@
/mob/living/simple_animal/spiderbot/attackby(obj/item/attacking_item, mob/user)
if(istype(attacking_item, /obj/item/device/mmi))
var/obj/item/device/mmi/B = attacking_item
if(istype(attacking_item, /obj/item/mmi))
var/obj/item/mmi/B = attacking_item
if(src.mmi)
to_chat(user, SPAN_WARNING("There's already a brain in [src]!"))
return
@@ -108,7 +108,7 @@
to_chat(user, SPAN_NOTICE("You install \the [attacking_item] in \the [src]!"))
if(istype(attacking_item, /obj/item/device/mmi/digital))
if(istype(attacking_item, /obj/item/mmi/digital))
positronic = 1
add_language("Robot Talk")
@@ -183,7 +183,7 @@
spawn(200) to_chat(src, SPAN_DANGER("Internal heat sensors are spiking! Something is badly wrong with your cell!"))
spawn(300) src.explode()
/mob/living/simple_animal/spiderbot/proc/transfer_personality(var/obj/item/device/mmi/M as obj)
/mob/living/simple_animal/spiderbot/proc/transfer_personality(var/obj/item/mmi/M as obj)
src.mind = M.brainmob.mind
src.mind.key = M.brainmob.key
src.ckey = M.brainmob.ckey
@@ -354,7 +354,7 @@
used_radios += radio
if("intercom")
var/turf/T = get_turf(src)
for(var/obj/item/device/radio/intercom/I in view(1, T))
for(var/obj/item/radio/intercom/I in view(1, T))
I.talk_into(src, message, null, verb, speaking)
used_radios += I
if(message_mode)
@@ -371,7 +371,7 @@
radio.interact(src)
/mob/living/simple_animal/spiderbot/ai
radio_type = /obj/item/device/radio/headset/heads/ai_integrated
radio_type = /obj/item/radio/headset/heads/ai_integrated
/mob/living/simple_animal/spiderbot/ai/Initialize()
. = ..()
@@ -65,7 +65,7 @@
var/list/speech_buffer = list()
var/list/available_channels = list()
var/obj/item/device/radio/headset/ears = null
var/obj/item/radio/headset/ears = null
//The thing the parrot is currently interested in. This gets used for items the parrot wants to pick up, mobs it wants to steal from,
//mobs it wants to attack or mobs that have attacked it
@@ -90,11 +90,11 @@
/mob/living/simple_animal/parrot/Initialize()
. = ..()
if(!ears)
var/headset = pick(/obj/item/device/radio/headset/headset_sec, \
/obj/item/device/radio/headset/headset_eng, \
/obj/item/device/radio/headset/headset_med, \
/obj/item/device/radio/headset/headset_sci, \
/obj/item/device/radio/headset/headset_cargo)
var/headset = pick(/obj/item/radio/headset/headset_sec, \
/obj/item/radio/headset/headset_eng, \
/obj/item/radio/headset/headset_med, \
/obj/item/radio/headset/headset_sci, \
/obj/item/radio/headset/headset_cargo)
ears = new headset(src)
parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var
@@ -184,11 +184,11 @@
if(!item_to_add)
return
if( !istype(item_to_add, /obj/item/device/radio/headset) )
if( !istype(item_to_add, /obj/item/radio/headset) )
to_chat(usr, SPAN_WARNING("This object won't fit."))
return
var/obj/item/device/radio/headset/headset_to_add = item_to_add
var/obj/item/radio/headset/headset_to_add = item_to_add
usr.drop_from_inventory(headset_to_add,src)
src.ears = headset_to_add
@@ -707,7 +707,7 @@
if(message_mode)
if(message_mode in radiochannels)
if(ears && istype(ears,/obj/item/device/radio))
if(ears && istype(ears,/obj/item/radio))
ears.talk_into(src,sanitize(message), message_mode, verb, null)
@@ -52,8 +52,8 @@
return FALSE
/mob/living/simple_animal/shade/attackby(obj/item/attacking_item, mob/user) //Marker -Agouri
if(istype(attacking_item, /obj/item/device/soulstone))
var/obj/item/device/soulstone/S = attacking_item
if(istype(attacking_item, /obj/item/soulstone))
var/obj/item/soulstone/S = attacking_item
S.transfer_soul("SHADE", src, user)
return
return ..()
+1 -1
View File
@@ -28,7 +28,7 @@
/proc/isMMI(A)
if(isbrain(A))
var/mob/living/carbon/brain/B = A
return istype(B.container, /obj/item/device/mmi)
return istype(B.container, /obj/item/mmi)
/mob/living/bot/isSynthetic()
return 1
+2 -2
View File
@@ -192,9 +192,9 @@
O.job = "Cyborg"
if(O.mind.assigned_role == "Cyborg")
if(O.mind.role_alt_title == "Robot")
O.mmi = new /obj/item/device/mmi/digital/robot(O)
O.mmi = new /obj/item/mmi/digital/robot(O)
else
O.mmi = new /obj/item/device/mmi(O)
O.mmi = new /obj/item/mmi(O)
O.mmi.transfer_identity(src)