Files
timmy-academy/world/dormitory_entrance.py
Allegro d8193a0428 Initial commit: Timmy Academy Evennia world
- 21 rooms across 4 wings (Dormitories, Commons, Workshops, Gardens)
- Full exit graph connecting all rooms bidirectionally
- Room descriptions for all 16 inner rooms
- 5 character accounts (wizard, Allegro, Allegro-Primus, Timmy, Ezra)
- Public communication channel
- Build script: world/build_academy.ev
- Wing modules: world/dormitory_entrance.py, commons_wing.py, workshop_wing.py, gardens_wing.py

Built by Allegro, descriptions and exit fixes by Timmy.
2026-03-31 15:26:05 +00:00

342 lines
15 KiB
Python

"""
Dormitory Entrance - The Dormitories Wing
Evennia MUD World - Room TypeClass Definition
"""
from evennia import DefaultRoom
class DormitoryEntrance(DefaultRoom):
"""
The grand entrance to the Dormitories Wing, where students and residents
of the arcane academy find their respite and personal quarters.
"""
def at_object_creation(self):
"""Called when the room is first created."""
super().at_object_creation()
# Room identity
self.key = "Dormitory Entrance"
self.aliases = ["dorm entrance", "dormitories", "sleeping quarters"]
# Detailed description
self.db.desc = """
|wThe Dormitory Entrance|n
A soaring archway of aged |ywhite marble|n marks the threshold between
the bustling academy corridors and the sanctuary of rest. The entrance
hall stretches thirty feet overhead, its vaulted ceiling painted with
a magnificent |cmural of the moon phases|n, each lunar stage rendered
in silver and pearl that seems to |xshimmer faintly|n in any light.
The floor consists of hexagonal tiles in alternating patterns of
|rslate gray|n and |gsoft moss green|n, worn smooth by generations of
footsteps. Along the walls, |yoil lanterns|n burn with enchanted flames
that never consume their fuel, casting warm golden pools of illumination.
To the |ynorth|n, the corridor leads deeper into the dormitories wing,
toward the residential chambers. A small |ypolished oak desk|n sits to
one side, where the |ylodging master|n typically maintains records of
room assignments. Pinned boards display notices about quiet hours,
maintenance schedules, and the occasional student message.
The air here carries the scent of |ylavender and cedar|n—warding herbs
that promote restful sleep and pleasant dreams. A pervasive sense of
|xcalm tranquility|n settles over visitors, as if the very walls were
enchanted to soothe weary minds.
"""
# Atmospheric tags
self.db.atmosphere = {
"mood": "peaceful, welcoming, restful",
"lighting": "warm golden lantern light, soft shadows",
"sounds": "distant footsteps, quiet murmurs, the crackle of magical flames",
"smells": "lavender, cedar, old parchment, sleep charms",
"temperature": "comfortably warm, slightly cool in shadowed corners"
}
# Exits (to be connected by builder)
self.db.exits = {
"north": "Corridor of Rest",
"south": "Academy Main Hall",
"west": "Visitor Waiting Area",
"east": "Resident Services Office"
}
# Objects in the room
self.db.objects = [
"polished oak desk with leather-bound registry",
"brass oil lanterns with eternal flames",
"cork notice board with various postings",
"velvet rope barriers for queue management",
"marble bench for waiting visitors",
"crystal water fountain with pure spring water",
"potted dreamlilies in bronze planters",
"enchanted bell for summoning the lodging master"
]
# Special features
self.db.features = {
"sleep_ward": "Prevents magical scrying into sleeping quarters",
"silence_zone": "Suppresses loud noises beyond normal conversation",
"comfort_aura": "Reduces fatigue recovery time for resting characters",
"mural_enchantment": "Changes moon phase based on actual lunar cycle"
}
class DormitoryLodgingMaster(DefaultRoom):
"""
The office and workspace of the Lodging Master who manages room assignments.
"""
def at_object_creation(self):
super().at_object_creation()
self.key = "Resident Services Office"
self.aliases = ["lodging office", "room assignments", "housing desk"]
self.db.desc = """
|wResident Services Office|n
This |ycozy chamber|n serves as the administrative heart of the
dormitories. Bookshelves line every wall, crammed with |yleather-bound
ledgers|n dating back centuries, each spine labeled with years in
flowing gold script. The air smells of |yink, old paper, and beeswax|n.
A |ymassive mahogany desk|n dominates the center of the room, its surface
covered with stacks of forms, sealing wax, and a magnificent |ybrass
astrolabe|n that seems to track more than just celestial bodies. Behind
the desk hangs a |ydetailed map|n of the entire dormitory wing, with
small colored pins indicating room occupancy.
|yHigh windows|n let in afternoon light through panes of colored glass,
casting prismatic patterns across the floor. A |yfireplace|n on the east
wall burns with cool blue flames that provide warmth without smoke.
The Lodging Master, when present, sits in a |yhigh-backed chair|n of
worn velvet, ready to assist with room assignments, resolve disputes,
or address maintenance concerns. A |ysilver service bell|n sits prominently
on the desk corner for summoning assistance.
"""
self.db.atmosphere = {
"mood": "organized, professional, slightly cluttered",
"lighting": "colored sunlight, magical blue firelight",
"sounds": "scratching quills, paper rustling, occasional coughs",
"smells": "parchment, ink, beeswax polish, dried lavender",
"temperature": "warm and comfortable, fireplace heat"
}
self.db.exits = {
"west": "Dormitory Entrance",
"north": "Records Archive"
}
self.db.objects = [
"mahogany desk covered in paperwork",
"brass astrolabe tracking room assignments",
"wall map of dormitories with occupancy pins",
"bookshelves filled with century-old ledgers",
"high-backed velvet chair",
"silver service bell",
"inkwell with enchanted never-empty quill",
"wooden filing cabinets with brass handles",
"stained glass windows with academy crest",
"blue-flame fireplace with marble mantel"
]
class CorridorOfRest(DefaultRoom):
"""
The main corridor connecting the various dormitory halls.
"""
def at_object_creation(self):
super().at_object_creation()
self.key = "Corridor of Rest"
self.aliases = ["dormitory corridor", "sleeping hall", "residents way"]
self.db.desc = """
|wCorridor of Rest|n
This |ylong corridor|n stretches before you like a pathway through
twilight itself. The walls are paneled in |ydark walnut|n that absorbs
sound, creating a hushed atmosphere broken only by the softest of
footsteps. Every ten feet, |yalcoves|n hold statues of |ydream guardians|n—
mythical creatures said to protect sleepers from nightmares.
The ceiling arches overhead in a series of |yribbed vaults|n, each
painted with a different |cconstellation|n that actually corresponds
to the rooms beneath. Small |ystarlight crystals|n embedded in the
vault ribs provide gentle illumination, mimicking the night sky.
|yPolished bronze plaques|n mark the entrances to various dormitory
halls: |yThe Novice Wing|n to the |yeast|n, |yThe Adept Chambers|n to
the |ywest|n, and |yThe Master Suites|n further |ynorth|n. Each doorway
is framed by |yheavy velvet curtains|n in colors denoting the rank
of residents within.
The floor is carpeted with thick |ywoven rugs|n depicting peaceful
landscapes—meadows, forests, and shores—designed to relax the mind
before sleep. At intervals, |yporcelain urns|n hold fresh lavender
and chamomile, their fragrances released slowly by warming enchantments.
"""
self.db.atmosphere = {
"mood": "serene, quiet, contemplative",
"lighting": "soft starlight glow, gentle shadows",
"sounds": "muted footsteps, distant soft breathing, magical hum",
"smells": "lavender, chamomile, polished wood, sleep herbs",
"temperature": "cool and comfortable, perfect for sleeping"
}
self.db.exits = {
"south": "Dormitory Entrance",
"north": "Master Suites Approach",
"east": "Novice Wing",
"west": "Adept Chambers",
"up": "Observatory Landing"
}
self.db.objects = [
"dream guardian statues in wall alcoves",
"starlight crystal ceiling fixtures",
"bronze directional plaques",
"heavy velvet curtains in rank colors",
"thick woven landscape rugs",
"porcelain urns with sleep herbs",
"small meditation benches",
"water basins for refreshing travelers",
"enchanted silence orbs",
"moon-phase wall calendar"
]
class NoviceDormitoryHall(DefaultRoom):
"""
The dormitory hall for novice students and apprentices.
"""
def at_object_creation(self):
super().at_object_creation()
self.key = "Novice Dormitory Hall"
self.aliases = ["novice wing", "apprentice quarters", "student dorms"]
self.db.desc = """
|wNovice Dormitory Hall|n
This |yspacious chamber|n houses the sleeping quarters for the academy's
newest students. The hall stretches nearly a hundred feet, lined on
both sides with |ysimple wooden doors|n leading to individual cells.
Each door bears a |ybrass number plate|n and a |ysmall chalkboard|n for
residents to leave messages.
Down the center runs a |ylong communal table|n where novices gather
for late-night study sessions or early morning meals. The table is
scarred with years of use—burn marks from failed spells, ink stains
from frenzied note-taking, and countless initials carved by restless
hands. |YWrought-iron candelabras|n provide warm illumination.
The walls are painted in |ycheerful pale blue|n, decorated with
educational tapestries showing magical theory diagrams, herb
identification charts, and the academy's history. Near the far end,
a |ycommunity bookshelf|n overflows with well-worn textbooks and
shared study materials.
|yComfortable but simple|n, the hall maintains a youthful energy.
Small groups of novices can often be found here, comparing notes,
practicing basic enchantments, or simply unwinding after demanding
classes. The atmosphere is one of |xshared struggle and camaraderie|n.
"""
self.db.atmosphere = {
"mood": "energetic but tired, studious, communal",
"lighting": "warm candlelight, some magical glow from practice",
"sounds": "whispered conversations, page turning, muffled spell practice",
"smells": "young sweat, ink, cheap candles, nervous energy",
"temperature": "slightly warm from body heat, drafty near windows"
}
self.db.exits = {
"west": "Corridor of Rest",
"north": "Novice Bath House",
"east": "Study Nook"
}
self.db.objects = [
"wooden doors with brass numbers",
"long scarred communal table",
"wrought-iron candelabras",
"educational tapestries",
"overflowing community bookshelf",
"chalkboards on each door",
"wooden benches and stools",
"shared spell component cabinet",
"lost and found crate",
"bulletin board for announcements"
]
class MasterSuitesApproach(DefaultRoom):
"""
The approach to the master suites for senior mages and faculty.
"""
def at_object_creation(self):
super().at_object_creation()
self.key = "Master Suites Approach"
self.aliases = ["senior quarters", "master wing", "faculty housing"]
self.db.desc = """
|wMaster Suites Approach|n
The corridor transforms as you approach the senior quarters, becoming
more |yprivate and prestigious|n. The walls shift from institutional
stone to |ypaneling of rare woods|n—ebony, purpleheart, and silverleaf—
inlaid with delicate |ymarvory filigree|n depicting academic achievements.
The ceiling rises higher here, crowned with a |ystained glass dome|n
that filters daylight into cascades of color. At night, |yluminescent
crystals|n take over, providing adjustable lighting suited to each
resident's preference. The floor is paved with |ymarble tiles|n in
complex geometric patterns.
Heavy |yiron-bound doors|n stand at intervals, each unique in design,
bearing the |ypersonal heraldry|n of the master who dwells within.
Small |ywaiting areas|n with comfortable chairs occupy the spaces
between doors, allowing guests to await admittance in comfort.
The air carries a sense of |xgravitas and accomplishment|n. These
quarters house the academy's most accomplished scholars, and the
space reflects their status. A |yattendant's station|n near the
entrance ensures that only appropriate visitors gain access to
the private suites beyond.
"""
self.db.atmosphere = {
"mood": "dignified, quiet, exclusive",
"lighting": "filtered colored light, adjustable magical illumination",
"sounds": "near silence, occasional muffled conversation, distant bells",
"smells": "expensive incense, old books, rare woods, magical reagents",
"temperature": "perfectly climate controlled, individualized zones"
}
self.db.exits = {
"south": "Corridor of Rest",
"north": "Archmage's Residence",
"east": "Master Suite Alpha",
"west": "Master Suite Beta"
}
self.db.objects = [
"rare wood paneling with ivory inlay",
"stained glass dome ceiling",
"luminescent crystal light fixtures",
"marble tile geometric flooring",
"iron-bound doors with personal heraldry",
"comfortable waiting area chairs",
"attendant's station with guest registry",
"magical privacy screens",
"fresh flower arrangements in crystal vases",
"portraits of former resident masters"
]