From 8bd14b2ce259426f1a4eb068930d28b160a051f7 Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Sun, 13 Jun 2021 03:18:41 -0700 Subject: Expand vampire patch so vampires take even more damage from sunlight --- PKGBUILD | 4 +- custom.patch | 128 ++++++++++++++++++++++++++++++++++------------------------- 2 files changed, 77 insertions(+), 55 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index b8f9a40..e5afc4a 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -13,7 +13,7 @@ pkgbase=cataclysm-bn pkgname=(cataclysm-bn cataclysm-bn-tiles) pkgname=cataclysm-bn pkgver=2006 -pkgrel=1.3 +pkgrel=1.4 pkgdesc="A post-apocalyptic roguelike." #url="http://cataclysmrl.blogspot.com/" #url="http://www.cataclysm.glyphgryph.com/" @@ -104,7 +104,7 @@ b2sums=('e8228109ac7494ba3a5f5b42422926f116b9c0e002f89174872a26bb0bb88f540a5f830 'ce82294e480ad42f0001c799fd8131b60024b6097653f3c57564c75e54596616e376f0d7f1cf4e54d8c302a61ef164b4323f795bfa19b2c13ab9e927d37f1600' 'd723fcc6cce65aa296bc519a07a5d003122ad698a73a3d046dac3780ea5a00fef28f78da251bb46f80f2e0577baa26a6ae13cabf525f22a7a742435e95716dae' 'e9c8decf0ab74ac2dd02ddd537ca80ad2aa02d97faf6cfcb983965b4c3f400b47b2e0517f2927d1b2463c14370fd1a0bad5b4d00710b2b415b45d1a81724a9c9' - '747b2c3c1423ecabc1eb7accdb061c8a130120cc7295f36d3567c94113f64562ae2e4bd399cde4b738a539545215d6315b5e0a228e3a479742e8d3b8d94a6ec5' + '0dc275d5e1aa79b2cf73f7e997ea2b602690787ae15e3abdd3b9195bb409d511c74d4f7dca4bf1753a9afb4618f04cb462769c24999357dea62593a379411f42' 'd45f849e595131c517f644e8a39473a4bec9515894b38d2e278a0b08c64c437fa755109077e98761166ce6eed227f5b8fb4fff9444670e583a49cbc778ba92f2' '59d69127a79d1c9f09dd324903ed0b4793991ae1d3f45f01c4710e329cd222fafbf252a29275345072c370245931c3e897a586044a46a83c13225a288bc96993' '8fc23de05cc0d4ea63e921dd5c575ee83715753d2f2d0b9f0d503cb14a3263af4970fa5fb19a9b8387414b501f3dc4b8b6c91db4c929f9543556a7973a84a3b1' diff --git a/custom.patch b/custom.patch index 5c6cb5f..d669295 100644 --- a/custom.patch +++ b/custom.patch @@ -73,16 +73,21 @@ if( u.has_trait( trait_THRESH_MYCUS ) || u.has_trait( trait_THRESH_MARLOSS ) || --- a/src/suffer.cpp +++ b/src/suffer.cpp -@@ -118,6 +118,8 @@ - static const trait_id trait_FRESHWATEROSMOSIS( "FRESHWATEROSMOSIS" ); - static const trait_id trait_GILLS( "GILLS" ); - static const trait_id trait_GILLS_CEPH( "GILLS_CEPH" ); +@@ -143,10 +143,13 @@ + static const trait_id trait_SHOUT3( "SHOUT3" ); + static const trait_id trait_SORES( "SORES" ); + static const trait_id trait_SUNBURN( "SUNBURN" ); +static const trait_id trait_THRESH_GYNOID( "THRESH_GYNOID" ); +static const trait_id trait_THRESH_VAMP( "THRESH_VAMP" ); - static const trait_id trait_JITTERY( "JITTERY" ); - static const trait_id trait_KILLER( "KILLER" ); - static const trait_id trait_LEAVES( "LEAVES" ); -@@ -245,7 +247,8 @@ + static const trait_id trait_TROGLO( "TROGLO" ); + static const trait_id trait_TROGLO2( "TROGLO2" ); + static const trait_id trait_TROGLO3( "TROGLO3" ); + static const trait_id trait_UNSTABLE( "UNSTABLE" ); ++static const trait_id trait_VAMP_CURSE( "VAMP_CURSE" ); + static const trait_id trait_VOMITOUS( "VOMITOUS" ); + static const trait_id trait_WEB_SPINNER( "WEB_SPINNER" ); + static const trait_id trait_WEB_WEAVER( "WEB_WEAVER" ); +@@ -243,7 +246,8 @@ void Character::suffer_while_underwater() { @@ -92,6 +97,68 @@ oxygen--; } if( oxygen < 12 && worn_with_flag( "REBREATHER" ) ) { +@@ -759,6 +763,17 @@ + } + } + ++ if( has_trait( trait_VAMP_CURSE ) && one_in( 10 ) ) { ++ if( !( weapon.has_flag( "RAIN_PROTECT" ) ) ) { ++ add_msg_if_player( m_bad, _( "The sunlight sears your skin!" ) ); ++ if( has_effect( effect_sleep ) && !has_effect( effect_narcosis ) ) { ++ wake_up(); ++ } ++ mod_pain( 5 ); ++ hurtall( 5, nullptr ); ++ } ++ } ++ + if( ( has_trait( trait_TROGLO ) || has_trait( trait_TROGLO2 ) ) && + g->weather.weather == WEATHER_SUNNY ) { + mod_str_bonus( -1 ); +--- a/src/monattack.cpp ++++ b/src/monattack.cpp +@@ -143,6 +143,7 @@ + static const trait_id trait_TAIL_CATTLE( "TAIL_CATTLE" ); + 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 mtype_id mon_ant_acid_larva( "mon_ant_acid_larva" ); + static const mtype_id mon_ant_acid_queen( "mon_ant_acid_queen" ); +@@ -2758,6 +2759,9 @@ + damage_instance dam = damage_instance(); + dam.add_damage( DT_STAB, 6, 10, 0.6, 1 ); + bool hit = sting_shoot( z, target, dam, range ); ++ if( target->has_trait( trait_THRESH_VAMP ) ) { ++ return true; ++ } + if( hit ) { + //Add checks if previous NPC/player conditions are removed + dynamic_cast( target )->mutate(); +--- a/src/player_hardcoded_effects.cpp ++++ b/src/player_hardcoded_effects.cpp +@@ -114,7 +114,9 @@ + static const trait_id trait_NOPAIN( "NOPAIN" ); + static const trait_id trait_SEESLEEP( "SEESLEEP" ); + static const trait_id trait_SCHIZOPHRENIC( "SCHIZOPHRENIC" ); ++static const trait_id trait_THRESH_GYNOID( "THRESH_GYNOID" ); + static const trait_id trait_THRESH_MYCUS( "THRESH_MYCUS" ); ++static const trait_id trait_THRESH_VAMP( "THRESH_VAMP" ); + static const trait_id trait_WATERSLEEP( "WATERSLEEP" ); + + static void eff_fun_onfire( player &u, effect &it ) +@@ -1095,6 +1097,11 @@ + // Determine the strength of effects or dreams based upon category strength + int strength = 0; // Category too weak for any effect or dream + if( crossed_threshold() ) { ++ if( has_trait( trait_THRESH_VAMP ) ) { ++ highcat = "VAMP"; ++ } else if( has_trait( trait_THRESH_GYNOID ) ) { ++ highcat = "GYNOID"; ++ } + strength = 4; // Post-human. + } else if( highest >= 20 && highest < 35 ) { + strength = 1; // Low strength --- a/data/json/field_type.json +++ b/data/json/field_type.json @@ -303,7 +303,7 @@ @@ -175,27 +242,6 @@ "priority": 8, "half_life": "30 minutes", "phase": "gas", ---- a/src/monattack.cpp -+++ b/src/monattack.cpp -@@ -143,6 +143,7 @@ - static const trait_id trait_TAIL_CATTLE( "TAIL_CATTLE" ); - 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 mtype_id mon_ant_acid_larva( "mon_ant_acid_larva" ); - static const mtype_id mon_ant_acid_queen( "mon_ant_acid_queen" ); -@@ -2758,6 +2759,9 @@ - damage_instance dam = damage_instance(); - dam.add_damage( DT_STAB, 6, 10, 0.6, 1 ); - bool hit = sting_shoot( z, target, dam, range ); -+ if( target->has_trait( trait_THRESH_VAMP ) ) { -+ return true; -+ } - if( hit ) { - //Add checks if previous NPC/player conditions are removed - dynamic_cast( target )->mutate(); - --- a/data/json/mutations/mutation_ordering.json +++ b/data/json/mutations/mutation_ordering.json @@ -73,6 +73,7 @@ @@ -206,27 +252,3 @@ "VISCOUS" ], "order": 1500 ---- a/src/player_hardcoded_effects.cpp -+++ b/src/player_hardcoded_effects.cpp -@@ -114,7 +114,9 @@ - static const trait_id trait_NOPAIN( "NOPAIN" ); - static const trait_id trait_SEESLEEP( "SEESLEEP" ); - static const trait_id trait_SCHIZOPHRENIC( "SCHIZOPHRENIC" ); -+static const trait_id trait_THRESH_GYNOID( "THRESH_GYNOID" ); - static const trait_id trait_THRESH_MYCUS( "THRESH_MYCUS" ); -+static const trait_id trait_THRESH_VAMP( "THRESH_VAMP" ); - static const trait_id trait_WATERSLEEP( "WATERSLEEP" ); - - static void eff_fun_onfire( player &u, effect &it ) -@@ -1095,6 +1097,11 @@ - // Determine the strength of effects or dreams based upon category strength - int strength = 0; // Category too weak for any effect or dream - if( crossed_threshold() ) { -+ if( has_trait( trait_THRESH_VAMP ) ) { -+ highcat = "VAMP"; -+ } else if( has_trait( trait_THRESH_GYNOID ) ) { -+ highcat = "GYNOID"; -+ } - strength = 4; // Post-human. - } else if( highest >= 20 && highest < 35 ) { - strength = 1; // Low strength -- cgit v1.2.1