From d3e8f4d9ade2ab4960b3cee38030b1426dd383b6 Mon Sep 17 00:00:00 2001 From: Standing-Storm <120433252+Standing-Storm@users.noreply.github.com> Date: Mon, 16 Sep 2024 20:18:00 -0500 Subject: [PATCH] [MoM] The liquid from the black Nether pools is now collectible and drinkable (#76458) * Initial commit * Add sleepiness chance to the cold * Remove unused resist effect * Add nightmares * Prevent liquid from freezing * Phrasing --- data/mods/MindOverMatter/diseases.json | 22 +++++++++++++ .../effectoncondition/eoc_items.json | 21 ++++++++++++ .../MindOverMatter/effects/effects_items.json | 32 +++++++++++++++++++ .../furniture_and_terrain/terrain_alien.json | 10 +++--- .../MindOverMatter/items/comestibles.json | 20 ++++++++++++ data/mods/MindOverMatter/materials.json | 20 ++++++++++++ .../snippets/snippets_nightmares.json | 15 +++++++++ doc/JSON_INFO.md | 2 +- 8 files changed, 137 insertions(+), 5 deletions(-) create mode 100644 data/mods/MindOverMatter/diseases.json diff --git a/data/mods/MindOverMatter/diseases.json b/data/mods/MindOverMatter/diseases.json new file mode 100644 index 0000000000000..2a030132ee875 --- /dev/null +++ b/data/mods/MindOverMatter/diseases.json @@ -0,0 +1,22 @@ +[ + { + "type": "disease_type", + "id": "black_nether_water_disease", + "min_duration": "30 m", + "max_duration": "6 h", + "min_intensity": 1, + "max_intensity": 1, + "health_threshold": 210, + "symptoms": "effect_black_nether_water_disease" + }, + { + "type": "disease_type", + "id": "black_nether_water_disease_masses", + "min_duration": "2 s", + "max_duration": "2 s", + "min_intensity": 1, + "max_intensity": 1, + "health_threshold": 210, + "symptoms": "effect_black_nether_water_disease" + } +] diff --git a/data/mods/MindOverMatter/effectoncondition/eoc_items.json b/data/mods/MindOverMatter/effectoncondition/eoc_items.json index 6222856e02147..d1a9d7d460083 100644 --- a/data/mods/MindOverMatter/effectoncondition/eoc_items.json +++ b/data/mods/MindOverMatter/effectoncondition/eoc_items.json @@ -229,5 +229,26 @@ "true_eocs": [ { "id": "EOC_PSI_TRANSPORTER_REMOTE_TELEPORT_TRANSPORT_NO_2", "effect": { "u_activate": "transform" } } ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DRINKING_NETHER_WATER_NIGHTMARES_GAIN", + "eoc_type": "EVENT", + "required_event": "character_gains_effect", + "condition": { "or": [ { "compare_string": [ "effect_black_nether_water_disease", { "context_val": "effect" } ] } ] }, + "effect": [ { "u_add_effect": "effect_black_nether_water_nightmares", "duration": "24 hours" } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_DRINKING_NETHER_WATER_NIGHTMARES_OCCUR", + "eoc_type": "EVENT", + "required_event": "character_wakes_up", + "condition": { "and": [ { "u_has_effect": "effect_black_nether_water_nightmares" }, { "x_in_y_chance": { "x": 1, "y": 4 } } ] }, + "effect": [ + { "u_message": "black_nether_water_nightmares", "snippet": true, "type": "bad" }, + { "u_add_morale": "morale_nightmare", "bonus": [ -15, -30 ], "max_bonus": -30 }, + { "u_lose_effect": "effect_black_nether_water_nightmares" } + ], + "false_effect": [ { "u_lose_effect": "effect_black_nether_water_nightmares" } ] } ] diff --git a/data/mods/MindOverMatter/effects/effects_items.json b/data/mods/MindOverMatter/effects/effects_items.json index c462f5a6f5d8e..b6e3ac3e77fca 100644 --- a/data/mods/MindOverMatter/effects/effects_items.json +++ b/data/mods/MindOverMatter/effects/effects_items.json @@ -55,5 +55,37 @@ "name": [ "" ], "desc": [ "" ], "flags": [ "TELEKIN_SHIELD" ] + }, + { + "type": "effect_type", + "id": "effect_black_nether_water_disease", + "name": [ "Unearthly Cold" ], + "desc": [ "You are chilled from the inside out." ], + "apply_message": "A numbing cold spreads out from your stomach to your whole body.", + "rating": "bad", + "base_mods": { + "str_mod": [ -1 ], + "dex_mod": [ -1 ], + "speed_mod": [ -10 ], + "pain_min": [ 1 ], + "pain_chance": [ 300 ], + "vomit_chance": [ 600 ], + "health_min": [ -1 ], + "health_chance": [ 2 ], + "health_tick": [ 60 ], + "sleepiness_min": [ 1 ], + "sleepiness_max": [ 2 ], + "sleepiness_chance": [ 4 ], + "sleepiness_tick": [ 60 ], + "sleepiness_max_val": [ 700 ] + }, + "enchantments": [ { "condition": "ALWAYS", "values": [ { "value": "CLIMATE_CONTROL_HEAT", "add": -40 } ] } ] + }, + { + "type": "effect_type", + "id": "effect_black_nether_water_nightmares", + "//": "Hidden effect to set off an EoC", + "name": [ "" ], + "desc": [ "" ] } ] diff --git a/data/mods/MindOverMatter/furniture_and_terrain/terrain_alien.json b/data/mods/MindOverMatter/furniture_and_terrain/terrain_alien.json index 2fb329ac32117..07855616be19f 100644 --- a/data/mods/MindOverMatter/furniture_and_terrain/terrain_alien.json +++ b/data/mods/MindOverMatter/furniture_and_terrain/terrain_alien.json @@ -20,10 +20,11 @@ "color": "black", "move_cost": 6, "emissions": [ "emit_cold_nether_water" ], - "//liquid_source": { "id": "water_murky" }, + "liquid_source": { "id": "black_nether_water", "min_temp": 15 }, "flags": [ "TRANSPARENT", "LIQUID", "NO_SCENT", "SWIMMABLE" ], "connect_groups": "WATER", - "connects_to": "WATER" + "connects_to": "WATER", + "examine_action": "water_source" }, { "type": "terrain", @@ -35,10 +36,11 @@ "color": "black", "move_cost": 10, "emissions": [ "emit_cold_deep_nether_water" ], - "//liquid_source": { "id": "water_murky" }, + "liquid_source": { "id": "black_nether_water", "min_temp": 15 }, "flags": [ "TRANSPARENT", "LIQUID", "NO_SCENT", "SWIMMABLE", "DEEP_WATER" ], "connect_groups": "WATER", - "connects_to": "WATER" + "connects_to": "WATER", + "examine_action": "water_source" }, { "type": "terrain", diff --git a/data/mods/MindOverMatter/items/comestibles.json b/data/mods/MindOverMatter/items/comestibles.json index 0516c7024f807..bd0c05e1cc964 100644 --- a/data/mods/MindOverMatter/items/comestibles.json +++ b/data/mods/MindOverMatter/items/comestibles.json @@ -203,5 +203,25 @@ "name": { "str": "cockatrice egg" }, "copy-from": "egg_chicken", "rot_spawn": "GROUP_EGG_COCKATRICE" + }, + { + "id": "black_nether_water", + "type": "COMESTIBLE", + "comestible_type": "DRINK", + "name": { "str_sp": "black liquid" }, + "description": "You don't know what this is but now that you've gotten a closer look it's definitely not water. It's completely opaque and freezing cold to the touch, but when you pull your fingertip out of it, your skin is dry as a bone.", + "category": "food", + "material": [ "black_liquid" ], + "weight": "500 g", + "volume": "250 ml", + "charges": 1, + "calories": 0, + "quench": 0, + "symbol": "~", + "color": "black", + "phase": "liquid", + "flags": [ "NUTRIENT_OVERRIDE", "TRADER_AVOID" ], + "contamination": [ { "disease": "black_nether_water_disease", "probability": 100 } ], + "fun": -5 } ] diff --git a/data/mods/MindOverMatter/materials.json b/data/mods/MindOverMatter/materials.json index 2e071b4fa2696..5c861f8be403e 100644 --- a/data/mods/MindOverMatter/materials.json +++ b/data/mods/MindOverMatter/materials.json @@ -34,5 +34,25 @@ "id": "light", "name": "Light", "copy-from": "sunlight" + }, + { + "type": "material", + "id": "black_liquid", + "name": "Black liquid", + "density": 2, + "//": "It desires to remain a liquid", + "specific_heat_liquid": 1, + "specific_heat_solid": 0.108, + "latent_heat": 800, + "freezing_point": -460, + "conductive": false, + "edible": true, + "chip_resist": 10, + "breathability": "POOR", + "dmg_adj": [ "bothered", "annoyed", "irritated", "destroyed" ], + "bash_dmg_verb": "ripples", + "cut_dmg_verb": "passed through", + "soft": true, + "resist": { "bash": 8, "cut": 0, "acid": 8, "heat": 4, "bullet": 4 } } ] diff --git a/data/mods/MindOverMatter/snippets/snippets_nightmares.json b/data/mods/MindOverMatter/snippets/snippets_nightmares.json index 694aabfdb3f5c..449bb4bf1c350 100644 --- a/data/mods/MindOverMatter/snippets/snippets_nightmares.json +++ b/data/mods/MindOverMatter/snippets/snippets_nightmares.json @@ -21,5 +21,20 @@ "In your dream, you are on the top of a mountain in the wilderness, with no lights nearby and countless stars wheeling overhead. You lie down in the grass and let the cool night breeze wash over you as you look for the familiar constellations. You find the Big Dipper with ease and trace a line across to Orion only to do a double-take. One of the stars on Orion's Belt is missing. As you look at Cassiopeia, you see the W is broken by a missing star, and then as you look at Leo one of the stars vanishes. You frantically search the sky as stars wink out, one after the other, until there's only one left. Polaris, the North Star, steadfast guide of sailors for millennia. You stand and take a step, not sure what you're hoping to accomplish, and then the last star goes out and you wake up in a cold sweat.", "You stand in an office room, dingy yellow wallpaper on all the walls and the hum of fluorescent lights in your ears. You open a door leading to another yellow-wallpapered hallway and walk down it for a few minutes before picking a door and opening it. You stand in an office room, dingy yellow wallpaper on all the walls and the hum of fluorescent lights in your ears. You open a door leading to another yellow-wallpapered hallway and walk down it for a few minutes before picking a door and opening it. You stand in an office room, dingy yellow wallpaper on all the walls and the hum of fluorescent lights in your ears. You open a door leading to another yellow-wallpapered hallway and walk down it for a few minutes before picking a door and opening it. You stand in an office room, dingy yellow wallpaper on all the walls and the hum of fluorescent lights in your ears. You open a door leading to another yellow-wallpapered hallway and walk down it for a few minutes before picking a door and opening it. The door opens onto solid blackness and in your surprise, you trip through. As you are falling, you wake up." ] + }, + { + "type": "snippet", + "category": "black_nether_water_nightmares", + "//": "These should all relate to blindness, darkness, or cold.", + "text": [ + "You dream of falling through a starry void, as the points of light around you slowly wink out one by one.", + "You dream of swimming in the middle of the ocean, when clouds slowly begin obscure the moon and you feel something swimming up at you from below.", + "You dream of stumbling in total darkness for hours.", + "You dream of waking up and finding yourself blind as the undead bang on the walls of your shelter.", + "You dream of walking across a frozen ocean. Massive shapes are visible in the ice.", + "You dream you are in total darkness with a frigid wind blowing on you, slowly freezing you solid.", + "You have a normal dream of friends from the old days, but as the dream goes on the color fades until you're dreaming in black and white, and then the light fades until you're in total darkness.", + "You dream of standing on top of a skyscraper and watching a sea of fog cover the city below. One by one, the lights in the windows go out." + ] } ] diff --git a/doc/JSON_INFO.md b/doc/JSON_INFO.md index 8f55045b0e5cd..5c28add068a4d 100644 --- a/doc/JSON_INFO.md +++ b/doc/JSON_INFO.md @@ -5474,7 +5474,7 @@ Example: ```c++ "liquid_source": { "id": "water", // id of a liquid given by ter/furn - "min_temp": 7.8, // liquid picked from here can't go below this temperature, in centigrade; Used only by "water_source" examine action + "min_temp": 7.8, // the lowest possible temperature of liquid taken from here, in centigrade; Used only by "water_source" examine action. Liquid is either the ambient temperature or the `min_temp`, whichever is higher. "count": [ 24, 48 ] // if source is finite, how much there should be of it. Omit if it need to have infinite amount of liquid. Accepts either single number, or array of two numbers. Used only by "finite_water_source" examine action } ```