diff --git a/world/classes/warden.toml b/world/classes/warden.toml new file mode 100644 index 0000000..d8c64dc --- /dev/null +++ b/world/classes/warden.toml @@ -0,0 +1,13 @@ +name = "Warden" +description = "Vigilant defenders of the forest, wardens balance physical prowess with nature's magic." +guild = "guild:druids_guild" + +[base_stats] +max_hp = 110 +attack = 10 +defense = 12 + +[growth] +hp_per_level = 12 +attack_per_level = 2 +defense_per_level = 3 diff --git a/world/guilds/druids_guild.toml b/world/guilds/druids_guild.toml new file mode 100644 index 0000000..7f5f1a1 --- /dev/null +++ b/world/guilds/druids_guild.toml @@ -0,0 +1,16 @@ +name = "Druids Guild" +description = "Guardians of the forest and masters of nature's magic. Members focus on defense, healing, and manipulating the natural world." +max_level = 50 +resource = "mana" +base_mana = 50 +base_endurance = 20 +spells = ["spell:entangle", "spell:barkskin", "spell:thorns", "spell:heal"] +min_player_level = 0 +race_restricted = [] + +[growth] +hp_per_level = 5 +mana_per_level = 5 +endurance_per_level = 2 +attack_per_level = 2 +defense_per_level = 3 diff --git a/world/races/sylvan.toml b/world/races/sylvan.toml new file mode 100644 index 0000000..9b3d99c --- /dev/null +++ b/world/races/sylvan.toml @@ -0,0 +1,46 @@ +name = "Sylvan" +description = "Graceful and elegant, the Sylvan are children of the forest, deeply connected to the natural world. They possess a natural affinity for magic and a deep understanding of nature's secrets." +metarace = "fey" + +[stats] +strength = -1 +dexterity = 2 +constitution = -1 +intelligence = 2 +wisdom = 3 +perception = 2 +charisma = 1 + +[body] +size = "medium" +weight = 120 +slots = ["head", "neck", "torso", "arms", "hands", "waist", "legs", "feet", "finger_left", "finger_right", "main_hand", "off_hand"] + +[natural] +armor = 1 + +traits = ["nature_affinity", "low_light_vision", "fey_ancestry", "speak_with_animals"] +disadvantages = ["vulnerable_to_cold_iron", "conspicuous_in_non-forest_areas"] + +[resistances] +magical = 0.5 +physical = 1.0 +poison = 0.5 + +[regen] +hp = 1.2 +mana = 1.5 +endurance = 1.0 + +[guild_compatibility] +good = ["druid", "ranger", "mage"] +average = ["cleric", "thief"] +poor = ["warrior", "berserker"] +restricted = ["monk"] + +[misc] +lifespan = 1000 +diet = "omnivore" +xp_rate = 1.0 +natural_terrain = ["forests", "glades"] +vision = ["normal", "low_light_vision"] diff --git a/world/spells/barkskin.toml b/world/spells/barkskin.toml new file mode 100644 index 0000000..92e2216 --- /dev/null +++ b/world/spells/barkskin.toml @@ -0,0 +1,11 @@ +name = "Barkskin" +description = "Your skin becomes as hard as bark, increasing your defense for a short period." +spell_type = "heal" +heal = 0 +damage_type = "magical" +cost_mana = 20 +cooldown_ticks = 10 +effect = "barkskin" +effect_duration = 10 +effect_magnitude = 10 +min_guild_level = 5 diff --git a/world/spells/entangle.toml b/world/spells/entangle.toml new file mode 100644 index 0000000..56bf0c8 --- /dev/null +++ b/world/spells/entangle.toml @@ -0,0 +1,11 @@ +name = "Entangle" +description = "Vines and branches reach out to restrain your target, reducing their ability to attack or defend." +spell_type = "offensive" +damage = 5 +damage_type = "physical" +cost_mana = 15 +cooldown_ticks = 3 +effect = "entangled" +effect_duration = 5 +effect_magnitude = 5 +min_guild_level = 1 diff --git a/world/spells/thorns.toml b/world/spells/thorns.toml new file mode 100644 index 0000000..0b67a79 --- /dev/null +++ b/world/spells/thorns.toml @@ -0,0 +1,11 @@ +name = "Thorns" +description = "Vicious thorns grow from your body, damaging anyone who attacks you." +spell_type = "offensive" +damage = 5 +damage_type = "physical" +cost_mana = 10 +cooldown_ticks = 5 +effect = "thorns" +effect_duration = 10 +effect_magnitude = 5 +min_guild_level = 10 diff --git a/world/town/npcs/aristocrat.toml b/world/town/npcs/aristocrat.toml new file mode 100644 index 0000000..bd05fc4 --- /dev/null +++ b/world/town/npcs/aristocrat.toml @@ -0,0 +1,14 @@ +name = "Wealthy Aristocrat" +description = "A noble dressed in fine silks and velvet, turning their nose up at commoners." +room = "town:wealthy_district" +base_attitude = "neutral" +class = "class:peasant" + +[stats] +hp = 30 +attack = 2 +defense = 5 +xp = 15 + +[dialogue] +greeting = "Do you mind? I am expecting someone important." diff --git a/world/town/npcs/armorer.toml b/world/town/npcs/armorer.toml new file mode 100644 index 0000000..42f1209 --- /dev/null +++ b/world/town/npcs/armorer.toml @@ -0,0 +1,14 @@ +name = "Quartermaster Kael" +description = "A grizzled veteran with a missing eye, currently meticulously sharpening a broadsword." +room = "town:armory" +base_attitude = "neutral" +class = "class:warrior" + +[stats] +hp = 200 +attack = 18 +defense = 25 +xp = 300 + +[dialogue] +greeting = "Keep your hands off the merchandise unless you're buying." diff --git a/world/town/npcs/high_priest.toml b/world/town/npcs/high_priest.toml new file mode 100644 index 0000000..e6a7431 --- /dev/null +++ b/world/town/npcs/high_priest.toml @@ -0,0 +1,14 @@ +name = "High Priestess Elara" +description = "An elderly woman radiating a calm, authoritative aura. Her white robes are immaculate." +room = "town:inner_sanctum" +base_attitude = "friendly" +class = "class:cleric" + +[stats] +hp = 120 +attack = 8 +defense = 20 +xp = 250 + +[dialogue] +greeting = "The Light welcomes all who seek its warmth." diff --git a/world/town/npcs/magic_merchant.toml b/world/town/npcs/magic_merchant.toml new file mode 100644 index 0000000..efc73ea --- /dev/null +++ b/world/town/npcs/magic_merchant.toml @@ -0,0 +1,14 @@ +name = "Zarok the Enchanter" +description = "An eccentric old man with a wild beard, smelling of sulfur and ozone." +room = "town:magic_shop" +base_attitude = "neutral" +class = "class:mage" + +[stats] +hp = 60 +attack = 15 +defense = 5 +xp = 150 + +[dialogue] +greeting = "Ah! Browsing the arcane, are we? Don't touch the glowing jars." diff --git a/world/town/npcs/mayor.toml b/world/town/npcs/mayor.toml new file mode 100644 index 0000000..c21c638 --- /dev/null +++ b/world/town/npcs/mayor.toml @@ -0,0 +1,14 @@ +name = "Mayor Thorne" +description = "A portly man with a boisterous laugh and a shrewd gaze. He wears a heavy chain of office." +room = "town:mayors_estate" +base_attitude = "friendly" +class = "class:peasant" + +[stats] +hp = 80 +attack = 5 +defense = 10 +xp = 100 + +[dialogue] +greeting = "Welcome to Thornwall! Mind the laws, and we'll get along famously." diff --git a/world/town/npcs/sewer_mutant.toml b/world/town/npcs/sewer_mutant.toml new file mode 100644 index 0000000..e9b1e2f --- /dev/null +++ b/world/town/npcs/sewer_mutant.toml @@ -0,0 +1,12 @@ +name = "Sewer Mutant" +description = "A horrific amalgamation of rat and something far worse. It drools a caustic green slime." +room = "town:sewers_west" +base_attitude = "hostile" +class = "class:creature" +race = "race:beast" + +[stats] +hp = 90 +attack = 12 +defense = 8 +xp = 120 diff --git a/world/town/npcs/thief_boss.toml b/world/town/npcs/thief_boss.toml new file mode 100644 index 0000000..261b2bb --- /dev/null +++ b/world/town/npcs/thief_boss.toml @@ -0,0 +1,14 @@ +name = "Silas the Shadow" +description = "A lean, scarred man twirling a dagger. He moves with deadly, practiced grace." +room = "town:thieves_hideout" +base_attitude = "hostile" +class = "class:rogue" + +[stats] +hp = 150 +attack = 20 +defense = 15 +xp = 400 + +[dialogue] +greeting = "You shouldn't have come down here, friend." diff --git a/world/town/objects/health_potion.toml b/world/town/objects/health_potion.toml new file mode 100644 index 0000000..a1d2374 --- /dev/null +++ b/world/town/objects/health_potion.toml @@ -0,0 +1,7 @@ +name = "Minor Health Potion" +description = "A small glass vial filled with a bubbling red liquid." +room = "town:magic_shop" +kind = "consumable" + +[stats] +hp_restore = 50 diff --git a/world/town/objects/holy_symbol.toml b/world/town/objects/holy_symbol.toml new file mode 100644 index 0000000..8397515 --- /dev/null +++ b/world/town/objects/holy_symbol.toml @@ -0,0 +1,9 @@ +name = "Sunburst Pendant" +description = "A heavy gold pendant depicting a rising sun, warm to the touch." +room = "town:inner_sanctum" +slot = "neck" +kind = "armor" + +[stats] +mana_bonus = 15 +defense = 2 diff --git a/world/town/objects/iron_sword.toml b/world/town/objects/iron_sword.toml new file mode 100644 index 0000000..09b7ffd --- /dev/null +++ b/world/town/objects/iron_sword.toml @@ -0,0 +1,8 @@ +name = "Standard Iron Sword" +description = "A well-balanced, albeit unadorned, iron longsword. Standard issue for the town guard." +room = "town:armory" +slot = "main_hand" +kind = "weapon" + +[stats] +attack = 10 diff --git a/world/town/objects/leather_armor.toml b/world/town/objects/leather_armor.toml new file mode 100644 index 0000000..6814db5 --- /dev/null +++ b/world/town/objects/leather_armor.toml @@ -0,0 +1,8 @@ +name = "Guard's Leather Armor" +description = "Sturdy boiled leather armor stamped with the crest of Thornwall." +room = "town:armory" +slot = "torso" +kind = "armor" + +[stats] +defense = 8 diff --git a/world/town/objects/stolen_goods.toml b/world/town/objects/stolen_goods.toml new file mode 100644 index 0000000..43f0649 --- /dev/null +++ b/world/town/objects/stolen_goods.toml @@ -0,0 +1,4 @@ +name = "Crate of Smuggled Silk" +description = "A wooden crate pried open to reveal rolls of incredibly fine, illicit silk." +room = "town:thieves_hideout" +kind = "misc" diff --git a/world/town/objects/thieves_key.toml b/world/town/objects/thieves_key.toml new file mode 100644 index 0000000..0be00e7 --- /dev/null +++ b/world/town/objects/thieves_key.toml @@ -0,0 +1,4 @@ +name = "Skeleton Key" +description = "An intricately carved iron key that looks like it could open almost any lock." +room = "town:thieves_hideout" +kind = "misc" diff --git a/world/town/rooms/armory.toml b/world/town/rooms/armory.toml new file mode 100644 index 0000000..76b8e8d --- /dev/null +++ b/world/town/rooms/armory.toml @@ -0,0 +1,6 @@ +name = "City Armory" +description = """\ +Racks of spears, halberds, and swords fill this well-fortified room. The smell of leather, oil, and cold iron is overpowering. Several guards are busy polishing equipment.""" + +[exits] +south = "town:forge" diff --git a/world/town/rooms/city_wall_east.toml b/world/town/rooms/city_wall_east.toml new file mode 100644 index 0000000..1764156 --- /dev/null +++ b/world/town/rooms/city_wall_east.toml @@ -0,0 +1,6 @@ +name = "Eastern Wall Walk" +description = """\ +A stone walkway atop the city's eastern wall. From here, you can see the dense treeline of the Whispering Woods to the south and the sprawling farmlands to the east.""" + +[exits] +west = "town:gate" diff --git a/world/town/rooms/city_wall_west.toml b/world/town/rooms/city_wall_west.toml new file mode 100644 index 0000000..1627730 --- /dev/null +++ b/world/town/rooms/city_wall_west.toml @@ -0,0 +1,6 @@ +name = "Western Wall Walk" +description = """\ +A high vantage point on the western fortifications. The wind howls across the crenellations. To the west, jagged hills rise against the horizon.""" + +[exits] +east = "town:gate" diff --git a/world/town/rooms/inn_upstairs.toml b/world/town/rooms/inn_upstairs.toml new file mode 100644 index 0000000..8fa5ea4 --- /dev/null +++ b/world/town/rooms/inn_upstairs.toml @@ -0,0 +1,6 @@ +name = "Inn Upstairs" +description = """\ +A narrow hallway lined with heavy wooden doors. The floorboards creak underfoot, and the muffled sounds of the tavern below seep through the floor. Several doors are shut tight, but one stands slightly ajar.""" + +[exits] +down = "town:tavern" diff --git a/world/town/rooms/inner_sanctum.toml b/world/town/rooms/inner_sanctum.toml new file mode 100644 index 0000000..8cea1f0 --- /dev/null +++ b/world/town/rooms/inner_sanctum.toml @@ -0,0 +1,6 @@ +name = "Inner Sanctum" +description = """\ +A place of profound silence and peace. A marble statue of an angelic figure stands at the back, illuminated by a shaft of natural light from a high skylight. The air smells of rich incense.""" + +[exits] +east = "town:temple" diff --git a/world/town/rooms/magic_shop.toml b/world/town/rooms/magic_shop.toml new file mode 100644 index 0000000..2ecfa33 --- /dev/null +++ b/world/town/rooms/magic_shop.toml @@ -0,0 +1,6 @@ +name = "The Mystic Eye" +description = """\ +The air here crackles with residual magic. Books overflow from sagging shelves, and jars of unidentifiable floating objects line the counter. A strange, multi-colored flame burns steadily in an iron brazier.""" + +[exits] +north = "town:market" diff --git a/world/town/rooms/mayors_estate.toml b/world/town/rooms/mayors_estate.toml new file mode 100644 index 0000000..043a00a --- /dev/null +++ b/world/town/rooms/mayors_estate.toml @@ -0,0 +1,6 @@ +name = "Mayor's Estate" +description = """\ +A grand mansion set behind wrought-iron gates. The courtyard is immaculate, featuring a decorative fountain and manicured hedges. The front doors are heavy oak, bound in brass.""" + +[exits] +south = "town:wealthy_district" diff --git a/world/town/rooms/residential_street.toml b/world/town/rooms/residential_street.toml new file mode 100644 index 0000000..815823a --- /dev/null +++ b/world/town/rooms/residential_street.toml @@ -0,0 +1,7 @@ +name = "Residential Street" +description = """\ +Modest wooden homes line this quiet street. Children play tag around the rain barrels, and laundry hangs from lines strung between windows. It is a peaceful contrast to the bustling market.""" + +[exits] +south = "town:market" +east = "town:wealthy_district" diff --git a/world/town/rooms/sewer_entrance.toml b/world/town/rooms/sewer_entrance.toml new file mode 100644 index 0000000..1af39d0 --- /dev/null +++ b/world/town/rooms/sewer_entrance.toml @@ -0,0 +1,7 @@ +name = "Sewer Entrance" +description = """\ +The smell here is atrocious. A rusty iron grate has been pried open, revealing a slippery stone tunnel that descends into the city's underbelly. The sound of rushing water echoes from the darkness.""" + +[exits] +up = "town:cellar" +north = "town:sewers_west" diff --git a/world/town/rooms/sewers_east.toml b/world/town/rooms/sewers_east.toml new file mode 100644 index 0000000..37b5ecd --- /dev/null +++ b/world/town/rooms/sewers_east.toml @@ -0,0 +1,7 @@ +name = "Eastern Sewers" +description = """\ +The tunnel widens here where several smaller pipes converge. The walkway is crumbling, and an unnerving scratching sound echoes from deeper in the tunnels.""" + +[exits] +west = "town:sewers_west" +north = "town:thieves_hideout" diff --git a/world/town/rooms/sewers_west.toml b/world/town/rooms/sewers_west.toml new file mode 100644 index 0000000..5d9f3d0 --- /dev/null +++ b/world/town/rooms/sewers_west.toml @@ -0,0 +1,7 @@ +name = "Western Sewers" +description = """\ +A narrow walkway beside a sluggish, foul-smelling stream. Slime coats the brick walls, and shadows seem to move just outside your peripheral vision.""" + +[exits] +south = "town:sewer_entrance" +east = "town:sewers_east" diff --git a/world/town/rooms/thieves_hideout.toml b/world/town/rooms/thieves_hideout.toml new file mode 100644 index 0000000..d86dd4a --- /dev/null +++ b/world/town/rooms/thieves_hideout.toml @@ -0,0 +1,6 @@ +name = "Thieves' Hideout" +description = """\ +A surprisingly dry and well-lit chamber hidden deep within the sewer system. Crates of stolen goods are stacked high, and a makeshift map of Thornwall is pinned to the wall. This is no ordinary smuggler's den.""" + +[exits] +south = "town:sewers_east" diff --git a/world/town/rooms/wealthy_district.toml b/world/town/rooms/wealthy_district.toml new file mode 100644 index 0000000..eac052f --- /dev/null +++ b/world/town/rooms/wealthy_district.toml @@ -0,0 +1,7 @@ +name = "Wealthy District" +description = """\ +The streets here are paved with smooth, clean stone. Tall townhouses of brick and timber feature ornate ironwork and manicured window boxes. Private guards patrol the thoroughfare.""" + +[exits] +west = "town:residential_street" +north = "town:mayors_estate" diff --git a/world/whispering_woods/npcs/pixie.toml b/world/whispering_woods/npcs/pixie.toml new file mode 100644 index 0000000..5f5577e --- /dev/null +++ b/world/whispering_woods/npcs/pixie.toml @@ -0,0 +1,14 @@ +name = "Mischievous Pixie" +description = "A tiny, winged creature with a playful expression and eyes that sparkle with magic. It seems to flit about, almost invisible to the naked eye." +room = "whispering_woods:hidden_glade" +base_attitude = "friendly" +class = "class:creature" + +[stats] +hp = 50 +attack = 5 +defense = 10 +xp = 50 + +[dialogue] +greeting = "Tee-hee! Have you come to play?" diff --git a/world/whispering_woods/npcs/treant.toml b/world/whispering_woods/npcs/treant.toml new file mode 100644 index 0000000..dc1d171 --- /dev/null +++ b/world/whispering_woods/npcs/treant.toml @@ -0,0 +1,14 @@ +name = "Ancient Treant" +description = "A massive, tree-like creature with bark-like skin and branches that move like limbs. Its eyes are deep, wisdom-filled pools of light." +room = "whispering_woods:ancient_oak" +base_attitude = "neutral" +class = "class:creature" + +[stats] +hp = 500 +attack = 25 +defense = 20 +xp = 1000 + +[dialogue] +greeting = "The forest remembers... and it watches." diff --git a/world/whispering_woods/objects/mushroom.toml b/world/whispering_woods/objects/mushroom.toml new file mode 100644 index 0000000..135643b --- /dev/null +++ b/world/whispering_woods/objects/mushroom.toml @@ -0,0 +1,8 @@ +name = "Magic Mushroom" +description = "A small, glowing mushroom with a sweet, earthy scent. It seems to pulse with a faint light." +room = "whispering_woods:hidden_glade" +kind = "consumable" + +[stats] +hp_restore = 20 +mana_restore = 10 diff --git a/world/whispering_woods/objects/staff.toml b/world/whispering_woods/objects/staff.toml new file mode 100644 index 0000000..e0e138a --- /dev/null +++ b/world/whispering_woods/objects/staff.toml @@ -0,0 +1,10 @@ +name = "Elderwood Staff" +description = "A gnarled staff made from the wood of an ancient oak tree. It's cool to the touch and seems to hum with a faint energy." +room = "whispering_woods:ancient_oak" +slot = "main_hand" +kind = "weapon" + +[stats] +attack = 15 +defense = 5 +mana_bonus = 20 diff --git a/world/whispering_woods/region.toml b/world/whispering_woods/region.toml new file mode 100644 index 0000000..ab908a2 --- /dev/null +++ b/world/whispering_woods/region.toml @@ -0,0 +1,2 @@ +name = "Whispering Woods" +description = "An ancient, misty forest where the trees seem to watch your every move." diff --git a/world/whispering_woods/rooms/ancient_oak.toml b/world/whispering_woods/rooms/ancient_oak.toml new file mode 100644 index 0000000..2df903f --- /dev/null +++ b/world/whispering_woods/rooms/ancient_oak.toml @@ -0,0 +1,12 @@ +name = "The Ancient Oak" +description = """\ +A massive oak tree, centuries old, dominates this clearing. Its \ +thick, gnarled branches seem to reach out for the sky, and its \ +trunk is covered in a layer of silvery-green moss. The air is \ +still here, and the light is filtered through the dense canopy \ +above.""" + +[exits] +north = "whispering_woods:forest_entrance" +east = "whispering_woods:hidden_glade" +west = "whispering_woods:misty_dell" diff --git a/world/whispering_woods/rooms/forest_entrance.toml b/world/whispering_woods/rooms/forest_entrance.toml new file mode 100644 index 0000000..51f1f29 --- /dev/null +++ b/world/whispering_woods/rooms/forest_entrance.toml @@ -0,0 +1,10 @@ +name = "Forest Entrance" +description = """\ +The well-maintained cobblestone of Thornwall yields to a winding dirt \ +path that disappears into the dense, dark eaves of the forest. The air \ +is cooler here, smelling of damp earth and pine needles. The city \ +gates loom to the north.""" + +[exits] +north = "town:gate" +south = "whispering_woods:ancient_oak" diff --git a/world/whispering_woods/rooms/hidden_glade.toml b/world/whispering_woods/rooms/hidden_glade.toml new file mode 100644 index 0000000..2cb8a1b --- /dev/null +++ b/world/whispering_woods/rooms/hidden_glade.toml @@ -0,0 +1,9 @@ +name = "Hidden Glade" +description = """\ +A small, sun-dappled glade, hidden away from the main path. A \ +gentle stream flows through the center, and the air is filled \ +with the sweet scent of wildflowers. It's a peaceful spot, \ +ideal for resting and reflection.""" + +[exits] +west = "whispering_woods:ancient_oak" diff --git a/world/whispering_woods/rooms/misty_dell.toml b/world/whispering_woods/rooms/misty_dell.toml new file mode 100644 index 0000000..ed20971 --- /dev/null +++ b/world/whispering_woods/rooms/misty_dell.toml @@ -0,0 +1,9 @@ +name = "Misty Dell" +description = """\ +A low-lying dell, filled with a thick, swirling mist. The light \ +is dim here, and the only sound is the dripping of water \ +from the trees. It's a mysterious place, where everything seems \ +distorted and surreal.""" + +[exits] +east = "whispering_woods:ancient_oak"