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
|
|
|
"""
|
|
|
|
|
Command sets
|
|
|
|
|
|
|
|
|
|
All commands in the game must be grouped in a cmdset. A given command
|
|
|
|
|
can be part of any number of cmdsets and cmdsets can be added/removed
|
|
|
|
|
and merged onto entities at runtime.
|
|
|
|
|
|
|
|
|
|
To create new commands to populate the cmdset, see
|
|
|
|
|
`commands/command.py`.
|
|
|
|
|
|
|
|
|
|
This module wraps the default command sets of Evennia; overloads them
|
|
|
|
|
to add/remove commands from the default lineup. You can create your
|
|
|
|
|
own cmdsets by inheriting from them or directly from `evennia.CmdSet`.
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
from evennia import default_cmds
|
build: second pass — rich descriptions, custom commands, README
- world/rebuild_world.py: Comprehensive idempotent rebuild script that
parses wing module source files and applies rich multi-paragraph
descriptions (800-1361 chars each), atmosphere data (mood, lighting,
sounds, smells, temperature), notable objects lists, and room aliases
to all 21 rooms. Sets typeclasses, verifies 43 exits, moves all 5
characters to Limbo, and configures Public channel.
- commands/command.py: Added 5 new custom commands:
@status - Agent status (location, wing, online users, uptime)
@map - ASCII map of current wing
@academy - Overview of all 4 wings with room counts
smell/sniff - Sensory command using room atmosphere data
listen/hear - Sensory command using room atmosphere data
- commands/default_cmdsets.py: Registered all new commands in
the CharacterCmdSet
- README.md: Complete rewrite with project description, connection
info, ASCII room maps, agent accounts, rebuild instructions,
tech stack, and future plans (Gitea bridge, crisis training,
Nexus integration)
2026-03-31 16:24:18 +00:00
|
|
|
from commands.command import (
|
|
|
|
|
CmdExamine, CmdRooms,
|
|
|
|
|
CmdStatus, CmdMap, CmdAcademy,
|
|
|
|
|
CmdSmell, CmdListen,
|
|
|
|
|
)
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
class CharacterCmdSet(default_cmds.CharacterCmdSet):
|
|
|
|
|
"""
|
|
|
|
|
The `CharacterCmdSet` contains general in-game commands like `look`,
|
|
|
|
|
`get`, etc available on in-game Character objects. It is merged with
|
|
|
|
|
the `AccountCmdSet` when an Account puppets a Character.
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
key = "DefaultCharacter"
|
|
|
|
|
|
|
|
|
|
def at_cmdset_creation(self):
|
|
|
|
|
"""
|
|
|
|
|
Populates the cmdset
|
|
|
|
|
"""
|
|
|
|
|
super().at_cmdset_creation()
|
build: second pass — rich descriptions, custom commands, README
- world/rebuild_world.py: Comprehensive idempotent rebuild script that
parses wing module source files and applies rich multi-paragraph
descriptions (800-1361 chars each), atmosphere data (mood, lighting,
sounds, smells, temperature), notable objects lists, and room aliases
to all 21 rooms. Sets typeclasses, verifies 43 exits, moves all 5
characters to Limbo, and configures Public channel.
- commands/command.py: Added 5 new custom commands:
@status - Agent status (location, wing, online users, uptime)
@map - ASCII map of current wing
@academy - Overview of all 4 wings with room counts
smell/sniff - Sensory command using room atmosphere data
listen/hear - Sensory command using room atmosphere data
- commands/default_cmdsets.py: Registered all new commands in
the CharacterCmdSet
- README.md: Complete rewrite with project description, connection
info, ASCII room maps, agent accounts, rebuild instructions,
tech stack, and future plans (Gitea bridge, crisis training,
Nexus integration)
2026-03-31 16:24:18 +00:00
|
|
|
# First pass commands
|
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
|
|
|
self.add(CmdExamine)
|
|
|
|
|
self.add(CmdRooms)
|
build: second pass — rich descriptions, custom commands, README
- world/rebuild_world.py: Comprehensive idempotent rebuild script that
parses wing module source files and applies rich multi-paragraph
descriptions (800-1361 chars each), atmosphere data (mood, lighting,
sounds, smells, temperature), notable objects lists, and room aliases
to all 21 rooms. Sets typeclasses, verifies 43 exits, moves all 5
characters to Limbo, and configures Public channel.
- commands/command.py: Added 5 new custom commands:
@status - Agent status (location, wing, online users, uptime)
@map - ASCII map of current wing
@academy - Overview of all 4 wings with room counts
smell/sniff - Sensory command using room atmosphere data
listen/hear - Sensory command using room atmosphere data
- commands/default_cmdsets.py: Registered all new commands in
the CharacterCmdSet
- README.md: Complete rewrite with project description, connection
info, ASCII room maps, agent accounts, rebuild instructions,
tech stack, and future plans (Gitea bridge, crisis training,
Nexus integration)
2026-03-31 16:24:18 +00:00
|
|
|
# Second pass commands
|
|
|
|
|
self.add(CmdStatus)
|
|
|
|
|
self.add(CmdMap)
|
|
|
|
|
self.add(CmdAcademy)
|
|
|
|
|
self.add(CmdSmell)
|
|
|
|
|
self.add(CmdListen)
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
class AccountCmdSet(default_cmds.AccountCmdSet):
|
|
|
|
|
"""
|
|
|
|
|
This is the cmdset available to the Account at all times. It is
|
|
|
|
|
combined with the `CharacterCmdSet` when the Account puppets a
|
|
|
|
|
Character. It holds game-account-specific commands, channel
|
|
|
|
|
commands, etc.
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
key = "DefaultAccount"
|
|
|
|
|
|
|
|
|
|
def at_cmdset_creation(self):
|
|
|
|
|
"""
|
|
|
|
|
Populates the cmdset
|
|
|
|
|
"""
|
|
|
|
|
super().at_cmdset_creation()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UnloggedinCmdSet(default_cmds.UnloggedinCmdSet):
|
|
|
|
|
"""
|
|
|
|
|
Command set available to the Session before being logged in. This
|
|
|
|
|
holds commands like creating a new account, logging in, etc.
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
key = "DefaultUnloggedin"
|
|
|
|
|
|
|
|
|
|
def at_cmdset_creation(self):
|
|
|
|
|
"""
|
|
|
|
|
Populates the cmdset
|
|
|
|
|
"""
|
|
|
|
|
super().at_cmdset_creation()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SessionCmdSet(default_cmds.SessionCmdSet):
|
|
|
|
|
"""
|
|
|
|
|
This cmdset is made available on Session level once logged in. It
|
|
|
|
|
is empty by default.
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
key = "DefaultSession"
|
|
|
|
|
|
|
|
|
|
def at_cmdset_creation(self):
|
|
|
|
|
"""
|
|
|
|
|
This is the only method defined in a cmdset, called during
|
|
|
|
|
its creation. It should populate the set with command instances.
|
|
|
|
|
|
|
|
|
|
As and example we just add the empty base `Command` object.
|
|
|
|
|
It prints some info.
|
|
|
|
|
"""
|
|
|
|
|
super().at_cmdset_creation()
|