From 4f5554b8aa8970a878dd66bbafa3ca73f09fed05 Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Sat, 15 Jul 2023 14:51:14 -0700 Subject: [PATCH 01/20] required_bionic --- src/bionics.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/bionics.h b/src/bionics.h index 029059b2a6d5c..030b4179b8bff 100644 --- a/src/bionics.h +++ b/src/bionics.h @@ -167,6 +167,13 @@ struct bionic_data { */ std::set available_upgrades; + /** + * Id of another bionic which this bionic needs to have installed to be installed. + * Also prevents that bionic from being removed while this bionic is installed. + */ + bionic_id required_bionic; + /** + /**Requirement to bionic installation*/ requirement_id installation_requirement; From e0fad0360ef4d7c1b3de16fc49d70672bc32e281 Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Sat, 15 Jul 2023 15:02:22 -0700 Subject: [PATCH 02/20] required_bionic --- src/bionics.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/bionics.cpp b/src/bionics.cpp index 1dd6e94f1d746..4c1075a04b833 100644 --- a/src/bionics.cpp +++ b/src/bionics.cpp @@ -364,6 +364,7 @@ void bionic_data::load( const JsonObject &jsobj, const std::string &src ) optional( jsobj, was_loaded, "included_bionics", included_bionics ); optional( jsobj, was_loaded, "included", included ); optional( jsobj, was_loaded, "upgraded_bionic", upgraded_bionic ); + optional( jsobj, was_loaded, "required_bionic", required_bionic ); optional( jsobj, was_loaded, "fuel_options", fuel_opts ); optional( jsobj, was_loaded, "activated_on_install", activated_on_install, false ); @@ -568,6 +569,14 @@ void bionic_data::check_bionic_consistency() bio.id.c_str(), bio.upgraded_bionic.c_str() ); } } + if( bio.required_bionic ) { + if( bio.required_bionic == bio.id ) { + debugmsg( "Bionic %s requires itself as a prerequisite for installation", bio.id.c_str() ); + } else if( !bio.required_bionic.is_valid() ) { + debugmsg( "Bionic %s requires undefined bionic %s", + bio.id.c_str(), bio.required_bionic.c_str() ); + } + } if( !item::type_is_defined( bio.itype() ) && !bio.included ) { debugmsg( "Bionic %s has no defined item version", bio.id.c_str() ); } @@ -2113,6 +2122,12 @@ bool Character::can_uninstall_bionic( const bionic &bio, Character &installer, b return false; } + for( const bionic_id &bid : get_bionics() ) { + if( bid->required_bionic && bid->required_bionic == bio.id ) { + popup( _( "%s cannot be removed because installed bionic %s requires it." ), bio.id->name, bid->name ); + } + } + if( bio.id->cant_remove_reason.has_value() ) { popup( string_format( bio.id->cant_remove_reason.value(), disp_name( true ), disp_name() ) ); return false; @@ -2331,6 +2346,9 @@ ret_val Character::is_installable( const item *it, const bool by_autodoc ) !has_bionic( bid->upgraded_bionic ) && it->is_upgrade() ) { return ret_val::make_failure( _( "No base version installed." ) ); + } else if( bid->required_bionic && + !has_bionic( bid->required_bionic ) ) { + return ret_val::make_failure( _( "CBM requires prior installation of %s.", bid->required_bionic.obj().name ) ); } else if( std::any_of( bid->available_upgrades.begin(), bid->available_upgrades.end(), [this]( const bionic_id & b ) { From b4f2e9720639843711b7d02b68a8c9f56add86bf Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Sat, 15 Jul 2023 16:44:52 -0700 Subject: [PATCH 03/20] Update bionics.h --- src/bionics.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/bionics.h b/src/bionics.h index 030b4179b8bff..a81c6811b58ec 100644 --- a/src/bionics.h +++ b/src/bionics.h @@ -172,9 +172,8 @@ struct bionic_data { * Also prevents that bionic from being removed while this bionic is installed. */ bionic_id required_bionic; - /** - /**Requirement to bionic installation*/ + /**Requirement to bionic installation - this is a crafting requirement such as soldering_standard or surface_heat*/ requirement_id installation_requirement; cata::flat_set flags; From 7223945b349ff5faaf215ebaff15a0dbc0c6f225 Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Sat, 15 Jul 2023 16:45:05 -0700 Subject: [PATCH 04/20] Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/bionics.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/bionics.cpp b/src/bionics.cpp index 4c1075a04b833..03f4817da53d4 100644 --- a/src/bionics.cpp +++ b/src/bionics.cpp @@ -2124,7 +2124,8 @@ bool Character::can_uninstall_bionic( const bionic &bio, Character &installer, b for( const bionic_id &bid : get_bionics() ) { if( bid->required_bionic && bid->required_bionic == bio.id ) { - popup( _( "%s cannot be removed because installed bionic %s requires it." ), bio.id->name, bid->name ); + popup( _( "%s cannot be removed because installed bionic %s requires it." ), bio.id->name, + bid->name ); } } @@ -2348,7 +2349,8 @@ ret_val Character::is_installable( const item *it, const bool by_autodoc ) return ret_val::make_failure( _( "No base version installed." ) ); } else if( bid->required_bionic && !has_bionic( bid->required_bionic ) ) { - return ret_val::make_failure( _( "CBM requires prior installation of %s.", bid->required_bionic.obj().name ) ); + return ret_val::make_failure( _( "CBM requires prior installation of %s.", + bid->required_bionic.obj().name ) ); } else if( std::any_of( bid->available_upgrades.begin(), bid->available_upgrades.end(), [this]( const bionic_id & b ) { From 503ddc86e79c7358a40ef092f0ba9e9821f5f22f Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Sat, 15 Jul 2023 17:26:03 -0700 Subject: [PATCH 05/20] Update bionics.cpp --- src/bionics.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/bionics.cpp b/src/bionics.cpp index 03f4817da53d4..d5437b0a86d60 100644 --- a/src/bionics.cpp +++ b/src/bionics.cpp @@ -2349,8 +2349,7 @@ ret_val Character::is_installable( const item *it, const bool by_autodoc ) return ret_val::make_failure( _( "No base version installed." ) ); } else if( bid->required_bionic && !has_bionic( bid->required_bionic ) ) { - return ret_val::make_failure( _( "CBM requires prior installation of %s.", - bid->required_bionic.obj().name ) ); + return ret_val::make_failure( _( "CBM requires prior installation of %s." ), bid->required_bionic.obj().name ); } else if( std::any_of( bid->available_upgrades.begin(), bid->available_upgrades.end(), [this]( const bionic_id & b ) { From 5fc59cd9e64c7ac78ff2df160e21a069782113ef Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Sat, 15 Jul 2023 17:51:43 -0700 Subject: [PATCH 06/20] Update src/bionics.cpp Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/bionics.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bionics.cpp b/src/bionics.cpp index d5437b0a86d60..819970431e7c0 100644 --- a/src/bionics.cpp +++ b/src/bionics.cpp @@ -2349,7 +2349,8 @@ ret_val Character::is_installable( const item *it, const bool by_autodoc ) return ret_val::make_failure( _( "No base version installed." ) ); } else if( bid->required_bionic && !has_bionic( bid->required_bionic ) ) { - return ret_val::make_failure( _( "CBM requires prior installation of %s." ), bid->required_bionic.obj().name ); + return ret_val::make_failure( _( "CBM requires prior installation of %s." ), + bid->required_bionic.obj().name ); } else if( std::any_of( bid->available_upgrades.begin(), bid->available_upgrades.end(), [this]( const bionic_id & b ) { From a323aa503a578f849093f0797efc1fd3d3c7a283 Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Sat, 15 Jul 2023 17:53:20 -0700 Subject: [PATCH 07/20] hydraulics requires bio_weight --- data/json/bionics.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data/json/bionics.json b/data/json/bionics.json index b4c59115d9f59..2c2aceddabb96 100644 --- a/data/json/bionics.json +++ b/data/json/bionics.json @@ -1097,7 +1097,8 @@ "flags": [ "BIONIC_TOGGLED", "BIONIC_NPC_USABLE" ], "act_cost": "10 kJ", "react_cost": "10 kJ", - "time": "1 s" + "time": "1 s", + "required_bionic": "bio_weight" }, { "id": "bio_infrared", From 41a08a21593c0f48c1291b50948db89e9ef614ac Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Sat, 15 Jul 2023 18:05:01 -0700 Subject: [PATCH 08/20] put it in the itemdescription --- src/item.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/item.cpp b/src/item.cpp index e50a513156736..76aa795b7bf0d 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -5088,6 +5088,13 @@ void item::bionic_info( std::vector &info, const iteminfo_query *parts } insert_separation_line( info ); + if( bid->required_bionic ) { + info.emplace_back( "CBM", _( "This CBM requires another CBM to also be installed: " ), _( %s ), + iteminfo::no_newline, + bid->required_bionic->name ) ); + } + insert_separation_line( info ); + const bionic_id bid = type->bionic->id; const std::vector &fuels = bid->fuel_opts; if( !fuels.empty() ) { From 3c9c5a41723a996756ec2605c8eb865c384f288f Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Sat, 15 Jul 2023 18:27:47 -0700 Subject: [PATCH 09/20] Update item.cpp --- src/item.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/item.cpp b/src/item.cpp index 76aa795b7bf0d..be7ccd57a2783 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -5088,13 +5088,6 @@ void item::bionic_info( std::vector &info, const iteminfo_query *parts } insert_separation_line( info ); - if( bid->required_bionic ) { - info.emplace_back( "CBM", _( "This CBM requires another CBM to also be installed: " ), _( %s ), - iteminfo::no_newline, - bid->required_bionic->name ) ); - } - insert_separation_line( info ); - const bionic_id bid = type->bionic->id; const std::vector &fuels = bid->fuel_opts; if( !fuels.empty() ) { @@ -5119,6 +5112,11 @@ void item::bionic_info( std::vector &info, const iteminfo_query *parts insert_separation_line( info ); + if( bid->required_bionic ) { + info.emplace_back( "CBM", _( "This CBM requires another CBM to also be installed: %s", bid->required_bionic->name ) ); + } + insert_separation_line( info ); + // TODO refactor these almost identical blocks if( !bid->encumbrance.empty() ) { info.emplace_back( "DESCRIPTION", _( "Encumbrance:" ), From 0a47d6537c733f5b88df59d768ce78c626fe0a94 Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Sat, 15 Jul 2023 18:31:00 -0700 Subject: [PATCH 10/20] Update src/item.cpp Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/item.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/item.cpp b/src/item.cpp index be7ccd57a2783..17e4106a48915 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -5113,7 +5113,8 @@ void item::bionic_info( std::vector &info, const iteminfo_query *parts insert_separation_line( info ); if( bid->required_bionic ) { - info.emplace_back( "CBM", _( "This CBM requires another CBM to also be installed: %s", bid->required_bionic->name ) ); + info.emplace_back( "CBM", _( "This CBM requires another CBM to also be installed: %s", + bid->required_bionic->name ) ); } insert_separation_line( info ); From 05fe3fe2187442b627baa24b228079c5af2e35ba Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Sat, 15 Jul 2023 20:05:24 -0700 Subject: [PATCH 11/20] Update item.cpp --- src/item.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/item.cpp b/src/item.cpp index 17e4106a48915..9b2ab4376428d 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -5113,8 +5113,7 @@ void item::bionic_info( std::vector &info, const iteminfo_query *parts insert_separation_line( info ); if( bid->required_bionic ) { - info.emplace_back( "CBM", _( "This CBM requires another CBM to also be installed: %s", - bid->required_bionic->name ) ); + info.emplace_back( "CBM", string_format( "* This CBM requires another CBM to also be installed: %s", bid->required_bionic->name ) ); } insert_separation_line( info ); From e4bc6edd2a47d7e7f62e50a99379d61a30041771 Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Sat, 15 Jul 2023 21:43:48 -0700 Subject: [PATCH 12/20] Update src/item.cpp Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/item.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/item.cpp b/src/item.cpp index 9b2ab4376428d..3fa49dd55c409 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -5113,7 +5113,8 @@ void item::bionic_info( std::vector &info, const iteminfo_query *parts insert_separation_line( info ); if( bid->required_bionic ) { - info.emplace_back( "CBM", string_format( "* This CBM requires another CBM to also be installed: %s", bid->required_bionic->name ) ); + info.emplace_back( "CBM", string_format( "* This CBM requires another CBM to also be installed: %s", + bid->required_bionic->name ) ); } insert_separation_line( info ); From d6c8acb665e7b37812c8337c4a303273d7adab13 Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Tue, 18 Jul 2023 11:54:16 -0700 Subject: [PATCH 13/20] return false; --- src/bionics.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bionics.cpp b/src/bionics.cpp index 819970431e7c0..2b045900c44bb 100644 --- a/src/bionics.cpp +++ b/src/bionics.cpp @@ -2126,6 +2126,7 @@ bool Character::can_uninstall_bionic( const bionic &bio, Character &installer, b if( bid->required_bionic && bid->required_bionic == bio.id ) { popup( _( "%s cannot be removed because installed bionic %s requires it." ), bio.id->name, bid->name ); + return false; } } From e9e6460dce2c27707d061c263d918b259d1f70f2 Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Tue, 18 Jul 2023 12:10:42 -0700 Subject: [PATCH 14/20] astyle Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/bionics.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bionics.cpp b/src/bionics.cpp index 2b045900c44bb..156d9654f4d62 100644 --- a/src/bionics.cpp +++ b/src/bionics.cpp @@ -2126,7 +2126,7 @@ bool Character::can_uninstall_bionic( const bionic &bio, Character &installer, b if( bid->required_bionic && bid->required_bionic == bio.id ) { popup( _( "%s cannot be removed because installed bionic %s requires it." ), bio.id->name, bid->name ); - return false; + return false; } } From c00164f9832a1c590c3b50d3eeb8fa89e723a2fd Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Tue, 18 Jul 2023 14:18:56 -0700 Subject: [PATCH 15/20] if rubik sells hydraulics, they also always sell titanium skel --- data/json/npcs/exodii/exodii_merchant_itemlist.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/json/npcs/exodii/exodii_merchant_itemlist.json b/data/json/npcs/exodii/exodii_merchant_itemlist.json index 27edafacc766e..3f2e3966a9162 100644 --- a/data/json/npcs/exodii/exodii_merchant_itemlist.json +++ b/data/json/npcs/exodii/exodii_merchant_itemlist.json @@ -197,7 +197,7 @@ [ "bio_evap", 10 ], [ "bio_face_mask", 10 ], [ "bio_gills", 10 ], - [ "bio_hydraulics", 10 ], + { "collection": [ { "item": "bio_hydraulics", "prob": 100 }, { "item": "bio_weight", "prob": 100 } ] }, [ "bio_membrane", 10 ], [ "bio_painkiller", 10 ], [ "bio_radscrubber", 10 ], From 0a8ca0b8c8963047eb36f299abf45fce1741be10 Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Tue, 18 Jul 2023 14:21:59 -0700 Subject: [PATCH 16/20] document required_bionic --- doc/JSON_INFO.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/doc/JSON_INFO.md b/doc/JSON_INFO.md index 05fb0bf363f12..0e75dee1dec38 100644 --- a/doc/JSON_INFO.md +++ b/doc/JSON_INFO.md @@ -1090,6 +1090,7 @@ mod = min( max, ( limb_score / denominator ) - subtract ); | `social_modifiers` | (_optional_) Json object with optional members: persuade, lie, and intimidate which add or subtract that amount from those types of social checks | `dispersion_mod` | (_optional_) Modifier to change firearm dispersion. | `activated_on_install` | (_optional_) Auto-activates this bionic when installed. +| `required_bionic` | (_optional_) Bionic which is required to install this bionic, and which cannot be uninstalled if this bionic is installed ```JSON { @@ -1123,7 +1124,19 @@ mod = min( max, ( limb_score / denominator ) - subtract ); [ "hand_r", { "bash": 3, "cut": 3, "bullet": 3 } ] ], "flags": [ "BIONIC_NPC_USABLE" ] -} +}, + { + "id": "bio_hydraulics", + "type": "bionic", + "name": { "str": "Hydraulic Muscles" }, + "description": "While activated, your muscles will be greatly enhanced, increasing your strength by 20.", + "occupied_bodyparts": [ [ "torso", 10 ], [ "arm_l", 8 ], [ "arm_r", 8 ], [ "leg_l", 10 ], [ "leg_r", 10 ] ], + "flags": [ "BIONIC_TOGGLED", "BIONIC_NPC_USABLE" ], + "act_cost": "10 kJ", + "react_cost": "10 kJ", + "time": "1 s", + "required_bionic": "bio_weight" + } ``` Bionics effects are defined in the code and new effects cannot be created through JSON alone. From 64f97280173d125bd072528c68fdc97d6fee6d37 Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Tue, 18 Jul 2023 18:28:00 -0700 Subject: [PATCH 17/20] add a prob --- data/json/npcs/exodii/exodii_merchant_itemlist.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/json/npcs/exodii/exodii_merchant_itemlist.json b/data/json/npcs/exodii/exodii_merchant_itemlist.json index 3f2e3966a9162..6ab368f18d630 100644 --- a/data/json/npcs/exodii/exodii_merchant_itemlist.json +++ b/data/json/npcs/exodii/exodii_merchant_itemlist.json @@ -197,7 +197,7 @@ [ "bio_evap", 10 ], [ "bio_face_mask", 10 ], [ "bio_gills", 10 ], - { "collection": [ { "item": "bio_hydraulics", "prob": 100 }, { "item": "bio_weight", "prob": 100 } ] }, + { "collection": [ { "item": "bio_hydraulics", "prob": 100 }, { "item": "bio_weight", "prob": 100 } ], "prob": 10 }, [ "bio_membrane", 10 ], [ "bio_painkiller", 10 ], [ "bio_radscrubber", 10 ], From e7882721c743898e99617eff03c9b7c8614f310e Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Tue, 18 Jul 2023 20:09:33 -0700 Subject: [PATCH 18/20] Update data/json/npcs/exodii/exodii_merchant_itemlist.json Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- data/json/npcs/exodii/exodii_merchant_itemlist.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/data/json/npcs/exodii/exodii_merchant_itemlist.json b/data/json/npcs/exodii/exodii_merchant_itemlist.json index 6ab368f18d630..4c59b0039698a 100644 --- a/data/json/npcs/exodii/exodii_merchant_itemlist.json +++ b/data/json/npcs/exodii/exodii_merchant_itemlist.json @@ -197,7 +197,10 @@ [ "bio_evap", 10 ], [ "bio_face_mask", 10 ], [ "bio_gills", 10 ], - { "collection": [ { "item": "bio_hydraulics", "prob": 100 }, { "item": "bio_weight", "prob": 100 } ], "prob": 10 }, + { + "collection": [ { "item": "bio_hydraulics", "prob": 100 }, { "item": "bio_weight", "prob": 100 } ], + "prob": 10 + }, [ "bio_membrane", 10 ], [ "bio_painkiller", 10 ], [ "bio_radscrubber", 10 ], From 202417d8597280dc0bb9519c8367df10a78d5bf9 Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Tue, 18 Jul 2023 21:17:55 -0700 Subject: [PATCH 19/20] Update bionics.json --- data/json/bionics.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/data/json/bionics.json b/data/json/bionics.json index 2c2aceddabb96..b4c59115d9f59 100644 --- a/data/json/bionics.json +++ b/data/json/bionics.json @@ -1097,8 +1097,7 @@ "flags": [ "BIONIC_TOGGLED", "BIONIC_NPC_USABLE" ], "act_cost": "10 kJ", "react_cost": "10 kJ", - "time": "1 s", - "required_bionic": "bio_weight" + "time": "1 s" }, { "id": "bio_infrared", From f5cd9e4e617134a0c004479b5638463cc9391c7e Mon Sep 17 00:00:00 2001 From: anoobindisguise <56016372+anoobindisguise@users.noreply.github.com> Date: Tue, 18 Jul 2023 21:25:37 -0700 Subject: [PATCH 20/20] Update exodii_merchant_itemlist.json --- data/json/npcs/exodii/exodii_merchant_itemlist.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/data/json/npcs/exodii/exodii_merchant_itemlist.json b/data/json/npcs/exodii/exodii_merchant_itemlist.json index 4c59b0039698a..27edafacc766e 100644 --- a/data/json/npcs/exodii/exodii_merchant_itemlist.json +++ b/data/json/npcs/exodii/exodii_merchant_itemlist.json @@ -197,10 +197,7 @@ [ "bio_evap", 10 ], [ "bio_face_mask", 10 ], [ "bio_gills", 10 ], - { - "collection": [ { "item": "bio_hydraulics", "prob": 100 }, { "item": "bio_weight", "prob": 100 } ], - "prob": 10 - }, + [ "bio_hydraulics", 10 ], [ "bio_membrane", 10 ], [ "bio_painkiller", 10 ], [ "bio_radscrubber", 10 ],