From 9a3d0215484427507cf426f825cb4a1992376020 Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Mon, 13 Nov 2023 15:14:12 -0800 Subject: Add patch to reduce experience gain from lockpicking. Backport fix for energy weapons becoming dirty. --- PKGBUILD | 17 +- ...-NON_FOULING-flag-not-working-due-to-typo.patch | 552 +++++++++++++++++++++ src-12_lower-lockpicking-experience.patch | 16 + 3 files changed, 582 insertions(+), 3 deletions(-) create mode 100644 backport-01_fix-content-NON_FOULING-flag-not-working-due-to-typo.patch create mode 100644 src-12_lower-lockpicking-experience.patch diff --git a/PKGBUILD b/PKGBUILD index 2f64ad5..3ff1174 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -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 +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!" ), -- cgit v1.2.1