Merge pull request #9204 from Fox-McCloud/robotic-brain-rebrand

Robotic brain rebrand
This commit is contained in:
Crazy Lemon
2018-07-13 21:41:31 -07:00
committed by GitHub
20 changed files with 164 additions and 158 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)
+1
View File
@@ -30,6 +30,7 @@
var/tough = FALSE //can organ be easily damaged?
var/emp_proof = FALSE //is the organ immune to EMPs?
var/hidden_pain = FALSE //will it skip pain messages?
var/requires_robotic_bodypart = FALSE
/obj/item/organ/Destroy()
@@ -136,51 +136,8 @@
. = ..()
// Used for an MMI or posibrain being installed into a human.
/obj/item/organ/internal/brain/mmi_holder
name = "brain"
organ_tag = "brain"
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)
stored_mmi = new /obj/item/mmi/robotic_brain/positronic(src)
..()
spawn(1)
if(!QDELETED(src))
@@ -192,4 +149,4 @@
update_from_mmi()
else
stored_mmi.loc = get_turf(src)
qdel(src)
qdel(src)
+9 -4
View File
@@ -101,6 +101,9 @@
if(is_int_organ(tool))
current_type = "insert"
I = tool
if(I.requires_robotic_bodypart)
to_chat(user, "<span class='warning'>[I] is an organ that requires a robotic interface[target].</span>")
return -1
if(target_zone != I.parent_organ || target.get_organ_slot(I.slot))
to_chat(user, "<span class='notice'>There is no room for [I] in [target]'s [parse_zone(target_zone)]!</span>")
return -1
@@ -257,12 +260,14 @@
else if(current_type == "insert")
I = tool
user.drop_item()
I.insert(target)
spread_germs_to_organ(I, user, tool)
if(!user.canUnEquip(I, 0))
if(I.requires_robotic_bodypart)
to_chat(user, "<span class='warning'>[I] is an organ that requires a robotic interface[target].</span>")
return FALSE
if(!user.drop_item())
to_chat(user, "<span class='warning'>[I] is stuck to your hand, you can't put it in [target]!</span>")
return 0
I.insert(target)
spread_germs_to_organ(I, user, tool)
if(affected)
user.visible_message("<span class='notice'> [user] has transplanted [tool] into [target]'s [affected.name].</span>",