diff --git a/data/json/items/tool/musical_instruments.json b/data/json/items/tool/musical_instruments.json index 250cfc31d3e89..1ae6b9f59ce23 100644 --- a/data/json/items/tool/musical_instruments.json +++ b/data/json/items/tool/musical_instruments.json @@ -242,6 +242,32 @@ ] } }, + { + "id": "krar_golden", + "type": "TOOL", + "category": "tools", + "name": { "str": "golden krar" }, + "description": "A shiny golden krar, similar to a harp.", + "weight": "13000 g", + "volume": "2500 ml", + "longest_side": "60 cm", + "price": 1000000, + "price_postapoc": 1000, + "to_hit": { "grip": "solid", "length": "short", "surface": "any", "balance": "clumsy" }, + "bashing": 9, + "material": [ "gold" ], + "symbol": "}", + "color": "yellow", + "use_action": { + "type": "musical_instrument", + "volume": 25, + "fun": 1, + "fun_bonus": 4, + "speed_penalty": 25, + "description_frequency": 10, + "player_descriptions": [ "You play a relaxed, folksy tune on your krar." ] + } + }, { "type": "TOOL_ARMOR", "id": "harmonica_holder", diff --git a/data/json/mapgen/exodii/exodii_base.json b/data/json/mapgen/exodii/exodii_base.json index a98b71b6c3d91..03e4201adabad 100644 --- a/data/json/mapgen/exodii/exodii_base.json +++ b/data/json/mapgen/exodii/exodii_base.json @@ -433,11 +433,11 @@ "..............||_|.[[.................[[.......]_T|Ṫ_____///____________C|||..........|[[.......", ".............||<_].[[................[[....l...|]]|Ṫ__////_______________M_M[[[[[[[[[[[[[.......", ".............]___||[[...............[[...jlj......|ϟ///__////L__Ṫ________M_M[[[[[[[[[[[[[.......", - "............||____M[[[[[[[[[[[[[...[[...j¤¤¤¤j....|Ṫ__/////__Ṫ__Ṫ__Ṫ__Ṫ__|||..........|[[.......", - "............]_s__C|..........[[[[[[[[...j¤jn¤jn...|Ṫ_________Ṫ__Ṫ__Ṫ__Ṫ__|.............[[.......", - "............]____C|..........[[|MM|[[[[jj¤jl¤jj...|Ṫ_____________________|.............[[.......", - "............|_s___[..........[||__|..[[jj¤¤¤¤j....|Ṫ_________Ṫ__Ṫ__Ṫ__Ṫ__|.........[[[[[........", - "............]_____[..........[]TT||.nj[[jjnjjj....|Ṫ_________Ṫ__Ṫ__Ṫ__Ṫ__|.....[[[[[[[[[........", + "............||____M[[[[[[[[[[[[[...[[...j¤¤¤¤j....|Ṫ__ÿ __Ṫ__Ṫ__Ṫ__Ṫ__|||..........|[[.......", + "............]_s__C|..........[[[[[[[[...j¤jn¤jn...|Ṫ__ __Ṫ__Ṫ__Ṫ__Ṫ__|.............[[.......", + "............]____C|..........[[|MM|[[[[jj¤jl¤jj...|Ṫ__ ______________|.............[[.......", + "............|_s___[..........[||__|..[[jj¤¤¤¤j....|Ṫ__ __Ṫ__Ṫ__Ṫ__Ṫ__|.........[[[[[........", + "............]_____[..........[]TT||.nj[[jjnjjj....|Ṫ__ __Ṫ__Ṫ__Ṫ__Ṫ__|.....[[[[[[[[[........", "............]_s___[..........[]]]|..jjj[l.jjkj....|Ṫ_____________________|....[[[||||...........", "............|]]|T_|..........[.....jjlj[[...j.....|Ṫ_________Ṫ__Ṫ__Ṫ__Ṫ__|....[|M|_s]...........", "...............|]]|.........[[....ljkj..[[........|Ṫ_________Ṫ__Ṫ__Ṫ__Ṫ__|...[[M____]...........", @@ -500,6 +500,7 @@ { "id": "exodii", "x": [ 72, 95 ], "y": [ 48, 71 ] }, { "id": "exodii", "x": [ 72, 95 ], "y": [ 72, 95 ] } ], + "nested": { "ÿ": { "chunks": [ "luliya_base" ] } }, "terrain": { " ": "t_rock_floor_no_roof", ";": "t_metal_floor_no_roof", diff --git a/data/json/mapgen/exodii/exodii_nested.json b/data/json/mapgen/exodii/exodii_nested.json index 0e85d1f1ba9da..552511867f10c 100644 --- a/data/json/mapgen/exodii/exodii_nested.json +++ b/data/json/mapgen/exodii/exodii_nested.json @@ -29,5 +29,29 @@ "L": { "terrain": "t_metal_floor", "furniture": "f_exodii_lamp" } } } + }, + { + "type": "mapgen", + "method": "json", + "nested_mapgen_id": "luliya_base", + "//": "Luliya's area in the exodii main base", + "object": { + "mapgensize": [ 5, 5 ], + "rows": [ + "T_1__", + "1___c", + "L____", + "_____", + "_____" + ], + "place_npcs": [ { "class": "exodii_materials", "x": 2, "y": 1 } ], + "terrain": { "_": "t_metal_floor", "|": "t_junk_wall", "T": "t_metal_floor" }, + "item": { "T": { "item": "broken_exodii_quad" } }, + "mapping": { + "1": { "terrain": "t_metal_floor", "furniture": "f_locker" }, + "c": { "terrain": "t_metal_floor", "furniture": "f_metal_table" }, + "L": { "terrain": "t_metal_floor", "furniture": "f_exodii_lamp" } + } + } } ] diff --git a/data/json/mutations/cybernetic_traits.json b/data/json/mutations/cybernetic_traits.json index 532a387aa8ca5..32fe39d501e17 100644 --- a/data/json/mutations/cybernetic_traits.json +++ b/data/json/mutations/cybernetic_traits.json @@ -45,5 +45,34 @@ } ], "weight_capacity_modifier": 3 + }, + { + "type": "mutation", + "id": "EXODII_BODY_2", + "flags": [ "Exodii_Body" ], + "name": { "str": "Exodii cyborg framework - style 2a" }, + "points": 0, + "visibility": 4, + "ugliness": 2, + "mixed_effect": true, + "description": "Your brain and some of your organs are shielded in a shiny gold bipedal walker frame.", + "valid": false, + "purifiable": false, + "types": [ "Cyberframe", "Cybernetic" ], + "passive_mods": { "str_mod": 4, "dex_mod": 4 }, + "hp_adjustment": 10, + "restricts_gear": [ "torso", "leg_l", "leg_r", "arm_l", "arm_r", "hand_l", "hand_r", "head", "foot_l", "foot_r" ], + "armor": [ + { + "parts": [ "torso", "head", "arm_l", "arm_r", "hand_l", "hand_r", "leg_l", "leg_r", "foot_l", "foot_r", "mouth" ], + "cut": 15, + "bash": 15, + "stab": 15, + "bullet": 10, + "acid": 25, + "electric": 0 + } + ], + "weight_capacity_modifier": 3 } ] diff --git a/data/json/mutations/mutation_ordering.json b/data/json/mutations/mutation_ordering.json index c3f32d0cd2833..47afce4b25951 100644 --- a/data/json/mutations/mutation_ordering.json +++ b/data/json/mutations/mutation_ordering.json @@ -212,7 +212,7 @@ { "id": [ "FANGS", "MANDIBLES", "SABER_TEETH" ], "order": 7500 }, { "id": [ "FORKED_TONGUE" ], "order": 8000 }, { "id": [ "PROF_FED", "PROF_PD_DET", "PROF_POLICE", "PROF_SWAT", "PHEROMONE_INSECT" ], "order": 8500 }, - { "id": [ "EXODII_BODY_1" ], "order": 10000 } + { "id": [ "EXODII_BODY_1", "EXODII_BODY_2" ], "order": 10000 } ] } ] diff --git a/data/json/npcs/exodii/exodii_Luliya.json b/data/json/npcs/exodii/exodii_Luliya.json new file mode 100644 index 0000000000000..20bf67cbc0779 --- /dev/null +++ b/data/json/npcs/exodii/exodii_Luliya.json @@ -0,0 +1,243 @@ +[ + { + "type": "npc", + "id": "exodii_materials", + "//": "Materials manager and music fan from another Ethiopia.", + "name_suffix": "Cyborg", + "class": "NC_EXODII_TYPE_2_Materials", + "name_unique": "Luliya", + "attitude": 0, + "mission": 7, + "chat": "TALK_LULIYA", + "faction": "exodii" + }, + { + "type": "npc_class", + "id": "NC_EXODII_TYPE_2_Materials", + "name": { "str": "Cyborg, type 2" }, + "job_description": "I'm a cyborg.", + "traits": [ + { "trait": "EXODII_BODY_2" }, + { "trait": "IGNORE_SOUND" }, + { "trait": "NO_BASH" }, + { "trait": "RETURN_TO_START_POS" } + ], + "common": false, + "bonus_str": { "rng": [ 0, 6 ] }, + "bonus_dex": { "rng": [ 0, 6 ] }, + "bonus_int": { "rng": [ 0, 2 ] }, + "bonus_per": { "rng": [ 0, 4 ] }, + "carry_override": "NC_EXODII_TYPE_2_carried", + "worn_override": "EMPTY_GROUP", + "skills": [ + { + "skill": "ALL", + "level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": 0 }, { "one_in": 4 } ] } ] } + }, + { "skill": "mechanics", "bonus": { "one_in": 2 } }, + { "skill": "electronics", "bonus": { "rng": [ 0, 2 ] } }, + { "skill": "firstaid", "bonus": { "rng": [ 7, 10 ] } }, + { "skill": "gun", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "rifle", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "unarmed", "bonus": { "rng": [ 2, 4 ] } }, + { "skill": "speech", "bonus": { "rng": [ 5, 8 ] } } + ] + }, + { + "type": "item_group", + "id": "NC_EXODII_TYPE_2_carried", + "//": "Golden krar for Luliya.", + "items": [ { "item": "krar_golden" } ] + }, + { + "type": "talk_topic", + "id": "TALK_LULIYA", + "dynamic_line": { + "u_has_var": "u_met_luliya", + "type": "general", + "context": "meeting", + "value": "yes", + "yes": [ "Inikwani dehina metahi tegwazhi." ], + "no": "[You see a tall golden figure with female features. Strapped to the back of the head with copper wire is a glass cylinder containing long frizzy black hair. The body stands still and emits an unpleasant beeping sound. On the back there is a large red button with strange markings. There is a golden harp of some kind.]" + }, + "responses": [ + { + "text": "[PUSH THE BIG RED BUTTON]", + "condition": { "not": { "u_has_var": "u_met_luliya", "type": "general", "context": "meeting", "value": "yes" } }, + "topic": "TALK_LULIYA_BUTTON" + }, + { + "text": "[HAS STETHOSCOPE] Is this alive? [CHECK FOR A PULSE]", + "condition": { + "and": [ + { "not": { "u_has_var": "u_met_luliya", "type": "general", "context": "meeting", "value": "yes" } }, + { "u_has_item": "stethoscope" } + ] + }, + "topic": "TALK_LULIYA_PULSE" + }, + { + "text": "[DO NOTHING]", + "condition": { "not": { "u_has_var": "u_met_luliya", "type": "general", "context": "meeting", "value": "yes" } }, + "topic": "TALK_DONE" + }, + { + "text": "Do you speak English? [slowly and loudly] ENGLISH?", + "topic": "TALK_LULIYA_ENGLISH", + "condition": { + "and": [ + { "u_has_var": "u_met_luliya", "type": "general", "context": "meeting", "value": "yes" }, + { + "not": { "u_has_var": "u_asked_luliya_english", "type": "general", "context": "meeting", "value": "yes" } + } + ] + } + }, + { + "text": "[You point to your chest] . [You point at the golden figure] What is your name?", + "topic": "TALK_LULIYA_NAME", + "condition": { + "and": [ + { "u_has_var": "u_met_luliya", "type": "general", "context": "meeting", "value": "yes" }, + { "not": { "u_has_var": "u_luliya_name", "type": "general", "context": "meeting", "value": "yes" } } + ] + } + }, + { + "text": "I heard you playing that. [You point at the golden harp she holds] La la la. Do you like music Luliya?", + "condition": { + "and": [ + { "u_has_var": "u_luliya_name", "type": "general", "context": "meeting", "value": "yes" }, + { + "u_compare_time_since_var": "u_met_luliya", + "type": "test", + "context": "var_time_test", + "op": ">", + "time": "3 days" + } + ] + }, + "topic": "TALK_LULIYA_MUSIC" + }, + { + "text": "I can't understand you.", + "condition": { "u_has_var": "u_met_luliya", "type": "general", "context": "meeting", "value": "yes" }, + "topic": "TALK_DONE" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_LULIYA_BUTTON", + "dynamic_line": "[You hear a loud static discharge, a rough mechanical chugging sound, and then high-pitched shrieking with strange distortions and modulations in the sound. The golden figure shudders, arms flailing] ቆዳዬ! ቆዳዬ በእሳት ላይ ነው! እየሞትኩ ነው!", + "speaker_effect": { "effect": { "u_add_var": "u_met_luliya", "type": "general", "context": "meeting", "value": "yes" } }, + "responses": [ + { "text": "Hello. Are you all right? I just hit the button on your back.", "topic": "TALK_LULIYA" }, + { "text": "I'm not understanding that. Can you try again?", "topic": "TALK_LULIYA" }, + { + "text": "Speak English ya robot. We don't take kindly to that kind of thing here. [You frown menacingly]", + "topic": "TALK_LULIYA" + }, + { "text": "State your name and function machine.", "topic": "TALK_LULIYA" }, + { + "text": "[INT 18] Huh. That sounds a little familiar, a little like Arabic. Earabiun? [slowly and clearly] EARABIUN?", + "topic": "TALK_LULIYA_ARABIC", + "condition": { "u_has_intelligence": 18 } + }, + { "text": "No, I'm done with this.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_LULIYA_PULSE", + "dynamic_line": "[You press your stethoscope to the chest of the figure and hear a clear strong heartbeat and a strange whirring sound like clockwork].", + "responses": [ + { "text": "So she's alive then.", "topic": "TALK_LULIYA" }, + { "text": "Probably fine then. Anyway, I need to move along.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_LULIYA_ENGLISH", + "dynamic_line": "[A long pause, then she shakes her head] Inigilizinya yelemi. No.", + "speaker_effect": { "effect": { "u_add_var": "u_not_english_luliya", "type": "general", "context": "language", "value": "yes" } }, + "responses": [ + { "text": "All right then. You seem to understand what I mean. And the word no.", "topic": "TALK_LULIYA" }, + { "text": "Fine. Anyway, I need to move along.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_LULIYA_NAME", + "dynamic_line": "[A long pause. You can't see her eyes but it seems like she is studying your face.] Sime Luliya ibalalehu. [She points to her own chest.] Luliya. [She points to your chest.] . Siletewawekini desi bilonyali, . [She strums a pleasant melody on her krar.]", + "speaker_effect": { "effect": { "u_add_var": "u_luliya_name", "type": "general", "context": "name", "value": "yes" } }, + "responses": [ { "text": "We're getting somewhere. Pleased to meet you Luliya.", "topic": "TALK_DONE" } ] + }, + { + "type": "talk_topic", + "id": "TALK_LULIYA_ARABIC", + "dynamic_line": "[A long pause, then she shakes her head] Ayi arebinya alinagerimi.", + "speaker_effect": { "effect": { "u_add_var": "u_not_arabic_luliya", "type": "general", "context": "language", "value": "yes" } }, + "responses": [ + { "text": "All right then. It seems like you do kind of understand it though.", "topic": "TALK_LULIYA" }, + { "text": "Fine. Anyway, I need to move along.", "topic": "TALK_DONE" } + ] + }, + { + "type": "talk_topic", + "id": "TALK_LULIYA_MUSIC", + "dynamic_line": "[She nods enthusiastically and strums a few notes on her krar.] Awo muzika iwedalehu.", + "responses": [ + { + "text": "[HAS GUITAR] I happen to have a nice guitar, want to play with me?", + "topic": "TALK_LULIYA_MUSIC2", + "condition": { "u_has_item": "guitar" } + }, + { + "text": "[HAS TRUMPET] I happen to have a nice trumpet, want to play with me?", + "topic": "TALK_LULIYA_MUSIC2", + "condition": { "u_has_item": "trumpet" } + }, + { + "text": "[HAS SAXOPHONE] I happen to have a nice saxophone, want to play with me?", + "topic": "TALK_LULIYA_MUSIC2", + "condition": { "u_has_item": "saxophone" } + }, + { + "text": "[HAS VIOLIN] I happen to have a nice violin, want to play with me?", + "topic": "TALK_LULIYA_MUSIC2", + "condition": { "u_has_item": "violin" } + }, + { + "text": "[HAS HARMONICA] I happen to have a nice harmonica, want to play with me?", + "topic": "TALK_LULIYA_MUSIC2", + "condition": { "u_has_item": "harmonica" } + }, + { + "text": "[HAS COWBELL] I happen to have a nice cowbell, want to play with me?", + "topic": "TALK_LULIYA_MUSIC2", + "condition": { "u_has_item": "cowbell" } + }, + { + "text": "Huh, you know music, good to know. I'll try and find something to play and come back.", + "topic": "TALK_DONE" + } + ] + }, + { + "type": "talk_topic", + "id": "TALK_LULIYA_MUSIC2", + "dynamic_line": "[You perform on your musical instrument with everything you have, giving a strong performance. Luliya sways and begins to play her instrument and sing along. The music and her voice are beautiful, she sounds like she has had some formal musical training.]", + "speaker_effect": { + "effect": [ + { "u_add_var": "u_jammed_luliya", "type": "general", "context": "music", "value": "yes" }, + { "u_add_morale": "morale_music", "bonus": 5, "max_bonus": 10 }, + { "u_make_sound": "music", "type": "music", "volume": 10 } + ] + }, + "responses": [ + { "text": "Fun, thank you for playing with me Luliya.", "topic": "TALK_LULIYA" }, + { "text": "Fun, thank you. Anyway I have to go.", "topic": "TALK_DONE" } + ] + } +] diff --git a/tools/spell_checker/dictionary.txt b/tools/spell_checker/dictionary.txt index 7680313564327..88be1be644144 100644 --- a/tools/spell_checker/dictionary.txt +++ b/tools/spell_checker/dictionary.txt @@ -76,6 +76,7 @@ allotrope allucination alnico alquerque +alinagerimi altamente alternators alumentum @@ -141,6 +142,7 @@ aquilops aramid arapaima arborescent +arebinya args armeniaca armet @@ -265,6 +267,7 @@ bifocal biggun bigpack bileworm +bilonyali bimetal binocs bioactive @@ -676,6 +679,7 @@ deceptived dedicational defatted deforming +dehina dehydrator dehydrators deines @@ -1341,6 +1345,7 @@ hypervitaminosis hypno hypochlorite hypogaea +ibalalehu ichor ichthys idkont @@ -1376,6 +1381,7 @@ infirma influencers inhalant inhalative +inidatseda injest inlays innawood @@ -1419,6 +1425,7 @@ issi issuer itchiness itemname +iwedalehu j jabberwock jabberwocks @@ -1503,6 +1510,7 @@ kops kord kosmoceratops krabgek +krar kreck krick kriegsmesser @@ -1688,6 +1696,7 @@ mesenterium meshwork messily messin +metahi metallics metalloid metalsmithing @@ -1760,6 +1769,7 @@ modernday modifier modifiers modularity +modulations mohawks moisturized moldspring @@ -1815,6 +1825,7 @@ mutagenicity mutagens mutatur mutus +muzika muzzleloaders mycoid mycus @@ -1858,6 +1869,7 @@ necrowolf nectivore needin needlelike +negeri neonate neotenic neotheropod @@ -2775,6 +2787,7 @@ technomancer technomancy techo tegmental +tegwazhi teil telepad telepads @@ -2811,6 +2824,7 @@ thumbholes thumbless thunderball thyreophoran +tifeligalehi tileset tillable tillage @@ -3160,6 +3174,7 @@ yarker yarkin yateveo yd +yelemi yellowjacket yme ynn