Add world content: warden class, druids guild, sylvan race, town expansion, whispering_woods region

Made-with: Cursor
This commit is contained in:
AI Agent
2026-03-14 17:24:09 -06:00
parent 5d290a8396
commit 98967ebe59
41 changed files with 415 additions and 0 deletions

13
world/classes/warden.toml Normal file
View File

@@ -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

View File

@@ -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

46
world/races/sylvan.toml Normal file
View File

@@ -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"]

View File

@@ -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

View File

@@ -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

11
world/spells/thorns.toml Normal file
View File

@@ -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

View File

@@ -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."

View File

@@ -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."

View File

@@ -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."

View File

@@ -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."

View File

@@ -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."

View File

@@ -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

View File

@@ -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."

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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?"

View File

@@ -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."

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,2 @@
name = "Whispering Woods"
description = "An ancient, misty forest where the trees seem to watch your every move."

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"