From b56828fc15cf6683368831ab37592b7cfe753261 Mon Sep 17 00:00:00 2001 From: Procyonae <45432782+Procyonae@users.noreply.github.com> Date: Wed, 5 Feb 2025 15:59:04 +0000 Subject: [PATCH 01/11] Allow extending/deleting connect_groups/connects_to/rotates_to --- src/mapdata.cpp | 42 +++++++++++++++++++++++++++++++++++++----- src/mapdata.h | 7 +++++-- 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/src/mapdata.cpp b/src/mapdata.cpp index e53f516f3e00b..660fe884eb56c 100644 --- a/src/mapdata.cpp +++ b/src/mapdata.cpp @@ -857,24 +857,38 @@ void map_data_common_t::unset_flags() transparent = false; //? } -void map_data_common_t::set_connect_groups( const std::vector - &connect_groups_vec ) +void map_data_common_t::set_connect_groups( const std::vector &connect_groups_vec ) { set_groups( connect_groups, connect_groups_vec ); } +void map_data_common_t::unset_connect_groups( const std::vector &connect_groups_vec ) +{ + set_groups( connect_groups, connect_groups_vec, true ); +} + void map_data_common_t::set_connects_to( const std::vector &connect_groups_vec ) { set_groups( connect_to_groups, connect_groups_vec ); } +void map_data_common_t::unset_connects_to( const std::vector &connect_groups_vec ) +{ + set_groups( connect_to_groups, connect_groups_vec, true ); +} + void map_data_common_t::set_rotates_to( const std::vector &connect_groups_vec ) { set_groups( rotate_to_groups, connect_groups_vec ); } +void map_data_common_t::unset_rotates_to( const std::vector &connect_groups_vec ) +{ + set_groups( rotate_to_groups, connect_groups_vec, true ); +} + void map_data_common_t::set_groups( std::bitset &bits, - const std::vector &connect_groups_vec ) + const std::vector &connect_groups_vec, bool unset ) { for( const std::string &group : connect_groups_vec ) { if( group.empty() ) { @@ -882,10 +896,10 @@ void map_data_common_t::set_groups( std::bitset &bits, continue; } std::string grp = group; - bool remove = false; + bool remove = unset; if( grp.at( 0 ) == '~' ) { grp = grp.substr( 1 ); - remove = true; + remove = !remove; } const auto it = ter_connects_map.find( grp ); if( it != ter_connects_map.end() ) { @@ -1027,12 +1041,30 @@ void map_data_common_t::load( const JsonObject &jo, const std::string &src ) for( auto &flag : joe.get_string_array( "flags" ) ) { set_flag( flag ); } + if( joe.has_member( "connect_groups" ) ) { + set_connect_groups( joe.get_as_string_array( "connect_groups" ) ); + } + if( joe.has_member( "connects_to" ) ) { + set_connect_groups( joe.get_as_string_array( "connects_to" ) ); + } + if( joe.has_member( "rotates_to" ) ) { + set_connect_groups( joe.get_as_string_array( "rotates_to" ) ); + } } if( was_loaded && jo.has_member( "delete" ) ) { JsonObject jod = jo.get_object( "delete" ); for( auto &flag : jod.get_string_array( "flags" ) ) { unset_flag( flag ); } + if( jod.has_member( "connect_groups" ) ) { + unset_connect_groups( jod.get_as_string_array( "connect_groups" ) ); + } + if( jod.has_member( "connects_to" ) ) { + unset_connect_groups( jod.get_as_string_array( "connects_to" ) ); + } + if( jod.has_member( "rotates_to" ) ) { + unset_connect_groups( jod.get_as_string_array( "rotates_to" ) ); + } } if( jo.has_array( "harvest_by_season" ) ) { diff --git a/src/mapdata.h b/src/mapdata.h index 58ce011b41f08..abd0d6dbb5b6e 100644 --- a/src/mapdata.h +++ b/src/mapdata.h @@ -594,14 +594,17 @@ struct map_data_common_t { // Set to be member of a connection target group void set_connect_groups( const std::vector &connect_groups_vec ); + void unset_connect_groups( const std::vector &connect_groups_vec ); // Set target connection group void set_connects_to( const std::vector &connect_groups_vec ); + void unset_connects_to( const std::vector &connect_groups_vec ); // Set target group to rotate towards void set_rotates_to( const std::vector &connect_groups_vec ); + void unset_rotates_to( const std::vector &connect_groups_vec ); // Set groups helper function - void set_groups( std::bitset &bits, - const std::vector &connect_groups_vec ); + void set_groups( std::bitset &bits, const std::vector &connect_groups_vec, + bool unset = false ); bool in_connect_groups( const std::bitset &test_connect_group ) const { return ( connect_groups & test_connect_group ).any(); From 490b578174d9fdfbfa1223ed26ff1f8ccf79f274 Mon Sep 17 00:00:00 2001 From: Procyonae <45432782+Procyonae@users.noreply.github.com> Date: Wed, 5 Feb 2025 16:26:13 +0000 Subject: [PATCH 02/11] Link custom difficulty personal mod --- data/mods/No_Hope/custom_difficulty_mod_template.url | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 data/mods/No_Hope/custom_difficulty_mod_template.url diff --git a/data/mods/No_Hope/custom_difficulty_mod_template.url b/data/mods/No_Hope/custom_difficulty_mod_template.url new file mode 100644 index 0000000000000..873f0369e8041 --- /dev/null +++ b/data/mods/No_Hope/custom_difficulty_mod_template.url @@ -0,0 +1,5 @@ +[{000214A0-0000-0000-C000-000000000046}] +Prop3=19,11 +[InternetShortcut] +IDList= +URL=https://github.com/Procyonae/CDDAMiniMods/tree/main/data/mods/No_Hope_Custom_Difficulty From e7d2ac6b82807a8cfc22850e4925d7b64a26f6e7 Mon Sep 17 00:00:00 2001 From: Procyonae <45432782+Procyonae@users.noreply.github.com> Date: Wed, 5 Feb 2025 16:28:20 +0000 Subject: [PATCH 03/11] Add back the military base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit While the military base is very much a loot piƱata esp if you're familiar with the design I don't see any reason to limit peeps, if they want to avoid it they can choose to themselves (hopefully Milopetilo will finish totally overhauling the location soon anyway) --- data/mods/No_Hope/overmap/overmap_specials.json | 7 ------- data/mods/No_Hope/scenario_blacklist.json | 7 ------- 2 files changed, 14 deletions(-) delete mode 100644 data/mods/No_Hope/scenario_blacklist.json diff --git a/data/mods/No_Hope/overmap/overmap_specials.json b/data/mods/No_Hope/overmap/overmap_specials.json index 5c2e9a1440d62..63b9bd814845a 100644 --- a/data/mods/No_Hope/overmap/overmap_specials.json +++ b/data/mods/No_Hope/overmap/overmap_specials.json @@ -28,13 +28,6 @@ "occurrences": [ 5, 100 ], "flags": [ "CLASSIC", "MAN_MADE", "OVERMAP_UNIQUE" ] }, - { - "//": "Military base is grossly unbalanced gameplay-wise, so until it gets some work done on this matter, I'm removing it from the game", - "type": "overmap_special", - "id": "mil_base", - "overmaps": [ ], - "occurrences": [ 0, 0 ] - }, { "type": "overmap_special", "id": "o_lightindustry", diff --git a/data/mods/No_Hope/scenario_blacklist.json b/data/mods/No_Hope/scenario_blacklist.json deleted file mode 100644 index 9a93dc4f0747c..0000000000000 --- a/data/mods/No_Hope/scenario_blacklist.json +++ /dev/null @@ -1,7 +0,0 @@ -[ - { - "type": "SCENARIO_BLACKLIST", - "subtype": "blacklist", - "scenarios": [ "overrun" ] - } -] From 544dae437d6793999056461311bdeae44d5f061d Mon Sep 17 00:00:00 2001 From: Procyonae <45432782+Procyonae@users.noreply.github.com> Date: Wed, 5 Feb 2025 16:28:42 +0000 Subject: [PATCH 04/11] Add myself as maintainer and update description --- data/mods/No_Hope/modinfo.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/mods/No_Hope/modinfo.json b/data/mods/No_Hope/modinfo.json index 93e6c35384c3b..ac851e4c4ed6b 100644 --- a/data/mods/No_Hope/modinfo.json +++ b/data/mods/No_Hope/modinfo.json @@ -4,8 +4,8 @@ "id": "no_hope", "name": "No Hope", "authors": [ "Night_Pryanik" ], - "maintainers": [ "Night_Pryanik" ], - "description": "- Significantly reduced amount of places with guaranteed loot spawns.\n- Loot spawn in buildings is drastically reduced, especially for food, tools, guns etc.\n- Most buildings are destroyed, vandalized, or looted.\n- Most cars are destroyed or at least damaged. Intact cars are nearly impossible to find.\n- Fuel is much harder to find, almost all cars have no fuel in tanks.\n- Marauders, looters, and bandits everywhere.\n\nSee extended description in README.md.\n\nTo get the mod author's intended playing experience, consider:\n- Enabling wandering hordes.\n- Setting item spawn scaling factor to 0.5 or lower.\n- Setting spawn rate scaling factor to 1.5 or higher.", + "maintainers": [ "Procyonae" ], + "description": "Aims to make the world more inhospitable and challenging in as many ways as possible, items needed for survival and vehicles are much harder to obtain, destruction and banditry is prevelant, even the weather has taken a turn for the worse, see in game help menu by pressing 0 once in-game for full feature list and option explanations.", "category": "content", "dependencies": [ "dda" ], "version": "3.5" From 74fafa129baa38f67b553b338068d7855cea0fe3 Mon Sep 17 00:00:00 2001 From: Procyonae <45432782+Procyonae@users.noreply.github.com> Date: Wed, 5 Feb 2025 16:29:12 +0000 Subject: [PATCH 05/11] Remove zombies not reviving Very unfitting for the mods goal --- data/mods/No_Hope/modinfo.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/data/mods/No_Hope/modinfo.json b/data/mods/No_Hope/modinfo.json index ac851e4c4ed6b..9ab1e8341659d 100644 --- a/data/mods/No_Hope/modinfo.json +++ b/data/mods/No_Hope/modinfo.json @@ -9,11 +9,5 @@ "category": "content", "dependencies": [ "dda" ], "version": "3.5" - }, - { - "type": "monster_adjustment", - "species": "ZOMBIE", - "//": "TODO: Is this still wanted?", - "flag": { "name": "REVIVES", "value": false } } ] From b3859b68d2ce8be13a6c2320d6fbef24df7275d7 Mon Sep 17 00:00:00 2001 From: Procyonae <45432782+Procyonae@users.noreply.github.com> Date: Wed, 5 Feb 2025 16:29:34 +0000 Subject: [PATCH 06/11] Apply copy-from where appropriate --- .../mods/No_Hope/overmap/overmap_terrain.json | 6 +- data/mods/No_Hope/terrain.json | 302 +----------------- 2 files changed, 9 insertions(+), 299 deletions(-) diff --git a/data/mods/No_Hope/overmap/overmap_terrain.json b/data/mods/No_Hope/overmap/overmap_terrain.json index d4515188f99d9..91ed52398199b 100644 --- a/data/mods/No_Hope/overmap/overmap_terrain.json +++ b/data/mods/No_Hope/overmap/overmap_terrain.json @@ -8,10 +8,6 @@ { "type": "overmap_terrain", "id": "lmoe_under_full", - "name": "LMOE shelter", - "sym": "+", - "color": "red", - "see_cost": "full_high", - "flags": [ "KNOWN_UP", "SOURCE_PEOPLE", "SOURCE_SAFETY", "SOURCE_GUN", "SOURCE_AMMO", "SOURCE_FOOD" ] + "copy-from": "lmoe_under_empty" } ] diff --git a/data/mods/No_Hope/terrain.json b/data/mods/No_Hope/terrain.json index 0ea68cd571866..e7ff0b4e444d8 100644 --- a/data/mods/No_Hope/terrain.json +++ b/data/mods/No_Hope/terrain.json @@ -1,294 +1,16 @@ [ { "type": "terrain", - "id": "t_wall", - "//": "TODO: Change to copy-from: t_wall extend: flags: FLAMMABLE_HARD delete: flags: FLAMMABLE once #73211 merges", - "name": "wall", - "description": "The stereotypical wall with wooden support structure filled with insulation and drywalled. Paint job is the all too common and neutral off-white or cream color, it could use more vibrant paint.", - "symbol": "#", - "color": "light_gray", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "connect_groups": "WALL", - "connects_to": "WALL", - "flags": [ - "FLAMMABLE_HARD", - "NOITEM", - "SUPPORTS_ROOF", - "WALL", - "NO_SCENT", - "AUTO_WALL_SYMBOL", - "MINEABLE", - "BLOCK_WIND", - "WIRED_WALL" - ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_r", - "looks_like": "t_wall", - "name": "red wall", - "description": "Wall painted red.", - "symbol": "#", - "color": "red", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "connect_groups": "WALL", - "connects_to": "WALL", - "flags": [ - "FLAMMABLE_HARD", - "NOITEM", - "SUPPORTS_ROOF", - "WALL", - "NO_SCENT", - "CHIP", - "AUTO_WALL_SYMBOL", - "MINEABLE", - "BLOCK_WIND", - "WIRED_WALL" - ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_w", - "looks_like": "t_wall", - "name": "white wall", - "description": "Wall painted white.", - "symbol": "#", - "color": "white", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "connect_groups": "WALL", - "connects_to": "WALL", - "flags": [ - "FLAMMABLE_HARD", - "NOITEM", - "SUPPORTS_ROOF", - "WALL", - "NO_SCENT", - "CHIP", - "AUTO_WALL_SYMBOL", - "MINEABLE", - "BLOCK_WIND", - "WIRED_WALL" - ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_b", - "looks_like": "t_wall", - "name": "blue wall", - "description": "Wall painted blue.", - "symbol": "#", - "color": "blue", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "connect_groups": "WALL", - "connects_to": "WALL", - "flags": [ - "FLAMMABLE_HARD", - "NOITEM", - "SUPPORTS_ROOF", - "WALL", - "NO_SCENT", - "CHIP", - "AUTO_WALL_SYMBOL", - "MINEABLE", - "BLOCK_WIND", - "WIRED_WALL" - ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_g", - "looks_like": "t_wall", - "name": "green wall", - "description": "Wall painted green.", - "symbol": "#", - "color": "green", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "connect_groups": "WALL", - "connects_to": "WALL", - "flags": [ - "FLAMMABLE_HARD", - "NOITEM", - "SUPPORTS_ROOF", - "WALL", - "NO_SCENT", - "CHIP", - "AUTO_WALL_SYMBOL", - "MINEABLE", - "BLOCK_WIND", - "WIRED_WALL" - ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_y", - "looks_like": "t_wall", - "name": "yellow wall", - "description": "Wall painted yellow.", - "symbol": "#", - "color": "yellow", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "connect_groups": "WALL", - "connects_to": "WALL", - "flags": [ - "FLAMMABLE_HARD", - "NOITEM", - "SUPPORTS_ROOF", - "WALL", - "NO_SCENT", - "CHIP", - "AUTO_WALL_SYMBOL", - "MINEABLE", - "BLOCK_WIND", - "WIRED_WALL" - ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_P", - "looks_like": "t_wall", - "name": "pink wall", - "description": "Wall painted pink.", - "symbol": "#", - "color": "pink", - "move_cost": 0, - "coverage": 100, - "connect_groups": "WALL", - "connects_to": "WALL", - "flags": [ - "FLAMMABLE_HARD", - "NOITEM", - "SUPPORTS_ROOF", - "WALL", - "NO_SCENT", - "CHIP", - "AUTO_WALL_SYMBOL", - "MINEABLE", - "BLOCK_WIND", - "WIRED_WALL" - ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } - }, - { - "type": "terrain", - "id": "t_wall_p", - "looks_like": "t_wall", - "name": "purple wall", - "description": "Wall painted purple.", - "symbol": "#", - "color": "magenta", - "move_cost": 0, - "coverage": 100, - "roof": "t_flat_roof", - "connect_groups": "WALL", - "connects_to": "WALL", - "flags": [ - "FLAMMABLE_HARD", - "NOITEM", - "SUPPORTS_ROOF", - "WALL", - "NO_SCENT", - "CHIP", - "AUTO_WALL_SYMBOL", - "MINEABLE", - "BLOCK_WIND", - "WIRED_WALL" - ], - "bash": { - "str_min": 30, - "str_max": 210, - "sound": "crash!", - "sound_fail": "whump!", - "ter_set": "t_null", - "items": "wall_bash_results" - } + "abstract": "t_abstract_wall_wood", + "copy-from": "t_abstract_wall_wood", + "delete": { "flags": [ "FLAMMABLE" ] }, + "extend": { "flags": [ "FLAMMABLE_HARD" ] } }, { "type": "terrain", "id": "t_carpet_red", - "name": "red carpet", - "description": "Soft red carpet.", - "symbol": ".", - "color": "red", - "move_cost": 2, - "roof": "t_flat_roof", - "connect_groups": [ "RAIL", "INDOORFLOOR" ], - "connects_to": "RAIL", - "flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "SUPPORTS_ROOF", "COLLAPSES", "INDOORS", "FLAT", "RUG" ], - "bash": { - "sound": "SMASH!", - "ter_set": "t_null", - "str_min": 50, - "str_max": 400, - "str_min_supported": 100, - "items": [ { "item": "splinter", "count": [ 2, 8 ] }, { "item": "nail", "charges": [ 6, 13 ] } ] - } + "copy-from": "t_carpet_red", + "extend": { "connect_groups": [ "RAIL" ], "connects_to": [ "RAIL" ] } }, { "type": "terrain", @@ -319,16 +41,8 @@ { "type": "terrain", "id": "t_rock_floor", - "name": "rock floor", - "description": "A relatively flat area of rock and stone. Looks stable enough to be mined with the proper mining gear.", - "symbol": ".", - "color": "light_gray", - "move_cost": 2, - "roof": "t_flat_roof", - "connect_groups": [ "RAIL", "INDOORFLOOR" ], - "connects_to": "RAIL", - "flags": [ "TRANSPARENT", "INDOORS", "COLLAPSES", "SUPPORTS_ROOF", "FLAT", "ROAD" ], - "bash": { "ter_set": "t_null", "str_min": 75, "str_max": 400, "str_min_supported": 100, "bash_below": true } + "copy-from": "t_rock_floor", + "extend": { "connect_groups": [ "RAIL" ], "connects_to": [ "RAIL" ] } }, { "type": "terrain", From a82ac60aa145ff88e6a13fe592e6b15ac5206074 Mon Sep 17 00:00:00 2001 From: Procyonae <45432782+Procyonae@users.noreply.github.com> Date: Wed, 5 Feb 2025 16:32:02 +0000 Subject: [PATCH 07/11] Remove altered stamina burn rate --- data/mods/No_Hope/game_balance.json | 7 ------- 1 file changed, 7 deletions(-) diff --git a/data/mods/No_Hope/game_balance.json b/data/mods/No_Hope/game_balance.json index 258291f063e79..1ebfbfe50a4a6 100644 --- a/data/mods/No_Hope/game_balance.json +++ b/data/mods/No_Hope/game_balance.json @@ -1,11 +1,4 @@ [ - { - "type": "EXTERNAL_OPTION", - "name": "PLAYER_BASE_STAMINA_BURN_RATE", - "//": "TODO: Why is this lower than vanilla?", - "stype": "int", - "value": 10 - }, { "type": "EXTERNAL_OPTION", "name": "OVERRIDE_VEHICLE_INIT_STATE", From fa87265d6c1164d3b52fde7b35f783e0421f9507 Mon Sep 17 00:00:00 2001 From: Procyonae <45432782+Procyonae@users.noreply.github.com> Date: Wed, 5 Feb 2025 16:31:44 +0000 Subject: [PATCH 08/11] Shimmy around documentation Main readme moved to in-game help, split off the dev bits into CONTRIBUTING.md, renamed EoCs files to difficulty_options to make their purpose more obvious and discourage shoving all additional EoCs in with them. --- data/mods/No_Hope/CONTRIBUTING.md | 32 ++++++++++++ .../{EoCs.md => DIFFICULTY_OPTIONS.md} | 6 ++- data/mods/No_Hope/README.md | 49 ------------------- .../{EoCs.json => difficulty_options.json} | 32 ++++++------ data/mods/No_Hope/help_files.json | 34 +++++++++++++ 5 files changed, 87 insertions(+), 66 deletions(-) create mode 100644 data/mods/No_Hope/CONTRIBUTING.md rename data/mods/No_Hope/{EoCs.md => DIFFICULTY_OPTIONS.md} (97%) delete mode 100644 data/mods/No_Hope/README.md rename data/mods/No_Hope/{EoCs.json => difficulty_options.json} (92%) create mode 100644 data/mods/No_Hope/help_files.json diff --git a/data/mods/No_Hope/CONTRIBUTING.md b/data/mods/No_Hope/CONTRIBUTING.md new file mode 100644 index 0000000000000..2f1285823eb37 --- /dev/null +++ b/data/mods/No_Hope/CONTRIBUTING.md @@ -0,0 +1,32 @@ +# No Hope Contributing + +## Design ethos + +The aim of the mod is to make the world more inhospitable and challenging in as many ways as possible. All changes should either increase/add difficulty, encourage risk for reward and/or enhance the feeling of hopelessness seen through the setting. +All difficult encounters should be avoidable/escapable through some means to avoid bs deaths to stuff the player didn't intend to take on. + +### List of temporarily missing features due to fallout of moving to item category spawn rates (Requires C++) + +- Decreased amount of ammo drop from turrets: 5.56 - 120, 7.62 - 100, .50 - 90. + +- Made all gas stations have 0 - 5000 units of fuel instead of vanilla 40000 - 50000 units. Also made almost all locations in mapgen have the same 0 - 5000 units of fuel, including avgas. Also made almost all cars have zero fuel. There are places and cars where you could still find fuel, they are just very rare. + +## Ideal future changes + +- The item spawn rate difficulties could do with some more precise number tuning. + +- Vehicle difficulty settings akin to the item ones would be nice, the current option is a bit all or nothing for my liking (requires C++ changes) + +- Leaning further into bandit prevalence would be good, with random encounters and full bandit faction camps being potential additions. Bandits would also be a fitting source of working vehicles/fuel. + +- Small groups of high functioning ferals could be interesting to explore too and would be easier to kill than bands of bandit due to the differences in NPC/monster HP. + +- Friendly factions should be removed or heavily altered to reflect the less hospitable world. + +- I'd like to see CBMs reremoved from their old locations and moved to a hostile cyborg/robot faction that are encountered frequently in a similar but riskier vain to bandits to push for a more chaotic risk/reward feeling than just "wow this toxic dump with 0 enemies has a CBM I can use" as well as giving the mod more character. This could take the form of the exodii being more numerous and hostile or something entirely new. + +- Necropolis should be reworked into a mutable so it looks less stupid and is more interesting to explore, there could also do with being more reason to go there. Could potentially also add wandering irradiated zeds around it. + +- Portal storms could be more frequent and/or pose more of a threat. Changing the portal dungeon to be more random and treacherous while maintaining the idea of a ramping reward but now including other loot could be neat to encourage not just sitting it out. + +- The mutant NPCs aren't fitting to the ethos imo, could do with being expanded upon or scrapped. \ No newline at end of file diff --git a/data/mods/No_Hope/EoCs.md b/data/mods/No_Hope/DIFFICULTY_OPTIONS.md similarity index 97% rename from data/mods/No_Hope/EoCs.md rename to data/mods/No_Hope/DIFFICULTY_OPTIONS.md index 93535e8503359..6b22005af5aa8 100644 --- a/data/mods/No_Hope/EoCs.md +++ b/data/mods/No_Hope/DIFFICULTY_OPTIONS.md @@ -1,3 +1,7 @@ +# No Hope Difficulty Settings + +## Item Difficulty Settings + As of writing there are 34 item categories in the game. No Hope alters some of the spawn rates for the categories to a degree depending on the players choice at the start of the game. These rates notably don't work with every type of item spawn rn. @@ -34,4 +38,4 @@ keys | excluded? | These are just id cards and are already r corpses | excluded | tool_magazine | included | armor | included | -exosuit | excluded | Exosuits are already a rare reward. \ No newline at end of file +exosuit | excluded | Exosuits are already a rare reward. diff --git a/data/mods/No_Hope/README.md b/data/mods/No_Hope/README.md deleted file mode 100644 index 610b59a12b035..0000000000000 --- a/data/mods/No_Hope/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# No Hope - -The mod is based on the old lore where there was a full-scale war with China with many months of preceding marauding and civil disorder. Thus the world with the mod will be much more damaged overall, there will be much less loot etc. - -The major goal is to make Cataclysm harder and harsher. To achieve this goal, I decreased loot spawn, made most houses spawn damaged, as well as most cars, and some other changes. - - -# List of features -- Returned some cut vanilla content, including, but not limited to: laser turret (rewrote description to mention it's working not on the solar panels, but rather on compact yet powerful storage batteries; updated drop list to reflect that), chickenbot, tankbot and tripod and made it spawn in some military locations. - -- Returned old names and descriptions for turrets (they are manufactured by General Atomics and Leadworks) and security-bot (Northrop). - -- Made ordinary walls hard to set on fire. Based on my old closed PR (https://github.com/CleverRaven/Cataclysm-DDA/pull/15537). Now you can't set it on fire using a simple lighter. - -- Alters domestic mapgen palettes to increase damage and messiness. - -- Item spawns are decreased by an amount set by a player chosen difficulty at the start of the game. See EoCs.md. - -- Returned moose's legendary aggression. Now it's the good old machine of destruction as it used to be. - -- Returned back flaming eye's ray of destruction. Removed flaming eye's STARE attack. Added almost identical monster - staring eye with STARE attack. - -- Integrated "Cars to Wrecks" mod. Most vehicles spawn damaged and without fuel. Intact cars now are much, much harder to find, though not impossible. - -- Integrated "Mutant NPCs" mod. I like the idea, it's fun, so why not? - -- Integrated "Extra Bandits" mod. Extra bandits of all sorts everywhere is exactly the thing I'd expect to emerge after the apocalypse. TODO: Leaning further into bandit prevalence would be good for the mods direction imo. Bandits would also be a fitting source of working vehicles/fuel. - -- Removed all turrets from military vehicles. - -- Most LMOE shelters now have a rather high chance to spawn bandits inside. Empty LMOEs now has a lower chance (1 for every 3 occupied) to spawn. - -- Slightly reduced stamina burn rate while walking. TODO: Why? - -- Made zombies don't revive by default. Reviving has some serious issues that can't be easy fixed, so until these issues are to be resolved, I'm disabling zombie resurrection in my mod. TODO: Are any of these issues still present? - -- Reduced chance to drop military gear from zombie soldiers. TODO: Could be handled by the item category spawn rates instead? - -- Gave all mechas ability to protect their operators from melee and ranged damage. - -- Returned CBM loot in most places it was removed from (electronic stores, toxic dumps, sewage treatment plants etc). - -- Removed military base from the game as it has very serious balance issues. - -# List of temporarily missing features - -- Decreased amount of ammo drop from turrets: 5.56 - 120, 7.62 - 100, .50 - 90. TODO: Should be handled by the item category spawn rates instead. - -- Made all gas stations have 0 - 5000 units of fuel instead of vanilla 40000 - 50000 units. Also made almost all locations in mapgen have the same 0 - 5000 units of fuel, including avgas. Also made almost all cars have zero fuel. There are places and cars where you could still find fuel, they are just very rare. TODO: Some of this should be handled by the item category spawn rates instead. \ No newline at end of file diff --git a/data/mods/No_Hope/EoCs.json b/data/mods/No_Hope/difficulty_options.json similarity index 92% rename from data/mods/No_Hope/EoCs.json rename to data/mods/No_Hope/difficulty_options.json index ca3de9382140f..aa459be75a16e 100644 --- a/data/mods/No_Hope/EoCs.json +++ b/data/mods/No_Hope/difficulty_options.json @@ -16,18 +16,28 @@ { "type": "effect_on_condition", "id": "EOC_NH_difficultycheck", - "eoc_type": "EVENT", - "required_event": "game_load", "//": "When this EOC gets changed significantly a version variable should be added and checked against here so it reruns", - "//1": "TODO: Once variance is added to the difficulties update their descriptions to be more desciptive as to what they actually do", - "//2": "TODO: Add a vehicle difficulty check too that comes up as a second set of choices?", "condition": { "math": [ "!has_var( NH_item_difficulty )" ] }, + "effect": { "run_eocs": "EOC_NH_set_difficulty" }, + "false_effect": [ + { + "switch": { "math": [ "NH_item_difficulty" ] }, + "cases": [ + { "case": 0, "effect": { "run_eocs": "EOC_NH_item_difficulty_0" } }, + { "case": 1, "effect": { "run_eocs": "EOC_NH_item_difficulty_1" } }, + { "case": 2, "effect": { "run_eocs": "EOC_NH_item_difficulty_2" } } + ] + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_NH_set_difficulty", "effect": [ { "run_eoc_selector": [ "EOC_NH_set_item_difficulty_0", "EOC_NH_set_item_difficulty_1", "EOC_NH_set_item_difficulty_2" ], - "//": "A custom difficulty could be nice too, with smaller groups like guns/magazines/ammo/mods, clothing/armor, fuel/veh_parts.", "names": [ "Creeping Despair", "Fervent Despair", "Overwhelming Despair" ], - "title": "Select an Item Rarity Difficulty", + "title": "Select a difficulty", "keys": [ "1", "2", "3" ], "descriptions": [ "Creeping Despair makes items rarer than vanilla.", @@ -35,16 +45,6 @@ "Overwhelming Despair makes items rarer than Fervent Despair." ] } - ], - "false_effect": [ - { - "switch": { "math": [ "NH_item_difficulty" ] }, - "cases": [ - { "case": 0, "effect": { "run_eocs": "EOC_NH_item_difficulty_0" } }, - { "case": 1, "effect": { "run_eocs": "EOC_NH_item_difficulty_1" } }, - { "case": 2, "effect": { "run_eocs": "EOC_NH_item_difficulty_2" } } - ] - } ] }, { diff --git a/data/mods/No_Hope/help_files.json b/data/mods/No_Hope/help_files.json new file mode 100644 index 0000000000000..ad6f0bd09b675 --- /dev/null +++ b/data/mods/No_Hope/help_files.json @@ -0,0 +1,34 @@ +[ + { + "type": "help", + "order": 0, + "name": "No Hope: Features", + "messages": [ + "Alters domestic mapgen palettes to increase damage and messiness.", + "Adds item difficulty settings that reduce the spawn rates for common item categories without reducing rare items. See EoCs.md for category breakdowns and customisation or EoCs.json for exact numbers used for each difficulty.", + "Most vehicles spawn damaged and without fuel. Intact cars now are much, much harder to find, though not impossible (Originally the \"Cars to Wrecks\" mod).", + "Removed all turrets from military vehicles.", + "More miserable weather, expect long spells of rain and fog.", + "Greatly ups bandit presence (Originally the \"Extra Bandit\" mod).", + "Most LMOE shelters now have a rather high chance to spawn bandits inside. Empty LMOEs now has a lower chance (1 for every 3 occupied) to spawn.", + "Reduced chance to drop military gear from zombie soldiers.", + "Gave all mechas ability to protect their operators from melee and ranged damage.", + "Makes wooden walls hard to set on fire. Fire is a very powerful out in alot of situations, this tries to make it slightly less abuseable.", + "Returned CBM loot in most places it was removed from (electronic stores, toxic dumps, sewage treatment plants etc).", + "Returned some cut vanilla content, including, but not limited to: laser turret (rewrote description to mention it's working not on the solar panels, but rather on compact yet powerful storage batteries; updated drop list to reflect that), chickenbot, tankbot and tripod and made it spawn in some military locations, moose's legendary aggression and flaming eye's ray of destruction. Removed flaming eye's STARE attack. Added almost identical monster - staring eye with STARE attack.", + "Adds mutant random NPCs (Originally the \"Mutant NPCs\" mod)." + ] + }, + { + "type": "help", + "order": 1, + "name": "No Hope: Difficulty Options", + "messages": [ + "No Hope adds 3 difficulties that allow you to pick between increasingly more harsh multipliers to spawn rates split by item category intended to make basic survival less trivial and progression slower and in turn require more exploration leading to greater risk while less powerful without decreasing the spawn rates of items such as mutagens and bionics that are intended as rewards for exploring more dangerous locations and are already rare and as such shouldn't be punished.", + "The difficulty options can be used alongside the regular item spawn rate setting if desired with expected results.", + "For exact numerical breakdowns of the options see difficulty_options.json along with DIFFICULTY_OPTIONS.md for a barebones breakdown of which categories are affected and why.", + "If you wish to alter the difficulty settings past the 3 options you might prefer to use a personal mod to add a 4th option so that you don't need to keep editing files on update and can instead just copy paste the personal mod across, see https://github.com/Procyonae/CDDAMiniMods/tree/main/data/mods/No_Hope_Custom_Difficulty (shortcut in mod folder) for a template of such a mod that just needs the numbers tweaking to your liking.", + "If you wish to change the selected option on an existing save you can do so by binding the debug menu then navigating to debug menu -> Game -> Activate EOC -> EOC_NH_set_difficulty. This notably won't change already generated item spawns anywhere that your reality bubble has touched." + ] + } +] From 717d0d95ab25b2841dd8eac66612950a84bc65aa Mon Sep 17 00:00:00 2001 From: Procyonae <45432782+Procyonae@users.noreply.github.com> Date: Wed, 5 Feb 2025 16:51:39 +0000 Subject: [PATCH 09/11] Link relevant issue --- data/mods/No_Hope/CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/mods/No_Hope/CONTRIBUTING.md b/data/mods/No_Hope/CONTRIBUTING.md index 2f1285823eb37..a9d0488da59da 100644 --- a/data/mods/No_Hope/CONTRIBUTING.md +++ b/data/mods/No_Hope/CONTRIBUTING.md @@ -11,6 +11,8 @@ All difficult encounters should be avoidable/escapable through some means to avo - Made all gas stations have 0 - 5000 units of fuel instead of vanilla 40000 - 50000 units. Also made almost all locations in mapgen have the same 0 - 5000 units of fuel, including avgas. Also made almost all cars have zero fuel. There are places and cars where you could still find fuel, they are just very rare. +- Also see #70325 + ## Ideal future changes - The item spawn rate difficulties could do with some more precise number tuning. From 39fd6e20d15ede76c5e20ebcd61459ebd6162f77 Mon Sep 17 00:00:00 2001 From: Procyonae <45432782+Procyonae@users.noreply.github.com> Date: Wed, 5 Feb 2025 17:08:59 +0000 Subject: [PATCH 10/11] Typos --- data/mods/No_Hope/help_files.json | 2 +- data/mods/No_Hope/modinfo.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/mods/No_Hope/help_files.json b/data/mods/No_Hope/help_files.json index ad6f0bd09b675..50c07085ed9ca 100644 --- a/data/mods/No_Hope/help_files.json +++ b/data/mods/No_Hope/help_files.json @@ -13,7 +13,7 @@ "Most LMOE shelters now have a rather high chance to spawn bandits inside. Empty LMOEs now has a lower chance (1 for every 3 occupied) to spawn.", "Reduced chance to drop military gear from zombie soldiers.", "Gave all mechas ability to protect their operators from melee and ranged damage.", - "Makes wooden walls hard to set on fire. Fire is a very powerful out in alot of situations, this tries to make it slightly less abuseable.", + "Makes wooden walls hard to set on fire. Fire is a very powerful out in alot of situations, this tries to make it slightly less abusable.", "Returned CBM loot in most places it was removed from (electronic stores, toxic dumps, sewage treatment plants etc).", "Returned some cut vanilla content, including, but not limited to: laser turret (rewrote description to mention it's working not on the solar panels, but rather on compact yet powerful storage batteries; updated drop list to reflect that), chickenbot, tankbot and tripod and made it spawn in some military locations, moose's legendary aggression and flaming eye's ray of destruction. Removed flaming eye's STARE attack. Added almost identical monster - staring eye with STARE attack.", "Adds mutant random NPCs (Originally the \"Mutant NPCs\" mod)." diff --git a/data/mods/No_Hope/modinfo.json b/data/mods/No_Hope/modinfo.json index 9ab1e8341659d..4e417b14c994c 100644 --- a/data/mods/No_Hope/modinfo.json +++ b/data/mods/No_Hope/modinfo.json @@ -5,7 +5,7 @@ "name": "No Hope", "authors": [ "Night_Pryanik" ], "maintainers": [ "Procyonae" ], - "description": "Aims to make the world more inhospitable and challenging in as many ways as possible, items needed for survival and vehicles are much harder to obtain, destruction and banditry is prevelant, even the weather has taken a turn for the worse, see in game help menu by pressing 0 once in-game for full feature list and option explanations.", + "description": "Aims to make the world more inhospitable and challenging in as many ways as possible, items needed for survival and vehicles are much harder to obtain, destruction and banditry is prevelent, even the weather has taken a turn for the worse, see in game help menu by pressing 0 once in-game for full feature list and option explanations.", "category": "content", "dependencies": [ "dda" ], "version": "3.5" From f4030bd28a98525f56dff94a552a3aa5f39ceffb Mon Sep 17 00:00:00 2001 From: Anton Simakov <67688115+GuardianDll@users.noreply.github.com> Date: Thu, 6 Feb 2025 07:50:57 +0100 Subject: [PATCH 11/11] add double spaces in help --- data/mods/No_Hope/help_files.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/data/mods/No_Hope/help_files.json b/data/mods/No_Hope/help_files.json index 50c07085ed9ca..492dc13733679 100644 --- a/data/mods/No_Hope/help_files.json +++ b/data/mods/No_Hope/help_files.json @@ -5,17 +5,17 @@ "name": "No Hope: Features", "messages": [ "Alters domestic mapgen palettes to increase damage and messiness.", - "Adds item difficulty settings that reduce the spawn rates for common item categories without reducing rare items. See EoCs.md for category breakdowns and customisation or EoCs.json for exact numbers used for each difficulty.", - "Most vehicles spawn damaged and without fuel. Intact cars now are much, much harder to find, though not impossible (Originally the \"Cars to Wrecks\" mod).", + "Adds item difficulty settings that reduce the spawn rates for common item categories without reducing rare items. See EoCs.md for category breakdowns and customisation or EoCs.json for exact numbers used for each difficulty.", + "Most vehicles spawn damaged and without fuel. Intact cars now are much, much harder to find, though not impossible (Originally the \"Cars to Wrecks\" mod).", "Removed all turrets from military vehicles.", "More miserable weather, expect long spells of rain and fog.", "Greatly ups bandit presence (Originally the \"Extra Bandit\" mod).", - "Most LMOE shelters now have a rather high chance to spawn bandits inside. Empty LMOEs now has a lower chance (1 for every 3 occupied) to spawn.", + "Most LMOE shelters now have a rather high chance to spawn bandits inside. Empty LMOEs now has a lower chance (1 for every 3 occupied) to spawn.", "Reduced chance to drop military gear from zombie soldiers.", "Gave all mechas ability to protect their operators from melee and ranged damage.", - "Makes wooden walls hard to set on fire. Fire is a very powerful out in alot of situations, this tries to make it slightly less abusable.", + "Makes wooden walls hard to set on fire. Fire is a very powerful out in alot of situations, this tries to make it slightly less abusable.", "Returned CBM loot in most places it was removed from (electronic stores, toxic dumps, sewage treatment plants etc).", - "Returned some cut vanilla content, including, but not limited to: laser turret (rewrote description to mention it's working not on the solar panels, but rather on compact yet powerful storage batteries; updated drop list to reflect that), chickenbot, tankbot and tripod and made it spawn in some military locations, moose's legendary aggression and flaming eye's ray of destruction. Removed flaming eye's STARE attack. Added almost identical monster - staring eye with STARE attack.", + "Returned some cut vanilla content, including, but not limited to: laser turret (rewrote description to mention it's working not on the solar panels, but rather on compact yet powerful storage batteries; updated drop list to reflect that), chickenbot, tankbot and tripod and made it spawn in some military locations, moose's legendary aggression and flaming eye's ray of destruction. Removed flaming eye's STARE attack. Added almost identical monster - staring eye with STARE attack.", "Adds mutant random NPCs (Originally the \"Mutant NPCs\" mod)." ] }, @@ -28,7 +28,7 @@ "The difficulty options can be used alongside the regular item spawn rate setting if desired with expected results.", "For exact numerical breakdowns of the options see difficulty_options.json along with DIFFICULTY_OPTIONS.md for a barebones breakdown of which categories are affected and why.", "If you wish to alter the difficulty settings past the 3 options you might prefer to use a personal mod to add a 4th option so that you don't need to keep editing files on update and can instead just copy paste the personal mod across, see https://github.com/Procyonae/CDDAMiniMods/tree/main/data/mods/No_Hope_Custom_Difficulty (shortcut in mod folder) for a template of such a mod that just needs the numbers tweaking to your liking.", - "If you wish to change the selected option on an existing save you can do so by binding the debug menu then navigating to debug menu -> Game -> Activate EOC -> EOC_NH_set_difficulty. This notably won't change already generated item spawns anywhere that your reality bubble has touched." + "If you wish to change the selected option on an existing save you can do so by binding the debug menu then navigating to debug menu -> Game -> Activate EOC -> EOC_NH_set_difficulty. This notably won't change already generated item spawns anywhere that your reality bubble has touched." ] } ]