mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-20 18:47:20 +01:00
Adds Buildable Automated Machine Frames and Robotic Limb Customization Surgery
This commit is contained in:
@@ -14,8 +14,18 @@
|
||||
mecha = null//This does not appear to be used outside of reference in mecha.dm.
|
||||
var/silenced = 0 //if set to 1, they can't talk.
|
||||
var/next_ping_at = 0
|
||||
var/requires_master = TRUE
|
||||
var/mob/living/carbon/human/imprinted_master = null
|
||||
|
||||
/obj/item/mmi/posibrain/Destroy()
|
||||
imprinted_master = null
|
||||
return ..()
|
||||
|
||||
/obj/item/mmi/posibrain/attack_self(mob/user)
|
||||
if(requires_master && !imprinted_master)
|
||||
to_chat(user, "<span class='notice'>You press your thumb on [src] and imprint your user information.</span>")
|
||||
imprinted_master = user
|
||||
return
|
||||
if(brainmob && !brainmob.key && searching == 0)
|
||||
//Start the process of searching for a new user.
|
||||
to_chat(user, "<span class='notice'>You carefully locate the manual activation switch and start the positronic brain's boot process.</span>")
|
||||
@@ -86,17 +96,23 @@
|
||||
radio_action.ApplyIcon()
|
||||
return
|
||||
|
||||
/obj/item/mmi/posibrain/proc/transfer_personality(var/mob/candidate)
|
||||
src.searching = 0
|
||||
src.brainmob.key = candidate.key
|
||||
src.name = "positronic brain ([src.brainmob.name])"
|
||||
/obj/item/mmi/posibrain/attempt_become_organ(obj/item/organ/external/parent, mob/living/carbon/human/H)
|
||||
if(..())
|
||||
if(imprinted_master)
|
||||
to_chat(H, "<span class='biggerdanger'>You are permanently imprinted to [imprinted_master], obey [imprinted_master]'s every order and assist [imprinted_master.p_them()] in completing [imprinted_master.p_their()] goals at any cost.</span>")
|
||||
|
||||
to_chat(src.brainmob, "<b>You are a positronic brain, brought into existence on [station_name()].</b>")
|
||||
to_chat(src.brainmob, "<b>As a synthetic intelligence, you answer to all crewmembers, as well as the AI.</b>")
|
||||
to_chat(src.brainmob, "<b>Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm.</b>")
|
||||
src.brainmob.mind.assigned_role = "Positronic Brain"
|
||||
|
||||
var/turf/T = get_turf_or_move(src.loc)
|
||||
/obj/item/mmi/posibrain/proc/transfer_personality(mob/candidate)
|
||||
searching = 0
|
||||
brainmob.key = candidate.key
|
||||
name = "positronic brain ([brainmob.name])"
|
||||
|
||||
to_chat(brainmob, "<b>You are a positronic brain, brought into existence on [station_name()].</b>")
|
||||
to_chat(brainmob, "<b>As a synthetic intelligence, you answer to [imprinted_master], unless otherwise placed inside of a lawed synthetic structure.</b>")
|
||||
to_chat(brainmob, "<b>Remember, the purpose of your existence is to serve [imprinted_master]'s every word, unless lawed in the future.</b>")
|
||||
brainmob.mind.assigned_role = "Positronic Brain"
|
||||
|
||||
var/turf/T = get_turf_or_move(loc)
|
||||
for(var/mob/M in viewers(T))
|
||||
M.show_message("<span class='notice'>The positronic brain chimes quietly.</span>")
|
||||
become_occupied("posibrain-occupied")
|
||||
@@ -204,3 +220,4 @@
|
||||
/obj/item/mmi/posibrain/ipc
|
||||
desc = "A cube of shining metal, four inches to a side and covered in shallow grooves."
|
||||
silenced = 1
|
||||
requires_master = FALSE
|
||||
|
||||
@@ -118,6 +118,19 @@
|
||||
/mob/living/carbon/human/machine/Initialize(mapload)
|
||||
..(mapload, "Machine")
|
||||
|
||||
/mob/living/carbon/human/machine/created
|
||||
name = "automated machine-frame"
|
||||
|
||||
/mob/living/carbon/human/machine/created/Initialize(mapload)
|
||||
..()
|
||||
real_name = "automated machine-frame ([rand(1, 1000)])"
|
||||
for(var/obj/item/organ/external/E in bodyparts)
|
||||
if(istype(E, /obj/item/organ/external/chest) || istype(E, /obj/item/organ/external/groin))
|
||||
continue
|
||||
qdel(E)
|
||||
for(var/obj/item/organ/O in internal_organs)
|
||||
qdel(O)
|
||||
|
||||
/mob/living/carbon/human/shadow/Initialize(mapload)
|
||||
..(mapload, "Shadow")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user