diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index eb82e678e3..0c18beafea 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -200,6 +200,39 @@ gauge_icon = "indicator_double" // Ensuring unique sprite stuff ig. volume = 10 +//CHOMPEdit Start - for CO2 breathers +/obj/item/tank/carbon_dioxide + name = "carbon dioxide tank" + desc = "A tank of carbon dioxide" + icon_state = "emergency_double" + distribute_pressure = ONE_ATMOSPHERE*O2STANDARD + +/obj/item/tank/carbon_dioxide/Initialize() + . = ..() + src.air_contents.adjust_gas(GAS_CO2, (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) + +/obj/item/tank/emergency/carbon_dioxide + name = "emergency carbon dioxide tank" + desc = "An emergency tank of carbon dioxide" + icon_state = "emergency_tst" + slot_flags = SLOT_BELT + distribute_pressure = ONE_ATMOSPHERE*O2STANDARD + +/obj/item/tank/emergency/carbon_dioxide/Initialize() + . = ..() + src.air_contents.adjust_gas(GAS_CO2, (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) + +/obj/item/tank/emergency/carbon_dioxide/double + name = "double emergency carbon dioxide tank" + desc = "An double tank of carbon dioxide" + icon_state = "emergency_double" + distribute_pressure = ONE_ATMOSPHERE*O2STANDARD + +/obj/item/tank/emergency/carbon_dioxide/double/Initialize() + . = ..() + src.air_contents.adjust_gas(GAS_CO2, (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) +//CHOMPEdit End + /* * Nitrogen */ diff --git a/code/game/objects/items/weapons/tanks/tank_types_vr.dm b/code/game/objects/items/weapons/tanks/tank_types_vr.dm index 7cb53cb791..342893c7ee 100644 --- a/code/game/objects/items/weapons/tanks/tank_types_vr.dm +++ b/code/game/objects/items/weapons/tanks/tank_types_vr.dm @@ -95,3 +95,25 @@ icon_state = "oxygen_fr" gauge_icon = "indicator_bigtank" gauge_cap = 3 + +//CHOMPEdit Start - for CO2 breathers +/obj/item/tank/carbon_dioxide + icon = 'icons/obj/tank_vr.dmi' + icon_state = "oxygen_f" + gauge_icon = "indicator_bigtank" + gauge_cap = 3 + +/obj/item/tank/emergency/carbon_dioxide + icon = 'icons/obj/tank_vr.dmi' + icon_state = "emergency_tst" + gauge_icon = "indicator_smalltank" + volume = 6 + gauge_cap = 3 + +/obj/item/tank/emergency/carbon_dioxide/double + icon = 'icons/obj/tank_vr.dmi' + icon_state = "emergency_double" + gauge_icon = "indicator_double" + volume = 12 + gauge_cap = 3 +//CHOMPEdit End diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno_ch.dm b/code/modules/client/preference_setup/loadout/loadout_xeno_ch.dm index d798ed94f0..b907c80f31 100644 --- a/code/modules/client/preference_setup/loadout/loadout_xeno_ch.dm +++ b/code/modules/client/preference_setup/loadout/loadout_xeno_ch.dm @@ -29,3 +29,9 @@ path = /obj/item/tank/emergency/phoron/double whitelisted = SPECIES_CUSTOM //CHOMPedit: voxes don't need phoron here, not full whitelist removal because I am unsure of what use non-customs get sort_category = "Xenowear" + +/datum/gear/double_tank_carbon_dioxide + display_name = "Pocket sized double carbon dioxide tank (Customs)" + path = /obj/item/tank/emergency/carbon_dioxide/double + whitelisted = SPECIES_CUSTOM + sort_category = "Xenowear" 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 c27ab67563..3606283213 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 @@ -421,6 +421,7 @@ var_changes = list("breath_type" = "null", "poison_type" = "null", "exhale_type" = "null", "water_breather" = "TRUE") excludes = list(/datum/trait/negative/breathes/phoron, /datum/trait/negative/breathes/nitrogen, + /datum/trait/negative/breathes/carbon_dioxide, /datum/trait/positive/light_breather, /datum/trait/negative/deep_breather ) diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index eda54f1a34..8ac85a0afd 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -935,6 +935,17 @@ gas = list( GAS_N2 = 100) +//CHOMPEdit Start - for CO2 breathers +/datum/gas_mixture/belly_air/carbon_dioxide_breather + volume = 2500 + temperature = 293.150 + total_moles = 104 + +/datum/gas_mixture/carbon_dioxide_breather/New() + . = ..() + gas = list( + GAS_CO2 = 100) +//CHOMPEdit End /mob/living/proc/feed_grabbed_to_self_falling_nom(var/mob/living/user, var/mob/living/prey) // CHOMPAdd Start diff --git a/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/negative.dm b/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/negative.dm index b4e4050919..38ece3b1d3 100644 --- a/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/negative.dm +++ b/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/negative.dm @@ -96,3 +96,8 @@ var_changes = list("lightweight_light" = 1) excludes = list(/datum/trait/negative/lightweight) custom_only = FALSE + +/datum/trait/negative/breathes/carbon_dioxide + name = "Carbon Dioxide Breather" + desc = "You breathe carbon dioxide instead of oxygen, much like a plant. Oxygen is not poisonous to you." + var_changes = list("breath_type" = GAS_CO2, "exhale_type" = GAS_O2, "ideal_air_type" = /datum/gas_mixture/belly_air/carbon_dioxide_breather)