diff options
| author | historia <[not public]> | 2026-06-19 18:20:26 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-19 18:20:26 -0400 |
| commit | 0ea4eec5dd2122c6704216971eb1249276297867 (patch) | |
| tree | 430fbbef04e837820f1d031c190f52ecd6112e25 /data/mobs | |
| parent | 3a58125d14bb307f861b38c6c5b0a63babde7e08 (diff) | |
| download | thehouseoficarus-0ea4eec5dd2122c6704216971eb1249276297867.tar.gz | |
shop fixes, 'toggle' completely removed, movement speed increased
Diffstat (limited to 'data/mobs')
| -rw-r--r-- | data/mobs/client.yaml | 231 | ||||
| -rw-r--r-- | data/mobs/estate_broker.yaml | 55 | ||||
| -rw-r--r-- | data/mobs/general_store_clerk.yaml | 85 | ||||
| -rw-r--r-- | data/mobs/guard.yaml | 92 | ||||
| -rw-r--r-- | data/mobs/sawmill_operator.yaml | 50 | ||||
| -rw-r--r-- | data/mobs/tanner.yaml | 82 | ||||
| -rw-r--r-- | data/mobs/weapons_smith.yaml | 79 |
7 files changed, 572 insertions, 102 deletions
diff --git a/data/mobs/client.yaml b/data/mobs/client.yaml index 9bcae4e..5e03cde 100644 --- a/data/mobs/client.yaml +++ b/data/mobs/client.yaml @@ -1,20 +1,219 @@ -id: client -name: The Client -description: "A shadowy figure in a dark coat. They speak in clipped, measured tones and seem to know everything about every creature in the sector." -unique: true -protected: true -behavior: client_talk +aggressive: false attack: 1 -strength: 1 defense: 1 +description: A shadowy figure in a dark coat. They speak in clipped, measured tones and seem to know everything about every creature in the sector. hp: 100 -speed: 5 -aggressive: false -respawn_ticks: 30 +id: client idle_descriptions: - - "reviews a holographic dossier" - - "marks a location on a worn star chart" - - "flips a credit chit between their fingers" - - "mutters coordinates under their breath" - - "glances at you appraisingly" - - "taps a data pad with a stylus" + - reviews a holographic dossier + - marks a location on a worn star chart + - flips a credit chit between their fingers + - mutters coordinates under their breath + - glances at you appraisingly + - taps a data pad with a stylus +name: The Client +protected: true +respawn_ticks: 30 +speed: 5 +strength: 1 +talk: + nodes: + assign_task: + action: + assign_task: true + message: '"Let me check what''s available..." The Client scrolls through their data pad.' + options: + - end: true + text: '"Understood."' + - goto: start + text: '"What else do you have?"' + buy_acid: + action: + cost: 10 + give_item: acid_vial + message: '"Handle with care." The Client passes you a vial of corrosive acid.' + options: + - condition: + min_credits: 10 + goto: buy_acid + text: '"Buy more."' + - goto: supplies + text: '"Thanks."' + buy_auto_acid: + action: + reputation_cost: 200 + set_player_flags: + assassin_unlocked_auto_acid_vial: true + message: '"Auto-acid purchased. Acid vials will no longer be consumed."' + options: + - goto: rep_shop + text: '"Thanks."' + buy_auto_salt: + action: + reputation_cost: 200 + set_player_flags: + assassin_unlocked_auto_salt: true + message: '"Auto-salt purchased. You''ll no longer consume salt on finishing blows."' + options: + - goto: rep_shop + text: '"Thanks."' + buy_extend_unlock: + action: + reputation_cost: 100 + set_player_flags: + assassin_unlocked_extend: true + message: '"You can now extend tasks via our conversation."' + options: + - goto: rep_shop + text: '"Thanks."' + buy_gloves: + action: + cost: 50 + give_item: insulated_gloves + message: '"These''ll keep the current from frying your hands." The Client tosses you a pair of thick rubber gloves.' + options: + - goto: supplies + text: '"Thanks."' + buy_salt: + action: + cost: 5 + give_item: salt + message: '"Here you go." The Client slides a packet of salt across the table.' + options: + - condition: + min_credits: 5 + goto: buy_salt + text: '"Buy more."' + - goto: supplies + text: '"Thanks."' + buy_superiors: + action: + reputation_cost: 300 + set_player_flags: + assassin_unlocked_superiors: true + message: '"Superior encounters unlocked. Watch yourself out there."' + options: + - goto: rep_shop + text: '"Thanks."' + buy_visor: + action: + cost: 75 + give_item: spectral_visor + message: '"Spectral frequency filter. Makes the invisible visible — and keeps their attacks from scrambling your brain."' + options: + - goto: supplies + text: '"Thanks."' + current_task: + message: '"Let me check your file." The Client pulls up your record.' + options: + - end: true + text: '"Okay."' + extend_confirm: + message: '"Extending your task costs 30 Reputation and adds more kills. Want to proceed?"' + options: + - goto: extend_done + text: '"Yes, extend it."' + - goto: start + text: '"Never mind."' + extend_done: + action: + extend_task: true + message: '"Done. I''ve added more targets to your contract."' + options: + - end: true + text: '"Thanks."' + rep_shop: + message: '"Here''s what I''ve got. All purchases are permanent."' + options: + - condition: + not: true + player_flag: assassin_unlocked_auto_salt + goto: buy_auto_salt + text: '"Auto-finish: Salt (200 Rep) - Never consume salt on finishing blows."' + - condition: + not: true + player_flag: assassin_unlocked_auto_acid_vial + goto: buy_auto_acid + text: '"Auto-finish: Acid Vial (200 Rep) - Never consume acid vials on finishing blows."' + - condition: + not: true + player_flag: assassin_unlocked_superiors + goto: buy_superiors + text: '"Unlock Superior Mobs (300 Rep) - Rare superior variants may spawn."' + - condition: + not: true + player_flag: assassin_unlocked_extend + goto: buy_extend_unlock + text: '"Unlock Extended Tasks (100 Rep) - Allows extending tasks."' + - goto: start + text: '"Back."' + skip_confirm: + message: '"Skipping a task costs 30 Reputation and resets your streak. Are you sure?"' + options: + - goto: skip_done + text: '"Yes, skip it."' + - goto: start + text: '"Never mind."' + skip_done: + action: + skip_task: true + message: '"Task cancelled. Your streak has been reset."' + options: + - goto: assign_task + text: '"Give me a new one."' + - end: true + text: '"Goodbye."' + start: + message: The Client looks up from their data pad. "What do you need?" + options: + - condition: + not: true + player_flag: assassin_task_mob + goto: assign_task + text: '"I need a job."' + - condition: + not: false + player_flag: assassin_task_mob + goto: current_task + text: '"What''s my current task?"' + - condition: + not: false + player_flag: assassin_task_mob + goto: skip_confirm + text: '"I want to skip my task."' + - condition: + all_of: + - not: false + player_flag: assassin_task_mob + - player_flag: assassin_unlocked_extend + value: true + goto: extend_confirm + text: '"I want to extend my task."' + - goto: rep_shop + text: '"I''d like to browse the Reputation Shop."' + - goto: supplies + text: '"I need supplies."' + - end: true + text: '"Goodbye."' + supplies: + message: '"I stock everything you need for the job. Cheap, too."' + options: + - condition: + min_credits: 5 + goto: buy_salt + text: '"Buy salt (5 credits each)."' + - condition: + min_credits: 10 + goto: buy_acid + text: '"Buy acid vial (10 credits each)."' + - condition: + min_credits: 50 + goto: buy_gloves + text: '"Buy insulated gloves (50 credits)."' + - condition: + min_credits: 75 + goto: buy_visor + text: '"Buy spectral visor (75 credits)."' + - goto: start + text: '"Back."' +unique: true diff --git a/data/mobs/estate_broker.yaml b/data/mobs/estate_broker.yaml index 0b56c4c..6698730 100644 --- a/data/mobs/estate_broker.yaml +++ b/data/mobs/estate_broker.yaml @@ -1,7 +1,54 @@ +color: "227" +description: A sharply-dressed real estate agent with a datapad and a practiced smile. id: estate_broker +idle: The estate broker flashes a professional smile. name: estate broker -behavior: estate_broker_talk +talk: + nodes: + already_own: + message: Yes, you're already a proud homeowner here! Your house is waiting for you. Use the Estate Directory to enter it, or expand your workshop. + options: + - next: start + text: Good to know. + goodbye: + message: Come back when you're ready to invest in your future! + info: + message: Each house comes with an entrance hall and a workshop equipped with a workbench. You can use the workbench with a saw to turn logs into planks, or assemble planks into furniture. Furniture can be sold for a profit or displayed in your home. Future developments will allow adding more rooms to your house. + options: + - action: + cost: 10 + set_player_flags: + owns_house_local_neighborhood: local_neighborhood + condition: + not: + player_flag: owns_house_local_neighborhood + next: purchased + text: Sounds great! I'll buy one. + - next: goodbye + text: Maybe later. + purchased: + message: Excellent! The plot is yours. You'll find your new home in the Local Neighborhood just north of here. Use the Estate Directory terminal to enter your house. The home comes with a workshop — perfect for construction projects. + options: + - next: start + text: Thanks! + start: + message: Welcome to the Local Neighborhood development! I'm selling premium housing plots for only 10 credits. Interested in buying a house? + options: + - action: + cost: 10 + set_player_flags: + owns_house_local_neighborhood: local_neighborhood + condition: + not: + player_flag: owns_house_local_neighborhood + next: purchased + text: Yes, I'd like to buy a house. + - condition: + player_flag: owns_house_local_neighborhood + next: already_own + text: I already own a house here. + - next: goodbye + text: No thanks. + - next: info + text: What do I get with a house? unique: true -color: "227" -description: "A sharply-dressed real estate agent with a datapad and a practiced smile." -idle: "The estate broker flashes a professional smile." diff --git a/data/mobs/general_store_clerk.yaml b/data/mobs/general_store_clerk.yaml index 842a98b..cc6d014 100644 --- a/data/mobs/general_store_clerk.yaml +++ b/data/mobs/general_store_clerk.yaml @@ -1,24 +1,71 @@ +aggressive: false +attack: 1 +attack_type: crush +crush_defense: 0 +defense: 1 +description: A friendly merchant with a tidy apron, standing behind a well-stocked counter. +hp: 50 id: general_store_clerk +idle_descriptions: + - arranges items on the shelves + - polishes the counter + - counts credits in the register + - greets a passerby with a nod name: Shopkeeper -description: "A friendly merchant with a tidy apron, standing behind a well-stocked counter." -behavior: general_store -unique: true protected: true -hp: 50 -attack: 1 -strength: 1 -defense: 1 -speed: 5 -aggressive: false +ranged_defense: 0 respawn_ticks: 30 -attack_type: crush -stab_defense: 0 -slash_defense: 0 -crush_defense: 0 science_defense: 0 -ranged_defense: 0 -idle_descriptions: - - "arranges items on the shelves" - - "polishes the counter" - - "counts credits in the register" - - "greets a passerby with a nod"
\ No newline at end of file +slash_defense: 0 +speed: 5 +stab_defense: 0 +strength: 1 +talk: + nodes: + shop: + action: + shop: + items: + - buy_price: 10 + item_id: fishing_rod + sell_price: 2 + - buy_price: 2 + item_id: fishing_bait + sell_price: 0 + - buy_price: 10 + item_id: matches + sell_price: 2 + - buy_price: 40 + item_id: firesteel + sell_price: 10 + - buy_price: 30 + item_id: lighter + sell_price: 7 + - buy_price: 20 + item_id: hammer + sell_price: 5 + - buy_price: 10 + item_id: knife + sell_price: 2 + - buy_price: 10 + item_id: chisel + sell_price: 2 + - buy_price: 10 + item_id: bread + sell_price: 2 + - buy_price: 20 + item_id: bowstring + sell_price: 5 + message: What would you like to buy or sell? + message: '"Take your time. What can I get you?"' + options: + - goto: start + text: '"I''m done."' + start: + message: '"Welcome to the General Store! Need any supplies?"' + options: + - goto: shop + text: '"I''d like to browse."' + - end: true + text: '"Goodbye."' +unique: true diff --git a/data/mobs/guard.yaml b/data/mobs/guard.yaml index 32617ce..04aacf5 100644 --- a/data/mobs/guard.yaml +++ b/data/mobs/guard.yaml @@ -1,26 +1,76 @@ -id: guard -name: Guard -description: "A stern-looking guard in weathered armor." -behavior: guard_talk -unique: true -protected: true +aggressive: false attack: 5 -strength: 5 +attack_bonus: 8 +attack_type: slash +crush_defense: 10 defense: 5 +description: A stern-looking guard in weathered armor. hp: 30 -speed: 5 -aggressive: false +id: guard +idle_descriptions: + - scans the area with a watchful eye + - adjusts the grip on his weapon + - nods curtly at passersby + - leans against the gate, arms folded +name: Guard +protected: true +ranged_defense: 12 respawn_ticks: 60 -attack_type: slash -attack_bonus: 8 -strength_bonus: 6 -stab_defense: 12 -slash_defense: 15 -crush_defense: 10 science_defense: -5 -ranged_defense: 12 -idle_descriptions: - - "scans the area with a watchful eye" - - "adjusts the grip on his weapon" - - "nods curtly at passersby" - - "leans against the gate, arms folded" +slash_defense: 15 +speed: 5 +stab_defense: 12 +strength: 5 +strength_bonus: 6 +talk: + nodes: + about_gate: + action: + set_player_flags: + talked_to_guard: true + message: '"Supplies. Weapons. Things you don''t need to worry about." He shifts his weight. "Tell you what — bring me some copper ore and I''ll stamp you a pass."' + options: + - end: true + text: '"I''ll be back."' + - condition: + has_item: copper_ore + goto: trade_ore + text: '"I have some right here."' + - end: true + text: '"Goodbye."' + has_pass: + action: + set_flags: + gate_open: true + message: '"Let me see that..." He examines your pass and nods. "Alright, I''ll open the gate for you."' + options: + - end: true + text: '"Thanks."' + start: + message: '"Halt! This area is restricted." The guard eyes you suspiciously.' + options: + - goto: about_gate + text: '"What''s behind that gate?"' + - condition: + has_item: copper_ore + goto: trade_ore + text: '"I have copper ore."' + - condition: + player_flag: got_pass + value: true + goto: has_pass + text: '"I have a pass."' + - end: true + text: '"Goodbye."' + trade_ore: + action: + give_item: pass_stub + set_player_flags: + got_pass: true + talked_to_guard: true + take_item: copper_ore + message: '"Good quality ore. This''ll do." He stamps a slip of paper and hands it to you. "That''s your pass. Don''t lose it."' + options: + - end: true + text: '"Thanks."' +unique: true diff --git a/data/mobs/sawmill_operator.yaml b/data/mobs/sawmill_operator.yaml index 64f6e45..99da8cf 100644 --- a/data/mobs/sawmill_operator.yaml +++ b/data/mobs/sawmill_operator.yaml @@ -1,7 +1,49 @@ +color: "186" +description: A burly worker in a thick apron, covered in sawdust. He operates the industrial sawmill. id: sawmill_operator +idle: The sawmill operator wipes sawdust from his goggles. name: sawmill operator -behavior: sawmill_operator_talk +talk: + nodes: + goodbye: + message: Come back anytime you need more planks! + prices: + message: |- + Here's what I charge per log: + Regular logs: 5 credits + Oak logs: 10 credits + Teak logs: 20 credits + Mahogany logs: 40 credits + + Want me to process your logs? + options: + - condition: + any_of: + - has_item: logs + - has_item: oak_logs + - has_item: teak_logs + - has_item: mahogany_logs + next: process + text: Yes, process all my logs. + - next: goodbye + text: No thanks. + process: + action: + sawmill: true + message: "" + start: + message: Welcome to the lumberyard! I can turn your logs into planks — for a small fee, of course. What can I do for ya? + options: + - condition: + any_of: + - has_item: logs + - has_item: oak_logs + - has_item: teak_logs + - has_item: mahogany_logs + next: prices + text: Turn all my logs into planks. + - next: prices + text: What are your prices? + - next: goodbye + text: Nothing for now. unique: true -color: "186" -description: "A burly worker in a thick apron, covered in sawdust. He operates the industrial sawmill." -idle: "The sawmill operator wipes sawdust from his goggles." diff --git a/data/mobs/tanner.yaml b/data/mobs/tanner.yaml index 0a90998..a00f497 100644 --- a/data/mobs/tanner.yaml +++ b/data/mobs/tanner.yaml @@ -1,24 +1,68 @@ +aggressive: false +attack: 1 +attack_type: crush +crush_defense: 0 +defense: 1 +description: A weathered craftsman with stained hands and a leather apron. +hp: 50 id: tanner +idle_descriptions: + - scrapes at a piece of hide + - examines a stack of leathers + - sharpens a tanning knife + - wipes sweat from his brow name: Tanner -description: "A weathered craftsman with stained hands and a leather apron." -behavior: tanner_talk -unique: true protected: true -hp: 50 -attack: 1 -strength: 1 -defense: 1 -speed: 5 -aggressive: false +ranged_defense: 0 respawn_ticks: 30 -attack_type: crush -stab_defense: 0 -slash_defense: 0 -crush_defense: 0 science_defense: 0 -ranged_defense: 0 -idle_descriptions: - - "scrapes at a piece of hide" - - "examines a stack of leathers" - - "sharpens a tanning knife" - - "wipes sweat from his brow" +slash_defense: 0 +speed: 5 +stab_defense: 0 +strength: 1 +talk: + nodes: + start: + message: '"Bring me some cowhides and I''ll tan them for you. Leather is 10 credits, hard leather is 50."' + options: + - condition: + all_of: + - has_item: cowhide + - min_credits: 10 + goto: tan_leather + text: '"Tan a cowhide into leather (10 credits)."' + - condition: + all_of: + - has_item: cowhide + - min_credits: 50 + goto: tan_hard_leather + text: '"Tan a cowhide into hard leather (50 credits)."' + - end: true + text: '"Never mind."' + tan_hard_leather: + action: + cost: 50 + give_item: hard_leather + take_item: cowhide + message: The tanner takes your cowhide and subjects it to an intense curing process. "Here's your hard leather." + options: + - condition: + has_item: cowhide + goto: start + text: '"Tan another."' + - end: true + text: '"Thanks."' + tan_leather: + action: + cost: 10 + give_item: leather + take_item: cowhide + message: The tanner takes your cowhide and works it skillfully. "Here's your leather." + options: + - condition: + has_item: cowhide + goto: start + text: '"Tan another."' + - end: true + text: '"Thanks."' +unique: true diff --git a/data/mobs/weapons_smith.yaml b/data/mobs/weapons_smith.yaml index da6ef3b..4138a1b 100644 --- a/data/mobs/weapons_smith.yaml +++ b/data/mobs/weapons_smith.yaml @@ -1,24 +1,65 @@ +aggressive: false +attack: 1 +attack_type: crush +crush_defense: 0 +defense: 1 +description: A burly smith with soot-stained hands and a heavy leather apron, standing proudly by the forge. +hp: 80 id: weapons_smith +idle_descriptions: + - hammers at a glowing blade on the anvil + - wipes soot from his brow + - inspects a finished sword + - tends to the furnace fire name: Weaponsmith -description: "A burly smith with soot-stained hands and a heavy leather apron, standing proudly by the forge." -behavior: weapons_shop -unique: true protected: true -hp: 80 -attack: 1 -strength: 1 -defense: 1 -speed: 5 -aggressive: false +ranged_defense: 0 respawn_ticks: 30 -attack_type: crush -stab_defense: 0 -slash_defense: 0 -crush_defense: 0 science_defense: 0 -ranged_defense: 0 -idle_descriptions: - - "hammers at a glowing blade on the anvil" - - "wipes soot from his brow" - - "inspects a finished sword" - - "tends to the furnace fire"
\ No newline at end of file +slash_defense: 0 +speed: 5 +stab_defense: 0 +strength: 1 +talk: + nodes: + shop: + action: + shop: + items: + - buy_price: 25 + item_id: bronze_sword + sell_price: 6 + - buy_price: 60 + item_id: iron_sword + sell_price: 15 + - buy_price: 20 + item_id: bronze_axe + sell_price: 5 + - buy_price: 50 + item_id: iron_axe + sell_price: 12 + - buy_price: 20 + item_id: bronze_pickaxe + sell_price: 5 + - buy_price: 50 + item_id: iron_pickaxe + sell_price: 12 + - buy_price: 16 + item_id: bronze_med_helm + sell_price: 4 + - buy_price: 40 + item_id: iron_med_helm + sell_price: 10 + message: The Smithy — buy or sell weapons and armor. + message: '"Here''s the current inventory. All quality guaranteed."' + options: + - goto: start + text: '"That''s all for now."' + start: + message: '"Welcome to the Smithy! Finest weapons and armor on the asteroid."' + options: + - goto: shop + text: '"Show me what you''ve got."' + - end: true + text: '"Nothing right now."' +unique: true |
