Organ rewrite mapclean attempt.

This commit is contained in:
Zuhayr
2014-09-29 06:18:58 +09:30
parent 97801b4617
commit 9fcde12b4f
61 changed files with 1611 additions and 1035 deletions
+21 -38
View File
@@ -95,7 +95,7 @@ datum
blood
data = new/list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null, "antibodies" = null)
data = new/list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"blood_colour"= "#A10808","resistances"=null,"trace_chem"=null, "antibodies" = null)
name = "Blood"
id = "blood"
reagent_state = LIQUID
@@ -128,49 +128,30 @@ datum
var/mob/living/carbon/C = M
C.antibodies |= self.data["antibodies"]
on_merge(var/data)
if(data["blood_colour"])
color = data["blood_colour"]
return ..()
on_update(var/atom/A)
if(data["blood_colour"])
color = data["blood_colour"]
return ..()
reaction_turf(var/turf/simulated/T, var/volume)//splash the blood all over the place
if(!istype(T)) return
var/datum/reagent/blood/self = src
src = null
if(!(volume >= 3)) return
//var/datum/disease/D = self.data["virus"]
if(!self.data["donor"] || istype(self.data["donor"], /mob/living/carbon/human))
var/obj/effect/decal/cleanable/blood/blood_prop = locate() in T //find some blood here
if(!blood_prop) //first blood!
blood_prop = new(T)
blood_prop.blood_DNA[self.data["blood_DNA"]] = self.data["blood_type"]
for(var/datum/disease/D in self.data["viruses"])
var/datum/disease/newVirus = D.Copy(1)
blood_prop.viruses += newVirus
newVirus.holder = blood_prop
if(self.data["virus2"])
blood_prop.virus2 = virus_copylist(self.data["virus2"])
blood_splatter(T,self,1)
else if(istype(self.data["donor"], /mob/living/carbon/monkey))
var/obj/effect/decal/cleanable/blood/blood_prop = locate() in T
if(!blood_prop)
blood_prop = new(T)
blood_prop.blood_DNA["Non-Human DNA"] = "A+"
for(var/datum/disease/D in self.data["viruses"])
var/datum/disease/newVirus = D.Copy(1)
blood_prop.viruses += newVirus
newVirus.holder = blood_prop
var/obj/effect/decal/cleanable/blood/B = blood_splatter(T,self,1)
if(B) B.blood_DNA["Non-Human DNA"] = "A+"
else if(istype(self.data["donor"], /mob/living/carbon/alien))
var/obj/effect/decal/cleanable/blood/xeno/blood_prop = locate() in T
if(!blood_prop)
blood_prop = new(T)
blood_prop.blood_DNA["UNKNOWN DNA STRUCTURE"] = "X*"
for(var/datum/disease/D in self.data["viruses"])
var/datum/disease/newVirus = D.Copy(1)
blood_prop.viruses += newVirus
newVirus.holder = blood_prop
var/obj/effect/decal/cleanable/blood/B = blood_splatter(T,self,1)
if(B) B.blood_DNA["UNKNOWN DNA STRUCTURE"] = "X*"
return
/* Must check the transfering of reagents and their data first. They all can point to one disease datum.
@@ -1276,7 +1257,7 @@ datum
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"]
if(istype(E))
if(E && istype(E))
if(E.damage > 0)
E.damage = max(E.damage - 1, 0)
..()
@@ -3024,7 +3005,9 @@ datum
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/internal/liver/L = H.internal_organs_by_name["liver"]
if (istype(L))
if (!L)
H.adjustToxLoss(5)
else if(istype(L))
L.take_damage(0.1, 1)
H.adjustToxLoss(0.1)
..()
@@ -3264,13 +3247,13 @@ datum
if(prob(5)) if(ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/internal/heart/L = H.internal_organs_by_name["heart"]
if (istype(L))
if (L && istype(L))
L.take_damage(5, 0)
if (300 to INFINITY)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/internal/heart/L = H.internal_organs_by_name["heart"]
if (istype(L))
if (L && istype(L))
L.take_damage(100, 0)
holder.remove_reagent(src.id, FOOD_METABOLISM)
@@ -590,25 +590,20 @@
..()
reagents.add_reagent("nutriment", 1)
/obj/item/weapon/reagent_containers/food/snacks/appendix
//yes, this is the same as meat. I might do something different in future
name = "appendix"
desc = "An appendix which looks perfectly healthy."
/obj/item/weapon/reagent_containers/food/snacks/organ
name = "organ"
desc = "It's good for you."
icon = 'icons/obj/surgery.dmi'
icon_state = "appendix"
filling_color = "#E00D34"
New()
..()
reagents.add_reagent("nutriment", 3)
reagents.add_reagent("nutriment", rand(3,5))
reagents.add_reagent("toxin", rand(1,3))
src.bitesize = 3
/obj/item/weapon/reagent_containers/food/snacks/appendix/inflamed
name = "inflamed appendix"
desc = "An appendix which appears to be inflamed."
icon_state = "appendixinflamed"
filling_color = "#E00D7A"
/obj/item/weapon/reagent_containers/food/snacks/tofu
name = "Tofu"
icon_state = "tofu"
@@ -1559,7 +1554,6 @@
On_Consume(var/mob/M)
M << "<span class = 'warning'>Something inside of you suddently expands!</span>"
if (istype(M, /mob/living/carbon/human))
//Do not try to understand.
var/obj/item/weapon/surprise = new/obj/item/weapon(M)
@@ -128,7 +128,7 @@
if(SYRINGE_INJECT)
if(!reagents.total_volume)
user << "\red The Syringe is empty."
user << "\red The syringe is empty."
return
if(istype(target, /obj/item/weapon/implantcase/chem))
return