- 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.
343 lines
15 KiB
Python
343 lines
15 KiB
Python
"""
|
|
Workshop Wing - Crafting, Smithing, and Magical Creation
|
|
Evennia MUD World - Room TypeClass Definitions
|
|
"""
|
|
|
|
from evennia import DefaultRoom
|
|
|
|
class WorkshopEntrance(DefaultRoom):
|
|
"""
|
|
The entrance to the Workshop Wing where practical magic and crafting occur.
|
|
"""
|
|
|
|
def at_object_creation(self):
|
|
super().at_object_creation()
|
|
|
|
self.key = "Workshop Wing Entrance"
|
|
self.aliases = ["workshop entry", "crafting wing", "makers hall"]
|
|
|
|
self.db.desc = """
|
|
|wWorkshop Wing Entrance|n
|
|
|
|
The transition from polished academy corridors to the |yWorkshop Wing|n
|
|
is immediately apparent. The air grows |ywarmer|n and carries the
|
|
mingled scents of |yhot metal, sawdust, alchemical reagents, and
|
|
ozone|n from magical experiments. The floor changes from marble to
|
|
|ydurable stone flagging|n, scuffed and stained from years of heavy use.
|
|
|
|
The entrance hall is a |yhub of activity|n, with students rushing
|
|
to and from various workshops, carrying materials, tools, and
|
|
half-finished projects. |yLarge directional signs|n point the way
|
|
to specialized areas: |ySmithy|n to the |ynorth|n, |yAlchemy Lab|n to
|
|
the |yeast|n, |yWoodworking|n to the |ywest|n, and |yArtificing|n below.
|
|
|
|
A |ysafety station|n dominates one wall, equipped with emergency
|
|
showers, healing potion dispensers, and fire suppression crystals.
|
|
|yWarning signs|n in multiple languages caution about the dangers
|
|
inherent in practical magic and crafting.
|
|
|
|
The ceiling is unusually high, with |yexposed beams|n and |ymagical
|
|
ventilation shafts|n that whisk away dangerous fumes. |YTool rental|n
|
|
and |ymaterial storage|n offices line the walls, staffed by
|
|
experienced artisans who check out equipment to qualified students.
|
|
"""
|
|
|
|
self.db.atmosphere = {
|
|
"mood": "industrious, focused, slightly dangerous, energetic",
|
|
"lighting": "bright work lights, sparks from forges, magical glows",
|
|
"sounds": "hammering, sawing, sizzling, shouted warnings, machinery",
|
|
"smells": "hot metal, sawdust, chemicals, sweat, burning",
|
|
"temperature": "warm to hot, varying by proximity to forges"
|
|
}
|
|
|
|
self.db.exits = {
|
|
"north": "The Great Smithy",
|
|
"east": "Alchemy Laboratories",
|
|
"west": "Woodworking Studio",
|
|
"down": "Artificing Chambers",
|
|
"south": "Academy Main Corridor"
|
|
}
|
|
|
|
self.db.objects = [
|
|
"safety station with emergency equipment",
|
|
"directional signs to workshop areas",
|
|
"tool rental office counter",
|
|
"material storage lockers",
|
|
"fire suppression crystal clusters",
|
|
"magical ventilation shafts",
|
|
"healing potion dispensers",
|
|
"project submission desk",
|
|
"safety notice boards",
|
|
"protective equipment racks"
|
|
]
|
|
|
|
class GreatSmithy(DefaultRoom):
|
|
"""
|
|
The main blacksmithing and metalworking workshop.
|
|
"""
|
|
|
|
def at_object_creation(self):
|
|
super().at_object_creation()
|
|
|
|
self.key = "The Great Smithy"
|
|
self.aliases = ["smithy", "forge", "metal shop", "blacksmith hall"]
|
|
|
|
self.db.desc = """
|
|
|wThe Great Smithy|n
|
|
|
|
|yHeat blasts|n against your face as you enter the largest smithy
|
|
in the academy. The air shimmers with |ythermal distortion|n rising
|
|
from a dozen |ymagical forges|n that burn with flames of varying
|
|
colors—normal orange, enchanted blue, and the rare |ywhite-hot
|
|
dragon-fire|n used for working the most resilient alloys.
|
|
|
|
|yMassive anvils|n of steel, meteoric iron, and enchanted stone
|
|
ring with the |yconstant percussion|n of hammers. Apprentice smiths
|
|
work at smaller stations along the walls, while master artisans
|
|
occupy the central positions, their movements precise and practiced.
|
|
|YSparks cascade|n like fiery rain, magically contained within
|
|
safety barriers.
|
|
|
|
The walls are lined with |ytool racks|n holding every implement
|
|
of the metalworker's art—tongs in dozens of sizes, hammers from
|
|
delicate planishing to heavy sledges, chisels, punches, and
|
|
specialized magical implements. |YQuenching troughs|n line one
|
|
wall, filled with water, oil, and exotic magical solutions.
|
|
|
|
A |ycompleted works display|n near the entrance showcases exceptional
|
|
student projects—enchanted blades, intricate armor, and delicate
|
|
jewelry that demonstrate the heights of metallurgical artistry.
|
|
"""
|
|
|
|
self.db.atmosphere = {
|
|
"mood": "intense, physical, dangerous, creative",
|
|
"lighting": "fire-glow, orange and blue flames, flying sparks",
|
|
"sounds": "hammering, sizzling quenches, roaring flames, bellows",
|
|
"smells": "hot iron, coal smoke, quenching oil, sweat, sulfur",
|
|
"temperature": "extremely hot, heat shimmers visible"
|
|
}
|
|
|
|
self.db.exits = {
|
|
"south": "Workshop Wing Entrance",
|
|
"north": "Master Smith's Private Forge",
|
|
"east": "Armor Assembly Bay",
|
|
"up": "Enchanted Metallurgy Lab"
|
|
}
|
|
|
|
self.db.objects = [
|
|
"dozen magical forges with colored flames",
|
|
"massive anvils of various materials",
|
|
"complete tool racks with smithing implements",
|
|
"quenching troughs with multiple solutions",
|
|
"magical spark containment barriers",
|
|
"completed works display case",
|
|
"large bellows operated by apprentices",
|
|
"metal storage bins sorted by type",
|
|
"measuring and marking tools",
|
|
"enchantment application stations"
|
|
]
|
|
|
|
class AlchemyLaboratories(DefaultRoom):
|
|
"""
|
|
The primary alchemy and potion-making facility.
|
|
"""
|
|
|
|
def at_object_creation(self):
|
|
super().at_object_creation()
|
|
|
|
self.key = "Alchemy Laboratories"
|
|
self.aliases = ["alchemy lab", "potion workshop", "brewing hall"]
|
|
|
|
self.db.desc = """
|
|
|wAlchemy Laboratories|n
|
|
|
|
The pungent aroma of |yhundreds of reagents|n greets you in this
|
|
sprawling laboratory complex. The space is divided into |ystations|n
|
|
by tall workbenches of |yslate and acid-resistant oak|n, each
|
|
equipped with a |yfull array of alchemical equipment|n. The lighting
|
|
is carefully controlled—neither too bright nor too dim—perfect
|
|
for observing the subtle color changes that indicate reaction progress.
|
|
|
|
|yGlassware of every description|n hangs from overhead racks:
|
|
beakers, flasks, retorts, alembics, and specialized apparatus
|
|
for distillation, filtration, and crystallization. |YCabinets|n
|
|
along the walls hold organized reagents, from common herbs to
|
|
exotic monster parts, each labeled with |yprecautionary runes|n.
|
|
|
|
At the center of the room, a |yfume hood|n the size of a small
|
|
house contains the most dangerous experiments. Its magical
|
|
extraction system hums constantly, drawing away toxic vapors
|
|
before they can harm the alchemists. |YEmergency showers|n and
|
|
|yneutralizing stations|n stand ready at each corner.
|
|
|
|
|yStudent workstations|n show various stages of potion brewing—some
|
|
bubbling merrily, others frozen at precise temperatures, still
|
|
others glowing with inner light. The |xatmosphere of careful
|
|
concentration|n is palpable as practitioners measure, mix, and
|
|
monitor their creations.
|
|
"""
|
|
|
|
self.db.atmosphere = {
|
|
"mood": "focused, meticulous, slightly tense, scientific",
|
|
"lighting": "controlled magical illumination, colored by reactions",
|
|
"sounds": "bubbling, hissing, grinding, whispered calculations",
|
|
"smells": "herbs, chemicals, sulfur, flowers, acrid smoke",
|
|
"temperature": "controlled, varying by station requirements"
|
|
}
|
|
|
|
self.db.exits = {
|
|
"west": "Workshop Wing Entrance",
|
|
"north": "Advanced Brewing Chambers",
|
|
"east": "Reagent Storage Vault",
|
|
"down": "Potion Testing Range"
|
|
}
|
|
|
|
self.db.objects = [
|
|
"slate and oak workbenches with equipment",
|
|
"hanging racks of glassware",
|
|
"organized reagent cabinets",
|
|
"massive central fume hood",
|
|
"magical vapor extraction system",
|
|
"emergency safety stations",
|
|
"temperature-controlled brewing vessels",
|
|
"precise measurement scales",
|
|
"reagent compendium library",
|
|
"finished potion display and storage"
|
|
]
|
|
|
|
class WoodworkingStudio(DefaultRoom):
|
|
"""
|
|
The woodworking and carpentry workshop.
|
|
"""
|
|
|
|
def at_object_creation(self):
|
|
super().at_object_creation()
|
|
|
|
self.key = "Woodworking Studio"
|
|
self.aliases = ["wood shop", "carpentry", "carving hall"]
|
|
|
|
self.db.desc = """
|
|
|wWoodworking Studio|n
|
|
|
|
The |yscent of fresh sawdust and wood resin|n fills this well-lit
|
|
workshop dedicated to the crafting of wooden goods. Unlike the
|
|
heat of the smithy, the atmosphere here is |ycool and pleasant|n,
|
|
with excellent ventilation carrying away sawdust and finishing
|
|
fumes. Natural light floods through |ylarge north-facing windows|n,
|
|
supplemented by |ymagical illumination|n that reveals wood grain
|
|
without glare.
|
|
|
|
|yWorkbenches|n line the walls, each customized to its regular
|
|
user's height and preferences. |YHand tools|n hang in precise
|
|
arrangements—saws, chisels, planes, gouges, and hundreds of
|
|
other implements. |YPower tools|n enhanced by magical automation
|
|
occupy the central area: lathes, band saws, and joiners that
|
|
would take teams of workers to operate conventionally.
|
|
|
|
Racks of |yseasoned lumber|n stand organized by species and cut,
|
|
from common pine to exotic |ymana-wood|n harvested from enchanted
|
|
forests. A |yfinishing room|n at the back provides space for
|
|
applying stains, varnishes, and protective enchantments.
|
|
|
|
The walls display |yexamples of fine craftsmanship|n—carved panels,
|
|
intricate furniture, and magical wands in various stages of
|
|
completion. The |xatmosphere is one of patient precision|n, where
|
|
rushing leads to ruined work and careful attention yields masterpieces.
|
|
"""
|
|
|
|
self.db.atmosphere = {
|
|
"mood": "patient, focused, creative, grounded",
|
|
"lighting": "natural north light, soft magical supplement",
|
|
"sounds": "sawing, planing, gentle hammering, wood whispering",
|
|
"smells": "sawdust, wood resin, linseed oil, fresh lumber",
|
|
"temperature": "cool and comfortable, well-ventilated"
|
|
}
|
|
|
|
self.db.exits = {
|
|
"east": "Workshop Wing Entrance",
|
|
"north": "Wand Carving Studio",
|
|
"west": "Lumber Storage Yard",
|
|
"up": "Furniture Design Gallery"
|
|
}
|
|
|
|
self.db.objects = [
|
|
"customized workbenches for each user",
|
|
"organized hand tool collections",
|
|
"magically enhanced power tools",
|
|
"seasoned lumber racks by species",
|
|
"finishing room with ventilation",
|
|
"examples of fine craftsmanship",
|
|
"wand blanks and carving tools",
|
|
"wood species reference library",
|
|
"sharpening station for edge tools",
|
|
"dust collection magical system"
|
|
]
|
|
|
|
class ArtificingChambers(DefaultRoom):
|
|
"""
|
|
The underground chambers for magical device creation and enchanting.
|
|
"""
|
|
|
|
def at_object_creation(self):
|
|
super().at_object_creation()
|
|
|
|
self.key = "Artificing Chambers"
|
|
self.aliases = ["artificing", "enchantment lab", "device workshop"]
|
|
|
|
self.db.desc = """
|
|
|wArtificing Chambers|n
|
|
|
|
Descending into the |yArtificing Chambers|n feels like entering
|
|
another world. The stone walls here are |yancient|n, predating
|
|
much of the academy above, carved by unknown hands and later
|
|
reinforced with |ymagical wards|n. The air tastes of |ypower|n—
|
|
the accumulated residue of centuries of enchantment work.
|
|
|
|
The main chamber is |ycircular|n, with |yseven workstations|n
|
|
arranged around a |ycentral power nexus|n—a glowing crystal
|
|
formation that provides stable magical energy for charging
|
|
artifacts. Each station is |yspecially shielded|n to prevent
|
|
interference between simultaneous enchantment projects.
|
|
|
|
|yGlass cases|n along the walls contain |ydangerous magical
|
|
components|n—souls bound in gems, elemental essences, captured
|
|
starlight, and other materials that require careful handling.
|
|
|YRunes|n carved into the floor and ceiling provide containment
|
|
and focus for the energies manipulated here.
|
|
|
|
The |xatmosphere is heavy with potential|n. This is where
|
|
ordinary objects become magical artifacts, where the marriage
|
|
of craft and sorcery produces items of legend. The work requires
|
|
equal parts technical skill, magical aptitude, and creative
|
|
vision. |YMaster artificers|n move between stations, offering
|
|
guidance to students attempting their first permanent enchantments.
|
|
"""
|
|
|
|
self.db.atmosphere = {
|
|
"mood": "mysterious, powerful, focused, reverent",
|
|
"lighting": "glowing runes, crystal nexus, magical item auras",
|
|
"sounds": "humming power, whispered incantations, soft chimes",
|
|
"smells": "ozone, old stone, magical residues, rare incense",
|
|
"temperature": "cool and stable, climate controlled for artifacts"
|
|
}
|
|
|
|
self.db.exits = {
|
|
"up": "Workshop Wing Entrance",
|
|
"north": "Enchanted Vault",
|
|
"east": "Rune Inscription Studio",
|
|
"down": "Deep Containment"
|
|
}
|
|
|
|
self.db.objects = [
|
|
"seven shielded enchantment workstations",
|
|
"central power nexus crystal formation",
|
|
"glass cases with magical components",
|
|
"floor and ceiling containment runes",
|
|
"artifact charging stations",
|
|
"magical measuring instruments",
|
|
"enchantment formula library",
|
|
"emergency mana dampeners",
|
|
"artifact stabilization fields",
|
|
"master artificer consultation desk"
|
|
]
|