rom24-quickmud-python 2.5.0__tar.gz → 2.5.2__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.5.0 → rom24_quickmud_python-2.5.2}/CHANGELOG.md +52 -0
- {rom24_quickmud_python-2.5.0/rom24_quickmud_python.egg-info → rom24_quickmud_python-2.5.2}/PKG-INFO +1 -1
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/combat.py +26 -88
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/healer.py +10 -10
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/magic_items.py +1 -2
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/game_loop.py +19 -13
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/character.py +27 -26
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/skills/handlers.py +24 -22
- rom24_quickmud_python-2.5.2/mud/skills/say_spell.py +153 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/spawning/reset_handler.py +16 -6
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/world/world_state.py +3 -9
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/pyproject.toml +1 -1
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2/rom24_quickmud_python.egg-info}/PKG-INFO +1 -1
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/rom24_quickmud_python.egg-info/SOURCES.txt +34 -1
- rom24_quickmud_python-2.5.2/tests/integration/test_spell_casting.py +365 -0
- rom24_quickmud_python-2.5.2/tests/test_act_comm_rom_parity.py +172 -0
- rom24_quickmud_python-2.5.2/tests/test_act_enter_rom_parity.py +154 -0
- rom24_quickmud_python-2.5.2/tests/test_act_info_rom_parity.py +65 -0
- rom24_quickmud_python-2.5.2/tests/test_act_obj_rom_parity.py +104 -0
- rom24_quickmud_python-2.5.2/tests/test_act_wiz_rom_parity.py +193 -0
- rom24_quickmud_python-2.5.2/tests/test_char_update_rom_parity.py +733 -0
- rom24_quickmud_python-2.5.2/tests/test_db_resets_rom_parity.py +1118 -0
- rom24_quickmud_python-2.5.2/tests/test_handler_affects_rom_parity.py +574 -0
- rom24_quickmud_python-2.5.2/tests/test_healer_rom_parity.py +100 -0
- rom24_quickmud_python-2.5.2/tests/test_nanny_rom_parity.py +217 -0
- rom24_quickmud_python-2.5.2/tests/test_obj_update_rom_parity.py +413 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_passive_skills_rom_parity.py +52 -0
- rom24_quickmud_python-2.5.2/tests/test_saves_rom_parity.py +530 -0
- rom24_quickmud_python-2.5.2/tests/test_say_spell.py +36 -0
- rom24_quickmud_python-2.5.2/tests/test_skill_combat_rom_parity.py +2779 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_area_effects_rom_parity.py +355 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_breath_weapons_rom_parity.py +204 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_buff_debuff_additional_rom_parity.py +551 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_buff_debuff_rom_parity.py +487 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_charm_control_rom_parity.py +300 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_creation_rom_parity.py +481 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_critical_gameplay_rom_parity.py +459 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_damage_additional_rom_parity.py +1137 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_detection_rom_parity.py +270 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_enchantment_rom_parity.py +314 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_final_nine_rom_parity.py +418 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_healing_rom_parity.py +340 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_high_priority_missing_rom_parity.py +312 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_information_rom_parity.py +588 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_priority_high_rom_parity.py +297 -0
- rom24_quickmud_python-2.5.2/tests/test_spell_travel_portal_rom_parity.py +579 -0
- rom24_quickmud_python-2.5.2/tests/test_utility_spells_parity.py +142 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/LICENSE +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/MANIFEST.in +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/README.md +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/air.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/arachnos.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/area.lst +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/astral.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/canyon.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/catacomb.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/chapel.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/daycare.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/draconia.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/dream.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/drow.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/dwarven.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/dylan.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/eastern.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/galaxy.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/gnome.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/grave.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/group.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/grove.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/haon.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/help.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/hitower.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/hood.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/immort.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/limbo.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/mahntor.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/marsh.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/mega1.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/midennir.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/midgaard.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/mirror.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/mobfact.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/moria.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/newthalos.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/nirvana.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/ofcol.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/ofcol2.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/olympus.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/plains.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/proto.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/pyramid.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/quifael.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/redferne.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/rom.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/school.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/sewer.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/shire.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/smurf.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/social.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/thalos.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/tohell.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/trollden.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/valley.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/area/wyvern.are +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/air.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/arachnos.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/area.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/area_0.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/astral.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/canyon.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/catacomb.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/chapel.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/daycare.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/draconia.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/dream.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/drow.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/dwarven.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/eastern.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/galaxy.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/gnome.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/group.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/grove.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/haon.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/help.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/hitower.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/hood.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/immort.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/limbo.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/mahntor.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/marsh.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/mega1.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/midennir.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/midgaard.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/mirror.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/mobfact.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/moria.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/newthalos.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/nirvana.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/ofcol.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/ofcol2.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/olympus.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/plains.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/pyramid.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/quifael.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/redferne.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/rom.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/school.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/sewer.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/shire.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/smurf.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/social.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/thalos.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/tohell.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/trollden.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/valley.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas/wyvern.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/arachnos.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/area.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/area_0.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/astral_plane.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/catacombs.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/chapel.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/day_care.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/dragon_tower.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/drow_city.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/dwarven_kingdom.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/dylan's_area.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/elemental_canyon.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/galaxy.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/gangland.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/gnome_village.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/graveyard.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/group.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/haon_dor.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/help.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/high_tower.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/holy_grove.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/in_the_air.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/limbo.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/machine_dreams.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/mahn-tor.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/marsh.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/mega_city_one.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/miden'nir.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/midgaard.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/mob_factory.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/moria.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/mud_school.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/new_ofcol.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/new_thalos.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/nirvana.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/ofcol.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/old_thalos.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/olympus.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/plains.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/pyramid.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/quifael's.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/redferne's.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/rom.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/sands_of_sorrow.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/sewers.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/shire.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/smurfville.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/social.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/thalos.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/tohell.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/troll_den.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/valhalla.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/valley_of_the_elves.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/areas_backup/wyvern's_tower.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/help.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/players/.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/players/attacker.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/players/eddol.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/players/hero.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/players/sleeper.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/players/trouble.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/shops.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/skills.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/socials.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/data/time.json +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/MPDocs/examples.doc +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/MPDocs/hacker.doc +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/MPDocs/mobprog.doc +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/MPDocs/new_readme.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/QuickMUD.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/Rom2.4.doc +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/act.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/area.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/c_module_inventory.md +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/c_python_cross_reference.md +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/c_to_python_file_coverage.md +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/class.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/command.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/contrib.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/drool.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/hacker.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/license.doc +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/license.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/memory.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/new.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/pfile.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/port.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/pr_queue.md +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/python_architecture.md +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/python_module_inventory.md +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/security.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/sites.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/skill.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/sky.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/trad.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/vnum.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/doc/~$Rom2.4.doc +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/__main__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/account/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/account/account_manager.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/account/account_service.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/admin_logging/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/admin_logging/admin.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/admin_logging/agent_trace.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/advancement.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/affects/engine.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/affects/saves.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/agent/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/agent/agent_protocol.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/agent/character_agent.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/ai/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/ai/aggressive.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/characters/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/characters/conditions.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/characters/follow.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/combat/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/combat/assist.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/combat/death.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/combat/engine.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/combat/kill_table.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/combat/messages.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/combat/safety.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/admin_commands.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/advancement.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/affects.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/alias_cmds.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/auto_settings.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/build.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/channels.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/character.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/communication.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/compare.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/consider.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/consumption.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/decorators.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/dispatcher.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/doors.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/equipment.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/feedback.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/give.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/group_commands.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/help.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/imc.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/imm_admin.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/imm_commands.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/imm_display.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/imm_emote.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/imm_load.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/imm_olc.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/imm_punish.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/imm_search.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/imm_server.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/imm_set.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/info.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/info_extended.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/inspection.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/inventory.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/liquids.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/misc_info.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/misc_player.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/mobprog_tools.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/movement.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/murder.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/notes.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/obj_manipulation.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/player_config.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/player_info.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/position.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/remaining_rom.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/session.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/shop.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/socials.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/thief_skills.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/commands/typo_guards.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/config.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/db/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/db/init.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/db/migrate_from_files.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/db/migrations.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/db/models.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/db/seed.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/db/session.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/devtools/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/devtools/agent_demo.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/entrypoint.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/game_tick_scheduler.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/groups/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/groups/xp.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/imc/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/imc/commands.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/imc/network.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/imc/protocol.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/area_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/base_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/help_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/json_area_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/json_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/mob_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/mobprog_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/obj_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/reset_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/room_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/shop_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/social_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/loaders/specials_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/logging.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/magic/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/magic/effects.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/math/c_compat.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/mob_cmds.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/mobprog.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/area.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/area_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/board.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/board_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/character_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/clans.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/classes.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/constants.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/conversion.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/help.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/help_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/json_io.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/mob.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/note.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/note_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/obj.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/object.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/object_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/player_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/races.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/room.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/room_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/shop.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/shop_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/skill.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/skill_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/social.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/models/social_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/music/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/net/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/net/ansi.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/net/connection.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/net/protocol.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/net/session.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/net/ssh_server.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/net/telnet_server.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/network/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/network/websocket_server.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/network/websocket_session.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/notes.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/olc/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/olc/save.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/persistence.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/registry.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/rom_api.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/scripts/convert_are_to_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/scripts/convert_help_are_to_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/scripts/convert_player_to_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/scripts/convert_shops_to_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/scripts/convert_skills_to_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/scripts/convert_social_are_to_json.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/scripts/load_test_data.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/security/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/security/bans.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/security/hash_utils.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/server.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/skills/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/skills/groups.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/skills/metadata.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/skills/registry.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/spawning/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/spawning/mob_spawner.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/spawning/obj_spawner.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/spawning/templates.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/spec_funs.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/time.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/utils/act.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/utils/rng_mm.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/utils/text.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/wiznet.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/world/__init__.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/world/char_find.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/world/linking.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/world/look.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/world/movement.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/world/obj_find.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/mud/world/vision.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/rom24_quickmud_python.egg-info/dependency_links.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/rom24_quickmud_python.egg-info/entry_points.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/rom24_quickmud_python.egg-info/requires.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/rom24_quickmud_python.egg-info/top_level.txt +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/setup.cfg +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/setup.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/conftest.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/helpers.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/helpers_player.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/integration/conftest.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/integration/test_architectural_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/integration/test_auto_sequences.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/integration/test_mobprog_scenarios.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/integration/test_new_player_workflow.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/integration/test_pilot_integration.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/integration/test_player_npc_interaction.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_account_auth.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_admin_commands.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_advancement.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_affects.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_agent_interface.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_alias_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_ansi.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_are_conversion.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_area_counts.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_area_exits.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_area_loader.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_area_specials.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_bans.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_boards.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_builder_hedit.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_builder_stat_commands.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_building.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat_assist.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat_damage_types.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat_death.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat_defenses_prob.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat_messages.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat_position_damage.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat_skills.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat_state.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat_surrender.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat_thac0.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_combat_thac0_engine.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_command_abbrev.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_command_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_commands.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_communication.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_connection_motd.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_convert_are_to_json_cli.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_critical_function_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_damage_reduction.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_damage_reduction_integration.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_db_seed.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_defense_flags.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_encumbrance.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_enter_portal.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_fighting_state.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_game_loop.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_game_loop_order.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_game_loop_wait_daze.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_golden_reference.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_hash_utils.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_healer.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_healer_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_help_conversion.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_help_system.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_imc.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_inventory_persistence.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_json_io.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_json_model_instantiation.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_json_room_fields.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_load_midgaard.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_logging_admin.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_logging_rotation.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_mob_act_flags.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_mob_damage_modifiers.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_mobprog.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_mobprog_commands.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_mobprog_helpers.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_mobprog_triggers.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_movement.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_movement_charm.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_movement_costs.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_movement_doors.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_movement_followers.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_movement_mobprog.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_movement_npc.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_movement_portals.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_movement_privacy.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_movement_visibility.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_music.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_networking_telnet.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_olc_aedit.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_olc_medit.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_olc_oedit.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_olc_save.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_persistence.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_affect_flags.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_auto_settings.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_combat_attributes.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_conditions.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_creation.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_equipment.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_flags.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_info_commands.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_mechanics.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_prompt.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_resistance_flags.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_save_format.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_skills_spells.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_stats.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_title_description.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_player_wimpy.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_practice.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_reset_levels.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_resets.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_rng_and_ccompat.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_rng_dice.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_rom_api.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_runtime_models.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_scan_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_schema_validation.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_scripted_session.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_shop_conversion.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_shops.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skill_conversion.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skill_envenom_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skill_haggle_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skill_hide_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skill_peek_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skill_pick_lock_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skill_recall_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skill_registry.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skill_steal_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills_buffs.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills_combat.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills_conjuration.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills_damage.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills_debuffs.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills_detection.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills_healing.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills_identify.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills_learned.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills_mass.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills_misc.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_skills_transport.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_social_conversion.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_social_placeholders.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_socials.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_spawning.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_spec_fun_behaviors.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_spec_funs.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_spec_funs_extra.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_specials_loader_ext.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_spell_cancellation_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_spell_farsight_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_spell_harm_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_spell_heat_metal_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_spell_mass_healing_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_spell_shocking_grasp_rom_parity.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_spells_basic.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_spells_damage.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_state_transitions.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_telnet_server.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_time_daynight.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_time_persistence.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_weapon_damage.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_weapon_special_attacks.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_wiznet.py +0 -0
- {rom24_quickmud_python-2.5.0 → rom24_quickmud_python-2.5.2}/tests/test_world.py +0 -0
|
@@ -7,6 +7,58 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.5.2] - 2025-12-30
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Command Integration ROM Parity Tests** (70 new tests):
|
|
15
|
+
- `tests/test_act_comm_rom_parity.py` - 23 tests for communication commands (ROM `act_comm.c`)
|
|
16
|
+
- Channel status display (`do_channels`)
|
|
17
|
+
- Communication flag toggles (`do_deaf`, `do_quiet`, `do_afk`)
|
|
18
|
+
- Channel blocking logic (QUIET, NOCHANNELS flags)
|
|
19
|
+
- Delete command NPC blocking
|
|
20
|
+
- Replay command behaviors
|
|
21
|
+
- `tests/test_act_enter_rom_parity.py` - 22 tests for portal mechanics (ROM `act_enter.c`)
|
|
22
|
+
- Random room selection with flag exclusions (`get_random_room`)
|
|
23
|
+
- Portal entry mechanics (closed, curse, trust checks)
|
|
24
|
+
- Portal charge system and flag handling (RANDOM, BUGGY, GOWITH)
|
|
25
|
+
- Follower cascading through portals
|
|
26
|
+
- `tests/test_act_wiz_rom_parity.py` - 25 tests for wiznet/admin commands (ROM `act_wiz.c`)
|
|
27
|
+
- Wiznet channel toggle and flag management
|
|
28
|
+
- Wiznet broadcast filtering (WIZ_ON, flag filters, min_level)
|
|
29
|
+
- Admin commands (freeze, transfer, goto, trust)
|
|
30
|
+
- Trust level enforcement
|
|
31
|
+
|
|
32
|
+
- **Documentation**:
|
|
33
|
+
- `COMMAND_INTEGRATION_PARITY_REPORT.md` - Comprehensive command integration test completion report
|
|
34
|
+
- Detailed ROM C to Python mapping for all 70 tests
|
|
35
|
+
- Test philosophy and design decisions
|
|
36
|
+
- ROM C source analysis summary
|
|
37
|
+
- Quality metrics and coverage matrix
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
|
|
41
|
+
- **ROM 2.4b6 Parity Certification Updates**:
|
|
42
|
+
- Updated total ROM parity test count: 735 → 805 tests (+70)
|
|
43
|
+
- Updated total test count: 2507 → 2577 tests (+70)
|
|
44
|
+
- Added Command Integration Tests section to certification document
|
|
45
|
+
- Updated ROM C source verification to include `act_comm.c`, `act_enter.c`, `act_wiz.c`
|
|
46
|
+
|
|
47
|
+
- **Test Coverage**:
|
|
48
|
+
- Increased command integration test coverage (communication, portal, wiznet modules)
|
|
49
|
+
- Total ROM parity tests: 805 (127 P0/P1/P2 + 608 combat/spells/skills + 70 command integration)
|
|
50
|
+
|
|
51
|
+
## [2.5.1] - 2025-12-30
|
|
52
|
+
|
|
53
|
+
### Added
|
|
54
|
+
|
|
55
|
+
- **Session Summary Documentation**:
|
|
56
|
+
- `P0_P1_P2_EXTENDED_TESTING_SESSION_SUMMARY.md` - Verification session summary documenting that all P0/P1/P2 ROM C parity tests were already complete from previous sessions (December 29-30, 2025)
|
|
57
|
+
|
|
58
|
+
### Changed
|
|
59
|
+
|
|
60
|
+
- Updated README badges and project status to reflect complete ROM C parity test coverage (735 total ROM parity tests including 127 P0/P1/P2 formula verification tests)
|
|
61
|
+
|
|
10
62
|
## [2.5.0] - 2025-12-29
|
|
11
63
|
|
|
12
64
|
### Added
|
{rom24_quickmud_python-2.5.0/rom24_quickmud_python.egg-info → rom24_quickmud_python-2.5.2}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rom24-quickmud-python
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.2
|
|
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>
|
|
@@ -246,14 +246,17 @@ def do_rescue(char: Character, args: str) -> str:
|
|
|
246
246
|
|
|
247
247
|
|
|
248
248
|
def _find_room_target(char: Character, name: str) -> Character | None:
|
|
249
|
+
"""Find a character in the same room by name.
|
|
250
|
+
|
|
251
|
+
ROM Reference: src/act_info.c get_char_room()
|
|
252
|
+
Note: ROM allows finding self - individual commands check victim == ch.
|
|
253
|
+
"""
|
|
249
254
|
room = getattr(char, "room", None)
|
|
250
255
|
if room is None or not name:
|
|
251
256
|
return None
|
|
252
257
|
|
|
253
258
|
lowered = name.lower()
|
|
254
259
|
for candidate in getattr(room, "people", []) or []:
|
|
255
|
-
if candidate is char:
|
|
256
|
-
continue
|
|
257
260
|
candidate_name = getattr(candidate, "name", "") or ""
|
|
258
261
|
if lowered in candidate_name.lower():
|
|
259
262
|
return candidate
|
|
@@ -797,51 +800,22 @@ def do_dirt(char: Character, args: str) -> str:
|
|
|
797
800
|
if victim is None:
|
|
798
801
|
return "They aren't here."
|
|
799
802
|
|
|
800
|
-
#
|
|
803
|
+
# Match ROM safety/validation gates in the command layer.
|
|
804
|
+
if victim is char:
|
|
805
|
+
return "Very funny."
|
|
806
|
+
|
|
801
807
|
victim_affected = getattr(victim, "affected_by", 0)
|
|
802
808
|
if victim_affected & AffectFlag.BLIND:
|
|
803
809
|
return "They're already blinded."
|
|
804
810
|
|
|
805
|
-
if victim is char:
|
|
806
|
-
return "Very funny."
|
|
807
|
-
|
|
808
|
-
# Safety checks
|
|
809
811
|
safety_msg = _kill_safety_message(char, victim)
|
|
810
812
|
if safety_msg:
|
|
811
813
|
return safety_msg
|
|
812
814
|
|
|
813
|
-
#
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
)
|
|
818
|
-
victim_dex = skill_handlers._coerce_int(
|
|
819
|
-
getattr(victim, "perm_stat", [13] * 5)[1] if isinstance(getattr(victim, "perm_stat", []), list) else 13
|
|
820
|
-
)
|
|
821
|
-
chance += char_dex - 2 * victim_dex
|
|
822
|
-
|
|
823
|
-
# Level modifier
|
|
824
|
-
char_level = skill_handlers._coerce_int(getattr(char, "level", 1))
|
|
825
|
-
victim_level = skill_handlers._coerce_int(getattr(victim, "level", 1))
|
|
826
|
-
chance += (char_level - victim_level) * 2
|
|
827
|
-
|
|
828
|
-
# Roll
|
|
829
|
-
if rng_mm.number_percent() < chance:
|
|
830
|
-
# Success - blind the victim
|
|
831
|
-
victim.affected_by = victim_affected | AffectFlag.BLIND
|
|
832
|
-
skill_registry._apply_wait_state(char, get_pulse_violence())
|
|
833
|
-
|
|
834
|
-
# Start combat if not already fighting
|
|
835
|
-
if not getattr(char, "fighting", None):
|
|
836
|
-
char.fighting = victim
|
|
837
|
-
if not getattr(victim, "fighting", None):
|
|
838
|
-
victim.fighting = char
|
|
839
|
-
|
|
840
|
-
check_killer(char, victim)
|
|
841
|
-
return f"You kick dirt into {getattr(victim, 'name', 'their')} eyes!"
|
|
842
|
-
else:
|
|
843
|
-
skill_registry._apply_wait_state(char, get_pulse_violence())
|
|
844
|
-
return "You kick dirt but miss their eyes."
|
|
815
|
+
# Delegate parity math/effects to the skill handler.
|
|
816
|
+
result = skill_handlers.dirt_kicking(char, target=victim)
|
|
817
|
+
check_killer(char, victim)
|
|
818
|
+
return result
|
|
845
819
|
|
|
846
820
|
|
|
847
821
|
def do_trip(char: Character, args: str) -> str:
|
|
@@ -943,57 +917,21 @@ def do_disarm(char: Character, args: str) -> str:
|
|
|
943
917
|
if victim is None:
|
|
944
918
|
return "You aren't fighting anyone."
|
|
945
919
|
|
|
946
|
-
#
|
|
947
|
-
|
|
948
|
-
victim_weapon = victim_equipped.get("wield") or victim_equipped.get("main_hand")
|
|
949
|
-
if victim_weapon is None:
|
|
950
|
-
return "Your opponent is not wielding a weapon."
|
|
951
|
-
|
|
952
|
-
# Attacker should have weapon (or hand-to-hand skill)
|
|
953
|
-
char_equipped = getattr(char, "equipped", {})
|
|
954
|
-
char_weapon = char_equipped.get("wield") or char_equipped.get("main_hand")
|
|
920
|
+
# Attacker must have a weapon, or meet ROM hand-to-hand / NPC OFF_DISARM exception.
|
|
921
|
+
caster_weapon = get_wielded_weapon(char)
|
|
955
922
|
hth_skill = char.skills.get("hand to hand", 0)
|
|
956
|
-
|
|
957
|
-
if char_weapon is None and hth_skill == 0:
|
|
923
|
+
if caster_weapon is None and hth_skill == 0:
|
|
958
924
|
return "You must wield a weapon to disarm."
|
|
959
925
|
|
|
960
|
-
#
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
chance = skill_level
|
|
965
|
-
|
|
966
|
-
# Dex vs Str
|
|
967
|
-
char_dex = skill_handlers._coerce_int(
|
|
968
|
-
getattr(char, "perm_stat", [13] * 5)[1] if isinstance(getattr(char, "perm_stat", []), list) else 13
|
|
969
|
-
)
|
|
970
|
-
victim_str = skill_handlers._coerce_int(
|
|
971
|
-
getattr(victim, "perm_stat", [13] * 5)[0] if isinstance(getattr(victim, "perm_stat", []), list) else 13
|
|
972
|
-
)
|
|
973
|
-
chance += char_dex - 2 * victim_str
|
|
974
|
-
|
|
975
|
-
# Level modifier
|
|
976
|
-
char_level = skill_handlers._coerce_int(getattr(char, "level", 1))
|
|
977
|
-
victim_level = skill_handlers._coerce_int(getattr(victim, "level", 1))
|
|
978
|
-
chance += (char_level - victim_level) * 2
|
|
979
|
-
|
|
980
|
-
skill_registry._apply_wait_state(char, get_pulse_violence())
|
|
926
|
+
# Victim must be wielding a weapon
|
|
927
|
+
victim_weapon = get_wielded_weapon(victim)
|
|
928
|
+
if victim_weapon is None:
|
|
929
|
+
return "Your opponent is not wielding a weapon."
|
|
981
930
|
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
# Success - remove weapon from victim
|
|
985
|
-
if "wield" in victim_equipped:
|
|
986
|
-
del victim_equipped["wield"]
|
|
987
|
-
elif "main_hand" in victim_equipped:
|
|
988
|
-
del victim_equipped["main_hand"]
|
|
989
|
-
|
|
990
|
-
# Drop to room
|
|
991
|
-
victim_room = getattr(victim, "room", None)
|
|
992
|
-
if victim_room and hasattr(victim_room, "contents"):
|
|
993
|
-
victim_room.contents.append(victim_weapon)
|
|
994
|
-
victim_weapon.in_room = victim_room
|
|
931
|
+
success = skill_handlers.disarm(char, target=victim)
|
|
932
|
+
check_killer(char, victim)
|
|
995
933
|
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
934
|
+
victim_name = getattr(victim, "name", "them")
|
|
935
|
+
if success:
|
|
936
|
+
return f"You disarm {victim_name}!"
|
|
937
|
+
return f"You fail to disarm {victim_name}."
|
|
@@ -21,16 +21,16 @@ def _find_healer(char: Character) -> object | None:
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
PRICE_GOLD = {
|
|
24
|
-
"light": 10,
|
|
25
|
-
"serious":
|
|
26
|
-
"critical": 25,
|
|
27
|
-
"heal": 50,
|
|
28
|
-
"blindness": 20,
|
|
29
|
-
"disease": 15,
|
|
30
|
-
"poison": 25,
|
|
31
|
-
"uncurse": 50,
|
|
32
|
-
"refresh": 5,
|
|
33
|
-
"mana": 10,
|
|
24
|
+
"light": 10, # ROM healer.c:88: cost = 1000 (10 gold)
|
|
25
|
+
"serious": 16, # ROM healer.c:96: cost = 1600 (16 gold) - NOTE: Display says 15g but actual cost is 16g!
|
|
26
|
+
"critical": 25, # ROM healer.c:104: cost = 2500 (25 gold)
|
|
27
|
+
"heal": 50, # ROM healer.c:112: cost = 5000 (50 gold)
|
|
28
|
+
"blindness": 20, # ROM healer.c:120: cost = 2000 (20 gold)
|
|
29
|
+
"disease": 15, # ROM healer.c:128: cost = 1500 (15 gold)
|
|
30
|
+
"poison": 25, # ROM healer.c:136: cost = 2500 (25 gold)
|
|
31
|
+
"uncurse": 50, # ROM healer.c:144: cost = 5000 (50 gold)
|
|
32
|
+
"refresh": 5, # ROM healer.c:161: cost = 500 (5 gold)
|
|
33
|
+
"mana": 10, # ROM healer.c:152: cost = 1000 (10 gold)
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
|
|
@@ -152,8 +152,7 @@ def do_recite(ch: Character, args: str) -> str:
|
|
|
152
152
|
if not scroll:
|
|
153
153
|
return "You do not have that scroll."
|
|
154
154
|
|
|
155
|
-
|
|
156
|
-
if scroll.item_type != ItemType.ITEM_SCROLL:
|
|
155
|
+
if scroll.item_type != ItemType.SCROLL:
|
|
157
156
|
return "You can recite only scrolls."
|
|
158
157
|
|
|
159
158
|
# Check level requirement
|
|
@@ -198,10 +198,12 @@ def hit_gain(character: Character) -> int:
|
|
|
198
198
|
gain = gain * getattr(room, "heal_rate", 100) // 100
|
|
199
199
|
|
|
200
200
|
furniture = getattr(character, "on", None)
|
|
201
|
-
if furniture is not None
|
|
202
|
-
|
|
203
|
-
if
|
|
204
|
-
|
|
201
|
+
if furniture is not None:
|
|
202
|
+
item_type = getattr(furniture.prototype, "item_type", None)
|
|
203
|
+
if item_type == ItemType.FURNITURE or item_type == int(ItemType.FURNITURE):
|
|
204
|
+
values = getattr(furniture, "value", [100, 100, 100, 100, 100])
|
|
205
|
+
if len(values) > 3:
|
|
206
|
+
gain = gain * int(values[3]) // 100
|
|
205
207
|
|
|
206
208
|
if _has_affect(character, AffectFlag.POISON):
|
|
207
209
|
gain //= 4
|
|
@@ -262,13 +264,15 @@ def mana_gain(character: Character) -> int:
|
|
|
262
264
|
if character.pcdata.condition[Condition.THIRST] == 0:
|
|
263
265
|
gain //= 2
|
|
264
266
|
|
|
265
|
-
gain = gain * getattr(room, "
|
|
267
|
+
gain = gain * getattr(room, "heal_rate", 100) // 100
|
|
266
268
|
|
|
267
269
|
furniture = getattr(character, "on", None)
|
|
268
|
-
if furniture is not None
|
|
269
|
-
|
|
270
|
-
if
|
|
271
|
-
|
|
270
|
+
if furniture is not None:
|
|
271
|
+
item_type = getattr(furniture.prototype, "item_type", None)
|
|
272
|
+
if item_type == ItemType.FURNITURE or item_type == int(ItemType.FURNITURE):
|
|
273
|
+
values = getattr(furniture, "value", [100, 100, 100, 100, 100])
|
|
274
|
+
if len(values) > 3:
|
|
275
|
+
gain = gain * int(values[3]) // 100
|
|
272
276
|
|
|
273
277
|
if _has_affect(character, AffectFlag.POISON):
|
|
274
278
|
gain //= 4
|
|
@@ -307,10 +311,12 @@ def move_gain(character: Character) -> int:
|
|
|
307
311
|
gain = gain * getattr(room, "heal_rate", 100) // 100
|
|
308
312
|
|
|
309
313
|
furniture = getattr(character, "on", None)
|
|
310
|
-
if furniture is not None
|
|
311
|
-
|
|
312
|
-
if
|
|
313
|
-
|
|
314
|
+
if furniture is not None:
|
|
315
|
+
item_type = getattr(furniture.prototype, "item_type", None)
|
|
316
|
+
if item_type == ItemType.FURNITURE or item_type == int(ItemType.FURNITURE):
|
|
317
|
+
values = getattr(furniture, "value", [100, 100, 100, 100, 100])
|
|
318
|
+
if len(values) > 3:
|
|
319
|
+
gain = gain * int(values[3]) // 100
|
|
314
320
|
|
|
315
321
|
if _has_affect(character, AffectFlag.POISON):
|
|
316
322
|
gain //= 4
|
|
@@ -260,20 +260,20 @@ class Character:
|
|
|
260
260
|
description: str | None = None
|
|
261
261
|
prompt: str | None = None
|
|
262
262
|
prefix: str | None = None
|
|
263
|
-
|
|
263
|
+
|
|
264
264
|
# Class/Race/Clan
|
|
265
265
|
sex: int = 0
|
|
266
266
|
ch_class: int = 0
|
|
267
267
|
race: int = 0
|
|
268
268
|
clan: int = 0
|
|
269
269
|
group: int = 0 # Group number for area repop (ROM: sh_int group)
|
|
270
|
-
|
|
270
|
+
|
|
271
271
|
# Levels and trust
|
|
272
272
|
level: int = 0
|
|
273
273
|
trust: int = 0
|
|
274
274
|
invis_level: int = 0
|
|
275
275
|
incog_level: int = 0
|
|
276
|
-
|
|
276
|
+
|
|
277
277
|
# Stats
|
|
278
278
|
hit: int = 0
|
|
279
279
|
max_hit: int = 0
|
|
@@ -284,76 +284,77 @@ class Character:
|
|
|
284
284
|
gold: int = 0
|
|
285
285
|
silver: int = 0
|
|
286
286
|
exp: int = 0
|
|
287
|
-
|
|
287
|
+
|
|
288
288
|
# Flags
|
|
289
289
|
act: int = 0
|
|
290
290
|
affected_by: int = 0
|
|
291
|
-
|
|
291
|
+
|
|
292
292
|
# Location
|
|
293
293
|
position: int = Position.STANDING
|
|
294
294
|
room: Room | None = None # ROM: in_room
|
|
295
295
|
was_in_room: Room | None = None # ROM: was_in_room
|
|
296
296
|
zone: object | None = None # ROM: AREA_DATA *zone
|
|
297
|
-
|
|
297
|
+
|
|
298
298
|
# Relationships
|
|
299
299
|
master: Character | None = None
|
|
300
300
|
leader: Character | None = None
|
|
301
301
|
pet: "Character | None" = None
|
|
302
302
|
reply: Character | None = None # ROM: reply target for tells
|
|
303
303
|
mprog_target: "Character | None" = None # ROM: mob program target
|
|
304
|
-
|
|
304
|
+
on: "Object | None" = None # ROM: furniture character is sitting/resting on (affects heal rate)
|
|
305
|
+
|
|
305
306
|
# Skills and training
|
|
306
307
|
practice: int = 0
|
|
307
308
|
train: int = 0
|
|
308
309
|
skills: dict[str, int] = field(default_factory=dict)
|
|
309
|
-
|
|
310
|
+
|
|
310
311
|
# Encumbrance
|
|
311
312
|
carry_weight: int = 0
|
|
312
313
|
carry_number: int = 0
|
|
313
|
-
|
|
314
|
+
|
|
314
315
|
# Combat stats
|
|
315
316
|
saving_throw: int = 0
|
|
316
317
|
alignment: int = 0
|
|
317
318
|
hitroll: int = 0
|
|
318
319
|
damroll: int = 0
|
|
319
320
|
wimpy: int = 0
|
|
320
|
-
|
|
321
|
+
|
|
321
322
|
# Display/UI
|
|
322
323
|
lines: int = DEFAULT_PAGE_LINES
|
|
323
324
|
newbie_help_seen: bool = False
|
|
324
|
-
|
|
325
|
+
|
|
325
326
|
# Time tracking
|
|
326
327
|
played: int = 0
|
|
327
328
|
logon: int = 0
|
|
328
329
|
timer: int = 0 # ROM: idle timer
|
|
329
|
-
|
|
330
|
+
|
|
330
331
|
# Stats (permanent and temporary modifiers)
|
|
331
332
|
perm_stat: list[int] = field(default_factory=list)
|
|
332
333
|
mod_stat: list[int] = field(default_factory=list)
|
|
333
|
-
|
|
334
|
+
|
|
334
335
|
# Body form and parts
|
|
335
336
|
form: int = 0
|
|
336
337
|
parts: int = 0
|
|
337
338
|
size: int = 0
|
|
338
339
|
material: str | None = None
|
|
339
340
|
off_flags: int = 0
|
|
340
|
-
|
|
341
|
+
|
|
341
342
|
# ROM parity: immunity/resistance/vulnerability bitvectors (merc.h)
|
|
342
343
|
imm_flags: int = 0
|
|
343
344
|
res_flags: int = 0
|
|
344
345
|
vuln_flags: int = 0
|
|
345
|
-
|
|
346
|
+
|
|
346
347
|
# Damage and attack type
|
|
347
348
|
damage: list[int] = field(default_factory=lambda: [0, 0, 0])
|
|
348
349
|
dam_type: int = 0
|
|
349
350
|
start_pos: int = 0
|
|
350
351
|
default_pos: int = 0
|
|
351
|
-
|
|
352
|
+
|
|
352
353
|
# Mob programs
|
|
353
354
|
mprog_delay: int = 0
|
|
354
355
|
mob_programs: list[MobProgram] = field(default_factory=list)
|
|
355
356
|
spec_fun: str | None = None # ROM: special function name
|
|
356
|
-
|
|
357
|
+
|
|
357
358
|
# Custom fields (Python-specific)
|
|
358
359
|
hometown_vnum: int = 0
|
|
359
360
|
pcdata: PCData | None = None
|
|
@@ -365,7 +366,7 @@ class Character:
|
|
|
365
366
|
connection: object | None = None
|
|
366
367
|
desc: object | None = None # ROM: DESCRIPTOR_DATA
|
|
367
368
|
is_admin: bool = False
|
|
368
|
-
|
|
369
|
+
|
|
369
370
|
# Communication and channels
|
|
370
371
|
imc_permission: str = "Mort" # IMC permission level (Notset/None/Mort/Imm/Admin/Imp)
|
|
371
372
|
muted_channels: set[str] = field(default_factory=set)
|
|
@@ -374,33 +375,33 @@ class Character:
|
|
|
374
375
|
wiznet: int = 0 # ROM: wiznet flags
|
|
375
376
|
comm: int = 0 # ROM: comm flags
|
|
376
377
|
log_commands: bool = False # Per-character admin logging flag mirroring ROM PLR_LOG
|
|
377
|
-
|
|
378
|
+
|
|
378
379
|
# Wait state and delays
|
|
379
380
|
wait: int = 0 # Wait-state (pulses) applied by actions like movement (ROM WAIT_STATE)
|
|
380
381
|
daze: int = 0 # Daze (pulses) — separate action delay used by ROM combat
|
|
381
|
-
|
|
382
|
+
|
|
382
383
|
# Armor class per index [AC_PIERCE, AC_BASH, AC_SLASH, AC_EXOTIC]
|
|
383
384
|
armor: list[int] = field(default_factory=lambda: [100, 100, 100, 100])
|
|
384
|
-
|
|
385
|
+
|
|
385
386
|
# Per-character command aliases: name -> expansion (pre-dispatch)
|
|
386
387
|
aliases: dict[str, str] = field(default_factory=dict)
|
|
387
|
-
|
|
388
|
+
|
|
388
389
|
# Optional defense chances (percent) for parity-friendly tests
|
|
389
390
|
shield_block_chance: int = 0
|
|
390
391
|
parry_chance: int = 0
|
|
391
392
|
dodge_chance: int = 0
|
|
392
|
-
|
|
393
|
+
|
|
393
394
|
# Combat skill levels (0-100) for multi-attack mechanics
|
|
394
395
|
second_attack_skill: int = 0
|
|
395
396
|
third_attack_skill: int = 0
|
|
396
397
|
enhanced_damage_skill: int = 0 # Enhanced damage skill level (0-100)
|
|
397
|
-
|
|
398
|
+
|
|
398
399
|
# Combat state - currently fighting target
|
|
399
400
|
fighting: Character | None = None
|
|
400
|
-
|
|
401
|
+
|
|
401
402
|
# Character type flag
|
|
402
403
|
is_npc: bool = True # Default to NPC, set to False for PCs
|
|
403
|
-
|
|
404
|
+
|
|
404
405
|
# Spell effects and character generation
|
|
405
406
|
spell_effects: dict[str, SpellEffect] = field(default_factory=dict) # Active spell effects keyed by skill name
|
|
406
407
|
default_weapon_vnum: int = 0
|
|
@@ -1354,7 +1354,7 @@ def bless(caster: Character, target: Character | None = None) -> bool:
|
|
|
1354
1354
|
if target is None:
|
|
1355
1355
|
raise ValueError("bless requires a target")
|
|
1356
1356
|
|
|
1357
|
-
if target.position == Position.FIGHTING:
|
|
1357
|
+
if target.position == Position.FIGHTING or target.has_spell_effect("bless"):
|
|
1358
1358
|
return False
|
|
1359
1359
|
|
|
1360
1360
|
level = max(getattr(caster, "level", 0), 0)
|
|
@@ -1890,31 +1890,29 @@ def chain_lightning(caster: Character, target: Character | None = None) -> bool:
|
|
|
1890
1890
|
if level <= 0:
|
|
1891
1891
|
break
|
|
1892
1892
|
|
|
1893
|
-
if found
|
|
1894
|
-
|
|
1893
|
+
if not found:
|
|
1894
|
+
if last_victim is caster:
|
|
1895
|
+
broadcast_room(
|
|
1896
|
+
room,
|
|
1897
|
+
"The bolt seems to have fizzled out.",
|
|
1898
|
+
exclude=caster,
|
|
1899
|
+
)
|
|
1900
|
+
_send_to_char(caster, "The bolt grounds out through your body.")
|
|
1901
|
+
break
|
|
1895
1902
|
|
|
1896
|
-
|
|
1903
|
+
last_victim = caster
|
|
1897
1904
|
broadcast_room(
|
|
1898
1905
|
room,
|
|
1899
|
-
"The bolt
|
|
1906
|
+
f"The bolt arcs to {caster_name}...whoops!",
|
|
1900
1907
|
exclude=caster,
|
|
1901
1908
|
)
|
|
1902
|
-
_send_to_char(caster, "
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
exclude=caster,
|
|
1910
|
-
)
|
|
1911
|
-
_send_to_char(caster, "You are struck by your own lightning!")
|
|
1912
|
-
damage = rng_mm.dice(level, 6)
|
|
1913
|
-
if saves_spell(level, caster, DamageType.LIGHTNING):
|
|
1914
|
-
damage = c_div(damage, 3)
|
|
1915
|
-
apply_damage(caster, caster, damage, DamageType.LIGHTNING, dt="chain lightning")
|
|
1916
|
-
any_hit = any_hit or damage > 0
|
|
1917
|
-
level -= 4
|
|
1909
|
+
_send_to_char(caster, "You are struck by your own lightning!")
|
|
1910
|
+
damage = rng_mm.dice(level, 6)
|
|
1911
|
+
if saves_spell(level, caster, DamageType.LIGHTNING):
|
|
1912
|
+
damage = c_div(damage, 3)
|
|
1913
|
+
apply_damage(caster, caster, damage, DamageType.LIGHTNING, dt="chain lightning")
|
|
1914
|
+
any_hit = any_hit or damage > 0
|
|
1915
|
+
level -= 4
|
|
1918
1916
|
|
|
1919
1917
|
return any_hit
|
|
1920
1918
|
|
|
@@ -3100,7 +3098,11 @@ def disarm(caster: Character, target: Character | None = None) -> bool:
|
|
|
3100
3098
|
victim_weapon.wear_loc = int(WearLocation.NONE)
|
|
3101
3099
|
|
|
3102
3100
|
drop_room = getattr(victim, "room", None)
|
|
3103
|
-
|
|
3101
|
+
|
|
3102
|
+
# ROM src/fight.c:2258-2265 - ITEM_NODROP/ITEM_INVENTORY keep weapon on victim.
|
|
3103
|
+
if extra_flags & (int(ExtraFlag.NODROP) | int(ExtraFlag.INVENTORY)):
|
|
3104
|
+
victim.add_object(victim_weapon)
|
|
3105
|
+
elif drop_room is not None and hasattr(drop_room, "add_object"):
|
|
3104
3106
|
drop_room.add_object(victim_weapon)
|
|
3105
3107
|
else:
|
|
3106
3108
|
victim.add_object(victim_weapon)
|