aboutsummaryrefslogtreecommitdiff
path: root/data/mobs
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-25 19:37:20 -0400
committerhistoria <[not public]>2026-06-25 19:37:20 -0400
commitc55d0e4150b23f2c5c9f96bbc3d4dc2fc6dbaa36 (patch)
treed1c02acea2b4c8d0f672c1539cfdb373b6272ed0 /data/mobs
parent068ce514ea3eebdc42b595c631b4b00ce4594577 (diff)
downloadthehouseoficarus-c55d0e4150b23f2c5c9f96bbc3d4dc2fc6dbaa36.tar.gz
feat: yaml conversation trees more robust
Diffstat (limited to 'data/mobs')
-rw-r--r--data/mobs/examples/ancient_construct.yaml (renamed from data/mobs/ancient_construct.yaml)0
-rw-r--r--data/mobs/examples/bandit.yaml (renamed from data/mobs/bandit.yaml)0
-rw-r--r--data/mobs/examples/bioengineer.yaml (renamed from data/mobs/bioengineer.yaml)0
-rw-r--r--data/mobs/examples/client.yaml (renamed from data/mobs/client.yaml)15
-rw-r--r--data/mobs/examples/corrupted_scientist.yaml (renamed from data/mobs/corrupted_scientist.yaml)0
-rw-r--r--data/mobs/examples/cow.yaml (renamed from data/mobs/cow.yaml)0
-rw-r--r--data/mobs/examples/crawler.yaml (renamed from data/mobs/crawler.yaml)0
-rw-r--r--data/mobs/examples/drone.yaml (renamed from data/mobs/drone.yaml)0
-rw-r--r--data/mobs/examples/elite_synth.yaml (renamed from data/mobs/elite_synth.yaml)0
-rw-r--r--data/mobs/examples/enforcer_bot.yaml (renamed from data/mobs/enforcer_bot.yaml)0
-rw-r--r--data/mobs/examples/estate_broker.yaml (renamed from data/mobs/estate_broker.yaml)17
-rw-r--r--data/mobs/examples/farmer.yaml (renamed from data/mobs/farmer.yaml)0
-rw-r--r--data/mobs/examples/feral_cyborg.yaml (renamed from data/mobs/feral_cyborg.yaml)0
-rw-r--r--data/mobs/examples/general_store_clerk.yaml (renamed from data/mobs/general_store_clerk.yaml)3
-rw-r--r--data/mobs/examples/ghoul.yaml (renamed from data/mobs/ghoul.yaml)0
-rw-r--r--data/mobs/examples/goblin.yaml (renamed from data/mobs/goblin.yaml)0
-rw-r--r--data/mobs/examples/greater_drone.yaml (renamed from data/mobs/greater_drone.yaml)0
-rw-r--r--data/mobs/examples/guard.yaml (renamed from data/mobs/guard.yaml)15
-rw-r--r--data/mobs/examples/heavy_mech.yaml (renamed from data/mobs/heavy_mech.yaml)0
-rw-r--r--data/mobs/examples/iron_sentinel.yaml (renamed from data/mobs/iron_sentinel.yaml)0
-rw-r--r--data/mobs/examples/lesser_drone.yaml (renamed from data/mobs/lesser_drone.yaml)0
-rw-r--r--data/mobs/examples/man.yaml (renamed from data/mobs/man.yaml)0
-rw-r--r--data/mobs/examples/molten_elemental.yaml (renamed from data/mobs/molten_elemental.yaml)0
-rw-r--r--data/mobs/examples/moss_giant.yaml (renamed from data/mobs/moss_giant.yaml)0
-rw-r--r--data/mobs/examples/mutant_rat.yaml (renamed from data/mobs/mutant_rat.yaml)0
-rw-r--r--data/mobs/examples/newbie_trainer.yaml (renamed from data/mobs/newbie_trainer.yaml)0
-rw-r--r--data/mobs/examples/phantom.yaml (renamed from data/mobs/phantom.yaml)0
-rw-r--r--data/mobs/examples/plasma_wraith.yaml (renamed from data/mobs/plasma_wraith.yaml)0
-rw-r--r--data/mobs/examples/psionic_entity.yaml (renamed from data/mobs/psionic_entity.yaml)0
-rw-r--r--data/mobs/examples/rat.yaml (renamed from data/mobs/rat.yaml)0
-rw-r--r--data/mobs/examples/sawmill_operator.yaml (renamed from data/mobs/sawmill_operator.yaml)11
-rw-r--r--data/mobs/examples/scrap_bot.yaml (renamed from data/mobs/scrap_bot.yaml)0
-rw-r--r--data/mobs/examples/security_turret.yaml (renamed from data/mobs/security_turret.yaml)0
-rw-r--r--data/mobs/examples/skeleton.yaml (renamed from data/mobs/skeleton.yaml)0
-rw-r--r--data/mobs/examples/slug.yaml (renamed from data/mobs/slug.yaml)0
-rw-r--r--data/mobs/examples/solar_panel_frame.yaml (renamed from data/mobs/solar_panel_frame.yaml)0
-rw-r--r--data/mobs/examples/tanner.yaml (renamed from data/mobs/tanner.yaml)9
-rw-r--r--data/mobs/examples/titan_sentinel.yaml (renamed from data/mobs/titan_sentinel.yaml)0
-rw-r--r--data/mobs/examples/veteran_merc.yaml (renamed from data/mobs/veteran_merc.yaml)0
-rw-r--r--data/mobs/examples/void_reaper.yaml (renamed from data/mobs/void_reaper.yaml)0
-rw-r--r--data/mobs/examples/war_drone.yaml (renamed from data/mobs/war_drone.yaml)0
-rw-r--r--data/mobs/examples/weapons_smith.yaml (renamed from data/mobs/weapons_smith.yaml)3
-rw-r--r--data/mobs/examples/zombie.yaml (renamed from data/mobs/zombie.yaml)0
-rw-r--r--data/mobs/flight_attendant.yaml32
44 files changed, 62 insertions, 43 deletions
diff --git a/data/mobs/ancient_construct.yaml b/data/mobs/examples/ancient_construct.yaml
index 190e8c2..190e8c2 100644
--- a/data/mobs/ancient_construct.yaml
+++ b/data/mobs/examples/ancient_construct.yaml
diff --git a/data/mobs/bandit.yaml b/data/mobs/examples/bandit.yaml
index 51e4b8e..51e4b8e 100644
--- a/data/mobs/bandit.yaml
+++ b/data/mobs/examples/bandit.yaml
diff --git a/data/mobs/bioengineer.yaml b/data/mobs/examples/bioengineer.yaml
index 4761991..4761991 100644
--- a/data/mobs/bioengineer.yaml
+++ b/data/mobs/examples/bioengineer.yaml
diff --git a/data/mobs/client.yaml b/data/mobs/examples/client.yaml
index 678ba41..91b6802 100644
--- a/data/mobs/client.yaml
+++ b/data/mobs/examples/client.yaml
@@ -22,8 +22,7 @@ talk:
assign_task: true
message: '"Let me check what''s available..." The Client scrolls through their data pad.'
options:
- - end: true
- text: '"Understood."'
+ - text: '"Understood."'
- goto: start
text: '"What else do you have?"'
buy_acid:
@@ -105,8 +104,7 @@ talk:
current_task:
message: '"Let me check your file." The Client pulls up your record.'
options:
- - end: true
- text: '"Okay."'
+ - text: '"Okay."'
extend_confirm:
message: '"Extending your task costs 30 Reputation and adds more kills. Want to proceed?"'
options:
@@ -119,8 +117,7 @@ talk:
extend_task: true
message: '"Done. I''ve added more targets to your contract."'
options:
- - end: true
- text: '"Thanks."'
+ - text: '"Thanks."'
rep_shop:
message: '"Here''s what I''ve got. All purchases are permanent."'
options:
@@ -160,8 +157,7 @@ talk:
options:
- goto: assign_task
text: '"Give me a new one."'
- - end: true
- text: '"Goodbye."'
+ - text: '"Goodbye."'
start:
message: The Client looks up from their data pad. "What do you need?"
options:
@@ -192,8 +188,7 @@ talk:
text: '"I''d like to browse the Reputation Shop."'
- goto: supplies
text: '"I need supplies."'
- - end: true
- text: '"Goodbye."'
+ - text: '"Goodbye."'
supplies:
message: '"I stock everything you need for the job. Cheap, too."'
options:
diff --git a/data/mobs/corrupted_scientist.yaml b/data/mobs/examples/corrupted_scientist.yaml
index 2083c03..2083c03 100644
--- a/data/mobs/corrupted_scientist.yaml
+++ b/data/mobs/examples/corrupted_scientist.yaml
diff --git a/data/mobs/cow.yaml b/data/mobs/examples/cow.yaml
index 7f1ee3c..7f1ee3c 100644
--- a/data/mobs/cow.yaml
+++ b/data/mobs/examples/cow.yaml
diff --git a/data/mobs/crawler.yaml b/data/mobs/examples/crawler.yaml
index 9021c51..9021c51 100644
--- a/data/mobs/crawler.yaml
+++ b/data/mobs/examples/crawler.yaml
diff --git a/data/mobs/drone.yaml b/data/mobs/examples/drone.yaml
index 5ac6552..5ac6552 100644
--- a/data/mobs/drone.yaml
+++ b/data/mobs/examples/drone.yaml
diff --git a/data/mobs/elite_synth.yaml b/data/mobs/examples/elite_synth.yaml
index b095716..b095716 100644
--- a/data/mobs/elite_synth.yaml
+++ b/data/mobs/examples/elite_synth.yaml
diff --git a/data/mobs/enforcer_bot.yaml b/data/mobs/examples/enforcer_bot.yaml
index 78150c3..78150c3 100644
--- a/data/mobs/enforcer_bot.yaml
+++ b/data/mobs/examples/enforcer_bot.yaml
diff --git a/data/mobs/estate_broker.yaml b/data/mobs/examples/estate_broker.yaml
index 3196012..a156e83 100644
--- a/data/mobs/estate_broker.yaml
+++ b/data/mobs/examples/estate_broker.yaml
@@ -2,12 +2,13 @@ color: "227"
description: A sharply-dressed real estate agent with a datapad and a practiced smile.
idle: The estate broker flashes a professional smile.
name: estate broker
+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.
options:
- - next: start
+ - goto: start
text: Good to know.
goodbye:
message: Come back when you're ready to invest in your future!
@@ -21,14 +22,14 @@ talk:
condition:
not: true
player_flag: owns_house_local_neighborhood
- next: purchased
+ goto: purchased
text: Sounds great! I'll buy one.
- - next: goodbye
+ - 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.
options:
- - next: start
+ - 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?
@@ -40,15 +41,15 @@ talk:
condition:
not: true
player_flag: owns_house_local_neighborhood
- next: purchased
+ goto: purchased
text: Yes, I'd like to buy a house.
- condition:
player_flag: owns_house_local_neighborhood
- next: already_own
+ goto: already_own
text: I already own a house here.
- - next: goodbye
+ - goto: goodbye
text: No thanks.
- - next: info
+ - goto: info
text: What do I get with a house?
unique: true
size: small
diff --git a/data/mobs/farmer.yaml b/data/mobs/examples/farmer.yaml
index 591f1a3..591f1a3 100644
--- a/data/mobs/farmer.yaml
+++ b/data/mobs/examples/farmer.yaml
diff --git a/data/mobs/feral_cyborg.yaml b/data/mobs/examples/feral_cyborg.yaml
index 8b30cc3..8b30cc3 100644
--- a/data/mobs/feral_cyborg.yaml
+++ b/data/mobs/examples/feral_cyborg.yaml
diff --git a/data/mobs/general_store_clerk.yaml b/data/mobs/examples/general_store_clerk.yaml
index 351b4c0..8a07191 100644
--- a/data/mobs/general_store_clerk.yaml
+++ b/data/mobs/examples/general_store_clerk.yaml
@@ -65,7 +65,6 @@ talk:
options:
- goto: shop
text: '"I''d like to browse."'
- - end: true
- text: '"Goodbye."'
+ - text: '"Goodbye."'
unique: true
size: small
diff --git a/data/mobs/ghoul.yaml b/data/mobs/examples/ghoul.yaml
index ae8fed6..ae8fed6 100644
--- a/data/mobs/ghoul.yaml
+++ b/data/mobs/examples/ghoul.yaml
diff --git a/data/mobs/goblin.yaml b/data/mobs/examples/goblin.yaml
index a02c112..a02c112 100644
--- a/data/mobs/goblin.yaml
+++ b/data/mobs/examples/goblin.yaml
diff --git a/data/mobs/greater_drone.yaml b/data/mobs/examples/greater_drone.yaml
index 11cf8e2..11cf8e2 100644
--- a/data/mobs/greater_drone.yaml
+++ b/data/mobs/examples/greater_drone.yaml
diff --git a/data/mobs/guard.yaml b/data/mobs/examples/guard.yaml
index 46c235c..7bd7d19 100644
--- a/data/mobs/guard.yaml
+++ b/data/mobs/examples/guard.yaml
@@ -29,22 +29,19 @@ talk:
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."'
+ - text: '"I''ll be back."'
- condition:
has_item: copper_ore
goto: trade_ore
text: '"I have some right here."'
- - end: true
- text: '"Goodbye."'
+ - 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."'
+ - text: '"Thanks."'
start:
message: '"Halt! This area is restricted." The guard eyes you suspiciously.'
options:
@@ -59,8 +56,7 @@ talk:
value: true
goto: has_pass
text: '"I have a pass."'
- - end: true
- text: '"Goodbye."'
+ - text: '"Goodbye."'
trade_ore:
action:
give_item: pass_stub
@@ -70,7 +66,6 @@ talk:
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."'
+ - text: '"Thanks."'
unique: true
size: medium
diff --git a/data/mobs/heavy_mech.yaml b/data/mobs/examples/heavy_mech.yaml
index e2f5f5a..e2f5f5a 100644
--- a/data/mobs/heavy_mech.yaml
+++ b/data/mobs/examples/heavy_mech.yaml
diff --git a/data/mobs/iron_sentinel.yaml b/data/mobs/examples/iron_sentinel.yaml
index bf8b9b5..bf8b9b5 100644
--- a/data/mobs/iron_sentinel.yaml
+++ b/data/mobs/examples/iron_sentinel.yaml
diff --git a/data/mobs/lesser_drone.yaml b/data/mobs/examples/lesser_drone.yaml
index c9e50a5..c9e50a5 100644
--- a/data/mobs/lesser_drone.yaml
+++ b/data/mobs/examples/lesser_drone.yaml
diff --git a/data/mobs/man.yaml b/data/mobs/examples/man.yaml
index 8478f41..8478f41 100644
--- a/data/mobs/man.yaml
+++ b/data/mobs/examples/man.yaml
diff --git a/data/mobs/molten_elemental.yaml b/data/mobs/examples/molten_elemental.yaml
index 9c46ccb..9c46ccb 100644
--- a/data/mobs/molten_elemental.yaml
+++ b/data/mobs/examples/molten_elemental.yaml
diff --git a/data/mobs/moss_giant.yaml b/data/mobs/examples/moss_giant.yaml
index f19f0a3..f19f0a3 100644
--- a/data/mobs/moss_giant.yaml
+++ b/data/mobs/examples/moss_giant.yaml
diff --git a/data/mobs/mutant_rat.yaml b/data/mobs/examples/mutant_rat.yaml
index 7836ef9..7836ef9 100644
--- a/data/mobs/mutant_rat.yaml
+++ b/data/mobs/examples/mutant_rat.yaml
diff --git a/data/mobs/newbie_trainer.yaml b/data/mobs/examples/newbie_trainer.yaml
index 3897dba..3897dba 100644
--- a/data/mobs/newbie_trainer.yaml
+++ b/data/mobs/examples/newbie_trainer.yaml
diff --git a/data/mobs/phantom.yaml b/data/mobs/examples/phantom.yaml
index d871b76..d871b76 100644
--- a/data/mobs/phantom.yaml
+++ b/data/mobs/examples/phantom.yaml
diff --git a/data/mobs/plasma_wraith.yaml b/data/mobs/examples/plasma_wraith.yaml
index c4ced2b..c4ced2b 100644
--- a/data/mobs/plasma_wraith.yaml
+++ b/data/mobs/examples/plasma_wraith.yaml
diff --git a/data/mobs/psionic_entity.yaml b/data/mobs/examples/psionic_entity.yaml
index 1c518bf..1c518bf 100644
--- a/data/mobs/psionic_entity.yaml
+++ b/data/mobs/examples/psionic_entity.yaml
diff --git a/data/mobs/rat.yaml b/data/mobs/examples/rat.yaml
index 4265674..4265674 100644
--- a/data/mobs/rat.yaml
+++ b/data/mobs/examples/rat.yaml
diff --git a/data/mobs/sawmill_operator.yaml b/data/mobs/examples/sawmill_operator.yaml
index 81521bd..b70362f 100644
--- a/data/mobs/sawmill_operator.yaml
+++ b/data/mobs/examples/sawmill_operator.yaml
@@ -2,6 +2,7 @@ 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.
name: sawmill operator
+protected: true
talk:
nodes:
goodbye:
@@ -22,9 +23,9 @@ talk:
- has_item: oak_logs
- has_item: teak_logs
- has_item: mahogany_logs
- next: process
+ goto: process
text: Yes, process all my logs.
- - next: goodbye
+ - goto: goodbye
text: No thanks.
process:
action:
@@ -39,11 +40,11 @@ talk:
- has_item: oak_logs
- has_item: teak_logs
- has_item: mahogany_logs
- next: prices
+ goto: prices
text: Turn all my logs into planks.
- - next: prices
+ - goto: prices
text: What are your prices?
- - next: goodbye
+ - goto: goodbye
text: Nothing for now.
unique: true
size: small
diff --git a/data/mobs/scrap_bot.yaml b/data/mobs/examples/scrap_bot.yaml
index a8b34d8..a8b34d8 100644
--- a/data/mobs/scrap_bot.yaml
+++ b/data/mobs/examples/scrap_bot.yaml
diff --git a/data/mobs/security_turret.yaml b/data/mobs/examples/security_turret.yaml
index 9929106..9929106 100644
--- a/data/mobs/security_turret.yaml
+++ b/data/mobs/examples/security_turret.yaml
diff --git a/data/mobs/skeleton.yaml b/data/mobs/examples/skeleton.yaml
index ba82afc..ba82afc 100644
--- a/data/mobs/skeleton.yaml
+++ b/data/mobs/examples/skeleton.yaml
diff --git a/data/mobs/slug.yaml b/data/mobs/examples/slug.yaml
index 64082ec..64082ec 100644
--- a/data/mobs/slug.yaml
+++ b/data/mobs/examples/slug.yaml
diff --git a/data/mobs/solar_panel_frame.yaml b/data/mobs/examples/solar_panel_frame.yaml
index 90269f2..90269f2 100644
--- a/data/mobs/solar_panel_frame.yaml
+++ b/data/mobs/examples/solar_panel_frame.yaml
diff --git a/data/mobs/tanner.yaml b/data/mobs/examples/tanner.yaml
index 1325468..2e5d89a 100644
--- a/data/mobs/tanner.yaml
+++ b/data/mobs/examples/tanner.yaml
@@ -36,8 +36,7 @@ talk:
- min_credits: 50
goto: tan_hard_leather
text: '"Tan a cowhide into hard leather (50 credits)."'
- - end: true
- text: '"Never mind."'
+ - text: '"Never mind."'
tan_hard_leather:
action:
cost: 50
@@ -49,8 +48,7 @@ talk:
has_item: cowhide
goto: start
text: '"Tan another."'
- - end: true
- text: '"Thanks."'
+ - text: '"Thanks."'
tan_leather:
action:
cost: 10
@@ -62,7 +60,6 @@ talk:
has_item: cowhide
goto: start
text: '"Tan another."'
- - end: true
- text: '"Thanks."'
+ - text: '"Thanks."'
unique: true
size: small
diff --git a/data/mobs/titan_sentinel.yaml b/data/mobs/examples/titan_sentinel.yaml
index 32ddcc2..32ddcc2 100644
--- a/data/mobs/titan_sentinel.yaml
+++ b/data/mobs/examples/titan_sentinel.yaml
diff --git a/data/mobs/veteran_merc.yaml b/data/mobs/examples/veteran_merc.yaml
index 88238b6..88238b6 100644
--- a/data/mobs/veteran_merc.yaml
+++ b/data/mobs/examples/veteran_merc.yaml
diff --git a/data/mobs/void_reaper.yaml b/data/mobs/examples/void_reaper.yaml
index e54d776..e54d776 100644
--- a/data/mobs/void_reaper.yaml
+++ b/data/mobs/examples/void_reaper.yaml
diff --git a/data/mobs/war_drone.yaml b/data/mobs/examples/war_drone.yaml
index 587ad09..587ad09 100644
--- a/data/mobs/war_drone.yaml
+++ b/data/mobs/examples/war_drone.yaml
diff --git a/data/mobs/weapons_smith.yaml b/data/mobs/examples/weapons_smith.yaml
index 2af6299..0ba8237 100644
--- a/data/mobs/weapons_smith.yaml
+++ b/data/mobs/examples/weapons_smith.yaml
@@ -59,7 +59,6 @@ talk:
options:
- goto: shop
text: '"Show me what you''ve got."'
- - end: true
- text: '"Nothing right now."'
+ - text: '"Nothing right now."'
unique: true
size: small
diff --git a/data/mobs/zombie.yaml b/data/mobs/examples/zombie.yaml
index f5989e0..f5989e0 100644
--- a/data/mobs/zombie.yaml
+++ b/data/mobs/examples/zombie.yaml
diff --git a/data/mobs/flight_attendant.yaml b/data/mobs/flight_attendant.yaml
new file mode 100644
index 0000000..81bc3bf
--- /dev/null
+++ b/data/mobs/flight_attendant.yaml
@@ -0,0 +1,32 @@
+name: Flight attendant
+description: A smiling flight attendant in a crisp uniform, ready to assist passengers.
+unique: false
+protected: true
+idle_descriptions:
+ - straightens a seat cushion
+ - checks the cabin for loose items
+ - adjusts her name badge
+ - smiles politely at passengers
+talk:
+ nodes:
+ start:
+ message: '"Welcome aboard! Is there anything I can help you with?"'
+ options:
+ - text: '"I''m ready to disembark."'
+ goto: disembark
+ condition:
+ player_flag: 1001_look_sign
+ - text: '"What should I do?"'
+ goto: check_sign
+ condition:
+ player_flag: 1001_look_sign
+ not: true
+ - text: '"Goodbye."'
+ disembark:
+ message: '"Of course! Please proceed down the stairs when you''re ready. Have a wonderful stay."'
+ options:
+ - text: '"Thanks!"'
+ check_sign:
+ message: '"Before we land, please review the safety information posted on the wall. Just type {11 bold}look sign{/} to see it."'
+ options:
+ - text: '"Okay, I''ll take a look."'