diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/tajara_transformation.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/tajara_transformation.dm index 44360cace8b..c8906cf31df 100644 --- a/code/WorkInProgress/Cael_Aislinn/Tajara/tajara_transformation.dm +++ b/code/WorkInProgress/Cael_Aislinn/Tajara/tajara_transformation.dm @@ -37,6 +37,7 @@ updateappearance(O,O.dna.uni_identity) O.loc = loc O.viruses = viruses + O.s_tone = s_tone viruses = list() for(var/datum/disease/D in O.viruses) D.affected_mob = O @@ -47,6 +48,10 @@ client.mob = O if(mind) mind.transfer_to(O) + + del(O.stand_icon) //Force it to update. + del(O.lying_icon) + O.update_body() O.update_face() spawn(1) diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm index 18e3322a3e8..2f5c835650e 100644 --- a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm +++ b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm @@ -303,7 +303,12 @@ if ( istype(wear_suit, /obj/item/clothing/suit/bio_suit) || istype(wear_suit, /obj/item/clothing/suit/bomb_suit) || istype(wear_suit, /obj/item/clothing/suit/space) ) tail_shown = 0 if(tail_shown) - overlays += image("icon" = icon('tajaran.dmi', "tail_[gender==FEMALE ? "f" : "m"]_[lying ? "l" : "s"]"), "layer" = MOB_LAYER) + var/icon/tail_icon = image("icon" = icon('tajaran.dmi', "tail_[gender==FEMALE ? "f" : "m"]_[lying ? "l" : "s"]"), "layer" = MOB_LAYER) + if (s_tone >= 0) + tail_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD) + else + tail_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) + overlays += tail_icon if (lying) if (face_lying) @@ -339,7 +344,12 @@ var/datum/organ/external/head = organs["head"] if(!head.destroyed) //if not wearing anything on the head, show the ears - overlays += image("icon" = icon('tajaran.dmi', "ears_[gender==FEMALE ? "f" : "m"]_[lying ? "l" : "s"]"), "layer" = MOB_LAYER) + var/icon/ears_icon = image("icon" = icon('tajaran.dmi', "ears_[gender==FEMALE ? "f" : "m"]_[lying ? "l" : "s"]"), "layer" = MOB_LAYER) + if (s_tone >= 0) + ears_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD) + else + ears_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) + overlays += ears_icon // Belt if (belt) diff --git a/code/modules/chemical/Chemistry-Reagents.dm b/code/modules/chemical/Chemistry-Reagents.dm index aa59d4153d5..12662451fcf 100644 --- a/code/modules/chemical/Chemistry-Reagents.dm +++ b/code/modules/chemical/Chemistry-Reagents.dm @@ -104,7 +104,7 @@ datum on_mob_life(var/mob/living/M) if(!data || !data["blood_type"]) ..() - else if(istype(M, /mob/living/carbon/human) && blood_incompatible(data["blood_type"],M.dna.b_type)) + else if(istype(M, /mob/living/carbon/human) && blood_incompatible(data["blood_type"],M.dna.b_type) && !M.changeling) M.adjustToxLoss(rand(0.5,1.5)) M.adjustOxyLoss(rand(1,1.5)) ..() diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 48f22381d62..ffb3d985a1b 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -872,7 +872,7 @@ if(E.name == "l_hand" || E.name == "l_arm") if(hand && equipped()) drop_item() - emote("custom v drops what they were holding, their limb malfunctioning!") + emote("custom v drops what they were holding, their [E] malfunctioning!") var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src) spark_system.attach(src) @@ -882,7 +882,7 @@ else if(E.name == "r_hand" || E.name == "r_arm") if(!hand && equipped()) drop_item() - emote("custom v drops what they were holding, their limb malfunctioning!") + emote("custom v drops what they were holding, their [E] malfunctioning!") var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src) spark_system.attach(src) @@ -915,6 +915,15 @@ var/blood_volume = round(vessel.get_reagent_amount("blood")) if(bloodloss) drip(bloodloss) + else if(blood_volume < 560 && blood_volume) + var/datum/reagent/blood/B = locate() in vessel //Grab some blood + if(!B.data["donor"] == src) //If it's not theirs, then we look for theirs + for(var/datum/reagent/blood/D in vessel) + if(D.data["donor"] == src) + B = D + break + //At this point, we dun care which blood we are adding to, as long as they get more blood. + B.volume = max(min(B.volume + 560/blood_volume,560), 0) //Less blood = More blood generated per tick if(!blood_volume) bloodloss = 0 else if(blood_volume > 448)