diff --git a/data/mods/Xedra_Evolved/effects/effects.json b/data/mods/Xedra_Evolved/effects/effects.json index 7e052b7463c1b..6286f60524e7f 100644 --- a/data/mods/Xedra_Evolved/effects/effects.json +++ b/data/mods/Xedra_Evolved/effects/effects.json @@ -2469,6 +2469,42 @@ ], "flags": [ "EFFECT_LIMB_SCORE_MOD" ] }, + { + "type": "effect_type", + "id": "effect_sleep_shield_check", + "name": [ "Promises of undisrupted sleep" ], + "desc": [ "I wish you a good night." ], + "apply_message": "You could swear that this man wished you a good night.", + "remove_message": "", + "rating": "good", + "max_duration": "3 seconds", + "show_intensity": false, + "max_intensity": 1 + }, + { + "type": "effect_type", + "id": "effect_sleep_shield", + "name": [ "Undisrupted sleep" ], + "desc": [ "Sleep well. Nothing but you can disrupt your sleep." ], + "apply_message": "As you fall asleep, you feel safer than you ever were.", + "remove_message": "As you wake up, the feeling of safety quickly fades away.", + "rating": "good", + "max_duration": "3 days", + "show_intensity": false, + "max_intensity": 1, + "flags": [ "INVISIBLE", "NO_SCENT", "PAIN_IMMUNE", "BLIND", "DEAF", "LEVITATION" ], + "enchantments": [ + { + "values": [ + { "value": "SLEEPY", "add": 9999 }, + { "value": "CLIMATE_CONTROL_HEAT", "add": 500 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 500 }, + { "value": "FORCEFIELD", "add": 1 } + ] + } + ], + "removes_effects": [ "grabbed", "bleed" ] + }, { "type": "effect_type", "id": "effect_lilin_aoe_daze", diff --git a/data/mods/Xedra_Evolved/enchantments/armor.json b/data/mods/Xedra_Evolved/enchantments/armor.json index 30e9ac7dfa388..5f3df9dbfba42 100644 --- a/data/mods/Xedra_Evolved/enchantments/armor.json +++ b/data/mods/Xedra_Evolved/enchantments/armor.json @@ -159,5 +159,16 @@ { "value": "CLIMATE_CONTROL_CHILL", "add": 10 }, { "value": "BONUS_DODGE", "add": 1 } ] + }, + { + "id": "ench_sevenoclock_coat", + "type": "enchantment", + "has": "WORN", + "condition": { "or": [ { "u_has_effect": "lying_down" }, { "u_has_effect": "sleep" } ] }, + "values": [ + { "value": "CLIMATE_CONTROL_HEAT", "add": 1000 }, + { "value": "CLIMATE_CONTROL_CHILL", "add": 1000 }, + { "value": "SLEEPY", "add": 9999 } + ] } ] diff --git a/data/mods/Xedra_Evolved/eocs/misc_eoc.json b/data/mods/Xedra_Evolved/eocs/misc_eoc.json index d240b8b41dba3..97baf2ddd96de 100644 --- a/data/mods/Xedra_Evolved/eocs/misc_eoc.json +++ b/data/mods/Xedra_Evolved/eocs/misc_eoc.json @@ -277,5 +277,59 @@ "false_eocs": [ ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SLEEP_NEAR_SEVENOCLOCK", + "eoc_type": "EVENT", + "required_event": "character_attempt_to_fall_asleep", + "condition": { "u_has_effect": "effect_sleep_shield_check" }, + "effect": [ { "run_eocs": [ "EOC_SLEEP_SHIELD_SEVENOCLOCK", "EOC_MINIMUM_TIME_ASLEEP" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_MINIMUM_TIME_ASLEEP", + "condition": { "math": [ "u_val('sleepiness')", "<=", "100" ] }, + "effect": [ { "math": [ "u_val('sleepiness')", "=", "100" ] } ] + }, + { + "type": "effect_on_condition", + "id": "EOC_SLEEP_SHIELD_SEVENOCLOCK", + "condition": { "not": { "math": [ "u_val('pos_z')", "==", "10" ] } }, + "effect": [ + { + "run_eocs": { + "id": "EOC_SLEEP_SHIELD_SEVENOCLOCK_2", + "effect": [ + { "u_add_effect": "sleep", "duration": "8 hours" }, + { "u_add_effect": "effect_hedge_no_nightmares", "duration": "8 hours" }, + { "u_add_effect": "effect_sleep_shield", "duration": "72 hours" }, + { "u_location_variable": { "u_val": "SLEEP_SHIELD_location" }, "min_radius": 0, "max_radius": 0 }, + { + "u_location_variable": { "u_val": "SLEEP_SHIELD_destination" }, + "min_radius": 0, + "max_radius": 0, + "z_adjust": 10, + "z_override": true + }, + { "u_teleport": { "u_val": "SLEEP_SHIELD_destination" }, "force": true } + ] + } + } + ], + "false_effect": [ + { + "u_message": "Distrustful of the shenanigans you used to bring him at such a high altitude, the Man of the Nineteenth Hour refuses to shield you!", + "type": "bad" + } + ] + }, + { + "type": "effect_on_condition", + "id": "EOC_WAKE_UP_FROM_SLEEP_SHIELD", + "eoc_type": "EVENT", + "required_event": "character_wakes_up", + "condition": { "u_has_effect": "effect_sleep_shield" }, + "effect": [ { "u_lose_effect": "effect_sleep_shield" }, { "u_teleport": { "u_val": "SLEEP_SHIELD_location" }, "force": true } ] } ] diff --git a/data/mods/Xedra_Evolved/furniture_and_terrain/furniture.json b/data/mods/Xedra_Evolved/furniture_and_terrain/furniture.json index 0a32028ce368b..a3ed026ba7c18 100644 --- a/data/mods/Xedra_Evolved/furniture_and_terrain/furniture.json +++ b/data/mods/Xedra_Evolved/furniture_and_terrain/furniture.json @@ -274,5 +274,67 @@ "coverage": 85, "flags": [ "MINEABLE", "NOITEM", "TRANSPARENT", "BLOCKSDOOR", "PERMEABLE" ], "bash": { "str_min": 20, "str_max": 50, "sound_fail": "smash!", "items": [ { "item": "rock", "count": [ 20, 100 ] } ] } + }, + { + "type": "furniture", + "id": "f_sevenoclock_track", + "name": "Bloody footsteps", + "description": "A trail of old footsteps, still visible despite the blood and rain. Examine it to track its source.", + "symbol": "l", + "required_str": -1, + "move_cost_mod": 0, + "color": "brown", + "coverage": 0, + "flags": [ "NOITEM", "TRANSPARENT", "PERMEABLE" ], + "examine_action": { + "type": "effect_on_condition", + "effect_on_conditions": [ + { + "id": "EOC_SEVENOCLOCK_ALREADY_TRACKED", + "condition": { "math": [ "u_tracked_sevenoclock", "==", "1" ] }, + "effect": [ { "u_message": "You already know where these footprints lead." } ] + }, + { + "id": "EOC_SEVENOCLOCK_TRACK", + "condition": { "math": [ "u_tracked_sevenoclock", "==", "0" ] }, + "effect": [ + { "u_message": "You carefully examine the footprints, determining where they lead." }, + { "assign_mission": "MISSION_SEVENOCLOCK" }, + { "math": [ "u_tracked_sevenoclock", "=", "1" ] } + ] + } + ] + } + }, + { + "type": "furniture", + "id": "f_deathworm_track", + "name": "Suspicious hole", + "description": "A hole in the ground, bearing acid burns. Examine it to track its source.", + "symbol": "o", + "required_str": -1, + "move_cost_mod": 0, + "color": "brown", + "coverage": 0, + "flags": [ "NOITEM", "TRANSPARENT", "PERMEABLE" ], + "examine_action": { + "type": "effect_on_condition", + "effect_on_conditions": [ + { + "id": "EOC_DEATHWORM_ALREADY_TRACKED", + "condition": { "math": [ "u_tracked_deathworm", "==", "1" ] }, + "effect": [ { "u_message": "You already know where this hole leads." } ] + }, + { + "id": "EOC_DEATHWORM_TRACK", + "condition": { "math": [ "u_tracked_deathworm", "==", "0" ] }, + "effect": [ + { "u_message": "You carefully examine the hole, determining where it leads." }, + { "assign_mission": "MISSION_DEATHWORM" }, + { "math": [ "u_tracked_deathworm", "=", "1" ] } + ] + } + ] + } } ] diff --git a/data/mods/Xedra_Evolved/itemgroups/monster_drops.json b/data/mods/Xedra_Evolved/itemgroups/monster_drops.json index a2eca1c361bb6..d36affbc7c6d4 100644 --- a/data/mods/Xedra_Evolved/itemgroups/monster_drops.json +++ b/data/mods/Xedra_Evolved/itemgroups/monster_drops.json @@ -516,5 +516,21 @@ { "drop": "triffid_heart_chunk", "type": "flesh", "mass_ratio": 0.2 }, { "drop": "veggy", "type": "offal", "mass_ratio": 0.3 } ] + }, + { + "id": "sevenoclock_death_drops", + "type": "item_group", + "subtype": "collection", + "entries": [ + { "item": "hat_fur" }, + { "item": "sevenoclock_coat" }, + { "item": "swag_bag" }, + { "item": "cane" }, + { "item": "bone_human", "count": [ 3, 15 ] }, + { "item": "human_meat_scrap", "count": [ 10, 40 ] }, + { "item": "pants", "variant": "pants_black" }, + { "item": "dress_shoes" }, + { "item": "union_suit" } + ] } ] diff --git a/data/mods/Xedra_Evolved/items/armor/armor.json b/data/mods/Xedra_Evolved/items/armor/armor.json index 6272f7b503ded..66a11065057c2 100644 --- a/data/mods/Xedra_Evolved/items/armor/armor.json +++ b/data/mods/Xedra_Evolved/items/armor/armor.json @@ -1321,5 +1321,58 @@ ], "melee_damage": { "bash": 4 }, "relic_data": { "passive_effects": [ { "id": "ench_verdant_boots" } ] } + }, + { + "id": "sevenoclock_coat", + "type": "ARMOR", + "name": { "str": "coat of the timely sleeper" }, + "description": "A old-fashioned padded coat with deep pockets. As you touch it, you feel that this coat could allow you to fall asleep whenever and wherever you want.", + "weight": "1340 g", + "volume": "6750 ml", + "price": "14000 USD", + "price_postapoc": "70 USD 50 cent", + "material": [ "cotton" ], + "symbol": "[", + "looks_like": "coat_rain", + "color": "light_red", + "armor": [ + { "covers": [ "torso" ], "coverage": 100, "encumbrance": [ 8, 17 ] }, + { "covers": [ "arm_l", "arm_r" ], "coverage": 100, "encumbrance": [ 8, 11 ] } + ], + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1250 ml", + "max_contains_weight": "3 kg", + "max_item_length": "21 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "1250 ml", + "max_contains_weight": "3 kg", + "max_item_length": "21 cm", + "moves": 80 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "900 ml", + "max_contains_weight": "1 kg", + "max_item_length": "13 cm", + "moves": 120 + }, + { + "pocket_type": "CONTAINER", + "max_contains_volume": "900 ml", + "max_contains_weight": "1 kg", + "max_item_length": "13 cm", + "moves": 120 + } + ], + "warmth": 70, + "material_thickness": 2, + "environmental_protection": 1, + "flags": [ "VARSIZE", "POCKETS", "COLLAR", "ALARMCLOCK", "OUTER" ], + "relic_data": { "passive_effects": [ { "id": "ench_sevenoclock_coat" } ] } } ] diff --git a/data/mods/Xedra_Evolved/items/book_lore.json b/data/mods/Xedra_Evolved/items/book_lore.json index c0420ef657485..c5ff67385d9fe 100644 --- a/data/mods/Xedra_Evolved/items/book_lore.json +++ b/data/mods/Xedra_Evolved/items/book_lore.json @@ -161,5 +161,106 @@ { "u_roll_remainder": [ "bait_abyssal_hunger" ], "type": "recipe" }, { "u_add_var": "you_know_vampire_mentor_recipes", "value": "yes" } ] + }, + { + "id": "deathworm_map", + "//": "The maps and notes are intended to share the same name, so the player won't know what they'll hunt before the game starts.", + "type": "GENERIC", + "category": "books", + "name": "map to the cryptid", + "description": "The map on which you wrote the cryptid's location.", + "symbol": ",", + "color": "white", + "weight": "30 g", + "volume": "10 ml", + "use_action": [ + { + "type": "effect_on_conditions", + "menu_text": "Read", + "description": "Read the map.", + "effect_on_conditions": [ + { + "id": "EOC_DEATHWORM_MAP_ALREADY_TRACKED", + "condition": { "math": [ "u_tracked_deathworm", "==", "1" ] }, + "effect": [ { "u_message": "You already know where this map leads." } ] + }, + { + "id": "EOC_DEATHWORM_MAP_TRACK", + "condition": { "math": [ "u_tracked_deathworm", "==", "0" ] }, + "effect": [ + { "u_message": "You reference your map with your location, determining the path to take to find the cryptid." }, + { "assign_mission": "MISSION_DEATHWORM" }, + { "math": [ "u_tracked_deathworm", "=", "1" ] } + ] + } + ] + } + ] + }, + { + "type": "GENERIC", + "id": "deathworm_note", + "//": "The notes are intended to be basic but telling some info, as they are the closest to a consensus reached on creatures defined by being nigh-impossible to find.", + "category": "books", + "symbol": ",", + "color": "white", + "name": { "str": "notes about the cryptid" }, + "description": "The notes you have taken about the cryptid you're hunting.\nAlso known as the mongolian death worm, the Olgoi-khorkhoi is a massive acid-spewing burrowing worm. Finding acid-resistant gear will prove useful to survive the encounter. According to most of the credible stories you've read, the lethal poison covering its skin is nothing but exaggerations.", + "price": "0 cent", + "price_postapoc": "0 cent", + "material": [ "paper" ], + "flags": [ "TRADER_AVOID" ], + "weight": "30 g", + "volume": "10 ml" + }, + { + "id": "sevenoclock_map", + "//": "The maps and notes are intended to share the same name, so the player won't know what they'll hunt before the game starts.", + "type": "GENERIC", + "category": "books", + "name": "map to the cryptid", + "description": "The map on which you wrote the cryptid's location.", + "symbol": ",", + "color": "white", + "weight": "30 g", + "volume": "10 ml", + "use_action": [ + { + "type": "effect_on_conditions", + "menu_text": "Read", + "description": "Read the map.", + "effect_on_conditions": [ + { + "id": "EOC_SEVENOCLOCK_MAP_ALREADY_TRACKED", + "condition": { "math": [ "u_tracked_sevenoclock", "==", "1" ] }, + "effect": [ { "u_message": "You already know where this map leads." } ] + }, + { + "id": "EOC_SEVENOCLOCK_MAP_TRACK", + "condition": { "math": [ "u_tracked_sevenoclock", "==", "0" ] }, + "effect": [ + { "u_message": "You reference your map with your location, determining the path to take to find the cryptid." }, + { "assign_mission": "MISSION_SEVENOCLOCK" }, + { "math": [ "u_tracked_sevenoclock", "=", "1" ] } + ] + } + ] + } + ] + }, + { + "type": "GENERIC", + "id": "sevenoclock_note", + "category": "books", + "symbol": ",", + "color": "white", + "name": { "str": "notes about the cryptid" }, + "description": "The notes you have taken about the cryptid you're hunting.\nThe man of the Nineteenth Hour is peaceful for most of the day but becomes incredibly violent against those who are still awake when he enters his active phase. Some stories tell that his presence shields those who are sleeping against everything that could disturb their sleep.", + "price": "0 cent", + "price_postapoc": "0 cent", + "material": [ "paper" ], + "flags": [ "TRADER_AVOID" ], + "weight": "30 g", + "volume": "10 ml" } ] diff --git a/data/mods/Xedra_Evolved/mapgen/cryptids.json b/data/mods/Xedra_Evolved/mapgen/cryptids.json new file mode 100644 index 0000000000000..3bdfb05b370e2 --- /dev/null +++ b/data/mods/Xedra_Evolved/mapgen/cryptids.json @@ -0,0 +1,256 @@ +[ + { + "id": "mx_sevenoclock_track", + "type": "map_extra", + "name": { "str": "Half-eaten corpses" }, + "description": "Piles of gore surround a trail of bloody footsteps.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_sevenoclock_track" }, + "sym": "l", + "min_max_zlevel": [ 0, 0 ], + "color": "magenta_yellow", + "autonote": true + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_sevenoclock_track", + "object": { + "rows": [ + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "-----------1---------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + " ", + " " + ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "nested": { + "-": { "chunks": [ [ "corpse_blood_gibs_college_3x3", 1 ], [ "null", 250 ] ] }, + "1": { "chunks": [ "sevenoclock_track" ] } + } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "sevenoclock_track", + "object": { + "mapgensize": [ 1, 1 ], + "rotation": [ 0, 3 ], + "rows": [ "x" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "furniture": { "x": "f_sevenoclock_track" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "cabin_sevenoclock" ], + "object": { + "rotation": [ 0, 3 ], + "fill_ter": "t_floor", + "rows": [ + "...........~~...........", + "...........~~...........", + "...%.......~~...........", + "**######w##++#########**", + "**#R d#sT# #A DBBD #**", + "**#R c# # #A BB w**", + "**wR # = = w**", + "**wR # # #########**", + "**#R #### = DBBD #**", + "**#R L##A #A BB w**", + "**####=#### #A w**", + "**#ttb uu# #########**", + "**wttb u# #a OOO w**", + "**wbb = = rrrw**", + "**# u# # rSr#**", + "**#1F5V234# #a rrr#**", + "**###ww####++####ww###**", + "..o bbbb o..", + "..- -..", + "..- -..", + "..o-------o o-------o..", + "...........~~...........", + "...........~~...........", + "...........~~..........." + ], + "palettes": [ { "distribution": [ [ "cabin_palette", 1 ], [ "cabin_palette_abandoned", 1 ] ] } ], + "terrain": { "-": "t_railing" }, + "place_rubble": [ + { "x": 20, "y": 17, "items": true }, + { "x": 19, "y": 18, "items": true }, + { "x": 20, "y": 18, "items": true }, + { "x": 18, "y": 19, "items": true }, + { "x": 19, "y": 19, "items": true }, + { "x": 20, "y": 19, "items": true }, + { "x": 19, "y": 3, "items": true }, + { "x": 20, "y": 3, "items": true }, + { "x": 21, "y": 3, "items": true }, + { "x": 20, "y": 4, "items": true }, + { "x": 21, "y": 4, "items": true }, + { "x": 21, "y": 5, "items": true } + ], + "place_monster": [ { "monster": "mon_sevenoclock_passive", "x": 11, "y": 12 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "cabin_roof_sevenoclock", + "object": { + "rotation": [ 0, 3 ], + "fill_ter": "t_tar_flat_roof", + "rows": [ + " ", + " ", + " ", + " -5------------------ ", + " -..................- ", + " -..................- ", + " -..................- ", + " -..................- ", + " -..................- ", + " -..................- ", + " -..................- ", + " -..................- ", + " -..................- ", + " -..................- ", + " -................~.- ", + " -..................- ", + " -------------------- ", + " .................... ", + " .................... ", + " .................... ", + " .................... ", + " ", + " ", + " " + ], + "palettes": [ "roof_palette" ], + "terrain": { ".": "t_tar_flat_roof" } + } + }, + { + "id": "mx_deathworm_track", + "type": "map_extra", + "name": { "str": "Bloodsoaked acid streaks" }, + "description": "A hole in the ground surrounds piles of acid-burned gore.", + "generator": { "generator_method": "update_mapgen", "generator_id": "mx_deathworm_track" }, + "sym": "l", + "min_max_zlevel": [ 0, 0 ], + "color": "magenta_yellow", + "autonote": true + }, + { + "type": "mapgen", + "method": "json", + "update_mapgen_id": "mx_deathworm_track", + "object": { + "rows": [ + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "-----------1---------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + " ", + " " + ], + "flags": [ "ALLOW_TERRAIN_UNDER_OTHER_DATA" ], + "nested": { "-": { "chunks": [ [ "acid_gibs_3x3", 1 ], [ "null", 50 ] ] }, "1": { "chunks": [ "deathworm_track" ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "acid_gibs_3x3", + "object": { + "mapgensize": [ 3, 3 ], + "place_fields": [ { "field": "fd_acid", "x": [ 0, 2 ], "y": [ 0, 2 ] }, { "field": "fd_gibs_flesh", "x": [ 0, 2 ], "y": [ 0, 2 ] } ] + } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "deathworm_track", + "object": { + "mapgensize": [ 1, 1 ], + "rotation": [ 0, 3 ], + "rows": [ "x" ], + "flags": [ "ERASE_ALL_BEFORE_PLACING_TERRAIN" ], + "furniture": { "x": "f_deathworm_track" } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "field_deathworm", + "object": { + "fill_ter": "t_dirt", + "rotation": [ 0, 3 ], + "rows": [ + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + "---------------------- ", + " ", + " " + ], + "place_monster": [ { "monster": "mon_deathworm", "x": 11, "y": 12 } ], + "nested": { "-": { "chunks": [ [ "acid_gibs_3x3", 1 ], [ "null", 5 ] ] } } + } + } +] diff --git a/data/mods/Xedra_Evolved/mapgen/overmap_special.json b/data/mods/Xedra_Evolved/mapgen/overmap_special.json index f1941ed21857d..89804ff05e465 100644 --- a/data/mods/Xedra_Evolved/mapgen/overmap_special.json +++ b/data/mods/Xedra_Evolved/mapgen/overmap_special.json @@ -284,6 +284,29 @@ "flags": [ "OVERMAP_UNIQUE", "WILDERNESS" ], "spawns": { "group": "GROUP_GENIUS_HOMULLUS", "population": [ 10, 30 ], "radius": [ 1, 3 ] } }, + { + "type": "overmap_special", + "id": "old cabin", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "cabin_sevenoclock_north" }, + { "point": [ 0, 0, 1 ], "overmap": "cabin_roof_sevenoclock_north" } + ], + "locations": [ "forest" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 5, 100 ], + "flags": [ "GLOBALLY_UNIQUE" ] + }, + { + "type": "overmap_special", + "id": "acid-scarred field", + "overmaps": [ { "point": [ 0, 0, 0 ], "overmap": "field_deathworm_north" } ], + "locations": [ "land" ], + "city_distance": [ 20, -1 ], + "city_sizes": [ 0, 20 ], + "occurrences": [ 5, 100 ], + "flags": [ "GLOBALLY_UNIQUE" ] + }, { "type": "overmap_special", "id": "Vampire Hunting Lodge", diff --git a/data/mods/Xedra_Evolved/mapgen/overmap_terrain.json b/data/mods/Xedra_Evolved/mapgen/overmap_terrain.json index c97730213eae8..91b54601bdac9 100644 --- a/data/mods/Xedra_Evolved/mapgen/overmap_terrain.json +++ b/data/mods/Xedra_Evolved/mapgen/overmap_terrain.json @@ -309,6 +309,28 @@ "color": "brown", "see_cost": "full_high" }, + { + "type": "overmap_terrain", + "id": [ "cabin_sevenoclock", "cabin_roof_sevenoclock" ], + "name": "old cabin", + "sym": "C", + "color": "green", + "vision_levels": "open_land", + "looks_like": "cabin", + "see_cost": "high", + "mondensity": 2 + }, + { + "type": "overmap_terrain", + "id": [ "field_deathworm" ], + "name": "acid-scarred field", + "sym": ".", + "color": "light_green", + "vision_levels": "open_land", + "looks_like": "field", + "see_cost": "high", + "mondensity": 2 + }, { "type": "overmap_terrain", "id": "undine_warp_pool_surface", diff --git a/data/mods/Xedra_Evolved/missions.json b/data/mods/Xedra_Evolved/missions.json index b723339e99b23..1ed12cb29a985 100644 --- a/data/mods/Xedra_Evolved/missions.json +++ b/data/mods/Xedra_Evolved/missions.json @@ -59,5 +59,55 @@ "success_lie": "", "failure": "" } + }, + { + "id": "MISSION_SEVENOCLOCK", + "type": "mission_definition", + "name": { "str": "Find the source of the bloody footsteps." }, + "goal": "MGOAL_GO_TO_TYPE", + "destination": "cabin_sevenoclock", + "difficulty": 1, + "value": 0, + "start": { + "assign_mission_target": { "om_terrain": "cabin_sevenoclock_north", "om_special": "cabin_sevenoclock", "search_range": 1800 } + }, + "origins": [ "ORIGIN_SECONDARY" ], + "has_generic_rewards": false, + "dialogue": { + "describe": "", + "offer": "", + "accepted": "", + "rejected": "", + "advice": "", + "inquire": "", + "success": "", + "success_lie": "", + "failure": "" + } + }, + { + "id": "MISSION_DEATHWORM", + "type": "mission_definition", + "name": { "str": "Find the source of the acid-burned hole." }, + "goal": "MGOAL_GO_TO_TYPE", + "destination": "field_deathworm", + "difficulty": 1, + "value": 0, + "start": { + "assign_mission_target": { "om_terrain": "field_deathworm_north", "om_special": "field_deathworm", "search_range": 1800 } + }, + "origins": [ "ORIGIN_SECONDARY" ], + "has_generic_rewards": false, + "dialogue": { + "describe": "", + "offer": "", + "accepted": "", + "rejected": "", + "advice": "", + "inquire": "", + "success": "", + "success_lie": "", + "failure": "" + } } ] diff --git a/data/mods/Xedra_Evolved/monsters/cryptids.json b/data/mods/Xedra_Evolved/monsters/cryptids.json new file mode 100644 index 0000000000000..2275044c24942 --- /dev/null +++ b/data/mods/Xedra_Evolved/monsters/cryptids.json @@ -0,0 +1,174 @@ +[ + { + "id": "mon_sevenoclock_passive", + "type": "MONSTER", + "name": { "str_sp": "Man of the Nineteenth Hour" }, + "description": "A tall and lanky old man wearing an old-fashioned winter coat carrying a cane in his hand and a bag over his shoulder. He absently look at the horizon, as if waiting for something.", + "default_faction": "factionless", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 150, + "speed": 40, + "material": [ "flesh" ], + "symbol": "@", + "color": "brown", + "aggression": 0, + "morale": 100, + "melee_skill": 6, + "melee_dice": 5, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 6 } ], + "dodge": 6, + "weakpoints": [ + { "name": "the head", "armor_mult": { "physical": 0.5 }, "coverage": 3 }, + { "name": "the eye", "armor_mult": { "physical": 0 }, "coverage": 1 } + ], + "families": [ "prof_wp_demihuman" ], + "bleed_rate": 80, + "vision_day": 45, + "vision_night": 55, + "harvest": "demihuman", + "path_settings": { "max_dist": 5 }, + "special_attacks": [ + { + "type": "spell", + "id": "mon_sevenoclock_activate", + "spell_data": { "id": "mon_sevenoclock_activate", "min_level": 1, "hit_self": true }, + "allow_no_target": true, + "condition": { "math": [ "time_since('noon', 'unit':'hours') >= 7" ] }, + "monster_message": "%1$s is blotted by shadows for an instant then reemerges, visibly angrier than before.", + "cooldown": 1 + }, + { + "type": "spell", + "id": "spell_shield_sleepers", + "spell_data": { "id": "spell_shield_sleepers", "min_level": 1, "hit_self": true }, + "allow_no_target": true, + "cooldown": 1 + } + ], + "death_drops": "sevenoclock_death_drops", + "flags": [ "SEES", "HEARS", "SMELLS", "HAS_MIND", "GRABS", "WARM", "BASHES", "PUSH_MON" ], + "armor": { "bash": 5, "cut": 5, "bullet": 4, "electric": 6 } + }, + { + "id": "mon_sevenoclock_active", + "type": "MONSTER", + "name": { "str_sp": "Man of the Nineteenth Hour" }, + "description": "A tall and lanky old man wearing an old-fashioned winter coat carrying a cane in his hand and a bag over his shoulder. As he notices that you are awake he prepares his bag and brandishes his cane, his visage warped by a twisted combination of anger, hunger and disapproval.", + "default_faction": "factionless", + "bodytype": "human", + "species": [ "HUMAN" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 150, + "speed": 140, + "material": [ "flesh" ], + "symbol": "@", + "color": "brown", + "aggression": 100, + "morale": 100, + "grab_strength": 50, + "melee_skill": 6, + "melee_dice": 5, + "melee_dice_sides": 5, + "melee_damage": [ { "damage_type": "bash", "amount": 6 } ], + "dodge": 6, + "weakpoints": [ + { "name": "the head", "armor_mult": { "physical": 0.5 }, "coverage": 3 }, + { "name": "the eye", "armor_mult": { "physical": 0 }, "coverage": 1 } + ], + "families": [ "prof_wp_demihuman" ], + "bleed_rate": 80, + "vision_day": 45, + "vision_night": 55, + "harvest": "demihuman", + "path_settings": { "max_dist": 5 }, + "special_attacks": [ + { + "type": "spell", + "id": "mon_sevenoclock_pacify", + "spell_data": { "id": "mon_sevenoclock_pacify", "min_level": 1, "hit_self": true }, + "allow_no_target": true, + "condition": { "math": [ "time_until('noon', 'unit':'hours') <= 7" ] }, + "monster_message": "%1$s is blotted by shadows for an instant then reemerges, visibly calmer than before.", + "cooldown": 1 + }, + { + "type": "spell", + "id": "spell_shield_sleepers", + "spell_data": { "id": "spell_shield_sleepers", "min_level": 1, "hit_self": true }, + "allow_no_target": true, + "cooldown": 1 + }, + { "id": "grab", "cooldown": 7 }, + [ "PARROT_AT_DANGER", 30 ] + ], + "death_drops": "sevenoclock_death_drops", + "flags": [ "SEES", "HEARS", "SMELLS", "HAS_MIND", "GRABS", "WARM", "BASHES", "PUSH_MON" ], + "armor": { "bash": 5, "cut": 5, "bullet": 4, "electric": 6 } + }, + { + "id": "mon_deathworm", + "type": "MONSTER", + "name": { "str_sp": "Olgoi-khorkhoi" }, + "description": "Also known as the mongolian death worm, the olgoi-khorkhoi is a massive acid-spewing blood-red worm. As you see it, you start hoping for the stories you've heard about the deadly poison coating its skin to be nothing but exaggerations.", + "//": "Due to DIGS making that this monster cannot be fought outside of melee range, it won't have its skin poison to prevent gotcha moments. To compensate, there will be so much acid.", + "default_faction": "factionless", + "bodytype": "snake", + "species": [ "MUTANT" ], + "volume": "62500 ml", + "weight": "81500 g", + "hp": 130, + "speed": 80, + "material": [ "flesh" ], + "symbol": "S", + "color": "brown_red", + "aggression": 100, + "morale": 100, + "melee_skill": 2, + "melee_dice": 2, + "melee_dice_sides": 2, + "melee_damage": [ { "damage_type": "acid", "amount": 7 } ], + "dodge": 5, + "families": [ "prof_gross_anatomy", "prof_intro_biology", "prof_physiology" ], + "bleed_rate": 40, + "vision_day": 30, + "vision_night": 30, + "harvest": "mutant_meatslug", + "path_settings": { "max_dist": 5 }, + "special_attacks": [ + { + "type": "gun", + "cooldown": 3, + "move_cost": 30, + "gun_type": "acid_spit", + "fake_skills": [ [ "gun", 8 ], [ "rifle", 8 ] ], + "fake_dex": 8, + "fake_per": 8, + "require_targeting_player": false, + "target_moving_vehicles": true, + "description": "%1$s spits a glob of acid!", + "ranges": [ [ 1, 10, "DEFAULT" ] ] + }, + [ "ACID_BARF", 3 ] + ], + "special_when_hit": [ "ACIDSPLASH", 100 ], + "flags": [ + "SEES", + "HEARS", + "SMELLS", + "BASHES", + "DIGS", + "POISON", + "NO_BREATHE", + "PUSH_MON", + "ACIDPROOF", + "ACID_BLOOD", + "RANGED_ATTACKER" + ], + "armor": { "bash": 20, "cut": 5, "bullet": 10 } + } +] diff --git a/data/mods/Xedra_Evolved/monsters/monster_spells.json b/data/mods/Xedra_Evolved/monsters/monster_spells.json index 32aee2ace37d5..5e80ce4986cee 100644 --- a/data/mods/Xedra_Evolved/monsters/monster_spells.json +++ b/data/mods/Xedra_Evolved/monsters/monster_spells.json @@ -500,5 +500,63 @@ "min_field_intensity": 2, "max_field_intensity": 3, "damage_type": "cold" + }, + { + "id": "mon_sevenoclock_pacify", + "type": "SPELL", + "name": "Pacify the Nineteenth Hour", + "description": "Makes the Man of the Nineteenth Hour calm down.", + "valid_targets": [ "hostile" ], + "flags": [ "NO_LEGS", "NO_PROJECTILE" ], + "effect": "targeted_polymorph", + "effect_str": "mon_sevenoclock_passive", + "shape": "blast", + "spell_class": "NONE", + "base_casting_time": 10, + "difficulty": 0, + "max_level": 1, + "min_damage": 9999, + "max_damage": 9999, + "damage_type": "pure", + "min_range": 30, + "max_range": 30 + }, + { + "id": "mon_sevenoclock_activate", + "type": "SPELL", + "name": "Anger the Nineteenth Hour", + "description": "Makes the Man of the Nineteenth Hour ready to attack all those who do not sleep.", + "valid_targets": [ "hostile" ], + "flags": [ "NO_LEGS", "NO_PROJECTILE" ], + "effect": "targeted_polymorph", + "effect_str": "mon_sevenoclock_active", + "shape": "blast", + "spell_class": "NONE", + "base_casting_time": 10, + "difficulty": 0, + "max_level": 1, + "min_damage": 9999, + "max_damage": 9999, + "damage_type": "pure", + "min_range": 30, + "max_range": 30 + }, + { + "id": "spell_shield_sleepers", + "type": "SPELL", + "name": { "str": "Shield the sleepers" }, + "description": "Ensures an eventless sleep to those who sleep nearby.", + "message": "", + "valid_targets": [ "ally", "hostile" ], + "effect": "attack", + "effect_str": "effect_sleep_shield_check", + "shape": "blast", + "min_duration": 3000, + "max_duration": 3000, + "min_aoe": 15, + "max_aoe": 15, + "min_range": 1, + "max_range": 1, + "flags": [ "SILENT", "NO_EXPLOSION_SFX" ] } ] diff --git a/data/mods/Xedra_Evolved/player/professions.json b/data/mods/Xedra_Evolved/player/professions.json index e5a34dce90c2b..958043bc09d88 100644 --- a/data/mods/Xedra_Evolved/player/professions.json +++ b/data/mods/Xedra_Evolved/player/professions.json @@ -803,5 +803,72 @@ "male": { "entries": [ { "item": "boxer_shorts" } ] }, "female": { "entries": [ { "item": "bra" }, { "item": "panties" } ] } } + }, + { + "type": "profession", + "id": "cryptid_hunter", + "name": "Cryptid Hunter", + "description": "You spent months trying to find one of these elusive creatures, searching all over the country in the hopes of proving beyond doubt that they exist. You recently found enough trustworthy information to write down a map that will certainly lead you to a cryptid. Now that the supernatural is undeniable you feel that you should find a cryptid anyway, if only to say that you didn't do all this work for nothing.", + "//": "This grants a map to a random cryptid and a note with basic info on said cryptid. Otherwise a version of the park ranger with less gear and without the weapons as they explored far and wide in search of cryptids without having combat training.", + "//2": "No camera because their plan is to locate and bring back a cryptid, not take photographies that will be accused of being edited.", + "npc_background": "BG_survival_story_WORKER_PUBLIC", + "points": 3, + "proficiencies": [ "prof_driver", "prof_wound_care" ], + "skills": [ + { "level": 5, "name": "survival" }, + { "level": 5, "name": "firstaid" }, + { "level": 5, "name": "driving" }, + { "level": 3, "name": "fabrication" }, + { "level": 2, "name": "swimming" } + ], + "items": { + "both": { + "entries": [ + { "item": "boots_hiking" }, + { "item": "diving_watch" }, + { "item": "e_tool" }, + { "item": "knife_folding" }, + { "item": "multitool" }, + { "item": "pants" }, + { "item": "rollmat" }, + { "item": "socks" }, + { "item": "travelpack" }, + { "item": "vest" }, + { "item": "water_clean" }, + { "item": "whistle_multitool" }, + { "group": "charged_smart_phone" }, + { "group": "starter_wallet_full" }, + { "group": "charged_flashlight" }, + { "group": "charged_two_way_radio" }, + { "group": "random_cryptid_map" }, + { "group": "full_1st_aid" }, + { "item": "black_pen", "charges": 100 }, + { "item": "lighter", "charges": 100 }, + { "item": "permanent_marker", "charges": 500 }, + { "item": "tshirt" } + ] + }, + "male": { "entries": [ { "item": "boxer_shorts" } ] }, + "female": { "entries": [ { "item": "bra" }, { "item": "boy_shorts" } ] } + } + }, + { + "type": "item_group", + "id": "random_cryptid_map", + "//": "This item group gives a random cryptid map and the associated notes when starting as a cryptid hunter. The probabilities are intended to be equal with each other.", + "subtype": "distribution", + "items": [ { "group": "deathworm_map", "prob": 50 }, { "group": "sevenoclock_map", "prob": 50 } ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "deathworm_map", + "entries": [ { "item": "deathworm_map" }, { "item": "deathworm_note" } ] + }, + { + "type": "item_group", + "subtype": "collection", + "id": "sevenoclock_map", + "entries": [ { "item": "sevenoclock_map" }, { "item": "sevenoclock_note" } ] } ] diff --git a/data/mods/Xedra_Evolved/regional_overlay.json b/data/mods/Xedra_Evolved/regional_overlay.json index ee0b4b029cd34..37d5814003eb6 100644 --- a/data/mods/Xedra_Evolved/regional_overlay.json +++ b/data/mods/Xedra_Evolved/regional_overlay.json @@ -32,6 +32,8 @@ "field": { "chance": 75, "extras": { + "mx_deathworm_track": 1, + "mx_sevenoclock_track": 1, "mx_dreamwound_shadow": 5, "mx_trees_map_salamander": 75, "mx_trees_map_sylph": 75, diff --git a/data/mods/Xedra_Evolved/snippets/cryptid_speech.json b/data/mods/Xedra_Evolved/snippets/cryptid_speech.json new file mode 100644 index 0000000000000..92117b0e65e33 --- /dev/null +++ b/data/mods/Xedra_Evolved/snippets/cryptid_speech.json @@ -0,0 +1,158 @@ +[ + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"You should be sleeping by now!\"", + "volume": 25 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"You should be sleeping by now.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I'm going to eat you!\"", + "volume": 25 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"SLEEP!\"", + "volume": 32 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"Jump in my bag, it will be less painful that way.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"Another one awake past its bedtime.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"Those who do not sleep won't ever wake up.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I'm going to beat you until you sleep, one way or another.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"This time is for the sleeping, not for the wakeful.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"There is no excuse. You sleep, or you die.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I am here to guard the sleepers.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I am here to kill the awake.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I won't let you wake them up.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"They say being dead is akin to being asleep. Sleep now, or you'll know what is it to be dead.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"So hungry.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"Need to eat.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"Their flesh and dreams are rotten.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"You will be fine food.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"The wakeful threaten the sleepers. I cannot let that be.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"It is currently the sleepers' time.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"All who are awake during the sleepers' time are mine.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I wish for all to sleep well in this time.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"You are still able to sleep. Why do you squander this gift?\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I will ensure that all who sleep won't be disturbed.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"I will ensure that all who cannot sleep will die.\"", + "volume": 20 + }, + { + "type": "speech", + "speaker": [ "mon_sevenoclock_active" ], + "sound": "\"For the last time: SLEEP!\"", + "volume": 32 + } +]