aboutsummaryrefslogtreecommitdiff
path: root/data/mobs/examples
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-07-01 16:37:45 -0400
committerhistoria <[not public]>2026-07-01 16:37:45 -0400
commite6b4cb9f5816c6ee239233bc85f74ee446a161c2 (patch)
tree1c3bf71c8b7f095baae989afe5e33183a7ed3929 /data/mobs/examples
parent649ef4b7416ce7053145878841fc9b0bff2f5fec (diff)
downloadthehouseoficarus-e6b4cb9f5816c6ee239233bc85f74ee446a161c2.tar.gz
feat: shop system overhauled, gui conversation tree editor overhauled
Diffstat (limited to 'data/mobs/examples')
-rw-r--r--data/mobs/examples/client.yaml62
-rw-r--r--data/mobs/examples/estate_broker.yaml19
-rw-r--r--data/mobs/examples/general_store_clerk.yaml67
-rw-r--r--data/mobs/examples/guard.yaml12
-rw-r--r--data/mobs/examples/sawmill_operator.yaml24
-rw-r--r--data/mobs/examples/tanner.yaml13
-rw-r--r--data/mobs/examples/weapons_smith.yaml58
7 files changed, 127 insertions, 128 deletions
diff --git a/data/mobs/examples/client.yaml b/data/mobs/examples/client.yaml
index 91b6802..0d5f27d 100644
--- a/data/mobs/examples/client.yaml
+++ b/data/mobs/examples/client.yaml
@@ -19,17 +19,18 @@ talk:
nodes:
assign_task:
action:
- assign_task: true
- message: '"Let me check what''s available..." The Client scrolls through their data pad.'
+ messages:
+ - '"Let me check what''s available..." The Client scrolls through their data pad.'
options:
- text: '"Understood."'
- goto: start
text: '"What else do you have?"'
buy_acid:
action:
- cost: 10
+ credits: -10
give_item: acid_vial
- message: '"Handle with care." The Client passes you a vial of corrosive acid.'
+ messages:
+ - '"Handle with care." The Client passes you a vial of corrosive acid.'
options:
- condition:
min_credits: 10
@@ -42,7 +43,8 @@ talk:
reputation_cost: 200
set_player_flags:
assassin_unlocked_auto_acid_vial: true
- message: '"Auto-acid purchased. Acid vials will no longer be consumed."'
+ messages:
+ - '"Auto-acid purchased. Acid vials will no longer be consumed."'
options:
- goto: rep_shop
text: '"Thanks."'
@@ -51,7 +53,8 @@ talk:
reputation_cost: 200
set_player_flags:
assassin_unlocked_auto_salt: true
- message: '"Auto-salt purchased. You''ll no longer consume salt on finishing blows."'
+ messages:
+ - '"Auto-salt purchased. You''ll no longer consume salt on finishing blows."'
options:
- goto: rep_shop
text: '"Thanks."'
@@ -60,23 +63,26 @@ talk:
reputation_cost: 100
set_player_flags:
assassin_unlocked_extend: true
- message: '"You can now extend tasks via our conversation."'
+ messages:
+ - '"You can now extend tasks via our conversation."'
options:
- goto: rep_shop
text: '"Thanks."'
buy_gloves:
action:
- cost: 50
+ credits: -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.'
+ messages:
+ - '"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
+ credits: -5
give_item: salt
- message: '"Here you go." The Client slides a packet of salt across the table.'
+ messages:
+ - '"Here you go." The Client slides a packet of salt across the table.'
options:
- condition:
min_credits: 5
@@ -89,24 +95,28 @@ talk:
reputation_cost: 300
set_player_flags:
assassin_unlocked_superiors: true
- message: '"Superior encounters unlocked. Watch yourself out there."'
+ messages:
+ - '"Superior encounters unlocked. Watch yourself out there."'
options:
- goto: rep_shop
text: '"Thanks."'
buy_visor:
action:
- cost: 75
+ credits: -75
give_item: spectral_visor
- message: '"Spectral frequency filter. Makes the invisible visible — and keeps their attacks from scrambling your brain."'
+ messages:
+ - '"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.'
+ messages:
+ - '"Let me check your file." The Client pulls up your record.'
options:
- text: '"Okay."'
extend_confirm:
- message: '"Extending your task costs 30 Reputation and adds more kills. Want to proceed?"'
+ messages:
+ - '"Extending your task costs 30 Reputation and adds more kills. Want to proceed?"'
options:
- goto: extend_done
text: '"Yes, extend it."'
@@ -114,12 +124,13 @@ talk:
text: '"Never mind."'
extend_done:
action:
- extend_task: true
- message: '"Done. I''ve added more targets to your contract."'
+ messages:
+ - '"Done. I''ve added more targets to your contract."'
options:
- text: '"Thanks."'
rep_shop:
- message: '"Here''s what I''ve got. All purchases are permanent."'
+ messages:
+ - '"Here''s what I''ve got. All purchases are permanent."'
options:
- condition:
not: true
@@ -144,7 +155,8 @@ talk:
- goto: start
text: '"Back."'
skip_confirm:
- message: '"Skipping a task costs 30 Reputation and resets your streak. Are you sure?"'
+ messages:
+ - '"Skipping a task costs 30 Reputation and resets your streak. Are you sure?"'
options:
- goto: skip_done
text: '"Yes, skip it."'
@@ -152,14 +164,15 @@ talk:
text: '"Never mind."'
skip_done:
action:
- skip_task: true
- message: '"Task cancelled. Your streak has been reset."'
+ messages:
+ - '"Task cancelled. Your streak has been reset."'
options:
- goto: assign_task
text: '"Give me a new one."'
- text: '"Goodbye."'
start:
- message: The Client looks up from their data pad. "What do you need?"
+ messages:
+ - The Client looks up from their data pad. "What do you need?"
options:
- condition:
not: true
@@ -190,7 +203,8 @@ talk:
text: '"I need supplies."'
- text: '"Goodbye."'
supplies:
- message: '"I stock everything you need for the job. Cheap, too."'
+ messages:
+ - '"I stock everything you need for the job. Cheap, too."'
options:
- condition:
min_credits: 5
diff --git a/data/mobs/examples/estate_broker.yaml b/data/mobs/examples/estate_broker.yaml
index 68c3eb6..b095214 100644
--- a/data/mobs/examples/estate_broker.yaml
+++ b/data/mobs/examples/estate_broker.yaml
@@ -6,17 +6,20 @@ protected: true
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.
+ messages:
+ - 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:
- goto: start
text: Good to know.
goodbye:
- message: Come back when you're ready to invest in your future!
+ messages:
+ - 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.
+ messages:
+ - 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
+ credits: -10
set_player_flags:
owns_house_local_neighborhood: local_neighborhood
condition:
@@ -27,15 +30,17 @@ talk:
- goto: 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.
+ messages:
+ - 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:
- goto: 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?
+ messages:
+ - 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
+ credits: -10
set_player_flags:
owns_house_local_neighborhood: local_neighborhood
condition:
diff --git a/data/mobs/examples/general_store_clerk.yaml b/data/mobs/examples/general_store_clerk.yaml
index 8a07191..bee395d 100644
--- a/data/mobs/examples/general_store_clerk.yaml
+++ b/data/mobs/examples/general_store_clerk.yaml
@@ -19,52 +19,35 @@ slash_defense: 0
speed: 5
stab_defense: 0
strength: 1
+shop:
+ message: '"Welcome to the General Store! Have a look around."'
+ items:
+ - item_id: fishing_rod
+ stock: 10
+ - item_id: fishing_bait
+ stock: 1000
+ - item_id: matches
+ stock: 20
+ - item_id: firesteel
+ stock: 10
+ - item_id: lighter
+ stock: 10
+ - item_id: hammer
+ stock: 10
+ - item_id: knife
+ stock: 10
+ - item_id: chisel
+ stock: 10
+ - item_id: bread
+ stock: 30
+ - item_id: bowstring
+ stock: 50
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?"'
+ messages:
+ - '"Welcome to the General Store! Type ''list'' to see my wares."'
options:
- - goto: shop
- text: '"I''d like to browse."'
- text: '"Goodbye."'
unique: true
size: small
diff --git a/data/mobs/examples/guard.yaml b/data/mobs/examples/guard.yaml
index 7bd7d19..cba448b 100644
--- a/data/mobs/examples/guard.yaml
+++ b/data/mobs/examples/guard.yaml
@@ -27,7 +27,8 @@ talk:
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."'
+ messages:
+ - '"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:
- text: '"I''ll be back."'
- condition:
@@ -39,11 +40,13 @@ talk:
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."'
+ messages:
+ - '"Let me see that..." He examines your pass and nods. "Alright, I''ll open the gate for you."'
options:
- text: '"Thanks."'
start:
- message: '"Halt! This area is restricted." The guard eyes you suspiciously.'
+ messages:
+ - '"Halt! This area is restricted." The guard eyes you suspiciously.'
options:
- goto: about_gate
text: '"What''s behind that gate?"'
@@ -64,7 +67,8 @@ talk:
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."'
+ messages:
+ - '"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:
- text: '"Thanks."'
unique: true
diff --git a/data/mobs/examples/sawmill_operator.yaml b/data/mobs/examples/sawmill_operator.yaml
index 7abd881..366cfe3 100644
--- a/data/mobs/examples/sawmill_operator.yaml
+++ b/data/mobs/examples/sawmill_operator.yaml
@@ -6,16 +6,18 @@ protected: true
talk:
nodes:
goodbye:
- message: Come back anytime you need more planks!
+ messages:
+ - 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
+ messages:
+ - |-
+ 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?
+ Want me to process your logs?
options:
- condition:
any_of:
@@ -30,9 +32,11 @@ talk:
process:
action:
sawmill: true
- message: ""
+ messages:
+ - ""
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?
+ messages:
+ - 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:
diff --git a/data/mobs/examples/tanner.yaml b/data/mobs/examples/tanner.yaml
index 2e5d89a..4c1f38b 100644
--- a/data/mobs/examples/tanner.yaml
+++ b/data/mobs/examples/tanner.yaml
@@ -22,7 +22,8 @@ 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."'
+ messages:
+ - '"Bring me some cowhides and I''ll tan them for you. Leather is 10 credits, hard leather is 50."'
options:
- condition:
all_of:
@@ -39,10 +40,11 @@ talk:
- text: '"Never mind."'
tan_hard_leather:
action:
- cost: 50
+ credits: -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."
+ messages:
+ - The tanner takes your cowhide and subjects it to an intense curing process. "Here's your hard leather."
options:
- condition:
has_item: cowhide
@@ -51,10 +53,11 @@ talk:
- text: '"Thanks."'
tan_leather:
action:
- cost: 10
+ credits: -10
give_item: leather
take_item: cowhide
- message: The tanner takes your cowhide and works it skillfully. "Here's your leather."
+ messages:
+ - The tanner takes your cowhide and works it skillfully. "Here's your leather."
options:
- condition:
has_item: cowhide
diff --git a/data/mobs/examples/weapons_smith.yaml b/data/mobs/examples/weapons_smith.yaml
index 0ba8237..b12a543 100644
--- a/data/mobs/examples/weapons_smith.yaml
+++ b/data/mobs/examples/weapons_smith.yaml
@@ -19,46 +19,32 @@ slash_defense: 0
speed: 5
stab_defense: 0
strength: 1
+shop:
+ message: The Smithy — buy or sell weapons and armor.
+ buys_anything: false
+ items:
+ - item_id: bronze_sword
+ stock: 10
+ - item_id: iron_sword
+ stock: 5
+ - item_id: bronze_axe
+ stock: 10
+ - item_id: iron_axe
+ stock: 5
+ - item_id: bronze_pickaxe
+ stock: 10
+ - item_id: iron_pickaxe
+ stock: 5
+ - item_id: bronze_med_helm
+ stock: 10
+ - item_id: iron_med_helm
+ stock: 5
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."'
+ messages:
+ - '"Welcome to the Smithy! Type ''list'' to see my wares."'
options:
- - goto: shop
- text: '"Show me what you''ve got."'
- text: '"Nothing right now."'
unique: true
size: small