From fc831ae49bb72d4dd52edf6d4bb1d0b2fd9da611 Mon Sep 17 00:00:00 2001 From: Maleclypse <54345792+Maleclypse@users.noreply.github.com> Date: Fri, 6 Mar 2020 05:09:21 -0500 Subject: [PATCH] [Aftershock] Millyficent whately and the migo (#36908) --- data/mods/Aftershock/effects.json | 58 +++ data/mods/Aftershock/items/mutagen.json | 22 ++ .../maps/mapgen/millyficent_lab.json | 335 ++++++++++++++++++ .../Aftershock/maps/overmap_specials.json | 16 + .../mods/Aftershock/maps/overmap_terrain.json | 33 ++ .../mods/Aftershock/mobs/monster_faction.json | 7 + data/mods/Aftershock/mutations/dreams.json | 35 ++ data/mods/Aftershock/mutations/mutations.json | 264 ++++++++++++++ data/mods/Aftershock/npcs/classes.json | 37 ++ data/mods/Aftershock/npcs/factions.json | 70 ++++ .../Aftershock/npcs/whately_dialogue.json | 193 ++++++++++ 11 files changed, 1070 insertions(+) create mode 100644 data/mods/Aftershock/effects.json create mode 100644 data/mods/Aftershock/items/mutagen.json create mode 100644 data/mods/Aftershock/maps/mapgen/millyficent_lab.json create mode 100644 data/mods/Aftershock/mutations/dreams.json create mode 100644 data/mods/Aftershock/npcs/whately_dialogue.json diff --git a/data/mods/Aftershock/effects.json b/data/mods/Aftershock/effects.json new file mode 100644 index 0000000000000..f0a14dc006566 --- /dev/null +++ b/data/mods/Aftershock/effects.json @@ -0,0 +1,58 @@ +[ + { + "id": "fd_migo_atmosphere", + "type": "field_type", + "intensity_levels": [ + { + "name": "foul-smelling air", + "sym": "8", + "dangerous": true, + "effects": [ + { + "effect_id": "migo_atmosphere", + "body_part": "MOUTH", + "intensity": 1, + "min_duration": "5 seconds", + "max_duration": "10 seconds", + "immune_inside_vehicle": true + } + ] + }, + { + "name": "foul-smelling air", + "translucency": 1, + "effects": [ + { + "effect_id": "migo_atmosphere", + "body_part": "MOUTH", + "intensity": 2, + "min_duration": "10 seconds", + "max_duration": "25 seconds" + } + ] + }, + { + "name": "foul-smelling air", + "effects": [ + { + "effect_id": "migo_atmosphere", + "body_part": "MOUTH", + "intensity": 4, + "min_duration": "15 seconds", + "max_duration": "25 seconds" + } + ] + } + ], + "decay_amount_factor": 5, + "gas_absorption_factor": 15, + "percent_spread": 30, + "outdoor_age_speedup": "3 minutes", + "dirty_transparency_cache": true, + "has_fume": true, + "immunity_data": { "body_part_env_resistance": [ [ "MOUTH", 15 ] ], "traits": [ "MIGO_BREATHE" ] }, + "priority": 8, + "half_life": "10 minutes", + "phase": "gas" + } +] diff --git a/data/mods/Aftershock/items/mutagen.json b/data/mods/Aftershock/items/mutagen.json new file mode 100644 index 0000000000000..b17547f34c6cd --- /dev/null +++ b/data/mods/Aftershock/items/mutagen.json @@ -0,0 +1,22 @@ +[ + { + "id": "iv_mutagen_migo", + "copy-from": "iv_mutagen_flavor", + "type": "COMESTIBLE", + "name": "mi-go serum", + "description": "A super-concentrated mutagen strongly resembling a lava lamp. You need a syringe to inject it… if you really want to?", + "price": 1000000, + "color": "red", + "healthy": -4, + "use_action": { "type": "mutagen_iv", "mutation_category": "MIGO" } + }, + { + "id": "mutagen_migo", + "copy-from": "mutagen_flavor", + "type": "COMESTIBLE", + "name": "mi-go mutagen", + "description": "An extremely rare mutagen cocktail, it smells of sulphur and glows orange.", + "price": 500000, + "use_action": { "type": "mutagen", "mutation_category": "MIGO" } + } +] diff --git a/data/mods/Aftershock/maps/mapgen/millyficent_lab.json b/data/mods/Aftershock/maps/mapgen/millyficent_lab.json new file mode 100644 index 0000000000000..820ffad36f229 --- /dev/null +++ b/data/mods/Aftershock/maps/mapgen/millyficent_lab.json @@ -0,0 +1,335 @@ +[ + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "mortuary_2story" ], + "weight": 100, + "object": { + "fill_ter": "t_floor", + "rows": [ + "..,,,,,...uuuu...,,,,,..", + "..,,,,,..uaaaau..,,,,,..", + "..,,,,,.uaffffau.,,,,,..", + "..,,,,,..uuuuuu..,,,,,..", + "..,,,,,..........,,,,,..", + "..,,,,,,........,,,,,,..", + "..,,,,,,,,,,,,,,,,,,,,..", + "..,,,,,,,,,,,,,,,,,,,,..", + "..,,,,,,,,,,,,,,,,,,,,..", + "..,,,,,,,,,,,,,,,,,,,,..", + "...,,,,,,,,,,,,,,,,,,...", + "....uuuu.|o++o|.uuuu....", + "..|-oooo-|P P|-oooo-|u.", + "..oP cc P|H H| |fu", + "|-|c c|H H| H H ofu", + "|&|c c| | H H |fu", + "| + + DD + H H P|u.", + "|i|D ll P|P hP| H H C|..", + "--|------|-++-| H H P|u.", + ".4|dT~T~i|C O| |fu", + "..|------|-++-|-o--o-|u.", + ".........u.,,.u........." + ], + "terrain": { + " ": "t_floor", + "*": "t_door_locked_interior", + "+": "t_door_c", + ",": "t_pavement", + "-": "t_wall_w", + ".": "t_grass", + "L": "t_linoleum_white", + "T": "t_linoleum_white", + "a": "t_dirt", + "d": "t_linoleum_white", + "f": "t_dirt", + "i": "t_linoleum_white", + "o": "t_window_bars_curtains", + "u": "t_shrub", + "|": "t_wall_w", + "~": "t_linoleum_white", + "4": "t_gutter_downspout", + ">": "t_wood_stairs_down", + "<": "t_wood_stairs_up" + }, + "toilets": { "&": { "amount": [ 0, 50 ] } }, + "furniture": { + "C": "f_coffin_c", + "D": "f_desk", + "H": "f_bench", + "h": "f_chair", + "L": "f_locker", + "O": "f_coffin_o", + "P": [ "f_indoor_plant_y", "f_indoor_plant" ], + "T": "f_table", + "a": "f_dahlia", + "c": "f_sofa", + "d": "f_rack", + "f": [ "f_datura", "f_bluebell", "f_mutpoppy", "f_dahlia", "f_flower_tulip", "f_chamomile", "f_flower_spurge", "f_lily" ], + "i": "f_sink", + "l": "f_bookcase" + }, + "place_signs": [ { "signage": "Whately Family Mortuary Services. Serving New England for three hundred years.'", "x": 15, "y": 11 } ], + "place_items": [ + { "item": "cleaning", "x": 3, "y": [ 19, 20 ], "chance": 50 }, + { "item": "dissection", "x": 3, "y": 21, "chance": 70 }, + { "item": "church", "x": [ 16, 18 ], "y": [ 14, 20 ], "chance": 50 }, + { "item": "lab_torso", "x": 8, "y": 19, "chance": 50 }, + { "item": "bionics_common", "x": 8, "y": 19, "chance": 30 }, + { "item": "homebooks", "x": [ 5, 6 ], "y": 17, "chance": 50 }, + { "item": "magazines", "x": 3, "y": 17, "chance": 50 } + ], + "place_loot": [ + { "group": "corpse_male_mortuary", "x": 4, "y": 19, "chance": 40 }, + { "group": "corpse_female_mortuary", "x": 6, "y": 19, "chance": 40 }, + { "group": "corpse_female_mortuary", "x": 6, "y": 21, "chance": 40 }, + { "group": "corpse_viewing", "x": 20, "y": 17, "chance": 50 } + ], + "place_vehicles": [ { "vehicle": "hearse", "x": 12, "y": 7, "chance": 90 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "mortuary_basement" ], + "weight": 200, + "object": { + "rotation": [ 0, 3 ], + "fill_ter": "t_rock", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " |||||||||||| ", + " |T8T5CfHH??| ", + " |,h,,,,,,,?| ", + " |n,,,*,,???| ", + " ||||,,,,|||| ", + " |ffG,,,,ACA| ", + " ||||,,,,,,,,,,||||| ", + " |&_+*,,,,,*,TTT|EWU| ", + " |i_|,,TT,,,,,,+_*_| ", + " |||||+||,,||+|||||| ", + " |i,A,F|++|U__XU| ", + " |D,*,T|..|U_*_c| ", + " |b,,hT|<<|U___c| ", + " |b,n,T||||U_U_U| ", + " ||||||| ||||||| ", + " ", + " ", + " " + ], + "terrain": { + "|": "t_wall", + "<": "t_stairs_up", + "+": "t_door_c", + ".": "t_floor", + "_": "t_linoleum_gray", + "c": "t_linoleum_gray", + "U": "t_linoleum_gray", + "X": "t_linoleum_gray", + "E": "t_linoleum_gray", + "i": "t_linoleum_gray", + "&": "t_linoleum_gray", + ",": "t_linoleum_white", + "C": "t_linoleum_white", + "?": "t_linoleum_white", + "A": "t_linoleum_white", + "h": "t_linoleum_white", + "D": "t_linoleum_white", + "5": "t_linoleum_white", + "F": "t_linoleum_white", + "f": "t_linoleum_white", + "G": "t_linoleum_white", + "b": "t_linoleum_white", + "n": "t_linoleum_white", + "H": "t_linoleum_white", + "T": "t_linoleum_white", + "8": "t_console_broken", + "W": "t_water_dispenser", + "*": "t_utility_light" + }, + "liquids": { "E": { "liquid": "water_clean", "amount": [ 0, 100 ] } }, + "furniture": { + "T": "f_workbench", + "G": "f_glass_cabinet", + "c": "f_counter", + "h": "f_chair", + "A": "f_air_filter", + "C": "f_air_conditioner", + "E": "f_water_heater", + "X": [ "f_crate_c", "f_crate_o", "f_cardboard_box" ], + "U": "f_utility_shelf", + "H": "f_bookcase", + "F": "f_glass_fridge", + "i": "f_sink", + "?": "f_sofa", + "n": "f_trashcan", + "f": "f_filing_cabinet", + "5": "f_server", + "b": "f_lab_bench", + "D": "f_fume_hood" + }, + "items": { + "U": [ + { "item": "cleaning", "chance": 30 }, + { "item": "supplies_reagents_lab", "chance": 10 }, + { "item": "home_hw", "chance": 50 }, + { "item": "supplies_electronics", "chance": 50 } + ], + "c": [ { "item": "home_hw", "chance": 70 } ], + "X": [ { "item": "electronics", "chance": 70 } ], + "b": [ { "item": "chem_home", "chance": 30 } ], + "D": [ { "item": "chem_home", "chance": 60 } ], + "i": [ { "item": "trash", "chance": 60 } ], + "F": [ { "item": "chem_home", "chance": 50 }, { "item": "supplies_reagents_lab", "chance": 20 } ], + "T": [ { "item": "chem_home", "chance": 30 }, { "item": "electronics", "chance": 50 } ], + "f": [ { "item": "file_room", "chance": 70, "repeat": [ 1, 5 ] } ], + "G": [ { "item": "office_paper", "chance": 30 } ], + "H": [ { "item": "magazines", "chance": 40, "repeat": [ 1, 2 ] }, { "item": "lab_bookshelves", "chance": 20 } ] + }, + "toilets": { "&": { "amount": [ 0, 50 ] } } + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": [ "mortuary_2story_second" ], + "object": { + "fill_ter": "t_open_air", + "rows": [ + "________________________", + "________________________", + "________________________", + "________________________", + "________________________", + "________________________", + "________________________", + "________________________", + "________________________", + "________________________", + "________________________", + "_________|w||w|_________", + "__||wwww||%%%%||wwww||__", + "__wZZil.b|%%%%|8....1|__", + "|||ZZ..cb|%%%%|F.....w__", + "|&|A....b|%%%%|e.....|__", + "|%+......+%%%%m.....1|__", + "|S|D ll P|%%%%|E.....|__", + "||||||||||:++:|h.....|__", + "__|BB>CoC|1..t|a....1|__", + "__|B..*..+.*st|o.....w__", + "__|TBBfiB|1..t|......|__", + "__||||||||||||||w||w||__", + "________________________" + ], + "toilets": { "&": { } }, + "terrain": { + ".": "t_floor", + "#": "t_brick_wall", + "|": "t_strconc_wall", + " ": "t_strconc_floor", + "%": "t_linoleum_white", + "+": "t_door_c", + "-": "t_door_glass_frosted_c", + "=": "t_door_glass_frosted_lab_c", + ":": "t_reinforced_glass", + "m": "t_door_metal_c", + "o": "t_centrifuge", + "x": "t_console_broken", + "*": "t_utility_light", + "w": "t_window_bars_curtains", + ">": "t_wood_stairs_down" + }, + "furniture": { + "T": "f_trashcan", + "1": [ "f_indoor_plant", "f_indoor_plant_y" ], + "5": "f_server", + "8": "f_sample_freezer", + "a": "f_autoclave", + "A": "f_air_filter", + "b": "f_lab_bench", + "B": "f_bookcase", + "C": "f_counter", + "c": "f_chair", + "d": "f_desk", + "D": "f_dishwasher", + "e": "f_eyewash", + "E": "f_electron_microscope", + "F": "f_fume_hood", + "f": "f_fridge", + "G": "f_GC", + "h": "f_shaker", + "H": "f_HPLC", + "i": "f_filing_cabinet", + "I": "f_scan_bed", + "l": "f_locker", + "M": "f_MS", + "N": "f_NMR", + "O": "f_MRI", + "0": "f_CTscan", + "r": "f_rack", + "s": "f_stool", + "S": "f_sink", + "t": "f_table", + "U": "f_utility_shelf", + "v": "f_ventilator", + "Z": "f_bed" + }, + "place_npcs": [ { "class": "millyficent_whately", "x": 17, "y": 14 } ] + } + }, + { + "type": "mapgen", + "method": "json", + "om_terrain": "mortuary_2story_roof", + "object": { + "fill_ter": "t_flat_roof", + "rows": [ + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + " |22223 ", + " |222222|....|2222223 ", + " |..................3 ", + "|2|..................3 ", + "|....................3 ", + "|.U..................3 ", + "|....................3 ", + "--5..................3 ", + " |..................3 ", + " |..................3 ", + " |..................3 ", + " |------------------3 ", + " " + ], + "palettes": [ "roof_palette" ], + "nested": { "U": { "chunks": [ "roof_2x2_infrastructure" ] } }, + "place_nested": [ + { + "chunks": [ + [ "null", 20 ], + [ "roof_2x2_utilities_b", 15 ], + [ "roof_2x2_utilities_c", 5 ], + [ "roof_2x2_utilities_d", 40 ], + [ "roof_2x2_utilities", 50 ] + ], + "x": [ 4, 17 ], + "y": [ 14, 19 ] + } + ] + } + } +] diff --git a/data/mods/Aftershock/maps/overmap_specials.json b/data/mods/Aftershock/maps/overmap_specials.json index 4925449cd2642..71cb777cac0dd 100644 --- a/data/mods/Aftershock/maps/overmap_specials.json +++ b/data/mods/Aftershock/maps/overmap_specials.json @@ -45,5 +45,21 @@ "flags": [ "FUNGAL" ], "rotate": false, "spawns": { "group": "GROUP_FUNGI_TOWER", "population": [ 125, 175 ], "radius": [ 2, 2 ] } + }, + { + "type": "overmap_special", + "id": "mortuary_2story", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "mortuary_2story_north" }, + { "point": [ 0, 0, 1 ], "overmap": "mortuary_2story_second_north" }, + { "point": [ 0, 0, -1 ], "overmap": "mortuary_basement_north" }, + { "point": [ 0, 0, 2 ], "overmap": "mortuary_roof_north" } + ], + "connections": [ { "point": [ 0, -1, 0 ], "terrain": "road" } ], + "locations": [ "land" ], + "city_distance": [ 5, -1 ], + "city_sizes": [ 2, -1 ], + "occurrences": [ 0, 1 ], + "flags": [ "CLASSIC" ] } ] diff --git a/data/mods/Aftershock/maps/overmap_terrain.json b/data/mods/Aftershock/maps/overmap_terrain.json index 0fb0e584e5349..0361a3988aee4 100644 --- a/data/mods/Aftershock/maps/overmap_terrain.json +++ b/data/mods/Aftershock/maps/overmap_terrain.json @@ -73,5 +73,38 @@ "see_cost": 3, "extras": "marloss", "flags": [ "NO_ROTATE", "RISK_HIGH" ] + }, + { + "type": "overmap_terrain", + "id": "mortuary_2story", + "name": "county mortuary", + "sym": "M", + "color": "light_green", + "see_cost": 3, + "flags": [ "SIDEWALK" ] + }, + { + "type": "overmap_terrain", + "id": "mortuary_basement", + "name": "county mortuary basement", + "sym": "M", + "color": "white", + "see_cost": 3 + }, + { + "type": "overmap_terrain", + "id": "mortuary_2story_second", + "name": "county mortuary second floor", + "sym": "M", + "color": "light_green", + "see_cost": 3 + }, + { + "type": "overmap_terrain", + "id": "mortuary_2story_roof", + "name": "county mortuary roof", + "sym": "M", + "color": "light_green", + "see_cost": 3 } ] diff --git a/data/mods/Aftershock/mobs/monster_faction.json b/data/mods/Aftershock/mobs/monster_faction.json index 1c23ef23ed06d..91b25239f299d 100644 --- a/data/mods/Aftershock/mobs/monster_faction.json +++ b/data/mods/Aftershock/mobs/monster_faction.json @@ -5,5 +5,12 @@ "friendly": [ "Prepnet_Phyle", "human", "PrepNet", "player" ], "neutral": "herbivore", "by_mood": [ "insect", "small_animal" ] + }, + { + "type": "MONSTER_FACTION", + "name": "whately", + "friendly": [ "human", "player" ], + "neutral": "herbivore", + "by_mood": [ "insect", "small_animal" ] } ] diff --git a/data/mods/Aftershock/mutations/dreams.json b/data/mods/Aftershock/mutations/dreams.json new file mode 100644 index 0000000000000..8d9c5a3928e8c --- /dev/null +++ b/data/mods/Aftershock/mutations/dreams.json @@ -0,0 +1,35 @@ +[ + { + "type": "dream", + "messages": [ "You dream of warm, alien winds.", "You dream of landscapes lit by the light of alien moons." ], + "category": "MIGO", + "strength": 1 + }, + { + "type": "dream", + "messages": [ + "You stand at the edge of a fissure into strange earth. Mustard brown gasses caress and lift your fronds", + "You dream of being vivsected by humans. One asks if the other thinks you can feel pain." + ], + "category": "MIGO", + "strength": 2 + }, + { + "type": "dream", + "messages": [ + "Trapped in a cage, you mimic the sounds of your guard's spawn. He threatens you and enters the cage. He screams, you recall.", + "It's your birthday. But everyone has given you these hideous metal and plastic objects." + ], + "category": "MIGO", + "strength": 3 + }, + { + "type": "dream", + "messages": [ + "The stars await you, your chariot of fire is ready. The holds are full of slaves.", + "You have transitioned from a dying race to a glorious future." + ], + "category": "MIGO", + "strength": 4 + } +] diff --git a/data/mods/Aftershock/mutations/mutations.json b/data/mods/Aftershock/mutations/mutations.json index f20602050727b..79c6da950a6d4 100644 --- a/data/mods/Aftershock/mutations/mutations.json +++ b/data/mods/Aftershock/mutations/mutations.json @@ -8,5 +8,269 @@ "description": "NPC trait that makes monsters see it as a Prepnet. It is a bug if you have it.", "player_display": false, "threshold": true + }, + { + "type": "mutation_category", + "id": "MIGO", + "name": "YUGGOTH", + "threshold_mut": "THRESH_YUGGOTH", + "mutagen_message": "Strange memories of another world overwhelm you…", + "iv_message": "You look into your own cells and change them.", + "iv_pain": 10, + "iv_morale": 25, + "iv_morale_max": 100, + "iv_sleep": true, + "//": "Should be out for two minutes. Nightmare realm becomes home", + "iv_sleep_dur": 20, + "iv_sleep_message": "You gaze inside, past your fear, past good and evil, into the future.", + "memorial_message": "Prepared the way into the galaxy." + }, + { + "type": "mutation", + "id": "MIGO_HEAT_RESIST", + "name": "Mi-go acclimatization", + "points": 4, + "bodytemp_modifiers": [ -2500, -6500 ], + "description": "Fleshy fronds grown from your scalp function like organic heat sinks. They allow you to live comfortably within the mi-go atmosphere.", + "player_display": true, + "threshreq": [ "THRESH_YUGGOTH" ], + "starting_trait": false, + "types": [ "METABOLISM" ], + "active": true, + "category": [ "MIGO" ], + "prereqs": [ "WARM_NATURED" ] + }, + { + "type": "mutation", + "id": "FACIAL_TENTACLES", + "name": "Facial Tentacles", + "points": 1, + "visibility": 8, + "ugliness": 5, + "description": "A set of tentacles surrounds your mouth. They allow you to eat twice as fast. Slightly decreases wet penalties.", + "prereqs": [ "MOUTH_TENDRILS" ], + "cancels": [ "MANDIBLES" ], + "category": [ "MIGO" ], + "wet_protection": [ { "part": "MOUTH", "neutral": 4 } ] + }, + { + "type": "mutation", + "id": "MOUTH_TENDRILS", + "name": "Mouth Tendrils", + "points": -1, + "visibility": 7, + "ugliness": 6, + "description": "Skin tabs and odd flaps of skin surround your mouth. They don't affect your eating, but are unpleasant to look at.", + "category": [ "MIGO" ], + "leads_to": [ "FACIAL_TENTACLES" ] + }, + { + "type": "mutation", + "id": "WARM_NATURED", + "name": "Warm Natured", + "points": 2, + "description": "Your body becomes much more efficient at distributing heat from itself.", + "category": [ "MIGO" ], + "leads_to": [ "MIGO_HEAT_RESIST" ], + "bodytemp_modifiers": [ -500, -1250 ] + }, + { + "type": "mutation", + "id": "NEURAL_IMPROVEMENT", + "name": "Neural Improvement", + "points": 1, + "description": "You see the world a little differently today. Intelligence + 1", + "changes_to": [ "EXPANDED_CONSCIOUSNESS" ], + "category": [ "MIGO" ], + "passive_mods": { "int_mod": 1 } + }, + { + "type": "mutation", + "id": "EXPANDED_CONSCIOUSNESS", + "name": "Expanded Consciousness", + "points": 2, + "description": "You are beginning to see a way off this planet. Intelligence + 2", + "prereqs": [ "NEURAL_IMPROVEMENT" ], + "changes_to": [ "UPLIFTED" ], + "category": [ "MIGO" ], + "passive_mods": { "int_mod": 2 } + }, + { + "type": "mutation", + "id": "UPLIFTED", + "name": "Extremely Smart", + "points": 3, + "visibility": 1, + "ugliness": 1, + "description": "As humans uplifted our pets in the final years this process is lifting you to a new level of intelligence. Intelligence + 4", + "prereqs": [ "EXPANDED_CONSCIOUSNESS" ], + "changes_to": [ "ALIEN_INT" ], + "category": [ "MIGO" ], + "passive_mods": { "int_mod": 4 } + }, + { + "type": "mutation", + "id": "ALIEN_INT", + "name": "Alien Intelligence", + "points": 3, + "visibility": 3, + "ugliness": 6, + "description": "You can see the connections from A to B to C to D. You look at fellow survivors like you are imagining taking them apart. Intelligence + 5", + "prereqs": [ "UPLIFTED" ], + "category": [ "MIGO" ], + "threshreq": [ "THRESH_YUGGOTH" ], + "starting_trait": false, + "passive_mods": { "int_mod": 5 } + }, + { + "type": "mutation", + "id": "ENHANCED_REACTIONS", + "name": "Enhanced Reactions", + "points": 1, + "description": "Today is the day to start juggling. Dexterity + 1", + "changes_to": [ "QUICKENING" ], + "category": [ "MIGO" ], + "passive_mods": { "dex_mod": 1 } + }, + { + "type": "mutation", + "id": "QUICKENING", + "name": "Quickening", + "points": 2, + "description": "You are starting to move like they do. Dexterity + 2", + "prereqs": [ "ENHANCED_REACTIONS" ], + "changes_to": [ "OTHERWORLDLY_GRACE" ], + "category": [ "MIGO" ], + "passive_mods": { "dex_mod": 2 } + }, + { + "type": "mutation", + "id": "OTHERWORLDLY_GRACE", + "name": "Otherworldly Grace", + "points": 3, + "description": "You no longer move like a human, others find it disconcerting. Dexterity + 4", + "prereqs": [ "ENHANCED_REACTIONS" ], + "category": [ "MIGO" ], + "passive_mods": { "dex_mod": 4 } + }, + { + "type": "mutation", + "id": "NEW_MUSCLES", + "name": "New Muscles", + "points": 1, + "description": "You see some new muscles that you aren't sure you've seen on humans before. Strength + 1", + "changes_to": [ "MUSCLE_FIBER" ], + "category": [ "MIGO" ], + "passive_mods": { "str_mod": 1 } + }, + { + "type": "mutation", + "id": "MUSCLE_FIBER", + "name": "Muscle Fiber", + "points": 2, + "description": "Fibrous tissue seems to be spreading through your body. Strength + 2", + "prereqs": [ "STR_UP" ], + "category": [ "MIGO" ], + "passive_mods": { "str_mod": 2 } + }, + { + "type": "mutation", + "id": "MIGO_EARS", + "name": "Mi-go Ears", + "points": 1, + "visibility": 4, + "description": "Your ears have split into a series of tuberous projections. They waggle towards far away sounds.", + "types": [ "EARS" ], + "category": [ "MIGO" ], + "hearing_modifier": 1.4 + }, + { + "type": "mutation", + "id": "DETACHMENT", + "name": "Detachment", + "points": 2, + "flags": [ "PRED1" ], + "description": "When were you ever like these creatures, helpless before the changes ravaging this world. ", + "purifiable": false, + "changes_to": [ "PRED2" ], + "prereqs": [ "THRESH_YUGGOTH" ], + "threshreq": [ "THRESH_YUGGOTH" ], + "cancels": [ "PACIFIST" ], + "category": [ "MIGO" ] + }, + { + "type": "mutation", + "id": "ELDRITCH", + "name": "Eldritch", + "points": 3, + "description": "You have a sinister aspect to your demeanor, no longer part of this world. You feel no sorrow at the deaths of humans and your brain now processes combat skills more efficiently as you mentally dissect your opponents.", + "social_modifiers": { "intimidate": 3 }, + "purifiable": false, + "flags": [ "PRED1" ], + "prereqs": [ "THRESH_YUGGOTH" ], + "prereqs2": [ "DETACHMENT" ], + "threshreq": [ "THRESH_YUGGOTH" ], + "cancels": [ "PACIFIST" ], + "category": [ "MIGO" ] + }, + { + "type": "mutation", + "id": "THRESH_YUGGOTH", + "name": "YUGGOTH", + "points": 1, + "description": "This death throes of this world are the birthing pangs of yours.", + "valid": false, + "purifiable": false, + "threshold": true + }, + { + "type": "mutation", + "id": "MIGO_SCENT", + "name": "Fetid scent", + "points": 6, + "description": "Your sweat now smells otherworldly, and not in a good way. The mi-go still hate you but at least they aren't offended by your smell. ", + "valid": false, + "purifiable": false, + "types": [ "LEGS" ], + "prereqs": [ "SMELLY", "SMELLY2" ], + "threshreq": [ "THRESH_YUGGOTH" ], + "category": [ "MIGO" ], + "scent_type": "sc_fetid" + }, + { + "type": "mutation", + "id": "EERIE", + "name": "Eerie", + "points": 1, + "description": "You are offputting to others. You're mannerisms have changed as if human interaction is becoming foreign.", + "category": [ "MIGO" ], + "social_modifiers": { "intimidate": 15 } + }, + { + "type": "mutation", + "id": "WINGS_migo", + "name": "Mi-go Wings", + "points": 1, + "visibility": 4, + "ugliness": 8, + "description": "You have a pair of large, veiny wings. They don't appear to be made for this atmosphere but they grant a powerful buffeting attack.", + "types": [ "WINGS" ], + "prereqs": [ "WINGS_STUB" ], + "category": [ "MIGO" ], + "attacks": { + "attack_text_u": "You buffet %s with your wings", + "attack_text_npc": "%1$s buffets %2$s with their wings", + "chance": 20, + "base_damage": { "damage_type": "bash", "amount": 26 } + } + }, + { + "type": "mutation", + "id": "MIGO_BREATHE", + "name": "Mi-go breathe", + "points": 4, + "description": "You can now breathe the gasses the mi-go thrive in.", + "starting_trait": false, + "category": [ "MIGO" ] } ] diff --git a/data/mods/Aftershock/npcs/classes.json b/data/mods/Aftershock/npcs/classes.json index b1c8d915a4610..53ea486f9e5a5 100644 --- a/data/mods/Aftershock/npcs/classes.json +++ b/data/mods/Aftershock/npcs/classes.json @@ -41,5 +41,42 @@ { "id": "bio_tools", "chance": 100 }, { "id": "bio_torsionratchet", "chance": 100 } ] + }, + { + "type": "npc", + "id": "millyficent_whately", + "name_unique": "Millyficen Whately", + "name_suffix": "Xenobiologist, madwoman", + "class": "afs_xenobiologist_madwoman", + "attitude": 0, + "mission": 7, + "chat": "TALK_Millyficent_1", + "mission_offered": "MISSION_migo_biology_1", + "faction": "whately_family" + }, + { + "type": "npc_class", + "id": "afs_xenobiologist_madwoman", + "name": "mi-go enthusiast", + "job_description": "I've been studying the mi-go for years…", + "common": false, + "traits": [ + [ "hair_red_long", 100 ], + [ "SKIN_LIGHT", 100 ], + [ "WARM_NATURED", 100 ], + [ "INT_UP_3", 100 ], + [ "DEX_UP_2", 100 ], + [ "STR_UP", 100 ], + { "group": "Appearance_demographics", "prob": 100 } + ], + "bonus_dex": { "rng": [ -1, 0 ] }, + "bonus_int": { "rng": [ 2, 5 ] }, + "skills": [ + { "skill": "ALL", "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": -4 } ] } ] } }, + { "skill": "computer", "bonus": { "rng": [ 1, 5 ] } }, + { "skill": "electronics", "bonus": { "rng": [ 1, 5 ] } }, + { "skill": "firstaid", "bonus": { "rng": [ 1, 4 ] } }, + { "skill": "cooking", "bonus": { "rng": [ 6, 8 ] } } + ] } ] diff --git a/data/mods/Aftershock/npcs/factions.json b/data/mods/Aftershock/npcs/factions.json index 4df287e763e82..82862cff9bdda 100644 --- a/data/mods/Aftershock/npcs/factions.json +++ b/data/mods/Aftershock/npcs/factions.json @@ -69,5 +69,75 @@ "marloss": { "kill on sight": true } }, "description": "A group of bionic preppers who had expected the collapse of the economy and global chaos, instead they were slightly more ready than others for the Cataclysm." + }, + { + "type": "faction", + "id": "whately_family", + "name": "Whately Family", + "mon_faction": "whately", + "likes_u": 0, + "respects_u": 0, + "known_by_u": false, + "size": 15, + "power": 20, + "food_supply": 1200, + "wealth": 7500, + "relations": { + "free_merchants": { + "kill on sight": false, + "watch your back": false, + "share my stuff": false, + "guard your stuff": false, + "lets you in": true, + "defends your space": false, + "knows your voice": true + }, + "old_guard": { + "kill on sight": false, + "watch your back": false, + "share my stuff": false, + "guard your stuff": false, + "lets you in": false, + "defends your space": false, + "knows your voice": false + }, + "tacoma_commune": { + "kill on sight": false, + "watch your back": false, + "share my stuff": false, + "guard your stuff": false, + "lets you in": true, + "defends your space": false + }, + "lobby_beggars": { + "kill on sight": false, + "watch your back": false, + "share my stuff": false, + "guard your stuff": true, + "lets you in": false, + "defends your space": false + }, + "no_faction": { + "kill on sight": false, + "watch your back": false, + "share my stuff": false, + "guard your stuff": false, + "lets you in": false, + "defends your space": false, + "knows your voice": true + }, + "wasteland_scavengers": { + "kill on sight": false, + "watch your back": true, + "share my stuff": false, + "guard your stuff": true, + "lets you in": false, + "defends your space": false, + "knows your voice": true + }, + "hells_raiders": { "kill on sight": true }, + "marloss": { "kill on sight": true } + }, + "description": "The Whately's are an old New England family of eccentrics. Eccentrics being the kind words used about them." } ] diff --git a/data/mods/Aftershock/npcs/whately_dialogue.json b/data/mods/Aftershock/npcs/whately_dialogue.json new file mode 100644 index 0000000000000..cb9a3470e2877 --- /dev/null +++ b/data/mods/Aftershock/npcs/whately_dialogue.json @@ -0,0 +1,193 @@ +[ + { + "type": "effect_type", + "id": "u_met_millyficent" + }, + { + "type": "talk_topic", + "id": "TALK_Millyficent_1", + "dynamic_line": { + "u_has_var": "u_met_millyficent", + "type": "general", + "context": "meeting", + "value": "yes", + "yes": [ "What did you bring me?", "Hello.", "How are you?", "Welcome!", "Do you smell something?" ], + "no": "New test subjects! I'm so glad you showed up!" + }, + "responses": [ + { + "text": "Who are you?", + "effect": { "u_add_var": "u_met_millyficent", "type": "general", "context": "meeting", "value": "yes" }, + "condition": { "not": { "u_has_var": "u_met_millyficent", "type": "general", "context": "meeting", "value": "yes" } }, + "topic": "TALK_millyficent_firstmeet" + }, + { + "text": "What is this place?", + "condition": { "u_has_var": "u_met_millyficent", "type": "general", "context": "meeting", "value": "yes" }, + "topic": "TALK_millyficent_place" + }, + { + "text": "How did you get here?", + "condition": { "u_has_var": "u_met_millyficent", "type": "general", "context": "meeting", "value": "yes" }, + "topic": "TALK_millyficent_ask_past" + }, + { + "text": "How are things here?", + "condition": { "u_has_var": "u_met_millyficent", "type": "general", "context": "meeting", "value": "yes" }, + "topic": "TALK_millyficent_ask_mood" + }, + { + "text": "Can I do anything for you? Do I want to?", + "condition": { "u_has_var": "u_met_millyficent", "type": "general", "context": "meeting", "value": "yes" }, + "topic": "TALK_MISSION_LIST" + }, + { "text": "I'm going on my way now.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_millyficent_firstmeet", + "dynamic_line": "Millyficent Whately. I'm so glad you finally arrived. It's been a while since I last received new lab partners.", + "responses": [ + { "text": "I'm so hungry, can you help me?", "topic": "TALK_millyficent_food" }, + { "text": "You are aware of the Cataclysm?", "topic": "TALK_millyficent_cataclysm" }, + { "text": "I am your new lab partner.", "topic": "TALK_Millyficent_1" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_millyficent_place", + "dynamic_line": "Welcome to my lab! Here we explore the boundaries of the possible beyond the reach of small minds.", + "responses": [ + { "text": "Can you give me something to eat then?", "topic": "TALK_millyficent_food" }, + { "text": "Oh, okay.", "topic": "TALK_Millyficent_1" }, + { "text": "I think there's been a mistake.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_millyficent_food", + "dynamic_line": "No, no, no! No food without succesfully completed experiments. We mustn't break the contract!", + "responses": [ + { "text": "What do I have to do?", "topic": "TALK_MISSION_LIST" }, + { "text": "I don't think you are well.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_millyficent_ask_past", + "dynamic_line": "Well after I did my graduate thesis on theoretical xenobiology the government hired me to join the most interesting program. Yes there were deaths but we learned so much.", + "responses": [ { "text": "Let's talk about something else.", "topic": "TALK_Millyficent_1" } ] + }, + { + "type": "talk_topic", + "id": "TALK_millyficent_cataclysm", + "dynamic_line": "What I know is that I pay well for test subjects and I deliver results and at this rate we will not be releasing on time!", + "responses": [ { "text": "Let's talk about something else.", "topic": "TALK_Millyficent_1" } ] + }, + { + "type": "talk_topic", + "id": "TALK_millyficent_ask_mood", + "dynamic_line": "Ever since they moved me to my own lab my research has progressed so much faster.", + "responses": [ { "text": "This is not reassuring.", "topic": "TALK_Millyficent_1" } ] + }, + { + "id": "MISSION_migo_biology_1", + "type": "mission_definition", + "name": "Migo biology", + "description": "Find fetid goop.", + "goal": "MGOAL_FIND_ITEM", + "difficulty": 5, + "value": 0, + "item": "fetid_goop", + "count": 14, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_migo_biology_2", + "dialogue": { + "describe": "I need 14 fetid goops from mi-go locations.", + "offer": "My experiments are at a critical point. Could you find about… 14 fetid goops for me?", + "accepted": "Don't forget to tell me when you have them.", + "rejected": "Then why are you even here? Just let me know if you reconsider.", + "advice": "Find a mi-go base, find a way inside, smash things until you find what I need.", + "inquire": "Why aren't you done yet?", + "success": "Taste this.", + "success_lie": "Thanks for trying… I guess.", + "failure": "You are holding back the evolution of the human race." + }, + "end": { "effect": [ { "u_buy_item": "mutagen_migo", "container": "flask_glass", "count": 1 } ] } + }, + { + "id": "MISSION_migo_biology_2", + "type": "mission_definition", + "name": "Migo Resin", + "description": "Find 56 chunks of mi-go resin.", + "goal": "MGOAL_FIND_ITEM", + "difficulty": 6, + "value": 0, + "item": "resin_chunk", + "count": 50, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_migo_biology_3", + "dialogue": { + "describe": "I need 56 chunks of mi-go resin.", + "offer": "I need to understand more about their environment and how they create it. This research wasn't even possible previously. Bring me fifty six chunks of mi-go resin.", + "accepted": "My notes suggest that their building materials are alive. I need you to help me confirm that.", + "rejected": "You can't just walk away from this. We're changing the world!", + "advice": "Find their buildings, jackhammer them. What did you do before the world changed for the better, cold call salesman?", + "inquire": "Have you found my resin?", + "success": "Drink this.", + "success_lie": "Did you act on Broadway? Because I bet that skill isn't useful anymore.", + "failure": "I wonder if I could trade you to them for what I need?" + }, + "end": { "effect": [ { "u_buy_item": "mutagen_migo", "container": "flask_glass", "count": 1 } ] } + }, + { + "id": "MISSION_migo_biology_3", + "type": "mission_definition", + "name": "Mutagen", + "description": "Bring me 3 mutagen.", + "goal": "MGOAL_FIND_ITEM", + "difficulty": 3, + "value": 0, + "item": "mutagen", + "count": 3, + "origins": [ "ORIGIN_SECONDARY" ], + "followup": "MISSION_migo_biology_4", + "dialogue": { + "describe": "I need three mutagen.", + "offer": "I need some mutagen and I don't want to spend the time making it myself. Bring me three doses, if you would be so kind.", + "accepted": "Mutagen makes the world go round, it's definitely more valuable than love.", + "rejected": "Are you scared of where I'm taking you?", + "advice": "If you can't make it yourself go hit up a government lab. Be prepared for anything in there.", + "inquire": "Mutagen? Why are you in front of me if not?", + "success": "I've got something more potent for you this time.", + "success_lie": "Lies and the lying liars who tell them.", + "failure": "You are keeping me from my experiments. Would you like to become one?" + }, + "end": { "effect": [ { "u_buy_item": "iv_mutagen_migo", "container": "flask_glass", "count": 1 } ] } + }, + { + "id": "MISSION_migo_biology_4", + "type": "mission_definition", + "name": "Humming Hearts", + "description": "Find 2 humming hearts.", + "goal": "MGOAL_FIND_ITEM", + "difficulty": 8, + "value": 0, + "item": "humming_heart", + "count": 2, + "origins": [ "ORIGIN_SECONDARY" ], + "dialogue": { + "describe": "Parts, parts, parts. Bring me some hearts. ", + "offer": "The Whately's are known in these parts for gathering body parts. Ha! That's just rumors and hearsay. But I do need two humming hearts.", + "accepted": "I have some relatives you should meet, if you don't mind hard work for the advancement of science.", + "rejected": "Even I understand this is dangerous.", + "advice": "Brain blasters, that's what I call them. Some kind of automated weapon system the mi-go use.", + "inquire": "They speak sometimes. I wonder if they still think.", + "success": "Let's see what improvements we can divine from these beauties.", + "success_lie": "Thanks for trying… I guess.", + "failure": "I can't be Dr Frankenstein unless you get me these." + }, + "end": { "effect": [ { "u_buy_item": "mutagen_migo", "container": "flask_glass", "count": 2 } ] } + } +]