summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--PKGBUILD20
-rw-r--r--armor-01_ankle-ammo-pouch-is-not-a-backpack.patch6
-rw-r--r--armor-02_fix-survivor-fingerless-gloves-warmth.patch2
-rw-r--r--jc_radio-can-use-ups.patch16
-rw-r--r--jc_restore-removed-traits.patch6
-rw-r--r--jc_stop-non-faction-npc-malnourishment.patch4
-rw-r--r--monsters-01_medical-zombies-called-zombies.patch3
-rw-r--r--npc-03_godco-update.patch9
-rw-r--r--recipes-01_4570-dragon-can-be-dismantled.patch18
-rw-r--r--vampirism.patch100
10 files changed, 92 insertions, 92 deletions
diff --git a/PKGBUILD b/PKGBUILD
index fad26f4..fb1d706 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -15,7 +15,7 @@ pkgname=cataclysm-bn
_pkgname=Cataclysm-BN-cbn-experimental
pkgver=202201220831
_pkgver=2022-01-22-0831
-pkgrel=2
+pkgrel=3
pkgdesc="A post-apocalyptic roguelike."
#url="http://cataclysmrl.blogspot.com/"
#url="http://www.cataclysm.glyphgryph.com/"
@@ -114,8 +114,8 @@ b2sums=('028de65b63ac40c23bff23b3e0521e5b464e6835b34fc8a6cfaca330ec5804499c8fb1b
'040363cea9b3492f8a0f8daba44c179c871ba691dea688c15f3ad6994f78d530b4f74b283b9c64e4f5a2b1268805e60d4ea154d3dc8246200c50907054f5b5ef'
'67cdb7e097bbb46da5cf04708bc2858b080d1a85742afc4c088da3e4e3fdeb6e4c51240fc5a6b9a1c7d927b30b3d251236e025ee4e5496142a7716d4ba51b82c'
'22b06ee2014dac33808ba9c32269eeb8a58b36f8ecfb651fcea859d231272838e63328e8938d130afcdb9670341d1dd34f997f36ad7be3c7bd7a178533f43702'
- '025213998583972e7551bd7bd7376ab65857e28d4338fab60ae792a6b3bd48983aec77e5143baaa63d4f3feb7cd590c4bded529c410e4d18f2b8c5813f25daa3'
- 'd9cad0cef682927c07e3f7398b6e57b21b68f9069b99fab363d0e3f329337f25fafa216a82a431ee23a2de3f67a0ed68d024c1a932b76f58aeb5e9a49cfe5e6e'
+ '0884229f513f843099dbd397d96fd8b37aad2d1ae0aee2771f57f54188241d6ed0ede8750780b9564bd9e3dc8d215039d409081a8eb46ce25b90edb196eb6bf4'
+ 'f4ad4c90cfcf11af42c6cfc6d2027b21af3f58ac274b9bd0852a52ef60b606476766f194b281f6baf12f81647b384a98f745519bb48bc2e4f5fe03984c7c0e65'
'f3bdbaac5dbe9384571fe5ec14d2d25035f227a977c25349b8188e7343804e3973b898b44c34f9abe9318666294f4fdfe780fd516dcbdb29c4ac52f6d0ed6cad'
'43937dd83705b5ab62ae02cf1d043426c82f37e600afe06a287706e8450b596b84cc23138fbda31d67b9a2206ebfdc69754e329e7621075cbf480691f7d61871'
'b3f3be15fb87b1cdb6230216328f648e66d06fd2eeee9a6a3ff3f6b8e94c5213af7a2a4643f1e59ca8801056325ad4be4b88d723c2ec52c4ecc6f8c356ff8c82'
@@ -123,15 +123,15 @@ b2sums=('028de65b63ac40c23bff23b3e0521e5b464e6835b34fc8a6cfaca330ec5804499c8fb1b
'417cd957f188b2b06e41d5413bea5f13481c6d5bfa8f184157379d5ac2afa9ba6f7ebc966856f50603f89b9173b6fbfdb3ccf4e3cc0b1bedb53f935591e4a35c'
'dae75d9cd00f1f3ceabf257f1d82d245ace6582cf7ea98a40c1d1eb9b7e1832cb2a0c13f25c814a05a70931c42a06694a67829ea55554cc680eaa8ddf16c84a8'
'931ac85c657c1c504de1ea629205b19f79a11acdd7c62cf71b909323ec1588610b1f575bc58ab01c3fbcd334fca8fbc114316570732f55a3f7fb3dd2984cd442'
- '8bb71fbec3deece7bd0f9084e20ef5853812e71e2ebcd43011f7779499cbb99c7a8bc5c618d8ef9f55e5ce54c9fc4a5f4d3167bb63f9821a68889f9f3e1386f5'
+ 'e466392190e0aa58c02acda287bc8ac6fef30160207d08805ca9acd42b7f024d0680c0a76fcb4f29a7d7ca884920bba3a6714b5ad40f64dd1b40bcf0e2621d26'
'08f4746882b927bdff6b728630cf1e04a2b79924f694ca2d841e3115c3399feb87a8d363e4d2a0f59179c109cb6be6e840f912aadd44abb0bdb35afd2838cc4d'
'ab35d6663b864449d46da4a9e1c51e11956ff4c38e16db58c831b71f7b964fc25b0283122dbc8aa0549f240f01c4a910fb5c6c82937258c6b736c05b54bcf768'
'0793bb7aa67d3989ef093cc17e6d9dd6d2e3999562fe1039b44f0fb9297623bda49271cb7b17d7fab4dc14299e0e5f13eb8f3711dbffc10bf7ffa68838f0585b'
'24c5f9ee5553b66ac937785b3312378adbca096888b05da8b0cdc9c0586ee51e9a3754615cc03a659cfe70ba2f48f7ce0359025c816c887c7691424c685f5f96'
'4f98126afadd7ad3346e2a55c02a06e1f5709406984835ff4ee206c4b52ef7ce8c52eee3f581fa36799a59578e05375b5db884b88b35866fbc6bb1330b79fe83'
- 'e2595c1859afe68d2b1d4ba8e424b6948063da75ee54ce11bf19f4e0263eefb40673245985d672da54dcc5b66a3fd414110726c36b55a994f08eb461446d9b57'
+ '613a9d7a7a512cdf7dc1f1121ecaec7272efe740f5494ce425c3781d41a0ec92e044142d82a28c6445416e84699131745c6872c9b33cb5b93528d0197745455a'
'adcf0b46ad57390488b3932910fba5a5be8152f91b45864bf078a2b8d92dc89e9944c320dafb7a0d4786e1fce48bedea714d671feefe565ffbbb74baca21d98e'
- '71768899e631c5293d5fb8bcb237ca54f880913b6400d445c8a0322cb69801fe85b94b1293306e2f33fac6067cbd892c4665b9563bdc9ff4df5be245c7e7108f'
+ '3373939e76f1ddb788b45424533c2e7687bbacae840fb3e6b1d49034e18315297af66dddf1b13d4f42033608123929b78819f38cca6cbc6c5ecca09bc67ab69f'
'b8a64accada87ee5be989c5307805610c9b5c0327bc107aab237ac3225dd9e4c51b6c79a2a7de15fe187d3c32d7cbe1c462f9b0e9fb5d5a55a74236c7061e96e'
'85aeb5920ee5879848be4057324153a077fe907bed527ed8f9b80a3c5ee1ef64786f63ee2999f5ba74e80a43e99ded3280ce27759c1f7b73259a6e2b5e584aa8'
'58a94409205f7b670ab5745b8cbc234a38efd6a6217cef4efb7e397f091092e3e0c7790706b0a42accaa83d7509b8e244a98b9f0ba78349ee85f3164745c3501'
@@ -147,18 +147,18 @@ b2sums=('028de65b63ac40c23bff23b3e0521e5b464e6835b34fc8a6cfaca330ec5804499c8fb1b
'e1d03f68918d03f980f4c2dd966e3788afe63f14e2d18dbd4dab2cdbfa1253e4823c0f5daa3a579e47319a3c2af35bc5af0a390e2ba91fe7621f6db8b1a60994'
'5a5a61ccb7e2e343fb6de2e3426688485a2f4ad65d4b001d8bd542907fd8ceb9315da7fd9e5f89a5aa6210edcd5f334c73657fc16349000d6f6a394303e22000'
'c620bbf0411860ebaafc48123f280e685a535fab91c0736285430ab5d36d26d028cea4ceca1cbcbf466d494ee87b76008d2a3fb64437a069650948945b3dec88'
- '51b1324506179f7fadd8bc187eb8db939494483597b0b7b63909cec66f4e94b27888ccfa926bbd2ff8b0e80108ecc373118c202a177fc2ebd4f5231f87f09a83'
+ '06c5652eb2c70b8aba6d788415089b740c3510cd9c570838f656202ba2dc65d4f3289f6695413665de930e84fe287ef035ed8e83a0610a5a316e76a17442683a'
'92cde696eec00e6758b58e73e8bc60ad1a73bb2a18d4fdfd24a19b5be715305a047943a02d94a9703c101ca0c769dbeb816f1f28809345bae0fec42fbc27bb34'
'dede4f0774159243f87121e4d53107bb9de31f9658823fc7ab02124974b87defecf3ab0f2edf6779f2fe1ca437f16f83bf193cf3143fd5eb3a686b731319c11f'
'ce82294e480ad42f0001c799fd8131b60024b6097653f3c57564c75e54596616e376f0d7f1cf4e54d8c302a61ef164b4323f795bfa19b2c13ab9e927d37f1600'
- '3eed24ef313c30c6e8fa69d3f88b1cf827b22fc90c144fa994433cfc5f0a9476174b418be267e16f2c3425c7f6f3ca108151f180e7d9b040f6ff88a39a05ecad'
+ '44cf3ade15b127de13c7b7dbdc515fa6a04aeff5912a857e6aa72887aa893c4fb6888793646ccc879af536f057e2791177e04e2c19c544fc96401c795728d867'
'd723fcc6cce65aa296bc519a07a5d003122ad698a73a3d046dac3780ea5a00fef28f78da251bb46f80f2e0577baa26a6ae13cabf525f22a7a742435e95716dae'
'f25f01c5b27dced202fe76c1717b9eaec65dfa5f28db1910529f60f5ec21cc89c1a15df26c2dd09066a0d89e3f7d87c790e7886c3c2f0978a25f5ec7d1236099'
- '1919a87a97a1cc625a8a0f5f6a3affb45b0c9630768b42718c5a3df563127cc0436845d01a354b24a16080a89f53df0515a9b62dc14f5292a951057386e9d5d6'
+ '839c92715bfd1f63d94d6d252813a19e6093ded3e45f9efbbc4953ab85adfb886bcdfcfa41c9bb9ed422c0a32917a1ac75f98019e7de946b840e345cd3969d19'
'e3302d903d053f25aa666d572f74a8bbd3b65dde40eedcbf46e537ceb2294ac22b3772087fce04c4a780c2f18e855179c6ddc8af12d72a89b82957ce09deb52f'
'4bd44cbe85c53902b8a360509703e3d38e8a5da75dd2c534a77f03ce6440632f6c83c92939069c60473c88ffb3abab0fbf11e39271f44f813b9f6432ea5f9a6b'
'f115314dd2bb1da07bba7a90fec5c3acb7ccb5145efaea03d6806942e24d402c9a144a2fd07b82e727a0b79dedd4bdd87de0bbaf0944236563164fb6f117965e'
- 'ea653de84d9c918aa93236559f6555f560ba7edb2c0b301a7af84352a940e178f9738b6b05c1a32733491f3d3824cfbb6bbea22bfe5c344bee916eb591673d12'
+ 'f57a8918a92b4f74fd155573aba4299879932eb525f54f4465ffa6dd48703f1cd695b3f44cc919b83c5a0ba72b8a9f84327ab65ce7839bcb54327e54a6f9ea62'
'a0a7758d0834deefa92f2a2c5db1cf65334dae9e4e244803f65f09265bf4a8bc4da40464f5a98fb3f2b7de5a2912359e38adc0ca2146d96a5930e1151b99027d'
'a56efdaae0344726debf5b74846edce8df7aa2357fbc7a05a3d369d1f457b02934a0d0ce2330072e03f1ac901e06e333c9393f795c761f8440307e7649ed5596'
'9d0e17552338c9d92ff696f1834a5d99c29d5dfbab6903b620410f62527a0ba60720c9ceec8e203b737f784ade8a53dbaca428ac7cc439f3f4f765aac7f1170f'
diff --git a/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch b/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch
index ca51551..62e703c 100644
--- a/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch
+++ b/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch
@@ -1,11 +1,11 @@
--- a/data/json/items/armor/ammo_pouch.json
+++ b/data/json/items/armor/ammo_pouch.json
@@ -192,7 +192,7 @@
- "price_postapoc": 4500,
- "material": "cotton",
+ "price_postapoc": 750,
+ "material": [ "cotton" ],
"symbol": "[",
- "looks_like": "ragpouch",
+ "looks_like": "bootstrap",
"color": "dark_gray",
- "covers": [ "FOOT_EITHER" ],
+ "covers": [ "foot_either" ],
"coverage": 5,
diff --git a/armor-02_fix-survivor-fingerless-gloves-warmth.patch b/armor-02_fix-survivor-fingerless-gloves-warmth.patch
index bc0b904..1e79099 100644
--- a/armor-02_fix-survivor-fingerless-gloves-warmth.patch
+++ b/armor-02_fix-survivor-fingerless-gloves-warmth.patch
@@ -1,7 +1,7 @@
--- a/data/json/items/armor/gloves.json
+++ b/data/json/items/armor/gloves.json
@@ -447,7 +447,7 @@
- "covers": [ "HANDS" ],
+ "covers": [ "hands" ],
"coverage": 85,
"encumbrance": 8,
- "warmth": 12,
diff --git a/jc_radio-can-use-ups.patch b/jc_radio-can-use-ups.patch
index ee146e5..a47b1d4 100644
--- a/jc_radio-can-use-ups.patch
+++ b/jc_radio-can-use-ups.patch
@@ -1,6 +1,6 @@
--- a/src/iuse.cpp
+++ b/src/iuse.cpp
-@@ -289,6 +289,7 @@
+@@ -350,6 +350,7 @@
static const std::string flag_HEATS_FOOD( "HEATS_FOOD" );
static const std::string flag_PLANT( "PLANT" );
static const std::string flag_PLOWABLE( "PLOWABLE" );
@@ -8,7 +8,7 @@
// how many characters per turn of radio
static constexpr int RADIO_PER_TURN = 25;
-@@ -2162,7 +2163,8 @@
+@@ -2205,7 +2206,8 @@
}
} else { // Activated
int ch = 1;
@@ -18,7 +18,7 @@
ch = uilist( _( "Radio:" ), {
_( "Scan" ), _( "Turn off" )
} );
-@@ -4082,7 +4084,8 @@
+@@ -4074,7 +4076,8 @@
if( t ) { // Effects while simply on
} else {
@@ -26,9 +26,9 @@
+ if( !it->units_sufficient( *p ) || !( it->has_flag( flag_USE_UPS ) &&
+ p->has_enough_charges( *it, false ) ) ) {
p->add_msg_if_player( m_info, _( "Your tactical tonfa is out of power." ) );
- it->convert( "shocktonfa_off" ).active = false;
+ it->convert( itype_shocktonfa_off ).active = false;
} else {
-@@ -4107,7 +4110,8 @@
+@@ -4099,7 +4102,8 @@
int iuse::mp3( player *p, item *it, bool, const tripoint & )
{
// TODO: avoid item id hardcoding to make this function usable for pure json-defined devices.
@@ -36,9 +36,9 @@
+ if( !it->units_sufficient( *p ) || !( it->has_flag( flag_USE_UPS ) &&
+ p->has_enough_charges( *it, false ) ) ) {
p->add_msg_if_player( m_info, _( "The device's batteries are dead." ) );
- } else if( p->has_active_item( "mp3_on" ) || p->has_active_item( "smartphone_music" ) ||
- p->has_active_item( "afs_atomic_smartphone_music" ) ||
-@@ -6367,9 +6371,12 @@
+ } else if( p->has_active_item( itype_mp3_on ) || p->has_active_item( itype_smartphone_music ) ||
+ p->has_active_item( itype_afs_atomic_smartphone_music ) ||
+@@ -6366,9 +6370,12 @@
int iuse::einktabletpc( player *p, item *it, bool t, const tripoint &pos )
{
if( t ) {
diff --git a/jc_restore-removed-traits.patch b/jc_restore-removed-traits.patch
index 3c447a6..cfe8c5d 100644
--- a/jc_restore-removed-traits.patch
+++ b/jc_restore-removed-traits.patch
@@ -51,14 +51,14 @@
--- a/src/player.cpp
+++ b/src/player.cpp
@@ -84,6 +84,7 @@
- #include "weather_gen.h"
+ static const activity_id ACT_READ( "ACT_READ" );
static const efftype_id effect_adrenaline( "adrenaline" );
+static const efftype_id effect_bite( "bite" );
static const efftype_id effect_blind( "blind" );
static const efftype_id effect_bloodworms( "bloodworms" );
static const efftype_id effect_boomered( "boomered" );
-@@ -93,12 +94,14 @@
+@@ -93,14 +94,16 @@
static const efftype_id effect_drunk( "drunk" );
static const efftype_id effect_fungus( "fungus" );
static const efftype_id effect_happy( "happy" );
@@ -73,8 +73,8 @@
static const efftype_id effect_pkill( "pkill" );
+static const efftype_id effect_recover( "recover" );
static const efftype_id effect_sad( "sad" );
- static const efftype_id effect_sleep( "sleep" );
static const efftype_id effect_sleep_deprived( "sleep_deprived" );
+ static const efftype_id effect_sleep( "sleep" );
@@ -125,6 +128,7 @@
static const trait_id trait_FAT( "FAT" );
static const trait_id trait_FELINE_FUR( "FELINE_FUR" );
diff --git a/jc_stop-non-faction-npc-malnourishment.patch b/jc_stop-non-faction-npc-malnourishment.patch
index f45402f..e197713 100644
--- a/jc_stop-non-faction-npc-malnourishment.patch
+++ b/jc_stop-non-faction-npc-malnourishment.patch
@@ -1,8 +1,8 @@
--- a/src/npcmove.cpp
+++ b/src/npcmove.cpp
@@ -116,6 +116,14 @@
- static const efftype_id effect_onfire( "onfire" );
- static const efftype_id effect_stunned( "stunned" );
+ static const itype_id itype_oxygen_tank( "oxygen_tank" );
+ static const itype_id itype_UPS( "UPS" );
+const vitamin_id vitamin_calcium( "calcium" );
+const vitamin_id vitamin_iron( "iron" );
diff --git a/monsters-01_medical-zombies-called-zombies.patch b/monsters-01_medical-zombies-called-zombies.patch
index a4b469a..f315c99 100644
--- a/monsters-01_medical-zombies-called-zombies.patch
+++ b/monsters-01_medical-zombies-called-zombies.patch
@@ -9,8 +9,7 @@
"description": "Instead of one of its forearms, this zombie has a muscular tube ending in a stinger that is moist with stringy slime. It is single-mindedly focused on using just that one limb to fight.",
"default_faction": "zombie",
"bodytype": "human",
-@@ -33,8 +33,8 @@
- "id": "mon_zombie_surgeon",
+@@ -33,7 +33,7 @@
"type": "MONSTER",
"copy-from": "mon_zombie_nurse",
"delete": { "categories": [ "CLASSIC" ] },
diff --git a/npc-03_godco-update.patch b/npc-03_godco-update.patch
index f3feab8..140a797 100644
--- a/npc-03_godco-update.patch
+++ b/npc-03_godco-update.patch
@@ -533,7 +533,7 @@
"responses": [
{ "text": "Oh, okay.", "topic": "TALK_GODCO_cook_1" },
{ "text": "What can I buy here?", "topic": "TALK_GODCO_cook_ask_goods" }
-@@ -209,7 +209,7 @@
+@@ -209,8 +209,8 @@
"rejected": "It's okay, I can do without them. Just let me know if you reconsider.",
"advice": "There's a lot of places to look. They are common in house kitchens, restaurants or grocery stores.",
"inquire": "How is the search going? Have you found 'em?",
@@ -543,7 +543,8 @@
+ "success_lie": "Thanks for trying… I guess.",
"failure": "Don't worry about it, it's not that important."
},
-@@ -232,9 +232,9 @@
+ "end": { "effect": [ { "u_buy_item": "icon", "count": 2 } ] }
+@@ -232,10 +232,10 @@
"offer": "This task is bit more serious. I don't have enough jars to preserve perishables for the future, and we can't just store everything in salt. We could do our own canning if we had some more glass jars. I could get by with 5 for now.",
"accepted": "Thanks for accepting this task. It'll take a load off my shoulders. I finally won't have to worry about this problem anymore.",
"rejected": "Just let me know if you change your mind.",
@@ -555,7 +556,8 @@
+ "success_lie": "Thanks for trying… I guess.",
"failure": "It's not a big deal, it isn't that urgent."
},
-@@ -259,6 +259,6 @@
+ "end": { "effect": [ { "u_buy_item": "icon", "count": 5 } ] }
+@@ -259,7 +259,7 @@
"advice": "Butcher knives are not that rare to find. They are commonly found in kitchens.",
"inquire": "Do you have that knife now?",
"success": "I am grateful for the help you've done.",
@@ -563,6 +565,7 @@
+ "success_lie": "Thanks for trying… I guess.",
"failure": "Don't worry about it, it's not that important."
},
+ "end": { "effect": [ { "u_buy_item": "icon", "count": 3 } ] }
--- a/data/json/mapgen/cground3x3.json
+++ b/data/json/mapgen/cground3x3.json
@@ -22,83 +22,120 @@
diff --git a/recipes-01_4570-dragon-can-be-dismantled.patch b/recipes-01_4570-dragon-can-be-dismantled.patch
index 219bfd6..c0e4f26 100644
--- a/recipes-01_4570-dragon-can-be-dismantled.patch
+++ b/recipes-01_4570-dragon-can-be-dismantled.patch
@@ -1,6 +1,6 @@
--- a/data/json/recipes/ammo/rifle.json
+++ b/data/json/recipes/ammo/rifle.json
-@@ -385,6 +385,7 @@
+@@ -355,6 +355,7 @@
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
"charges": 1,
@@ -8,23 +8,23 @@
"using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ],
"components": [
[ [ "4570_casing", 1 ] ],
-@@ -406,6 +407,7 @@
+@@ -376,6 +377,7 @@
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
"charges": 1,
+ "reversible": true,
"using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ],
- "components": [
- [ [ "4570_casing", 1 ] ],
-@@ -426,6 +428,7 @@
+ "components": [ [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 17 ] ], [ [ "copper", 7 ] ] ]
+ },
+@@ -356,6 +358,7 @@
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
"charges": 1,
+ "reversible": true,
"using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ],
- "components": [
- [ [ "4570_casing", 1 ] ],
-@@ -446,6 +449,7 @@
+ "components": [ [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 12 ] ], [ [ "lead", 9 ] ] ]
+ },
+@@ -406,6 +409,7 @@
"batch_time_factors": [ 60, 5 ],
"book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ],
"charges": 1,
@@ -40,5 +40,5 @@
"charges": 1,
+ "reversible": true,
"using": [ [ "ammo_shot", 1 ] ],
- "tools": [ [ [ "press", -1 ] ] ],
+ "tools": [ [ [ "press", -1 ], [ "press_dowel", -1 ] ] ],
"components": [ [ [ "gunpowder", 3 ] ], [ [ "magnesium", 5 ] ] ]
diff --git a/vampirism.patch b/vampirism.patch
index c833f7b..ee770b9 100644
--- a/vampirism.patch
+++ b/vampirism.patch
@@ -1,6 +1,6 @@
--- a/src/activity_handlers.cpp
+++ b/src/activity_handlers.cpp
-@@ -220,6 +220,7 @@3
+@@ -238,6 +238,7 @@3
static const species_id HUMAN( "HUMAN" );
static const species_id ZOMBIE( "ZOMBIE" );
@@ -8,7 +8,7 @@
static const std::string trait_flag_CANNIBAL( "CANNIBAL" );
static const std::string trait_flag_PSYCHOPATH( "PSYCHOPATH" );
static const std::string trait_flag_SAPIOVORE( "SAPIOVORE" );
-@@ -259,6 +260,8 @@
+@@ -278,6 +278,8 @@
static const std::string flag_SUPPORTS_ROOF( "SUPPORTS_ROOF" );
static const std::string flag_TREE( "TREE" );
static const std::string flag_USE_UPS( "USE_UPS" );
@@ -17,7 +17,7 @@
using namespace activity_handlers;
-@@ -651,7 +654,8 @@
+@@ -667,7 +667,8 @@
!corpse.in_species( ZOMBIE ) );
if( is_human && !( u.has_trait_flag( trait_flag_CANNIBAL ) ||
u.has_trait_flag( trait_flag_PSYCHOPATH ) ||
@@ -40,7 +40,7 @@
static const trait_id trait_PACKMULE( "PACKMULE" );
static const trait_id trait_PADDED_FEET( "PADDED_FEET" );
static const trait_id trait_PAWS( "PAWS" );
-@@ -288,6 +288,8 @@
+@@ -311,6 +311,8 @@
static const trait_id trait_TOUGH_FEET( "TOUGH_FEET" );
static const trait_id trait_TRANSPIRATION( "TRANSPIRATION" );
static const trait_id trait_URSINE_EYE( "URSINE_EYE" );
@@ -66,7 +66,7 @@
}
float rest = rest_quality();
-@@ -4545,6 +4547,7 @@
+@@ -4631,6 +4631,7 @@
const bool npc_no_food = is_npc() && get_option<bool>( "NO_NPC_FOOD" );
const bool foodless = debug_ls || npc_no_food;
const bool mouse = has_trait( trait_NO_THIRST );
@@ -74,8 +74,8 @@
const bool mycus = has_trait( trait_M_DEPENDENT );
const float kcal_per_time = bmr() / ( 12.0f * 24.0f );
const int five_mins = ticks_between( from, to, 5_minutes );
-@@ -4568,7 +4571,7 @@
- }
+@@ -4661,7 +4661,7 @@
+
// Mycus and Metabolic Rehydration makes thirst unnecessary
// since water is not limited by intake but by absorption, we can just set thirst to zero
- if( mycus || mouse ) {
@@ -83,7 +83,7 @@
set_thirst( 0 );
}
}
-@@ -4843,15 +4843,17 @@
+@@ -4861,15 +4861,17 @@
void Character::check_needs_extremes()
{
// Check if we've overdosed... in any deadly way.
@@ -104,7 +104,7 @@
if( !( has_trait( trait_NOPAIN ) ) ) {
add_msg_if_player( m_bad, _( "Your heart spasms painfully and stops." ) );
} else {
-@@ -4859,11 +4861,12 @@
+@@ -4879,11 +4879,12 @@
}
g->events().send<event_type::dies_from_drug_overdose>( getID(), effect_jetinjector );
set_part_hp_cur( bodypart_id( "torso" ), 0 );
@@ -119,10 +119,9 @@
add_msg_if_player( m_bad, _( "Your breathing slows down to a stop." ) );
g->events().send<event_type::dies_from_drug_overdose>( getID(), effect_drunk );
set_part_hp_cur( bodypart_id( "torso" ), 0 );
-
@@ -4985,7 +4988,7 @@
- void Character::update_bodytemp( const map &m, weather_manager &weather )
+ void Character::update_bodytemp( const map &m, const weather_manager &weather )
{
- if( has_trait( trait_DEBUG_NOTEMP ) ) {
+ if( has_trait( trait_DEBUG_NOTEMP ) || has_trait( trait_VAMP_SKIN ) ) {
@@ -132,7 +131,7 @@
--- a/src/character.h
+++ b/src/character.h
-@@ -163,6 +163,8 @@
+@@ -162,6 +162,8 @@
allergy_weak,
// Cannibalism (unless psycho/cannibal)
cannibalism,
@@ -162,7 +161,7 @@
static const std::string flag_ALLERGEN_JUNK( "ALLERGEN_JUNK" );
static const std::string flag_ALLERGEN_MEAT( "ALLERGEN_MEAT" );
static const std::string flag_ALLERGEN_MILK( "ALLERGEN_MILK" );
-@@ -143,11 +144,17 @@
+@@ -148,11 +148,17 @@
static const std::string flag_RAW( "RAW" );
static const std::string flag_URSINE_HONEY( "URSINE_HONEY" );
static const std::string flag_USE_EAT_VERB( "USE_EAT_VERB" );
@@ -180,7 +179,7 @@
// This ugly temp array is here because otherwise it goes
// std::vector(char*, char*)->vector(InputIterator,InputIterator) or some such
const std::array<std::string, 2> temparray {{flag_ALLERGEN_MEAT, flag_ALLERGEN_EGG}};
-@@ -719,6 +726,12 @@
+@@ -712,6 +712,12 @@
_( "Eww. Inedible plant stuff!" ) );
}
@@ -247,7 +246,6 @@
} else if( psycho || sapiovore ) {
// Nothing - doesn't care enough to print a message
} else {
-
@@ -1123,6 +1161,11 @@
add_msg_if_player( m_bad, _( "Yuck! How can anybody eat this stuff?" ) );
add_morale( allergy, -75, -400, 30_minutes, 24_minutes );
@@ -263,7 +261,7 @@
--- a/src/game.cpp
+++ b/src/game.cpp
-@@ -1008,8 +1008,9 @@
+@@ -1040,8 +1040,9 @@
int iInfoLine = 0;
if( u.has_amount( itype_holybook_bible1, 1 ) || u.has_amount( itype_holybook_bible2, 1 ) ||
@@ -313,7 +311,7 @@
}
}
-@@ -3947,6 +3947,7 @@
+@@ -4046,6 +4046,7 @@
case edible_rating::allergy:
case edible_rating::allergy_weak:
case edible_rating::cannibalism:
@@ -324,7 +322,7 @@
--- a/src/item_factory.cpp
+++ b/src/item_factory.cpp
-@@ -2219,6 +2219,7 @@
+@@ -2251,6 +2251,7 @@
// First allergens:
// An item is an allergen even if it has trace amounts of allergenic material
std::make_pair( material_id( "hflesh" ), "CANNIBALISM" ),
@@ -332,7 +330,7 @@
std::make_pair( material_id( "hflesh" ), "ALLERGEN_MEAT" ),
std::make_pair( material_id( "iflesh" ), "ALLERGEN_MEAT" ),
-@@ -2233,10 +2234,15 @@
+@@ -2266,10 +2266,15 @@
std::make_pair( material_id( "mushroom" ), "ALLERGEN_VEGGY" ),
std::make_pair( material_id( "milk" ), "ALLERGEN_MILK" ),
std::make_pair( material_id( "egg" ), "ALLERGEN_EGG" ),
@@ -362,7 +360,7 @@
--- a/src/map_field.cpp
+++ b/src/map_field.cpp
-@@ -88,6 +88,7 @@
+@@ -91,6 +91,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" );
@@ -370,7 +368,7 @@
static const trait_id trait_WEB_WALKER( "WEB_WALKER" );
void map::create_burnproducts( const tripoint &p, const item &fuel, const units::mass &burned_mass )
-@@ -1395,7 +1396,8 @@
+@@ -1405,7 +1405,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 );
}
@@ -380,7 +378,7 @@
u.add_env_effect( effect_blind, bp_eyes, cur.get_field_intensity() * 2, 10_seconds );
}
}
-@@ -1526,8 +1528,9 @@
+@@ -1537,8 +1537,9 @@
// The gas won't harm you inside a vehicle.
if( !inside ) {
// Full body suits protect you from the effects of the gas.
@@ -395,7 +393,7 @@
--- a/src/memorial_logger.cpp
+++ b/src/memorial_logger.cpp
-@@ -80,6 +80,7 @@
+@@ -79,6 +79,7 @@
static const trap_str_id tr_snake( "tr_snake" );
static const trap_str_id tr_glass_pit( "tr_glass_pit" );
@@ -403,7 +401,7 @@
static const trait_id trait_CANNIBAL( "CANNIBAL" );
static const trait_id trait_PSYCHOPATH( "PSYCHOPATH" );
static const trait_id trait_SAPIOVORE( "SAPIOVORE" );
-@@ -486,6 +487,7 @@
+@@ -488,6 +488,7 @@
character_id ch = e.get<character_id>( "killer" );
if( ch == g->u.getID() ) {
std::string name = e.get<cata_variant_type::string>( "victim_name" );
@@ -411,7 +409,7 @@
bool cannibal = g->u.has_trait( trait_CANNIBAL );
bool psycho = g->u.has_trait( trait_PSYCHOPATH );
if( g->u.has_trait( trait_SAPIOVORE ) ) {
-@@ -509,6 +511,10 @@
+@@ -512,6 +512,10 @@
add( pgettext( "memorial_male", "Killed an innocent, %s." ),
pgettext( "memorial_female", "Killed an innocent, %s." ),
name );
@@ -425,7 +423,7 @@
--- a/src/morale_types.cpp
+++ b/src/morale_types.cpp
-@@ -138,6 +139,7 @@
+@@ -36,6 +36,7 @@
const morale_type MORALE_CRAVING_MARLOSS( "morale_craving_marloss" );
const morale_type MORALE_FOOD_BAD( "morale_food_bad" );
const morale_type MORALE_CANNIBAL( "morale_cannibal" );
@@ -455,7 +453,7 @@
static const trait_id trait_TREE_COMMUNION( "TREE_COMMUNION" );
static const trait_id trait_VOMITOUS( "VOMITOUS" );
static const trait_id trait_WEB_WEAVER( "WEB_WEAVER" );
-@@ -887,6 +888,11 @@
+@@ -860,6 +860,11 @@
if( !mutagen ) {
return;
}
@@ -467,7 +465,7 @@
float mut_power = to_turns<float>( mutagen.get_duration() ) / to_turns<float>
( mutagen.get_int_dur_factor() );
add_msg_if_player( m_debug, "Mutation accumulation: %.1f", mut_power );
-@@ -926,6 +932,10 @@
+@@ -904,6 +904,10 @@
{
bool force_bad = one_in( 3 );
bool force_good = false;
@@ -481,7 +479,7 @@
--- a/src/npc.cpp
+++ b/src/npc.cpp
-@@ -116,6 +116,7 @@
+@@ -118,6 +118,7 @@
static const trait_id trait_SAPIOVORE( "SAPIOVORE" );
static const trait_id trait_SCHIZOPHRENIC( "SCHIZOPHRENIC" );
static const trait_id trait_TERRIFYING( "TERRIFYING" );
@@ -489,7 +487,7 @@
static const std::string flag_NPC_SAFE( "NPC_SAFE" );
-@@ -2486,12 +2487,15 @@
+@@ -2492,12 +2492,15 @@
}
if( killer == &g->u && ( !guaranteed_hostile() || hit_by_player ) ) {
@@ -508,7 +506,7 @@
--- a/src/player_hardcoded_effects.cpp
+++ b/src/player_hardcoded_effects.cpp
-@@ -114,6 +114,8 @@
+@@ -105,6 +105,8 @@
static const trait_id trait_SEESLEEP( "SEESLEEP" );
static const trait_id trait_SCHIZOPHRENIC( "SCHIZOPHRENIC" );
static const trait_id trait_THRESH_MYCUS( "THRESH_MYCUS" );
@@ -528,7 +526,7 @@
add_msg_if_player( m_bad,
_( "Your heart spasms painfully and stops, dragging you back to reality as you die." ) );
} else {
-@@ -1095,6 +1097,9 @@
+@@ -1065,6 +1065,9 @@
// 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() ) {
@@ -541,7 +539,7 @@
--- a/src/suffer.cpp
+++ b/src/suffer.cpp
-@@ -143,6 +143,8 @@
+@@ -153,6 +153,8 @@
static const trait_id trait_TROGLO2( "TROGLO2" );
static const trait_id trait_TROGLO3( "TROGLO3" );
static const trait_id trait_UNSTABLE( "UNSTABLE" );
@@ -550,7 +548,7 @@
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 @@
+@@ -251,7 +251,8 @@
void Character::suffer_while_underwater()
{
@@ -560,7 +558,7 @@
oxygen--;
}
if( oxygen < 12 && worn_with_flag( "REBREATHER" ) ) {
-@@ -742,7 +746,8 @@
+@@ -751,7 +751,8 @@
return;
}
@@ -570,7 +568,7 @@
suffer_from_sunburn();
}
-@@ -768,6 +773,13 @@
+@@ -778,6 +778,13 @@
mod_int_bonus( -4 );
mod_per_bonus( -4 );
}
@@ -584,7 +582,7 @@
}
std::map<bodypart_id, float> Character::bodypart_exposure()
-@@ -799,7 +811,8 @@
+@@ -816,7 +816,8 @@
void Character::suffer_from_sunburn()
{
@@ -594,7 +592,7 @@
return;
}
-@@ -816,6 +829,12 @@
+@@ -834,6 +834,12 @@
return;
}
sunlight_effect = _( "The sunlight burns" );
@@ -607,7 +605,7 @@
}
// Sunglasses can keep the sun off the eyes.
-@@ -893,7 +912,7 @@
+@@ -917,7 +917,7 @@
}
// Solar Sensitivity (SUNBURN) trait causes injury to exposed parts
@@ -619,7 +617,7 @@
--- a/data/json/field_type.json
+++ b/data/json/field_type.json
-@@ -303,7 +303,7 @@
+@@ -299,7 +299,7 @@
"dirty_transparency_cache": true,
"percent_spread": 10,
"outdoor_age_speedup": "0 turns",
@@ -628,7 +626,7 @@
"priority": 8,
"half_life": "2 minutes",
"phase": "gas",
-@@ -389,7 +389,7 @@
+@@ -385,7 +385,7 @@
"outdoor_age_speedup": "3 minutes",
"dirty_transparency_cache": true,
"has_fume": true,
@@ -637,7 +635,7 @@
"priority": 8,
"half_life": "10 minutes",
"phase": "gas",
-@@ -418,7 +418,7 @@
+@@ -414,7 +414,7 @@
"outdoor_age_speedup": "0 turns",
"dirty_transparency_cache": true,
"has_fume": true,
@@ -646,7 +644,7 @@
"priority": 8,
"half_life": "5 minutes",
"phase": "gas",
-@@ -464,7 +464,7 @@
+@@ -460,7 +460,7 @@
"wandering_field": "fd_toxic_gas",
"gas_absorption_factor": 15,
"dirty_transparency_cache": true,
@@ -673,7 +671,7 @@
"priority": 8,
"half_life": "15 minutes",
"phase": "gas",
-@@ -1233,7 +1233,7 @@
+@@ -1225,7 +1225,7 @@
"outdoor_age_speedup": "3 minutes",
"dirty_transparency_cache": true,
"has_fume": true,
@@ -682,7 +680,7 @@
"priority": 8,
"half_life": "10 minutes",
"phase": "gas"
-@@ -1253,7 +1253,7 @@
+@@ -1245,7 +1245,7 @@
"outdoor_age_speedup": "1 minutes",
"dirty_transparency_cache": true,
"has_fume": true,
@@ -691,7 +689,7 @@
"priority": 8,
"half_life": "30 minutes",
"phase": "gas",
-@@ -1275,7 +1275,7 @@
+@@ -1267,7 +1267,7 @@
"outdoor_age_speedup": "1 minutes",
"dirty_transparency_cache": true,
"has_fume": true,
@@ -703,7 +701,7 @@
--- a/data/json/flags.json
+++ b/data/json/flags.json
-@@ -1093,6 +1093,21 @@
+@@ -1117,6 +1117,21 @@
"context": [ "COMESTIBLE" ]
},
{
@@ -725,7 +723,7 @@
"id": "ALLERGEN_JUNK",
"type": "json_flag",
"context": [ "COMESTIBLE" ]
-@@ -1173,6 +1173,16 @@
+@@ -1197,6 +1197,16 @@
"context": [ ]
},
{
@@ -760,7 +758,7 @@
--- a/data/json/mutations/mutation_ordering.json
+++ b/data/json/mutations/mutation_ordering.json
-@@ -77,6 +77,7 @@
+@@ -73,6 +73,7 @@
"TROGLO2",
"TROGLO3",
"URSINE_FUR",
@@ -768,9 +766,9 @@
"VISCOUS"
],
"order": 1500
-@@ -185,7 +186,7 @@
+@@ -180,7 +181,7 @@
{ "id": [ "FLOWERS" ], "order": 5000 },
- { "id": [ "ELFA_EARS", "FELINE_EARS", "LUPINE_EARS", "RABBIT_EARS", "URSINE_EARS" ], "order": 5500 },
+ { "id": [ "ELFA_EARS", "FELINE_EARS", "LUPINE_EARS", "URSINE_EARS" ], "order": 5500 },
{ "id": [ "ANTENNAE", "ANTLERS", "CURVED_HORNS", "HORNS", "POINTED_HORNS" ], "order": 6000 },
- { "id": [ "COMPOUND_EYES", "ELFAEYES", "FEL_EYE", "LIZ_EYE" ], "order": 6500 },
+ { "id": [ "COMPOUND_EYES", "ELFAEYES", "FEL_EYE", "LIZ_EYE", "VAMP_EYES" ], "order": 6500 },