diff options
| author | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2023-11-13 15:14:12 -0800 | 
|---|---|---|
| committer | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2023-11-13 15:14:12 -0800 | 
| commit | 9a3d0215484427507cf426f825cb4a1992376020 (patch) | |
| tree | f6c2c34a060c7cbe51b0f2d8dc1a5fee7cbb6234 | |
| parent | Rebuild for tileset. (diff) | |
| download | cataclysm-bn-9a3d0215484427507cf426f825cb4a1992376020.tar.xz | |
Add patch to reduce experience gain from lockpicking.
Backport fix for energy weapons becoming dirty.
| -rw-r--r-- | PKGBUILD | 17 | ||||
| -rw-r--r-- | backport-01_fix-content-NON_FOULING-flag-not-working-due-to-typo.patch | 552 | ||||
| -rw-r--r-- | src-12_lower-lockpicking-experience.patch | 16 | 
3 files changed, 582 insertions, 3 deletions
| @@ -20,7 +20,7 @@ _pkgname=Cataclysm-BN-cbn  pkgver=0.4  #pkgver=202310040030  #_pkgver=2023-10-04-0030 -pkgrel=4 +pkgrel=6  pkgdesc="A post-apocalyptic roguelike."  #url="http://cataclysmrl.blogspot.com/"  #url="http://www.cataclysm.glyphgryph.com/" @@ -37,6 +37,8 @@ source=("$pkgname-$pkgver.tar.gz::https://github.com/cataclysmbnteam/Cataclysm-B          "cataclysm-bn-tiles.desktop"          "icon_128x128.png" +        "backport-01_fix-content-NON_FOULING-flag-not-working-due-to-typo.patch" +          "revert-01_removed-traits.patch"          "revert-02_revert-book-revamp.patch"          "revert-03_generic-nv.patch" @@ -147,6 +149,7 @@ source=("$pkgname-$pkgver.tar.gz::https://github.com/cataclysmbnteam/Cataclysm-B          "src-09_npc-eat-from-further-camp.patch"          "src-10_reduced-kcal-during-sleep.patch"          "src-11_fix-tacoma-farmfield.patch" +        "src-12_lower-lockpicking-experience.patch"          "src-20_fix-default-mods.patch"          "vampirism.patch" @@ -160,6 +163,7 @@ b2sums=('4d47457c12a539ed6fa1c5b1351f473e43aecfe1e4f2aafd37e7068fc166d95c7f72980          '069ecde58859b3d44cd687c4b6e718610cefb693ff86e66f199ebfb1b3072023ad2b6f0c28e27ef9c1ce4997f6a5b2ca0d45046996b3ff35a4aeaeb1a7cf9421'          'ad88bc6c1e3c8183a313b5eec42f98d6956afea349feff34a86e4536c9921fa99d2594282caf27de8ebb7ffb56376ed2e76d572227bfd6d8173c7bb1f01e23b8'          '6f70e90359a14e4839d9a2683debb88850e5dd387add911ad68fd87e5512cfcdd435da63e1e370358153673fd5a72a9b1e9c94f1979edb7948b4da8c82407bad' +        '54d896d8f9273ecb8b8643cf560fdad652c52db9733ebebd6944fd9a112ebdcbfa237d90251abcb2a71c9eb3433297bf8c3febaddc055bed6ad47daf898e163b'          'fdef1f81084e7b08203b8464f37a00e2efc8b11d423c6e6b82e612392d91047160d2bc472b63c836ebc48adee0b4f2b3434c3e07eed5876275b234e69d7f6b9c'          'c2d6d7f74ada2ef54079fdf3759d9875552e2894dc8b753435acc692e705a9b297674eddb4e5a01a9269a84be7a82a8fef7e5762724b4d0f065976e877a05b00'          'e417a1786fbafb685099431f7f9926201ab80636bf3812da67acc341c7ef2b6a3853734d5b8b1bc355acbd5c0bedefb0401f8854aa5cb00032550afc8a7b9ebe' @@ -249,11 +253,12 @@ b2sums=('4d47457c12a539ed6fa1c5b1351f473e43aecfe1e4f2aafd37e7068fc166d95c7f72980          '4bd44cbe85c53902b8a360509703e3d38e8a5da75dd2c534a77f03ce6440632f6c83c92939069c60473c88ffb3abab0fbf11e39271f44f813b9f6432ea5f9a6b'          'f115314dd2bb1da07bba7a90fec5c3acb7ccb5145efaea03d6806942e24d402c9a144a2fd07b82e727a0b79dedd4bdd87de0bbaf0944236563164fb6f117965e'          'e0a9e8f1129650208f7a5a37680091a6d2abaa60f5d4fd7fc691854d49c9f59317ca18dbe764cb05cacd4a2a95de702bbdd072571862ee0b27bd8df3be7a5764' +        'a5e8bca3ccec2990098e8cf1c504ce6bec03cecef03b0450a4396d5b1e0ffc4e91592f40c3e389eea74fc53114cce0f2c1d2237a779e5ec7e6c12b2863d6c731'          'dd5aeab5755c68ce7c72a76369b982e8ccabcd103acb46bb992ce96719db36338f8e0b5105b4627659f90ea9a4d8b9b21e2cd734cd08e723c45bcd54209b02be'          '5247f058961ef5f366774a1dbc80cb2c158d9c1eee18e4523470fe84ec40a7237cd1687d64cffad7e2ac8f572f85da456024119b656295756672e4ae4214dbbe' -        'de178a6a4de28168c95897453b3a6159baf02055c63a6f922bd1edd09c981b3339e9aee16acec5aca5dd3a778c726c04d3e9477b6b5d526e49d0a2e008ea5113' +        'f470b9f81c10697d5199f5cc672e687e4095d9f1e14e939dad0b5aed889fa868aee0e73c82935a41eb7f0b24d54a9b2d4ae126a45149baa0509cd0d0fff76721'          'a56efdaae0344726debf5b74846edce8df7aa2357fbc7a05a3d369d1f457b02934a0d0ce2330072e03f1ac901e06e333c9393f795c761f8440307e7649ed5596' -        'd6e3f2be3c37bf02c2a526323eb9b828ddf025e4d11d7f064a488102348d193d10a7186148088edc27c4e5316e8d62e96693b77b28cb78322fab79d94b8d262a' +        '22cb1ef62d955d4a734434563a278057f91f32c948966d4ba606158c11d86bb3491b06387a5f5eae3640c2210a7ea7dde06f8553c50f4d5144349623434b68e3'          'b9309da09b165fb57e83f84e3584d2479bd3336ed86e181e5df2d27daa92bd55d03d7f3fc226f03696af5f0f32d8e0e7ecd26ae7e50eed0200d0b0feaad07efb')  prepare() { @@ -296,6 +301,7 @@ prepare() {    echo "Applying hotfixes"    # # Adjust default mods    patch -Np1 --no-backup-if-mismatch -i "$srcdir"/src-20_fix-default-mods.patch +  patch -Np1 --no-backup-if-mismatch -i "$srcdir"/backport-01_fix-content-NON_FOULING-flag-not-working-due-to-typo.patch    # # # Reverts @@ -555,6 +561,11 @@ prepare() {    # I can only reason it is a typo.    patch -Np1 --no-backup-if-mismatch -i "$srcdir"/npc-12_fix-eddie-requiring-1000-clay.patch +  # Reduce the mechanical skill experience from lockpicking: +  # With lock_roll being 1-120 and used in place of difficulty, +  # it often caused a level up with every lock, even at very high skill levels +  patch -Np1 --no-backup-if-mismatch -i "$srcdir"/src-12_lower-lockpicking-experience.patch +    # Assorted typos in NPC dialogue.    # Fix Jack Isherwood mission listing 10 jars, when it is actually 20.    patch -Np1 --no-backup-if-mismatch -i "$srcdir"/npc-20_dialogue-fixes.patch diff --git a/backport-01_fix-content-NON_FOULING-flag-not-working-due-to-typo.patch b/backport-01_fix-content-NON_FOULING-flag-not-working-due-to-typo.patch new file mode 100644 index 0000000..246f7f6 --- /dev/null +++ b/backport-01_fix-content-NON_FOULING-flag-not-working-due-to-typo.patch @@ -0,0 +1,552 @@ +From aa47f05b61e0b044a0a69f7a58db819f3fe18e0a Mon Sep 17 00:00:00 2001 +From: scarf <greenscarf005@gmail.com> +Date: Mon, 13 Nov 2023 16:09:36 +0900 +Subject: [PATCH] fix(content): `NON_FOULING` flag not working due to typo + (#3655) + +* fix(content): `NON-FOULING` -> `NON_FOULING` + +exciting typo fixes + +* fix: remove duplicate entries +--- + data/json/ammo_effects.json                |  5 ----- + data/json/ammo_effects_simple.json         |  2 +- + data/json/flags.json                       |  5 ----- + data/json/items/ammo.json                  | 12 ++++++------ + data/json/items/ammo/metal_rail.json       |  4 ++-- + data/json/items/ammo/nail.json             |  2 +- + data/json/items/classes/gun.json           | 16 ++++++++-------- + data/json/items/gun/flammable.json         |  2 +- + data/json/items/gun/misc.json              |  2 +- + data/json/items/gun/paintball.json         |  2 +- + data/json/items/gunmod/rail.json           |  2 +- + data/json/items/ranged/spearguns.json      |  2 +- + data/json/obsoletion/items.json            |  4 ++-- + data/mods/Aftershock/items/bioparts.json   |  2 +- + data/mods/Aftershock/items/gun/laser.json  |  6 +++--- + data/mods/Aftershock/items/weapons.json    |  4 ++-- + data/mods/CRT_EXPANSION/items/crt_gun.json | 20 ++++++++++---------- + data/mods/No_Hope/Items/gunmods.json       |  2 +- + data/mods/No_Hope/Items/guns.json          |  4 ++-- + data/mods/TEST_DATA/items.json             |  2 +- + src/ranged.cpp                             |  2 +- + 21 files changed, 46 insertions(+), 56 deletions(-) + +diff --git a/data/json/ammo_effects.json b/data/json/ammo_effects.json +index 8336dd14554..5f0e85035fe 100644 +--- a/data/json/ammo_effects.json ++++ b/data/json/ammo_effects.json +@@ -376,10 +376,5 @@ +     "id": "RECYCLED", +     "type": "ammo_effect", +     "//": "Nearly-immeasurable chance to fail to fire." +-  }, +-  { +-    "id": "NON-FOULING", +-    "type": "ammo_effect", +-    "//": "Doesn't cause gunk to build up." +   } + ] +diff --git a/data/json/ammo_effects_simple.json b/data/json/ammo_effects_simple.json +index beb1191f0be..29042cdbfe7 100644 +--- a/data/json/ammo_effects_simple.json ++++ b/data/json/ammo_effects_simple.json +@@ -95,7 +95,7 @@ +     "//": "Doesn't overkill." +   }, +   { +-    "id": "NON-FOULING", ++    "id": "NON_FOULING", +     "type": "ammo_effect", +     "//": "Doesn't cause gunk to build up." +   }, +diff --git a/data/json/flags.json b/data/json/flags.json +index 796b16e1262..b121cbb023f 100644 +--- a/data/json/flags.json ++++ b/data/json/flags.json +@@ -2067,11 +2067,6 @@ +     "type": "json_flag", +     "context": [  ] +   }, +-  { +-    "id": "NON-FOULING", +-    "type": "json_flag", +-    "context": [  ] +-  }, +   { +     "id": "PUMP_RAIL_COMPATIBLE", +     "type": "json_flag", +diff --git a/data/json/items/ammo.json b/data/json/items/ammo.json +index 5adfa2d27ed..5b6b37126d7 100644 +--- a/data/json/items/ammo.json ++++ b/data/json/items/ammo.json +@@ -278,7 +278,7 @@ +     "to_hit": -1, +     "qualities": [ [ "HAMMER", 1 ] ], +     "dont_recover_one_in": 80, +-    "effects": [ "NEVER_MISFIRES", "NON-FOULING" ] ++    "effects": [ "NEVER_MISFIRES", "NON_FOULING" ] +   }, +   { +     "type": "AMMO", +@@ -298,7 +298,7 @@ +     "dispersion": 14, +     "loudness": 0, +     "count": 10, +-    "effects": [ "NEVER_MISFIRES", "NON-FOULING" ] ++    "effects": [ "NEVER_MISFIRES", "NON_FOULING" ] +   }, +   { +     "type": "AMMO", +@@ -362,7 +362,7 @@ +     "loudness": 0, +     "count": 50, +     "dont_recover_one_in": 1000, +-    "effects": [ "NEVER_MISFIRES", "NON-FOULING" ] ++    "effects": [ "NEVER_MISFIRES", "NON_FOULING" ] +   }, +   { +     "type": "AMMO", +@@ -383,7 +383,7 @@ +     "count": 500, +     "stack_size": 200, +     "loudness": 9, +-    "effects": [ "NOGIB", "NEVER_MISFIRES", "NON-FOULING" ] ++    "effects": [ "NOGIB", "NEVER_MISFIRES", "NON_FOULING" ] +   }, +   { +     "type": "AMMO", +@@ -1080,7 +1080,7 @@ +     "loudness": 0, +     "to_hit": -1, +     "dont_recover_one_in": 1000, +-    "effects": [ "NEVER_MISFIRES", "NON-FOULING" ] ++    "effects": [ "NEVER_MISFIRES", "NON_FOULING" ] +   }, +   { +     "type": "AMMO", +@@ -1100,6 +1100,6 @@ +     "loudness": 0, +     "count": 30, +     "dont_recover_one_in": 1000, +-    "effects": [ "NEVER_MISFIRES", "NON-FOULING" ] ++    "effects": [ "NEVER_MISFIRES", "NON_FOULING" ] +   } + ] +diff --git a/data/json/items/ammo/metal_rail.json b/data/json/items/ammo/metal_rail.json +index f4ac65c5428..ff40c3dd597 100644 +--- a/data/json/items/ammo/metal_rail.json ++++ b/data/json/items/ammo/metal_rail.json +@@ -19,7 +19,7 @@ +     "range": 20, +     "damage": { "damage_type": "stab", "amount": 60, "armor_penetration": 10 }, +     "dispersion": 200, +-    "effects": [ "RECYCLED", "NON-FOULING" ] ++    "effects": [ "RECYCLED", "NON_FOULING" ] +   }, +   { +     "id": "steel_rail", +@@ -35,7 +35,7 @@ +     "material": [ "steel" ], +     "color": "light_gray", +     "dispersion": 100, +-    "effects": [ "NEVER_MISFIRES", "NON-FOULING" ], ++    "effects": [ "NEVER_MISFIRES", "NON_FOULING" ], +     "relative": { "range": 10, "damage": { "damage_type": "stab", "amount": -10, "armor_penetration": 20 } } +   } + ] +diff --git a/data/json/items/ammo/nail.json b/data/json/items/ammo/nail.json +index b90889c036c..33602a8bf5a 100644 +--- a/data/json/items/ammo/nail.json ++++ b/data/json/items/ammo/nail.json +@@ -29,6 +29,6 @@ +     "range": 3, +     "damage": { "damage_type": "stab", "amount": 4, "armor_penetration": 3 }, +     "dispersion": 120, +-    "effects": [ "NON-FOULING" ] ++    "effects": [ "NON_FOULING" ] +   } + ] +diff --git a/data/json/items/classes/gun.json b/data/json/items/classes/gun.json +index 2d8acfc9112..d010aa2dee0 100644 +--- a/data/json/items/classes/gun.json ++++ b/data/json/items/classes/gun.json +@@ -163,7 +163,7 @@ +     "name": { "str": "energy pistol" }, +     "looks_like": "v29", +     "//": "No conventional faults because it uses non-conventional systems.", +-    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON-FOULING", "NEEDS_NO_LUBE" ], ++    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE" ], +     "valid_mod_locations": [ +       [ "accessories", 2 ], +       [ "emitter", 1 ], +@@ -185,7 +185,7 @@ +     "bashing": 7, +     "to_hit": -2, +     "//": "No conventional faults because it uses non-conventional systems.", +-    "flags": [ "RELOAD_ONE", "STR_RELOAD", "WATERPROOF_GUN", "UNDERWATER_GUN", "NEVER_JAMS", "NON-FOULING", "NEEDS_NO_LUBE" ], ++    "flags": [ "RELOAD_ONE", "STR_RELOAD", "WATERPROOF_GUN", "UNDERWATER_GUN", "NEVER_JAMS", "NON_FOULING", "NEEDS_NO_LUBE" ], +     "dispersion": 120, +     "reload": 600, +     "valid_mod_locations": [ +@@ -287,7 +287,7 @@ +     "name": { "str": "energy rifle" }, +     "looks_like": "laser_rifle", +     "//": "No conventional faults because it uses non-conventional systems.", +-    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON-FOULING", "NEEDS_NO_LUBE" ], ++    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE" ], +     "valid_mod_locations": [ +       [ "accessories", 4 ], +       [ "emitter", 1 ], +@@ -309,7 +309,7 @@ +     "name": { "str": "magnetic rifle" }, +     "looks_like": "laser_rifle", +     "//": "No conventional faults because it uses non-conventional systems.", +-    "flags": [ "NEVER_JAMS", "NON-FOULING", "NEEDS_NO_LUBE" ], ++    "flags": [ "NEVER_JAMS", "NON_FOULING", "NEEDS_NO_LUBE" ], +     "valid_mod_locations": [ +       [ "accessories", 4 ], +       [ "grip", 1 ], +@@ -331,7 +331,7 @@ +     "bashing": 8, +     "to_hit": -2, +     "//": "No conventional faults because it uses non-conventional systems.", +-    "flags": [ "RELOAD_ONE", "STR_RELOAD", "WATERPROOF_GUN", "UNDERWATER_GUN", "NEVER_JAMS", "NON-FOULING", "NEEDS_NO_LUBE" ], ++    "flags": [ "RELOAD_ONE", "STR_RELOAD", "WATERPROOF_GUN", "UNDERWATER_GUN", "NEVER_JAMS", "NON_FOULING", "NEEDS_NO_LUBE" ], +     "dispersion": 90, +     "reload": 700, +     "valid_mod_locations": [ +@@ -353,7 +353,7 @@ +     "name": { "str": "pneumatic rifle" }, +     "bashing": 8, +     "//": "No conventional faults because it uses non-conventional systems.", +-    "flags": [ "NEVER_JAMS", "NON-FOULING", "NEEDS_NO_LUBE" ], ++    "flags": [ "NEVER_JAMS", "NON_FOULING", "NEEDS_NO_LUBE" ], +     "dispersion": 350, +     "reload": 600, +     "valid_mod_locations": [ [ "accessories", 3 ], [ "sling", 1 ], [ "grip", 1 ], [ "mechanism", 4 ], [ "stock", 1 ], [ "rail mount", 1 ] ], +@@ -488,7 +488,7 @@ +     "bashing": 8, +     "reload": 200, +     "handling": 40, +-    "flags": [ "NO_UNLOAD", "NEVER_JAMS", "NON-FOULING" ], ++    "flags": [ "NO_UNLOAD", "NEVER_JAMS", "NON_FOULING" ], +     "faults": [  ] +   }, +   { +@@ -501,7 +501,7 @@ +     "bashing": 9, +     "skill": "launcher", +     "ammo": "chemical_spray", +-    "flags": [ "FIRE_50", "NEVER_JAMS", "NON-FOULING" ], ++    "flags": [ "FIRE_50", "NEVER_JAMS", "NON_FOULING" ], +     "valid_mod_locations": [ +       [ "accessories", 4 ], +       [ "grip", 1 ], +diff --git a/data/json/items/gun/flammable.json b/data/json/items/gun/flammable.json +index 2bece97d622..d334d8ec1e1 100644 +--- a/data/json/items/gun/flammable.json ++++ b/data/json/items/gun/flammable.json +@@ -41,7 +41,7 @@ +     "durability": 9, +     "modes": [ [ "DEFAULT", "semi", 1 ], [ "AUTO", "auto", 4 ] ], +     "valid_mod_locations": [ [ "accessories", 4 ], [ "rail", 1 ], [ "grip", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ], +-    "extend": { "flags": [ "FIRE_20", "MODE_BURST", "NON-FOULING" ] }, ++    "extend": { "flags": [ "FIRE_20", "MODE_BURST", "NON_FOULING" ] }, +     "delete": { "flags": [ "FIRE_100" ] }, +     "magazines": [ [ "flammable", [ "rm4502", "rm4504" ] ] ] +   } +diff --git a/data/json/items/gun/misc.json b/data/json/items/gun/misc.json +index 322d81404a8..a99b8521541 100644 +--- a/data/json/items/gun/misc.json ++++ b/data/json/items/gun/misc.json +@@ -32,7 +32,7 @@ +     "description": "A water cannon from a fire truck.  Mounted on a vehicle, it could be used to stop fires or \"protesters\".  Or it could be loaded with something more corrosive, for a lot less firefighting and a lot more excessive force.", +     "price": 50000, +     "material": "steel", +-    "flags": [ "NEVER_JAMS", "MOUNTED_GUN", "NO_RELOAD", "NON-FOULING" ], ++    "flags": [ "NEVER_JAMS", "MOUNTED_GUN", "NO_RELOAD", "NON_FOULING" ], +     "ammo_effects": [ "JET", "BEANBAG", "NEVER_MISFIRES" ], +     "ammo": [ "water", "acid" ], +     "weight": "24500 g", +diff --git a/data/json/items/gun/paintball.json b/data/json/items/gun/paintball.json +index 339e78860c2..59854569841 100644 +--- a/data/json/items/gun/paintball.json ++++ b/data/json/items/gun/paintball.json +@@ -11,7 +11,7 @@ +     "price": 8000, +     "price_postapoc": 50, +     "material": [ "aluminum", "plastic" ], +-    "flags": [ "NEVER_JAMS", "NON-FOULING" ], ++    "flags": [ "NEVER_JAMS", "NON_FOULING" ], +     "skill": "smg", +     "ammo": "paintball", +     "weight": "1600 g", +diff --git a/data/json/items/gunmod/rail.json b/data/json/items/gunmod/rail.json +index c579fea22ad..f65304d5e03 100644 +--- a/data/json/items/gunmod/rail.json ++++ b/data/json/items/gunmod/rail.json +@@ -23,7 +23,7 @@ +       "clip_size": 1 +     }, +     "dispersion_modifier": 60, +-    "flags": [ "STR_RELOAD", "NON-FOULING" ] ++    "flags": [ "STR_RELOAD", "NON_FOULING" ] +   }, +   { +     "id": "gun_crossbow_mod", +diff --git a/data/json/items/ranged/spearguns.json b/data/json/items/ranged/spearguns.json +index 98b818095e9..d5737ffece7 100644 +--- a/data/json/items/ranged/spearguns.json ++++ b/data/json/items/ranged/spearguns.json +@@ -74,7 +74,7 @@ +     "price": 25000, +     "price_postapoc": 1000, +     "material": [ "plastic", "steel" ], +-    "flags": [ "RELOAD_ONE", "STR_RELOAD", "WATERPROOF_GUN", "UNDERWATER_GUN", "NON-FOULING" ], ++    "flags": [ "RELOAD_ONE", "STR_RELOAD", "WATERPROOF_GUN", "UNDERWATER_GUN", "NON_FOULING" ], +     "skill": "rifle", +     "ammo": "fishspear", +     "weight": "3460 g", +diff --git a/data/json/obsoletion/items.json b/data/json/obsoletion/items.json +index 8a74f66facb..1b7e98f70f6 100644 +--- a/data/json/obsoletion/items.json ++++ b/data/json/obsoletion/items.json +@@ -1748,7 +1748,7 @@ +     "magazine_well": 1, +     "magazines": [ [ "flammable", [ "aux_pressurized_tank" ] ] ], +     "min_skills": [ [ "weapon", 2 ], [ "launcher", 1 ] ], +-    "flags": [ "FIRE_100", "PUMP_RAIL_COMPATIBLE", "NON-FOULING" ] ++    "flags": [ "FIRE_100", "PUMP_RAIL_COMPATIBLE", "NON_FOULING" ] +   }, +   { +     "type": "recipe", +@@ -1892,7 +1892,7 @@ +     "description": "A double-barreled pneumatic air shotgun handcrafted from scrap.  Though it's firepower is lacking compared to more conventional shotguns, this thing can still pack quite a punch.  That is, if your target is directly in front of you.", +     "price": 220000, +     "material": [ "steel", "wood" ], +-    "flags": [ "RELOAD_ONE", "STR_RELOAD", "NON-FOULING" ], ++    "flags": [ "RELOAD_ONE", "STR_RELOAD", "NON_FOULING" ], +     "skill": "shotgun", +     "ammo": "shotcanister", +     "weight": "3410 g", +diff --git a/data/mods/Aftershock/items/bioparts.json b/data/mods/Aftershock/items/bioparts.json +index a56c060bc27..0b0f75a52ee 100644 +--- a/data/mods/Aftershock/items/bioparts.json ++++ b/data/mods/Aftershock/items/bioparts.json +@@ -103,6 +103,6 @@ +     "loudness": 4, +     "clip_size": 80, +     "ammo_effects": "ACIDBOMB", +-    "flags": [ "NO_UNLOAD", "NON-FOULING" ] ++    "flags": [ "NO_UNLOAD", "NON_FOULING" ] +   } + ] +diff --git a/data/mods/Aftershock/items/gun/laser.json b/data/mods/Aftershock/items/gun/laser.json +index 9c772880aa2..11fca695807 100644 +--- a/data/mods/Aftershock/items/gun/laser.json ++++ b/data/mods/Aftershock/items/gun/laser.json +@@ -15,7 +15,7 @@ +     "dispersion": 500, +     "ups_charges": 25, +     "ammo_effects": [ "LASER", "BEANBAG" ], +-    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON-FOULING", "NEEDS_NO_LUBE" ] ++    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE" ] +   }, +   { +     "id": "afs_sentinel_laser", +@@ -29,7 +29,7 @@ +     "ups_charges": 30, +     "modes": [ [ "MULTI", "trilaser", 3 ] ], +     "ammo_effects": [ "LASER" ], +-    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON-FOULING", "NEEDS_NO_LUBE" ] ++    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE" ] +   }, +   { +     "id": "afs_sentinel_laser_mon", +@@ -37,6 +37,6 @@ +     "copy-from": "afs_sentinel_laser", +     "name": { "str": "wrist-trilaser" }, +     "ups_charges": 0, +-    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON-FOULING", "NEEDS_NO_LUBE" ] ++    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE" ] +   } + ] +diff --git a/data/mods/Aftershock/items/weapons.json b/data/mods/Aftershock/items/weapons.json +index 188adf91d10..cdb14e6c75e 100644 +--- a/data/mods/Aftershock/items/weapons.json ++++ b/data/mods/Aftershock/items/weapons.json +@@ -187,7 +187,7 @@ +     "reload": 500, +     "valid_mod_locations": [ [ "accessories", 4 ], [ "sights", 1 ], [ "sling", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ], +     "ammo_effects": [ "LASER", "DRAW_AS_LINE" ], +-    "flags": [ "NEVER_JAMS", "FIRE_20", "NON-FOULING" ], ++    "flags": [ "NEVER_JAMS", "FIRE_20", "NON_FOULING" ], +     "magazines": [ +       [ "battery", [ "heavy_battery_cell", "heavy_plus_battery_cell", "heavy_atomic_battery_cell", "heavy_disposable_cell" ] ] +     ] +@@ -287,6 +287,6 @@ +       [ "underbarrel mount", 1 ] +     ], +     "ammo_effects": [ "LASER", "INCENDIARY" ], +-    "flags": [ "NO_UNLOAD", "NON-FOULING", "NEEDS_NO_LUBE" ] ++    "flags": [ "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE" ] +   } + ] +diff --git a/data/mods/CRT_EXPANSION/items/crt_gun.json b/data/mods/CRT_EXPANSION/items/crt_gun.json +index 0d5ab8d9828..0c35599551f 100644 +--- a/data/mods/CRT_EXPANSION/items/crt_gun.json ++++ b/data/mods/CRT_EXPANSION/items/crt_gun.json +@@ -33,7 +33,7 @@ +       [ "underbarrel", 1 ] +     ], +     "ammo_effects": [ "LASER", "INCENDIARY" ], +-    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON-FOULING" ] ++    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING" ] +   }, +   { +     "id": "crt_laser_gatling", +@@ -60,7 +60,7 @@ +     "modes": [ [ "DEFAULT", "burst", 12 ] ], +     "valid_mod_locations": [ [ "accessories", 1 ], [ "emitter", 1 ], [ "grip", 1 ], [ "lens", 1 ], [ "rail", 1 ], [ "sights", 1 ], [ "stock", 1 ] ], +     "ammo_effects": [ "LASER", "INCENDIARY" ], +-    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON-FOULING" ] ++    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING" ] +   }, +   { +     "id": "crt_laser_carbine", +@@ -96,7 +96,7 @@ +       [ "underbarrel", 1 ] +     ], +     "ammo_effects": [ "LASER", "INCENDIARY" ], +-    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON-FOULING" ] ++    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING" ] +   }, +   { +     "id": "crt_energy_rifle", +@@ -132,7 +132,7 @@ +       [ "underbarrel", 1 ] +     ], +     "ammo_effects": [ "LASER", "INCENDIARY" ], +-    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON-FOULING" ] ++    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING" ] +   }, +   { +     "id": "crt_cqb_si", +@@ -195,7 +195,7 @@ +       [ "underbarrel", 1 ] +     ], +     "ammo_effects": [ "STREAM", "INCENDIARY" ], +-    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "UNARMED_WEAPON", "DURABLE_MELEE", "NON-FOULING", "PYROMANIAC_WEAPON" ] ++    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "UNARMED_WEAPON", "DURABLE_MELEE", "NON_FOULING", "PYROMANIAC_WEAPON" ] +   }, +   { +     "id": "pelletgun", +@@ -209,7 +209,7 @@ +     "price": 9900, +     "//": "You can get a decent Ruger .177 at walmart for $99", +     "material": [ "steel", "plastic" ], +-    "flags": [ "STR_RELOAD", "NON-FOULING", "NON-FOULING" ], ++    "flags": [ "STR_RELOAD", "NON_FOULING", "NON_FOULING" ], +     "skill": "rifle", +     "ammo": "pellets", +     "weight": "5023 g", +@@ -252,7 +252,7 @@ +     "reload": 170, +     "valid_mod_locations": [ [ "accessories", 1 ], [ "grip", 1 ], [ "sights", 1 ] ], +     "ammo_effects": [ "PLASMA", "INCENDIARY", "DRAW_LASER_BEAM" ], +-    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON-FOULING", "PYROMANIAC_WEAPON" ] ++    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "NON_FOULING", "PYROMANIAC_WEAPON" ] +   }, +   { +     "id": "ds_rivet_gun", +@@ -308,7 +308,7 @@ +     "modes": [ [ "DEFAULT", "semi-auto", 1 ] ], +     "valid_mod_locations": [ [ "accessories", 1 ], [ "grip", 1 ], [ "sights", 1 ] ], +     "ammo_effects": [ "WIDE", "LASER" ], +-    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "SLOW_WIELD", "NON-FOULING", "PYROMANIAC_WEAPON" ] ++    "flags": [ "NEVER_JAMS", "NO_UNLOAD", "SLOW_WIELD", "NON_FOULING", "PYROMANIAC_WEAPON" ] +   }, +   { +     "id": "ds_pulse_rifle", +@@ -335,7 +335,7 @@ +     "reload": 15, +     "modes": [ [ "BURST", "3 rd.", 3 ] ], +     "valid_mod_locations": [ [ "accessories", 1 ], [ "grip", 1 ], [ "sights", 1 ], [ "stock", 1 ] ], +-    "ammo_effects": [ "NOGIB", "BEANBAG", "NON-FOULING" ], ++    "ammo_effects": [ "NOGIB", "BEANBAG", "NON_FOULING" ], +     "flags": [ "NEVER_JAMS" ] +   }, +   { +@@ -364,6 +364,6 @@ +     "reload": 450, +     "modes": [ [ "DEFAULT", "semi-auto", 1 ], [ "REACH", "em field saw", 5, [ "MELEE", "REACH_ATTACK" ] ] ], +     "ammo_effects": [ "LIGHTNING" ], +-    "flags": [ "NEVER_JAMS", "NON-FOULING" ] ++    "flags": [ "NEVER_JAMS", "NON_FOULING" ] +   } + ] +diff --git a/data/mods/No_Hope/Items/gunmods.json b/data/mods/No_Hope/Items/gunmods.json +index cf963326d37..7b2f59aacb0 100644 +--- a/data/mods/No_Hope/Items/gunmods.json ++++ b/data/mods/No_Hope/Items/gunmods.json +@@ -202,6 +202,6 @@ +     }, +     "dispersion_modifier": 60, +     "min_skills": [ [ "weapon", 2 ], [ "rifle", 1 ] ], +-    "flags": [ "STR_RELOAD", "NON-FOULING" ] ++    "flags": [ "STR_RELOAD", "NON_FOULING" ] +   } + ] +diff --git a/data/mods/No_Hope/Items/guns.json b/data/mods/No_Hope/Items/guns.json +index a4e65ddea31..f516809673f 100644 +--- a/data/mods/No_Hope/Items/guns.json ++++ b/data/mods/No_Hope/Items/guns.json +@@ -35,7 +35,7 @@ +       [ "underbarrel mount", 1 ] +     ], +     "ammo_effects": [ "LASER", "INCENDIARY" ], +-    "flags": [ "NO_UNLOAD", "NON-FOULING", "NEEDS_NO_LUBE" ] ++    "flags": [ "NO_UNLOAD", "NON_FOULING", "NEEDS_NO_LUBE" ] +   }, +   { +     "id": "bio_blaster_gun", +@@ -503,7 +503,7 @@ +     "description": "A double-barreled pneumatic air shotgun handcrafted from scrap.  Though it's firepower is lacking compared to more conventional shotguns, this thing can still pack quite a punch.  That is, if your target is directly in front of you.", +     "price": 220000, +     "material": [ "steel", "wood" ], +-    "flags": [ "RELOAD_ONE", "STR_RELOAD", "NON-FOULING" ], ++    "flags": [ "RELOAD_ONE", "STR_RELOAD", "NON_FOULING" ], +     "skill": "shotgun", +     "ammo": [ "shotcanister" ], +     "weight": "3410 g", +diff --git a/data/mods/TEST_DATA/items.json b/data/mods/TEST_DATA/items.json +index 9eed603c8b8..cdbc4dd16d6 100644 +--- a/data/mods/TEST_DATA/items.json ++++ b/data/mods/TEST_DATA/items.json +@@ -20,7 +20,7 @@ +     "to_hit": -2, +     "qualities": [ [ "HAMMER", 1 ] ], +     "dont_recover_one_in": 80, +-    "effects": [ "NEVER_MISFIRES", "NON-FOULING" ] ++    "effects": [ "NEVER_MISFIRES", "NON_FOULING" ] +   }, +   { +     "type": "GENERIC", +diff --git a/src/ranged.cpp b/src/ranged.cpp +index 0f8def43a5c..ecdfa6384ea 100644 +--- a/src/ranged.cpp ++++ b/src/ranged.cpp +@@ -91,7 +91,7 @@ static const ammo_effect_str_id ammo_effect_LIGHTNING( "LIGHTNING" ); + static const ammo_effect_str_id ammo_effect_NO_CRIT( "NO_CRIT" ); + static const ammo_effect_str_id ammo_effect_NO_EMBED( "NO_EMBED" ); + static const ammo_effect_str_id ammo_effect_NO_ITEM_DAMAGE( "NO_ITEM_DAMAGE" ); +-static const ammo_effect_str_id ammo_effect_NON_FOULING( "NON-FOULING" ); ++static const ammo_effect_str_id ammo_effect_NON_FOULING( "NON_FOULING" ); + static const ammo_effect_str_id ammo_effect_PLASMA( "PLASMA" ); + static const ammo_effect_str_id ammo_effect_RECYCLED( "RECYCLED" ); + static const ammo_effect_str_id ammo_effect_SHATTER_SELF( "SHATTER_SELF" ); +--  +2.42.0 + diff --git a/src-12_lower-lockpicking-experience.patch b/src-12_lower-lockpicking-experience.patch new file mode 100644 index 0000000..375731c --- /dev/null +++ b/src-12_lower-lockpicking-experience.patch @@ -0,0 +1,16 @@ +--- a/src/activity_actor.cpp ++++ b/src/activity_actor.cpp +@@ -1174,10 +1174,11 @@ +     } +  +     if( !perfect ) { ++        who.practice( skill_mechanics, 6, 12 ); ++    } else { +         // You don't gain much skill since the item does all the hard work for you +-        xp_gain += std::pow( 2, who.get_skill_level( skill_mechanics ) ) + 1; ++        who.practice( skill_mechanics, 3, 12 ); +     } +-    who.practice( skill_mechanics, xp_gain ); +  +     if( !perfect && g->m.has_flag( "ALARMED", target ) && ( lock_roll + dice( 1, 30 ) ) > pick_roll ) { +         sounds::sound( who.pos(), 40, sounds::sound_t::alarm, _( "an alarm sound!" ), | 
