From 52b333fa48572e0d3aeab5dea8ab32be5ee800b8 Mon Sep 17 00:00:00 2001 From: AI Agent Date: Tue, 17 Mar 2026 13:34:36 -0600 Subject: [PATCH] Update world data with dialogue, currency, and shop inventories --- PLANNED.md | 7 ++++--- world/lawold/npcs/francis.toml | 6 ++++++ world/lawold/npcs/gauwis.toml | 5 +++++ world/lawold/npcs/saege.toml | 5 +++++ world/lawold/npcs/sunna.toml | 6 ++++++ world/lawold/npcs/thosve.toml | 5 +++++ world/lawold/npcs/wisym.toml | 11 +++++++++++ world/lawold/npcs/wyna.toml | 5 +++++ 8 files changed, 47 insertions(+), 3 deletions(-) diff --git a/PLANNED.md b/PLANNED.md index 270c513..acdaf06 100644 --- a/PLANNED.md +++ b/PLANNED.md @@ -1,6 +1,8 @@ -# Planned Features +## Completed -Tracking document for features and content planned for the MUD server. No implementation order implied unless noted. Grouped by difficulty (effort / scope). +- **Shops / economy** — NPCs that buy and sell; currency and pricing. +- **Enhanced NPC Interactions** — Keyword-based dialogue system. +- **Aggressive NPC AI** — NPCs with Aggressive attitude now correctly initiate combat. ## Easy @@ -18,7 +20,6 @@ New state, commands, or mechanics with bounded scope. - **Weather** — Weather system (e.g., rain, snow, fog) affecting areas or atmosphere; scope TBD. - **Day/night or time of day** — Time cycle affecting room descriptions, spawns, or NPC behavior; lighter than full weather. -- **Shops / economy** — NPCs that buy and sell; currency and pricing (new fields/tables, trade commands). - **Quests or objectives** — Simple “kill X” / “bring Y” goals; quest state in DB and hooks in combat/loot/NPCs. - **Player parties** — Group formation, shared objectives, party-only chat or visibility; new state and commands. - **PvP** — Player-vs-player combat; consent/flagging, safe zones, and balance TBD. diff --git a/world/lawold/npcs/francis.toml b/world/lawold/npcs/francis.toml index 5cfc338..e3d9a08 100644 --- a/world/lawold/npcs/francis.toml +++ b/world/lawold/npcs/francis.toml @@ -4,3 +4,9 @@ room = "lawold:senate_hall" race = "race:human" class = "class:mage" base_attitude = "neutral" +gold = 1 +silver = 5 + +[dialogue] +greeting = "Welcome to the senate hall. Just stay out of my way." +keywords = { sister = "She was my kin. My flesh and blood. And she left me for dead.", revenge = "One day, she will understand the depth of her betrayal." } diff --git a/world/lawold/npcs/gauwis.toml b/world/lawold/npcs/gauwis.toml index c243718..382f074 100644 --- a/world/lawold/npcs/gauwis.toml +++ b/world/lawold/npcs/gauwis.toml @@ -4,3 +4,8 @@ room = "lawold:central_bridge" race = "race:human" class = "class:warrior" base_attitude = "neutral" +gold = 1 + +[dialogue] +greeting = "Stay sharp. These lands are dangerous." +keywords = { ogres = "They are a blight. A plague on this world.", destroy = "Every one of them must be wiped from existence." } diff --git a/world/lawold/npcs/saege.toml b/world/lawold/npcs/saege.toml index 414c4af..1e9ed4a 100644 --- a/world/lawold/npcs/saege.toml +++ b/world/lawold/npcs/saege.toml @@ -3,3 +3,8 @@ description = "Saege has auburn hair and blue eyes. He wears modest garments and room = "lawold:well_market_square" race = "race:human" base_attitude = "friendly" +silver = 10 + +[dialogue] +greeting = "Greetings, traveler. May the iron amulet protect you." +keywords = { cult = "Cult? You must be misinformed. We are but humble followers.", god = "The dragon god of old is powerful beyond your reckoning." } diff --git a/world/lawold/npcs/sunna.toml b/world/lawold/npcs/sunna.toml index ed53c56..1f7d600 100644 --- a/world/lawold/npcs/sunna.toml +++ b/world/lawold/npcs/sunna.toml @@ -4,3 +4,9 @@ room = "lawold:palace_village_palace_gate" race = "race:human" class = "class:warden" base_attitude = "friendly" +silver = 2 +copper = 5 + +[dialogue] +greeting = "Greetings. I am Sunna, a warden of the palace gate." +keywords = { prove = "I must prove that I am worthy of this post.", peers = "Many of my peers think I am too soft for this work." } diff --git a/world/lawold/npcs/thosve.toml b/world/lawold/npcs/thosve.toml index a289831..a30bb05 100644 --- a/world/lawold/npcs/thosve.toml +++ b/world/lawold/npcs/thosve.toml @@ -4,3 +4,8 @@ room = "lawold:artists_district_lane" race = "race:dwarf" class = "class:warrior" base_attitude = "friendly" +silver = 3 + +[dialogue] +greeting = "Greetings. I am Thosve." +keywords = { amends = "We all carry burdens. Some heavier than others.", life = "It was a mistake. But it cost a life. A life I cannot give back." } diff --git a/world/lawold/npcs/wisym.toml b/world/lawold/npcs/wisym.toml index ad27d1d..e681614 100644 --- a/world/lawold/npcs/wisym.toml +++ b/world/lawold/npcs/wisym.toml @@ -3,3 +3,14 @@ description = "Wisym is fair in appearance, with silver hair and sharp green eye room = "lawold:saints_market_plaza" race = "race:human" base_attitude = "neutral" +silver = 20 + +[dialogue] +greeting = "Welcome to my shop. I have the freshest bread in Lawold." +keywords = { bread = "My bread is hearty and stays fresh for days. The guards love it." } + +[shop] +buys = ["food"] +sells = ["town:healing_potion"] +markup = 1.5 +markdown = 0.5 diff --git a/world/lawold/npcs/wyna.toml b/world/lawold/npcs/wyna.toml index 1ddf8f4..85cf4e5 100644 --- a/world/lawold/npcs/wyna.toml +++ b/world/lawold/npcs/wyna.toml @@ -4,3 +4,8 @@ room = "lawold:senate_plaza" race = "race:human" class = "class:rogue" base_attitude = "friendly" +silver = 5 + +[dialogue] +greeting = "It is good to see the sun again." +keywords = { imprisoned = "It felt like a long, dark dream.", century = "A hundred years have passed since I last saw this world." }