Full Positronic Brain to Robotic Brain Refactor

This commit is contained in:
Fox McCloud
2018-07-12 19:30:48 -04:00
parent 665c0062b3
commit 67d12c0aa6
18 changed files with 98 additions and 143 deletions
+36
View File
@@ -0,0 +1,36 @@
// Used for an MMI or robotic brain being installed into a human.
/obj/item/organ/internal/brain/mmi_holder
name = "Man-Machine Interface"
parent_organ = "chest"
status = ORGAN_ROBOT
var/obj/item/mmi/stored_mmi
/obj/item/organ/internal/brain/mmi_holder/Destroy()
QDEL_NULL(stored_mmi)
return ..()
/obj/item/organ/internal/brain/mmi_holder/insert(mob/living/target, special = 0)
..()
// To supersede the over-writing of the MMI's name from `insert`
update_from_mmi()
/obj/item/organ/internal/brain/mmi_holder/remove(mob/living/user, special = 0)
if(!special)
if(stored_mmi)
. = stored_mmi
if(owner.mind)
owner.mind.transfer_to(stored_mmi.brainmob)
stored_mmi.forceMove(get_turf(owner))
stored_mmi = null
..()
if(!QDELETED(src))
qdel(src)
/obj/item/organ/internal/brain/mmi_holder/proc/update_from_mmi()
if(!stored_mmi)
return
name = stored_mmi.name
desc = stored_mmi.desc
icon = stored_mmi.icon
icon_state = stored_mmi.icon_state
set_dna(stored_mmi.brainmob.dna)
@@ -136,60 +136,12 @@
. = ..()
// Used for an MMI or posibrain being installed into a human.
/obj/item/organ/internal/brain/mmi_holder
name = "brain"
organ_tag = "brain"
/obj/item/organ/internal/brain/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'
icon_state = "posibrain-occupied"
dead_icon = "posibrain"
parent_organ = "chest"
vital = TRUE
max_damage = 200
slot = "brain"
status = ORGAN_ROBOT
species = "Machine"
var/obj/item/mmi/stored_mmi
/obj/item/organ/internal/brain/mmi_holder/Destroy()
QDEL_NULL(stored_mmi)
return ..()
/obj/item/organ/internal/brain/mmi_holder/insert(var/mob/living/target,special = 0)
..()
// To supersede the over-writing of the MMI's name from `insert`
update_from_mmi()
/obj/item/organ/internal/brain/mmi_holder/remove(var/mob/living/user,special = 0)
if(!special)
if(stored_mmi)
. = stored_mmi
if(owner.mind)
owner.mind.transfer_to(stored_mmi.brainmob)
stored_mmi.forceMove(get_turf(owner))
stored_mmi = null
..()
if(!QDELETED(src))
qdel(src)
/obj/item/organ/internal/brain/mmi_holder/proc/update_from_mmi()
if(!stored_mmi)
return
name = stored_mmi.name
desc = stored_mmi.desc
icon = stored_mmi.icon
icon_state = stored_mmi.icon_state
set_dna(stored_mmi.brainmob.dna)
/obj/item/organ/internal/brain/mmi_holder/posibrain/New()
robotize()
stored_mmi = new /obj/item/mmi/posibrain/ipc(src)
..()
spawn(1)
if(!QDELETED(src))
if(owner)
stored_mmi.name = "positronic brain ([owner.real_name])"
stored_mmi.brainmob.real_name = owner.real_name
stored_mmi.brainmob.name = stored_mmi.brainmob.real_name
stored_mmi.icon_state = "posibrain-occupied"
update_from_mmi()
else
stored_mmi.loc = get_turf(src)
qdel(src)
species = "Machine"