rom24-quickmud-python 2.9.2__tar.gz → 2.9.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/CHANGELOG.md +16 -0
- {rom24_quickmud_python-2.9.2/rom24_quickmud_python.egg-info → rom24_quickmud_python-2.9.4}/PKG-INFO +1 -1
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/combat/death.py +3 -3
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/shop.py +2 -2
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/handler.py +2 -2
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/mob_cmds.py +8 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/character.py +5 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/conversion.py +2 -2
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/object.py +20 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/rom_api.py +2 -2
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/skills/handlers.py +38 -2
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/pyproject.toml +1 -1
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4/rom24_quickmud_python.egg-info}/PKG-INFO +1 -1
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/rom24_quickmud_python.egg-info/SOURCES.txt +2 -0
- rom24_quickmud_python-2.9.4/tests/integration/test_inv013_add_object_carrier.py +140 -0
- rom24_quickmud_python-2.9.4/tests/integration/test_inv014_object_registry_membership.py +169 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/LICENSE +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/MANIFEST.in +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/README.md +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/air.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/arachnos.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/area.lst +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/astral.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/canyon.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/catacomb.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/chapel.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/daycare.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/draconia.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/dream.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/drow.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/dwarven.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/dylan.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/eastern.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/galaxy.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/gnome.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/grave.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/group.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/grove.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/haon.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/help.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/hitower.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/hood.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/immort.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/limbo.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/mahntor.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/marsh.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/mega1.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/midennir.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/midgaard.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/mirror.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/mobfact.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/moria.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/newthalos.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/nirvana.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/ofcol.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/ofcol2.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/olympus.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/plains.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/proto.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/pyramid.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/quifael.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/redferne.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/rom.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/school.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/sewer.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/shire.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/smurf.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/social.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/thalos.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/tohell.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/trollden.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/valley.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/area/wyvern.are +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/air.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/arachnos.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/area.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/area_0.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/astral.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/canyon.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/catacomb.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/chapel.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/daycare.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/draconia.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/dream.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/drow.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/dwarven.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/dylan.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/eastern.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/galaxy.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/gnome.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/grave.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/group.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/grove.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/haon.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/help.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/hitower.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/hood.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/immort.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/limbo.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/mahntor.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/marsh.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/mega1.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/midennir.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/midgaard.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/mirror.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/mobfact.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/moria.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/newthalos.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/nirvana.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/ofcol.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/ofcol2.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/olympus.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/plains.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/pyramid.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/quifael.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/redferne.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/rom.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/school.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/sewer.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/shire.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/smurf.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/social.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/thalos.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/tohell.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/trollden.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/valley.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas/wyvern.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/arachnos.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/area.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/area_0.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/astral_plane.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/catacombs.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/chapel.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/day_care.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/dragon_tower.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/drow_city.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/dwarven_kingdom.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/dylan's_area.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/elemental_canyon.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/galaxy.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/gangland.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/gnome_village.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/graveyard.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/group.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/haon_dor.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/help.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/high_tower.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/holy_grove.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/in_the_air.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/limbo.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/machine_dreams.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/mahn-tor.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/marsh.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/mega_city_one.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/miden'nir.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/midgaard.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/mob_factory.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/moria.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/mud_school.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/new_ofcol.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/new_thalos.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/nirvana.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/ofcol.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/old_thalos.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/olympus.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/plains.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/pyramid.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/quifael's.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/redferne's.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/rom.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/sands_of_sorrow.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/sewers.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/shire.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/smurfville.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/social.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/thalos.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/tohell.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/troll_den.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/valhalla.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/valley_of_the_elves.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/areas_backup/wyvern's_tower.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/help.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/players/.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/players/attacker.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/players/eddol.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/players/hero.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/players/sleeper.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/players/trouble.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/shops.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/skills.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/socials.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/data/time.json +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/MPDocs/examples.doc +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/MPDocs/hacker.doc +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/MPDocs/mobprog.doc +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/MPDocs/new_readme.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/QuickMUD.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/Rom2.4.doc +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/act.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/area.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/c_module_inventory.md +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/c_python_cross_reference.md +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/c_to_python_file_coverage.md +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/class.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/command.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/contrib.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/drool.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/hacker.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/license.doc +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/license.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/memory.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/new.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/pfile.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/port.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/pr_queue.md +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/python_architecture.md +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/python_module_inventory.md +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/security.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/sites.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/skill.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/sky.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/trad.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/vnum.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/doc/~$Rom2.4.doc +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/__main__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/account/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/account/account_manager.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/account/account_service.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/admin_logging/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/admin_logging/admin.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/admin_logging/agent_trace.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/advancement.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/affects/engine.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/affects/saves.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/agent/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/agent/agent_protocol.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/agent/character_agent.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/ai/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/ai/aggressive.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/characters/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/characters/conditions.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/characters/follow.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/combat/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/combat/assist.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/combat/engine.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/combat/kill_table.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/combat/messages.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/combat/safety.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/admin_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/advancement.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/affects.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/alias_cmds.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/auto_settings.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/build.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/channels.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/character.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/combat.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/communication.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/compare.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/consider.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/consumption.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/decorators.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/dispatcher.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/doors.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/equipment.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/feedback.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/give.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/group_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/healer.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/help.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/imc.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/imm_admin.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/imm_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/imm_display.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/imm_emote.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/imm_load.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/imm_olc.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/imm_punish.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/imm_search.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/imm_server.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/imm_set.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/info.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/info_extended.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/inspection.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/inventory.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/liquids.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/magic_items.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/misc_info.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/misc_player.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/mobprog_tools.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/movement.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/murder.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/notes.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/obj_manipulation.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/player_config.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/player_info.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/position.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/remaining_rom.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/session.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/socials.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/thief_skills.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/commands/typo_guards.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/config.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/db/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/db/init.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/db/migrate_from_files.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/db/migrations.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/db/models.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/db/seed.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/db/serializers.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/db/session.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/devtools/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/devtools/agent_demo.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/entrypoint.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/game_loop.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/game_tick_scheduler.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/groups/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/groups/xp.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/imc/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/imc/commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/imc/network.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/imc/protocol.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/area_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/base_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/help_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/json_area_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/json_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/mob_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/mobprog_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/obj_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/reset_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/room_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/shop_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/social_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/loaders/specials_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/logging.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/magic/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/magic/effects.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/math/c_compat.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/math/stat_apps.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/mobprog.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/area.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/area_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/board.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/board_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/character_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/clans.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/classes.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/constants.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/help.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/help_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/json_io.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/mob.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/note.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/note_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/obj.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/object_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/player_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/races.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/room.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/room_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/shop.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/shop_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/skill.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/skill_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/social.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/social_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/titles.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/models/weapon_table.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/music/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/net/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/net/ansi.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/net/connection.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/net/protocol.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/net/session.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/net/ssh_server.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/net/telnet_server.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/network/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/network/websocket_server.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/network/websocket_session.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/network/websocket_stream.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/notes.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/olc/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/olc/editor_state.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/olc/save.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/registry.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/scripts/convert_are_to_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/scripts/convert_help_are_to_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/scripts/convert_player_to_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/scripts/convert_shops_to_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/scripts/convert_skills_to_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/scripts/convert_social_are_to_json.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/scripts/load_test_data.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/security/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/security/bans.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/security/hash_utils.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/server.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/skills/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/skills/groups.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/skills/metadata.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/skills/registry.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/skills/say_spell.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/spawning/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/spawning/mob_spawner.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/spawning/obj_spawner.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/spawning/reset_handler.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/spawning/templates.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/spec_funs.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/time.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/utils/act.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/utils/bit.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/utils/fix_sex.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/utils/olc_tables.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/utils/poses.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/utils/prefix_lookup.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/utils/prompt.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/utils/rng_mm.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/utils/string_editor.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/utils/text.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/wiznet.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/world/__init__.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/world/char_find.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/world/linking.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/world/look.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/world/movement.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/world/obj_find.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/world/time_persistence.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/world/vision.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/mud/world/world_state.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/rom24_quickmud_python.egg-info/dependency_links.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/rom24_quickmud_python.egg-info/entry_points.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/rom24_quickmud_python.egg-info/requires.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/rom24_quickmud_python.egg-info/top_level.txt +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/setup.cfg +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/setup.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/conftest.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/helpers.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/helpers_player.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/conftest.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_act_comm_gaps.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_act_enter_gaps.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_act_wiz_command_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_admin_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_advancement_con_app.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_advancement_wis_app.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_alias_command_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_architectural_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_auto_flags.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_auto_sacrifice_pers.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_auto_sequences.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_ban_command_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_bit_flag_string.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_bit_flag_value.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_bit_is_stat.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_boards_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_channels.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_character_advancement.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_character_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_character_creation_runtime.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_combat_dex_app.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_combat_str_app.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_communication_enhancement.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_compare_critical_gaps.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_config_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_consumables.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_container_retrieval.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_dam_message_pers.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_db2_loader_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_db_canonical_round_trip.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_death_and_corpses.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_affects.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_consider_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_equipment.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_examine_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_exits_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_help_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_inventory.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_look_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_password_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_practice_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_time_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_weather_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_where_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_who_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_do_worth.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_door_portal_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_drop_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_emote_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_environmental_effects.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_equipment_ac_calculations.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_equipment_system.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_fight_c_do_kill_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_fight_c_safe_room_damage_gate.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_flag_command_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_furniture_occupancy.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_get_room_messages.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_give_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_group_combat.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_healer_command_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_hedit_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_info_display.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_interp_dispatcher.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_interp_prefix_order.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_interp_trust.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_inv005_same_room_combat.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_inv006_fighting_pointer_coherence.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_inv008_persistence_coherence.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_inv009_registry_disconnect_cleanup.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_inv010_room_people_coherence.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_inv011_carry_weight_coherence.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_inv012_end_to_end.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_inv012_object_list_canonical.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_inv013_object_location_coherence.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_invisibility_combat.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_json_loader_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_lookup_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_message_delivery_no_duplicate.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mob_ai.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mob_cmds_assist.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mob_cmds_call.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mob_cmds_cast.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mob_cmds_damage.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mob_cmds_flee.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mob_cmds_junk.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mob_cmds_kill.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mob_cmds_oload.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mob_cmds_purge.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mob_cmds_transfer.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mobprog_edge_cases.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mobprog_greet_trigger.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mobprog_predicates.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mobprog_program_flow.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mobprog_scenarios.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_money_objects.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mpedit_001_interpret_mpedit.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mpedit_002_do_mpedit.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_mpedit_003_mprog_code_model.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_music_load_songs.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_music_play.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_nanny_login_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_nanny_saveload_runtime_path.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_new_player_workflow.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_numbered_get_syntax.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_001_run_olc_editor.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_007_redit_list_show.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_008_oedit_missing_cmds.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_009_medit_missing_cmds.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_010_015_do_olc_router.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_011_aedit_flag_toggle.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_012_014_editor_fallback.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_001_aedit_create.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_002_redit_create.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_003_redit_reset.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_004_redit_vnum_teleport.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_005_oedit_create.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_006_medit_create.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_007_aedit_show_flags.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_008_redit_show_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_009_oedit_show_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_010_medit_show_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_011_name_messages.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_012_aedit_reset.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_013_get_area_for_vnum_order.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_act_014_area_changed_protocol.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_alist.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_builders.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_commands_listing.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_descriptor_state.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_display_resets.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_do_resets_subcommands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_001_mob_defensive_flags.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_002_mob_form_parts_size_material.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_003_mob_mprogs.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_004_mob_shops.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_005_mob_spec_fun.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_006_object_level.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_007_object_affects.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_008_object_extra_descr.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_009_area_helps_round_trip.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_010_asave_area_dispatch.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_011_autosave_entry.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_012_npc_security_gate.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_013_area_list_social_prepend.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_olc_save_014_017_message_strings.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_pc_death_keeps_connection.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_pc_death_no_message_replay.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_pilot_integration.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_pit_timer_handling.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_player_config.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_player_npc_interaction.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_position_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_prompt_cmd_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_prompt_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_put_pit_timer.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_put_room_messages.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_put_weight_mult.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_recall_train_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_remove_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_room_light_tracking.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_room_retrieval.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_room_safety_features.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_runtime_bugs_2026_04_30.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_sacrifice_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_say_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_scan_broadcasts.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_shout_yell_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_skills_integration.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_skills_integration_combat_specials.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_socials.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_spell_affects_persistence.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_spell_casting.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_steal_command.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_string_editor_append.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_string_editor_edit.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_string_editor_first_arg.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_string_editor_format_string.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_string_editor_lineadd.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_string_editor_linedel.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_string_editor_merc_getline.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_string_editor_numlines.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_string_editor_proper.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_string_editor_replace.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_string_editor_string_add.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_string_editor_unpad.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_tables_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_tell_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_update_c_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_weapon_proc_pers.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/integration/test_weather_time.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_account_auth.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_act_comm_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_act_enter_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_act_info_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_act_obj_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_act_wiz_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_advancement.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_affects.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_agent_interface.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_alias_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_ansi.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_are_conversion.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_area_counts.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_area_exits.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_area_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_area_specials.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_bans.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_boards.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_builder_hedit.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_builder_stat_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_building.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_char_update_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat_assist.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat_damage_types.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat_death.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat_defenses_prob.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat_messages.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat_position_damage.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat_skills.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat_state.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat_surrender.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat_thac0.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_combat_thac0_engine.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_command_abbrev.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_command_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_communication.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_connection_motd.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_convert_are_to_json_cli.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_critical_function_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_damage_reduction.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_damage_reduction_integration.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_db_resets_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_db_seed.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_defense_flags.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_encumbrance.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_enter_portal.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_fighting_state.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_fix_sex.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_game_loop.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_game_loop_order.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_game_loop_wait_daze.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_golden_reference.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_handler_affects_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_hash_utils.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_healer.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_healer_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_healer_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_help_conversion.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_help_system.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_imc.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_json_io.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_json_model_instantiation.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_json_room_fields.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_load_midgaard.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_logging_admin.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_logging_rotation.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_mob_act_flags.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_mob_damage_modifiers.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_mobprog.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_mobprog_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_mobprog_helpers.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_mobprog_triggers.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_movement.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_movement_charm.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_movement_costs.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_movement_doors.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_movement_followers.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_movement_mobprog.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_movement_npc.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_movement_portals.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_movement_privacy.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_movement_visibility.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_music.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_nanny_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_networking_telnet.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_obj_loader.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_obj_update_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_olc_aedit.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_olc_medit.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_olc_oedit.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_olc_save.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_passive_skills_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_affect_flags.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_auto_settings.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_combat_attributes.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_conditions.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_creation.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_equipment.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_flags.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_info_commands.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_mechanics.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_prompt.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_resistance_flags.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_skills_spells.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_stats.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_title_description.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_player_wimpy.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_practice.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_prompt_clamps_hp.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_reset_levels.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_resets.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_rng_and_ccompat.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_rng_determinism.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_rng_dice.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_rom_api.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_runtime_models.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_saves_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_say_spell.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_scan_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_schema_validation.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_scripted_session.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_shop_conversion.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_shops.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skill_combat_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skill_conversion.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skill_envenom_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skill_haggle_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skill_hide_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skill_peek_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skill_pick_lock_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skill_recall_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skill_registry.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skill_steal_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_buffs.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_combat.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_conjuration.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_damage.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_debuffs.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_detection.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_healing.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_identify.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_learned.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_mass.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_misc.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_spells_cast_listing.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_skills_transport.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_social_conversion.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_social_placeholders.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spawning.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spec_fun_behaviors.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spec_funs.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spec_funs_extra.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_specials_loader_ext.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_area_effects_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_breath_weapons_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_buff_debuff_additional_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_buff_debuff_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_cancellation_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_charm_control_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_creation_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_critical_gameplay_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_damage_additional_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_detection_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_enchantment_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_farsight_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_final_nine_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_harm_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_healing_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_heat_metal_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_high_priority_missing_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_information_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_mass_healing_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_priority_high_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_shocking_grasp_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spell_travel_portal_rom_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spells_basic.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_spells_damage.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_state_transitions.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_telnet_server.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_thief_skills_dispatcher_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_time_daynight.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_time_persistence.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_utility_spells_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_weapon_damage.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_weapon_special_attacks.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_weapon_table_parity.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_websocket_server.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_wiznet.py +0 -0
- {rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4}/tests/test_world.py +0 -0
|
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.9.4]
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **`Character.add_object` did not set `obj.carried_by`** (`mud/models/character.py:542`): ROM `src/handler.c:1626 obj_to_char` sets `obj->carried_by = ch` atomically with the inventory append. The Python helper updated `inventory` + carry counters but left the canonical INV-013 carrier field as `None`, so every direct `add_object` caller silently produced an inventory item with no back-pointer to its carrier. Fix: `add_object` now sets `obj.location = self` (INV-013 property dispatch sets `carried_by` and clears `in_room` / `in_obj`).
|
|
14
|
+
- **`do_mpoload` bypassed `Character.add_object` entirely** (`mud/mob_cmds.py:651-655`, ROM `src/mob_cmds.c:603-607 → src/handler.c:1626 obj_to_char`): the inventory-mode branch did `inventory.append(obj)`, missing both the INV-013 `carried_by` field AND the INV-011 carry counters. Every MOBprog `mob oload <vnum>` left the script-mob's `carry_weight` and `carry_number` unchanged, so encumbrance skewed every time a mob scripted an item load. Fix: route through `ch.add_object(obj)`.
|
|
15
|
+
- Surfaced via the INV-012 follow-up scan of `do_mpoload`; existing `test_mob_cmds_oload.py` only checked `obj.level` and inventory membership, never asserting `carried_by` or carry counters. New `tests/integration/test_inv013_add_object_carrier.py` pins both behaviors (3 tests).
|
|
16
|
+
|
|
17
|
+
## [2.9.3]
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
- **`INV-014` — OBJECT-REGISTRY-MEMBERSHIP locked in** (`docs/parity/CROSS_FILE_INVARIANTS_TRACKER.md`, `tests/integration/test_inv014_object_registry_membership.py`): ROM `src/db.c:create_object` appends every freshly built `OBJ_DATA` to the global `object_list` unconditionally — every world-scan consumer (`src/magic.c:3737 spell_locate_object`, decay sweep, save) walks that list. Previously only `mud/spawning/obj_spawner.py:spawn_object` appended to `mud.models.obj.object_registry`; six other production sites built `Object` instances without registering, leaving freshly-created corpses, gore objects, money piles, shop clones, and DB-restored inventory invisible to `locate object`. Added `mud.models.object.create_object(prototype, *, instance_id=None)` as the canonical factory (appends and returns); routed every production construction site through it. `mud/skills/handlers.py:_iterate_world_objects` now walks `object_registry` first, computing the holder per ROM `src/magic.c:3747` (outermost `in_obj` chain → `carried_by` → `in_room` → `None` rendered as "somewhere"); a legacy room/character walk remains as a compat backstop for unit tests. Eight enforcement tests cover every construction path plus the homeless-object locate symptom.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- **`spell_locate_object` could not find homeless objects** (`mud/skills/handlers.py:_iterate_world_objects`): an object spawned but not yet placed (`in_room=None, carried_by=None, in_obj=None`) was skipped entirely, while ROM `src/magic.c:3756-3762` reports it as "one is in somewhere" (the `in_room == NULL` branch). Iterator now walks `object_registry` so registered-but-unplaced objects surface at parity with ROM.
|
|
24
|
+
- **Six production sites built `Object` instances without registering** (handler.py, combat/death.py ×2, rom_api.py, commands/shop.py fallback, models/conversion.py): `create_money`, `_fallback_gore`, `_fallback_corpse`, `recursive_clone`, `_clone_inventory_object` (when `spawn_object` returned `None`), and `load_objects_for_character` all bypassed `object_registry`. ROM `create_object` always appends. All six now route through `create_object` (or `spawn_object` where applicable).
|
|
25
|
+
|
|
10
26
|
## [2.9.2]
|
|
11
27
|
|
|
12
28
|
### Added
|
{rom24_quickmud_python-2.9.2/rom24_quickmud_python.egg-info → rom24_quickmud_python-2.9.4}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rom24-quickmud-python
|
|
3
|
-
Version: 2.9.
|
|
3
|
+
Version: 2.9.4
|
|
4
4
|
Summary: A modern Python port of the ROM 2.4b6 MUD engine with full telnet server and JSON world loading
|
|
5
5
|
Author-email: Mark Jedrzejczyk <mark.jedrzejczyk@gmail.com>
|
|
6
6
|
Maintainer-email: Mark Jedrzejczyk <mark.jedrzejczyk@gmail.com>
|
|
@@ -29,7 +29,7 @@ from mud.characters.follow import stop_follower
|
|
|
29
29
|
from mud.models.clans import get_clan_hall_vnum
|
|
30
30
|
from mud.models.races import get_race_by_index
|
|
31
31
|
from mud.models.obj import ObjIndex
|
|
32
|
-
from mud.models.object import Object
|
|
32
|
+
from mud.models.object import Object, create_object
|
|
33
33
|
from mud.models.social import expand_placeholders
|
|
34
34
|
from mud.spawning.obj_spawner import spawn_object
|
|
35
35
|
from mud.utils import rng_mm
|
|
@@ -74,7 +74,7 @@ def _fallback_gore(
|
|
|
74
74
|
description=description_template,
|
|
75
75
|
)
|
|
76
76
|
proto.item_type = int(item_type)
|
|
77
|
-
obj =
|
|
77
|
+
obj = create_object(proto)
|
|
78
78
|
obj.item_type = int(item_type)
|
|
79
79
|
return obj
|
|
80
80
|
|
|
@@ -341,7 +341,7 @@ def _fallback_corpse(vnum: int, *, item_type: ItemType) -> Object:
|
|
|
341
341
|
|
|
342
342
|
proto = ObjIndex(vnum=vnum, short_descr="the corpse of %s", description="The corpse of %s is lying here.")
|
|
343
343
|
proto.item_type = int(item_type)
|
|
344
|
-
corpse =
|
|
344
|
+
corpse = create_object(proto)
|
|
345
345
|
corpse.item_type = int(item_type)
|
|
346
346
|
return corpse
|
|
347
347
|
|
|
@@ -20,7 +20,7 @@ from mud.models.constants import (
|
|
|
20
20
|
ITEM_SELL_EXTRACT,
|
|
21
21
|
ITEM_VIS_DEATH,
|
|
22
22
|
)
|
|
23
|
-
from mud.models.object import Object
|
|
23
|
+
from mud.models.object import Object, create_object
|
|
24
24
|
from mud.registry import room_registry, shop_registry
|
|
25
25
|
from mud.skills import check_improve
|
|
26
26
|
from mud.spawning.obj_spawner import spawn_object
|
|
@@ -354,7 +354,7 @@ def _clone_inventory_object(template: Object) -> Object | None:
|
|
|
354
354
|
|
|
355
355
|
clone = spawn_object(getattr(proto, "vnum", 0))
|
|
356
356
|
if clone is None:
|
|
357
|
-
clone =
|
|
357
|
+
clone = create_object(proto)
|
|
358
358
|
|
|
359
359
|
# Mirror runtime overrides from the template copy so shop customisations persist.
|
|
360
360
|
clone.value = list(getattr(template, "value", clone.value))
|
|
@@ -892,7 +892,7 @@ def create_money(gold: int, silver: int) -> Object:
|
|
|
892
892
|
ItemType,
|
|
893
893
|
)
|
|
894
894
|
from mud.models.obj import ObjIndex
|
|
895
|
-
from mud.models.object import Object
|
|
895
|
+
from mud.models.object import Object, create_object
|
|
896
896
|
|
|
897
897
|
# ROM C handler.c:2432-2437 (validate input)
|
|
898
898
|
if gold < 0 or silver < 0 or (gold == 0 and silver == 0):
|
|
@@ -957,7 +957,7 @@ def create_money(gold: int, silver: int) -> Object:
|
|
|
957
957
|
wear_flags=int(WearFlag.TAKE),
|
|
958
958
|
weight=weight,
|
|
959
959
|
)
|
|
960
|
-
obj =
|
|
960
|
+
obj = create_object(proto)
|
|
961
961
|
obj.item_type = int(ItemType.MONEY)
|
|
962
962
|
obj.short_descr = short_descr
|
|
963
963
|
obj.cost = cost
|
|
@@ -648,11 +648,19 @@ def do_mpoload(ch: Character, argument: str) -> None:
|
|
|
648
648
|
if mode.startswith("r"):
|
|
649
649
|
room.add_object(obj)
|
|
650
650
|
return
|
|
651
|
+
# mirroring ROM src/mob_cmds.c:603-607 → src/handler.c:1626 obj_to_char.
|
|
652
|
+
# Route through Character.add_object so the INV-013 carrier field
|
|
653
|
+
# and INV-011 carry counters stay in lockstep with inventory.
|
|
654
|
+
add = getattr(ch, "add_object", None)
|
|
655
|
+
if callable(add):
|
|
656
|
+
add(obj)
|
|
657
|
+
return
|
|
651
658
|
inventory = getattr(ch, "inventory", None)
|
|
652
659
|
if inventory is None:
|
|
653
660
|
inventory = []
|
|
654
661
|
ch.inventory = inventory
|
|
655
662
|
inventory.append(obj)
|
|
663
|
+
obj.location = ch
|
|
656
664
|
|
|
657
665
|
|
|
658
666
|
def _resolve_transfer_location(ch: Character, token: str) -> Room | None:
|
|
@@ -540,7 +540,12 @@ class Character:
|
|
|
540
540
|
return base_weight + silver // 10 + (gold * 2) // 5
|
|
541
541
|
|
|
542
542
|
def add_object(self, obj: Object) -> None:
|
|
543
|
+
# mirroring ROM src/handler.c:1626 obj_to_char — the carrier
|
|
544
|
+
# field is set atomically with the inventory append. Using the
|
|
545
|
+
# INV-013 `obj.location` property dispatch sets `carried_by`
|
|
546
|
+
# and clears `in_room` / `in_obj` per the property contract.
|
|
543
547
|
self.inventory.append(obj)
|
|
548
|
+
obj.location = self
|
|
544
549
|
self.carry_number += _object_carry_number(obj)
|
|
545
550
|
self._recalculate_carry_weight()
|
|
546
551
|
|
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from mud.db.models import Character as DBCharacter
|
|
4
4
|
from mud.db.models import ObjectInstance as DBObjectInstance
|
|
5
|
-
from mud.models.object import Object
|
|
5
|
+
from mud.models.object import Object, create_object
|
|
6
6
|
from mud.registry import obj_registry
|
|
7
7
|
|
|
8
8
|
|
|
@@ -14,7 +14,7 @@ def load_objects_for_character(db_char: DBCharacter) -> tuple[list[Object], dict
|
|
|
14
14
|
proto = obj_registry.get(inst.prototype_vnum)
|
|
15
15
|
if not proto:
|
|
16
16
|
continue
|
|
17
|
-
obj =
|
|
17
|
+
obj = create_object(proto, instance_id=inst.id)
|
|
18
18
|
if inst.location and inst.location.startswith("equipment:"):
|
|
19
19
|
slot = inst.location.split(":", 1)[1]
|
|
20
20
|
equipment[slot] = obj
|
|
@@ -146,3 +146,23 @@ class Object:
|
|
|
146
146
|
self.in_room = value # type: ignore[assignment]
|
|
147
147
|
self.carried_by = None
|
|
148
148
|
self.in_obj = None
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def create_object(prototype: ObjIndex, *, instance_id: int | None = None) -> Object:
|
|
152
|
+
"""Build a new ``Object`` and register it on ``object_registry``.
|
|
153
|
+
|
|
154
|
+
INV-014 OBJECT-REGISTRY-MEMBERSHIP: ROM ``src/db.c:create_object``
|
|
155
|
+
appends every freshly built ``OBJ_DATA`` to the global
|
|
156
|
+
``object_list``. ``mud.models.obj.object_registry`` is the canonical
|
|
157
|
+
Python equivalent; world-scan consumers (``spell_locate_object`` and
|
|
158
|
+
any future iteration over every live object) rely on it being
|
|
159
|
+
complete. Every Python ``Object(...)`` construction site that does
|
|
160
|
+
not already go through ``mud.spawning.obj_spawner.spawn_object``
|
|
161
|
+
must call this helper.
|
|
162
|
+
"""
|
|
163
|
+
|
|
164
|
+
from mud.models.obj import object_registry
|
|
165
|
+
|
|
166
|
+
obj = Object(instance_id=instance_id, prototype=prototype)
|
|
167
|
+
object_registry.append(obj)
|
|
168
|
+
return obj
|
|
@@ -658,7 +658,7 @@ def recursive_clone(obj: Object, clone_to: Object | None = None) -> Object:
|
|
|
658
658
|
Cloned object with all contents
|
|
659
659
|
"""
|
|
660
660
|
from mud.models.obj import ObjIndex
|
|
661
|
-
from mud.models.object import Object
|
|
661
|
+
from mud.models.object import Object, create_object
|
|
662
662
|
|
|
663
663
|
if not obj.prototype:
|
|
664
664
|
proto = ObjIndex(
|
|
@@ -678,7 +678,7 @@ def recursive_clone(obj: Object, clone_to: Object | None = None) -> Object:
|
|
|
678
678
|
else:
|
|
679
679
|
proto = obj.prototype
|
|
680
680
|
|
|
681
|
-
new_obj =
|
|
681
|
+
new_obj = create_object(proto)
|
|
682
682
|
|
|
683
683
|
for content in obj.contained_items:
|
|
684
684
|
recursive_clone(content, new_obj)
|
|
@@ -857,16 +857,52 @@ def _object_name_matches(obj: Object, search: str) -> bool:
|
|
|
857
857
|
|
|
858
858
|
|
|
859
859
|
def _iterate_world_objects():
|
|
860
|
-
"""Yield (object, holder) pairs mirroring ROM ``object_list
|
|
860
|
+
"""Yield ``(object, holder)`` pairs mirroring ROM ``object_list``.
|
|
861
|
+
|
|
862
|
+
INV-014 OBJECT-REGISTRY-MEMBERSHIP: ``object_registry`` is the
|
|
863
|
+
canonical Python equivalent of ROM ``object_list``. The primary
|
|
864
|
+
iteration walks it directly so that registered-but-unplaced objects
|
|
865
|
+
(e.g. transiently between ``extract`` and re-placement, or freshly
|
|
866
|
+
spawned before being put in a room) are surfaced exactly as ROM
|
|
867
|
+
``spell_locate_object`` (src/magic.c:3737) sees them.
|
|
868
|
+
|
|
869
|
+
For each registered obj the holder is computed per ROM
|
|
870
|
+
src/magic.c:3747: walk the ``in_obj`` chain to the outermost
|
|
871
|
+
container, then prefer ``carried_by`` over ``in_room`` (``None``
|
|
872
|
+
if neither is set, rendered as "somewhere").
|
|
873
|
+
|
|
874
|
+
A secondary walk of ``room_registry`` / ``character_registry``
|
|
875
|
+
backstops legacy unit tests that build ``Object`` instances directly
|
|
876
|
+
without going through ``create_object`` / ``spawn_object``; the seen
|
|
877
|
+
set dedupes by identity so registered objects are not yielded twice.
|
|
878
|
+
"""
|
|
879
|
+
|
|
880
|
+
from mud.models.obj import object_registry
|
|
861
881
|
|
|
862
882
|
seen: set[int] = set()
|
|
863
883
|
|
|
864
|
-
def
|
|
884
|
+
def _yield(obj: Object, holder: object):
|
|
865
885
|
ident = id(obj)
|
|
866
886
|
if ident in seen:
|
|
867
887
|
return
|
|
868
888
|
seen.add(ident)
|
|
869
889
|
yield obj, holder
|
|
890
|
+
|
|
891
|
+
for obj in list(object_registry):
|
|
892
|
+
outer = obj
|
|
893
|
+
while getattr(outer, "in_obj", None) is not None:
|
|
894
|
+
outer = outer.in_obj
|
|
895
|
+
carried_by = getattr(outer, "carried_by", None)
|
|
896
|
+
if carried_by is not None:
|
|
897
|
+
yield from _yield(obj, carried_by)
|
|
898
|
+
continue
|
|
899
|
+
in_room = getattr(outer, "in_room", None)
|
|
900
|
+
yield from _yield(obj, in_room)
|
|
901
|
+
|
|
902
|
+
def _walk(obj: Object, holder: object):
|
|
903
|
+
if id(obj) in seen:
|
|
904
|
+
return
|
|
905
|
+
yield from _yield(obj, holder)
|
|
870
906
|
children: list[Object] = []
|
|
871
907
|
contained = getattr(obj, "contained_items", None)
|
|
872
908
|
if isinstance(contained, list):
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "rom24-quickmud-python"
|
|
7
|
-
version = "2.9.
|
|
7
|
+
version = "2.9.4"
|
|
8
8
|
description = "A modern Python port of the ROM 2.4b6 MUD engine with full telnet server and JSON world loading"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
{rom24_quickmud_python-2.9.2 → rom24_quickmud_python-2.9.4/rom24_quickmud_python.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rom24-quickmud-python
|
|
3
|
-
Version: 2.9.
|
|
3
|
+
Version: 2.9.4
|
|
4
4
|
Summary: A modern Python port of the ROM 2.4b6 MUD engine with full telnet server and JSON world loading
|
|
5
5
|
Author-email: Mark Jedrzejczyk <mark.jedrzejczyk@gmail.com>
|
|
6
6
|
Maintainer-email: Mark Jedrzejczyk <mark.jedrzejczyk@gmail.com>
|
|
@@ -703,7 +703,9 @@ tests/integration/test_inv010_room_people_coherence.py
|
|
|
703
703
|
tests/integration/test_inv011_carry_weight_coherence.py
|
|
704
704
|
tests/integration/test_inv012_end_to_end.py
|
|
705
705
|
tests/integration/test_inv012_object_list_canonical.py
|
|
706
|
+
tests/integration/test_inv013_add_object_carrier.py
|
|
706
707
|
tests/integration/test_inv013_object_location_coherence.py
|
|
708
|
+
tests/integration/test_inv014_object_registry_membership.py
|
|
707
709
|
tests/integration/test_invisibility_combat.py
|
|
708
710
|
tests/integration/test_json_loader_parity.py
|
|
709
711
|
tests/integration/test_lookup_parity.py
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"""INV-013/INV-011 follow-up: ``Character.add_object`` must set
|
|
2
|
+
``obj.carried_by`` and update carry counters per ROM
|
|
3
|
+
``src/handler.c:1626 obj_to_char``.
|
|
4
|
+
|
|
5
|
+
ROM ``obj_to_char`` does three things atomically:
|
|
6
|
+
|
|
7
|
+
obj->next_content = ch->carrying;
|
|
8
|
+
ch->carrying = obj;
|
|
9
|
+
obj->carried_by = ch;
|
|
10
|
+
obj->in_room = NULL;
|
|
11
|
+
obj->in_obj = NULL;
|
|
12
|
+
ch->carry_number += get_obj_number(obj);
|
|
13
|
+
ch->carry_weight += get_obj_weight(obj);
|
|
14
|
+
|
|
15
|
+
The Python ``Character.add_object`` previously updated
|
|
16
|
+
``inventory`` + carry counters but never set ``obj.carried_by``, so
|
|
17
|
+
the canonical INV-013 carrier field stayed ``None`` for every direct
|
|
18
|
+
``add_object`` caller. Per the INV-013 property dispatch,
|
|
19
|
+
``obj.location = self`` is the convergent way to set the field and
|
|
20
|
+
clear the other two (``in_room``, ``in_obj``).
|
|
21
|
+
|
|
22
|
+
Surfaced through the ``do_mpoload`` audit: the script command
|
|
23
|
+
appended directly to ``ch.inventory`` instead of going through
|
|
24
|
+
``add_object``, so it hit BOTH gaps — the carrier field stayed unset
|
|
25
|
+
AND the carry counters drifted. Both regression tests live here so
|
|
26
|
+
``Character.add_object`` and ``do_mpoload`` are pinned to ROM
|
|
27
|
+
contracts together.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
from __future__ import annotations
|
|
31
|
+
|
|
32
|
+
import pytest
|
|
33
|
+
|
|
34
|
+
from mud.mob_cmds import do_mpoload
|
|
35
|
+
from mud.models.character import Character
|
|
36
|
+
from mud.models.obj import ObjIndex
|
|
37
|
+
from mud.models.room import Room
|
|
38
|
+
from mud.registry import obj_registry, room_registry
|
|
39
|
+
from mud.spawning.obj_spawner import spawn_object
|
|
40
|
+
|
|
41
|
+
_TEST_VNUM = 91510
|
|
42
|
+
_ROOM_VNUM = 9511
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
@pytest.fixture
|
|
46
|
+
def add_room() -> Room:
|
|
47
|
+
room = room_registry.get(_ROOM_VNUM)
|
|
48
|
+
if room is None:
|
|
49
|
+
room = Room(vnum=_ROOM_VNUM, name="Add-Object Test Room")
|
|
50
|
+
room_registry[_ROOM_VNUM] = room
|
|
51
|
+
room.contents.clear()
|
|
52
|
+
room.people.clear()
|
|
53
|
+
return room
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
@pytest.fixture(autouse=True)
|
|
57
|
+
def _register_proto():
|
|
58
|
+
proto = ObjIndex(
|
|
59
|
+
vnum=_TEST_VNUM,
|
|
60
|
+
name="anvil",
|
|
61
|
+
short_descr="an anvil",
|
|
62
|
+
description="A heavy anvil.",
|
|
63
|
+
item_type=1,
|
|
64
|
+
level=5,
|
|
65
|
+
weight=20,
|
|
66
|
+
value=[0, 0, 0, 0, 0],
|
|
67
|
+
)
|
|
68
|
+
obj_registry[_TEST_VNUM] = proto
|
|
69
|
+
yield
|
|
70
|
+
obj_registry.pop(_TEST_VNUM, None)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
@pytest.fixture
|
|
74
|
+
def carrier(add_room: Room) -> Character:
|
|
75
|
+
ch = Character(name="Carrier", is_npc=True)
|
|
76
|
+
ch.level = 30
|
|
77
|
+
ch.trust = 30
|
|
78
|
+
add_room.add_character(ch)
|
|
79
|
+
return ch
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def test_add_object_sets_carried_by(carrier: Character) -> None:
|
|
83
|
+
"""``Character.add_object`` must set ``obj.carried_by`` per
|
|
84
|
+
ROM ``src/handler.c:1626 obj_to_char``.
|
|
85
|
+
"""
|
|
86
|
+
|
|
87
|
+
obj = spawn_object(_TEST_VNUM)
|
|
88
|
+
assert obj is not None
|
|
89
|
+
|
|
90
|
+
carrier.add_object(obj)
|
|
91
|
+
|
|
92
|
+
assert obj in carrier.inventory
|
|
93
|
+
assert obj.carried_by is carrier, (
|
|
94
|
+
"Character.add_object appended to inventory without setting "
|
|
95
|
+
"obj.carried_by; ROM src/handler.c:1626 obj_to_char sets it "
|
|
96
|
+
"atomically and INV-013 makes carried_by the canonical "
|
|
97
|
+
"carrier field."
|
|
98
|
+
)
|
|
99
|
+
# INV-013: setting carried_by must clear the other two location
|
|
100
|
+
# fields atomically (property dispatch contract).
|
|
101
|
+
assert obj.in_room is None
|
|
102
|
+
assert obj.in_obj is None
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def test_mpoload_inventory_sets_carried_by(carrier: Character) -> None:
|
|
106
|
+
"""``do_mpoload`` (inventory mode) must route through
|
|
107
|
+
``Character.add_object`` so the carrier field is set.
|
|
108
|
+
"""
|
|
109
|
+
|
|
110
|
+
do_mpoload(carrier, f"{_TEST_VNUM}")
|
|
111
|
+
|
|
112
|
+
assert len(carrier.inventory) == 1
|
|
113
|
+
obj = carrier.inventory[0]
|
|
114
|
+
assert obj.carried_by is carrier, (
|
|
115
|
+
"do_mpoload appended to ch.inventory directly without calling "
|
|
116
|
+
"ch.add_object(obj); obj.carried_by stayed None, violating "
|
|
117
|
+
"INV-013 and ROM src/mob_cmds.c:603-607 → src/handler.c:1626 "
|
|
118
|
+
"obj_to_char."
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
def test_mpoload_inventory_updates_carry_counters(carrier: Character) -> None:
|
|
123
|
+
"""``do_mpoload`` (inventory mode) must update ``carry_weight``
|
|
124
|
+
and ``carry_number`` per ROM ``obj_to_char`` (INV-011).
|
|
125
|
+
"""
|
|
126
|
+
|
|
127
|
+
initial_weight = carrier.carry_weight
|
|
128
|
+
initial_number = carrier.carry_number
|
|
129
|
+
|
|
130
|
+
do_mpoload(carrier, f"{_TEST_VNUM}")
|
|
131
|
+
|
|
132
|
+
obj = carrier.inventory[0]
|
|
133
|
+
proto_weight = int(getattr(obj.prototype, "weight", 0) or 0)
|
|
134
|
+
assert carrier.carry_weight == initial_weight + proto_weight, (
|
|
135
|
+
f"carry_weight={carrier.carry_weight}; expected initial "
|
|
136
|
+
f"({initial_weight}) + obj.weight ({proto_weight}). do_mpoload "
|
|
137
|
+
"must route through Character.add_object so INV-011 carry "
|
|
138
|
+
"counters stay in lockstep with inventory contents."
|
|
139
|
+
)
|
|
140
|
+
assert carrier.carry_number == initial_number + 1
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"""INV-014 OBJECT-REGISTRY-MEMBERSHIP enforcement.
|
|
2
|
+
|
|
3
|
+
ROM ``src/db.c:create_object`` appends every freshly built OBJ_DATA to
|
|
4
|
+
the global ``object_list``. ROM ``src/magic.c:3737 spell_locate_object``
|
|
5
|
+
walks that list. After INV-012 consolidated the dual ``Object``/
|
|
6
|
+
``ObjectData`` runtime into one class, ``mud.models.obj.object_registry``
|
|
7
|
+
became the canonical Python equivalent of ``object_list`` — populated
|
|
8
|
+
by ``spawn_object`` and drained by ``mud.game_loop._extract_obj``.
|
|
9
|
+
|
|
10
|
+
Production sites that constructed ``Object`` instances WITHOUT appending
|
|
11
|
+
to the registry left those objects invisible to any
|
|
12
|
+
``object_registry``-driven world scan. The symptom shipped against
|
|
13
|
+
``spell_locate_object``: a freshly-created corpse, gore object, money
|
|
14
|
+
pile, shop clone, or DB-restored inventory was not findable by
|
|
15
|
+
``locate object`` despite being live in the world.
|
|
16
|
+
|
|
17
|
+
These tests pin every known construction path to the registry contract.
|
|
18
|
+
Add a test here when introducing a new ``Object(...)`` construction
|
|
19
|
+
site.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
from __future__ import annotations
|
|
23
|
+
|
|
24
|
+
from mud.combat.death import _fallback_corpse, _fallback_gore
|
|
25
|
+
from mud.commands.shop import _clone_inventory_object
|
|
26
|
+
from mud.db.models import Character as DBCharacter
|
|
27
|
+
from mud.db.models import ObjectInstance as DBObjectInstance
|
|
28
|
+
from mud.handler import create_money
|
|
29
|
+
from mud.models.character import Character, character_registry
|
|
30
|
+
from mud.models.constants import LEVEL_IMMORTAL, ItemType
|
|
31
|
+
from mud.models.obj import ObjIndex, object_registry
|
|
32
|
+
from mud.models.object import Object
|
|
33
|
+
from mud.models.conversion import load_objects_for_character
|
|
34
|
+
from mud.registry import obj_registry, room_registry
|
|
35
|
+
from mud.rom_api import recursive_clone
|
|
36
|
+
from mud.skills.handlers import locate_object
|
|
37
|
+
from mud.spawning.obj_spawner import spawn_object
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _registry_contains(obj: Object) -> bool:
|
|
41
|
+
"""Identity-based membership check.
|
|
42
|
+
|
|
43
|
+
``Object`` is a dataclass with default ``__eq__``; two distinct
|
|
44
|
+
instances sharing the same prototype and default field values compare
|
|
45
|
+
equal, so ``obj in object_registry`` can falsely succeed when an
|
|
46
|
+
*unrelated* like-shaped object happens to be in the registry. Use
|
|
47
|
+
``id`` to verify the actual instance was registered.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
return any(o is obj for o in object_registry)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def test_inv014_spawn_object_registers() -> None:
|
|
54
|
+
"""``spawn_object`` is the original ROM-faithful ``create_object`` mirror."""
|
|
55
|
+
|
|
56
|
+
proto = ObjIndex(vnum=4001, name="anvil", short_descr="an anvil")
|
|
57
|
+
obj_registry[4001] = proto
|
|
58
|
+
try:
|
|
59
|
+
obj = spawn_object(4001)
|
|
60
|
+
finally:
|
|
61
|
+
obj_registry.pop(4001, None)
|
|
62
|
+
|
|
63
|
+
assert obj is not None
|
|
64
|
+
assert _registry_contains(obj)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def test_inv014_create_money_registers() -> None:
|
|
68
|
+
"""ROM ``create_money`` (``src/handler.c``) emits an OBJ_DATA via ``create_object``."""
|
|
69
|
+
|
|
70
|
+
obj = create_money(gold=100, silver=0)
|
|
71
|
+
assert _registry_contains(obj)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def test_inv014_recursive_clone_registers() -> None:
|
|
75
|
+
"""ROM ``act_obj.c:do_clone`` builds clones through ``create_object``."""
|
|
76
|
+
|
|
77
|
+
proto = ObjIndex(vnum=4100, name="staff", short_descr="a staff")
|
|
78
|
+
template = Object(instance_id=None, prototype=proto)
|
|
79
|
+
object_registry.append(template)
|
|
80
|
+
|
|
81
|
+
clone = recursive_clone(template)
|
|
82
|
+
assert _registry_contains(clone)
|
|
83
|
+
assert clone is not template
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def test_inv014_fallback_corpse_registers() -> None:
|
|
87
|
+
"""``make_corpse`` fallback path still goes through ``create_object`` in ROM."""
|
|
88
|
+
|
|
89
|
+
corpse = _fallback_corpse(0, item_type=ItemType.CORPSE_NPC)
|
|
90
|
+
assert _registry_contains(corpse)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def test_inv014_fallback_gore_registers() -> None:
|
|
94
|
+
"""Gore fallback in ``death_cry`` constructs an OBJ_DATA — must register."""
|
|
95
|
+
|
|
96
|
+
gore = _fallback_gore(
|
|
97
|
+
0,
|
|
98
|
+
short_template="a bloody hunk",
|
|
99
|
+
description_template="A bloody hunk lies here.",
|
|
100
|
+
item_type=ItemType.FOOD,
|
|
101
|
+
)
|
|
102
|
+
assert _registry_contains(gore)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def test_inv014_clone_inventory_object_registers() -> None:
|
|
106
|
+
"""Shop stocking clones a template — ROM ``act_obj.c:do_buy`` calls ``create_object``."""
|
|
107
|
+
|
|
108
|
+
proto = ObjIndex(vnum=4200, name="potion", short_descr="a potion")
|
|
109
|
+
template = Object(instance_id=None, prototype=proto)
|
|
110
|
+
object_registry.append(template)
|
|
111
|
+
|
|
112
|
+
clone = _clone_inventory_object(template)
|
|
113
|
+
assert clone is not None
|
|
114
|
+
assert _registry_contains(clone)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def test_inv014_load_objects_for_character_registers() -> None:
|
|
118
|
+
"""Restoring a character's inventory from DB must put each obj on ``object_list``."""
|
|
119
|
+
|
|
120
|
+
proto = ObjIndex(vnum=4300, name="ring", short_descr="a ring")
|
|
121
|
+
obj_registry[4300] = proto
|
|
122
|
+
db_char = DBCharacter(name="Restored", level=1, hp=10, room_vnum=3001)
|
|
123
|
+
db_char.objects = [DBObjectInstance(prototype_vnum=4300, location="inventory")]
|
|
124
|
+
|
|
125
|
+
try:
|
|
126
|
+
inventory, _equipment = load_objects_for_character(db_char)
|
|
127
|
+
finally:
|
|
128
|
+
obj_registry.pop(4300, None)
|
|
129
|
+
|
|
130
|
+
assert len(inventory) == 1
|
|
131
|
+
assert _registry_contains(inventory[0])
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def test_inv014_locate_object_finds_homeless_object() -> None:
|
|
135
|
+
"""ROM ``spell_locate_object`` iterates ``object_list``; an unplaced
|
|
136
|
+
object (``in_room == NULL``, ``carried_by == NULL``, ``in_obj == NULL``)
|
|
137
|
+
is reported as "one is in somewhere" rather than skipped.
|
|
138
|
+
"""
|
|
139
|
+
|
|
140
|
+
caster = Character(
|
|
141
|
+
name="Diviner",
|
|
142
|
+
level=LEVEL_IMMORTAL,
|
|
143
|
+
trust=LEVEL_IMMORTAL,
|
|
144
|
+
is_npc=False,
|
|
145
|
+
)
|
|
146
|
+
character_registry.append(caster)
|
|
147
|
+
|
|
148
|
+
proto = ObjIndex(vnum=4400, name="orphan widget", short_descr="an orphan widget")
|
|
149
|
+
obj_registry[4400] = proto
|
|
150
|
+
try:
|
|
151
|
+
widget = spawn_object(4400)
|
|
152
|
+
finally:
|
|
153
|
+
obj_registry.pop(4400, None)
|
|
154
|
+
assert widget is not None
|
|
155
|
+
# Spawned but never placed — in_room/carried_by/in_obj all None.
|
|
156
|
+
assert widget.in_room is None
|
|
157
|
+
assert widget.carried_by is None
|
|
158
|
+
assert widget.in_obj is None
|
|
159
|
+
|
|
160
|
+
caster.messages.clear()
|
|
161
|
+
assert locate_object(caster, "widget") is True
|
|
162
|
+
# ROM's "in_room == NULL" branch prints "one is in somewhere\n\r"
|
|
163
|
+
# uppercased to "One is in somewhere".
|
|
164
|
+
assert any("somewhere" in msg for msg in caster.messages)
|
|
165
|
+
|
|
166
|
+
# Cleanup — autouse fixtures handle object_registry; character_registry
|
|
167
|
+
# is not auto-cleared in unit tests, so be explicit.
|
|
168
|
+
character_registry.remove(caster)
|
|
169
|
+
room_registry.clear()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|