mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-20 20:37:34 +01:00
[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:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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,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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user