summaryrefslogtreecommitdiff
path: root/custom.patch
diff options
context:
space:
mode:
Diffstat (limited to 'custom.patch')
-rw-r--r--custom.patch133
1 files changed, 133 insertions, 0 deletions
diff --git a/custom.patch b/custom.patch
index ccac036..7b05905 100644
--- a/custom.patch
+++ b/custom.patch
@@ -19,3 +19,136 @@
oxygen--;
}
if( oxygen < 12 && worn_with_flag( "REBREATHER" ) ) {
+--- a/src/character.cpp
++++ b/src/character.cpp
+@@ -251,6 +251,7 @@
+ static const trait_id trait_THRESH_INSECT( "THRESH_INSECT" );
+ static const trait_id trait_THRESH_PLANT( "THRESH_PLANT" );
+ static const trait_id trait_THRESH_SPIDER( "THRESH_SPIDER" );
++static const trait_id trait_THRESH_VAMP( "THRESH_VAMP" );
+ static const trait_id trait_TRANSPIRATION( "TRANSPIRATION" );
+ static const trait_id trait_URSINE_EYE( "URSINE_EYE" );
+ static const trait_id trait_VISCOUS( "VISCOUS" );
+@@ -4775,7 +4775,7 @@
+
+ void Character::update_bodytemp()
+ {
+- if( has_trait( trait_DEBUG_NOTEMP ) ) {
++ if( has_trait( trait_DEBUG_NOTEMP ) || has_trait( trait_THRESH_VAMP ) ) {
+ temp_cur.fill( BODYTEMP_NORM );
+ temp_conv.fill( BODYTEMP_NORM );
+ return;
+--- a/src/map_field.cpp
++++ b/src/map_field.cpp
+@@ -87,6 +87,7 @@
+ static const trait_id trait_M_SKIN3( "M_SKIN3" );
+ static const trait_id trait_THRESH_MARLOSS( "THRESH_MARLOSS" );
+ static const trait_id trait_THRESH_MYCUS( "THRESH_MYCUS" );
++static const trait_id trait_THRESH_VAMP( "THRESH_VAMP" );
+ static const trait_id trait_WEB_WALKER( "WEB_WALKER" );
+
+ void map::create_burnproducts( const tripoint &p, const item &fuel, const units::mass &burned_mass )
+@@ -1524,7 +1525,8 @@
+ if( ( cur.get_field_intensity() > 1 || !one_in( 3 ) ) && ( !inside || one_in( 3 ) ) ) {
+ u.add_env_effect( effect_teargas, bp_mouth, 5, 20_seconds );
+ }
+- if( cur.get_field_intensity() > 1 && ( !inside || one_in( 3 ) ) ) {
++ if( !( u.has_trait( trait_THRESH_VAMP ) ) && cur.get_field_intensity() > 1 && ( !inside ||
++ one_in( 3 ) ) ) {
+ u.add_env_effect( effect_blind, bp_eyes, cur.get_field_intensity() * 2, 10_seconds );
+ }
+ }
+@@ -1651,8 +1653,8 @@
+ // The gas won't harm you inside a vehicle.
+ if( !inside ) {
+ // Full body suits protect you from the effects of the gas.
+- if( !( u.worn_with_flag( flag_GAS_PROOF ) && u.get_env_resist( bp_mouth ) >= 15 &&
+- u.get_env_resist( bp_eyes ) >= 15 ) ) {
++ if( !( u.has_trait( trait_THRESH_VAMP ) ) && !( u.worn_with_flag( flag_GAS_PROOF ) &&
++ u.get_env_resist( bp_mouth ) >= 15 && u.get_env_resist( bp_eyes ) >= 15 ) ) {
+ const int intensity = cur.get_field_intensity();
+ bool inhaled = u.add_env_effect( effect_poison, bp_mouth, 5, intensity * 1_minutes );
+ if( u.has_trait( trait_THRESH_MYCUS ) || u.has_trait( trait_THRESH_MARLOSS ) ||
+--- a/data/json/field_type.json
++++ b/data/json/field_type.json
+@@ -303,7 +303,7 @@
+ "dirty_transparency_cache": true,
+ "percent_spread": 10,
+ "outdoor_age_speedup": "0 turns",
+- "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 7 ] ] },
++ "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 7 ] ], "traits": [ "THRESH_VAMP" ] },
+ "priority": 8,
+ "half_life": "2 minutes",
+ "phase": "gas",
+@@ -389,7 +389,7 @@
+ "outdoor_age_speedup": "3 minutes",
+ "dirty_transparency_cache": true,
+ "has_fume": true,
+- "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ] },
++ "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ], "traits": [ "THRESH_VAMP" ] },
+ "priority": 8,
+ "half_life": "10 minutes",
+ "phase": "gas",
+@@ -418,7 +418,7 @@
+ "outdoor_age_speedup": "0 turns",
+ "dirty_transparency_cache": true,
+ "has_fume": true,
+- "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ] },
++ "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ], [ "EYES", 15 ] ], "traits": [ "THRESH_VAMP" ] },
+ "priority": 8,
+ "half_life": "5 minutes",
+ "phase": "gas",
+@@ -464,7 +464,7 @@
+ "wandering_field": "fd_toxic_gas",
+ "gas_absorption_factor": 15,
+ "dirty_transparency_cache": true,
+- "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ] },
++ "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ], "traits": [ "THRESH_VAMP" ] },
+ "phase": "gas",
+ "display_items": false,
+ "display_field": true,
+@@ -956,7 +956,7 @@
+ "outdoor_age_speedup": "5 minutes",
+ "dirty_transparency_cache": true,
+ "has_fume": true,
+- "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ] },
++ "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ], "traits": [ "THRESH_VAMP" ] },
+ "priority": 8,
+ "half_life": "50 minutes",
+ "phase": "gas",
+@@ -978,7 +978,7 @@
+ "outdoor_age_speedup": "1 minutes",
+ "dirty_transparency_cache": true,
+ "has_fume": true,
+- "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ] },
++ "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ], "traits": [ "THRESH_VAMP" ] },
+ "priority": 8,
+ "half_life": "15 minutes",
+ "phase": "gas",
+@@ -1233,7 +1233,7 @@
+ "outdoor_age_speedup": "3 minutes",
+ "dirty_transparency_cache": true,
+ "has_fume": true,
+- "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ] },
++ "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ], "traits": [ "THRESH_VAMP" ] },
+ "priority": 8,
+ "half_life": "10 minutes",
+ "phase": "gas"
+@@ -1253,7 +1253,7 @@
+ "outdoor_age_speedup": "1 minutes",
+ "dirty_transparency_cache": true,
+ "has_fume": true,
+- "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ] },
++ "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ], "traits": [ "THRESH_VAMP" ] },
+ "priority": 8,
+ "half_life": "30 minutes",
+ "phase": "gas",
+@@ -1275,7 +1275,7 @@
+ "outdoor_age_speedup": "1 minutes",
+ "dirty_transparency_cache": true,
+ "has_fume": true,
+- "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ] },
++ "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ], "traits": [ "THRESH_VAMP" ] },
+ "priority": 8,
+ "half_life": "30 minutes",
+ "phase": "gas",