Fixed up organ transplant rejection, added cortical stacks, changed vox over to use organ stacks.

This commit is contained in:
Zuhayr
2014-09-30 14:09:41 +09:30
parent f44a53fb69
commit b4646b65e8
10 changed files with 58 additions and 44 deletions

View File

@@ -517,24 +517,11 @@ client/proc/one_click_antag()
new_vox.mind.special_role = "Vox Raider"
new_vox.mutations |= NOCLONE //Stops the station crew from messing around with their DNA.
//Now apply cortical stack.
var/datum/organ/external/affected = new_vox.get_organ("head")
//To avoid duplicates.
for(var/obj/item/weapon/implant/cortical/imp in new_vox.contents)
affected.implants -= imp
del(imp)
var/obj/item/weapon/implant/cortical/I = new(new_vox)
I.imp_in = new_vox
I.implanted = 1
affected.implants += I
I.part = affected
if(ticker.mode && ( istype( ticker.mode,/datum/game_mode/heist ) ) )
var/datum/game_mode/heist/M = ticker.mode
cortical_stacks += I
M.raiders[new_vox.mind] = I
if(new_vox.internal_organs_by_name["stack"])
cortical_stacks |= new_vox.internal_organs_by_name["stack"]
M.raiders[new_vox.mind] = new_vox.internal_organs_by_name["stack"]
ticker.mode.traitors += new_vox.mind
new_vox.equip_vox_raider()

View File

@@ -311,7 +311,8 @@
"liver" = /datum/organ/internal/liver,
"kidneys" = /datum/organ/internal/kidney,
"brain" = /datum/organ/internal/brain,
"eyes" = /datum/organ/internal/eyes
"eyes" = /datum/organ/internal/eyes,
"stack" = /datum/organ/internal/stack/vox
)
/datum/species/vox/armalis

View File

@@ -30,7 +30,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
/mob/living/carbon/human/proc/fixblood()
for(var/datum/reagent/blood/B in vessel.reagent_list)
if(B.id == "blood")
B.data = list( "donor"=src,"viruses"=null,"blood_DNA"=dna.unique_enzymes,"blood_colour"= species.blood_color,"blood_type"=dna.b_type, \
B.data = list( "donor"=src,"viruses"=null,"species"=species.name,"blood_DNA"=dna.unique_enzymes,"blood_colour"= species.blood_color,"blood_type"=dna.b_type, \
"resistances"=null,"trace_chem"=null, "virus2" = null, "antibodies" = null)
B.color = B.data["blood_color"]

View File

@@ -180,4 +180,33 @@
/obj/item/organ/xenos/resinspinner
name = "hive node"
icon_state = "xgibmid2"
icon_state = "xgibmid2"
//VOX ORGANS.
/datum/organ/internal/stack
name = "cortical stack"
removed_type = /obj/item/organ/stack
parent_organ = "head"
robotic = 2
vital = 1
var/backup_time = 0
var/datum/mind/backup
/datum/organ/internal/stack/process()
if(owner && owner.stat != 2 && !is_broken())
backup_time = world.time
if(owner.mind) backup = owner.mind
/datum/organ/internal/stack/vox
removed_type = /obj/item/organ/stack/vox
/datum/organ/internal/stack/vox/stack
/obj/item/organ/stack
name = "cortical stack"
icon_state = "brain-prosthetic"
organ_tag = "stack"
robotic = 2
/obj/item/organ/stack/vox
name = "vox cortical stack"

View File

@@ -13,9 +13,9 @@
var/parent_organ = "chest"
var/robotic = 0 //For being a robot
var/removed_type //When removed, forms this object.
var/list/transplant_data // Blood DNA and colour of donor
var/rejecting // Is this organ already being rejected?
var/obj/item/organ/organ_holder // If not in a body, held in this item.
var/list/transplant_data
/datum/organ/internal/proc/rejuvenate()
damage=0
@@ -275,5 +275,6 @@
if(istype(removed_organ))
removed_organ.organ_data = src
removed_organ.update()
organ_holder = removed_organ
return removed_organ

View File

@@ -94,7 +94,7 @@ datum
blood
data = new/list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"blood_colour"= "#A10808","resistances"=null,"trace_chem"=null, "antibodies" = null)
data = new/list("donor"=null,"viruses"=null,"species"="Human","blood_DNA"=null,"blood_type"=null,"blood_colour"= "#A10808","resistances"=null,"trace_chem"=null, "antibodies" = null)
name = "Blood"
id = "blood"
reagent_state = LIQUID

View File

@@ -404,12 +404,19 @@
if(istype(O))
if(!O.organ_data.transplant_data)
var/datum/reagent/blood/transplant_blood = O.reagents.reagent_list["blood"]
if(!transplant_blood)
O.organ_data.transplant_data = list()
O.organ_data.transplant_data["species"] = target.species.name
O.organ_data.transplant_data["species"] = target.species.name
O.organ_data.transplant_data["blood_type"] = target.dna.b_type
O.organ_data.transplant_data["blood_DNA"] = target.dna.unique_enzymes
O.organ_data.transplant_data["blood_DNA"] = target.dna.unique_enzymes
else
O.organ_data.transplant_data = list()
O.organ_data.transplant_data["species"] = transplant_blood.data["species"]
O.organ_data.transplant_data["blood_type"] = transplant_blood.data["blood_type"]
O.organ_data.transplant_data["blood_DNA"] = transplant_blood.data["blood_DNA"]
O.organ_data.organ_holder = null
O.organ_data.owner = target
target.internal_organs |= O.organ_data
affected.internal_organs |= O.organ_data