From 444181f77cb649760c3099d9b96c8f863a8f8ddf Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Fri, 29 Oct 2021 18:01:32 -0700 Subject: Updated to 2021-10-29-1727 Reorganize patches into categories. Add patch to allow followers to eat from the basecamp stocks from farther away. -Reduces NPCs being prone to starve on large camps. Temporarily revert the book changes commit. --- ...e-firestation-shelter-wells-npc-drinkable.patch | 51 - 0.F_backport-radio-can-use-ups.patch | 55 - 0.F_backport-tacoma-barn-door-position.patch | 11 - 0001-quiverfull-house-correct-stairs.patch | 11 - 0002-ankle-ammo-pouch-is-not-a-backpack.patch | 11 - 0003-inconsistent-ammo-names.patch | 182 --- 0004-tacoma-clinic-add-missing-floor.patch | 11 - 0005-lumbermill-gasoline-not-spilled.patch | 11 - 0006-community-garden-fertilizer-not-spilled.patch | 17 - 0008-npc-can-use-more-bionics.patch | 48 - 0009-22-casings-can-stack.patch | 17 - 0010-4570-dragon-can-be-dismantled.patch | 44 - 0011-add-missing-mre.patch | 39 - 0012-fix-doors-for-npcs.patch | 20 - 0013-fix-20x66mm-loudness.patch | 10 - 0014-portable-generator-engine.patch | 11 - 0015-normalize-drone-volume.patch | 56 - 0016-medical-zombies-called-zombies.patch | 30 - 0017-nerf-lightstep.patch | 16 - 0018-rehide-redacted.patch | 15 - 0019-derelict-shed-is-s.patch | 10 - 0020-hk46-is-milspec.patch | 18 - 0021-foldable-bottle-is-container.patch | 20 - 0022-fix-evac3-background-visible.patch | 10 - 0023-fix-rubbersplosion.patch | 19 - 0024-ammo-order-fix.patch | 203 --- 0026-fix-brioche-cooking-time.patch | 10 - 0027-fix-missing-ammo-frag-effects.patch | 22 - 0028-fix-food-materials.patch | 42 - 0029-fix-survivor-fingerless-gloves-warmth.patch | 11 - 0031-vacutainer-is-not-a-weapon.patch | 12 - 0032-shears-use-light-battery.patch | 28 - 0033-add-missing-price-postapoc.patch | 143 -- 0034-fix-reloaded-50bmg.patch | 15 - PKGBUILD | 346 +++-- ammo-01_inconsistent-ammo-names.patch | 182 +++ ammo-02_fix-20x66mm-loudness.patch | 10 + ammo-03_fix-reloaded-50bmg.patch | 16 + ammo-04_fix-missing-ammo-frag-effects.patch | 22 + ammo-05_22-casings-can-stack.patch | 17 + ammo-10_ammo-order-fix.patch | 328 +++++ armor-01_ankle-ammo-pouch-is-not-a-backpack.patch | 11 + ...-02_fix-survivor-fingerless-gloves-warmth.patch | 11 + bionics-01_npc-can-use-more-bionics.patch | 48 + etc-01_fix-rubbersplosion.patch | 19 + etc-02_add-missing-price-postapoc.patch | 143 ++ etc-03_revert-book-revamp.patch | 1558 ++++++++++++++++++++ foods-01_fix-food-materials.patch | 42 + itemgroups-01_hk46-is-milspec.patch | 18 + itemgroups-02_add-missing-mre.patch | 39 + jc_npc-eat-from-further-camp.patch | 11 + jc_radio-can-use-ups.patch | 55 + monsters-01_medical-zombies-called-zombies.patch | 30 + mutations-01_nerf-lightstep.patch | 16 + mutations-02_fix-evac3-background-visible.patch | 10 + recipes-01_fix-brioche-cooking-time.patch | 10 + recipes-02_4570-dragon-can-be-dismantled.patch | 44 + terrain-01_quiverfull-house-correct-stairs.patch | 11 + terrain-02_tacoma-barn-door-position.patch | 11 + terrain-03_tacoma-clinic-add-missing-floor.patch | 11 + terrain-04_lumbermill-gasoline-not-spilled.patch | 11 + ...5_community-garden-fertilizer-not-spilled.patch | 17 + terrain-06_fix-doors-for-npcs.patch | 20 + terrain-07_rehide-redacted.patch | 15 + terrain-08_derelict-shed-is-s.patch | 10 + ...e-firestation-shelter-wells-npc-drinkable.patch | 51 + tools-01_foldable-bottle-is-container.patch | 20 + tools-02_vacutainer-is-not-a-weapon.patch | 12 + tools-03_shears-use-light-battery.patch | 28 + tools-04_normalize-drone-volume.patch | 56 + vehicles-01_portable-generator-engine.patch | 11 + 71 files changed, 3139 insertions(+), 1360 deletions(-) delete mode 100644 0.F_backport-make-firestation-shelter-wells-npc-drinkable.patch delete mode 100644 0.F_backport-radio-can-use-ups.patch delete mode 100644 0.F_backport-tacoma-barn-door-position.patch delete mode 100644 0001-quiverfull-house-correct-stairs.patch delete mode 100644 0002-ankle-ammo-pouch-is-not-a-backpack.patch delete mode 100644 0003-inconsistent-ammo-names.patch delete mode 100644 0004-tacoma-clinic-add-missing-floor.patch delete mode 100644 0005-lumbermill-gasoline-not-spilled.patch delete mode 100644 0006-community-garden-fertilizer-not-spilled.patch delete mode 100644 0008-npc-can-use-more-bionics.patch delete mode 100644 0009-22-casings-can-stack.patch delete mode 100644 0010-4570-dragon-can-be-dismantled.patch delete mode 100644 0011-add-missing-mre.patch delete mode 100644 0012-fix-doors-for-npcs.patch delete mode 100644 0013-fix-20x66mm-loudness.patch delete mode 100644 0014-portable-generator-engine.patch delete mode 100644 0015-normalize-drone-volume.patch delete mode 100644 0016-medical-zombies-called-zombies.patch delete mode 100644 0017-nerf-lightstep.patch delete mode 100644 0018-rehide-redacted.patch delete mode 100644 0019-derelict-shed-is-s.patch delete mode 100644 0020-hk46-is-milspec.patch delete mode 100644 0021-foldable-bottle-is-container.patch delete mode 100644 0022-fix-evac3-background-visible.patch delete mode 100644 0023-fix-rubbersplosion.patch delete mode 100644 0024-ammo-order-fix.patch delete mode 100644 0026-fix-brioche-cooking-time.patch delete mode 100644 0027-fix-missing-ammo-frag-effects.patch delete mode 100644 0028-fix-food-materials.patch delete mode 100644 0029-fix-survivor-fingerless-gloves-warmth.patch delete mode 100644 0031-vacutainer-is-not-a-weapon.patch delete mode 100644 0032-shears-use-light-battery.patch delete mode 100644 0033-add-missing-price-postapoc.patch delete mode 100644 0034-fix-reloaded-50bmg.patch create mode 100644 ammo-01_inconsistent-ammo-names.patch create mode 100644 ammo-02_fix-20x66mm-loudness.patch create mode 100644 ammo-03_fix-reloaded-50bmg.patch create mode 100644 ammo-04_fix-missing-ammo-frag-effects.patch create mode 100644 ammo-05_22-casings-can-stack.patch create mode 100644 ammo-10_ammo-order-fix.patch create mode 100644 armor-01_ankle-ammo-pouch-is-not-a-backpack.patch create mode 100644 armor-02_fix-survivor-fingerless-gloves-warmth.patch create mode 100644 bionics-01_npc-can-use-more-bionics.patch create mode 100644 etc-01_fix-rubbersplosion.patch create mode 100644 etc-02_add-missing-price-postapoc.patch create mode 100644 etc-03_revert-book-revamp.patch create mode 100644 foods-01_fix-food-materials.patch create mode 100644 itemgroups-01_hk46-is-milspec.patch create mode 100644 itemgroups-02_add-missing-mre.patch create mode 100644 jc_npc-eat-from-further-camp.patch create mode 100644 jc_radio-can-use-ups.patch create mode 100644 monsters-01_medical-zombies-called-zombies.patch create mode 100644 mutations-01_nerf-lightstep.patch create mode 100644 mutations-02_fix-evac3-background-visible.patch create mode 100644 recipes-01_fix-brioche-cooking-time.patch create mode 100644 recipes-02_4570-dragon-can-be-dismantled.patch create mode 100644 terrain-01_quiverfull-house-correct-stairs.patch create mode 100644 terrain-02_tacoma-barn-door-position.patch create mode 100644 terrain-03_tacoma-clinic-add-missing-floor.patch create mode 100644 terrain-04_lumbermill-gasoline-not-spilled.patch create mode 100644 terrain-05_community-garden-fertilizer-not-spilled.patch create mode 100644 terrain-06_fix-doors-for-npcs.patch create mode 100644 terrain-07_rehide-redacted.patch create mode 100644 terrain-08_derelict-shed-is-s.patch create mode 100644 terrain-09_make-firestation-shelter-wells-npc-drinkable.patch create mode 100644 tools-01_foldable-bottle-is-container.patch create mode 100644 tools-02_vacutainer-is-not-a-weapon.patch create mode 100644 tools-03_shears-use-light-battery.patch create mode 100644 tools-04_normalize-drone-volume.patch create mode 100644 vehicles-01_portable-generator-engine.patch diff --git a/0.F_backport-make-firestation-shelter-wells-npc-drinkable.patch b/0.F_backport-make-firestation-shelter-wells-npc-drinkable.patch deleted file mode 100644 index 8eac7f0..0000000 --- a/0.F_backport-make-firestation-shelter-wells-npc-drinkable.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- a/data/json/recipes/basecamps/recipe_modular_firestation1.json -+++ b/data/json/recipes/basecamps/recipe_modular_firestation1.json -@@ -50,7 +50,13 @@ - "construction_blueprint": "fbmc_firestation1_well", - "blueprint_name": "build a well", - "blueprint_requires": [ { "id": "fbmc_firestation1_0" } ], -- "blueprint_provides": [ { "id": "fbmc_firestation1_well" }, { "id": "relaying" }, { "id": "scouting" }, { "id": "patrolling" } ], -+ "blueprint_provides": [ -+ { "id": "fbmc_firestation1_well" }, -+ { "id": "water_well" }, -+ { "id": "relaying" }, -+ { "id": "scouting" }, -+ { "id": "patrolling" } -+ ], - "blueprint_excludes": [ { "id": "fbmc_firestation1_well" } ], - "blueprint_needs": { - "time": "11 h", ---- a/data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_common.json -+++ b/data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_common.json -@@ -136,7 +136,13 @@ - "construction_blueprint": "fbmc_shelter_1_well", - "blueprint_name": "build a well", - "blueprint_requires": [ { "id": "fbmc_shelter_1_fire" } ], -- "blueprint_provides": [ { "id": "fbmc_shelter_1_well" }, { "id": "relaying" }, { "id": "scouting" }, { "id": "patrolling" } ], -+ "blueprint_provides": [ -+ { "id": "fbmc_shelter_1_well" }, -+ { "id": "water_well" }, -+ { "id": "relaying" }, -+ { "id": "scouting" }, -+ { "id": "patrolling" } -+ ], - "blueprint_excludes": [ { "id": "fbmc_shelter_1_well" } ], - "blueprint_needs": { - "time": "11 h", ---- a/data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_common.json -+++ b/data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_common.json -@@ -136,7 +136,13 @@ - "construction_blueprint": "fbmc_shelter_well", - "blueprint_name": "build a well", - "blueprint_requires": [ { "id": "fbmc_shelter_fire" } ], -- "blueprint_provides": [ { "id": "fbmc_shelter_well" }, { "id": "relaying" }, { "id": "scouting" }, { "id": "patrolling" } ], -+ "blueprint_provides": [ -+ { "id": "fbmc_shelter_well" }, -+ { "id": "water_well" }, -+ { "id": "relaying" }, -+ { "id": "scouting" }, -+ { "id": "patrolling" } -+ ], - "blueprint_excludes": [ { "id": "fbmc_shelter_well" } ], - "blueprint_needs": { - "time": "11 h", diff --git a/0.F_backport-radio-can-use-ups.patch b/0.F_backport-radio-can-use-ups.patch deleted file mode 100644 index ee146e5..0000000 --- a/0.F_backport-radio-can-use-ups.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- a/src/iuse.cpp -+++ b/src/iuse.cpp -@@ -289,6 +289,7 @@ - static const std::string flag_HEATS_FOOD( "HEATS_FOOD" ); - static const std::string flag_PLANT( "PLANT" ); - static const std::string flag_PLOWABLE( "PLOWABLE" ); -+static const std::string flag_USE_UPS( "USE_UPS" ); - - // how many characters per turn of radio - static constexpr int RADIO_PER_TURN = 25; -@@ -2162,7 +2163,8 @@ - } - } else { // Activated - int ch = 1; -- if( it->ammo_remaining() > 0 ) { -+ if( it->ammo_remaining() > 0 || ( it->has_flag( flag_USE_UPS ) && -+ p->has_enough_charges( *it, false ) ) ) { - ch = uilist( _( "Radio:" ), { - _( "Scan" ), _( "Turn off" ) - } ); -@@ -4082,7 +4084,8 @@ - if( t ) { // Effects while simply on - - } else { -- if( !it->units_sufficient( *p ) ) { -+ 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; - } else { -@@ -4107,7 +4110,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. -- if( !it->units_sufficient( *p ) ) { -+ 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 @@ - int iuse::einktabletpc( player *p, item *it, bool t, const tripoint &pos ) - { - if( t ) { -- if( !it->get_var( "EIPC_MUSIC_ON" ).empty() && ( it->ammo_remaining() > 0 ) ) { -+ if( !it->get_var( "EIPC_MUSIC_ON" ).empty() && -+ ( it->ammo_remaining() > 0 || ( it->has_flag( flag_USE_UPS ) && -+ p->has_enough_charges( *it, false ) ) ) ) { - if( calendar::once_every( 5_minutes ) ) { -- it->ammo_consume( 1, p->pos() ); -+ //it->ammo_consume( 1, p->pos() ); -+ p->consume_charges( *it, 1 ); - } - - //the more varied music, the better max mood. diff --git a/0.F_backport-tacoma-barn-door-position.patch b/0.F_backport-tacoma-barn-door-position.patch deleted file mode 100644 index d5f5642..0000000 --- a/0.F_backport-tacoma-barn-door-position.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/data/json/npcs/tacoma_ranch/NPC_ranch_foreman.json -+++ b/data/json/npcs/tacoma_ranch/NPC_ranch_foreman.json -@@ -122,7 +122,7 @@ - "place_nested": [ { "chunks": [ "tacoma_commune_west_wall_door" ], "x": 22, "y": 0 } ] - }, - { -- "om_terrain": "ranch_camp_66", -+ "om_terrain": "ranch_camp_75", - "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ], - "place_nested": [ - { "chunks": [ "tacoma_commune_east_wall_door" ], "x": 0, "y": 0 }, diff --git a/0001-quiverfull-house-correct-stairs.patch b/0001-quiverfull-house-correct-stairs.patch deleted file mode 100644 index ad40706..0000000 --- a/0001-quiverfull-house-correct-stairs.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/data/json/mapgen/house/house_quiverfull.json -+++ b/data/json/mapgen/house/house_quiverfull.json -@@ -29,7 +29,7 @@ - "%or E|R y| h F#.", - "%# + + O#.", - ".# |||R R|J 5o.", -- ".#HHsHH|< R|n 4o.", -+ ".#HHsHH|> R|n 4o.", - ".#|||||| |R R|JJ 123#.", - ".#q+ ||||+|||#.", - ".#q+ + d#.", diff --git a/0002-ankle-ammo-pouch-is-not-a-backpack.patch b/0002-ankle-ammo-pouch-is-not-a-backpack.patch deleted file mode 100644 index ca51551..0000000 --- a/0002-ankle-ammo-pouch-is-not-a-backpack.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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", - "symbol": "[", -- "looks_like": "ragpouch", -+ "looks_like": "bootstrap", - "color": "dark_gray", - "covers": [ "FOOT_EITHER" ], - "coverage": 5, diff --git a/0003-inconsistent-ammo-names.patch b/0003-inconsistent-ammo-names.patch deleted file mode 100644 index 2c55e7f..0000000 --- a/0003-inconsistent-ammo-names.patch +++ /dev/null @@ -1,182 +0,0 @@ ---- a/data/json/items/ammo/223.json -+++ b/data/json/items/ammo/223.json -@@ -39,7 +39,7 @@ - "id": "556_incendiary", - "copy-from": "556", - "type": "AMMO", -- "name": { "str": "5.56 NATO tracer" }, -+ "name": { "str": "5.56 NATO M856 tracer" }, - "description": "This ammunition is a one-in-five mix of M855A1 and M856 tracer rounds to help keep the weapon they are fired from on target.", - "extend": { "effects": [ "INCENDIARY" ] } - }, -@@ -61,7 +61,7 @@ - "id": "bp_556", - "copy-from": "556", - "type": "AMMO", -- "name": { "str": "5.56 NATO, black powder" }, -+ "name": { "str": "5.56 NATO M855A1, black powder" }, - "proportional": { - "price": 0.3, - "damage": { "damage_type": "stab", "amount": 0.57, "armor_penetration": 0.5 }, -@@ -75,7 +75,7 @@ - "id": "bp_556_incendiary", - "copy-from": "556_incendiary", - "type": "AMMO", -- "name": { "str": "5.56 NATO tracer, black powder" }, -+ "name": { "str": "5.56 NATO M856 tracer, black powder" }, - "proportional": { - "price": 0.3, - "damage": { "damage_type": "stab", "amount": 0.57, "armor_penetration": 0.5 }, -@@ -98,7 +98,7 @@ - "id": "reloaded_556", - "copy-from": "556", - "type": "AMMO", -- "name": { "str": "5.56 NATO, reloaded" }, -+ "name": { "str": "5.56 NATO M885A1, reloaded" }, - "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, - "extend": { "effects": [ "RECYCLED" ] }, - "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] } -@@ -107,7 +107,7 @@ - "id": "reloaded_556_incendiary", - "copy-from": "556_incendiary", - "type": "AMMO", -- "name": { "str": "5.56 NATO tracer, reloaded" }, -+ "name": { "str": "5.56 NATO M856 tracer, reloaded" }, - "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, - "extend": { "effects": [ "RECYCLED" ] }, - "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] } ---- a/data/json/items/ammo/308.json -+++ b/data/json/items/ammo/308.json -@@ -26,7 +26,7 @@ - "id": "762_51", - "copy-from": "308", - "type": "AMMO", -- "name": { "str": "7.62x51mm M80" }, -+ "name": { "str": "7.62x51mm NATO M80" }, - "casing": "762_51_casing", - "description": "A 7.62x51mm NATO round with a 147gr FMJ bullet. It is a powerful rifle cartridge commonly used by hunters and military snipers because of its high accuracy and long range.", - "relative": { "damage": { "damage_type": "stab", "amount": -2, "armor_penetration": 4 }, "dispersion": -10 }, -@@ -37,7 +37,7 @@ - "id": "762_51_incendiary", - "copy-from": "762_51", - "type": "AMMO", -- "name": { "str": "7.62x51mm NATO tracer" }, -+ "name": { "str": "7.62x51mm NATO M62 tracer" }, - "description": "This ammunition is a one-in-five mix of M80 and M62 tracer rounds to help keep the weapon they are fired from on target.", - "extend": { "effects": [ "INCENDIARY" ] } - }, -@@ -59,7 +59,7 @@ - "id": "bp_762_51", - "copy-from": "762_51", - "type": "AMMO", -- "name": { "str": "7.62x51mm, black powder" }, -+ "name": { "str": "7.62x51mm NATO M80, black powder" }, - "proportional": { - "price": 0.3, - "damage": { "damage_type": "stab", "amount": 0.76, "armor_penetration": 0.5 }, -@@ -73,7 +73,7 @@ - "id": "bp_762_51_incendiary", - "copy-from": "762_51_incendiary", - "type": "AMMO", -- "name": { "str": "7.62x51mm tracer, black powder" }, -+ "name": { "str": "7.62x51mm NATO M62 tracer, black powder" }, - "proportional": { - "price": 0.3, - "damage": { "damage_type": "stab", "amount": 0.76, "armor_penetration": 0.5 }, -@@ -96,7 +96,7 @@ - "id": "reloaded_762_51", - "copy-from": "762_51", - "type": "AMMO", -- "name": { "str": "7.62x51mm, reloaded" }, -+ "name": { "str": "7.62x51mm NATO M80, reloaded" }, - "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, - "extend": { "effects": [ "RECYCLED" ] }, - "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] } -@@ -105,7 +105,7 @@ - "id": "reloaded_762_51_incendiary", - "copy-from": "762_51_incendiary", - "type": "AMMO", -- "name": { "str": "7.62x51mm incendiary, reloaded" }, -+ "name": { "str": "7.62x51mm NATO M62 tracer, reloaded" }, - "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, - "extend": { "effects": [ "RECYCLED" ] }, - "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] } ---- a/data/json/items/ammo/357mag.json -+++ b/data/json/items/ammo/357mag.json -@@ -2,8 +2,8 @@ - { - "id": "357mag_fmj", - "type": "AMMO", -- "name": { "str": ".357 magnum FMJ" }, -- "description": "Jacketed .357 magnum ammunition. The .357 magnum round is derived from the earlier .38 special, with a marginally longer case and generating greater pressure.", -+ "name": { "str": ".357 Magnum FMJ" }, -+ "description": "Jacketed .357 Magnum ammunition. The .357 Magnum round is derived from the earlier .38 special, with a marginally longer case and generating greater pressure.", - "weight": "8 g", - "volume": "250 ml", - "price": 140, -@@ -27,8 +27,8 @@ - "id": "357mag_jhp", - "copy-from": "357mag_fmj", - "type": "AMMO", -- "name": { "str": ".357 magnum JHP" }, -- "description": "Jacketed hollow point .357 magnum ammunition. The .357 magnum round is derived from the earlier .38 special, with a marginally longer case and generating greater pressure.", -+ "name": { "str": ".357 Magnum JHP" }, -+ "description": "Jacketed hollow point .357 Magnum ammunition. The .357 Magnum round is derived from the earlier .38 special, with a marginally longer case and generating greater pressure.", - "damage": { "damage_type": "stab", "amount": 42, "armor_penetration": 0 } - }, - { ---- a/data/json/items/ammo/45.json -+++ b/data/json/items/ammo/45.json -@@ -76,7 +76,7 @@ - "id": "reloaded_45_acp", - "copy-from": "45_acp", - "type": "AMMO", -- "name": { "str": ".45 FMJ, reloaded" }, -+ "name": { "str": ".45 ACP FMJ, reloaded" }, - "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, - "extend": { "effects": [ "RECYCLED" ] }, - "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] } ---- a/data/json/items/ammo/50.json -+++ b/data/json/items/ammo/50.json -@@ -70,7 +70,7 @@ - "id": "reloaded_50_incendiary", - "copy-from": "50_incendiary", - "type": "AMMO", -- "name": { "str": ".50 BMG tracer, reloaded" }, -+ "name": { "str": ".50 BMG M17 tracer, reloaded" }, - "description": "A tracer variant of the powerful .50 BMG round. Tracer rounds help to keep the weapon they are fired from on target at the risk of igniting flammable substances. This one has been hand-reloaded.", - "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, - "extend": { "effects": [ "RECYCLED" ] }, -@@ -90,7 +90,7 @@ - "id": "reloaded_50ss", - "copy-from": "50ss", - "type": "AMMO", -- "name": { "str": ".50 BMG AP, reloaded" }, -+ "name": { "str": ".50 BMG M2 AP, reloaded" }, - "description": "Variant of the .50 BMG round that uses a core hardened steel. Penetration is increased, but damage is reduced. This one has been hand-reloaded.", - "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, - "extend": { "effects": [ "RECYCLED" ] }, ---- a/data/json/items/ammo/5x50.json -+++ b/data/json/items/ammo/5x50.json -@@ -38,7 +38,7 @@ - "id": "reloaded_5x50dart", - "copy-from": "5x50dart", - "type": "AMMO", -- "name": { "str": "5x50mm flechette, reloaded" }, -+ "name": { "str": "RA110 5x50mm flechette, reloaded" }, - "price_postapoc": 1200, - "description": "Designed to defeat modern body armor, the Rivtech 5x50mm flechette round features a biodegradable sabot and a single, fin-stabilized penetrator. This one has been hand-reloaded.", - "effects": [ "COOKOFF", "RECYCLED" ], ---- a/data/json/items/ammo/762x25.json -+++ b/data/json/items/ammo/762x25.json -@@ -68,7 +68,8 @@ - "id": "reloaded_762_25", - "copy-from": "762_25hot", - "type": "AMMO", -- "name": { "str": "7.62x25mm, reloaded" }, -- "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9, "armor_penetration": 0.9 }, "dispersion": 1.1 } -+ "name": { "str": "7.62x25mm FMJ, reloaded" }, -+ "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9, "armor_penetration": 0.9 }, "dispersion": 1.1 }, -+ "extend": { "effects": [ "RECYCLED" ] } - } - ] diff --git a/0004-tacoma-clinic-add-missing-floor.patch b/0004-tacoma-clinic-add-missing-floor.patch deleted file mode 100644 index 9accf88..0000000 --- a/0004-tacoma-clinic-add-missing-floor.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/data/json/npcs/tacoma_ranch/mission_mapgen_tacoma_commune.json -+++ b/data/json/npcs/tacoma_ranch/mission_mapgen_tacoma_commune.json -@@ -543,7 +543,7 @@ - "[......wwwwwww.....[", - "w......w.....w.....w", - "w..............tt..w", -- "[..... w.....w.....[", -+ "[......w.....w.....[", - "w......wwwwwww.....w", - "www++www wwwwwww", - " ", diff --git a/0005-lumbermill-gasoline-not-spilled.patch b/0005-lumbermill-gasoline-not-spilled.patch deleted file mode 100644 index 05e63ac..0000000 --- a/0005-lumbermill-gasoline-not-spilled.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/data/json/mapgen/lumbermill.json -+++ b/data/json/mapgen/lumbermill.json -@@ -51,7 +51,7 @@ - "v 2 __________________________________", - "v vvvvv *___________________________1 1 ____", - "v vooov______________________ ____ 121 1 v", -- "v voGoV_____________ #.......# ____ 1 1*1 1 1 v", -+ "v voooV_____________ #.......# ____ 1 1*1 1 1 v", - "v vooov_________ #L.....L#* ____* 1 1 1 2 v", - "v vvvvv ______ * *wL.....Lw ____1 1 1 1 *v", - "v 1____ 2 #L.....L# * ____1 1* 1 v", diff --git a/0006-community-garden-fertilizer-not-spilled.patch b/0006-community-garden-fertilizer-not-spilled.patch deleted file mode 100644 index dfc3d29..0000000 --- a/0006-community-garden-fertilizer-not-spilled.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/data/json/mapgen/garden_community.json -+++ b/data/json/mapgen/garden_community.json -@@ -141,10 +141,10 @@ - "|": "f_null" - }, - "place_liquids": [ -- { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 4, "y": 4 }, -- { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 4, "y": 5 }, -- { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 5, "y": 4 }, -- { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 5, "y": 5 } -+ { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 9, "y": 9 }, -+ { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 10, "y": 9 }, -+ { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 9, "y": 10 }, -+ { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 10, "y": 10 } - ], - "items": { "D": { "item": "hydro", "chance": 15 }, "#": { "item": "hydro", "chance": 15 } }, - "place_items": [ diff --git a/0008-npc-can-use-more-bionics.patch b/0008-npc-can-use-more-bionics.patch deleted file mode 100644 index d140ab1..0000000 --- a/0008-npc-can-use-more-bionics.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- a/data/json/bionics.json -+++ b/data/json/bionics.json -@@ -338,7 +338,7 @@ - "name": { "str": "Enhanced Hearing" }, - "description": "When this bionic is active, your hearing will be drastically improved, allowing you to hear ten times better than the average person. Additionally, high-intensity sounds will be automatically dampened before they can damage your hearing.", - "occupied_bodyparts": [ [ "head", 3 ] ], -- "flags": [ "BIONIC_TOGGLED" ], -+ "flags": [ "BIONIC_TOGGLED", "BIONIC_NPC_USABLE" ], - "included_bionics": [ "bio_earplugs" ] - }, - { -@@ -1200,6 +1200,6 @@ - "name": { "str": "Soporific Induction" }, - "description": "An electrode has been implanted into your brain's ventrolateral preoptic nucleus. It turns on whenever you're trying to fall asleep, creating an artificial but effective sensation of fatigue.", - "occupied_bodyparts": [ [ "head", 1 ] ], -- "flags": [ "BIONIC_TOGGLED" ] -+ "flags": [ "BIONIC_TOGGLED", "BIONIC_NPC_USABLE" ] - } - ] ---- a/data/json/items/bionics.json -+++ b/data/json/items/bionics.json -@@ -268,7 +268,7 @@ - }, - { - "id": "bio_ears", -- "copy-from": "bionic_general", -+ "copy-from": "bionic_general_npc_usable", - "type": "BIONIC_ITEM", - "name": { "str": "Enhanced Hearing CBM" }, - "looks_like": "bio_int_enhancer", -@@ -743,7 +743,7 @@ - }, - { - "id": "bio_fuel_cell_gasoline", -- "copy-from": "bionic_general", -+ "copy-from": "bionic_general_npc_usable", - "type": "BIONIC_ITEM", - "name": { "str": "Gasoline Fuel Cell CBM" }, - "looks_like": "bio_int_enhancer", -@@ -841,7 +841,7 @@ - }, - { - "id": "bio_surgical_razor", -- "copy-from": "bionic_general", -+ "copy-from": "bionic_general_npc_usable", - "type": "BIONIC_ITEM", - "name": { "str": "Autonomous Surgical Scalpels CBM" }, - "looks_like": "bio_int_enhancer", diff --git a/0009-22-casings-can-stack.patch b/0009-22-casings-can-stack.patch deleted file mode 100644 index e52b8bb..0000000 --- a/0009-22-casings-can-stack.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/data/json/items/generic/casing.json -+++ b/data/json/items/generic/casins.json -@@ -31,13 +31,11 @@ - }, - { - "id": "22_casing_new", -+ "copy-from": "casing", - "type": "GENERIC", -- "category": "spare_parts", - "price": 100, - "price_postapoc": 0, - "name": { "str": "unused .22 casing" }, -- "symbol": "=", -- "color": "yellow", - "description": "An unfired, like-new .22 round casing, with the primer still intact.", - "material": [ "powder", "brass" ], - "volume": "3 ml", diff --git a/0010-4570-dragon-can-be-dismantled.patch b/0010-4570-dragon-can-be-dismantled.patch deleted file mode 100644 index 219bfd6..0000000 --- a/0010-4570-dragon-can-be-dismantled.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- a/data/json/recipes/ammo/rifle.json -+++ b/data/json/recipes/ammo/rifle.json -@@ -385,6 +385,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 ] ], -@@ -406,6 +407,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 @@ - "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 @@ - "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 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "chem_black_powder", 12 ] ], [ [ "lead", 9 ] ] ] - }, ---- a/data/json/recipes/ammo/shot.json -+++ b/data/json/recipes/ammo/shot.json -@@ -62,6 +62,7 @@ - "batch_time_factors": [ 60, 5 ], - "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_shotgun", 3 ] ], - "charges": 1, -+ "reversible": true, - "using": [ [ "ammo_shot", 1 ] ], - "tools": [ [ [ "press", -1 ] ] ], - "components": [ [ [ "gunpowder", 3 ] ], [ [ "magnesium", 5 ] ] ] diff --git a/0011-add-missing-mre.patch b/0011-add-missing-mre.patch deleted file mode 100644 index f776e12..0000000 --- a/0011-add-missing-mre.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- a/data/json/itemgroups/Food/food.json -+++ b/data/json/itemgroups/Food/food.json -@@ -550,8 +550,10 @@ - { "item": "mre_cheesetort_box" }, - { "item": "mre_mushroomfettuccine_box" }, - { "item": "mre_mexicanchickenstew_box" }, -+ { "item": "mre_chickenburritobowl_box" }, - { "item": "mre_maplesausage_box" }, - { "item": "mre_ravioli_box" }, -+ { "item": "mre_pepperjackbeef_box" }, - { "item": "mre_hashbrownbacon_box" }, - { "item": "mre_lemontuna_box" }, - { "item": "mre_asianbeef_box" }, ---- a/data/json/npcs/items_generic.json -+++ b/data/json/npcs/items_generic.json -@@ -812,8 +812,10 @@ - [ "mre_cheesetort_box", 6 ], - [ "mre_mushroomfettuccine_box", 6 ], - [ "mre_mexicanchickenstew_box", 6 ], -+ [ "mre_chickenburritobowl_box", 6 ], - [ "mre_maplesausage_box", 6 ], - [ "mre_ravioli_box", 6 ], -+ [ "mre_pepperjackbeef_box", 6 ], - [ "mre_hashbrownbacon_box", 6 ], - [ "mre_lemontuna_box", 6 ], - [ "mre_asianbeef_box", 6 ], ---- a/data/json/npcs/NC_SOLDIER.json -+++ b/data/json/npcs/NC_SOLDIER.json -@@ -162,8 +162,10 @@ - { "item": "mre_cheesetort_box", "prob": 45 }, - { "item": "mre_mushroomfettuccine_box", "prob": 45 }, - { "item": "mre_mexicanchickenstew_box", "prob": 45 }, -+ { "item": "mre_chickenburritobowl_box", "prob": 45 }, - { "item": "mre_maplesausage_box", "prob": 45 }, - { "item": "mre_ravioli_box", "prob": 45 }, -+ { "item": "mre_pepperjackbeef_box", "prob": 45 }, - { "item": "mre_hashbrownbacon_box", "prob": 45 }, - { "item": "mre_lemontuna_box", "prob": 45 }, - { "item": "mre_asianbeef_box", "prob": 45 }, diff --git a/0012-fix-doors-for-npcs.patch b/0012-fix-doors-for-npcs.patch deleted file mode 100644 index 54f1f47..0000000 --- a/0012-fix-doors-for-npcs.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/data/json/furniture_and_terrain/terrain-fences-gates.json -+++ b/data/json/furniture_and_terrain/terrain-fences-gates.json -@@ -243,7 +243,7 @@ - "color": "brown", - "looks_like": "t_chickenwire_gate_o", - "move_cost": 2, -- "flags": [ "TRANSPARENT", "DOOR", "PERMEABLE", "BURROWABLE", "CONNECT_TO_WALL" ], -+ "flags": [ "TRANSPARENT", "PERMEABLE", "BURROWABLE", "CONNECT_TO_WALL" ], - "close": "t_screen_door_c", - "deconstruct": { - "ter_set": "t_floor", -@@ -732,7 +732,7 @@ - "looks_like": "t_fencegate_o", - "move_cost": 1, - "coverage": 60, -- "flags": [ "TRANSPARENT", "DOOR", "BURROWABLE", "FLAT", "ROAD" ], -+ "flags": [ "TRANSPARENT", "BURROWABLE", "FLAT", "ROAD" ], - "connects_to": "WOODFENCE", - "close": "t_gate_metal_c", - "deconstruct": { diff --git a/0013-fix-20x66mm-loudness.patch b/0013-fix-20x66mm-loudness.patch deleted file mode 100644 index c9128cd..0000000 --- a/0013-fix-20x66mm-loudness.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/data/json/items/ammo/20x66mm.json -+++ b/data/json/items/ammo/20x66mm.json -@@ -124,6 +124,7 @@ - "range": 12, - "damage": 60, - "recoil": 2500, -+ "loudness": 160, - "effects": [ "COOKOFF", "SHOT", "NEVER_MISFIRES" ] - }, - { diff --git a/0014-portable-generator-engine.patch b/0014-portable-generator-engine.patch deleted file mode 100644 index 70e1c2d..0000000 --- a/0014-portable-generator-engine.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/data/json/vehicles/utility.json -+++ b/data/json/vehicles/utility.json -@@ -120,7 +120,7 @@ - "parts": [ - { "x": 0, "y": 0, "part": "frame_cover" }, - { "x": 0, "y": 0, "part": "small_storage_battery" }, -- { "x": 0, "y": 0, "part": "engine_vtwin" }, -+ { "x": 0, "y": 0, "part": "engine_1cyl_large" }, - { "x": 0, "y": 0, "part": "generator_7500w" }, - { "x": 0, "y": 0, "parts": [ "wheel_mount_light", "wheel_small" ] }, - { "x": 1, "y": 0, "part": "frame_cover" }, diff --git a/0015-normalize-drone-volume.patch b/0015-normalize-drone-volume.patch deleted file mode 100644 index a45ebf0..0000000 --- a/0015-normalize-drone-volume.patch +++ /dev/null @@ -1,56 +0,0 @@ ---- a/data/json/items/corpses/inactive_bots.json -+++ b/data/json/items/corpses/inactive_bots.json -@@ -5,7 +5,7 @@ - "name": { "str": "inactive EMP hack" }, - "description": "This is an inactive EMP hack. EMP hacks are fist-sized robots that fly through the air. This one contains an EMP grenade and attacks by flying at its target and detonating. Use this item to reprogram and release the EMP hack. Electronics and computer skill determines if the targeting matrix is reprogrammed successfully.", - "weight": "4700 g", -- "volume": "750 ml", -+ "volume": "250 ml", - "price": 64500, - "to_hit": -3, - "bashing": 6, -@@ -31,7 +31,7 @@ - "name": { "str": "inactive C-4 hack" }, - "description": "This is an inactive C-4 hack. C-4 hacks are fist-sized robots that fly through the air. This one contains some C-4 and attacks by flying at its target and detonating. Use this item to reprogram and activate the C-4 hack. Electronics and computer skill determines if the targeting matrix is reprogrammed successfully.", - "weight": "5870 g", -- "volume": "250 ml", -+ "volume": "1000 ml", - "price": 67500, - "to_hit": -3, - "bashing": 6, -@@ -57,7 +57,7 @@ - "name": { "str": "inactive flashbang hack" }, - "description": "This is an inactive flashbang hack. Flashbang hacks are fist-sized robots that fly through the air. This one contains a flashbang and attacks by flying at its target and detonating. Use this item to reprogram and activate the flashbang hack. Electronics and computer skill determines if the targeting matrix is reprogrammed successfully.", - "weight": "4536 g", -- "volume": "750 ml", -+ "volume": "250 ml", - "price": 59500, - "to_hit": -3, - "bashing": 6, -@@ -83,7 +83,7 @@ - "name": { "str": "inactive tear gas hack" }, - "description": "This is an inactive tear gas hack. Tear gas hacks are fist-sized robots that fly through the air. This one contains a tear gas canister and attacks by flying at its target and releasing tear gas. Use this item to reprogram and activate the tear gas hack. Electronics and computer skill determines if the targeting matrix is reprogrammed successfully.", - "weight": "5360 g", -- "volume": "750 ml", -+ "volume": "250 ml", - "price": 60500, - "to_hit": -3, - "bashing": 6, -@@ -179,7 +179,7 @@ - "name": { "str": "inactive manhack" }, - "description": "This is an inactive manhack. Manhacks are fist-sized robots that fly through the air. They are covered with whirring blades and attack by throwing themselves against their target. Use this item to reprogram and activate the manhack. Electronics and computer skill determines if the targeting matrix is reprogrammed successfully.", - "weight": "5400 g", -- "volume": "750 ml", -+ "volume": "250 ml", - "price": 60000, - "to_hit": -3, - "bashing": 6, -@@ -205,7 +205,7 @@ - "name": { "str": "inactive mininuke hack" }, - "description": "This is an inactive mininuke hack. Many times as large as a normal manhack, a mininuke hack contains a mininuke and attack by flying at their target and detonating. Use this item to reprogram and activate the mininuke hack. Electronics and computer skill determines if the targeting matrix is reprogrammed successfully.", - "weight": "25000 g", -- "volume": "18750 ml", -+ "volume": "16000 ml", - "price": 2677500, - "to_hit": -3, - "bashing": 6, diff --git a/0016-medical-zombies-called-zombies.patch b/0016-medical-zombies-called-zombies.patch deleted file mode 100644 index a4b469a..0000000 --- a/0016-medical-zombies-called-zombies.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/data/json/monsters/zed_medical.json -+++ b/data/json/monsters/zed_medical.json -@@ -2,7 +2,7 @@ - { - "id": "mon_zombie_nurse", - "type": "MONSTER", -- "name": { "str": "nurse" }, -+ "name": { "str": "zombie nurse" }, - "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", - "type": "MONSTER", - "copy-from": "mon_zombie_nurse", - "delete": { "categories": [ "CLASSIC" ] }, -- "name": { "str": "surgeon" }, -+ "name": { "str": "zombie surgeon" }, - "description": "A dripping stinger where one hand would be, a set of razor-like claws in place of the other one. This zombie's cold, focused eyes look down at you from above a \"mask\" of melded flesh.", - "default_faction": "zombie", - "hp": 150, -@@ -58,7 +58,7 @@ - "id": "mon_zombie_vivisector", - "type": "MONSTER", - "copy-from": "mon_zombie_surgeon", -- "name": { "str": "vivisector" }, -+ "name": { "str": "zombie vivisector" }, - "description": "This humanoid has a long bone \"syringe\" in place of one forearm, a large saw as the opposing hand, and a pair of digitigrade legs ending in raptor-like feet. Its head is featureless, except for its \"human\" eyes, which smile with inhuman malice and scorn.", - "default_faction": "zombie", - "color": "light_green_white", diff --git a/0017-nerf-lightstep.patch b/0017-nerf-lightstep.patch deleted file mode 100644 index 8fa46cd..0000000 --- a/0017-nerf-lightstep.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/data/json/mutations/mutations.json -+++ b/data/json/mutations/mutations.json -@@ -507,11 +507,11 @@ - "id": "LIGHTSTEP", - "name": { "str": "Light Step" }, - "points": 1, -- "description": "You make no noise while walking.", -+ "description": "You make less noise while walking.", - "starting_trait": true, - "category": [ "BIRD", "ELFA", "FELINE" ], - "cancels": [ "CLUMSY" ], -- "noise_modifier": 0.0 -+ "noise_modifier": 0.4 - }, - { - "type": "mutation", diff --git a/0018-rehide-redacted.patch b/0018-rehide-redacted.patch deleted file mode 100644 index 6dacdbf..0000000 --- a/0018-rehide-redacted.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/data/json/overmap/overmap_terrain/overmap_terrain_lab.json -+++ b/data/json/overmap/overmap_terrain/overmap_terrain_lab.json -@@ -168,9 +168,9 @@ - { - "type": "overmap_terrain", - "id": "central_lab_entrance", -- "name": "access shaft", -- "sym": "0", -- "color": "light_gray", -+ "name": "forest", -+ "sym": "F", -+ "color": "green", - "see_cost": 3, - "flags": [ "NO_ROTATE", "RISK_HIGH" ] - }, diff --git a/0019-derelict-shed-is-s.patch b/0019-derelict-shed-is-s.patch deleted file mode 100644 index d97550c..0000000 --- a/0019-derelict-shed-is-s.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/data/json/overmap/map_extras.json -+++ b/data/json/overmap/map_extras.json -@@ -256,6 +256,7 @@ - "name": "Derelict shed", - "description": "A collapsed shed.", - "generator": { "generator_method": "update_mapgen", "generator_id": "mx_fallen_shed_map" }, -+ "sym": "s", - "color": "brown", - "autonote": true - }, diff --git a/0020-hk46-is-milspec.patch b/0020-hk46-is-milspec.patch deleted file mode 100644 index 3df910d..0000000 --- a/0020-hk46-is-milspec.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/data/json/itemgroups/Weapons_Mods_Ammo/magazines.json -+++ b/data/json/itemgroups/Weapons_Mods_Ammo/magazines.json -@@ -69,7 +69,6 @@ - [ "fn57mag", 15 ], - [ "glockmag", 40 ], - [ "glock40mag", 30 ], -- [ "hk46mag", 5 ], - [ "m9mag", 5 ], - [ "mp5mag", 10 ], - [ "sig40mag", 20 ], -@@ -92,7 +91,6 @@ - [ "fnp90mag", 20 ], - [ "glockbigmag", 10 ], - [ "glock40bigmag", 10 ], -- [ "hk46bigmag", 5 ], - [ "m9bigmag", 10 ], - [ "mp5bigmag", 20 ], - [ "stanag30", 20 ], diff --git a/0021-foldable-bottle-is-container.patch b/0021-foldable-bottle-is-container.patch deleted file mode 100644 index 95b3d0f..0000000 --- a/0021-foldable-bottle-is-container.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/data/json/items/tool/container.json -+++ b/data/json/items/tool/container.json -@@ -2,7 +2,7 @@ - { - "id": "bottle_metal", - "type": "CONTAINER", -- "category": "other", -+ "category": "container", - "name": { "str": "steel bottle" }, - "description": "A stainless steel water bottle, holds 750ml of liquid.", - "weight": "200 g", -@@ -22,7 +22,7 @@ - { - "id": "bottle_folding", - "type": "CONTAINER", -- "category": "other", -+ "category": "container", - "name": { "str": "foldable plastic bottle" }, - "description": "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid.", - "weight": "13 g", diff --git a/0022-fix-evac3-background-visible.patch b/0022-fix-evac3-background-visible.patch deleted file mode 100644 index 7c61c9e..0000000 --- a/0022-fix-evac3-background-visible.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/data/json/npcs/BG_traits.json -+++ b/data/json/npcs/BG_traits.json -@@ -153,6 +153,7 @@ - "name": { "str": "Survivor Story" }, - "points": 0, - "description": "This NPC could tell you about how they survived the Cataclysm", -+ "player_display": false, - "valid": false, - "purifiable": false, - "types": [ "BACKGROUND_SURVIVAL_STORY" ], diff --git a/0023-fix-rubbersplosion.patch b/0023-fix-rubbersplosion.patch deleted file mode 100644 index ef06b41..0000000 --- a/0023-fix-rubbersplosion.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/data/json/items/ammo.json -+++ b/data/json/items/ammo.json -@@ -686,7 +686,7 @@ - "count": 25 - }, - { -- "type": "AMMO", -+ "type": "TOOL", - "id": "chunk_rubber", - "category": "spare_parts", - "price": 75, -@@ -697,7 +697,6 @@ - "material": "rubber", - "volume": "250 ml", - "weight": "38 g", -- "ammo_type": "components", - "flags": [ "NO_SALVAGE" ] - }, - { diff --git a/0024-ammo-order-fix.patch b/0024-ammo-order-fix.patch deleted file mode 100644 index 96032ec..0000000 --- a/0024-ammo-order-fix.patch +++ /dev/null @@ -1,203 +0,0 @@ ---- a/data/json/items/ammo/22.json -+++ b/data/json/items/ammo/22.json -@@ -1,16 +1,5 @@ - [ - { -- "id": "22_cphp", -- "copy-from": "22_lr", -- "type": "AMMO", -- "name": { "str": ".22 CPHP" }, -- "description": ".22 Long Rifle ammunition with 30gr copper-plated, hollow-point bullets. Has a higher velocity and slightly more stopping power than lead round-nose ammunition, but armor will have a magnified effect on its already-low penetration.", -- "//": "Hollowpoint damage increase of 25%", -- "damage": { "damage_type": "stab", "amount": 20, "armor_penetration": 0 }, -- "relative": { "range": 3 }, -- "proportional": { "recoil": 1.5 } -- }, -- { - "id": "22_lr", - "type": "AMMO", - "name": { "str": ".22 LR" }, -@@ -35,6 +24,17 @@ - "effects": [ "COOKOFF" ] - }, - { -+ "id": "22_cphp", -+ "copy-from": "22_lr", -+ "type": "AMMO", -+ "name": { "str": ".22 CPHP" }, -+ "description": ".22 Long Rifle ammunition with 30gr copper-plated, hollow-point bullets. Has a higher velocity and slightly more stopping power than lead round-nose ammunition, but armor will have a magnified effect on its already-low penetration.", -+ "//": "Hollowpoint damage increase of 25%", -+ "damage": { "damage_type": "stab", "amount": 20, "armor_penetration": 0 }, -+ "relative": { "range": 3 }, -+ "proportional": { "recoil": 1.5 } -+ }, -+ { - "id": "22_ratshot", - "copy-from": "22_cphp", - "type": "AMMO", ---- a/data/json/items/ammo/38.json -+++ b/data/json/items/ammo/38.json -@@ -1,14 +1,5 @@ - [ - { -- "id": "38_fmj", -- "copy-from": "38_special", -- "type": "AMMO", -- "name": { "str": ".38 FMJ" }, -- "description": ".38 Special ammunition with brass jacketed 130gr bullets. The .38 Special round has been known from its inception for its accuracy and low recoil.", -- "//": "Base damage of 20, balance increase of two-nineths.", -- "relative": { "damage": { "damage_type": "stab", "amount": -6, "armor_penetration": 14 } } -- }, -- { - "id": "38_special", - "type": "AMMO", - "name": { "str": ".38 Special" }, -@@ -33,6 +24,15 @@ - "effects": [ "COOKOFF" ] - }, - { -+ "id": "38_fmj", -+ "copy-from": "38_special", -+ "type": "AMMO", -+ "name": { "str": ".38 FMJ" }, -+ "description": ".38 Special ammunition with brass jacketed 130gr bullets. The .38 Special round has been known from its inception for its accuracy and low recoil.", -+ "//": "Base damage of 20, balance increase of two-nineths.", -+ "relative": { "damage": { "damage_type": "stab", "amount": -6, "armor_penetration": 14 } } -+ }, -+ { - "id": "reloaded_38_fmj", - "copy-from": "38_fmj", - "type": "AMMO", ---- a/data/json/items/ammo/40.json -+++ b/data/json/items/ammo/40.json -@@ -1,14 +1,5 @@ - [ - { -- "id": "40fmj", -- "copy-from": "40sw", -- "type": "AMMO", -- "name": { "str": ".40 S&W FMJ" }, -- "description": ".40 S&W ammunition with 180gr FMJ bullets. Designed to retain the 10mm Auto cartridge's power with lower recoil, the .40 S&W round became popular for law enforcement and personal defense.", -- "//": "Base damage of 23, balance increase of two-nineths.", -- "relative": { "damage": { "damage_type": "stab", "amount": -7, "armor_penetration": 16 } } -- }, -- { - "id": "40sw", - "type": "AMMO", - "name": { "str": ".40 S&W JHP" }, -@@ -33,6 +24,15 @@ - "effects": [ "COOKOFF" ] - }, - { -+ "id": "40fmj", -+ "copy-from": "40sw", -+ "type": "AMMO", -+ "name": { "str": ".40 S&W FMJ" }, -+ "description": ".40 S&W ammunition with 180gr FMJ bullets. Designed to retain the 10mm Auto cartridge's power with lower recoil, the .40 S&W round became popular for law enforcement and personal defense.", -+ "//": "Base damage of 23, balance increase of two-nineths.", -+ "relative": { "damage": { "damage_type": "stab", "amount": -7, "armor_penetration": 16 } } -+ }, -+ { - "id": "bp_40fmj", - "copy-from": "40fmj", - "type": "AMMO", ---- a/data/json/items/ammo/45.json -+++ b/data/json/items/ammo/45.json -@@ -1,14 +1,5 @@ - [ - { -- "id": "45_acp", -- "copy-from": "45_jhp", -- "type": "AMMO", -- "name": { "str": ".45 ACP FMJ" }, -- "description": ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, the .45 ACP round has been common for almost 150 years.", -- "//": "Base damage of 27, balance increase of two-nineths.", -- "relative": { "damage": { "damage_type": "stab", "amount": -8, "armor_penetration": 18 } } -- }, -- { - "id": "45_jhp", - "type": "AMMO", - "name": { "str": ".45 ACP JHP" }, -@@ -32,6 +23,15 @@ - "effects": [ "COOKOFF" ] - }, - { -+ "id": "45_acp", -+ "copy-from": "45_jhp", -+ "type": "AMMO", -+ "name": { "str": ".45 ACP FMJ" }, -+ "description": ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, the .45 ACP round has been common for almost 150 years.", -+ "//": "Base damage of 27, balance increase of two-nineths.", -+ "relative": { "damage": { "damage_type": "stab", "amount": -8, "armor_penetration": 18 } } -+ }, -+ { - "id": "45_super", - "copy-from": "45_jhp", - "type": "AMMO", ---- a/data/json/items/ammo/460.json -+++ b/data/json/items/ammo/460.json -@@ -1,13 +1,5 @@ - [ - { -- "id": "460_fmj", -- "copy-from": "460_rowland", -- "type": "AMMO", -- "name": { "str": ".460 Rowland HCFN" }, -- "description": "A plated, hard cast flat nosed variant of the .460 Rowland round. This increases penetration slightly at the cost of reduced damage from expansion.", -- "relative": { "damage": { "damage_type": "stab", "amount": -4, "armor_penetration": 8 } } -- }, -- { - "id": "460_rowland", - "copy-from": "44magnum", - "type": "AMMO", -@@ -18,6 +10,14 @@ - "proportional": { "range": 0.95, "damage": { "damage_type": "stab", "amount": 0.95, "armor_penetration": 0.95 }, "recoil": 0.95 } - }, - { -+ "id": "460_fmj", -+ "copy-from": "460_rowland", -+ "type": "AMMO", -+ "name": { "str": ".460 Rowland HCFN" }, -+ "description": "A plated, hard cast flat nosed variant of the .460 Rowland round. This increases penetration slightly at the cost of reduced damage from expansion.", -+ "relative": { "damage": { "damage_type": "stab", "amount": -4, "armor_penetration": 8 } } -+ }, -+ { - "id": "bp_460_fmj", - "copy-from": "460_fmj", - "type": "AMMO", - ---- a/data/json/items/ammo/50.json -+++ b/data/json/items/ammo/50.json -@@ -1,15 +1,5 @@ - [ - { -- "id": "50_incendiary", -- "copy-from": "50bmg", -- "type": "AMMO", -- "name": { "str": ".50 BMG M17 tracer" }, -- "description": "A tracer variant of the powerful .50 BMG round. Tracer rounds help to keep the weapon they are fired from on target at the risk of igniting flammable substances.", -- "count": 10, -- "effects": [ "INCENDIARY" ], -- "dispersion": 310 -- }, -- { - "id": "50bmg", - "type": "AMMO", - "name": { "str": ".50 BMG M33 Ball" }, -@@ -33,6 +23,16 @@ - "effects": [ "COOKOFF", "NEVER_MISFIRES" ] - }, - { -+ "id": "50_incendiary", -+ "copy-from": "50bmg", -+ "type": "AMMO", -+ "name": { "str": ".50 BMG M17 tracer" }, -+ "description": "A tracer variant of the powerful .50 BMG round. Tracer rounds help to keep the weapon they are fired from on target at the risk of igniting flammable substances.", -+ "count": 10, -+ "effects": [ "INCENDIARY" ], -+ "dispersion": 310 -+ }, -+ { - "id": "50match", - "copy-from": "50bmg", - "type": "AMMO", diff --git a/0026-fix-brioche-cooking-time.patch b/0026-fix-brioche-cooking-time.patch deleted file mode 100644 index 3c00e1d..0000000 --- a/0026-fix-brioche-cooking-time.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/data/json/recipes/food/bread.json -+++ b/data/json/recipes/food/bread.json -@@ -5008,6 +5008,7 @@ - "subcategory": "CSC_FOOD_BREAD", - "skill_used": "cooking", - "difficulty": 3, -+ "time": "20 m", - "batch_time_factors": [ 50, 3 ], - "book_learn": [ [ "baking_book", 3 ], [ "cookbook_daintydishes", 5 ] ], - "qualities": [ { "id": "COOK", "level": 3 } ], diff --git a/0027-fix-missing-ammo-frag-effects.patch b/0027-fix-missing-ammo-frag-effects.patch deleted file mode 100644 index 6bb1c78..0000000 --- a/0027-fix-missing-ammo-frag-effects.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/json/items/ammo/shot.json -+++ b/data/json/items/ammo/shot.json -@@ -172,7 +172,7 @@ - "flags": [ "IRREPLACEABLE_CONSUMABLE" ], - "count": 5, - "damage": { "damage_type": "stab", "amount": 10, "armor_penetration": 0 }, -- "extend": { "effects": [ "EXPLOSIVE_HESHOT" ] } -+ "extend": { "effects": [ "EXPLOSIVE_TINY" ] } - }, - { - "id": "shot_scrap", ---- a/data/json/items/ammo/50.json -+++ b/data/json/items/ammo/50.json -@@ -61,7 +61,7 @@ - "price_postapoc": 7500, - "flags": [ "IRREPLACEABLE_CONSUMABLE" ], - "description": "This variant of the .50 BMG round makes the most of the caliber's potential payload delivery: the tip is loaded with an incendiary mix, which ignites on impact, detonating the RDX or PETN charge. This also ignites a secondary zirconium powder incendiary charge that surrounds a tungsten carbide penetrator, both encased by a mild steel cup. Fragments from the cup and burning metallic powder follow the penetrator through armored targets, increasing lethality. These rare, complicated, and expensive rounds are not likely to be manufactured again; use them wisely.", -- "effects": [ "INCENDIARY", "EXPLOSIVE_RAUFOSS" ], -+ "effects": [ "INCENDIARY", "FRAG_SMALL" ], - "//": "mk 211 is estimated to be as effective as 20mm, which would have 65kJ energy, or 255 damage. ~181 damage is fair.", - "relative": { "damage": { "damage_type": "stab", "amount": 50, "armor_penetration": 20 } }, - "dispersion": 100 diff --git a/0028-fix-food-materials.patch b/0028-fix-food-materials.patch deleted file mode 100644 index 5c27629..0000000 --- a/0028-fix-food-materials.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- a/data/json/items/comestibles/drink.json -+++ b/data/json/items/comestibles/drink.json -@@ -39,7 +39,8 @@ - "description": "Milk some almonds? Not quite, but blend them with water, yes! A dairy-free alternative strong in calcium! Rival to soy milk.", - "price": 40, - "price_postapoc": 50, -- "material": "water", -+ "material": "nut", -+ "primary_material": "water", - "volume": "250 ml", - "phase": "liquid", - "vitamins": [ [ "vitA", 2 ], [ "calcium", 11 ] ], -@@ -62,7 +63,8 @@ - "description": "Milk some soybeans? Not quite, but blend them with water, yes! A dairy-free alternative strong in protein! Rival to almond milk.", - "price": 40, - "price_postapoc": 50, -- "material": "water", -+ "material": "veggy", -+ "primary_material": "water", - "volume": "250 ml", - "phase": "liquid", - "vitamins": [ [ "vitA", 2 ], [ "iron", 1 ], [ "calcium", 7 ] ], ---- a/data/json/items/comestibles/drink_other.json -+++ a/data/json/items/comestibles/drink_other.json -@@ -146,6 +146,7 @@ - "volume": "250 ml", - "comestible_type": "DRINK", - "container": "jar_glass_sealed", -+ "material": [ "nut", "junk" ], - "primary_material": "junk", - "quench": -2, - "calories": 190, ---- a/data/json/items/comestibles/other.json -+++ b/data/json/items/comestibles/other.json -@@ -80,6 +80,7 @@ - "description": "A translucent hexagonal chunk of wax, filled with dense, milky jelly. Though some hold it as a panacea, it doesn't have any medical benefit. Still, it is delicious, and rich with the most beneficial substances the hive can produce.", - "price": 20000, - "price_postapoc": 4000, -+ "material": "honey", - "volume": "250 ml", - "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], - "fun": 7 diff --git a/0029-fix-survivor-fingerless-gloves-warmth.patch b/0029-fix-survivor-fingerless-gloves-warmth.patch deleted file mode 100644 index bc0b904..0000000 --- a/0029-fix-survivor-fingerless-gloves-warmth.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/data/json/items/armor/gloves.json -+++ b/data/json/items/armor/gloves.json -@@ -447,7 +447,7 @@ - "covers": [ "HANDS" ], - "coverage": 85, - "encumbrance": 8, -- "warmth": 12, -+ "warmth": 15, - "material_thickness": 3, - "environmental_protection": 3, - "flags": [ "VARSIZE", "WATERPROOF", "STURDY", "ALLOWS_NATURAL_ATTACKS" ] diff --git a/0031-vacutainer-is-not-a-weapon.patch b/0031-vacutainer-is-not-a-weapon.patch deleted file mode 100644 index 5560e6f..0000000 --- a/0031-vacutainer-is-not-a-weapon.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/data/json/items/tool/med.json -+++ b/data/json/items/tool/med.json -@@ -174,7 +174,8 @@ - }, - { - "id": "vacutainer", -- "type": "CONTAINER", -+ "type": "TOOL", -+ "category": "tools", - "name": { "str": "blood draw kit" }, - "description": "This is a kit for drawing blood, including a test tube for holding the sample. Use this tool to draw blood, either from yourself or from a corpse you are standing on.", - "weight": "13 g", diff --git a/0032-shears-use-light-battery.patch b/0032-shears-use-light-battery.patch deleted file mode 100644 index e0a0d95..0000000 --- a/0032-shears-use-light-battery.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- a/data/json/items/tool/pets.json -+++ b/data/json/items/tool/pets.json -@@ -68,9 +68,22 @@ - "color": "dark_gray", - "qualities": [ [ "SHEAR", 3 ] ], - "ammo": "battery", -- "initial_charges": 100, -- "max_charges": 100, -- "charges_per_use": 25 -+ "charges_per_use": 25, -+ "magazines": [ -+ [ -+ "battery", -+ [ -+ "light_minus_battery_cell", -+ "light_battery_cell", -+ "light_plus_battery_cell", -+ "light_atomic_battery_cell", -+ "light_minus_atomic_battery_cell", -+ "light_minus_disposable_cell", -+ "light_disposable_cell" -+ ] -+ ] -+ ], -+ "magazine_well": 1 - }, - { - "id": "horse_tack", diff --git a/0033-add-missing-price-postapoc.patch b/0033-add-missing-price-postapoc.patch deleted file mode 100644 index 0770483..0000000 --- a/0033-add-missing-price-postapoc.patch +++ /dev/null @@ -1,143 +0,0 @@ ---- a/data/json/items/gun/223.json -+++ b/data/json/items/gun/223.json -@@ -118,7 +118,8 @@ - "description": "A bullpup assault rifle that was used by French armed forces only until recently. While the FAMAS was famous for its high fire rate, the MAS .223 is a semi-auto only variation imported to the US in the late eighties. It retains the integral bipod, though.", - "weight": "3800 g", - "volume": "4162 ml", -- "price": 2800000, -+ "price": 240000, -+ "price_postapoc": 5000, - "to_hit": -1, - "bashing": 12, - "material": [ "steel", "plastic" ], -@@ -302,7 +303,8 @@ - ] - ] - ], -- "relative": { "ranged_damage": { "damage_type": "stab", "amount": 1 }, "durability": 1 } -+ "relative": { "ranged_damage": { "damage_type": "stab", "amount": 1 }, "durability": 1 }, -+ "proportional": { "price": 1.1 } - }, - { - "id": "m4a1", - ---- a/data/json/items/gun/40.json -+++ b/data/json/items/gun/40.json -@@ -9,6 +9,7 @@ - "weight": "921 g", - "volume": "518 ml", - "price": 65000, -+ "price_postapoc": 1600, - "to_hit": -2, - "bashing": 8, - "material": [ "steel", "plastic" ], -@@ -73,6 +74,7 @@ - "weight": "785 g", - "volume": "505 ml", - "price": 65000, -+ "price_postapoc": 1600, - "to_hit": -2, - "bashing": 8, - "material": [ "plastic", "steel" ], - ---- a/data/json/items/gun/9mm.json -+++ b/data/json/items/gun/9mm.json -@@ -9,6 +9,7 @@ - "weight": "921 g", - "volume": "518 ml", - "price": 65000, -+ "price_postapoc": 1600, - "to_hit": -2, - "bashing": 8, - "material": [ "steel", "plastic" ], -@@ -360,6 +361,7 @@ - "weight": "785 g", - "volume": "505 ml", - "price": 65000, -+ "price_postapoc": 1750, - "to_hit": -2, - "bashing": 8, - "material": [ "plastic", "steel" ], - ---- a/data/json/items/magazine/223.json -+++ b/data/json/items/magazine/223.json -@@ -128,6 +128,7 @@ - "weight": "88 g", - "volume": "50 ml", - "price": 4000, -+ "price_postapoc": 125, - "material": "steel", - "symbol": "#", - "color": "light_gray", -@@ -145,6 +146,7 @@ - "weight": "91 g", - "volume": "350 ml", - "price": 4000, -+ "price_postapoc": 125, - "material": "steel", - "symbol": "#", - "color": "light_gray", -@@ -180,6 +182,7 @@ - "weight": "181 g", - "volume": "600 ml", - "price": 8500, -+ "price_postapoc": 275, - "material": [ "plastic", "steel" ], - "symbol": "#", - "color": "light_gray", -@@ -218,6 +221,7 @@ - "weight": "181 g", - "volume": "800 ml", - "price": 12000, -+ "price_postapoc": 750, - "material": "aluminum", - "symbol": "#", - "color": "light_gray", -@@ -235,6 +239,7 @@ - "weight": "581 g", - "volume": "1050 ml", - "price": 9250, -+ "price_postapoc": 550, - "to_hit": -2, - "bashing": 4, - "material": [ "steel", "plastic" ], -@@ -255,6 +260,7 @@ - "weight": "567 g", - "volume": "1500 ml", - "price": 9500, -+ "price_postapoc": 600, - "to_hit": -2, - "bashing": 4, - "material": [ "plastic", "steel" ], -@@ -275,6 +281,7 @@ - "weight": "272 g", - "volume": "1 L", - "price": 15000, -+ "price_postapoc": 900, - "material": "aluminum", - "symbol": "#", - "color": "light_gray", -@@ -292,6 +299,7 @@ - "weight": "998 g", - "volume": "1200 ml", - "price": 14000, -+ "price_postapoc": 850, - "material": [ "plastic", "steel" ], - "symbol": "#", - "color": "light_gray", -@@ -310,6 +318,7 @@ - "weight": "2220 g", - "volume": "1700 ml", - "price": 18000, -+ "price_postapoc": 1000, - "material": [ "plastic", "steel" ], - "symbol": "#", - "color": "light_gray", -@@ -366,6 +375,7 @@ - "weight": "190 g", - "volume": "620 ml", - "price": 8600, -+ "price_postapoc": 275, - "material": [ "steel", "plastic" ], - "symbol": "#", - "color": "light_gray", diff --git a/0034-fix-reloaded-50bmg.patch b/0034-fix-reloaded-50bmg.patch deleted file mode 100644 index cbab4e1..0000000 --- a/0034-fix-reloaded-50bmg.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/data/json/items/ammo/50.json -+++ b/data/json/items/ammo/50.json -@@ -78,10 +78,10 @@ - }, - { - "id": "reloaded_50bmg", -- "copy-from": "50match", -+ "copy-from": "50bmg", - "type": "AMMO", - "name": { "str": ".50 BMG Match, reloaded" }, -- "description": ".50 BMG ammunition with lead-cored FMJ bullets. The .50 BMG is a very powerful rifle round designed for anti-aircraft use, later adapted to anti-vehicular and anti-personnel roles. Its stupendous energy and armor piercing capabilities make it one of the most deadly rounds available, offset only by its drastic recoil and noise.", -+ "description": ".50 BMG ammunition with lead-cored FMJ bullets. The .50 BMG is a very powerful rifle round designed for anti-aircraft use, later adapted to anti-vehicular and anti-personnel roles. Its stupendous energy and armor piercing capabilities make it one of the most deadly rounds available, offset only by its drastic recoil and noise. This one has been hand-reloaded.", - "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, - "extend": { "effects": [ "RECYCLED" ] }, - "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] } diff --git a/PKGBUILD b/PKGBUILD index f70d245..b005242 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -13,9 +13,9 @@ pkgbase=cataclysm-bn pkgname=(cataclysm-bn cataclysm-bn-tiles) pkgname=cataclysm-bn _pkgname=Cataclysm-BN-cbn-experimental -pkgver=202110161440 -_pkgver=2021-10-16-1440 -pkgrel=2 +pkgver=202110291727 +_pkgver=2021-10-29-1727 +pkgrel=1 pkgdesc="A post-apocalyptic roguelike." #url="http://cataclysmrl.blogspot.com/" #url="http://www.cataclysm.glyphgryph.com/" @@ -30,42 +30,53 @@ source=("$pkgname-$_pkgver.tar.gz::https://github.com/cataclysmbnteam/Cataclysm- "cataclysm-bn-tiles.desktop" "icon_128x128.png" - "0.F_backport-tacoma-barn-door-position.patch" - "0.F_backport-make-firestation-shelter-wells-npc-drinkable.patch" - "0.F_backport-radio-can-use-ups.patch" - - "0001-quiverfull-house-correct-stairs.patch" - "0002-ankle-ammo-pouch-is-not-a-backpack.patch" - "0003-inconsistent-ammo-names.patch" - "0004-tacoma-clinic-add-missing-floor.patch" - "0005-lumbermill-gasoline-not-spilled.patch" - "0006-community-garden-fertilizer-not-spilled.patch" - "0008-npc-can-use-more-bionics.patch" - "0009-22-casings-can-stack.patch" - "0010-4570-dragon-can-be-dismantled.patch" - "0011-add-missing-mre.patch" - "0012-fix-doors-for-npcs.patch" - "0013-fix-20x66mm-loudness.patch" - "0014-portable-generator-engine.patch" - "0015-normalize-drone-volume.patch" - "0016-medical-zombies-called-zombies.patch" - "0017-nerf-lightstep.patch" - "0018-rehide-redacted.patch" - "0019-derelict-shed-is-s.patch" - "0020-hk46-is-milspec.patch" - "0021-foldable-bottle-is-container.patch" - "0022-fix-evac3-background-visible.patch" - "0023-fix-rubbersplosion.patch" - "0024-ammo-order-fix.patch" - "0026-fix-brioche-cooking-time.patch" - "0027-fix-missing-ammo-frag-effects.patch" - "0028-fix-food-materials.patch" - "0029-fix-survivor-fingerless-gloves-warmth.patch" - "0031-vacutainer-is-not-a-weapon.patch" - "0032-shears-use-light-battery.patch" - "0033-add-missing-price-postapoc.patch" - "0034-fix-reloaded-50bmg.patch" + "ammo-01_inconsistent-ammo-names.patch" + "ammo-02_fix-20x66mm-loudness.patch" + "ammo-03_fix-reloaded-50bmg.patch" + "ammo-04_fix-missing-ammo-frag-effects.patch" + "ammo-05_22-casings-can-stack.patch" + "ammo-10_ammo-order-fix.patch" + "armor-01_ankle-ammo-pouch-is-not-a-backpack.patch" + "armor-02_fix-survivor-fingerless-gloves-warmth.patch" + + "bionics-01_npc-can-use-more-bionics.patch" + + "foods-01_fix-food-materials.patch" + + "itemgroups-01_hk46-is-milspec.patch" + "itemgroups-02_add-missing-mre.patch" + + "monsters-01_medical-zombies-called-zombies.patch" + + "mutations-01_nerf-lightstep.patch" + "mutations-02_fix-evac3-background-visible.patch" + + "recipes-01_fix-brioche-cooking-time.patch" + "recipes-02_4570-dragon-can-be-dismantled.patch" + + "terrain-01_quiverfull-house-correct-stairs.patch" + "terrain-02_tacoma-barn-door-position.patch" + "terrain-03_tacoma-clinic-add-missing-floor.patch" + "terrain-04_lumbermill-gasoline-not-spilled.patch" + "terrain-05_community-garden-fertilizer-not-spilled.patch" + "terrain-06_fix-doors-for-npcs.patch" + "terrain-07_rehide-redacted.patch" + "terrain-08_derelict-shed-is-s.patch" + "terrain-09_make-firestation-shelter-wells-npc-drinkable.patch" + + "tools-01_foldable-bottle-is-container.patch" + "tools-02_vacutainer-is-not-a-weapon.patch" + "tools-03_shears-use-light-battery.patch" + "tools-04_normalize-drone-volume.patch" + + "vehicles-01_portable-generator-engine.patch" + + "etc-01_fix-rubbersplosion.patch" + "etc-02_add-missing-price-postapoc.patch" + "etc-03_revert-book-revamp.patch" + + "jc_radio-can-use-ups.patch" "jc_ammo-loudness-ap-times-2.patch" "jc_allow-bio-firestarter-on-smoker.patch" "jc_stop-non-faction-npc-sleep-depirvation.patch" @@ -74,6 +85,7 @@ source=("$pkgname-$_pkgver.tar.gz::https://github.com/cataclysmbnteam/Cataclysm- "jc_allow-hacker-laptop.patch" "jc_restore-removed-traits.patch" "jc_more-military-base-overmap.patch" + "jc_npc-eat-from-further-camp.patch" "custom.patch" @@ -82,44 +94,45 @@ source=("$pkgname-$_pkgver.tar.gz::https://github.com/cataclysmbnteam/Cataclysm- "cataclysm-dda-soundpack_jcsoundpack.tar.xz::https://library.iserlohn-fortress.net/cataclysm-dda-soundpack_jcsoundpack.git/snapshot/cataclysm-dda-soundpack_jcsoundpack-master.tar.xz" "cataclysm-dda-musicpack_coag-musicpack.tar.xz::https://library.iserlohn-fortress.net/cataclysm-dda-musicpack_coag-musicpack.git/snapshot/cataclysm-dda-musicpack_coag-musicpack-master.tar.xz" ) -b2sums=('28d01fe9a265419ad941d4ad2ca4cd1a5aafdc2e46dc1d734b718a60e3039e303f8c6b42d437a4d5a37731457863d34ebca9e2decffafba41697ca15fd4f1883' +b2sums=('89d4382b933e4e37498036d79d64ee94b5422110606b7bc299a22f0b885caa30580f082a403e6fb3b642ebb7a1ab0a81f3769f36d37321fcac8dc62944898c1f' '069ecde58859b3d44cd687c4b6e718610cefb693ff86e66f199ebfb1b3072023ad2b6f0c28e27ef9c1ce4997f6a5b2ca0d45046996b3ff35a4aeaeb1a7cf9421' 'ad88bc6c1e3c8183a313b5eec42f98d6956afea349feff34a86e4536c9921fa99d2594282caf27de8ebb7ffb56376ed2e76d572227bfd6d8173c7bb1f01e23b8' '6f70e90359a14e4839d9a2683debb88850e5dd387add911ad68fd87e5512cfcdd435da63e1e370358153673fd5a72a9b1e9c94f1979edb7948b4da8c82407bad' - 'ce0dd5121e814e0fcd79d68362c80a83bfe70f970be9d5d6f6fe5f6a56ed3f041be4d560aaf02225c3ce7c457dc63bc3adf0709d4b89a81c18184ff5341eb5d3' - '2cdcf9ab03eb92f384caf1a2d90f82c75f880cb6286811e83217c883e421c116e7844ca193a010dc35e12eec46ede3663171a2f45f660ef5a8be95c474f61bfc' - '51b1324506179f7fadd8bc187eb8db939494483597b0b7b63909cec66f4e94b27888ccfa926bbd2ff8b0e80108ecc373118c202a177fc2ebd4f5231f87f09a83' - '8232c6a10fd1f608304982ae7f03eb8afc663be76cdc00aee46ecb58de838e21fdc8673841266ccd00153263f7b15b59dcd1fc6ece86834509d7ccb2cacf08fa' - '025213998583972e7551bd7bd7376ab65857e28d4338fab60ae792a6b3bd48983aec77e5143baaa63d4f3feb7cd590c4bded529c410e4d18f2b8c5813f25daa3' '34dacfc4f338b68ecbb449e4726dc77a6876aae1c4ac31e0df4526a4df237d43ff3dcdd1d77d9266fb74d96f36b36fb93bbf1992e827504a313fdd1f3bfaf0ed' - 'b8a64accada87ee5be989c5307805610c9b5c0327bc107aab237ac3225dd9e4c51b6c79a2a7de15fe187d3c32d7cbe1c462f9b0e9fb5d5a55a74236c7061e96e' - '85aeb5920ee5879848be4057324153a077fe907bed527ed8f9b80a3c5ee1ef64786f63ee2999f5ba74e80a43e99ded3280ce27759c1f7b73259a6e2b5e584aa8' - '58a94409205f7b670ab5745b8cbc234a38efd6a6217cef4efb7e397f091092e3e0c7790706b0a42accaa83d7509b8e244a98b9f0ba78349ee85f3164745c3501' - 'f3bdbaac5dbe9384571fe5ec14d2d25035f227a977c25349b8188e7343804e3973b898b44c34f9abe9318666294f4fdfe780fd516dcbdb29c4ac52f6d0ed6cad' + '0b782de320b3e459380cd618d5db2f3998a6dae879a84a3e4c58b1c61ecb1109f7a63485c2d6c77682eb62ba4a4aa4763a1f25eadde52486f1ce481acbf02504' + '3fb051162e4dfc5aca3d4f41ebea18ac85d661f0ebba056a807a2a6ecf34ca117a11aeb286790f5ea6f9c6528d6b6981076da405ea0992ce8870bbe6951bdc2d' + '040363cea9b3492f8a0f8daba44c179c871ba691dea688c15f3ad6994f78d530b4f74b283b9c64e4f5a2b1268805e60d4ea154d3dc8246200c50907054f5b5ef' '67cdb7e097bbb46da5cf04708bc2858b080d1a85742afc4c088da3e4e3fdeb6e4c51240fc5a6b9a1c7d927b30b3d251236e025ee4e5496142a7716d4ba51b82c' - '71768899e631c5293d5fb8bcb237ca54f880913b6400d445c8a0322cb69801fe85b94b1293306e2f33fac6067cbd892c4665b9563bdc9ff4df5be245c7e7108f' + '822300e5eaf1964cd3e18efaf445b41f51212bec12db10e8963a86f185f0f460691efbb4e7dbeda57b2c5366784b99152c2df01b0d3686fb86bc44db289f7dab' + '025213998583972e7551bd7bd7376ab65857e28d4338fab60ae792a6b3bd48983aec77e5143baaa63d4f3feb7cd590c4bded529c410e4d18f2b8c5813f25daa3' + 'd9cad0cef682927c07e3f7398b6e57b21b68f9069b99fab363d0e3f329337f25fafa216a82a431ee23a2de3f67a0ed68d024c1a932b76f58aeb5e9a49cfe5e6e' + 'f3bdbaac5dbe9384571fe5ec14d2d25035f227a977c25349b8188e7343804e3973b898b44c34f9abe9318666294f4fdfe780fd516dcbdb29c4ac52f6d0ed6cad' + '43937dd83705b5ab62ae02cf1d043426c82f37e600afe06a287706e8450b596b84cc23138fbda31d67b9a2206ebfdc69754e329e7621075cbf480691f7d61871' + '76c816df10aceec8f1a7d1356220eb3f00b16fac455e84eb8aefe76db29cd037dc74fb5cfa344b8d283b188951bd100c26e351ce2e27c16c836a547fe2c99e46' '417cd957f188b2b06e41d5413bea5f13481c6d5bfa8f184157379d5ac2afa9ba6f7ebc966856f50603f89b9173b6fbfdb3ccf4e3cc0b1bedb53f935591e4a35c' - '80da2c341d8564a47bc460fcdaf9196ac3bb77f0f2ba56bd71089e80e7481728a3ccbdcfcbc3bf70a9c9e5d9d9b01f2ca6615b67c7ab61003808ce00f6545ba3' - 'c1b6e59c840aee812570d9fb30f045b371473282c2289aaefe66483e6aae995fb93549882811fcb869d77f1c27a62ba4e486a8e20327846fd0602926739296ae' - '74a51f04237fba3caa25b2e0d49659f2e8330ce82288de866943d06b53690f31d48a77a4dd2e57db1f435b715fbca792268f2e191ffb59e57170d327ed41ac0a' - '8203bb062d72559da908a5020963503303c0aaa4a2ab61e57cfb713f58de40f1cb50b8b6dfbeec3a9addc41cbec5ae17fbf57230c3614f9b69fe6b0c55bf3fad' '8bb71fbec3deece7bd0f9084e20ef5853812e71e2ebcd43011f7779499cbb99c7a8bc5c618d8ef9f55e5ce54c9fc4a5f4d3167bb63f9821a68889f9f3e1386f5' '08f4746882b927bdff6b728630cf1e04a2b79924f694ca2d841e3115c3399feb87a8d363e4d2a0f59179c109cb6be6e840f912aadd44abb0bdb35afd2838cc4d' + 'ab35d6663b864449d46da4a9e1c51e11956ff4c38e16db58c831b71f7b964fc25b0283122dbc8aa0549f240f01c4a910fb5c6c82937258c6b736c05b54bcf768' + '8eef73575981d10a6a8734afc0e284ec7125db24bf666ff943938a4df87dedbd9ac622ea51bb71b5aaff7b1cc75627258bcfdc8659b915c09c82d3561fde1f62' + '71768899e631c5293d5fb8bcb237ca54f880913b6400d445c8a0322cb69801fe85b94b1293306e2f33fac6067cbd892c4665b9563bdc9ff4df5be245c7e7108f' + '8232c6a10fd1f608304982ae7f03eb8afc663be76cdc00aee46ecb58de838e21fdc8673841266ccd00153263f7b15b59dcd1fc6ece86834509d7ccb2cacf08fa' + 'ce0dd5121e814e0fcd79d68362c80a83bfe70f970be9d5d6f6fe5f6a56ed3f041be4d560aaf02225c3ce7c457dc63bc3adf0709d4b89a81c18184ff5341eb5d3' + 'b8a64accada87ee5be989c5307805610c9b5c0327bc107aab237ac3225dd9e4c51b6c79a2a7de15fe187d3c32d7cbe1c462f9b0e9fb5d5a55a74236c7061e96e' + '85aeb5920ee5879848be4057324153a077fe907bed527ed8f9b80a3c5ee1ef64786f63ee2999f5ba74e80a43e99ded3280ce27759c1f7b73259a6e2b5e584aa8' + '58a94409205f7b670ab5745b8cbc234a38efd6a6217cef4efb7e397f091092e3e0c7790706b0a42accaa83d7509b8e244a98b9f0ba78349ee85f3164745c3501' + '80da2c341d8564a47bc460fcdaf9196ac3bb77f0f2ba56bd71089e80e7481728a3ccbdcfcbc3bf70a9c9e5d9d9b01f2ca6615b67c7ab61003808ce00f6545ba3' '651de880cefd51665d854414c451cc80a33ed8f34e7559a95514abd81a2f58348c37dd75f272468eefd56562ba8c99093a6dd9af3ea57796a9db15164a40eda3' '7e41fc3a95073008ca2d71c2266d6d1a17af7803d493b447d40b15a86184c8ce3728b8d3d36765d408b1c46633d1bfa980d878cbac2e04b51ef518d44dfb7295' - '76c816df10aceec8f1a7d1356220eb3f00b16fac455e84eb8aefe76db29cd037dc74fb5cfa344b8d283b188951bd100c26e351ce2e27c16c836a547fe2c99e46' + '2cdcf9ab03eb92f384caf1a2d90f82c75f880cb6286811e83217c883e421c116e7844ca193a010dc35e12eec46ede3663171a2f45f660ef5a8be95c474f61bfc' '7cae5e42b6e16f3c4bf64dca3c7573c1b552424ff70bb6da0a21f121b53b2546b239c87953a090cd90f46a1c3c124e2fe19c560b1830b11334f8e64c92fb614d' - 'ab35d6663b864449d46da4a9e1c51e11956ff4c38e16db58c831b71f7b964fc25b0283122dbc8aa0549f240f01c4a910fb5c6c82937258c6b736c05b54bcf768' - 'e1d03f68918d03f980f4c2dd966e3788afe63f14e2d18dbd4dab2cdbfa1253e4823c0f5daa3a579e47319a3c2af35bc5af0a390e2ba91fe7621f6db8b1a60994' - '846066151ff156ed18594748d965afa8d0f566c843ed3988055022408580bfb4e995b48048dc244be16d9f516b135937d8acda9e3334a63f3072df49208a0613' - '8eef73575981d10a6a8734afc0e284ec7125db24bf666ff943938a4df87dedbd9ac622ea51bb71b5aaff7b1cc75627258bcfdc8659b915c09c82d3561fde1f62' - '040363cea9b3492f8a0f8daba44c179c871ba691dea688c15f3ad6994f78d530b4f74b283b9c64e4f5a2b1268805e60d4ea154d3dc8246200c50907054f5b5ef' - '43937dd83705b5ab62ae02cf1d043426c82f37e600afe06a287706e8450b596b84cc23138fbda31d67b9a2206ebfdc69754e329e7621075cbf480691f7d61871' - 'd9cad0cef682927c07e3f7398b6e57b21b68f9069b99fab363d0e3f329337f25fafa216a82a431ee23a2de3f67a0ed68d024c1a932b76f58aeb5e9a49cfe5e6e' 'a45b2a53b6725dfd4780049a7522befe49c2a0c4efa4fb1dcb5cf53c7af18d329d2ba02aa6ac150342a3e66a46fd17f5e6e76a8db15c677a237edbb5cf4f5af7' '653930e35eac5dc7bd9fa3bfe0cbe89a36284431dc53cab95697da6b45d4c63af854d884f6b63fd45fde9c53a334a7e4f5600378c57b3b2ae2f881ef5d8fd0e3' + '8203bb062d72559da908a5020963503303c0aaa4a2ab61e57cfb713f58de40f1cb50b8b6dfbeec3a9addc41cbec5ae17fbf57230c3614f9b69fe6b0c55bf3fad' + '74a51f04237fba3caa25b2e0d49659f2e8330ce82288de866943d06b53690f31d48a77a4dd2e57db1f435b715fbca792268f2e191ffb59e57170d327ed41ac0a' + 'e1d03f68918d03f980f4c2dd966e3788afe63f14e2d18dbd4dab2cdbfa1253e4823c0f5daa3a579e47319a3c2af35bc5af0a390e2ba91fe7621f6db8b1a60994' '5a5a61ccb7e2e343fb6de2e3426688485a2f4ad65d4b001d8bd542907fd8ceb9315da7fd9e5f89a5aa6210edcd5f334c73657fc16349000d6f6a394303e22000' - '5efa0a93e889efa022370a334b20aefb1103e8f9f700494207b7def18d55578be89955a117863b8342159eb1371a21aa55747fd83cc6aa5f424d0c024d157aef' + '617b1bacb05006385d2ff5198f297a0af7ce004148e62f7f90721f093fdf6445d0024039e1aa6bfd623276f80ed6922ce62c6b2e3b5f058230e26da2ef84273f' + '51b1324506179f7fadd8bc187eb8db939494483597b0b7b63909cec66f4e94b27888ccfa926bbd2ff8b0e80108ecc373118c202a177fc2ebd4f5231f87f09a83' '92cde696eec00e6758b58e73e8bc60ad1a73bb2a18d4fdfd24a19b5be715305a047943a02d94a9703c101ca0c769dbeb816f1f28809345bae0fec42fbc27bb34' 'dede4f0774159243f87121e4d53107bb9de31f9658823fc7ab02124974b87defecf3ab0f2edf6779f2fe1ca437f16f83bf193cf3143fd5eb3a686b731319c11f' 'ce82294e480ad42f0001c799fd8131b60024b6097653f3c57564c75e54596616e376f0d7f1cf4e54d8c302a61ef164b4323f795bfa19b2c13ab9e927d37f1600' @@ -128,6 +141,7 @@ b2sums=('28d01fe9a265419ad941d4ad2ca4cd1a5aafdc2e46dc1d734b718a60e3039e303f8c6b4 'f25f01c5b27dced202fe76c1717b9eaec65dfa5f28db1910529f60f5ec21cc89c1a15df26c2dd09066a0d89e3f7d87c790e7886c3c2f0978a25f5ec7d1236099' '2aff3bb0804a1860bc95e25433b10f11c185bb954a2e9dc6fbee912d8d453498f9140d516ea4f31fc545861f266400db5d830092dbe21a48b22a07fd3d62a393' '7835b2a650b7619af28e52273df6f279bac209528937abb32940f40b0572bc97c09573b139248213ab59e3a68ab7a5a96bb54adab742c2fc56d56f0e36732091' + '4bd44cbe85c53902b8a360509703e3d38e8a5da75dd2c534a77f03ce6440632f6c83c92939069c60473c88ffb3abab0fbf11e39271f44f813b9f6432ea5f9a6b' 'b01c79202a2ddc6e6e3e2b97f767f5535e29213bd675238fad20f5ac26b639a111424a3d2861fe2e760b73a1d3c1d909e0360390caf1f21a6fc169b0bee4d665' '1a9518dadbc619cb97ca6dae4b6833083a312bd58d4596e4a231c005b3c89335a56bca62b644fc97340bdb37ff0f94043b5ba0b2d8ac379c8ef8b24adf2e7104' 'a56efdaae0344726debf5b74846edce8df7aa2357fbc7a05a3d369d1f457b02934a0d0ce2330072e03f1ac901e06e333c9393f795c761f8440307e7649ed5596' @@ -149,120 +163,184 @@ prepare() { sed -i 's|cataclysm-dda|cataclysm-bn|' src/path_info.cpp # Fix version - sed -i 's|VERSION = unstable|VERSION = 2021-10-16-1440|' Makefile + sed -i 's|VERSION = unstable|VERSION = 2021-10-29-1727|' Makefile - # Hotfixes + # # # Hotfixes + #echo "Applying hotfixes" - # Backports from 0.F - # Fix tacoma barn doors being placed in the same spot twice. - patch -Np1 -i "$srcdir"/0.F_backport-tacoma-barn-door-position.patch + # # # Various fixes for bugs I came across + # # Ammo fixes + echo "Applying ammo fixes" + # Fix mulitple inconsistent ammuntion names and handloaded status. + patch -Np1 -i "$srcdir"/ammo-01_inconsistent-ammo-names.patch - # Fix npcs unable to drink from firestation and shelter basecamps wells. - patch -Np1 -i "$srcdir"/0.F_backport-make-firestation-shelter-wells-npc-drinkable.patch + # Set a fixed loudness of 20x66mm shotgun shells like that of other shotguns: + # Other shotguns have fixed loudness to work around how the short range factors causes them to be far quieter than one would otherside expect. + patch -Np1 -i "$srcdir"/ammo-02_fix-20x66mm-loudness.patch - # Fix radio, e-ink reader music, tactical tonfa not working with UPS. - patch -Np1 -i "$srcdir"/0.F_backport-radio-can-use-ups.patch + # Change reloaded_50bmg to be based on 50bmg: + # The id and description make it pretty clear that reloaded_50bmg is not supposed to be based on Match rounds. + patch -Np1 -i "$srcdir"/ammo-03_fix-reloaded-50bmg.patch + # Replace several ammo fragmentation and explosive effects that are missing in BN with other ones. + patch -Np1 -i "$srcdir"/ammo-04_fix-missing-ammo-frag-effects.patch - # Various other fixes for bugs I came across - # Fix Quiverfull house to have the correct stairs that modify json. - patch -Np1 -i "$srcdir"/0001-quiverfull-house-correct-stairs.patch + # Fix .22 casings not stacking when every other casing stacks. + patch -Np1 -i "$srcdir"/ammo-05_22-casings-can-stack.patch - # Fix Ankle Ammo Pouch to not look like a backpack. - patch -Np1 -i "$srcdir"/0002-ankle-ammo-pouch-is-not-a-backpack.patch + # Fix ammo ordering so as to not prevent those items being modded. + # Having copy-from items occuring earlier in a json than the item being copied from prevents items based on it being modified. + patch -Np1 -i "$srcdir"/ammo-10_ammo-order-fix.patch - # Fix mulitple inconsistent ammuntion names and handloaded status. - patch -Np1 -i "$srcdir"/0003-inconsistent-ammo-names.patch - # Fix missing floor in tacoma clinic. The hospital is still a mess. :/ - patch -Np1 -i "$srcdir"/0004-tacoma-clinic-add-missing-floor.patch + # # armor fixes + echo "Applying armor fixes" + # Fix Ankle Ammo Pouch to not look like a backpack: + # SDG added a tile for ammo pouches to bypass this bug, but this fix still makes sense. + patch -Np1 -i "$srcdir"/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch - # Fix lumbermill gasoline being spilled instead of being inside the gas pump. - patch -Np1 -i "$srcdir"/0005-lumbermill-gasoline-not-spilled.patch + # Fix fingerless survivor gloves losing base warmth: + # They lose warmth already from the lack of coverage, no need to double up. + patch -Np1 -i "$srcdir"/armor-02_fix-survivor-fingerless-gloves-warmth.patch - # Fix community garden liquid fertilizer being in a pit instead of in the storage tanks. - patch -Np1 -i "$srcdir"/0006-community-garden-fertilizer-not-spilled.patch + # # bionics fixes + echo "Applying bionic fixes" # Fix npc not being able to install some additional CBMs: # ie, soporific inducer, gasoline fuel cell, enhanced hearing, surgical scalpels. - patch -Np1 -i "$srcdir"/0008-npc-can-use-more-bionics.patch + patch -Np1 -i "$srcdir"/bionics-01_npc-can-use-more-bionics.patch - # Fix .22 casings not stacking when every other casing stacks. - patch -Np1 -i "$srcdir"/0009-22-casings-can-stack.patch - # Fix reloaded 45-70 rounds and reloaded dragon shot were not allowing dismantling when every other non-caseless does. - patch -Np1 -i "$srcdir"/0010-4570-dragon-can-be-dismantled.patch + # # food fixes + echo "Applying food fixes" + # Fix several foods not being marked as the correct material: + # This prevents odd outcomes such as carnivores drinking almond/soy milk and eating peanut butter. + patch -Np1 -i "$srcdir"/foods-01_fix-food-materials.patch - # Fix the pepperjack beef and burrito bowl MREs never dropping. - patch -Np1 -i "$srcdir"/0011-add-missing-mre.patch - # Fix some doors being unusable by npcs (incorrect door flag). - patch -Np1 -i "$srcdir"/0012-fix-doors-for-npcs.patch + # # itemgroups fixes + echo "Applying itemgroup fixes" + # Stop police and SWAT carrying 4.6mm magazines despite having no compatible weapons: + # The H&K UCP was removed from the game some time ago. + patch -Np1 -i "$srcdir"/itemgroups-01_hk46-is-milspec.patch - # Fix the loudness of 20x66mm shotgun shells like other shotguns. - patch -Np1 -i "$srcdir"/0013-fix-20x66mm-loudness.patch + # Fix the pepperjack beef and burrito bowl MREs never dropping: + # They weren't in the itemgroups for MREs or soldier class. + patch -Np1 -i "$srcdir"/itemgroups-02_add-missing-mre.patch - # Replace the portable generator twin engine with a large 1 cylinder so it can actually function as is. - patch -Np1 -i "$srcdir"/0014-portable-generator-engine.patch - # Normalize the manhack volumes to that of the base grenade/explosive. - patch -Np1 -i "$srcdir"/0015-normalize-drone-volume.patch + # # monster fixes + echo "Applying monster fixes" + # Prefix medical zombies with "zombie" like other zombies: + # It just felt weird seeing "nurse" in the enemy list. + patch -Np1 -i "$srcdir"/monsters-01_medical-zombies-called-zombies.patch - # Prefix medical zombies with "zombie" like other zombies. - patch -Np1 -i "$srcdir"/0016-medical-zombies-called-zombies.patch + # # mutation fixes + echo "Applying mutation fixes" # Light Step feels too powerful in Bright Nights. - patch -Np1 -i "$srcdir"/0017-nerf-lightstep.patch + patch -Np1 -i "$srcdir"/mutations-01_nerf-lightstep.patch + + # Fix Evacuee 3 background 3 being player visible: + # It was missing "player_display": false + patch -Np1 -i "$srcdir"/mutations-02_fix-evac3-background-visible.patch + + + # # recipe fixes + echo "Applying recipe fixes" + # Fix brioche bun missing a cooking time: + # It was missing a cooking time entirely resulting in instant cooking. Talk about quick rise bread. + patch -Np1 -i "$srcdir"/recipes-01_fix-brioche-cooking-time.patch + + # Fix reloaded 45-70 rounds and reloaded dragon shot not allowing dismantling when every other non-caseless round does. + patch -Np1 -i "$srcdir"/recipes-02_4570-dragon-can-be-dismantled.patch + + + # # terrain and overmap fixes + echo "Applying terrain and overmap fixes" + # Fix Quiverfull house to have the correct stairwell direction: + # It was set to < for up, and not > for down. + patch -Np1 -i "$srcdir"/terrain-01_quiverfull-house-correct-stairs.patch + + # Fix tacoma barn doors being placed in the same spot twice: + # This enables the southeast barn door to be placed properly. + patch -Np1 -i "$srcdir"/terrain-02_tacoma-barn-door-position.patch + + # Fix missing floor in the tacoma clinic: + # The hospital is still a mess. :/ + patch -Np1 -i "$srcdir"/terrain-03_tacoma-clinic-add-missing-floor.patch + + # Fix lumbermill gasoline being spilled instead of being inside the gas pump: + # The gas pump was placed on top of a tile that didn't allow items inside, causing the gasoline to be shunted to the next valid one. + patch -Np1 -i "$srcdir"/terrain-04_lumbermill-gasoline-not-spilled.patch + + # Fix community garden liquid fertilizer being in a pit instead of in the storage tanks: + # I'm pretty sure that having it all dumped in a pit was not intentional. + patch -Np1 -i "$srcdir"/terrain-05_community-garden-fertilizer-not-spilled.patch + + # Fix some doors being unusable by npcs (incorrect door flag): + # The DOOR flag is for terrain that can be opened, not those already open. + patch -Np1 -i "$srcdir"/terrain-06_fix-doors-for-npcs.patch # Re-hide something that feels like spoilers. - patch -Np1 -i "$srcdir"/0018-rehide-redacted.patch + patch -Np1 -i "$srcdir"/terrain-07_rehide-redacted.patch # Set the overmap note for Derelict Shed to s to better match use of the first letter. - patch -Np1 -i "$srcdir"/0019-derelict-shed-is-s.patch + patch -Np1 -i "$srcdir"/terrain-08_derelict-shed-is-s.patch - # Stop police and SWAT carrying 4.6mm magazines despite having no compatible weapons. - patch -Np1 -i "$srcdir"/0020-hk46-is-milspec.patch + # Fix npcs unable to drink from firestation and shelter basecamps wells: + # They were missing the water_well blueprint_provides. + patch -Np1 -i "$srcdir"/terrain-09_make-firestation-shelter-wells-npc-drinkable.patch - # Mark the foldable plastic bottle and steel water bottle as containers. - patch -Np1 -i "$srcdir"/0021-foldable-bottle-is-container.patch - # Fix Evacuee 3 background 3 being player visible. - patch -Np1 -i "$srcdir"/0022-fix-evac3-background-visible.patch + # # tool fixes + echo "Applying tool fixes" + # Mark the foldable plastic bottle and steel water bottle as containers: + # Being counted as tools didn't seem to fit their role. + patch -Np1 -i "$srcdir"/tools-01_foldable-bottle-is-container.patch - # Fix rubber items dismantling into 10x item volume of rubber. - patch -Np1 -i "$srcdir"/0023-fix-rubbersplosion.patch + # Fix blood draw kit being categorized as a weapon: + # Upstream changed item templates, so this sets it back to be a tool. + patch -Np1 -i "$srcdir"/tools-02_vacutainer-is-not-a-weapon.patch - # Fix ammo ordering so as to not prevent those items being modded. - patch -Np1 -i "$srcdir"/0024-ammo-order-fix.patch + # Fix electric shears not using batteries nor charging via UPS: + # Item was unusable without this patch. + patch -Np1 -i "$srcdir"/tools-03_shears-use-light-battery.patch - # Fix brioche bun missing a cooking time. - patch -Np1 -i "$srcdir"/0026-fix-brioche-cooking-time.patch + # Normalize the manhack volumes to that of the base grenade/explosive: + # I don't see how a c-4 manhack could be 1/4 the volume of a stick of c-4. + # Grenade hacks were also thrice as big as the base grenade. + patch -Np1 -i "$srcdir"/tools-04_normalize-drone-volume.patch - # Fix ammo fragmentation and explosive effects that are missing. - patch -Np1 -i "$srcdir"/0027-fix-missing-ammo-frag-effects.patch - # Fix several foods not being marked as the correct material. - patch -Np1 -i "$srcdir"/0028-fix-food-materials.patch + # # vehicle fixes + echo "Applying vehicle fixes" + # Replace the portable generator twin engine with a large 1 cylinder: + # This way it can actually function as is. + patch -Np1 -i "$srcdir"/vehicles-01_portable-generator-engine.patch - # Fix fingerless survivor gloves losing base warmth, as they lose warmth already from the lack of coverage. - patch -Np1 -i "$srcdir"/0029-fix-survivor-fingerless-gloves-warmth.patch - # Fix blood draw kit being categorized as a weapon. - patch -Np1 -i "$srcdir"/0031-vacutainer-is-not-a-weapon.patch - # Fix electric shears not using batteries nor charging via UPS. - patch -Np1 -i "$srcdir"/0032-shears-use-light-battery.patch + # # Uncategorized for now + echo "Applying uncategorized fixes" + # Fix rubber items dismantling into 10x item volume of rubber. + patch -Np1 -i "$srcdir"/etc-01_fix-rubbersplosion.patch # Add price_postapoc to a number of items that did not have one set. - patch -Np1 -i "$srcdir"/0033-add-missing-price-postapoc.patch + patch -Np1 -i "$srcdir"/etc-02_add-missing-price-postapoc.patch + + # Revert the book changes for now. + patch -Np1 -i "$srcdir"/etc-03_revert-book-revamp.patch + rm data/json/items/book/bloat.json - # The id and description make it pretty clear that reloaded_50bmg is not supposed to be based on Match rounds. - patch -Np1 -i "$srcdir"/0034-fix-reloaded-50bmg.patch + # # # Various other fixes for bugs I came across that modify src + echo "Applying source code fixes" + # Fix radio, e-ink reader music, tactical tonfa not working with UPS. + patch -Np1 -i "$srcdir"/jc_radio-can-use-ups.patch - # Various other fixes for bugs I came across that modify src # Fix ammo loudness mulitplying by six instead of two. patch -Np1 -i "$srcdir"/jc_ammo-loudness-ap-times-2.patch @@ -287,7 +365,13 @@ prepare() { # Expand the overmap tiles for the miltiary base to be less MMMM patch -Np1 -i "$srcdir"/jc_more-military-base-overmap.patch - # A series of changes to add both gynoid and vampire mutation lines. + # Allow npcs to pull food from the camp larger at the full range of tiles camp actions can be assigned from. + patch -Np1 -i "$srcdir"/jc_npc-eat-from-further-camp.patch + + + # # # Additional changes + echo "Applying gynoid and vampire patch" + # Add gynoid and vampire mutation lines. might require vampire stuff redone mod. patch -Np1 -i "$srcdir"/custom.patch } diff --git a/ammo-01_inconsistent-ammo-names.patch b/ammo-01_inconsistent-ammo-names.patch new file mode 100644 index 0000000..2c55e7f --- /dev/null +++ b/ammo-01_inconsistent-ammo-names.patch @@ -0,0 +1,182 @@ +--- a/data/json/items/ammo/223.json ++++ b/data/json/items/ammo/223.json +@@ -39,7 +39,7 @@ + "id": "556_incendiary", + "copy-from": "556", + "type": "AMMO", +- "name": { "str": "5.56 NATO tracer" }, ++ "name": { "str": "5.56 NATO M856 tracer" }, + "description": "This ammunition is a one-in-five mix of M855A1 and M856 tracer rounds to help keep the weapon they are fired from on target.", + "extend": { "effects": [ "INCENDIARY" ] } + }, +@@ -61,7 +61,7 @@ + "id": "bp_556", + "copy-from": "556", + "type": "AMMO", +- "name": { "str": "5.56 NATO, black powder" }, ++ "name": { "str": "5.56 NATO M855A1, black powder" }, + "proportional": { + "price": 0.3, + "damage": { "damage_type": "stab", "amount": 0.57, "armor_penetration": 0.5 }, +@@ -75,7 +75,7 @@ + "id": "bp_556_incendiary", + "copy-from": "556_incendiary", + "type": "AMMO", +- "name": { "str": "5.56 NATO tracer, black powder" }, ++ "name": { "str": "5.56 NATO M856 tracer, black powder" }, + "proportional": { + "price": 0.3, + "damage": { "damage_type": "stab", "amount": 0.57, "armor_penetration": 0.5 }, +@@ -98,7 +98,7 @@ + "id": "reloaded_556", + "copy-from": "556", + "type": "AMMO", +- "name": { "str": "5.56 NATO, reloaded" }, ++ "name": { "str": "5.56 NATO M885A1, reloaded" }, + "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, + "extend": { "effects": [ "RECYCLED" ] }, + "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] } +@@ -107,7 +107,7 @@ + "id": "reloaded_556_incendiary", + "copy-from": "556_incendiary", + "type": "AMMO", +- "name": { "str": "5.56 NATO tracer, reloaded" }, ++ "name": { "str": "5.56 NATO M856 tracer, reloaded" }, + "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, + "extend": { "effects": [ "RECYCLED" ] }, + "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] } +--- a/data/json/items/ammo/308.json ++++ b/data/json/items/ammo/308.json +@@ -26,7 +26,7 @@ + "id": "762_51", + "copy-from": "308", + "type": "AMMO", +- "name": { "str": "7.62x51mm M80" }, ++ "name": { "str": "7.62x51mm NATO M80" }, + "casing": "762_51_casing", + "description": "A 7.62x51mm NATO round with a 147gr FMJ bullet. It is a powerful rifle cartridge commonly used by hunters and military snipers because of its high accuracy and long range.", + "relative": { "damage": { "damage_type": "stab", "amount": -2, "armor_penetration": 4 }, "dispersion": -10 }, +@@ -37,7 +37,7 @@ + "id": "762_51_incendiary", + "copy-from": "762_51", + "type": "AMMO", +- "name": { "str": "7.62x51mm NATO tracer" }, ++ "name": { "str": "7.62x51mm NATO M62 tracer" }, + "description": "This ammunition is a one-in-five mix of M80 and M62 tracer rounds to help keep the weapon they are fired from on target.", + "extend": { "effects": [ "INCENDIARY" ] } + }, +@@ -59,7 +59,7 @@ + "id": "bp_762_51", + "copy-from": "762_51", + "type": "AMMO", +- "name": { "str": "7.62x51mm, black powder" }, ++ "name": { "str": "7.62x51mm NATO M80, black powder" }, + "proportional": { + "price": 0.3, + "damage": { "damage_type": "stab", "amount": 0.76, "armor_penetration": 0.5 }, +@@ -73,7 +73,7 @@ + "id": "bp_762_51_incendiary", + "copy-from": "762_51_incendiary", + "type": "AMMO", +- "name": { "str": "7.62x51mm tracer, black powder" }, ++ "name": { "str": "7.62x51mm NATO M62 tracer, black powder" }, + "proportional": { + "price": 0.3, + "damage": { "damage_type": "stab", "amount": 0.76, "armor_penetration": 0.5 }, +@@ -96,7 +96,7 @@ + "id": "reloaded_762_51", + "copy-from": "762_51", + "type": "AMMO", +- "name": { "str": "7.62x51mm, reloaded" }, ++ "name": { "str": "7.62x51mm NATO M80, reloaded" }, + "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, + "extend": { "effects": [ "RECYCLED" ] }, + "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] } +@@ -105,7 +105,7 @@ + "id": "reloaded_762_51_incendiary", + "copy-from": "762_51_incendiary", + "type": "AMMO", +- "name": { "str": "7.62x51mm incendiary, reloaded" }, ++ "name": { "str": "7.62x51mm NATO M62 tracer, reloaded" }, + "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, + "extend": { "effects": [ "RECYCLED" ] }, + "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] } +--- a/data/json/items/ammo/357mag.json ++++ b/data/json/items/ammo/357mag.json +@@ -2,8 +2,8 @@ + { + "id": "357mag_fmj", + "type": "AMMO", +- "name": { "str": ".357 magnum FMJ" }, +- "description": "Jacketed .357 magnum ammunition. The .357 magnum round is derived from the earlier .38 special, with a marginally longer case and generating greater pressure.", ++ "name": { "str": ".357 Magnum FMJ" }, ++ "description": "Jacketed .357 Magnum ammunition. The .357 Magnum round is derived from the earlier .38 special, with a marginally longer case and generating greater pressure.", + "weight": "8 g", + "volume": "250 ml", + "price": 140, +@@ -27,8 +27,8 @@ + "id": "357mag_jhp", + "copy-from": "357mag_fmj", + "type": "AMMO", +- "name": { "str": ".357 magnum JHP" }, +- "description": "Jacketed hollow point .357 magnum ammunition. The .357 magnum round is derived from the earlier .38 special, with a marginally longer case and generating greater pressure.", ++ "name": { "str": ".357 Magnum JHP" }, ++ "description": "Jacketed hollow point .357 Magnum ammunition. The .357 Magnum round is derived from the earlier .38 special, with a marginally longer case and generating greater pressure.", + "damage": { "damage_type": "stab", "amount": 42, "armor_penetration": 0 } + }, + { +--- a/data/json/items/ammo/45.json ++++ b/data/json/items/ammo/45.json +@@ -76,7 +76,7 @@ + "id": "reloaded_45_acp", + "copy-from": "45_acp", + "type": "AMMO", +- "name": { "str": ".45 FMJ, reloaded" }, ++ "name": { "str": ".45 ACP FMJ, reloaded" }, + "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, + "extend": { "effects": [ "RECYCLED" ] }, + "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] } +--- a/data/json/items/ammo/50.json ++++ b/data/json/items/ammo/50.json +@@ -70,7 +70,7 @@ + "id": "reloaded_50_incendiary", + "copy-from": "50_incendiary", + "type": "AMMO", +- "name": { "str": ".50 BMG tracer, reloaded" }, ++ "name": { "str": ".50 BMG M17 tracer, reloaded" }, + "description": "A tracer variant of the powerful .50 BMG round. Tracer rounds help to keep the weapon they are fired from on target at the risk of igniting flammable substances. This one has been hand-reloaded.", + "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, + "extend": { "effects": [ "RECYCLED" ] }, +@@ -90,7 +90,7 @@ + "id": "reloaded_50ss", + "copy-from": "50ss", + "type": "AMMO", +- "name": { "str": ".50 BMG AP, reloaded" }, ++ "name": { "str": ".50 BMG M2 AP, reloaded" }, + "description": "Variant of the .50 BMG round that uses a core hardened steel. Penetration is increased, but damage is reduced. This one has been hand-reloaded.", + "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, + "extend": { "effects": [ "RECYCLED" ] }, +--- a/data/json/items/ammo/5x50.json ++++ b/data/json/items/ammo/5x50.json +@@ -38,7 +38,7 @@ + "id": "reloaded_5x50dart", + "copy-from": "5x50dart", + "type": "AMMO", +- "name": { "str": "5x50mm flechette, reloaded" }, ++ "name": { "str": "RA110 5x50mm flechette, reloaded" }, + "price_postapoc": 1200, + "description": "Designed to defeat modern body armor, the Rivtech 5x50mm flechette round features a biodegradable sabot and a single, fin-stabilized penetrator. This one has been hand-reloaded.", + "effects": [ "COOKOFF", "RECYCLED" ], +--- a/data/json/items/ammo/762x25.json ++++ b/data/json/items/ammo/762x25.json +@@ -68,7 +68,8 @@ + "id": "reloaded_762_25", + "copy-from": "762_25hot", + "type": "AMMO", +- "name": { "str": "7.62x25mm, reloaded" }, +- "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9, "armor_penetration": 0.9 }, "dispersion": 1.1 } ++ "name": { "str": "7.62x25mm FMJ, reloaded" }, ++ "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9, "armor_penetration": 0.9 }, "dispersion": 1.1 }, ++ "extend": { "effects": [ "RECYCLED" ] } + } + ] diff --git a/ammo-02_fix-20x66mm-loudness.patch b/ammo-02_fix-20x66mm-loudness.patch new file mode 100644 index 0000000..1dc324c --- /dev/null +++ b/ammo-02_fix-20x66mm-loudness.patch @@ -0,0 +1,10 @@ +--- a/data/json/items/ammo/20x66mm.json ++++ b/data/json/items/ammo/20x66mm.json +@@ -124,6 +124,7 @@ + "range": 12, + "damage": { "damage_type": "stab", "amount": 60 }, + "recoil": 2500, ++ "loudness": 160, + "effects": [ "COOKOFF", "SHOT", "NEVER_MISFIRES" ] + }, + { diff --git a/ammo-03_fix-reloaded-50bmg.patch b/ammo-03_fix-reloaded-50bmg.patch new file mode 100644 index 0000000..b8241aa --- /dev/null +++ b/ammo-03_fix-reloaded-50bmg.patch @@ -0,0 +1,16 @@ +--- a/data/json/items/ammo/50.json ++++ b/data/json/items/ammo/50.json +@@ -78,10 +78,10 @@ + }, + { + "id": "reloaded_50bmg", +- "copy-from": "50match", ++ "copy-from": "50bmg", + "type": "AMMO", +- "name": { "str": ".50 BMG Match, reloaded" }, ++ "name": { "str": ".50 BMG M33 Ball, reloaded" }, +- "description": ".50 BMG ammunition with lead-cored FMJ bullets. The .50 BMG is a very powerful rifle round designed for anti-aircraft use, later adapted to anti-vehicular and anti-personnel roles. Its stupendous energy and armor piercing capabilities make it one of the most deadly rounds available, offset only by its drastic recoil and noise.", ++ "description": ".50 BMG ammunition with lead-cored FMJ bullets. The .50 BMG is a very powerful rifle round designed for anti-aircraft use, later adapted to anti-vehicular and anti-personnel roles. Its stupendous energy and armor piercing capabilities make it one of the most deadly rounds available, offset only by its drastic recoil and noise. This one has been hand-reloaded.", + "proportional": { "price": 0.7, "damage": { "damage_type": "stab", "amount": 0.9 }, "dispersion": 1.1 }, + "extend": { "effects": [ "RECYCLED" ] }, + "delete": { "effects": [ "NEVER_MISFIRES" ], "flags": [ "IRREPLACEABLE_CONSUMABLE" ] } diff --git a/ammo-04_fix-missing-ammo-frag-effects.patch b/ammo-04_fix-missing-ammo-frag-effects.patch new file mode 100644 index 0000000..6bb1c78 --- /dev/null +++ b/ammo-04_fix-missing-ammo-frag-effects.patch @@ -0,0 +1,22 @@ +--- a/json/items/ammo/shot.json ++++ b/data/json/items/ammo/shot.json +@@ -172,7 +172,7 @@ + "flags": [ "IRREPLACEABLE_CONSUMABLE" ], + "count": 5, + "damage": { "damage_type": "stab", "amount": 10, "armor_penetration": 0 }, +- "extend": { "effects": [ "EXPLOSIVE_HESHOT" ] } ++ "extend": { "effects": [ "EXPLOSIVE_TINY" ] } + }, + { + "id": "shot_scrap", +--- a/data/json/items/ammo/50.json ++++ b/data/json/items/ammo/50.json +@@ -61,7 +61,7 @@ + "price_postapoc": 7500, + "flags": [ "IRREPLACEABLE_CONSUMABLE" ], + "description": "This variant of the .50 BMG round makes the most of the caliber's potential payload delivery: the tip is loaded with an incendiary mix, which ignites on impact, detonating the RDX or PETN charge. This also ignites a secondary zirconium powder incendiary charge that surrounds a tungsten carbide penetrator, both encased by a mild steel cup. Fragments from the cup and burning metallic powder follow the penetrator through armored targets, increasing lethality. These rare, complicated, and expensive rounds are not likely to be manufactured again; use them wisely.", +- "effects": [ "INCENDIARY", "EXPLOSIVE_RAUFOSS" ], ++ "effects": [ "INCENDIARY", "FRAG_SMALL" ], + "//": "mk 211 is estimated to be as effective as 20mm, which would have 65kJ energy, or 255 damage. ~181 damage is fair.", + "relative": { "damage": { "damage_type": "stab", "amount": 50, "armor_penetration": 20 } }, + "dispersion": 100 diff --git a/ammo-05_22-casings-can-stack.patch b/ammo-05_22-casings-can-stack.patch new file mode 100644 index 0000000..e52b8bb --- /dev/null +++ b/ammo-05_22-casings-can-stack.patch @@ -0,0 +1,17 @@ +--- a/data/json/items/generic/casing.json ++++ b/data/json/items/generic/casins.json +@@ -31,13 +31,11 @@ + }, + { + "id": "22_casing_new", ++ "copy-from": "casing", + "type": "GENERIC", +- "category": "spare_parts", + "price": 100, + "price_postapoc": 0, + "name": { "str": "unused .22 casing" }, +- "symbol": "=", +- "color": "yellow", + "description": "An unfired, like-new .22 round casing, with the primer still intact.", + "material": [ "powder", "brass" ], + "volume": "3 ml", diff --git a/ammo-10_ammo-order-fix.patch b/ammo-10_ammo-order-fix.patch new file mode 100644 index 0000000..3422126 --- /dev/null +++ b/ammo-10_ammo-order-fix.patch @@ -0,0 +1,328 @@ +--- a/data/json/items/ammo/20x66mm.json ++++ b/data/json/items/ammo/20x66mm.json +@@ -1,5 +1,54 @@ + [ + { ++ "id": "20x66_shot", ++ "type": "AMMO", ++ "name": { "str": "20x66mm buckshot" }, ++ "//": "2.5x the Generic Rate of $1/shot", ++ "description": "20x66mm caseless shotgun rounds, buckshot type. Proprietary ammunition for Rivtech shotguns. Being caseless rounds, these cannot be disassembled or reloaded.", ++ "weight": "56 g", ++ "volume": "250 ml", ++ "price": 1500, ++ "price_postapoc": 4000, ++ "flags": [ "IRREPLACEABLE_CONSUMABLE" ], ++ "material": [ "steel", "powder" ], ++ "symbol": "=", ++ "color": "pink", ++ "count": 20, ++ "stack_size": 20, ++ "ammo_type": "20x66mm", ++ "range": 12, ++ "damage": { "damage_type": "stab", "amount": 60 }, ++ "recoil": 2500, ++ "loudness": 160, ++ "effects": [ "COOKOFF", "SHOT", "NEVER_MISFIRES" ] ++ }, ++ { ++ "id": "20x66_flechette", ++ "copy-from": "20x66_shot", ++ "type": "AMMO", ++ "name": { "str": "20x66mm flechette" }, ++ "description": "20x66mm caseless shotgun rounds, flechette type. Proprietary ammunition for Rivtech shotguns. Being caseless rounds, these cannot be disassembled or reloaded.", ++ "price": 4000, ++ "price_postapoc": 4000, ++ "flags": [ "IRREPLACEABLE_CONSUMABLE" ], ++ "count": 10, ++ "relative": { "damage": { "damage_type": "stab", "amount": -10, "armor_penetration": 20 } } ++ }, ++ { ++ "id": "20x66_slug", ++ "copy-from": "20x66_shot", ++ "type": "AMMO", ++ "name": { "str": "20x66mm slug" }, ++ "description": "20x66mm caseless shotgun rounds, solid projectile type. Proprietary ammunition for Rivtech shotguns. Being caseless rounds, these cannot be disassembled or reloaded.", ++ "price": 1500, ++ "price_postapoc": 4000, ++ "flags": [ "IRREPLACEABLE_CONSUMABLE" ], ++ "damage": { "damage_type": "stab", "amount": 39, "armor_penetration": 8 }, ++ "relative": { "range": 12 }, ++ "proportional": { "dispersion": 1.3 }, ++ "delete": { "effects": [ "SHOT" ] } ++ }, ++ { + "id": "20x66_beanbag", + "copy-from": "20x66_shot", + "type": "AMMO", +@@ -74,18 +122,6 @@ + "effects": [ "NO_EMBED" ] + }, + { +- "id": "20x66_flechette", +- "copy-from": "20x66_shot", +- "type": "AMMO", +- "name": { "str": "20x66mm flechette" }, +- "description": "20x66mm caseless shotgun rounds, flechette type. Proprietary ammunition for Rivtech shotguns. Being caseless rounds, these cannot be disassembled or reloaded.", +- "price": 4000, +- "price_postapoc": 4000, +- "flags": [ "IRREPLACEABLE_CONSUMABLE" ], +- "count": 10, +- "relative": { "damage": { "damage_type": "stab", "amount": -10, "armor_penetration": 20 } } +- }, +- { + "id": "20x66_frag", + "copy-from": "20x66_slug", + "type": "AMMO", +@@ -109,42 +145,5 @@ + "flags": [ "IRREPLACEABLE_CONSUMABLE" ], + "count": 10, + "extend": { "effects": [ "INCENDIARY" ] } +- }, +- { +- "id": "20x66_shot", +- "type": "AMMO", +- "name": { "str": "20x66mm buckshot" }, +- "//": "2.5x the Generic Rate of $1/shot", +- "description": "20x66mm caseless shotgun rounds, buckshot type. Proprietary ammunition for Rivtech shotguns. Being caseless rounds, these cannot be disassembled or reloaded.", +- "weight": "56 g", +- "volume": "250 ml", +- "price": 1500, +- "price_postapoc": 4000, +- "flags": [ "IRREPLACEABLE_CONSUMABLE" ], +- "material": [ "steel", "powder" ], +- "symbol": "=", +- "color": "pink", +- "count": 20, +- "stack_size": 20, +- "ammo_type": "20x66mm", +- "range": 12, +- "damage": { "damage_type": "stab", "amount": 60 }, +- "recoil": 2500, +- "loudness": 160, +- "effects": [ "COOKOFF", "SHOT", "NEVER_MISFIRES" ] +- }, +- { +- "id": "20x66_slug", +- "copy-from": "20x66_shot", +- "type": "AMMO", +- "name": { "str": "20x66mm slug" }, +- "description": "20x66mm caseless shotgun rounds, solid projectile type. Proprietary ammunition for Rivtech shotguns. Being caseless rounds, these cannot be disassembled or reloaded.", +- "price": 1500, +- "price_postapoc": 4000, +- "flags": [ "IRREPLACEABLE_CONSUMABLE" ], +- "damage": { "damage_type": "stab", "amount": 39, "armor_penetration": 8 }, +- "relative": { "range": 12 }, +- "proportional": { "dispersion": 1.3 }, +- "delete": { "effects": [ "SHOT" ] } + } + ] + +--- a/data/json/items/ammo/22.json ++++ b/data/json/items/ammo/22.json +@@ -1,16 +1,5 @@ + [ + { +- "id": "22_cphp", +- "copy-from": "22_lr", +- "type": "AMMO", +- "name": { "str": ".22 CPHP" }, +- "description": ".22 Long Rifle ammunition with 30gr copper-plated, hollow-point bullets. Has a higher velocity and slightly more stopping power than lead round-nose ammunition, but armor will have a magnified effect on its already-low penetration.", +- "//": "Hollowpoint damage increase of 25%", +- "damage": { "damage_type": "stab", "amount": 20, "armor_penetration": 0 }, +- "relative": { "range": 3 }, +- "proportional": { "recoil": 1.5 } +- }, +- { + "id": "22_lr", + "type": "AMMO", + "name": { "str": ".22 LR" }, + +@@ -35,6 +24,17 @@ + "effects": [ "COOKOFF" ] + }, + { ++ "id": "22_cphp", ++ "copy-from": "22_lr", ++ "type": "AMMO", ++ "name": { "str": ".22 CPHP" }, ++ "description": ".22 Long Rifle ammunition with 30gr copper-plated, hollow-point bullets. Has a higher velocity and slightly more stopping power than lead round-nose ammunition, but armor will have a magnified effect on its already-low penetration.", ++ "//": "Hollowpoint damage increase of 25%", ++ "damage": { "damage_type": "stab", "amount": 20, "armor_penetration": 0 }, ++ "relative": { "range": 3 }, ++ "proportional": { "recoil": 1.5 } ++ }, ++ { + "id": "22_ratshot", + "copy-from": "22_cphp", + "type": "AMMO", + +--- a/data/json/items/ammo/38.json ++++ b/data/json/items/ammo/38.json +@@ -1,14 +1,5 @@ + [ + { +- "id": "38_fmj", +- "copy-from": "38_special", +- "type": "AMMO", +- "name": { "str": ".38 FMJ" }, +- "description": ".38 Special ammunition with brass jacketed 130gr bullets. The .38 Special round has been known from its inception for its accuracy and low recoil.", +- "//": "Base damage of 20, balance increase of two-nineths.", +- "relative": { "damage": { "damage_type": "stab", "amount": -6, "armor_penetration": 14 } } +- }, +- { + "id": "38_special", + "type": "AMMO", + "name": { "str": ".38 Special" }, +@@ -33,6 +24,15 @@ + "effects": [ "COOKOFF" ] + }, + { ++ "id": "38_fmj", ++ "copy-from": "38_special", ++ "type": "AMMO", ++ "name": { "str": ".38 FMJ" }, ++ "description": ".38 Special ammunition with brass jacketed 130gr bullets. The .38 Special round has been known from its inception for its accuracy and low recoil.", ++ "//": "Base damage of 20, balance increase of two-nineths.", ++ "relative": { "damage": { "damage_type": "stab", "amount": -6, "armor_penetration": 14 } } ++ }, ++ { + "id": "reloaded_38_fmj", + "copy-from": "38_fmj", + "type": "AMMO", + +--- a/data/json/items/ammo/40.json ++++ b/data/json/items/ammo/40.json +@@ -1,14 +1,5 @@ + [ + { +- "id": "40fmj", +- "copy-from": "40sw", +- "type": "AMMO", +- "name": { "str": ".40 S&W FMJ" }, +- "description": ".40 S&W ammunition with 180gr FMJ bullets. Designed to retain the 10mm Auto cartridge's power with lower recoil, the .40 S&W round became popular for law enforcement and personal defense.", +- "//": "Base damage of 23, balance increase of two-nineths.", +- "relative": { "damage": { "damage_type": "stab", "amount": -7, "armor_penetration": 16 } } +- }, +- { + "id": "40sw", + "type": "AMMO", + "name": { "str": ".40 S&W JHP" }, +@@ -33,6 +24,15 @@ + "effects": [ "COOKOFF" ] + }, + { ++ "id": "40fmj", ++ "copy-from": "40sw", ++ "type": "AMMO", ++ "name": { "str": ".40 S&W FMJ" }, ++ "description": ".40 S&W ammunition with 180gr FMJ bullets. Designed to retain the 10mm Auto cartridge's power with lower recoil, the .40 S&W round became popular for law enforcement and personal defense.", ++ "//": "Base damage of 23, balance increase of two-nineths.", ++ "relative": { "damage": { "damage_type": "stab", "amount": -7, "armor_penetration": 16 } } ++ }, ++ { + "id": "bp_40fmj", + "copy-from": "40fmj", + "type": "AMMO", + +--- a/data/json/items/ammo/45.json ++++ b/data/json/items/ammo/45.json +@@ -1,14 +1,5 @@ + [ + { +- "id": "45_acp", +- "copy-from": "45_jhp", +- "type": "AMMO", +- "name": { "str": ".45 ACP FMJ" }, +- "description": ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, the .45 ACP round has been common for almost 150 years.", +- "//": "Base damage of 27, balance increase of two-nineths.", +- "relative": { "damage": { "damage_type": "stab", "amount": -8, "armor_penetration": 18 } } +- }, +- { + "id": "45_jhp", + "type": "AMMO", + "name": { "str": ".45 ACP JHP" }, +@@ -32,6 +23,15 @@ + "effects": [ "COOKOFF" ] + }, + { ++ "id": "45_acp", ++ "copy-from": "45_jhp", ++ "type": "AMMO", ++ "name": { "str": ".45 ACP FMJ" }, ++ "description": ".45 ACP ammunition with 230gr FMJ bullets. Noted for its stopping power, the .45 ACP round has been common for almost 150 years.", ++ "//": "Base damage of 27, balance increase of two-nineths.", ++ "relative": { "damage": { "damage_type": "stab", "amount": -8, "armor_penetration": 18 } } ++ }, ++ { + "id": "45_super", + "copy-from": "45_jhp", + "type": "AMMO", + +--- a/data/json/items/ammo/460.json ++++ b/data/json/items/ammo/460.json +@@ -1,13 +1,5 @@ + [ + { +- "id": "460_fmj", +- "copy-from": "460_rowland", +- "type": "AMMO", +- "name": { "str": ".460 Rowland HCFN" }, +- "description": "A plated, hard cast flat nosed variant of the .460 Rowland round. This increases penetration slightly at the cost of reduced damage from expansion.", +- "relative": { "damage": { "damage_type": "stab", "amount": -4, "armor_penetration": 8 } } +- }, +- { + "id": "460_rowland", + "copy-from": "44magnum", + "type": "AMMO", +@@ -18,6 +10,14 @@ + "proportional": { "range": 0.95, "damage": { "damage_type": "stab", "amount": 0.95, "armor_penetration": 0.95 }, "recoil": 0.95 } + }, + { ++ "id": "460_fmj", ++ "copy-from": "460_rowland", ++ "type": "AMMO", ++ "name": { "str": ".460 Rowland HCFN" }, ++ "description": "A plated, hard cast flat nosed variant of the .460 Rowland round. This increases penetration slightly at the cost of reduced damage from expansion.", ++ "relative": { "damage": { "damage_type": "stab", "amount": -4, "armor_penetration": 8 } } ++ }, ++ { + "id": "bp_460_fmj", + "copy-from": "460_fmj", + "type": "AMMO", + +--- a/data/json/items/ammo/50.json ++++ b/data/json/items/ammo/50.json +@@ -1,15 +1,5 @@ + [ + { +- "id": "50_incendiary", +- "copy-from": "50bmg", +- "type": "AMMO", +- "name": { "str": ".50 BMG M17 tracer" }, +- "description": "A tracer variant of the powerful .50 BMG round. Tracer rounds help to keep the weapon they are fired from on target at the risk of igniting flammable substances.", +- "count": 10, +- "effects": [ "INCENDIARY" ], +- "dispersion": 310 +- }, +- { + "id": "50bmg", + "type": "AMMO", + "name": { "str": ".50 BMG M33 Ball" }, +@@ -33,6 +23,16 @@ + "effects": [ "COOKOFF", "NEVER_MISFIRES" ] + }, + { ++ "id": "50_incendiary", ++ "copy-from": "50bmg", ++ "type": "AMMO", ++ "name": { "str": ".50 BMG M17 tracer" }, ++ "description": "A tracer variant of the powerful .50 BMG round. Tracer rounds help to keep the weapon they are fired from on target at the risk of igniting flammable substances.", ++ "count": 10, ++ "effects": [ "INCENDIARY" ], ++ "dispersion": 310 ++ }, ++ { + "id": "50match", + "copy-from": "50bmg", + "type": "AMMO", diff --git a/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch b/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch new file mode 100644 index 0000000..ca51551 --- /dev/null +++ b/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch @@ -0,0 +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", + "symbol": "[", +- "looks_like": "ragpouch", ++ "looks_like": "bootstrap", + "color": "dark_gray", + "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 new file mode 100644 index 0000000..bc0b904 --- /dev/null +++ b/armor-02_fix-survivor-fingerless-gloves-warmth.patch @@ -0,0 +1,11 @@ +--- a/data/json/items/armor/gloves.json ++++ b/data/json/items/armor/gloves.json +@@ -447,7 +447,7 @@ + "covers": [ "HANDS" ], + "coverage": 85, + "encumbrance": 8, +- "warmth": 12, ++ "warmth": 15, + "material_thickness": 3, + "environmental_protection": 3, + "flags": [ "VARSIZE", "WATERPROOF", "STURDY", "ALLOWS_NATURAL_ATTACKS" ] diff --git a/bionics-01_npc-can-use-more-bionics.patch b/bionics-01_npc-can-use-more-bionics.patch new file mode 100644 index 0000000..d140ab1 --- /dev/null +++ b/bionics-01_npc-can-use-more-bionics.patch @@ -0,0 +1,48 @@ +--- a/data/json/bionics.json ++++ b/data/json/bionics.json +@@ -338,7 +338,7 @@ + "name": { "str": "Enhanced Hearing" }, + "description": "When this bionic is active, your hearing will be drastically improved, allowing you to hear ten times better than the average person. Additionally, high-intensity sounds will be automatically dampened before they can damage your hearing.", + "occupied_bodyparts": [ [ "head", 3 ] ], +- "flags": [ "BIONIC_TOGGLED" ], ++ "flags": [ "BIONIC_TOGGLED", "BIONIC_NPC_USABLE" ], + "included_bionics": [ "bio_earplugs" ] + }, + { +@@ -1200,6 +1200,6 @@ + "name": { "str": "Soporific Induction" }, + "description": "An electrode has been implanted into your brain's ventrolateral preoptic nucleus. It turns on whenever you're trying to fall asleep, creating an artificial but effective sensation of fatigue.", + "occupied_bodyparts": [ [ "head", 1 ] ], +- "flags": [ "BIONIC_TOGGLED" ] ++ "flags": [ "BIONIC_TOGGLED", "BIONIC_NPC_USABLE" ] + } + ] +--- a/data/json/items/bionics.json ++++ b/data/json/items/bionics.json +@@ -268,7 +268,7 @@ + }, + { + "id": "bio_ears", +- "copy-from": "bionic_general", ++ "copy-from": "bionic_general_npc_usable", + "type": "BIONIC_ITEM", + "name": { "str": "Enhanced Hearing CBM" }, + "looks_like": "bio_int_enhancer", +@@ -743,7 +743,7 @@ + }, + { + "id": "bio_fuel_cell_gasoline", +- "copy-from": "bionic_general", ++ "copy-from": "bionic_general_npc_usable", + "type": "BIONIC_ITEM", + "name": { "str": "Gasoline Fuel Cell CBM" }, + "looks_like": "bio_int_enhancer", +@@ -841,7 +841,7 @@ + }, + { + "id": "bio_surgical_razor", +- "copy-from": "bionic_general", ++ "copy-from": "bionic_general_npc_usable", + "type": "BIONIC_ITEM", + "name": { "str": "Autonomous Surgical Scalpels CBM" }, + "looks_like": "bio_int_enhancer", diff --git a/etc-01_fix-rubbersplosion.patch b/etc-01_fix-rubbersplosion.patch new file mode 100644 index 0000000..ef06b41 --- /dev/null +++ b/etc-01_fix-rubbersplosion.patch @@ -0,0 +1,19 @@ +--- a/data/json/items/ammo.json ++++ b/data/json/items/ammo.json +@@ -686,7 +686,7 @@ + "count": 25 + }, + { +- "type": "AMMO", ++ "type": "TOOL", + "id": "chunk_rubber", + "category": "spare_parts", + "price": 75, +@@ -697,7 +697,6 @@ + "material": "rubber", + "volume": "250 ml", + "weight": "38 g", +- "ammo_type": "components", + "flags": [ "NO_SALVAGE" ] + }, + { diff --git a/etc-02_add-missing-price-postapoc.patch b/etc-02_add-missing-price-postapoc.patch new file mode 100644 index 0000000..0770483 --- /dev/null +++ b/etc-02_add-missing-price-postapoc.patch @@ -0,0 +1,143 @@ +--- a/data/json/items/gun/223.json ++++ b/data/json/items/gun/223.json +@@ -118,7 +118,8 @@ + "description": "A bullpup assault rifle that was used by French armed forces only until recently. While the FAMAS was famous for its high fire rate, the MAS .223 is a semi-auto only variation imported to the US in the late eighties. It retains the integral bipod, though.", + "weight": "3800 g", + "volume": "4162 ml", +- "price": 2800000, ++ "price": 240000, ++ "price_postapoc": 5000, + "to_hit": -1, + "bashing": 12, + "material": [ "steel", "plastic" ], +@@ -302,7 +303,8 @@ + ] + ] + ], +- "relative": { "ranged_damage": { "damage_type": "stab", "amount": 1 }, "durability": 1 } ++ "relative": { "ranged_damage": { "damage_type": "stab", "amount": 1 }, "durability": 1 }, ++ "proportional": { "price": 1.1 } + }, + { + "id": "m4a1", + +--- a/data/json/items/gun/40.json ++++ b/data/json/items/gun/40.json +@@ -9,6 +9,7 @@ + "weight": "921 g", + "volume": "518 ml", + "price": 65000, ++ "price_postapoc": 1600, + "to_hit": -2, + "bashing": 8, + "material": [ "steel", "plastic" ], +@@ -73,6 +74,7 @@ + "weight": "785 g", + "volume": "505 ml", + "price": 65000, ++ "price_postapoc": 1600, + "to_hit": -2, + "bashing": 8, + "material": [ "plastic", "steel" ], + +--- a/data/json/items/gun/9mm.json ++++ b/data/json/items/gun/9mm.json +@@ -9,6 +9,7 @@ + "weight": "921 g", + "volume": "518 ml", + "price": 65000, ++ "price_postapoc": 1600, + "to_hit": -2, + "bashing": 8, + "material": [ "steel", "plastic" ], +@@ -360,6 +361,7 @@ + "weight": "785 g", + "volume": "505 ml", + "price": 65000, ++ "price_postapoc": 1750, + "to_hit": -2, + "bashing": 8, + "material": [ "plastic", "steel" ], + +--- a/data/json/items/magazine/223.json ++++ b/data/json/items/magazine/223.json +@@ -128,6 +128,7 @@ + "weight": "88 g", + "volume": "50 ml", + "price": 4000, ++ "price_postapoc": 125, + "material": "steel", + "symbol": "#", + "color": "light_gray", +@@ -145,6 +146,7 @@ + "weight": "91 g", + "volume": "350 ml", + "price": 4000, ++ "price_postapoc": 125, + "material": "steel", + "symbol": "#", + "color": "light_gray", +@@ -180,6 +182,7 @@ + "weight": "181 g", + "volume": "600 ml", + "price": 8500, ++ "price_postapoc": 275, + "material": [ "plastic", "steel" ], + "symbol": "#", + "color": "light_gray", +@@ -218,6 +221,7 @@ + "weight": "181 g", + "volume": "800 ml", + "price": 12000, ++ "price_postapoc": 750, + "material": "aluminum", + "symbol": "#", + "color": "light_gray", +@@ -235,6 +239,7 @@ + "weight": "581 g", + "volume": "1050 ml", + "price": 9250, ++ "price_postapoc": 550, + "to_hit": -2, + "bashing": 4, + "material": [ "steel", "plastic" ], +@@ -255,6 +260,7 @@ + "weight": "567 g", + "volume": "1500 ml", + "price": 9500, ++ "price_postapoc": 600, + "to_hit": -2, + "bashing": 4, + "material": [ "plastic", "steel" ], +@@ -275,6 +281,7 @@ + "weight": "272 g", + "volume": "1 L", + "price": 15000, ++ "price_postapoc": 900, + "material": "aluminum", + "symbol": "#", + "color": "light_gray", +@@ -292,6 +299,7 @@ + "weight": "998 g", + "volume": "1200 ml", + "price": 14000, ++ "price_postapoc": 850, + "material": [ "plastic", "steel" ], + "symbol": "#", + "color": "light_gray", +@@ -310,6 +318,7 @@ + "weight": "2220 g", + "volume": "1700 ml", + "price": 18000, ++ "price_postapoc": 1000, + "material": [ "plastic", "steel" ], + "symbol": "#", + "color": "light_gray", +@@ -366,6 +375,7 @@ + "weight": "190 g", + "volume": "620 ml", + "price": 8600, ++ "price_postapoc": 275, + "material": [ "steel", "plastic" ], + "symbol": "#", + "color": "light_gray", diff --git a/etc-03_revert-book-revamp.patch b/etc-03_revert-book-revamp.patch new file mode 100644 index 0000000..bc7b3d5 --- /dev/null +++ b/etc-03_revert-book-revamp.patch @@ -0,0 +1,1558 @@ +--- a/data/json/itemgroups/books.json ++++ b/data/json/itemgroups/books.json +@@ -184,6 +184,7 @@ + { "item": "novel_swash", "prob": 14 }, + { "item": "novel_western", "prob": 22 }, + { "item": "novel_war", "prob": 20 }, ++ { "item": "novel_war2", "prob": 20 }, + { "item": "novel_adventure", "prob": 14 }, + { "item": "novel_experimental", "prob": 1 }, + { "item": "novel_road", "prob": 10 }, +@@ -196,7 +197,9 @@ + { "item": "novel_pulp", "prob": 16 }, + { "item": "novel_thriller", "prob": 18 }, + { "item": "novel_coa", "prob": 5 }, ++ { "item": "novel_coa2", "prob": 5 }, + { "item": "novel_crime", "prob": 20 }, ++ { "item": "novel_crime2", "prob": 20 }, + { "item": "novel_horror", "prob": 18 }, + { "item": "novel_tragedy", "prob": 8 }, + { "item": "survnote", "prob": 1 } +@@ -223,6 +226,7 @@ + { "item": "story_book", "prob": 4 }, + { "item": "fairy_tales", "prob": 10 }, + { "item": "novel_coa", "prob": 10 }, ++ { "item": "novel_coa2", "prob": 10 }, + { "item": "child_book", "prob": 50 }, + { "item": "manual_dodge_kid", "prob": 20 }, + { "item": "mag_comic", "prob": 20 } +--- a/data/json/items/book/bloat.json ++++ b/data/json/items/book/bloat.json +@@ -1,199 +0,0 @@ +-[ +- { +- "id": "mycenacean_hymns", +- "type": "BOOK", +- "name": { "str": "Mycenacean Hymns", "str_pl": "copies of Mycenacean Hymns" }, +- "description": "A vellum book containing the hymns central to Marloss faith. As the verses lead to each other, the text sings of unity and promised paradise.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_bible2", +- "type": "BOOK", +- "name": { "str": "Eastern Orthodox Bible", "str_pl": "copies of Eastern Orthodox Bible" }, +- "description": "An English copy of the Eastern Orthodox translation of The Holy Bible.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_bible3", +- "type": "BOOK", +- "name": { "str": "Gideon Bible", "str_pl": "copies of Gideon Bible" }, +- "description": "An English translation of the Christian Bible, distributed free of charge by Gideons International.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_granth", +- "type": "BOOK", +- "name": { "str": "The Guru Granth Sahib", "str_pl": "copies of The Guru Granth Sahib" }, +- "description": "A single-volume copy of the central religious texts of Sikhism.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_hadith", +- "type": "BOOK", +- "name": { "str": "Hadith", "str_pl": "copies of Hadith" }, +- "description": "A Muslim religious text containing an account of the sayings and actions of the prophet Muhammad.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_kallisti", +- "type": "BOOK", +- "name": { "str": "Principia Discordia", "str_pl": "copies of Principia Discordia" }, +- "description": "A book that embodies the main beliefs of Discordianism. It seems to primarily concern chaos, and features a card in the back which informs you that you are now a 'genuine and authorized Pope of Discordia'.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_kojiki", +- "type": "BOOK", +- "name": { "str": "The Kojiki", "str_pl": "copies of The Kojiki" }, +- "description": "The oldest extant chronicle of Japan's myths and history, the stories contained in the Kojiki are part of the inspiration behind Shinto practices.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_mormon", +- "type": "BOOK", +- "name": { "str": "The Book of Mormon", "str_pl": "copies of The Book of Mormon" }, +- "description": "The sacred text of the Latter Day Saint movement of Christianity, originally published in 1830 by Joseph Smith.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_pastafarian", +- "type": "BOOK", +- "name": { +- "str": "The Gospel of the Flying Spaghetti Monster", +- "str_pl": "copies of The Gospel of the Flying Spaghetti Monster" +- }, +- "description": "A book that embodies the main beliefs of the Church of the Flying Spaghetti Monster. It seems to involve a lot of pirates and some sort of invisible drunken monster made of pasta.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_quran", +- "type": "BOOK", +- "name": { "str": "Quran", "str_pl": "copies of Quran" }, +- "description": "An English translation of the Muslim book of holy scriptures, with explanatory notes and commentaries to aid in understanding.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_scientology", +- "type": "BOOK", +- "name": { "str": "Dianetics", "str_pl": "copies of Dianetics" }, +- "description": "This book is the canonical text of Scientology. Written by a science fiction author, it contains self-improvement techniques and musings on psychology called Dianetics.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_slack", +- "type": "BOOK", +- "name": { "str": "The Book of the SubGenius", "str_pl": "copies of The Book of the SubGenius" }, +- "description": "A book about the Church of the SubGenius. It seems to involve a salesman named J. R. \"Bob\" Dobbs and a concept called 'slack'.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_sutras", +- "type": "BOOK", +- "name": { "str": "The Sutras of the Buddha", "str_pl": "copies of The Sutras of the Buddha" }, +- "description": "A collection of discourses attributed to the Buddha and his close disciples.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_talmud", +- "type": "BOOK", +- "name": { "str": "Talmud", "str_pl": "copies of Talmud" }, +- "description": "One of the central texts of Rabbinic Judaism, the Talmud expounds upon the Hebrew Bible with teachings and opinions of thousands of rabbis.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_tanakh", +- "type": "BOOK", +- "name": { "str": "Tanakh", "str_pl": "copies of Tanakh" }, +- "description": "A single-volume book containing the complete canon of the Jewish Bible.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_tripitaka", +- "type": "BOOK", +- "name": { "str": "The Tripitaka", "str_pl": "copies of The Tripitaka" }, +- "description": "A collection of sacred Buddhist writings describing their canons of scriptures.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_upanishads", +- "type": "BOOK", +- "name": { "str": "The Upanishads", "str_pl": "copies of The Upanishads" }, +- "description": "A collection of sacred Hindu writings regarding the nature of reality and describing the character and form of human salvation.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_vedas", +- "type": "BOOK", +- "name": { "str": "The Four Vedas", "str_pl": "copies of The Four Vedas" }, +- "description": "A single volume containing all four Vedas, which are the oldest scriptures of Hinduism.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_satanic", +- "type": "BOOK", +- "name": { "str": "The Satanic Bible", "str_pl": "copies of The Satanic Bible" }, +- "description": "A collection of essays, observations, and rituals published by Anton LaVey in 1969.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "holybook_havamal", +- "type": "BOOK", +- "name": { "str": "Hávamál", "str_pl": "copies of Hávamál" }, +- "description": "An English translation of several Old Norse poems. The poems contain proverbs and stories attributed to the god Odin, many transcribed from oral history.", +- "copy-from": "holybook_bible1" +- }, +- { +- "id": "priest_diary", +- "type": "BOOK", +- "name": { "str": "priest's diary", "str_pl": "priests' diaries" }, +- "description": "A small book filled with journal entries in Latin.", +- "copy-from": "holybook_bible1", +- "price": 1500, +- "fun": -1 +- }, +- { +- "id": "guidebook", +- "type": "BOOK", +- "name": { "str": "The Hitchhiker's Guide to the Cataclysm", "str_pl": "copies of The Hitchhiker's Guide to the Cataclysm" }, +- "description": "Inscribed on the cover in large, friendly letters, is the message \"Don't Panic\".", +- "copy-from": "paperback_novel", +- "price": 4200 +- }, +- { +- "id": "novel_crime_murdergrape", +- "type": "BOOK", +- "name": { "str": "Murdered by the Grapevine", "str_pl": "copies of Murdered by the Grapevine" }, +- "description": "This cheap paperback tells the story of a mob boss done in by mere suspicion. She never breaks a confidence, never rats out an accomplice, and never turns her back on a friend. Nonetheless her grip on the reigns of the underworld is eroded by rumor and paranoia.", +- "copy-from": "paperback_novel" +- }, +- { +- "id": "novel_spy_comefly", +- "type": "BOOK", +- "name": { "str": "Come Fly the Treacherous Skies", "str_pl": "copies of Come Fly the Treacherous Skies" }, +- "description": "This tale of intrigue betrays the story of a debonair mechanic driven by a lust for revenge. As she uncovers a sophisticated network of amateur pilots turned smugglers, the good guys and the bad guys begin to all look the same.", +- "copy-from": "paperback_novel" +- }, +- { +- "id": "novel_spy_rocketsci", +- "type": "BOOK", +- "name": { "str": "Lies, Damn Lies, and Rocket Science", "str_pl": "copies of Lies, Damn Lies, and Rocket Science" }, +- "description": "This spy novel tells the story of a jaded rocket scientist looking for redemption in all the wrong places. As selling state secrets becomes her career, she learns there isn't much of difference between a double-agent and a triple-agent.", +- "copy-from": "paperback_novel" +- }, +- { +- "id": "visions_solitude", +- "type": "BOOK", +- "name": { "str": "Visions in Solitude", "str_pl": "copies of Visions in Solitude" }, +- "description": "A small book detailing 'visions' a prisoner had on death row.", +- "copy-from": "paperback_novel", +- "price": 2900 +- }, +- { +- "id": "ZSG", +- "type": "BOOK", +- "name": { "str": "Zombie Survival Guide", "str_pl": "copies of Zombie Survival Guide" }, +- "description": "While this seems like it would be very useful in this situation, the sheer amount of misinformation present makes it practically useless.", +- "copy-from": "paperback_novel", +- "price": 1290 +- } +-] +--- a/data/json/items/book/misc.json ++++ b/data/json/items/book/misc.json +@@ -4,46 +4,36 @@ + "type": "BOOK", + "name": { "str": "paperback abstract" }, + "description": "An ordinary paperback book. Or is it? It is.", +- "weight": "400 g", +- "volume": "750 ml", ++ "weight": "371 g", ++ "volume": "700 ml", + "price": 750, + "price_postapoc": 50, + "material": [ "paper" ], +- "bashing": 5, +- "intelligence": 6, + "symbol": "?", + "looks_like": "story_book", + "color": "light_cyan", + "flags": [ "TINDER", "FLAMMABLE" ], +- "time": "40 m", +- "fun": 2 +- }, +- { +- "id": "mag_comic", +- "type": "BOOK", +- "name": { "str": "comic book" }, +- "description": "A super-hero comic.", +- "copy-from": "paperback_novel", +- "weight": "60 g", +- "volume": "200 ml", +- "price": 300, +- "bashing": 1, + "intelligence": 4, + "time": "15 m", +- "fun": 1 ++ "chapters": 16, ++ "fun": 2 + }, + { +- "id": "holybook_bible1", ++ "id": "ZSG", + "type": "BOOK", +- "name": { "str": "King James Bible", "str_pl": "copies of King James Bible" }, +- "description": "An English translation of the Christian Bible, which originated in England in the early 1600s.", +- "copy-from": "paperback_novel", +- "price": 550, +- "color": "dark_gray", +- "time": "40 m", ++ "name": { "str": "Zombie Survival Guide", "str_pl": "copies of Zombie Survival Guide" }, ++ "description": "While this seems like it would be very useful in this situation, the sheer amount of misinformation present makes it practically useless.", ++ "weight": "227 g", ++ "volume": "1 L", ++ "price": 1290, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "green", + "intelligence": 7, +- "fun": 1, +- "flags": [ "INSPIRATIONAL" ] ++ "time": "18 m", ++ "chapters": 28, ++ "fun": 2 + }, + { + "id": "black_box_transcript", +@@ -51,18 +41,32 @@ + "name": { "str": "black box transcript" }, + "//": "ooh, military records, probably Classified!", + "description": "A full flight log for a military aircraft. Nothing of interest stands out.", +- "copy-from": "paperback_novel", ++ "weight": "566 g", ++ "volume": "1250 ml", + "price": 5000, ++ "price_postapoc": 50, ++ "bashing": 5, ++ "material": [ "paper" ], ++ "symbol": "?", + "color": "light_green", +- "fun": -2 ++ "intelligence": 8, ++ "time": "30 m", ++ "fun": -1 + }, + { + "id": "child_book", + "type": "BOOK", + "name": { "str": "children's book" }, + "description": "A little book for little readers. The colorful cartoon characters and sweet stories contained herein belong to a different time, before the dead walked and the world moved on.", +- "copy-from": "paperback_novel", ++ "weight": "52 g", ++ "volume": "250 ml", + "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_cyan", ++ "time": "4 m", ++ "chapters": 4, + "fun": 1 + }, + { +@@ -70,33 +74,66 @@ + "type": "BOOK", + "name": { "str_sp": "Ranch Prospectus" }, + "description": "A short paper of the economic viability of constructing an agricultural outpost.", +- "copy-from": "paperback_novel", +- "price": 3000 ++ "weight": "1 g", ++ "volume": "250 ml", ++ "price": 3000, ++ "price_postapoc": 50, ++ "bashing": 1, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_cyan", ++ "intelligence": 5, ++ "time": "10 m" + }, + { + "id": "decoy_elfa", + "type": "BOOK", + "name": { "str": "standpipe maintenance log" }, + "description": "This binder details the scheduled maintenance for several plumbing systems throughout the facility.", +- "copy-from": "black_box_transcript", ++ "weight": "400 g", ++ "volume": "750 ml", + "price": 400, +- "material": [ "paper", "plastic" ] ++ "price_postapoc": 50, ++ "material": [ "paper", "plastic" ], ++ "symbol": "?", ++ "color": "light_green", ++ "intelligence": 8, ++ "time": "45 m", ++ "fun": -2 + }, + { + "id": "essay_book", + "type": "BOOK", + "name": { "str": "book of essays", "str_pl": "books of essays" }, + "description": "A collection of essays by various authors from around the world, including works by Churchill, Mailer, Eco, and Voltaire.", +- "copy-from": "paperback_novel", +- "price": 1250 ++ "weight": "700 g", ++ "volume": "750 ml", ++ "price": 1250, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_blue", ++ "intelligence": 10, ++ "time": "26 m", ++ "chapters": 40, ++ "fun": 3 + }, + { + "id": "fairy_tales", + "type": "BOOK", + "name": { "str": "book of fairy tales", "str_pl": "books of fairy tales" }, + "description": "An amusing collection of folklore featuring the usual cast of fairies, goblins, and trolls.", +- "copy-from": "paperback_novel", ++ "weight": "410 g", ++ "volume": "750 ml", + "price": 950, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_blue", ++ "intelligence": 6, ++ "time": "18 m", ++ "chapters": 24, ++ "fun": 3, + "//": "The ids below represent the Aarne-Thompson System of folklore classification. Do not change.", + "snippet_category": [ + { +@@ -180,46 +217,458 @@ + ] + }, + { ++ "id": "guidebook", ++ "type": "BOOK", ++ "name": { "str": "The Hitchhiker's Guide to the Cataclysm", "str_pl": "copies of The Hitchhiker's Guide to the Cataclysm" }, ++ "description": "Inscribed on the cover in large, friendly letters, is the message \"Don't Panic\".", ++ "weight": "1764 g", ++ "volume": "1 L", ++ "price": 88200, ++ "price_postapoc": 50, ++ "bashing": 2, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "green", ++ "intelligence": 3, ++ "time": "1 m" ++ }, ++ { ++ "id": "mycenacean_hymns", ++ "type": "BOOK", ++ "name": { "str": "Mycenacean Hymns", "str_pl": "copies of Mycenacean Hymns" }, ++ "description": "A vellum book containing the hymns central to Marloss faith. As the verses lead to each other, the text sings of unity and promised paradise.", ++ "weight": "368 g", ++ "volume": "1 L", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "cyan", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_bible1", ++ "type": "BOOK", ++ "name": { "str": "King James Bible", "str_pl": "copies of King James Bible" }, ++ "description": "An English translation of the Christian Bible, which originated in England in the early 1600s.", ++ "weight": "368 g", ++ "volume": "1 L", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_bible2", ++ "type": "BOOK", ++ "name": { "str": "Eastern Orthodox Bible", "str_pl": "copies of Eastern Orthodox Bible" }, ++ "description": "An English copy of the Eastern Orthodox translation of The Holy Bible.", ++ "weight": "428 g", ++ "volume": "1250 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_bible3", ++ "type": "BOOK", ++ "name": { "str": "Gideon Bible", "str_pl": "copies of Gideon Bible" }, ++ "description": "An English translation of the Christian Bible, distributed free of charge by Gideons International.", ++ "weight": "368 g", ++ "volume": "1 L", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_granth", ++ "type": "BOOK", ++ "name": { "str": "The Guru Granth Sahib", "str_pl": "copies of The Guru Granth Sahib" }, ++ "description": "A single-volume copy of the central religious texts of Sikhism.", ++ "weight": "590 g", ++ "volume": "1 L", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_hadith", ++ "type": "BOOK", ++ "name": { "str": "Hadith", "str_pl": "copies of Hadith" }, ++ "description": "A Muslim religious text containing an account of the sayings and actions of the prophet Muhammad.", ++ "weight": "398 g", ++ "volume": "500 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_kallisti", ++ "type": "BOOK", ++ "name": { "str": "Principia Discordia", "str_pl": "copies of Principia Discordia" }, ++ "description": "A book that embodies the main beliefs of Discordianism. It seems to primarily concern chaos, and features a card in the back which informs you that you are now a 'genuine and authorized Pope of Discordia'.", ++ "weight": "292 g", ++ "volume": "150 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_kojiki", ++ "type": "BOOK", ++ "name": { "str": "The Kojiki", "str_pl": "copies of The Kojiki" }, ++ "description": "The oldest extant chronicle of Japan's myths and history, the stories contained in the Kojiki are part of the inspiration behind Shinto practices.", ++ "weight": "368 g", ++ "volume": "600 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_mormon", ++ "type": "BOOK", ++ "name": { "str": "The Book of Mormon", "str_pl": "copies of The Book of Mormon" }, ++ "description": "The sacred text of the Latter Day Saint movement of Christianity, originally published in 1830 by Joseph Smith.", ++ "weight": "368 g", ++ "volume": "600 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_pastafarian", ++ "type": "BOOK", ++ "name": { ++ "str": "The Gospel of the Flying Spaghetti Monster", ++ "str_pl": "copies of The Gospel of the Flying Spaghetti Monster" ++ }, ++ "description": "A book that embodies the main beliefs of the Church of the Flying Spaghetti Monster. It seems to involve a lot of pirates and some sort of invisible drunken monster made of pasta.", ++ "weight": "292 g", ++ "volume": "500 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_quran", ++ "type": "BOOK", ++ "name": { "str": "Quran", "str_pl": "copies of Quran" }, ++ "description": "An English translation of the Muslim book of holy scriptures, with explanatory notes and commentaries to aid in understanding.", ++ "weight": "412 g", ++ "volume": "600 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_scientology", ++ "type": "BOOK", ++ "name": { "str": "Dianetics", "str_pl": "copies of Dianetics" }, ++ "description": "This book is the canonical text of Scientology. Written by a science fiction author, it contains self-improvement techniques and musings on psychology called Dianetics.", ++ "weight": "486 g", ++ "volume": "1300 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_slack", ++ "type": "BOOK", ++ "name": { "str": "The Book of the SubGenius", "str_pl": "copies of The Book of the SubGenius" }, ++ "description": "A book about the Church of the SubGenius. It seems to involve a salesman named J. R. \"Bob\" Dobbs and a concept called 'slack'.", ++ "weight": "292 g", ++ "volume": "600 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_sutras", ++ "type": "BOOK", ++ "name": { "str": "The Sutras of the Buddha", "str_pl": "copies of The Sutras of the Buddha" }, ++ "description": "A collection of discourses attributed to the Buddha and his close disciples.", ++ "weight": "496 g", ++ "volume": "1 L", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_talmud", ++ "type": "BOOK", ++ "name": { "str": "Talmud", "str_pl": "copies of Talmud" }, ++ "description": "One of the central texts of Rabbinic Judaism, the Talmud expounds upon the Hebrew Bible with teachings and opinions of thousands of rabbis.", ++ "weight": "460 g", ++ "volume": "1 L", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_tanakh", ++ "type": "BOOK", ++ "name": { "str": "Tanakh", "str_pl": "copies of Tanakh" }, ++ "description": "A single-volume book containing the complete canon of the Jewish Bible.", ++ "weight": "512 g", ++ "volume": "1800 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_tripitaka", ++ "type": "BOOK", ++ "name": { "str": "The Tripitaka", "str_pl": "copies of The Tripitaka" }, ++ "description": "A collection of sacred Buddhist writings describing their canons of scriptures.", ++ "weight": "513 g", ++ "volume": "1 L", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_upanishads", ++ "type": "BOOK", ++ "name": { "str": "The Upanishads", "str_pl": "copies of The Upanishads" }, ++ "description": "A collection of sacred Hindu writings regarding the nature of reality and describing the character and form of human salvation.", ++ "weight": "482 g", ++ "volume": "750 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_vedas", ++ "type": "BOOK", ++ "name": { "str": "The Four Vedas", "str_pl": "copies of The Four Vedas" }, ++ "description": "A single volume containing all four Vedas, which are the oldest scriptures of Hinduism.", ++ "weight": "540 g", ++ "volume": "1700 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_satanic", ++ "type": "BOOK", ++ "name": { "str": "The Satanic Bible", "str_pl": "copies of The Satanic Bible" }, ++ "description": "A collection of essays, observations, and rituals published by Anton LaVey in 1969.", ++ "weight": "130 g", ++ "volume": "250 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "mag_comic", ++ "type": "BOOK", ++ "name": { "str": "comic book" }, ++ "description": "A super-hero comic.", ++ "weight": "60 g", ++ "volume": "250 ml", ++ "price": 300, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_cyan", ++ "time": "7 m", ++ "fun": 2 ++ }, ++ { + "id": "mag_gaming", + "type": "BOOK", + "name": { "str": "Computer Gaming", "str_pl": "issues of Computer Gaming" }, + "description": "Reviews of recently released computer games and previews of upcoming titles.", +- "copy-from": "mag_comic" ++ "weight": "60 g", ++ "volume": "250 ml", ++ "price": 300, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "pink", ++ "intelligence": 7, ++ "time": "8 m", ++ "fun": 2 + }, + { + "id": "mag_news", + "type": "BOOK", + "name": { "str": "TIME magazine" }, + "description": "Current events concerning a bunch of people who're all (un)dead now.", +- "copy-from": "mag_comic", +- "price": 400 ++ "weight": "60 g", ++ "volume": "250 ml", ++ "price": 400, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "pink", ++ "intelligence": 7, ++ "time": "10 m", ++ "fun": 2 + }, + { + "id": "mag_porn", + "type": "BOOK", + "name": { "str": "Playboy", "str_pl": "issues of Playboy" }, + "description": "You can read it for the articles. Or not.", +- "copy-from": "mag_comic", ++ "weight": "60 g", ++ "volume": "250 ml", + "price": 400, + "price_postapoc": 250, +- "color": "pink" ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "pink", ++ "time": "10 m", ++ "chapters": 4, ++ "fun": 1 + }, + { + "id": "necropolis_freq", + "type": "BOOK", + "name": { "str": "frequency list" }, + "description": "A notepad with a number of frequencies scribbled on it.", +- "copy-from": "mag_comic", ++ "weight": "1 g", ++ "volume": "250 ml", + "price": 3000, +- "fun": -2 ++ "price_postapoc": 50, ++ "bashing": 1, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_cyan", ++ "intelligence": 2, ++ "time": "10 m" + }, + { + "id": "news_regional", + "type": "BOOK", + "name": { "str": "Rural Digest-Examiner", "str_pl": "issues of Rural Digest-Examiner" }, + "description": "A newsweekly covering regional events. There is an article on the winter's snowstorms and several letters to the editor concerning the community response.", +- "copy-from": "mag_comic", +- "price": 350 ++ "weight": "80 g", ++ "volume": "250 ml", ++ "price": 350, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "pink", ++ "intelligence": 5, ++ "time": "5 m", ++ "fun": 1 + }, + { + "id": "novel_adventure", +@@ -227,7 +676,10 @@ + "name": { "str": "adventure novel" }, + "description": "The stirring tale of a race against time, in search of a lost city located in the dark heart of the African continent.", + "copy-from": "paperback_novel", +- "price": 850 ++ "price": 850, ++ "price_postapoc": 50, ++ "time": "20 m", ++ "fun": 3 + }, + { + "id": "novel_buddy", +@@ -235,78 +687,158 @@ + "name": { "str": "buddy novel" }, + "description": "A gripping tale of two friends struggling to survive on the streets of New York City.", + "copy-from": "paperback_novel", +- "price": 650 ++ "weight": "244 g", ++ "volume": "500 ml", ++ "price": 650, ++ "time": "20 m" + }, + { + "id": "novel_coa", + "type": "BOOK", + "name": { "str": "coming of age novel" }, + "description": "A classic tale about growing up, portraying one young man's funny and poignant experiences with life, love, and sex.", +- "copy-from": "paperback_novel" ++ "weight": "187 g", ++ "volume": "500 ml", ++ "price": 750, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_blue", ++ "intelligence": 4, ++ "time": "20 m", ++ "chapters": 16, ++ "fun": 2 ++ }, ++ { ++ "id": "novel_coa2", ++ "type": "BOOK", ++ "name": { "str": "coming of age novel" }, ++ "copy-from": "novel_coa", ++ "description": "A graphic novel about a young girl living in Iran during the 1980's, seeing the world change around her as Iraq invaded her country.", ++ "relative": { "time": -4, "chapters": -2, "fun": 1 } + }, + { + "id": "novel_crime", + "type": "BOOK", + "name": { "str": "crime novel" }, + "description": "After their diamond heist goes wrong, the surviving criminals begin to suspect that one of them is a police informant.", +- "copy-from": "paperback_novel", +- "price": 850 ++ "weight": "227 g", ++ "volume": "750 ml", ++ "price": 850, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_blue", ++ "intelligence": 6, ++ "time": "20 m", ++ "chapters": 24, ++ "fun": 3 ++ }, ++ { ++ "id": "novel_crime2", ++ "type": "BOOK", ++ "name": { "str": "crime novel" }, ++ "copy-from": "novel_crime", ++ "description": "A story about three people in the fictional city of Los Santos, a gangster, an upper-class man, and a psychopath, eventually banding together to pull-off the biggest heist in the city's history", ++ "relative": { "time": -3, "chapters": -3 } ++ }, ++ { ++ "id": "novel_crime_murdergrape", ++ "type": "BOOK", ++ "name": { "str": "Murdered by the Grapevine", "str_pl": "copies of Murdered by the Grapevine" }, ++ "description": "This cheap paperback tells the story of a mob boss done in by mere suspicion. She never breaks a confidence, never rats out an accomplice, and never turns her back on a friend. Nonetheless her grip on the reigns of the underworld is eroded by rumor and paranoia.", ++ "copy-from": "paperback_novel" + }, + { + "id": "novel_drama", + "type": "BOOK", + "name": { "str": "drama novel" }, + "description": "A real book for real adults.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "intelligence": 7, ++ "time": "25 m", ++ "chapters": 28, ++ "fun": 3 + }, + { + "id": "novel_erotic", + "type": "BOOK", + "name": { "str": "erotic novel" }, + "description": "A hackneyed fictional narrative concealing low-grade literary smut.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "weight": "200 g", ++ "volume": "500 ml", ++ "time": "18 m", ++ "chapters": 28 + }, + { + "id": "novel_experimental", + "type": "BOOK", + "name": { "str": "experimental novel" }, + "description": "A bizarre play about the philosophy of existential absurdity. Or maybe it's about two guys waiting for their friend to show up. It's confusing.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "weight": "142 g", ++ "volume": "500 ml", ++ "intelligence": 7, ++ "time": "20 m", ++ "chapters": 20 + }, + { + "id": "novel_fantasy", + "type": "BOOK", + "name": { "str": "fantasy novel" }, + "description": "Basic sword & sorcery.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "weight": "227 g", ++ "volume": "1 L", ++ "intelligence": 7, ++ "time": "20 m", ++ "chapters": 28, ++ "fun": 3 + }, + { + "id": "novel_horror", + "type": "BOOK", + "name": { "str": "horror novel" }, + "description": "Maybe not the best reading material considering the situation.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "weight": "227 g", ++ "intelligence": 7, ++ "time": "18 m", ++ "chapters": 28 + }, + { + "id": "novel_mystery", + "type": "BOOK", + "name": { "str": "mystery novel" }, + "description": "A detective investigates an unusual murder in a secluded location.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "intelligence": 7, ++ "time": "18 m", ++ "chapters": 28, ++ "fun": 3 + }, + { + "id": "novel_pulp", + "type": "BOOK", + "name": { "str": "pulp novel" }, + "description": "A hardboiled detective tale filled with hard hitting action and intrigue.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "intelligence": 6, ++ "time": "18 m", ++ "chapters": 24, ++ "fun": 3 + }, + { + "id": "novel_road", + "type": "BOOK", + "name": { "str": "road novel" }, + "description": "A tale about a group of friends who wander the USA in the 1960s against a backdrop of jazz, poetry and drug use.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "weight": "244 g", ++ "volume": "500 ml", ++ "time": "20 m", ++ "fun": 3 + }, + { + "id": "novel_romance", +@@ -320,23 +852,51 @@ + "type": "BOOK", + "name": { "str": "samurai novel" }, + "description": "The classic tale of a wandering swordsman who comes to a small settlement and is hired to help the townsfolk defend themselves from a band of marauding outlaws.", +- "copy-from": "paperback_novel" ++ "weight": "322 g", ++ "volume": "750 ml", ++ "price": 750, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_blue", ++ "intelligence": 7, ++ "time": "20 m", ++ "chapters": 28, ++ "fun": 4 + }, + { + "id": "novel_satire", + "type": "BOOK", + "name": { "str": "satire novel" }, + "description": "A political satire of the pre-apocalypse world. Looking back on it from this side of Armageddon makes it seem all the more ridiculous.", +- "copy-from": "paperback_novel", +- "price": 850 ++ "weight": "520 g", ++ "volume": "750 ml", ++ "price": 850, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_blue", ++ "intelligence": 7, ++ "time": "36 m", ++ "chapters": 28, ++ "fun": 2 + }, + { + "id": "novel_scifi", + "type": "BOOK", + "name": { "str": "scifi novel" }, + "description": "Aliens, ray guns, and space ships.", +- "copy-from": "paperback_novel", ++ "weight": "227 g", ++ "volume": "750 ml", + "price": 850, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_blue", ++ "intelligence": 6, ++ "time": "20 m", ++ "chapters": 24, ++ "fun": 3, + "snippet_category": [ + { + "id": "scifi1_1", +@@ -487,13 +1047,35 @@ + "type": "BOOK", + "name": { "str": "sports novel" }, + "description": "The dramatic tale of a small-time boxer who gets a rare chance to fight the heavy-weight champion, and seize his one chance to make a better life for himself while impressing the cute girl who works in the pet store.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "intelligence": 7, ++ "time": "20 m", ++ "chapters": 28, ++ "fun": 3 + }, + { + "id": "novel_spy", + "type": "BOOK", + "name": { "str": "spy novel" }, + "description": "A tale of intrigue and espionage amongst Nazis, no, Commies, no, Iraqis!", ++ "copy-from": "paperback_novel", ++ "intelligence": 5, ++ "time": "18 m", ++ "chapters": 20, ++ "fun": 3 ++ }, ++ { ++ "id": "novel_spy_comefly", ++ "type": "BOOK", ++ "name": { "str": "Come Fly the Treacherous Skies", "str_pl": "copies of Come Fly the Treacherous Skies" }, ++ "description": "This tale of intrigue betrays the story of a debonair mechanic driven by a lust for revenge. As she uncovers a sophisticated network of amateur pilots turned smugglers, the good guys and the bad guys begin to all look the same.", ++ "copy-from": "paperback_novel" ++ }, ++ { ++ "id": "novel_spy_rocketsci", ++ "type": "BOOK", ++ "name": { "str": "Lies, Damn Lies, and Rocket Science", "str_pl": "copies of Lies, Damn Lies, and Rocket Science" }, ++ "description": "This spy novel tells the story of a jaded rocket scientist looking for redemption in all the wrong places. As selling state secrets becomes her career, she learns there isn't much of difference between a double-agent and a triple-agent.", + "copy-from": "paperback_novel" + }, + { +@@ -501,42 +1083,74 @@ + "type": "BOOK", + "name": { "str": "swashbuckling novel" }, + "description": "An exciting seventeenth century tale of how an enslaved Irish doctor and his comrades-in-chains escape and become heroic pirates of the Robin Hood variety.", +- "copy-from": "paperback_novel" ++ "weight": "582 g", ++ "volume": "750 ml", ++ "copy-from": "paperback_novel", ++ "intelligence": 7, ++ "time": "20 m", ++ "chapters": 28, ++ "fun": 4 + }, + { + "id": "novel_thriller", + "type": "BOOK", + "name": { "str": "thriller novel" }, + "description": "A suspenseful tale of betrayal and revenge.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "intelligence": 5, ++ "time": "18 m", ++ "chapters": 20, ++ "fun": 3 + }, + { + "id": "novel_tragedy", + "type": "BOOK", + "name": { "str": "tragedy novel" }, + "description": "The story of two young lovers whose feuding families threaten to keep them apart.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "weight": "263 g", ++ "volume": "1 L", ++ "intelligence": 7, ++ "time": "18 m", ++ "chapters": 28 + }, + { + "id": "novel_war", + "type": "BOOK", + "name": { "str": "war novel" }, + "description": "A thrilling narrative of survival in a prisoner of war camp during the Second World War, filled with riveting subplots about rat farming and dysentery.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "weight": "686 g", ++ "price_postapoc": 50, ++ "intelligence": 7, ++ "time": "20 m", ++ "chapters": 28, ++ "fun": 3 ++ }, ++ { ++ "id": "novel_war2", ++ "type": "BOOK", ++ "name": { "str": "war novel" }, ++ "copy-from": "novel_war", ++ "description": "A story about a Bosnian citizen who goes through many hardships and near death during the breakup of Yugoslavia.", ++ "relative": { "time": -4, "chapters": -4 } + }, + { + "id": "novel_western", + "type": "BOOK", + "name": { "str": "western novel" }, + "description": "The classic tale of a gunfighting stranger who comes to a small settlement and is hired to help the townsfolk defend themselves from a band of marauding outlaws.", +- "copy-from": "paperback_novel" ++ "copy-from": "paperback_novel", ++ "intelligence": 5, ++ "time": "20 m", ++ "chapters": 28, ++ "fun": 4 + }, + { + "id": "philosophy_book", + "type": "BOOK", + "name": { "str": "book of philosophy", "str_pl": "books of philosophy" }, + "description": "A deep discussion of morality with an emphasis on epistemology and logic.", +- "copy-from": "paperback_novel", + "snippet_category": [ + { + "id": "philosophy1", +@@ -686,90 +1300,230 @@ + }, + { "id": "philosophy45", "text": "This is a copy of \"Anti-Capitalist Mentality\" by Ludwig von Mises." } + ], +- "price": 1250 ++ "weight": "350 g", ++ "volume": "750 ml", ++ "price": 1250, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_blue", ++ "intelligence": 9, ++ "time": "36 m", ++ "chapters": 44, ++ "fun": 3 + }, + { + "id": "phonebook", + "type": "BOOK", + "name": { "str": "phone book" }, + "description": "This hefty volume contains the telephone numbers of individuals, businesses, and utilities in the nearby area, pretty useless during the apocalypse and all.", +- "copy-from": "black_box_transcript", +- "weight": "2 kg", +- "volume": "1500 ml", +- "price": 800 ++ "weight": "854 g", ++ "volume": "2500 ml", ++ "price": 800, ++ "price_postapoc": 50, ++ "bashing": 2, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "yellow", ++ "intelligence": 4, ++ "time": "1 m", ++ "chapters": 200, ++ "fun": -5 + }, + { + "id": "photo_album", + "type": "BOOK", + "name": { "str": "photo album" }, + "description": "A leather album full of photos of somebody's family. You don't know any of the people in them, but seeing these pictures still makes you think of happier times.", +- "copy-from": "paperback_novel", ++ "weight": "180 g", ++ "volume": "250 ml", + "price": 3000, ++ "price_postapoc": 50, + "material": [ "paper", "leather" ], +- "fun": 1 ++ "symbol": "?", ++ "color": "light_gray", ++ "time": "10 m", ++ "chapters": 4, ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] + }, + { + "id": "plays_book", + "type": "BOOK", + "name": { "str": "book of plays", "str_pl": "books of plays" }, + "description": "A collection of plays by various authors from around the world, including scripts by Wilde, Beckett, Checkov, and Shakespeare.", +- "copy-from": "paperback_novel", +- "price": 1150 ++ "weight": "700 g", ++ "volume": "750 ml", ++ "price": 1150, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_blue", ++ "intelligence": 9, ++ "time": "18 m", ++ "chapters": 36, ++ "fun": 2 + }, + { + "id": "poetry_book", + "type": "BOOK", + "name": { "str": "book of poetry", "str_pl": "books of poetry" }, + "description": "A collection of poetry by various authors from around the world, including writings by Dickinson, Goethe, Thoreau, and Yeats.", +- "copy-from": "paperback_novel", +- "price": 1050 ++ "weight": "400 g", ++ "volume": "500 ml", ++ "price": 1050, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_blue", ++ "intelligence": 9, ++ "time": "18 m", ++ "chapters": 36, ++ "fun": 2 ++ }, ++ { ++ "id": "priest_diary", ++ "type": "BOOK", ++ "name": { "str": "priest's diary", "str_pl": "priests' diaries" }, ++ "description": "A small book filled with journal entries in Latin.", ++ "weight": "340 g", ++ "volume": "750 ml", ++ "price": 1500, ++ "price_postapoc": 50, ++ "bashing": 3, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_gray", ++ "intelligence": 15, ++ "time": "30 m", ++ "fun": -1, ++ "flags": [ "INSPIRATIONAL" ] + }, + { + "id": "record_accounting", + "type": "BOOK", + "name": { "str": "corporate accounting ledger" }, + "description": "If you knew what to look for something might stand out…", +- "copy-from": "black_box_transcript", +- "price": 2000 ++ "weight": "566 g", ++ "volume": "1250 ml", ++ "price": 2000, ++ "price_postapoc": 50, ++ "bashing": 5, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_green", ++ "intelligence": 10, ++ "time": "30 m", ++ "fun": -1 + }, + { + "id": "record_patient", + "type": "BOOK", + "name": { "str_sp": "patient treatment records" }, + "description": "A massive stack of medical records that contain every gory detail.", +- "copy-from": "paperback_novel", +- "price": 500 ++ "weight": "680 g", ++ "volume": "1500 ml", ++ "price": 500, ++ "price_postapoc": 50, ++ "bashing": 6, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_green", ++ "intelligence": 8, ++ "time": "30 m", ++ "fun": -1 + }, + { + "id": "record_weather", + "type": "BOOK", + "name": { "str_sp": "national weather transcripts" }, + "description": "Old weather records are about as interesting as a rock.", +- "copy-from": "black_box_transcript", +- "price": 500 ++ "weight": "454 g", ++ "volume": "1750 ml", ++ "price": 500, ++ "price_postapoc": 50, ++ "bashing": 7, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_green", ++ "intelligence": 4, ++ "time": "30 m", ++ "fun": -1 + }, + { + "id": "story_book", + "type": "BOOK", + "name": { "str": "big book of short stories", "str_pl": "big books of short stories" }, + "description": "This humongous volume contains a vast collection of short stories by different authors, spanning a wide variety of topics and genres.", +- "copy-from": "paperback_novel", +- "price": 1400 ++ "weight": "1720 g", ++ "volume": "1 L", ++ "price": 1400, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_blue", ++ "intelligence": 7, ++ "time": "48 m", ++ "chapters": 28, ++ "fun": 5 + }, + { + "id": "tall_tales", + "type": "BOOK", + "name": { "str": "book of tall tales", "str_pl": "books of tall tales" }, + "description": "An entertaining collection of early American folklore, featuring tales of larger than life individuals and their amazing adventures.", +- "copy-from": "paperback_novel", +- "price": 1050 ++ "weight": "360 g", ++ "volume": "750 ml", ++ "price": 1050, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_blue", ++ "intelligence": 6, ++ "time": "18 m", ++ "chapters": 24, ++ "fun": 3 ++ }, ++ { ++ "id": "visions_solitude", ++ "type": "BOOK", ++ "name": { "str": "Visions in Solitude", "str_pl": "copies of Visions in Solitude" }, ++ "description": "A small book detailing 'visions' a prisoner had on death row.", ++ "weight": "227 g", ++ "volume": "750 ml", ++ "price": 2900, ++ "price_postapoc": 50, ++ "bashing": 3, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "light_cyan", ++ "intelligence": 6, ++ "time": "30 m", ++ "fun": 2, ++ "flags": [ "INSPIRATIONAL" ] ++ }, ++ { ++ "id": "holybook_havamal", ++ "type": "BOOK", ++ "name": { "str": "Hávamál", "str_pl": "copies of Hávamál" }, ++ "description": "An English translation of several Old Norse poems. The poems contain proverbs and stories attributed to the god Odin, many transcribed from oral history.", ++ "weight": "292 g", ++ "volume": "750 ml", ++ "price": 550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "symbol": "?", ++ "color": "dark_gray", ++ "intelligence": 8, ++ "time": "10 m", ++ "fun": 1, ++ "flags": [ "INSPIRATIONAL" ] + }, + { + "type": "BOOK", + "id": "classic_literature", + "name": { "str": "book of classic literature", "str_pl": "books of classic literature" }, + "description": "A book of classic literature, timeless and enjoyable but a bit dense to read.", +- "copy-from": "paperback_novel", + "snippet_category": [ + { "id": "classic1", "text": "This is a copy of Dickens' \"Bleak House\"." }, + { "id": "classic2", "text": "This is a copy of \"Great Expectations\" by Charles Dickens." }, +@@ -868,15 +1622,24 @@ + { "id": "classic53", "text": "This is a copy of \"Mr Midshipman Easy\" by Frederick Marryat." }, + { "id": "classic54", "text": "This is a copy of \"Peter Simple\" by Frederick Marryat." } + ], ++ "weight": "350 g", ++ "volume": "750 ml", + "price": 2000, +- "looks_like": "tall_tales" ++ "price_postapoc": 50, ++ "material": [ "paper" ], ++ "looks_like": "tall_tales", ++ "color": "light_blue", ++ "symbol": "?", ++ "intelligence": 7, ++ "time": "28 m", ++ "chapters": 40, ++ "fun": 3 + }, + { + "type": "BOOK", + "id": "collector_book", + "name": { "str": "collector's edition book" }, + "description": "A unique, valuable book that has been kept as a collector's item.", +- "copy-from": "paperback_novel", + "snippet_category": [ + { "id": "fancy1", "text": "This is a high-quality leather bound copy of Charles Dickens' \"A Tale of Two Cities\"." }, + { "id": "fancy2", "text": "This is a very old but well-preserved copy of Charles Dickens' \"Oliver Twist\"." }, +@@ -954,8 +1717,17 @@ + "text": "This is a first edition copy of Terry Pratchett's \"The Colour of Magic\". In the inner cover is a handwritten note that reads \"To Chris, thanks for believing I could do it. Best regards, Terry.\"" + } + ], ++ "weight": "400 g", ++ "volume": "750 ml", + "price": 4550, ++ "price_postapoc": 50, ++ "material": [ "paper" ], + "looks_like": "tall_tales", +- "fun": 3 ++ "color": "light_blue", ++ "symbol": "?", ++ "intelligence": 7, ++ "time": "28 m", ++ "chapters": 40, ++ "fun": 4 + } + ] +--- a/data/json/obsoletion/items.json ++++ b/data/json/obsoletion/items.json +@@ -3408,26 +3408,5 @@ + "symbol": "|", + "color": "brown" +- }, +- { +- "id": "novel_coa2", +- "type": "BOOK", +- "name": { "str": "coming of age novel" }, +- "copy-from": "novel_coa", +- "description": "A graphic novel about a young girl living in Iran during the 1980's, seeing the world change around her as Iraq invaded her country." +- }, +- { +- "id": "novel_crime2", +- "type": "BOOK", +- "name": { "str": "crime novel" }, +- "copy-from": "novel_crime", +- "description": "A story about three people in the fictional city of Los Santos, a gangster, an upper-class man, and a psychopath, eventually banding together to pull-off the biggest heist in the city's history" +- }, +- { +- "id": "novel_war2", +- "type": "BOOK", +- "name": { "str": "war novel" }, +- "copy-from": "novel_war", +- "description": "A story about a Bosnian citizen who goes through many hardships and near death during the breakup of Yugoslavia." + } + ] diff --git a/foods-01_fix-food-materials.patch b/foods-01_fix-food-materials.patch new file mode 100644 index 0000000..5c27629 --- /dev/null +++ b/foods-01_fix-food-materials.patch @@ -0,0 +1,42 @@ +--- a/data/json/items/comestibles/drink.json ++++ b/data/json/items/comestibles/drink.json +@@ -39,7 +39,8 @@ + "description": "Milk some almonds? Not quite, but blend them with water, yes! A dairy-free alternative strong in calcium! Rival to soy milk.", + "price": 40, + "price_postapoc": 50, +- "material": "water", ++ "material": "nut", ++ "primary_material": "water", + "volume": "250 ml", + "phase": "liquid", + "vitamins": [ [ "vitA", 2 ], [ "calcium", 11 ] ], +@@ -62,7 +63,8 @@ + "description": "Milk some soybeans? Not quite, but blend them with water, yes! A dairy-free alternative strong in protein! Rival to almond milk.", + "price": 40, + "price_postapoc": 50, +- "material": "water", ++ "material": "veggy", ++ "primary_material": "water", + "volume": "250 ml", + "phase": "liquid", + "vitamins": [ [ "vitA", 2 ], [ "iron", 1 ], [ "calcium", 7 ] ], +--- a/data/json/items/comestibles/drink_other.json ++++ a/data/json/items/comestibles/drink_other.json +@@ -146,6 +146,7 @@ + "volume": "250 ml", + "comestible_type": "DRINK", + "container": "jar_glass_sealed", ++ "material": [ "nut", "junk" ], + "primary_material": "junk", + "quench": -2, + "calories": 190, +--- a/data/json/items/comestibles/other.json ++++ b/data/json/items/comestibles/other.json +@@ -80,6 +80,7 @@ + "description": "A translucent hexagonal chunk of wax, filled with dense, milky jelly. Though some hold it as a panacea, it doesn't have any medical benefit. Still, it is delicious, and rich with the most beneficial substances the hive can produce.", + "price": 20000, + "price_postapoc": 4000, ++ "material": "honey", + "volume": "250 ml", + "flags": [ "EDIBLE_FROZEN", "NUTRIENT_OVERRIDE" ], + "fun": 7 diff --git a/itemgroups-01_hk46-is-milspec.patch b/itemgroups-01_hk46-is-milspec.patch new file mode 100644 index 0000000..3df910d --- /dev/null +++ b/itemgroups-01_hk46-is-milspec.patch @@ -0,0 +1,18 @@ +--- a/data/json/itemgroups/Weapons_Mods_Ammo/magazines.json ++++ b/data/json/itemgroups/Weapons_Mods_Ammo/magazines.json +@@ -69,7 +69,6 @@ + [ "fn57mag", 15 ], + [ "glockmag", 40 ], + [ "glock40mag", 30 ], +- [ "hk46mag", 5 ], + [ "m9mag", 5 ], + [ "mp5mag", 10 ], + [ "sig40mag", 20 ], +@@ -92,7 +91,6 @@ + [ "fnp90mag", 20 ], + [ "glockbigmag", 10 ], + [ "glock40bigmag", 10 ], +- [ "hk46bigmag", 5 ], + [ "m9bigmag", 10 ], + [ "mp5bigmag", 20 ], + [ "stanag30", 20 ], diff --git a/itemgroups-02_add-missing-mre.patch b/itemgroups-02_add-missing-mre.patch new file mode 100644 index 0000000..f776e12 --- /dev/null +++ b/itemgroups-02_add-missing-mre.patch @@ -0,0 +1,39 @@ +--- a/data/json/itemgroups/Food/food.json ++++ b/data/json/itemgroups/Food/food.json +@@ -550,8 +550,10 @@ + { "item": "mre_cheesetort_box" }, + { "item": "mre_mushroomfettuccine_box" }, + { "item": "mre_mexicanchickenstew_box" }, ++ { "item": "mre_chickenburritobowl_box" }, + { "item": "mre_maplesausage_box" }, + { "item": "mre_ravioli_box" }, ++ { "item": "mre_pepperjackbeef_box" }, + { "item": "mre_hashbrownbacon_box" }, + { "item": "mre_lemontuna_box" }, + { "item": "mre_asianbeef_box" }, +--- a/data/json/npcs/items_generic.json ++++ b/data/json/npcs/items_generic.json +@@ -812,8 +812,10 @@ + [ "mre_cheesetort_box", 6 ], + [ "mre_mushroomfettuccine_box", 6 ], + [ "mre_mexicanchickenstew_box", 6 ], ++ [ "mre_chickenburritobowl_box", 6 ], + [ "mre_maplesausage_box", 6 ], + [ "mre_ravioli_box", 6 ], ++ [ "mre_pepperjackbeef_box", 6 ], + [ "mre_hashbrownbacon_box", 6 ], + [ "mre_lemontuna_box", 6 ], + [ "mre_asianbeef_box", 6 ], +--- a/data/json/npcs/NC_SOLDIER.json ++++ b/data/json/npcs/NC_SOLDIER.json +@@ -162,8 +162,10 @@ + { "item": "mre_cheesetort_box", "prob": 45 }, + { "item": "mre_mushroomfettuccine_box", "prob": 45 }, + { "item": "mre_mexicanchickenstew_box", "prob": 45 }, ++ { "item": "mre_chickenburritobowl_box", "prob": 45 }, + { "item": "mre_maplesausage_box", "prob": 45 }, + { "item": "mre_ravioli_box", "prob": 45 }, ++ { "item": "mre_pepperjackbeef_box", "prob": 45 }, + { "item": "mre_hashbrownbacon_box", "prob": 45 }, + { "item": "mre_lemontuna_box", "prob": 45 }, + { "item": "mre_asianbeef_box", "prob": 45 }, diff --git a/jc_npc-eat-from-further-camp.patch b/jc_npc-eat-from-further-camp.patch new file mode 100644 index 0000000..ed1442d --- /dev/null +++ b/jc_npc-eat-from-further-camp.patch @@ -0,0 +1,11 @@ +--- a/src/npcmove.cpp ++++ b/src/npcmove.cpp +@@ -3817,7 +3817,7 @@ + Character &player_character = get_player_character(); + cata::optional potential_bc; + for( const tripoint_abs_omt &camp_pos : player_character.camps ) { +- if( rl_dist( camp_pos, global_omt_location() ) < 3 ) { ++ if( rl_dist( camp_pos, global_omt_location() ) < 6 ) { + potential_bc = overmap_buffer.find_camp( camp_pos.xy() ); + if( potential_bc ) { + break; diff --git a/jc_radio-can-use-ups.patch b/jc_radio-can-use-ups.patch new file mode 100644 index 0000000..ee146e5 --- /dev/null +++ b/jc_radio-can-use-ups.patch @@ -0,0 +1,55 @@ +--- a/src/iuse.cpp ++++ b/src/iuse.cpp +@@ -289,6 +289,7 @@ + static const std::string flag_HEATS_FOOD( "HEATS_FOOD" ); + static const std::string flag_PLANT( "PLANT" ); + static const std::string flag_PLOWABLE( "PLOWABLE" ); ++static const std::string flag_USE_UPS( "USE_UPS" ); + + // how many characters per turn of radio + static constexpr int RADIO_PER_TURN = 25; +@@ -2162,7 +2163,8 @@ + } + } else { // Activated + int ch = 1; +- if( it->ammo_remaining() > 0 ) { ++ if( it->ammo_remaining() > 0 || ( it->has_flag( flag_USE_UPS ) && ++ p->has_enough_charges( *it, false ) ) ) { + ch = uilist( _( "Radio:" ), { + _( "Scan" ), _( "Turn off" ) + } ); +@@ -4082,7 +4084,8 @@ + if( t ) { // Effects while simply on + + } else { +- if( !it->units_sufficient( *p ) ) { ++ 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; + } else { +@@ -4107,7 +4110,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. +- if( !it->units_sufficient( *p ) ) { ++ 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 @@ + int iuse::einktabletpc( player *p, item *it, bool t, const tripoint &pos ) + { + if( t ) { +- if( !it->get_var( "EIPC_MUSIC_ON" ).empty() && ( it->ammo_remaining() > 0 ) ) { ++ if( !it->get_var( "EIPC_MUSIC_ON" ).empty() && ++ ( it->ammo_remaining() > 0 || ( it->has_flag( flag_USE_UPS ) && ++ p->has_enough_charges( *it, false ) ) ) ) { + if( calendar::once_every( 5_minutes ) ) { +- it->ammo_consume( 1, p->pos() ); ++ //it->ammo_consume( 1, p->pos() ); ++ p->consume_charges( *it, 1 ); + } + + //the more varied music, the better max mood. diff --git a/monsters-01_medical-zombies-called-zombies.patch b/monsters-01_medical-zombies-called-zombies.patch new file mode 100644 index 0000000..a4b469a --- /dev/null +++ b/monsters-01_medical-zombies-called-zombies.patch @@ -0,0 +1,30 @@ +--- a/data/json/monsters/zed_medical.json ++++ b/data/json/monsters/zed_medical.json +@@ -2,7 +2,7 @@ + { + "id": "mon_zombie_nurse", + "type": "MONSTER", +- "name": { "str": "nurse" }, ++ "name": { "str": "zombie nurse" }, + "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", + "type": "MONSTER", + "copy-from": "mon_zombie_nurse", + "delete": { "categories": [ "CLASSIC" ] }, +- "name": { "str": "surgeon" }, ++ "name": { "str": "zombie surgeon" }, + "description": "A dripping stinger where one hand would be, a set of razor-like claws in place of the other one. This zombie's cold, focused eyes look down at you from above a \"mask\" of melded flesh.", + "default_faction": "zombie", + "hp": 150, +@@ -58,7 +58,7 @@ + "id": "mon_zombie_vivisector", + "type": "MONSTER", + "copy-from": "mon_zombie_surgeon", +- "name": { "str": "vivisector" }, ++ "name": { "str": "zombie vivisector" }, + "description": "This humanoid has a long bone \"syringe\" in place of one forearm, a large saw as the opposing hand, and a pair of digitigrade legs ending in raptor-like feet. Its head is featureless, except for its \"human\" eyes, which smile with inhuman malice and scorn.", + "default_faction": "zombie", + "color": "light_green_white", diff --git a/mutations-01_nerf-lightstep.patch b/mutations-01_nerf-lightstep.patch new file mode 100644 index 0000000..8fa46cd --- /dev/null +++ b/mutations-01_nerf-lightstep.patch @@ -0,0 +1,16 @@ +--- a/data/json/mutations/mutations.json ++++ b/data/json/mutations/mutations.json +@@ -507,11 +507,11 @@ + "id": "LIGHTSTEP", + "name": { "str": "Light Step" }, + "points": 1, +- "description": "You make no noise while walking.", ++ "description": "You make less noise while walking.", + "starting_trait": true, + "category": [ "BIRD", "ELFA", "FELINE" ], + "cancels": [ "CLUMSY" ], +- "noise_modifier": 0.0 ++ "noise_modifier": 0.4 + }, + { + "type": "mutation", diff --git a/mutations-02_fix-evac3-background-visible.patch b/mutations-02_fix-evac3-background-visible.patch new file mode 100644 index 0000000..7c61c9e --- /dev/null +++ b/mutations-02_fix-evac3-background-visible.patch @@ -0,0 +1,10 @@ +--- a/data/json/npcs/BG_traits.json ++++ b/data/json/npcs/BG_traits.json +@@ -153,6 +153,7 @@ + "name": { "str": "Survivor Story" }, + "points": 0, + "description": "This NPC could tell you about how they survived the Cataclysm", ++ "player_display": false, + "valid": false, + "purifiable": false, + "types": [ "BACKGROUND_SURVIVAL_STORY" ], diff --git a/recipes-01_fix-brioche-cooking-time.patch b/recipes-01_fix-brioche-cooking-time.patch new file mode 100644 index 0000000..3c00e1d --- /dev/null +++ b/recipes-01_fix-brioche-cooking-time.patch @@ -0,0 +1,10 @@ +--- a/data/json/recipes/food/bread.json ++++ b/data/json/recipes/food/bread.json +@@ -5008,6 +5008,7 @@ + "subcategory": "CSC_FOOD_BREAD", + "skill_used": "cooking", + "difficulty": 3, ++ "time": "20 m", + "batch_time_factors": [ 50, 3 ], + "book_learn": [ [ "baking_book", 3 ], [ "cookbook_daintydishes", 5 ] ], + "qualities": [ { "id": "COOK", "level": 3 } ], diff --git a/recipes-02_4570-dragon-can-be-dismantled.patch b/recipes-02_4570-dragon-can-be-dismantled.patch new file mode 100644 index 0000000..219bfd6 --- /dev/null +++ b/recipes-02_4570-dragon-can-be-dismantled.patch @@ -0,0 +1,44 @@ +--- a/data/json/recipes/ammo/rifle.json ++++ b/data/json/recipes/ammo/rifle.json +@@ -385,6 +385,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 ] ], +@@ -406,6 +407,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 @@ + "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 @@ + "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 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "chem_black_powder", 12 ] ], [ [ "lead", 9 ] ] ] + }, +--- a/data/json/recipes/ammo/shot.json ++++ b/data/json/recipes/ammo/shot.json +@@ -62,6 +62,7 @@ + "batch_time_factors": [ 60, 5 ], + "book_learn": [ [ "recipe_bullets", 3 ], [ "manual_shotgun", 3 ] ], + "charges": 1, ++ "reversible": true, + "using": [ [ "ammo_shot", 1 ] ], + "tools": [ [ [ "press", -1 ] ] ], + "components": [ [ [ "gunpowder", 3 ] ], [ [ "magnesium", 5 ] ] ] diff --git a/terrain-01_quiverfull-house-correct-stairs.patch b/terrain-01_quiverfull-house-correct-stairs.patch new file mode 100644 index 0000000..ad40706 --- /dev/null +++ b/terrain-01_quiverfull-house-correct-stairs.patch @@ -0,0 +1,11 @@ +--- a/data/json/mapgen/house/house_quiverfull.json ++++ b/data/json/mapgen/house/house_quiverfull.json +@@ -29,7 +29,7 @@ + "%or E|R y| h F#.", + "%# + + O#.", + ".# |||R R|J 5o.", +- ".#HHsHH|< R|n 4o.", ++ ".#HHsHH|> R|n 4o.", + ".#|||||| |R R|JJ 123#.", + ".#q+ ||||+|||#.", + ".#q+ + d#.", diff --git a/terrain-02_tacoma-barn-door-position.patch b/terrain-02_tacoma-barn-door-position.patch new file mode 100644 index 0000000..d5f5642 --- /dev/null +++ b/terrain-02_tacoma-barn-door-position.patch @@ -0,0 +1,11 @@ +--- a/data/json/npcs/tacoma_ranch/NPC_ranch_foreman.json ++++ b/data/json/npcs/tacoma_ranch/NPC_ranch_foreman.json +@@ -122,7 +122,7 @@ + "place_nested": [ { "chunks": [ "tacoma_commune_west_wall_door" ], "x": 22, "y": 0 } ] + }, + { +- "om_terrain": "ranch_camp_66", ++ "om_terrain": "ranch_camp_75", + "translate_ter": [ { "from": "t_underbrush", "to": "t_dirt", "x": 0, "y": 0 } ], + "place_nested": [ + { "chunks": [ "tacoma_commune_east_wall_door" ], "x": 0, "y": 0 }, diff --git a/terrain-03_tacoma-clinic-add-missing-floor.patch b/terrain-03_tacoma-clinic-add-missing-floor.patch new file mode 100644 index 0000000..9accf88 --- /dev/null +++ b/terrain-03_tacoma-clinic-add-missing-floor.patch @@ -0,0 +1,11 @@ +--- a/data/json/npcs/tacoma_ranch/mission_mapgen_tacoma_commune.json ++++ b/data/json/npcs/tacoma_ranch/mission_mapgen_tacoma_commune.json +@@ -543,7 +543,7 @@ + "[......wwwwwww.....[", + "w......w.....w.....w", + "w..............tt..w", +- "[..... w.....w.....[", ++ "[......w.....w.....[", + "w......wwwwwww.....w", + "www++www wwwwwww", + " ", diff --git a/terrain-04_lumbermill-gasoline-not-spilled.patch b/terrain-04_lumbermill-gasoline-not-spilled.patch new file mode 100644 index 0000000..05e63ac --- /dev/null +++ b/terrain-04_lumbermill-gasoline-not-spilled.patch @@ -0,0 +1,11 @@ +--- a/data/json/mapgen/lumbermill.json ++++ b/data/json/mapgen/lumbermill.json +@@ -51,7 +51,7 @@ + "v 2 __________________________________", + "v vvvvv *___________________________1 1 ____", + "v vooov______________________ ____ 121 1 v", +- "v voGoV_____________ #.......# ____ 1 1*1 1 1 v", ++ "v voooV_____________ #.......# ____ 1 1*1 1 1 v", + "v vooov_________ #L.....L#* ____* 1 1 1 2 v", + "v vvvvv ______ * *wL.....Lw ____1 1 1 1 *v", + "v 1____ 2 #L.....L# * ____1 1* 1 v", diff --git a/terrain-05_community-garden-fertilizer-not-spilled.patch b/terrain-05_community-garden-fertilizer-not-spilled.patch new file mode 100644 index 0000000..dfc3d29 --- /dev/null +++ b/terrain-05_community-garden-fertilizer-not-spilled.patch @@ -0,0 +1,17 @@ +--- a/data/json/mapgen/garden_community.json ++++ b/data/json/mapgen/garden_community.json +@@ -141,10 +141,10 @@ + "|": "f_null" + }, + "place_liquids": [ +- { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 4, "y": 4 }, +- { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 4, "y": 5 }, +- { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 5, "y": 4 }, +- { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 5, "y": 5 } ++ { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 9, "y": 9 }, ++ { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 10, "y": 9 }, ++ { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 9, "y": 10 }, ++ { "liquid": "fertilizer_liquid", "chance": 1, "amount": [ 2, 3 ], "x": 10, "y": 10 } + ], + "items": { "D": { "item": "hydro", "chance": 15 }, "#": { "item": "hydro", "chance": 15 } }, + "place_items": [ diff --git a/terrain-06_fix-doors-for-npcs.patch b/terrain-06_fix-doors-for-npcs.patch new file mode 100644 index 0000000..54f1f47 --- /dev/null +++ b/terrain-06_fix-doors-for-npcs.patch @@ -0,0 +1,20 @@ +--- a/data/json/furniture_and_terrain/terrain-fences-gates.json ++++ b/data/json/furniture_and_terrain/terrain-fences-gates.json +@@ -243,7 +243,7 @@ + "color": "brown", + "looks_like": "t_chickenwire_gate_o", + "move_cost": 2, +- "flags": [ "TRANSPARENT", "DOOR", "PERMEABLE", "BURROWABLE", "CONNECT_TO_WALL" ], ++ "flags": [ "TRANSPARENT", "PERMEABLE", "BURROWABLE", "CONNECT_TO_WALL" ], + "close": "t_screen_door_c", + "deconstruct": { + "ter_set": "t_floor", +@@ -732,7 +732,7 @@ + "looks_like": "t_fencegate_o", + "move_cost": 1, + "coverage": 60, +- "flags": [ "TRANSPARENT", "DOOR", "BURROWABLE", "FLAT", "ROAD" ], ++ "flags": [ "TRANSPARENT", "BURROWABLE", "FLAT", "ROAD" ], + "connects_to": "WOODFENCE", + "close": "t_gate_metal_c", + "deconstruct": { diff --git a/terrain-07_rehide-redacted.patch b/terrain-07_rehide-redacted.patch new file mode 100644 index 0000000..6dacdbf --- /dev/null +++ b/terrain-07_rehide-redacted.patch @@ -0,0 +1,15 @@ +--- a/data/json/overmap/overmap_terrain/overmap_terrain_lab.json ++++ b/data/json/overmap/overmap_terrain/overmap_terrain_lab.json +@@ -168,9 +168,9 @@ + { + "type": "overmap_terrain", + "id": "central_lab_entrance", +- "name": "access shaft", +- "sym": "0", +- "color": "light_gray", ++ "name": "forest", ++ "sym": "F", ++ "color": "green", + "see_cost": 3, + "flags": [ "NO_ROTATE", "RISK_HIGH" ] + }, diff --git a/terrain-08_derelict-shed-is-s.patch b/terrain-08_derelict-shed-is-s.patch new file mode 100644 index 0000000..d97550c --- /dev/null +++ b/terrain-08_derelict-shed-is-s.patch @@ -0,0 +1,10 @@ +--- a/data/json/overmap/map_extras.json ++++ b/data/json/overmap/map_extras.json +@@ -256,6 +256,7 @@ + "name": "Derelict shed", + "description": "A collapsed shed.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_fallen_shed_map" }, ++ "sym": "s", + "color": "brown", + "autonote": true + }, diff --git a/terrain-09_make-firestation-shelter-wells-npc-drinkable.patch b/terrain-09_make-firestation-shelter-wells-npc-drinkable.patch new file mode 100644 index 0000000..8eac7f0 --- /dev/null +++ b/terrain-09_make-firestation-shelter-wells-npc-drinkable.patch @@ -0,0 +1,51 @@ +--- a/data/json/recipes/basecamps/recipe_modular_firestation1.json ++++ b/data/json/recipes/basecamps/recipe_modular_firestation1.json +@@ -50,7 +50,13 @@ + "construction_blueprint": "fbmc_firestation1_well", + "blueprint_name": "build a well", + "blueprint_requires": [ { "id": "fbmc_firestation1_0" } ], +- "blueprint_provides": [ { "id": "fbmc_firestation1_well" }, { "id": "relaying" }, { "id": "scouting" }, { "id": "patrolling" } ], ++ "blueprint_provides": [ ++ { "id": "fbmc_firestation1_well" }, ++ { "id": "water_well" }, ++ { "id": "relaying" }, ++ { "id": "scouting" }, ++ { "id": "patrolling" } ++ ], + "blueprint_excludes": [ { "id": "fbmc_firestation1_well" } ], + "blueprint_needs": { + "time": "11 h", +--- a/data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_common.json ++++ b/data/json/recipes/basecamps/recipe_modular_shelter_1/recipe_modular_shelter_1_common.json +@@ -136,7 +136,13 @@ + "construction_blueprint": "fbmc_shelter_1_well", + "blueprint_name": "build a well", + "blueprint_requires": [ { "id": "fbmc_shelter_1_fire" } ], +- "blueprint_provides": [ { "id": "fbmc_shelter_1_well" }, { "id": "relaying" }, { "id": "scouting" }, { "id": "patrolling" } ], ++ "blueprint_provides": [ ++ { "id": "fbmc_shelter_1_well" }, ++ { "id": "water_well" }, ++ { "id": "relaying" }, ++ { "id": "scouting" }, ++ { "id": "patrolling" } ++ ], + "blueprint_excludes": [ { "id": "fbmc_shelter_1_well" } ], + "blueprint_needs": { + "time": "11 h", +--- a/data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_common.json ++++ b/data/json/recipes/basecamps/recipe_modular_shelter/recipe_modular_shelter_common.json +@@ -136,7 +136,13 @@ + "construction_blueprint": "fbmc_shelter_well", + "blueprint_name": "build a well", + "blueprint_requires": [ { "id": "fbmc_shelter_fire" } ], +- "blueprint_provides": [ { "id": "fbmc_shelter_well" }, { "id": "relaying" }, { "id": "scouting" }, { "id": "patrolling" } ], ++ "blueprint_provides": [ ++ { "id": "fbmc_shelter_well" }, ++ { "id": "water_well" }, ++ { "id": "relaying" }, ++ { "id": "scouting" }, ++ { "id": "patrolling" } ++ ], + "blueprint_excludes": [ { "id": "fbmc_shelter_well" } ], + "blueprint_needs": { + "time": "11 h", diff --git a/tools-01_foldable-bottle-is-container.patch b/tools-01_foldable-bottle-is-container.patch new file mode 100644 index 0000000..95b3d0f --- /dev/null +++ b/tools-01_foldable-bottle-is-container.patch @@ -0,0 +1,20 @@ +--- a/data/json/items/tool/container.json ++++ b/data/json/items/tool/container.json +@@ -2,7 +2,7 @@ + { + "id": "bottle_metal", + "type": "CONTAINER", +- "category": "other", ++ "category": "container", + "name": { "str": "steel bottle" }, + "description": "A stainless steel water bottle, holds 750ml of liquid.", + "weight": "200 g", +@@ -22,7 +22,7 @@ + { + "id": "bottle_folding", + "type": "CONTAINER", +- "category": "other", ++ "category": "container", + "name": { "str": "foldable plastic bottle" }, + "description": "A non-rigid plastic bottle for easy storage, holds 500 ml of liquid.", + "weight": "13 g", diff --git a/tools-02_vacutainer-is-not-a-weapon.patch b/tools-02_vacutainer-is-not-a-weapon.patch new file mode 100644 index 0000000..5560e6f --- /dev/null +++ b/tools-02_vacutainer-is-not-a-weapon.patch @@ -0,0 +1,12 @@ +--- a/data/json/items/tool/med.json ++++ b/data/json/items/tool/med.json +@@ -174,7 +174,8 @@ + }, + { + "id": "vacutainer", +- "type": "CONTAINER", ++ "type": "TOOL", ++ "category": "tools", + "name": { "str": "blood draw kit" }, + "description": "This is a kit for drawing blood, including a test tube for holding the sample. Use this tool to draw blood, either from yourself or from a corpse you are standing on.", + "weight": "13 g", diff --git a/tools-03_shears-use-light-battery.patch b/tools-03_shears-use-light-battery.patch new file mode 100644 index 0000000..e0a0d95 --- /dev/null +++ b/tools-03_shears-use-light-battery.patch @@ -0,0 +1,28 @@ +--- a/data/json/items/tool/pets.json ++++ b/data/json/items/tool/pets.json +@@ -68,9 +68,22 @@ + "color": "dark_gray", + "qualities": [ [ "SHEAR", 3 ] ], + "ammo": "battery", +- "initial_charges": 100, +- "max_charges": 100, +- "charges_per_use": 25 ++ "charges_per_use": 25, ++ "magazines": [ ++ [ ++ "battery", ++ [ ++ "light_minus_battery_cell", ++ "light_battery_cell", ++ "light_plus_battery_cell", ++ "light_atomic_battery_cell", ++ "light_minus_atomic_battery_cell", ++ "light_minus_disposable_cell", ++ "light_disposable_cell" ++ ] ++ ] ++ ], ++ "magazine_well": 1 + }, + { + "id": "horse_tack", diff --git a/tools-04_normalize-drone-volume.patch b/tools-04_normalize-drone-volume.patch new file mode 100644 index 0000000..a45ebf0 --- /dev/null +++ b/tools-04_normalize-drone-volume.patch @@ -0,0 +1,56 @@ +--- a/data/json/items/corpses/inactive_bots.json ++++ b/data/json/items/corpses/inactive_bots.json +@@ -5,7 +5,7 @@ + "name": { "str": "inactive EMP hack" }, + "description": "This is an inactive EMP hack. EMP hacks are fist-sized robots that fly through the air. This one contains an EMP grenade and attacks by flying at its target and detonating. Use this item to reprogram and release the EMP hack. Electronics and computer skill determines if the targeting matrix is reprogrammed successfully.", + "weight": "4700 g", +- "volume": "750 ml", ++ "volume": "250 ml", + "price": 64500, + "to_hit": -3, + "bashing": 6, +@@ -31,7 +31,7 @@ + "name": { "str": "inactive C-4 hack" }, + "description": "This is an inactive C-4 hack. C-4 hacks are fist-sized robots that fly through the air. This one contains some C-4 and attacks by flying at its target and detonating. Use this item to reprogram and activate the C-4 hack. Electronics and computer skill determines if the targeting matrix is reprogrammed successfully.", + "weight": "5870 g", +- "volume": "250 ml", ++ "volume": "1000 ml", + "price": 67500, + "to_hit": -3, + "bashing": 6, +@@ -57,7 +57,7 @@ + "name": { "str": "inactive flashbang hack" }, + "description": "This is an inactive flashbang hack. Flashbang hacks are fist-sized robots that fly through the air. This one contains a flashbang and attacks by flying at its target and detonating. Use this item to reprogram and activate the flashbang hack. Electronics and computer skill determines if the targeting matrix is reprogrammed successfully.", + "weight": "4536 g", +- "volume": "750 ml", ++ "volume": "250 ml", + "price": 59500, + "to_hit": -3, + "bashing": 6, +@@ -83,7 +83,7 @@ + "name": { "str": "inactive tear gas hack" }, + "description": "This is an inactive tear gas hack. Tear gas hacks are fist-sized robots that fly through the air. This one contains a tear gas canister and attacks by flying at its target and releasing tear gas. Use this item to reprogram and activate the tear gas hack. Electronics and computer skill determines if the targeting matrix is reprogrammed successfully.", + "weight": "5360 g", +- "volume": "750 ml", ++ "volume": "250 ml", + "price": 60500, + "to_hit": -3, + "bashing": 6, +@@ -179,7 +179,7 @@ + "name": { "str": "inactive manhack" }, + "description": "This is an inactive manhack. Manhacks are fist-sized robots that fly through the air. They are covered with whirring blades and attack by throwing themselves against their target. Use this item to reprogram and activate the manhack. Electronics and computer skill determines if the targeting matrix is reprogrammed successfully.", + "weight": "5400 g", +- "volume": "750 ml", ++ "volume": "250 ml", + "price": 60000, + "to_hit": -3, + "bashing": 6, +@@ -205,7 +205,7 @@ + "name": { "str": "inactive mininuke hack" }, + "description": "This is an inactive mininuke hack. Many times as large as a normal manhack, a mininuke hack contains a mininuke and attack by flying at their target and detonating. Use this item to reprogram and activate the mininuke hack. Electronics and computer skill determines if the targeting matrix is reprogrammed successfully.", + "weight": "25000 g", +- "volume": "18750 ml", ++ "volume": "16000 ml", + "price": 2677500, + "to_hit": -3, + "bashing": 6, diff --git a/vehicles-01_portable-generator-engine.patch b/vehicles-01_portable-generator-engine.patch new file mode 100644 index 0000000..70e1c2d --- /dev/null +++ b/vehicles-01_portable-generator-engine.patch @@ -0,0 +1,11 @@ +--- a/data/json/vehicles/utility.json ++++ b/data/json/vehicles/utility.json +@@ -120,7 +120,7 @@ + "parts": [ + { "x": 0, "y": 0, "part": "frame_cover" }, + { "x": 0, "y": 0, "part": "small_storage_battery" }, +- { "x": 0, "y": 0, "part": "engine_vtwin" }, ++ { "x": 0, "y": 0, "part": "engine_1cyl_large" }, + { "x": 0, "y": 0, "part": "generator_7500w" }, + { "x": 0, "y": 0, "parts": [ "wheel_mount_light", "wheel_small" ] }, + { "x": 1, "y": 0, "part": "frame_cover" }, -- cgit v1.2.1