Files
timmy-academy/world/commons_wing.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

337 lines
14 KiB
Python

"""
Commons Wing - Social and Gathering Spaces
Evennia MUD World - Room TypeClass Definitions
"""
from evennia import DefaultRoom
class GrandCommonsHall(DefaultRoom):
"""
The central gathering hall where students, faculty, and visitors mingle.
"""
def at_object_creation(self):
super().at_object_creation()
self.key = "Grand Commons Hall"
self.aliases = ["commons", "great hall", "main gathering", "social hall"]
self.db.desc = """
|wGrand Commons Hall|n
The |yGrand Commons|n rises before you in all its |csplendid grandeur|n—a
testament to the academy's wealth and prestige. The ceiling soars
sixty feet overhead, supported by |ytwelve marble columns|n carved
with the likenesses of the academy's founding archmages. Between
the columns, |ystained glass windows|n thirty feet tall depict great
moments in magical history.
The floor is a |ymosaic masterpiece|n of interlocking tiles forming
a massive compass rose, with each cardinal direction marked in
|yprecious metals|n—north in gold, south in silver, east in copper,
west in platinum. Around the perimeter, |yraised galleries|n provide
seating areas for hundreds, while the central space remains open
for gatherings, performances, and impromptu demonstrations.
|yMassive hearths|n occupy the north and south walls, each large
enough to stand in, burning with magical flames that provide
warmth without smoke. Between them, long |yfeasting tables|n can
be arranged for formal dinners or cleared for dances and assemblies.
The walls display |ytrophies of magical achievement|n—enchanted
artifacts, preserved specimens of summoned creatures, and portraits
of distinguished alumni. The air buzzes with |xconversation, laughter,
and the subtle crackle of ambient magic|n.
"""
self.db.atmosphere = {
"mood": "lively, social, energetic, welcoming",
"lighting": "bright from windows, warm firelight, magical accents",
"sounds": "conversations, laughter, footsteps on marble, fire crackling",
"smells": "roasted meats, fresh bread, wine, wood smoke, perfumes",
"temperature": "warm from fires and body heat, drafty near doors"
}
self.db.exits = {
"north": "Hearthside Dining",
"south": "Commons Entrance",
"east": "Entertainment Gallery",
"west": "Scholar's Corner",
"up": "Upper Balcony",
"down": "Cellar Stores"
}
self.db.objects = [
"twelve marble founder columns",
"thirty-foot stained glass windows",
"precious metal compass rose mosaic floor",
"raised gallery seating areas",
"massive double hearths with magical flames",
"collapsible feasting tables",
"magical achievement trophies",
"portrait gallery of distinguished alumni",
"crystal chandelier with ever-burning candles",
"information desk with campus maps"
]
class HearthsideDining(DefaultRoom):
"""
The main dining area attached to the Grand Commons.
"""
def at_object_creation(self):
super().at_object_creation()
self.key = "Hearthside Dining"
self.aliases = ["dining hall", "great kitchen", "feasting hall"]
self.db.desc = """
|wHearthside Dining|n
The |yscent of cooking|n hits you first—roasting meats, baking bread,
simmering stews, and a hundred other culinary delights. The dining
hall stretches long and grand, with |yrows of oak tables|n capable
of seating five hundred diners at once. The tables are dressed
in |ylinen of academy blue|n, with fresh flowers in crystal vases
at regular intervals.
The |yserving area|n dominates the northern wall, a long counter
behind which |yenchanted serving dishes|n keep food at perfect
temperature. Chefs in |ywhite uniforms|n work in the visible kitchen
beyond, their movements a choreographed dance of culinary expertise.
|YSilver tureens|n and |ybrass warming trays|n gleam under the
magical lights.
The ceiling features |yhanging gardens|n—trailing vines and flowering
plants that purify the air and provide fresh herbs for the kitchen.
Between them, |ycrystal spheres|n cast warm, appetizing light over
the diners below.
The |ygreat hearth|n in the center of the room burns with a welcoming
fire, around which smaller tables offer intimate dining. Students,
faculty, and visitors mingle here, breaking bread together regardless
of rank or origin.
"""
self.db.atmosphere = {
"mood": "warm, welcoming, bustling, appetizing",
"lighting": "warm crystal glow, firelight, kitchen brightness",
"sounds": "clinking cutlery, conversation, kitchen sounds, sizzling",
"smells": "roasting meat, fresh bread, herbs, wine, coffee",
"temperature": "warm from cooking fires, comfortable throughout"
}
self.db.exits = {
"south": "Grand Commons Hall",
"north": "Kitchen Complex",
"west": "Private Dining Rooms",
"east": "Beverage Station"
}
self.db.objects = [
"rows of oak dining tables with academy blue linens",
"enchanted serving dishes and warming trays",
"visible kitchen with working chefs",
"hanging gardens with trailing vines",
"crystal sphere light fixtures",
"central great hearth with seating",
"silver tureens and brass serving ware",
"fresh flower centerpieces",
"beverage dispensers with magical cooling",
"dessert cart with rotating selections"
]
class ScholarsCorner(DefaultRoom):
"""
A quieter area of the Commons for study and intellectual discourse.
"""
def at_object_creation(self):
super().at_object_creation()
self.key = "Scholar's Corner"
self.aliases = ["study area", "quiet commons", "reading nook"]
self.db.desc = """
|wScholar's Corner|n
Tucked away in the western wing of the Commons, this |yserene space|n
offers respite from the bustle of the main hall. The acoustics here
are |ymagically dampened|n, creating a hushed sanctuary where voices
drop to respectful whispers and the turning of pages provides the
primary soundtrack.
|yLeather armchairs|n in deep burgundy and forest green cluster around
|ysmall reading tables|n, each equipped with an |yadjustable reading lamp|n
that provides optimal illumination for any task. The walls are lined
with |ybuilt-in bookshelves|n containing reference works, popular
literature, and daily newspapers from across the realm.
A |ylong central table|n of polished walnut accommodates group study
sessions, its surface enchanted to resist ink stains and burns.
At one end, a |ypodium|n holds the current issue of the |yAcademy
Chronicle|n, available for all to read.
|YPotted plants|n—scholar's fern, memory moss, and concentration
cactus—add greenery and subtle cognitive benefits. The |yaroma of
quality tea|n wafts from a service station in the corner, where
an |yenchanted samovar|n provides endless hot water and a selection
of invigorating blends.
"""
self.db.atmosphere = {
"mood": "quiet, studious, contemplative, respectful",
"lighting": "soft individual lamps, natural light from clerestory windows",
"sounds": "page turning, soft whispers, tea pouring, distant silence",
"smells": "old books, leather, tea, coffee, concentration herbs",
"temperature": "cool and comfortable, ideal for alertness"
}
self.db.exits = {
"east": "Grand Commons Hall",
"north": "Archives Annex",
"west": "Debate Chamber"
}
self.db.objects = [
"burgundy and green leather armchairs",
"reading tables with adjustable lamps",
"built-in bookshelves with reference works",
"polished walnut study table",
"newspaper podium with Academy Chronicle",
"cognitive-enhancing potted plants",
"enchanted tea samovar station",
"magical silence dampening field",
"ink-resistant tabletop enchantments",
"newspaper rack with realm-wide publications"
]
class EntertainmentGallery(DefaultRoom):
"""
A space for performances, games, and recreational activities.
"""
def at_object_creation(self):
super().at_object_creation()
self.key = "Entertainment Gallery"
self.aliases = ["games room", "performance hall", "recreation area"]
self.db.desc = """
|wEntertainment Gallery|n
Lively energy fills this |yspacious chamber|n dedicated to leisure
and amusement. The ceiling soars high enough to accommodate aerial
performances, reinforced with |ymagical safety nets|n that catch
falling acrobats—or overconfident students practicing levitation.
The floor is divided into |yactivity zones|n marked by different
colored rugs. In the |ygreen section|n, |ychess tables|n and |ystrategy
boards|n attract tactical minds. The |yblue zone|n features |ymagical
gaming consoles|n that project illusionary battlefields. The |yred
area|n contains a |ysmall stage|n for performances, complete with
adjustable lighting and acoustics.
Along the walls, |ycomfortable seating|n in curved arrangements
encourages socializing. A |yserving bar|n offers refreshments,
including non-alcoholic beverages for younger students. |YMusical
instruments|n hang available for impromptu concerts—a lute, a
harp, drums, and even a small pipe organ.
The |yatmosphere is festive|n, with colorful banners depicting
past performances and tournament champions. A |ybulletin board|n
advertises upcoming events, club meetings, and open gaming sessions.
"""
self.db.atmosphere = {
"mood": "playful, energetic, social, creative",
"lighting": "colorful and adjustable, spotlights for stage",
"sounds": "laughter, music, game sounds, applause, conversation",
"smells": "sweet snacks, polished wood, stage makeup, excitement",
"temperature": "energetic warmth from activity and crowds"
}
self.db.exits = {
"west": "Grand Commons Hall",
"north": "Music Practice Rooms",
"east": "Art Studio",
"up": "Theater Balcony"
}
self.db.objects = [
"magical safety nets overhead",
"chess and strategy game tables",
"magical gaming console projectors",
"performance stage with lighting",
"curved social seating arrangements",
"serving bar with refreshments",
"available musical instruments",
"colorful event banners",
"bulletin board with announcements",
"trophy cases with gaming awards"
]
class UpperCommonsBalcony(DefaultRoom):
"""
The elevated balcony overlooking the Grand Commons.
"""
def at_object_creation(self):
super().at_object_creation()
self.key = "Upper Balcony"
self.aliases = ["commons balcony", "gallery overlook", "upper level"]
self.db.desc = """
|wUpper Balcony|n
From this |yelevated vantage|n, the Grand Commons spreads below like
a living tapestry. The |ywrought-iron railing|n is worked with intricate
patterns of scrolling vines and academic symbols, sturdy yet elegant.
|yStone pillars|n support the roof overhead, each carved with the
names of past student council presidents.
The balcony provides a |yprivate retreat|n from the main floor's
bustle while still allowing observation of events below. |ySmall
tables|n with |yhigh-backed chairs|n offer intimate seating for private
conversations or quiet observation. Potted |ynight-blooming jasmine|n
releases its fragrance as evening approaches.
A |yservice staircase|n spirals down to the main floor discreetly,
while a |ydoor to the east|n leads to private meeting rooms reserved
for official academy business. |YTapestries|n depicting aerial views
of the academy campus hang between the pillars.
From here, one can watch |yperformances|n on the main floor, observe
the flow of students between classes, or simply enjoy the |xarchitectural
beauty|n of the Commons from a distance. The |ypeaceful remove|n makes
this a favorite spot for contemplation.
"""
self.db.atmosphere = {
"mood": "observant, peaceful, slightly detached, elegant",
"lighting": "soft from below, gentle magical accent lights",
"sounds": "muffled from below, distant music, quiet conversation",
"smells": "night-blooming jasmine, polish, distant food aromas",
"temperature": "slightly cooler than below, gentle air circulation"
}
self.db.exits = {
"down": "Grand Commons Hall",
"east": "Private Meeting Rooms",
"west": "Faculty Lounge"
}
self.db.objects = [
"wrought-iron decorative railing",
"stone pillars with carved names",
"small tables with high-backed chairs",
"potted night-blooming jasmine",
"spiraling service staircase",
"aerial view tapestries",
"private meeting room doors",
"magical observation crystals",
"reserved seating signs",
"refreshment service station"
]