diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index e0cef604860f..dbd0354e2a03 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -128,7 +128,7 @@ /atom/movable/screen/synth/coolant_counter icon = 'icons/mob/screen_synth.dmi' - name = "Coolant System Readout" + name = "Hydraulic Fluid System Readout" // BLUEMOON EDIT - написал "гидравлическая жидкость" icon_state = "coolant-3-1" screen_loc = ui_coolant_display var/jammed = 0 @@ -198,7 +198,7 @@ total_efficiency = rand(1, 15) / 10 environ_efficiency = rand(1, 20) / 10 . += "Performing internal cooling system diagnostics:" - . += "Coolant level: [coolant] units, [round((coolant / (BLOOD_VOLUME_NORMAL * owner.blood_ratio)) * 100, 0.1)] percent" + . += "Hydraulic fluid level: [coolant] units, [round((coolant / (BLOOD_VOLUME_NORMAL * owner.blood_ratio)) * 100, 0.1)] percent" // BLUEMOON EDIT - написал "гидравлическая жидкость" . += "Current Cooling Efficiency: [round(total_efficiency * 100, 0.1)] percent, [suitlink_efficiency ? "active suitlink detected, guaranteeing [suitlink_efficiency * 100]% environmental cooling efficiency." : "environment viability: [round(environ_efficiency * 100, 0.1)] percent."]" /atom/movable/screen/synth/coolant_counter/proc/jam(amount, cap = 20) diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index 0f8b02da05e9..bc1891cbe875 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -43,6 +43,18 @@ crate_name = "blood freezer" crate_type = /obj/structure/closet/crate/freezer +// BLUEMOON ADD START - кровь для синтетиков +/datum/supply_pack/medical/oilblood + name = "Hydraulic Fluid Cans Crate" + desc = "Содержит три канистры с гидравлической жидкостью. Обычно, применяется в механике и для замены жидкостей внутри синтетиков." + cost = 1500 + contains = list(/obj/item/reagent_containers/blood/oilblood, + /obj/item/reagent_containers/blood/oilblood, + /obj/item/reagent_containers/blood/oilblood) + crate_name = "hydraulic fluid crate" + crate_type = /obj/structure/closet/crate +// BLUEMOON ADD END + /datum/supply_pack/medical/chemical name = "Chemical Starter Kit Crate" desc = "Содержит двенадцать различных химических веществ для всех забавных экспериментов, которые вы можете провести." diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index c74a13230093..5306dc32ab8f 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -282,7 +282,7 @@ "O+" = list("O-", "O+","SY"), "L" = list("L","SY"), "U" = list("A-", "A+", "B-", "B+", "O-", "O+", "AB-", "AB+", "L", "U","SY", "BUG"), - "HF" = list("HF", "SY"), + "HF" = list("HF"), // BLUEMOON EDIT - было "HF" = list("HF", "SY"), "X*" = list("X*", "SY"), "SY" = list("SY"), "GEL" = list("GEL","SY"), diff --git a/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm b/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm index cd2880efac8b..b3194f1fdd43 100644 --- a/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm +++ b/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm @@ -25,9 +25,8 @@ id = SPECIES_MAMMAL_SYNTHETIC species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR,FACEHAIR,ROBOTIC_LIMBS,HAS_FLESH,HAS_BONE,WINGCOLOR,HORNCOLOR) - inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM, TRAIT_RESISTLOWPRESSURE, TRAIT_NOBREATH, TRAIT_AUXILIARY_LUNGS, TRAIT_VIRUSIMMUNE) // BLUEMOON CHANGES - добавлена защита от вирусов + inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM, TRAIT_RESISTLOWPRESSURE, TRAIT_NOBREATH, TRAIT_AUXILIARY_LUNGS, TRAIT_VIRUSIMMUNE, TRAIT_RESISTCOLD, TRAIT_NOMARROW, TRAIT_NOTHIRST) // BLUEMOON ADD - добавлены TRAIT_VIRUSIMMUNE, TRAIT_RESISTCOLD, TRAIT_NOTHIRST и TRAIT_NOMARROW inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID|MOB_BEAST - meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc gib_types = list(/obj/effect/gibspawner/ipc, /obj/effect/gibspawner/ipc/bodypartless) @@ -61,7 +60,7 @@ attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' - exotic_bloodtype = "S" + exotic_bloodtype = "HF" // BLUEMOON EDIT - было "S" exotic_blood_color = BLOOD_COLOR_OIL allowed_limb_ids = list("mammal","aquatic","avian", "human") species_category = SPECIES_CATEGORY_ROBOT diff --git a/code/modules/mob/living/carbon/human/species_types/ipc.dm b/code/modules/mob/living/carbon/human/species_types/ipc.dm index 3536ce8f32db..514b7ec139f6 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -5,7 +5,7 @@ default_color = "00FF00" blacklisted = 0 sexes = 0 - inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM, TRAIT_RESISTLOWPRESSURE, TRAIT_NOBREATH, TRAIT_AUXILIARY_LUNGS, TRAIT_VIRUSIMMUNE) // BLUEMOON CHANGES - добавлена защита от вирусов + inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM, TRAIT_RESISTLOWPRESSURE, TRAIT_NOBREATH, TRAIT_AUXILIARY_LUNGS, TRAIT_VIRUSIMMUNE, TRAIT_RESISTCOLD, TRAIT_NOMARROW, TRAIT_NOTHIRST) // BLUEMOON ADD - добавлены TRAIT_VIRUSIMMUNE, TRAIT_RESISTCOLD, TRAIT_NOTHIRST и TRAIT_NOMARROW species_traits = list(MUTCOLORS,NOEYES,NOTRANSSTING,HAS_FLESH,HAS_BONE,HAIR,ROBOTIC_LIMBS) hair_alpha = 210 inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID @@ -38,7 +38,7 @@ //special cybernetic organ for getting power from apcs mutant_organs = list(/obj/item/organ/cyberimp/arm/power_cord) - exotic_bloodtype = "S" + exotic_bloodtype = "HF" // BLUEMOON EDIT - было "S" exotic_blood_color = BLOOD_COLOR_OIL species_category = SPECIES_CATEGORY_ROBOT wings_icons = SPECIES_WINGS_ROBOT diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index 033cba8d728a..0d4d9e79152a 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -4,7 +4,7 @@ say_mod = "beeps" default_color = "00FF00" species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR,ROBOTIC_LIMBS,HAS_FLESH,HAS_BONE) - inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM, TRAIT_RESISTLOWPRESSURE, TRAIT_NOBREATH, TRAIT_AUXILIARY_LUNGS, TRAIT_VIRUSIMMUNE) // BLUEMOON CHANGES - добавлена защита от вирусов + inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM, TRAIT_RESISTLOWPRESSURE, TRAIT_NOBREATH, TRAIT_AUXILIARY_LUNGS, TRAIT_VIRUSIMMUNE, TRAIT_RESISTCOLD, TRAIT_NOMARROW, TRAIT_NOTHIRST) // BLUEMOON ADD - добавлены TRAIT_VIRUSIMMUNE, TRAIT_RESISTCOLD, TRAIT_NOTHIRST и TRAIT_NOMARROW inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID mutant_bodyparts = list("ipc_antenna" = "Synthetic Lizard - Antennae","mam_tail" = "Synthetic Lizard", "mam_snouts" = "Synthetic Lizard - Snout", "legs" = "Digitigrade", "mam_body_markings" = "Synthetic Lizard - Plates", "taur" = "None") meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc @@ -36,7 +36,7 @@ //special cybernetic organ for getting power from apcs mutant_organs = list(/obj/item/organ/cyberimp/arm/power_cord) - exotic_bloodtype = "S" + exotic_bloodtype = "HF" // BLUEMOON EDIT - было "S" exotic_blood_color = BLOOD_COLOR_OIL tail_type = "mam_tail" diff --git a/code/modules/mob/living/taste.dm b/code/modules/mob/living/taste.dm index d7bdd57fa31d..de7a6afeaec0 100644 --- a/code/modules/mob/living/taste.dm +++ b/code/modules/mob/living/taste.dm @@ -47,8 +47,9 @@ if(from.has_reagent(/datum/reagent/consumable/semen) && (HAS_TRAIT(src, TRAIT_DUMB_CUM) || HAS_TRAIT(src, TRAIT_GFLUID_DETECT))) to_chat(src, span_love("Вы узнаете хорошо знакомый вам вкус свежей спермы~")) if ((from.pH > 12.5) || (from.pH < 1.5)) - T.applyOrganDamage(5) - to_chat(src, "You taste chemical burns!") + if(!(HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM))) // BLUEMOON ADD - синтетики в ином случае получают химические ожоги, если пьют гидравлическую жидкость + T.applyOrganDamage(5) + to_chat(src, "You taste chemical burns!") if(istype(T, /obj/item/organ/tongue/cybernetic)) to_chat(src, "Your tongue moves on it's own in response to the liquid.") say("The pH is appropriately [round(from.pH, 1)].") diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 057f82bba67a..c8d699eaaf16 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -60,6 +60,14 @@ if((blood_id in GLOB.blood_reagent_types) && !HAS_TRAIT(C, TRAIT_NOMARROW) && !HAS_TRAIT(C, TRAIT_BLOODFLEDGE)) if(!data || !(data["blood_type"] in get_safe_blood(C.dna.blood_type))) //we only care about bloodtype here because this is where the poisoning should be C.adjustToxLoss(rand(2,8)*REM, TRUE, TRUE) //forced to ensure people don't use it to gain beneficial toxin as slime person + // BLUEMOON ADD START - синтетики могут пить свою же "кровь" (гидравлическую жидкость), чтобы восполнять её запасы + if(HAS_TRAIT(C, TRAIT_ROBOTIC_ORGANISM)) + if(data && (data["blood_type"] in get_safe_blood(C.dna.blood_type))) + if(C.blood_volume > BLOOD_VOLUME_NORMAL) // если крови слишком много, она не восполняет запасы в организме + to_chat(C, span_warning("[C] leaks out with hydraulic fluid! It streams from holes in hull parts.")) + else //восполнение крови в соотношении 1 к 1 + C.blood_volume = max(C.blood_volume + round(metabolization_rate, 0.1), 0) + // BLUEMOON ADD END ..() /datum/reagent/blood/reaction_obj(obj/O, volume) @@ -101,7 +109,7 @@ pH = 2.5 if(data["blood_type"] == "HF") - name = "Hydraulic Blood" + name = "Hydraulic Fluid" // BLUEMOON EDIT - was "Hydraulic Blood" taste_description = "burnt oil" pH = 9.75 diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 78e8e3f0435b..7a102624e7eb 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -45,7 +45,7 @@ /obj/item/reagent_containers/blood/random/Initialize(mapload) icon_state = "bloodpack" - blood_type = pick("A+", "A-", "B+", "B-", "O+", "O-", "L", "SY", "HF", "GEL", "BUG") + blood_type = pick("A+", "A-", "B+", "B-", "O+", "O-", "L", "SY", "GEL", "BUG") // BLUEMOON EDIT - убрано "HF" return ..() /obj/item/reagent_containers/blood/APlus @@ -76,7 +76,10 @@ blood_type = "SY" /obj/item/reagent_containers/blood/oilblood + name = "hydraulic fluid pack" // BLUEMOON ADD + desc = "Contains hydraulic fluid used in synthetics." // BLUEMOON ADD blood_type = "HF" + labelled = TRUE // BLUEMOON ADD /obj/item/reagent_containers/blood/jellyblood blood_type = "GEL" diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index ffa15d23c57e..86e486838bf7 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -464,11 +464,11 @@ to_chat(user, "Biotype incompatible with cooling system. Activation signal suppressed.") return if(!is_cooling && owner.blood_volume < cooling_coolant_drain) - to_chat(user, "Coolant levels insufficient to enable active cooling - Replenish immediately.") + to_chat(user, "Hydraulic fluid level is insufficient to enable active cooling - Replenish immediately.") // BLUEMOON EDIT - написал "гидравлическая жидкость" return is_cooling = !is_cooling - to_chat(user, "Active cooling [is_cooling ? "enabled" : "disabled"] - current coolant level: [round(owner.blood_volume / BLOOD_VOLUME_NORMAL * 100, 0.1)] percent.") + to_chat(user, "Active cooling [is_cooling ? "enabled" : "disabled"] - current hydraulic fluid level: [round(owner.blood_volume / BLOOD_VOLUME_NORMAL * 100, 0.1)] percent.") // BLUEMOON EDIT - написал "гидравлическая жидкость" var/possible_next_warn = owner.blood_volume - (BLOOD_VOLUME_NORMAL * 0.1) if(possible_next_warn > next_warn) next_warn = possible_next_warn //If we recovered blood inbetween activations, update warning @@ -491,7 +491,7 @@ is_cooling = 0 return if(owner.blood_volume < cooling_coolant_drain) - to_chat(owner, "Coolant levels insufficient to maintain active cooling - Replenish immediately.") + to_chat(owner, "Hydraulic fluid levels insufficient to maintain active cooling - Replenish immediately.") // BLUEMOON EDIT - написал "гидравлическая жидкость" is_cooling = 0 return if(abs(owner.bodytemperature - T20C) < SYNTH_ACTIVE_COOLING_TEMP_BOUNDARY) @@ -508,7 +508,7 @@ actual_drain *= SYNTH_ACTIVE_COOLING_LOW_PRESSURE_PENALTY //Our cooling system can handle hot places okayish, but starts to cry at low pressures (reads: Effectively vents hot coolant thats been warmed up via internal heat-exchange as emergency measure and with very low efficiency) owner.blood_volume = max(owner.blood_volume - actual_drain, 0) if(owner.blood_volume <= next_warn) - to_chat(owner, "[owner.blood_volume > BLOOD_VOLUME_BAD ? "" : ""]Coolant level passed threshold - now [round(owner.blood_volume / BLOOD_VOLUME_NORMAL * 100, 0.1)] percent.") + to_chat(owner, "[owner.blood_volume > BLOOD_VOLUME_BAD ? "" : ""]Hydraulic fluid level passed threshold - now [round(owner.blood_volume / BLOOD_VOLUME_NORMAL * 100, 0.1)] percent.") // BLUEMOON EDIT - написал "гидравлическая жидкость" next_warn -= (BLOOD_VOLUME_NORMAL * 0.1) /obj/item/organ/lungs/plasmaman diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 00b281ffb76f..2b1f87949214 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -222,6 +222,7 @@ vend_reply = "Спасибо за использование RoboDrobe!" products = list(/obj/item/clothing/glasses/hud/diagnostic = 3, /obj/item/stack/medical/nanogel = 5, + /obj/item/reagent_containers/blood/oilblood = 5, // BLUEMOON ADD - гидравлическая жидкость для синтетиков, /obj/item/clothing/head/beret/robo = 3, /obj/item/clothing/under/rank/rnd/roboticist = 3, /obj/item/clothing/under/rank/rnd/roboticist/sleek = 3, diff --git a/modular_sand/code/modules/mob/living/carbon/carbon.dm b/modular_sand/code/modules/mob/living/carbon/carbon.dm index 11251e980a96..9dea6d4ec931 100644 --- a/modular_sand/code/modules/mob/living/carbon/carbon.dm +++ b/modular_sand/code/modules/mob/living/carbon/carbon.dm @@ -14,17 +14,22 @@ if(0 to NUTRITION_LEVEL_STARVING) hud_used.hunger.icon_state = "nutrition4" if(hud_used.thirst) - switch(get_thirst(src)) - if(THIRST_LEVEL_FULL to INFINITY) - hud_used.thirst.icon_state = "hydration0" - if(THIRST_LEVEL_QUENCHED to THIRST_LEVEL_FULL) - hud_used.thirst.icon_state = "hydration1" - if(THIRST_LEVEL_THIRSTY to THIRST_LEVEL_QUENCHED) - hud_used.thirst.icon_state = "hydration2" - if(THIRST_LEVEL_PARCHED to THIRST_LEVEL_THIRSTY) - hud_used.thirst.icon_state = "hydration3" - if(0 to THIRST_LEVEL_PARCHED) - hud_used.thirst.icon_state = "hydration4" + // BLUEMOON ADD START - персонажи, которые не имеют жажды, вечно полные + if(HAS_TRAIT(src, TRAIT_NOTHIRST)) + hud_used.thirst.icon_state = "hydration0" + else + // BLUEMOON ADD END + switch(get_thirst(src)) + if(THIRST_LEVEL_FULL to INFINITY) + hud_used.thirst.icon_state = "hydration0" + if(THIRST_LEVEL_QUENCHED to THIRST_LEVEL_FULL) + hud_used.thirst.icon_state = "hydration1" + if(THIRST_LEVEL_THIRSTY to THIRST_LEVEL_QUENCHED) + hud_used.thirst.icon_state = "hydration2" + if(THIRST_LEVEL_PARCHED to THIRST_LEVEL_THIRSTY) + hud_used.thirst.icon_state = "hydration3" + if(0 to THIRST_LEVEL_PARCHED) + hud_used.thirst.icon_state = "hydration4" //It's here so it doesn't make a big mess on randomverbs.dm, //also because of this you can proccall it, why would you if you have smite? diff --git a/modular_splurt/code/datums/traits/trait_actions.dm b/modular_splurt/code/datums/traits/trait_actions.dm index 82e27cd9ca1b..6033787b0333 100644 --- a/modular_splurt/code/datums/traits/trait_actions.dm +++ b/modular_splurt/code/datums/traits/trait_actions.dm @@ -856,12 +856,12 @@ // Switch for target's blood type switch(blood_type_target) // Synth blood - if("S") + if("S", "HF")// BLUEMOON EDIT - было "S" // Mark blood as invalid blood_valid = FALSE // Set blood type name - blood_name = "coolant" + blood_name = "hydraulic fluid" // BLUEMOON EDIT - was "coolant" // Check if blood types match if(blood_type_match) diff --git a/modular_splurt/code/modules/mob/living/carbon/human/species_types/spectrebot.dm b/modular_splurt/code/modules/mob/living/carbon/human/species_types/spectrebot.dm index 334c14b5f74e..bc8d9537643e 100644 --- a/modular_splurt/code/modules/mob/living/carbon/human/species_types/spectrebot.dm +++ b/modular_splurt/code/modules/mob/living/carbon/human/species_types/spectrebot.dm @@ -6,7 +6,7 @@ default_color = "00FF00" blacklisted = 0 sexes = 0 - inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM, TRAIT_RESISTLOWPRESSURE, TRAIT_NOBREATH, TRAIT_AUXILIARY_LUNGS, TRAIT_VIRUSIMMUNE) // BLUEMOON ADD - добавлена защита от вирусов + inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD, TRAIT_ROBOTIC_ORGANISM, TRAIT_RESISTLOWPRESSURE, TRAIT_NOBREATH, TRAIT_AUXILIARY_LUNGS, TRAIT_VIRUSIMMUNE, TRAIT_RESISTCOLD, TRAIT_NOMARROW, TRAIT_NOTHIRST) // BLUEMOON ADD - добавлены TRAIT_VIRUSIMMUNE, TRAIT_RESISTCOLD, TRAIT_NOTHIRST и TRAIT_NOMARROW species_traits = list(MUTCOLORS,EYECOLOR,NOTRANSSTING,HAS_FLESH,HAS_BONE,HAIR,ROBOTIC_LIMBS) hair_alpha = 210 inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID @@ -39,7 +39,7 @@ //special cybernetic organ for getting power from apcs mutant_organs = list(/obj/item/organ/cyberimp/arm/power_cord) - exotic_bloodtype = "S" + exotic_bloodtype = "HF" // BLUEMOON EDIT - было "S" exotic_blood_color = BLOOD_COLOR_OIL species_category = SPECIES_CATEGORY_ROBOT wings_icons = SPECIES_WINGS_ROBOT