diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index a5230484ed..9e7197cb20 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -21,6 +21,7 @@ var/datum/reagents/metabolism/bloodstream/bloodstr = null var/datum/reagents/metabolism/ingested/ingested = null var/datum/reagents/metabolism/touch/touching = null + var/toxin_gut = FALSE //CHOMPAdd var/pulse = PULSE_NORM //current pulse level diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm index 342d768b97..f44566581f 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm @@ -7,16 +7,16 @@ /datum/trait/positive/darksight name = "Darksight" - desc = "Allows you to see a short distance in the dark. (Half the screen)." + desc = "Allows you to see a short distance in the dark. (Half the screen)." cost = 1 var_changes = list("darksight" = 4) //CHOMP Edit /datum/trait/positive/darksight_plus name = "Darksight, Major" - desc = "Allows you to see in the dark for the whole screen." + desc = "Allows you to see in the dark for the whole screen." cost = 2 var_changes = list("darksight" = 8) - + /datum/trait/positive/densebones name = "Dense Bones" desc = "Your bones (or robotic limbs) are more dense or stronger then what is considered normal. It is much harder to fracture your bones, yet pain from fractures is much more intense. Bones require 50% more damage to break, and deal 2x pain on break." @@ -201,7 +201,7 @@ pulse_modifier = 2 //Heart is in overdrive bleeding_rate_percent = 1.25 //Bleed more with higher blood pressure. metabolism_percent = 2.5 //Metabolism in overdrive - + var/original_length var/list/original_values @@ -243,7 +243,7 @@ accuracy_dispersion = 25 incoming_hal_damage_percent = 1.75 incoming_oxy_damage_percent = 1.25 - + /datum/trait/positive/insect_sting name = "Insect Sting" desc = "Allows you to sting your victim with a smalll amount of poison" @@ -252,7 +252,7 @@ /datum/trait/positive/insect_sting/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..(S,H) H.verbs |= /mob/living/proc/insect_sting - + // TANKINESS LETS GOOOOOOOOO /datum/trait/positive/burn_resist_plus // Equivalent to Burn Weakness Major, cannot be taken at the same time. name = "Burn Resist, Major" @@ -260,14 +260,14 @@ cost = 3 // Exact Opposite of Burn Weakness Major, except Weakness Major is 50% incoming, this is -40% incoming. var_changes = list("burn_mod" = 0.6) excludes = list(/datum/trait/positive/burn_resist, /datum/trait/positive/minor_burn_resist) - + /datum/trait/positive/brute_resist_plus // Equivalent to Brute Weakness Major, cannot be taken at the same time. name = "Brute Resist, Major" desc = "Adds 40% resistance to brute damage sources." cost = 3 // Exact Opposite of Brute Weakness Major, except Weakness Major is 50% incoming, this is -40% incoming. var_changes = list("brute_mod" = 0.6) excludes = list(/datum/trait/positive/brute_resist, /datum/trait/positive/minor_brute_resist) - + /datum/trait/positive/endurance_very_high name = "High Endurance, Major" desc = "Increases your maximum total hitpoints to 150. You require 300 damage in total to die, compared to 200 normally. You will still go into crit after losing 150 HP, compared to crit at 100 HP." @@ -290,15 +290,15 @@ /datum/trait/positive/endurance_extremely_high/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..(S,H) H.setMaxHealth(S.total_health) - + // CHOMPNote: Reshuffling traits to match our current upstream, VORE. /datum/trait/positive/pain_tolerance_minor // Minor Pain Tolerance, 10% reduced pain name = "Pain Tolerance, Minor" desc = "You are slightly more resistant to pain than most, and experience 10% less pain from all sources." cost = 1 var_changes = list("pain_mod" = 0.9) - -/datum/trait/positive/pain_tolerance + +/datum/trait/positive/pain_tolerance name = "Pain Tolerance" desc = "You are noticeably more resistant to pain than most, and experience 20% less pain from all sources." cost = 2 @@ -309,8 +309,8 @@ desc = "You are extremely resistant to pain sources, and experience 40% less pain from all sources." cost = 3 // Equivalent to High Pain Intolerance, but less pain resisted for balance reasons. var_changes = list("pain_mod" = 0.6) - - + + /datum/trait/positive/improved_biocompat name = "Improved Biocompatibility" desc = "Your body is naturally (or artificially) more receptive to healing chemicals without being vulnerable to the 'bad stuff'. You heal more efficiently from most chemicals, with no other drawbacks. Remember to note this down in your medical records! Chems heal for 20% more." @@ -322,21 +322,21 @@ desc = "Decreases stun duration from flashes and other light-based stuns and disabilities by 50%." cost = 2 var_changes = list("flash_mod" = 0.5) - + /datum/trait/positive/speed_fast_minor name = "Haste, Minor" desc = "Allows you to move a little bit faster on average than baseline." cost = 2 var_changes = list("slowdown" = -0.25) excludes = list(/datum/trait/positive/hardy_extreme,/datum/trait/positive/hardy_plus,/datum/trait/positive/speed_fast) - + /datum/trait/positive/hardy_extreme name = "Hardy, Extreme" desc = "Allows you to carry heavy equipment with no slowdown at all." cost = 3 var_changes = list("item_slowdown_mod" = 0.0) excludes = list(/datum/trait/positive/speed_fast,/datum/trait/positive/speed_fast_minor,/datum/trait/positive/hardy,/datum/trait/positive/hardy_plus) - + /datum/trait/positive/bloodsucker_plus name = "Evolved Bloodsucker" desc = "Makes you able to gain nutrition by draining blood as well as eating food. To compensate, you get fangs that can be used to drain blood from prey." @@ -349,10 +349,19 @@ H.verbs |= /mob/living/carbon/human/proc/bloodsuck /datum/trait/positive/sonar - name="Perceptive Hearing" + name ="Perceptive Hearing" desc = "You can hear slight vibrations in the air very easily, if you focus." cost = 1 - + /datum/trait/positive/sonar/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..(S,H) H.verbs |= /mob/living/carbon/human/proc/sonar_ping + +/datum/trait/positive/toxin_gut + name ="Robust Gut" + desc = "You are immune to ingested toxins. Does not protect from possible harm caused by other drugs, meds, allergens etc." + cost = 1 + +/datum/trait/positive/toxin_gut/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.toxin_gut = TRUE diff --git a/code/modules/reagents/reagents/_reagents.dm b/code/modules/reagents/reagents/_reagents.dm index 39b75494ca..d7da310d6f 100644 --- a/code/modules/reagents/reagents/_reagents.dm +++ b/code/modules/reagents/reagents/_reagents.dm @@ -165,6 +165,9 @@ if(CHEM_BLOOD) affect_blood(M, alien, removed) if(CHEM_INGEST) + if(istype(src, /datum/reagent/toxin) && M.toxin_gut) //CHOMPAdd + remove_self(removed) + return affect_ingest(M, alien, removed * ingest_abs_mult) if(CHEM_TOUCH) affect_touch(M, alien, removed) @@ -214,7 +217,7 @@ /datum/reagent/Destroy() // This should only be called by the holder, so it's already handled clearing its references holder = null . = ..() - + //YW edit start // Called when reagents are removed from a container, most likely after metabolizing in a mob /datum/reagent/proc/on_remove(var/atom/A)