Skip to content

Commit

Permalink
Merge pull request #77255 from GuardianDll/something
Browse files Browse the repository at this point in the history
exodii weaponmaster
  • Loading branch information
Night-Pryanik authored Nov 7, 2024
2 parents f2817ec + ffafce4 commit 8697b77
Show file tree
Hide file tree
Showing 5 changed files with 226 additions and 6 deletions.
4 changes: 2 additions & 2 deletions data/json/mapgen/exodii/exodii_base.json
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@
"..........#######|CCcCC_____||~~~iiiiii;;i|]mmm|mm||||||mm|||||||||||||ϟ_||_ɱ| ;; !....",
"..........#######|cCcc__W__||~~~iiiiiii;;i|L_______________ɱRRRRRRRRRɱ_/____ɱ| ;; !!....",
"..........#######|||||]]|mm|~~~~iiiiiii;;i|_______W____________________/__UU|| ;; !.....",
"..........######lj ;;j~~~iikiiiii;;n|___________________________//_|||| ;; !!.....",
"..........######lj ;;j~~~iikiiiii;;n|G__________________________//_|||| ;; !!.....",
"...........###jjjw ~~;;~~~iiiiiiiii;;i|________________ɱRRRRRRRRRɱ/__|c ;; !......",
"............#!lj ~~~~[[~~iikiiikiii;;i|___________________/////___/__|C S ;; !......",
".............!!!!!!|[~~~~[[~iiiiiiiiiii;;i|____________W__/////___/////__|C ;; !......",
Expand Down Expand Up @@ -317,7 +317,7 @@
{ "id": "exodii", "x": [ 72, 95 ], "y": [ 48, 71 ] },
{ "id": "exodii", "x": [ 72, 95 ], "y": [ 72, 95 ] }
],
"nested": { "Z": { "chunks": [ "rubik_store_base" ] } },
"nested": { "Z": { "chunks": [ "rubik_store_base" ] }, "G": { "chunks": [ "weaponmaster_workshop_base" ] } },
"terrain": {
" ": "t_rock_floor_no_roof",
";": "t_metal_floor_no_roof",
Expand Down
50 changes: 50 additions & 0 deletions data/json/mapgen/exodii/exodii_nested.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,55 @@
"L": { "terrain": "t_metal_floor", "furniture": "f_exodii_lamp" }
}
}
},
{
"type": "mapgen",
"method": "json",
"nested_mapgen_id": "weaponmaster_workshop_base",
"//": "todo: add more, heavier guns on racks",
"object": {
"mapgensize": [ 5, 5 ],
"rows": [
"b_L__",
"S_C_c",
"S_C@c",
"S_Cbc",
"|_Lcc"
],
"place_item": [
{ "item": "brogyeki", "x": 0, "y": 1, "chance": 100 },
{ "item": "sapra", "x": 0, "y": 2, "chance": 100 },
{ "item": "spear_dory", "x": 0, "y": 3, "chance": 100 }
],
"mapping": {
"|": { "terrain": "t_scrap_wall" },
"_": { "terrain": "t_scrap_floor" },
"S": { "terrain": "t_scrap_floor", "furniture": "f_rack" },
"C": { "terrain": "t_scrap_floor", "furniture": "f_workbench" },
"c": { "terrain": "t_scrap_floor", "furniture": "f_metal_table" },
"L": { "terrain": "t_scrap_floor", "furniture": "f_exodii_lamp" },
"b": { "terrain": "t_scrap_floor", "furniture": "f_metal_crate_o" },
"@": { "terrain": "t_scrap_floor", "furniture": "f_metal_bench", "npcs": { "class": "exodii_weaponmaster" } }
},
"items": { "b": { "item": "EXODII_Workshop_Damaged", "chance": 100, "repeat": [ 3, 12 ] } }
}
},
{
"type": "item_group",
"id": "EXODII_Workshop_Damaged",
"subtype": "distribution",
"items": [
{ "item": "brogyeki", "prob": 20, "damage": [ 1, 4 ] },
{ "item": "brogyaga", "prob": 5, "damage": [ 1, 4 ] },
{ "item": "pamd68", "prob": 60, "damage": [ 1, 4 ] },
{ "item": "pamd71z", "prob": 10, "damage": [ 1, 4 ] },
{ "item": "sapra", "prob": 10, "damage": [ 1, 4 ] },
{ "item": "armor_lorica", "prob": 20, "damage": [ 1, 4 ] },
{ "item": "helmet_corinthian", "prob": 60, "damage": [ 1, 4 ] },
{ "item": "armor_thessalonian", "prob": 80, "damage": [ 1, 4 ] },
{ "item": "leggings_thessalonian", "prob": 80, "damage": [ 1, 4 ] },
{ "item": "sword_xiphos", "prob": 50, "damage": [ 1, 4 ] },
{ "item": "spear_dory", "prob": 30, "damage": [ 1, 4 ] }
]
}
]
10 changes: 6 additions & 4 deletions data/json/npcs/exodii/exodii_merchant_definitions.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,12 @@
"bonus_int": { "rng": [ 0, 2 ] },
"bonus_per": { "rng": [ 0, 4 ] },
"shopkeeper_item_group": [
{ "group": "EXODII_basic_trade", "rigid": true },
{ "group": "EXODII_trade_Tier1", "rigid": true, "trust": 1 },
{ "group": "EXODII_trade_Tier2", "rigid": true, "trust": 10 },
{ "group": "EXODII_trade_Tier3", "rigid": true, "trust": 20, "strict": true },
{ "group": "EXODII_Shop_Tier0", "rigid": true },
{ "group": "EXODII_Shop_NomadGear_Tier0", "rigid": true },
{ "group": "EXODII_CBM_Store_Tier1", "rigid": true },
{ "group": "EXODII_CBM_Store_tier1_extra", "rigid": true, "trust": 1 },
{ "group": "EXODII_CBM_Store_Tier2", "rigid": true, "trust": 10 },
{ "group": "EXODII_CBM_Store_Tier3", "rigid": true, "trust": 20, "strict": true },
{ "group": "EXODII_Store_Salvage_Tech", "rigid": true, "trust": 20 },
{ "group": "EXODII_CBM_Store_Tier4", "rigid": true, "trust": 40, "strict": true }
],
Expand Down
92 changes: 92 additions & 0 deletions data/json/npcs/exodii/exodii_weaponmaster.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
[
{
"type": "npc",
"id": "exodii_weaponmaster",
"name_suffix": "Weaponmaster",
"class": "NC_EXODII_TYPE_9_Weaponmaster",
"name_unique": "Nine",
"attitude": 0,
"mission": 3,
"chat": "TALK_WEAPONMASTER_INTRO_1",
"faction": "exodii",
"personality": { "aggression": -2, "bravery": 2, "collector": 2, "altruism": -2 }
},
{
"type": "npc_class",
"id": "NC_EXODII_TYPE_9_Weaponmaster",
"name": { "str": "Cyborg, type 9" },
"job_description": "I'm a cyborg.",
"traits": [
{ "trait": "EXODII_BODY_9" },
{ "trait": "IGNORE_SOUND" },
{ "trait": "NO_BASH" },
{ "trait": "RETURN_TO_START_POS" }
],
"common": false,
"bonus_str": { "rng": [ 0, 2 ] },
"bonus_dex": { "rng": [ 0, 1 ] },
"bonus_int": { "rng": [ 0, 6 ] },
"bonus_per": { "rng": [ 0, 1 ] },
"shopkeeper_item_group": [
{ "group": "EXODII_Shop_Guns_Tier0", "rigid": true },
{ "group": "EXODII_Shop_OldArmour", "rigid": true },
{ "group": "EXODII_Shop_Guns_Tier1", "rigid": true, "trust": 1 },
{ "group": "EXODII_Shop_Guns_Tier2", "rigid": true, "trust": 10 },
{ "group": "EXODII_Shop_Guns_Tier3", "rigid": true, "trust": 20, "strict": true }
],
"shopkeeper_consumption_rates": "basic_shop_rates",
"weapon_override": "brogyeki_weapon_override",
"worn_override": "EMPTY_GROUP",
"skills": [
{
"skill": "ALL",
"level": { "mul": [ { "one_in": 3 }, { "sum": [ { "dice": [ 2, 2 ] }, { "constant": 0 }, { "one_in": 4 } ] } ] }
},
{ "skill": "mechanics", "bonus": { "rng": [ 5, 7 ] } },
{ "skill": "electronics", "bonus": { "rng": [ 3, 6 ] } },
{ "skill": "firstaid", "bonus": { "rng": [ 2, 4 ] } },
{ "skill": "gun", "bonus": { "rng": [ 6, 9 ] } },
{ "skill": "rifle", "bonus": { "rng": [ 6, 9 ] } },
{ "skill": "unarmed", "bonus": { "rng": [ 4, 7 ] } },
{ "skill": "speech", "bonus": { "rng": [ 5, 8 ] } }
]
},
{
"type": "item_group",
"subtype": "collection",
"id": "brogyeki_weapon_override",
"entries": [ { "item": "brogyeki", "charges": 2 } ]
},
{
"type": "mutation",
"id": "EXODII_BODY_9",
"flags": [ "Exodii_Body" ],
"name": { "str": "Exodii cyborg framework - style 9" },
"points": 0,
"visibility": 9,
"ugliness": 7,
"mixed_effect": true,
"description": "Your entire body is covered by a rectangular frame, that has numerous supporting arms and manipulators, with decent stability. The price of this is that the weight of the entire frame is enormous, which causes the user to either use dedicated tracked treads to move around, or stay immobile for a large amount of time.",
"//": "while it can be handled via limbs and stuff, player have no way to obtain this frame (yet? ever? time will tell) so just enchantments",
"valid": false,
"purifiable": false,
"types": [ "Cyberframe", "Cybernetic" ],
"enchantments": [
{
"values": [ { "value": "MAX_HP", "add": 250 }, { "value": "STRENGTH", "add": 12 }, { "value": "DEXTERITY", "add": 12 } ]
}
],
"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": 30,
"bash": 30,
"stab": 30,
"bullet": 25,
"acid": 25,
"electric": 5
}
]
}
]
76 changes: 76 additions & 0 deletions data/json/npcs/exodii/exodii_weaponmaster_talk.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
[
{
"id": "TALK_WEAPONMASTER_INTRO_1",
"type": "talk_topic",
"//": "mute by choice, and deaf most of the time (don't like to turn on the hearing cbm unless for job)",
"dynamic_line": "&What you see looks like the back of a mechanical spider, with at least a dozen crude but polished metal arms coming from the enormously wide spine and shoulders. The spine of the creature, meanwhile, sits in an awkward-looking chair, manipulating tools and geegaws on a wide, brightly lit workbench. The creature seems to be busy with something.",
"responses": [
{ "text": "[Wait a bit.]", "topic": "TALK_WEAPONMASTER_INTRO_2A" },
{ "text": "Hello?", "topic": "TALK_WEAPONMASTER_INTRO_2B" }
]
},
{
"id": "TALK_WEAPONMASTER_INTRO_2A",
"type": "talk_topic",
"dynamic_line": "&It doesn't react to your presence at all.",
"responses": [
{ "text": "[Wait for longer.]", "topic": "TALK_WEAPONMASTER_INTRO_3" },
{ "text": "Hello?", "topic": "TALK_WEAPONMASTER_INTRO_3" }
]
},
{
"id": "TALK_WEAPONMASTER_INTRO_2B",
"type": "talk_topic",
"dynamic_line": "&It seems to not hear you at all.",
"responses": [
{ "text": "[Wait in silence.]", "topic": "TALK_WEAPONMASTER_INTRO_3" },
{ "text": "Hello!?", "topic": "TALK_WEAPONMASTER_INTRO_3" }
]
},
{
"id": "TALK_WEAPONMASTER_INTRO_3",
"type": "talk_topic",
"dynamic_line": "&A few seconds later, they seem to finish whatever they were busy with and turn their chair towards you. Their front looks no less exotic than their back; the abundance of metal arms are even more extraordinary next to the clear lack of any legs. What you initially thought to be a chair is simply a rotating platform, sturdy enough to support the weight of the entire body of the creature. A number of cameras, which seem to be a replacement for eyes, look at you motionlessly, while the forehead of the creature has the surprisingly familiar sign \"IX\" painted on.",
"responses": [ { "text": "Who-… Wha-… What are you?", "topic": "TALK_WEAPONMASTER_INTRO_4" } ]
},
{
"id": "TALK_WEAPONMASTER_INTRO_4",
"type": "talk_topic",
"dynamic_line": "&Still completely mute, it shows you something you had initially missed. The entire wall behind the workbench is full of various weapons; some as big as modern rifles, a few as large as the machine guns installed on aircraft, and one that looks like a dismantled tank turret. Melee weapons were not forgotten, from moderately-sized swords and clubs to war hammers twice the height of a human, and what you can describe only as \"boots for mecha\". Then it points to a sign near you that shows three things: the carved pictograms of coins, some sign you are not familiar with, and a pictogram of a bullet - all things considered, this creature is either a weaponmaster, or a weapon merchant.",
"responses": [ { "text": "Woah. Can I buy one?", "topic": "TALK_WEAPONMASTER_INTRO_5" } ]
},
{
"id": "TALK_WEAPONMASTER_INTRO_5",
"type": "talk_topic",
"dynamic_line": "&They do not move and do not say anything.",
"responses": [ { "text": "Hey? Do you understand me?", "topic": "TALK_WEAPONMASTER_INTRO_6" } ]
},
{
"id": "TALK_WEAPONMASTER_INTRO_6",
"type": "talk_topic",
"dynamic_line": "&They clearly do not understand you. It seems they do not hear you either.",
"responses": [
{
"text": "[You pull off your backpack, and start to pull out items you deem worthy of trading. The weaponmaster finally looks interested.]",
"topic": "TALK_DONE",
"effect": [ { "npc_first_topic": "TALK_EXODII_WEAPONMASTER" }, "start_trade" ]
}
]
},
{
"id": "TALK_EXODII_WEAPONMASTER",
"type": "talk_topic",
"dynamic_line": [
"&The Weaponmaster seems to be tinkering on something, but turns their chair to you as you approach.",
"&The Weaponmaster seems to be cleaning some sort of weapon, but as you approach them, they signal to a bystanding worker to take the weapon, and turn to you.",
"&The Weaponmaster seems to be polishing some armor, but they turn towards you the second you enter the room."
],
"responses": [
{
"text": "[With a familiar movement, you place a variety of valuables onto the counter, proposing a trade.]",
"topic": "TALK_NONE",
"effect": [ "start_trade" ]
}
]
}
]

0 comments on commit 8697b77

Please sign in to comment.