Merge pull request #10957 from Core0verload/surgery-organs-implants

Implants, Surgery and Organs rework: Phase 1
This commit is contained in:
Jordie
2015-08-04 21:45:02 +10:00
87 changed files with 1963 additions and 1640 deletions

View File

@@ -3,15 +3,18 @@
return
//Handle items on mob
//first implants
//first implants & organs
var/list/implants = list()
var/list/int_organs = list()
if (tr_flags & TR_KEEPIMPLANTS)
for(var/obj/item/weapon/implant/W in src)
implants += W
if(tr_flags & TR_KEEPITEMS)
for(var/obj/item/W in (src.contents-implants))
unEquip(W)
if (tr_flags & TR_KEEPORGANS)
for(var/obj/item/organ/internal/I in internal_organs)
int_organs += I
I.Remove(src, 1)
//Make mob invisible and spawn animation
regenerate_icons()
@@ -70,6 +73,14 @@
I.loc = O
I.implanted = O
//re-add organs to new mob
if(tr_flags & TR_KEEPORGANS)
for(var/obj/item/organ/internal/I in O.internal_organs)
qdel(I)
for(var/obj/item/organ/internal/I in int_organs)
I.Insert(O, 1)
//transfer mind and delete old mob
if(mind)
mind.transfer_to(O)
@@ -98,12 +109,19 @@
return
//Handle items on mob
//first implants
//first implants & organs
var/list/implants = list()
var/list/int_organs = list()
if (tr_flags & TR_KEEPIMPLANTS)
for(var/obj/item/weapon/implant/W in src)
implants += W
if (tr_flags & TR_KEEPORGANS)
for(var/obj/item/organ/internal/I in internal_organs)
int_organs += I
I.Remove(src, 1)
//now the rest
if (tr_flags & TR_KEEPITEMS)
for(var/obj/item/W in (src.contents-implants))
@@ -187,6 +205,13 @@
I.implanted = O
O.sec_hud_set_implants()
if(tr_flags & TR_KEEPORGANS)
for(var/obj/item/organ/internal/I in O.internal_organs)
qdel(I)
for(var/obj/item/organ/internal/I in int_organs)
I.Insert(O, 1)
if(mind)
mind.transfer_to(O)
O.a_intent = "help"