rom24-quickmud-python 2.14.211__tar.gz → 2.14.268__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.
Files changed (1181) hide show
  1. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/CHANGELOG.md +473 -0
  2. {rom24_quickmud_python-2.14.211/rom24_quickmud_python.egg-info → rom24_quickmud_python-2.14.268}/PKG-INFO +7 -7
  3. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/README.md +6 -6
  4. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/admin_logging/admin.py +3 -3
  5. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/combat/engine.py +78 -23
  6. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/advancement.py +6 -1
  7. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/affects.py +5 -2
  8. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/combat.py +92 -29
  9. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/consumption.py +4 -28
  10. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/doors.py +17 -7
  11. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/equipment.py +5 -23
  12. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/inventory.py +62 -22
  13. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/obj_manipulation.py +25 -2
  14. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/shop.py +11 -4
  15. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/game_loop.py +66 -34
  16. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/mobprog.py +11 -1
  17. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/character.py +19 -0
  18. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/net/connection.py +33 -16
  19. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/net/session.py +1 -0
  20. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/skills/handlers.py +148 -206
  21. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/skills/registry.py +4 -10
  22. rom24_quickmud_python-2.14.268/mud/skills/skill_lookup.py +148 -0
  23. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/world/look.py +10 -4
  24. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/world/vision.py +4 -2
  25. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/pyproject.toml +13 -2
  26. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268/rom24_quickmud_python.egg-info}/PKG-INFO +7 -7
  27. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/rom24_quickmud_python.egg-info/SOURCES.txt +22 -0
  28. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_consumables.py +22 -0
  29. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_container_retrieval.py +40 -4
  30. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_affects.py +25 -0
  31. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_look_command.py +25 -0
  32. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_practice_command.py +20 -0
  33. rom24_quickmud_python-2.14.268/tests/integration/test_door_container_message_order.py +45 -0
  34. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_equipment_system.py +30 -0
  35. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight035_disarm_act_structure.py +7 -0
  36. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight037_dirt_kick_victim_legs.py +5 -1
  37. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight038_disarm_noremove_improve.py +1 -0
  38. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight039_trip_self_room_pers.py +18 -3
  39. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight055_xp_compute_alignment_gaps.py +23 -0
  40. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight071_dirt_trip_charm_gate.py +3 -1
  41. rom24_quickmud_python-2.14.268/tests/integration/test_fight081_ac_scale_order.py +77 -0
  42. rom24_quickmud_python-2.14.268/tests/integration/test_fight082_do_trip_cluster.py +121 -0
  43. rom24_quickmud_python-2.14.268/tests/integration/test_fight083_dirt_kick_false_zero.py +72 -0
  44. rom24_quickmud_python-2.14.268/tests/integration/test_fight084_parry_visibility_direction.py +74 -0
  45. rom24_quickmud_python-2.14.268/tests/integration/test_fight085_skill_wait_raw_beats.py +50 -0
  46. rom24_quickmud_python-2.14.268/tests/integration/test_fight086_backstab_thac0.py +77 -0
  47. rom24_quickmud_python-2.14.268/tests/integration/test_fight087_disarm_unarmed_hth.py +100 -0
  48. rom24_quickmud_python-2.14.268/tests/integration/test_fight088_do_trip_act_render.py +74 -0
  49. rom24_quickmud_python-2.14.268/tests/integration/test_fight089_dodge_visibility_direction.py +74 -0
  50. rom24_quickmud_python-2.14.268/tests/integration/test_fight091_npc_kick_skill.py +74 -0
  51. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_026_npc_offensive_skill_no_crash.py +45 -0
  52. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_finding025_mob_equip_disarm.py +2 -0
  53. rom24_quickmud_python-2.14.268/tests/integration/test_gain_condition_drunk_sober_guard.py +59 -0
  54. rom24_quickmud_python-2.14.268/tests/integration/test_get_weight_mult.py +113 -0
  55. rom24_quickmud_python-2.14.268/tests/integration/test_gl046_plague_spread_rng_order.py +142 -0
  56. rom24_quickmud_python-2.14.268/tests/integration/test_gl047_regen_drain_room.py +88 -0
  57. rom24_quickmud_python-2.14.268/tests/integration/test_gl048_mp_delay_trigger_parity.py +61 -0
  58. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_group_combat.py +1 -0
  59. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_invisibility_combat.py +46 -0
  60. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic004_chain_lightning_pers_masking.py +4 -1
  61. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic031_slow_stoneskin_pers.py +4 -1
  62. rom24_quickmud_python-2.14.268/tests/integration/test_magic046_heat_metal_carry_order.py +81 -0
  63. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_ai.py +76 -0
  64. rom24_quickmud_python-2.14.268/tests/integration/test_pick003_immortal_threshold.py +105 -0
  65. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_put_weight_mult.py +70 -0
  66. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_rescue_killer_flag.py +4 -0
  67. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_rescue_single_delivery.py +1 -0
  68. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_spell_affects_persistence.py +4 -1
  69. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_advancement.py +2 -0
  70. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat.py +4 -0
  71. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat_defenses_prob.py +19 -9
  72. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat_rom_parity.py +28 -15
  73. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_critical_function_parity.py +10 -0
  74. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_diff_harness_unit.py +59 -0
  75. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_differential_smoke.py +1 -1
  76. rom24_quickmud_python-2.14.268/tests/test_get_skill.py +150 -0
  77. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_logging_rotation.py +2 -2
  78. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_networking_telnet.py +40 -0
  79. rom24_quickmud_python-2.14.268/tests/test_obj_update_affect_fade_rng.py +68 -0
  80. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_shops.py +70 -0
  81. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skill_combat_rom_parity.py +15 -150
  82. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills.py +11 -8
  83. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_buffs.py +27 -2
  84. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_combat.py +45 -28
  85. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_damage.py +38 -3
  86. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_buff_debuff_rom_parity.py +9 -8
  87. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_heat_metal_rom_parity.py +93 -1
  88. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_high_priority_missing_rom_parity.py +16 -5
  89. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_information_rom_parity.py +3 -0
  90. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_utility_spells_parity.py +26 -0
  91. rom24_quickmud_python-2.14.268/tests/test_weather_tick_draw_order.py +87 -0
  92. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/LICENSE +0 -0
  93. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/MANIFEST.in +0 -0
  94. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/air.are +0 -0
  95. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/arachnos.are +0 -0
  96. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/area.lst +0 -0
  97. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/astral.are +0 -0
  98. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/canyon.are +0 -0
  99. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/catacomb.are +0 -0
  100. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/chapel.are +0 -0
  101. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/daycare.are +0 -0
  102. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/draconia.are +0 -0
  103. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/dream.are +0 -0
  104. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/drow.are +0 -0
  105. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/dwarven.are +0 -0
  106. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/dylan.are +0 -0
  107. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/eastern.are +0 -0
  108. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/galaxy.are +0 -0
  109. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/gnome.are +0 -0
  110. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/grave.are +0 -0
  111. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/group.are +0 -0
  112. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/grove.are +0 -0
  113. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/haon.are +0 -0
  114. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/help.are +0 -0
  115. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/hitower.are +0 -0
  116. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/hood.are +0 -0
  117. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/immort.are +0 -0
  118. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/limbo.are +0 -0
  119. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/mahntor.are +0 -0
  120. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/marsh.are +0 -0
  121. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/mega1.are +0 -0
  122. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/midennir.are +0 -0
  123. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/midgaard.are +0 -0
  124. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/mirror.are +0 -0
  125. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/mobfact.are +0 -0
  126. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/moria.are +0 -0
  127. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/newthalos.are +0 -0
  128. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/nirvana.are +0 -0
  129. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/ofcol.are +0 -0
  130. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/ofcol2.are +0 -0
  131. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/olympus.are +0 -0
  132. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/plains.are +0 -0
  133. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/proto.are +0 -0
  134. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/pyramid.are +0 -0
  135. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/quifael.are +0 -0
  136. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/redferne.are +0 -0
  137. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/rom.are +0 -0
  138. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/school.are +0 -0
  139. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/sewer.are +0 -0
  140. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/shire.are +0 -0
  141. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/smurf.are +0 -0
  142. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/social.are +0 -0
  143. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/thalos.are +0 -0
  144. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/tohell.are +0 -0
  145. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/trollden.are +0 -0
  146. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/valley.are +0 -0
  147. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/area/wyvern.are +0 -0
  148. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/air.json +0 -0
  149. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/arachnos.json +0 -0
  150. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/area.json +0 -0
  151. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/area_0.json +0 -0
  152. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/astral.json +0 -0
  153. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/canyon.json +0 -0
  154. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/catacomb.json +0 -0
  155. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/chapel.json +0 -0
  156. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/daycare.json +0 -0
  157. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/draconia.json +0 -0
  158. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/dream.json +0 -0
  159. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/drow.json +0 -0
  160. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/dwarven.json +0 -0
  161. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/dylan.json +0 -0
  162. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/eastern.json +0 -0
  163. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/galaxy.json +0 -0
  164. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/gnome.json +0 -0
  165. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/grave.json +0 -0
  166. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/group.json +0 -0
  167. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/grove.json +0 -0
  168. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/haon.json +0 -0
  169. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/help.json +0 -0
  170. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/hitower.json +0 -0
  171. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/hood.json +0 -0
  172. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/immort.json +0 -0
  173. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/limbo.json +0 -0
  174. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/mahntor.json +0 -0
  175. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/marsh.json +0 -0
  176. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/mega1.json +0 -0
  177. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/midennir.json +0 -0
  178. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/midgaard.json +0 -0
  179. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/mirror.json +0 -0
  180. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/mobfact.json +0 -0
  181. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/moria.json +0 -0
  182. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/newthalos.json +0 -0
  183. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/nirvana.json +0 -0
  184. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/ofcol.json +0 -0
  185. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/ofcol2.json +0 -0
  186. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/olympus.json +0 -0
  187. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/plains.json +0 -0
  188. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/pyramid.json +0 -0
  189. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/quifael.json +0 -0
  190. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/redferne.json +0 -0
  191. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/rom.json +0 -0
  192. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/school.json +0 -0
  193. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/sewer.json +0 -0
  194. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/shire.json +0 -0
  195. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/smurf.json +0 -0
  196. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/social.json +0 -0
  197. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/thalos.json +0 -0
  198. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/tohell.json +0 -0
  199. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/trollden.json +0 -0
  200. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/valley.json +0 -0
  201. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas/wyvern.json +0 -0
  202. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/arachnos.json +0 -0
  203. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/area.json +0 -0
  204. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/area_0.json +0 -0
  205. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/astral_plane.json +0 -0
  206. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/catacombs.json +0 -0
  207. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/chapel.json +0 -0
  208. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/day_care.json +0 -0
  209. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/dragon_tower.json +0 -0
  210. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/drow_city.json +0 -0
  211. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/dwarven_kingdom.json +0 -0
  212. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/dylan's_area.json +0 -0
  213. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/elemental_canyon.json +0 -0
  214. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/galaxy.json +0 -0
  215. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/gangland.json +0 -0
  216. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/gnome_village.json +0 -0
  217. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/graveyard.json +0 -0
  218. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/group.json +0 -0
  219. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/haon_dor.json +0 -0
  220. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/help.json +0 -0
  221. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/high_tower.json +0 -0
  222. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/holy_grove.json +0 -0
  223. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/in_the_air.json +0 -0
  224. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/limbo.json +0 -0
  225. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/machine_dreams.json +0 -0
  226. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/mahn-tor.json +0 -0
  227. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/marsh.json +0 -0
  228. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/mega_city_one.json +0 -0
  229. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/miden'nir.json +0 -0
  230. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/midgaard.json +0 -0
  231. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/mob_factory.json +0 -0
  232. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/moria.json +0 -0
  233. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/mud_school.json +0 -0
  234. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/new_ofcol.json +0 -0
  235. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/new_thalos.json +0 -0
  236. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/nirvana.json +0 -0
  237. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/ofcol.json +0 -0
  238. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/old_thalos.json +0 -0
  239. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/olympus.json +0 -0
  240. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/plains.json +0 -0
  241. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/pyramid.json +0 -0
  242. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/quifael's.json +0 -0
  243. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/redferne's.json +0 -0
  244. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/rom.json +0 -0
  245. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/sands_of_sorrow.json +0 -0
  246. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/sewers.json +0 -0
  247. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/shire.json +0 -0
  248. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/smurfville.json +0 -0
  249. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/social.json +0 -0
  250. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/thalos.json +0 -0
  251. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/tohell.json +0 -0
  252. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/troll_den.json +0 -0
  253. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/valhalla.json +0 -0
  254. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/valley_of_the_elves.json +0 -0
  255. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/areas_backup/wyvern's_tower.json +0 -0
  256. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/help.json +0 -0
  257. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/players/.json +0 -0
  258. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/players/attacker.json +0 -0
  259. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/players/hero.json +0 -0
  260. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/players/sleeper.json +0 -0
  261. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/players/trouble.json +0 -0
  262. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/shops.json +0 -0
  263. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/skills.json +0 -0
  264. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/socials.json +0 -0
  265. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/data/time.json +0 -0
  266. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/MPDocs/examples.doc +0 -0
  267. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/MPDocs/hacker.doc +0 -0
  268. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/MPDocs/mobprog.doc +0 -0
  269. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/MPDocs/new_readme.txt +0 -0
  270. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/QuickMUD.txt +0 -0
  271. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/Rom2.4.doc +0 -0
  272. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/act.txt +0 -0
  273. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/area.txt +0 -0
  274. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/c_module_inventory.md +0 -0
  275. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/c_python_cross_reference.md +0 -0
  276. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/c_to_python_file_coverage.md +0 -0
  277. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/class.txt +0 -0
  278. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/command.txt +0 -0
  279. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/contrib.txt +0 -0
  280. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/drool.txt +0 -0
  281. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/hacker.txt +0 -0
  282. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/license.doc +0 -0
  283. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/license.txt +0 -0
  284. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/memory.txt +0 -0
  285. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/new.txt +0 -0
  286. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/pfile.txt +0 -0
  287. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/port.txt +0 -0
  288. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/pr_queue.md +0 -0
  289. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/python_architecture.md +0 -0
  290. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/python_module_inventory.md +0 -0
  291. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/security.txt +0 -0
  292. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/sites.txt +0 -0
  293. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/skill.txt +0 -0
  294. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/sky.txt +0 -0
  295. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/trad.txt +0 -0
  296. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/vnum.txt +0 -0
  297. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/doc/~$Rom2.4.doc +0 -0
  298. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/__init__.py +0 -0
  299. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/__main__.py +0 -0
  300. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/account/__init__.py +0 -0
  301. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/account/account_manager.py +0 -0
  302. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/account/account_service.py +0 -0
  303. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/admin_logging/__init__.py +0 -0
  304. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/admin_logging/agent_trace.py +0 -0
  305. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/advancement.py +0 -0
  306. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/affects/engine.py +0 -0
  307. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/affects/saves.py +0 -0
  308. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/agent/__init__.py +0 -0
  309. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/agent/agent_protocol.py +0 -0
  310. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/agent/character_agent.py +0 -0
  311. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/ai/__init__.py +0 -0
  312. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/ai/aggressive.py +0 -0
  313. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/characters/__init__.py +0 -0
  314. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/characters/conditions.py +0 -0
  315. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/characters/follow.py +0 -0
  316. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/combat/__init__.py +0 -0
  317. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/combat/assist.py +0 -0
  318. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/combat/death.py +0 -0
  319. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/combat/kill_table.py +0 -0
  320. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/combat/messages.py +0 -0
  321. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/combat/safety.py +0 -0
  322. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/__init__.py +0 -0
  323. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/admin_commands.py +0 -0
  324. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/alias_cmds.py +0 -0
  325. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/auto_settings.py +0 -0
  326. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/build.py +0 -0
  327. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/channels.py +0 -0
  328. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/character.py +0 -0
  329. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/communication.py +0 -0
  330. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/compare.py +0 -0
  331. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/consider.py +0 -0
  332. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/decorators.py +0 -0
  333. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/dispatcher.py +0 -0
  334. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/feedback.py +0 -0
  335. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/give.py +0 -0
  336. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/group_commands.py +0 -0
  337. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/healer.py +0 -0
  338. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/help.py +0 -0
  339. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/imc.py +0 -0
  340. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/imm_admin.py +0 -0
  341. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/imm_commands.py +0 -0
  342. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/imm_display.py +0 -0
  343. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/imm_emote.py +0 -0
  344. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/imm_load.py +0 -0
  345. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/imm_olc.py +0 -0
  346. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/imm_punish.py +0 -0
  347. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/imm_search.py +0 -0
  348. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/imm_server.py +0 -0
  349. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/imm_set.py +0 -0
  350. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/info.py +0 -0
  351. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/info_extended.py +0 -0
  352. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/inspection.py +0 -0
  353. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/liquids.py +0 -0
  354. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/magic_items.py +0 -0
  355. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/misc_info.py +0 -0
  356. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/misc_player.py +0 -0
  357. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/mobprog_tools.py +0 -0
  358. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/movement.py +0 -0
  359. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/murder.py +0 -0
  360. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/notes.py +0 -0
  361. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/player_config.py +0 -0
  362. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/player_info.py +0 -0
  363. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/position.py +0 -0
  364. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/remaining_rom.py +0 -0
  365. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/session.py +0 -0
  366. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/socials.py +0 -0
  367. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/thief_skills.py +0 -0
  368. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/commands/typo_guards.py +0 -0
  369. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/config.py +0 -0
  370. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/db/__init__.py +0 -0
  371. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/db/init.py +0 -0
  372. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/db/migrate_from_files.py +0 -0
  373. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/db/migrations.py +0 -0
  374. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/db/models.py +0 -0
  375. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/db/seed.py +0 -0
  376. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/db/serializers.py +0 -0
  377. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/db/session.py +0 -0
  378. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/devtools/__init__.py +0 -0
  379. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/devtools/agent_demo.py +0 -0
  380. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/diagnostics/__init__.py +0 -0
  381. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/diagnostics/invariants.py +0 -0
  382. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/entrypoint.py +0 -0
  383. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/game_tick_scheduler.py +0 -0
  384. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/groups/__init__.py +0 -0
  385. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/groups/xp.py +0 -0
  386. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/handler.py +0 -0
  387. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/imc/__init__.py +0 -0
  388. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/imc/commands.py +0 -0
  389. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/imc/network.py +0 -0
  390. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/imc/protocol.py +0 -0
  391. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/__init__.py +0 -0
  392. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/area_loader.py +0 -0
  393. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/base_loader.py +0 -0
  394. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/help_loader.py +0 -0
  395. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/json_loader.py +0 -0
  396. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/mob_loader.py +0 -0
  397. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/mobprog_loader.py +0 -0
  398. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/obj_loader.py +0 -0
  399. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/reset_loader.py +0 -0
  400. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/room_loader.py +0 -0
  401. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/shop_loader.py +0 -0
  402. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/social_loader.py +0 -0
  403. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/loaders/specials_loader.py +0 -0
  404. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/logging.py +0 -0
  405. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/magic/__init__.py +0 -0
  406. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/magic/effects.py +0 -0
  407. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/math/c_compat.py +0 -0
  408. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/math/stat_apps.py +0 -0
  409. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/mob_cmds.py +0 -0
  410. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/__init__.py +0 -0
  411. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/area.py +0 -0
  412. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/area_json.py +0 -0
  413. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/board.py +0 -0
  414. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/board_json.py +0 -0
  415. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/character_json.py +0 -0
  416. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/clans.py +0 -0
  417. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/classes.py +0 -0
  418. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/constants.py +0 -0
  419. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/conversion.py +0 -0
  420. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/help.py +0 -0
  421. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/help_json.py +0 -0
  422. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/json_io.py +0 -0
  423. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/mob.py +0 -0
  424. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/note.py +0 -0
  425. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/note_json.py +0 -0
  426. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/obj.py +0 -0
  427. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/object.py +0 -0
  428. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/object_json.py +0 -0
  429. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/player_json.py +0 -0
  430. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/races.py +0 -0
  431. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/room.py +0 -0
  432. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/room_json.py +0 -0
  433. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/shop.py +0 -0
  434. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/shop_json.py +0 -0
  435. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/skill.py +0 -0
  436. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/skill_json.py +0 -0
  437. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/social.py +0 -0
  438. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/social_json.py +0 -0
  439. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/titles.py +0 -0
  440. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/models/weapon_table.py +0 -0
  441. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/music/__init__.py +0 -0
  442. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/net/__init__.py +0 -0
  443. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/net/ansi.py +0 -0
  444. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/net/protocol.py +0 -0
  445. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/net/ssh_server.py +0 -0
  446. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/net/telnet_server.py +0 -0
  447. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/network/__init__.py +0 -0
  448. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/network/websocket_server.py +0 -0
  449. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/network/websocket_session.py +0 -0
  450. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/network/websocket_stream.py +0 -0
  451. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/notes.py +0 -0
  452. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/olc/__init__.py +0 -0
  453. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/olc/editor_state.py +0 -0
  454. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/olc/save.py +0 -0
  455. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/registry.py +0 -0
  456. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/scripts/convert_are_to_json.py +0 -0
  457. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/scripts/convert_help_are_to_json.py +0 -0
  458. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/scripts/convert_player_to_json.py +0 -0
  459. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/scripts/convert_shops_to_json.py +0 -0
  460. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/scripts/convert_skills_to_json.py +0 -0
  461. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/scripts/convert_social_are_to_json.py +0 -0
  462. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/scripts/load_test_data.py +0 -0
  463. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/security/__init__.py +0 -0
  464. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/security/bans.py +0 -0
  465. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/security/hash_utils.py +0 -0
  466. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/server.py +0 -0
  467. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/skills/__init__.py +0 -0
  468. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/skills/groups.py +0 -0
  469. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/skills/metadata.py +0 -0
  470. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/skills/say_spell.py +0 -0
  471. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/spawning/__init__.py +0 -0
  472. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/spawning/mob_spawner.py +0 -0
  473. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/spawning/obj_spawner.py +0 -0
  474. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/spawning/reset_handler.py +0 -0
  475. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/spawning/templates.py +0 -0
  476. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/spec_funs.py +0 -0
  477. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/time.py +0 -0
  478. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/utils/act.py +0 -0
  479. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/utils/bit.py +0 -0
  480. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/utils/fix_sex.py +0 -0
  481. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/utils/messaging.py +0 -0
  482. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/utils/olc_tables.py +0 -0
  483. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/utils/poses.py +0 -0
  484. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/utils/prefix_lookup.py +0 -0
  485. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/utils/prompt.py +0 -0
  486. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/utils/rng_mm.py +0 -0
  487. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/utils/string_editor.py +0 -0
  488. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/utils/text.py +0 -0
  489. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/utils/timing.py +0 -0
  490. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/wiznet.py +0 -0
  491. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/world/__init__.py +0 -0
  492. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/world/char_find.py +0 -0
  493. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/world/linking.py +0 -0
  494. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/world/movement.py +0 -0
  495. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/world/obj_find.py +0 -0
  496. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/world/time_persistence.py +0 -0
  497. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/mud/world/world_state.py +0 -0
  498. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/rom24_quickmud_python.egg-info/dependency_links.txt +0 -0
  499. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/rom24_quickmud_python.egg-info/entry_points.txt +0 -0
  500. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/rom24_quickmud_python.egg-info/requires.txt +0 -0
  501. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/rom24_quickmud_python.egg-info/top_level.txt +0 -0
  502. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/setup.cfg +0 -0
  503. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/setup.py +0 -0
  504. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/conftest.py +0 -0
  505. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/helpers.py +0 -0
  506. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/helpers_player.py +0 -0
  507. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/conftest.py +0 -0
  508. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_act_cap_001_broadcast_room.py +0 -0
  509. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_act_cap_002_room_broadcast.py +0 -0
  510. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_act_cap_003_communication_capitalize.py +0 -0
  511. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_act_cap_004_broadcast_global_capitalize.py +0 -0
  512. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_act_comm001_follow_self_single_message.py +0 -0
  513. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_act_comm002_follow_other_single_message.py +0 -0
  514. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_act_comm003_stop_follower_delivery_channel.py +0 -0
  515. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_act_comm_gaps.py +0 -0
  516. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_act_enter_gaps.py +0 -0
  517. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_act_wiz_command_parity.py +0 -0
  518. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_admin_commands.py +0 -0
  519. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_advancement_con_app.py +0 -0
  520. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_advancement_wis_app.py +0 -0
  521. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_affect_check_prototype_fallback.py +0 -0
  522. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_affect_join_merge.py +0 -0
  523. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_alias_command_parity.py +0 -0
  524. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_architectural_parity.py +0 -0
  525. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_arith_107_nplayer_no_floor.py +0 -0
  526. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_arith_111_haggle_no_floor.py +0 -0
  527. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_arith_115_keeper_wealth_no_floor.py +0 -0
  528. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_arith_203_204_plague_drain_no_floor.py +0 -0
  529. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_arith_205_carry_number_no_floor.py +0 -0
  530. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_auto_flags.py +0 -0
  531. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_auto_sacrifice_pers.py +0 -0
  532. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_auto_sacrifice_reward_scaling.py +0 -0
  533. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_auto_sequences.py +0 -0
  534. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_ban_command_parity.py +0 -0
  535. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_bash_broadcasts.py +0 -0
  536. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_berserk_duration.py +0 -0
  537. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_bit_flag_string.py +0 -0
  538. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_bit_flag_value.py +0 -0
  539. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_bit_is_stat.py +0 -0
  540. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_boards_rom_parity.py +0 -0
  541. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_broadcast_room_single_delivery.py +0 -0
  542. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_can_drop_obj_nodrop_bit.py +0 -0
  543. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_cast010_wait_state_uses_spell_beats.py +0 -0
  544. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_cast011_say_spell_broadcast.py +0 -0
  545. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_cast_009_failed_cast_improves_skill.py +0 -0
  546. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_channels.py +0 -0
  547. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_char_update_lethal_tick_iteration.py +0 -0
  548. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_character_advancement.py +0 -0
  549. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_character_commands.py +0 -0
  550. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_character_creation_runtime.py +0 -0
  551. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_charm_person_delivery_channel.py +0 -0
  552. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_charm_person_duration.py +0 -0
  553. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_check_assist_dispatch_scope.py +0 -0
  554. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_class14_linkdead_lifecycle.py +0 -0
  555. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_clone_broadcasts.py +0 -0
  556. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_close_broadcasts.py +0 -0
  557. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_colour_spray_delivery_channel.py +0 -0
  558. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_combat_dex_app.py +0 -0
  559. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_combat_str_app.py +0 -0
  560. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_communication_enhancement.py +0 -0
  561. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_compare_critical_gaps.py +0 -0
  562. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_config_commands.py +0 -0
  563. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_consider002_safe_target_context_message.py +0 -0
  564. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_dam_message_pers.py +0 -0
  565. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_db2_loader_parity.py +0 -0
  566. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_db_canonical_round_trip.py +0 -0
  567. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_death_and_corpses.py +0 -0
  568. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_decay_loop_inv012.py +0 -0
  569. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_die_follower_leader_chain.py +0 -0
  570. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_cast_object_target.py +0 -0
  571. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_cast_pk_gates.py +0 -0
  572. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_config_flag_alignment.py +0 -0
  573. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_consider_command.py +0 -0
  574. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_equipment.py +0 -0
  575. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_examine_command.py +0 -0
  576. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_exits_command.py +0 -0
  577. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_follow_master_notification.py +0 -0
  578. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_gain_act_gain_bit.py +0 -0
  579. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_group_notification.py +0 -0
  580. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_groups_known_groups.py +0 -0
  581. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_help_command.py +0 -0
  582. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_inventory.py +0 -0
  583. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_password_command.py +0 -0
  584. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_peek_check_improve.py +0 -0
  585. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_purge_nopurge_bits.py +0 -0
  586. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_quiet_comm_bit.py +0 -0
  587. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_time_command.py +0 -0
  588. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_weather_command.py +0 -0
  589. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_where_command.py +0 -0
  590. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_who_command.py +0 -0
  591. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_do_worth.py +0 -0
  592. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_door_broadcasts.py +0 -0
  593. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_door_portal_commands.py +0 -0
  594. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_drop_command.py +0 -0
  595. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_dupl_001b_no_duplicate_delivery.py +0 -0
  596. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_dupl_001c_game_loop_no_duplicate.py +0 -0
  597. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_dupl_003_extract_obj.py +0 -0
  598. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_emote_parity.py +0 -0
  599. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_environmental_effects.py +0 -0
  600. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_equip_key_canonical.py +0 -0
  601. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_equipment_ac_calculations.py +0 -0
  602. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight036_dirt_kick_pronoun_masking.py +0 -0
  603. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight040_dirt_already_blinded.py +0 -0
  604. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight041_death_cry_pers_masking.py +0 -0
  605. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight042_death_cry_neighbor_trig_act.py +0 -0
  606. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight043_flee_xp_loss.py +0 -0
  607. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight044_bash_killer_flag.py +0 -0
  608. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight045_trip_killer_flag.py +0 -0
  609. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight046_backstab_killer_flag.py +0 -0
  610. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight047_kick_killer_flag.py +0 -0
  611. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight048_murder_yell.py +0 -0
  612. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight049_murder_safety_pc_vs_pc.py +0 -0
  613. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight050_is_safe_npc_guards.py +0 -0
  614. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight051_murder_safety_npc_guards.py +0 -0
  615. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight052_kill_safety_npc_guard_order.py +0 -0
  616. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight053_check_assist_rng_increment.py +0 -0
  617. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight054_do_flee_mechanism.py +0 -0
  618. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight056_damage_soft_cap.py +0 -0
  619. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight057_double_riv.py +0 -0
  620. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight058_damage_reduction_bypass.py +0 -0
  621. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight060_check_assist_elif_chain.py +0 -0
  622. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight061_flee_move_cost.py +0 -0
  623. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight062_flee_broadcast.py +0 -0
  624. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight065_disarm_no_weapon_literal.py +0 -0
  625. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight066_defense_return_pers.py +0 -0
  626. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight067_bash_safe_room_entry_gate.py +0 -0
  627. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight068_bash_position_before_self.py +0 -0
  628. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight069_dirt_trip_kill_steal_gate.py +0 -0
  629. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight070_bash_is_safe_message.py +0 -0
  630. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight072_dirt_blind_before_self.py +0 -0
  631. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight073_dirt_blind_pronoun_message.py +0 -0
  632. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight074_kill_charm_order.py +0 -0
  633. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight075_bash_position_pronoun_message.py +0 -0
  634. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight077_is_safe_no_npc_level_gate.py +0 -0
  635. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight078_npc_corpse_money_gate.py +0 -0
  636. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_018_dam_message_act_trigger_dispatch.py +0 -0
  637. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_019_thac0_attack_roll.py +0 -0
  638. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_021_multi_hit_unconditional_draw.py +0 -0
  639. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_022_mob_hit_skill_rolls.py +0 -0
  640. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_023_mob_dam_type_attack_index.py +0 -0
  641. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_024_violence_tick_order.py +0 -0
  642. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_025_act_capitalization.py +0 -0
  643. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_027_npc_unarmed_damage_dice.py +0 -0
  644. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_028_miss_attack_noun.py +0 -0
  645. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_031_combat_act_capitalization.py +0 -0
  646. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_032_defense_pers.py +0 -0
  647. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_033_frost_shocking_weapon_name.py +0 -0
  648. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_034_auto_split_pers_cap.py +0 -0
  649. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_c_do_kill_parity.py +0 -0
  650. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_fight_c_safe_room_damage_gate.py +0 -0
  651. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_finding020_equip_remove_carry_position.py +0 -0
  652. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_finding021_look_in_container_header.py +0 -0
  653. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_finding022_show_list_to_char_parity.py +0 -0
  654. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_finding030_bless_affect_count.py +0 -0
  655. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_finding_012_npc_spell_save.py +0 -0
  656. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_finding_013_cast_silent_on_success.py +0 -0
  657. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_flag_command_parity.py +0 -0
  658. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_flee_moves_character.py +0 -0
  659. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_follow_can_see_gating.py +0 -0
  660. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_followcap_master_notification_capitalized.py +0 -0
  661. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_furniture_occupancy.py +0 -0
  662. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_gain_condition_delivers_to_connected_pc.py +0 -0
  663. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_get_curr_stat_floor_three.py +0 -0
  664. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_get_room_messages.py +0 -0
  665. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_give001_victim_delivery_channel.py +0 -0
  666. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_give_command.py +0 -0
  667. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_gl026_affect_tick_rng_consumption.py +0 -0
  668. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_gl027_mob_affect_tick_parity.py +0 -0
  669. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_gl028_mob_spell_effect_tick.py +0 -0
  670. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_gl031_pet_spell_effect_persistence.py +0 -0
  671. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_gl032_mob_affect_application.py +0 -0
  672. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_gl039_obj_update_spill_gate.py +0 -0
  673. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_gl_024_level1_plague_dormant.py +0 -0
  674. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_group_005_pers_masking.py +0 -0
  675. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_group_006_listing_order.py +0 -0
  676. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_group_broadcasts.py +0 -0
  677. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_group_gain_tick_delivery.py +0 -0
  678. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_group_xp_npc_level_floor.py +0 -0
  679. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_handler001_get_char_room_self.py +0 -0
  680. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_handler002_get_char_room_count_once.py +0 -0
  681. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_handler003_get_char_matches_name_only.py +0 -0
  682. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_handler004_is_name_whole_word_prefix.py +0 -0
  683. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_handler005_get_char_world_skips_roomless.py +0 -0
  684. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_handler006_get_char_world_newest_match.py +0 -0
  685. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_healer_command_parity.py +0 -0
  686. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_hedit_parity.py +0 -0
  687. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_hpcnt_once_per_pulse.py +0 -0
  688. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_imm_command_delivery_dupl_001a.py +0 -0
  689. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_imm_set_stat_range.py +0 -0
  690. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_imm_summon_bit_alignment.py +0 -0
  691. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_incognito_broadcasts.py +0 -0
  692. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_info_display.py +0 -0
  693. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_interp025_social_self_target.py +0 -0
  694. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_interp026_social_can_see_and_nname.py +0 -0
  695. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_interp_dispatcher.py +0 -0
  696. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_interp_prefix_order.py +0 -0
  697. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_interp_trust.py +0 -0
  698. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv001_comm_delivery_channel.py +0 -0
  699. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv001_delivery_helpers_channel.py +0 -0
  700. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv001_inline_delivery_channel.py +0 -0
  701. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv001_room_broadcast_channel.py +0 -0
  702. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv001_wiznet_delivery_channel.py +0 -0
  703. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv005_same_room_combat.py +0 -0
  704. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv006_fighting_pointer_coherence.py +0 -0
  705. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv008_persistence_coherence.py +0 -0
  706. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv009_registry_disconnect_cleanup.py +0 -0
  707. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv010_room_people_coherence.py +0 -0
  708. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv011_carry_weight_coherence.py +0 -0
  709. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv012_end_to_end.py +0 -0
  710. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv012_object_list_canonical.py +0 -0
  711. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv013_add_object_carrier.py +0 -0
  712. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv013_object_location_coherence.py +0 -0
  713. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv014_object_registry_membership.py +0 -0
  714. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv015_affect_tick_lifecycle.py +0 -0
  715. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv016_position_transition_broadcast.py +0 -0
  716. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv018_wear_off_message_for_raw_affect.py +0 -0
  717. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv019_position_promotion_on_heal.py +0 -0
  718. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv020_extract_quit_cleanup.py +0 -0
  719. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv020_group_leader_coherence_on_raw_kill.py +0 -0
  720. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv020_quit_extracts_objects.py +0 -0
  721. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv021_object_extract_recursive.py +0 -0
  722. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv022_equip_applies_object_affects.py +0 -0
  723. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv023_area_nplayer_coherence.py +0 -0
  724. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv024_container_closed_visibility.py +0 -0
  725. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_cancellation_act_pers_masking.py +0 -0
  726. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_clone_act_trigger_dispatch.py +0 -0
  727. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_command_broadcast_pers_sweep.py +0 -0
  728. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_command_layer_pers.py +0 -0
  729. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_communication_act_trigger_dispatch.py +0 -0
  730. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_consumption_act_trigger_dispatch.py +0 -0
  731. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_do_drop_act_trigger_dispatch.py +0 -0
  732. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_do_get_act_trigger_dispatch.py +0 -0
  733. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_do_give_act_trigger_suppression.py +0 -0
  734. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_do_open_act_trigger_dispatch.py +0 -0
  735. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_do_put_act_trigger_dispatch.py +0 -0
  736. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_do_sacrifice_act_trigger_dispatch.py +0 -0
  737. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_door_commands_act_trigger_dispatch.py +0 -0
  738. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_door_commands_pers_sweep.py +0 -0
  739. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_equipment_act_trigger_dispatch.py +0 -0
  740. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_equipment_pers_sweep.py +0 -0
  741. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_give_pers_sweep.py +0 -0
  742. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_imm_act_trigger_dispatch.py +0 -0
  743. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_imm_display_act_trigger_dispatch.py +0 -0
  744. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_imm_load_act_trigger_dispatch.py +0 -0
  745. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_liquids_act_trigger_dispatch.py +0 -0
  746. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_magic_items_act_trigger_dispatch.py +0 -0
  747. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_mobprog_act_trigger_dispatch.py +0 -0
  748. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_movement_act_trigger_dispatch.py +0 -0
  749. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_obj_command_pers_sweep.py +0 -0
  750. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_plague_tick_act_trigger_dispatch.py +0 -0
  751. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_position_transition_act_trigger_dispatch.py +0 -0
  752. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_reverse_door_act_trigger_dispatch.py +0 -0
  753. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_socials_pers_sweep.py +0 -0
  754. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_spell_effect_act_trigger.py +0 -0
  755. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_spell_self_effect_pers_masking.py +0 -0
  756. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv025_steal_act_trigger_dispatch.py +0 -0
  757. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv026_violence_trigger_dispatch.py +0 -0
  758. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv027_act_pers_name_masking.py +0 -0
  759. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv028_light_slot_key_coherence.py +0 -0
  760. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv029_act_first_letter_cap.py +0 -0
  761. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv030_bless_object_branch.py +0 -0
  762. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv031_pc_death_preserves_group.py +0 -0
  763. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv032_room_flags_survive_load.py +0 -0
  764. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv033_furniture_on_pointer_coherence.py +0 -0
  765. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv036_sleep_strip_on_combat_start.py +0 -0
  766. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv037_follow_self_pet_pointer_cleanup.py +0 -0
  767. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv038_idle_timer_input_reset.py +0 -0
  768. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv040_affect_to_char_full_apply.py +0 -0
  769. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv041_shopkeeper_psop_coherence.py +0 -0
  770. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv042_kill_death_xp_trigger_ordering.py +0 -0
  771. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv043_nuke_pets_stop_fighting.py +0 -0
  772. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv046_family3b.py +0 -0
  773. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv046_phantom_registry.py +0 -0
  774. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv047_extract_clears_mprog_target.py +0 -0
  775. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv047_extract_paths_clear_refs.py +0 -0
  776. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv050_is_safe_bool_faithful.py +0 -0
  777. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv050_is_safe_spell_standalone.py +0 -0
  778. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv051_deferred_persistence.py +0 -0
  779. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv052_act_empty_discard.py +0 -0
  780. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_inv053_prompt_after_tick_output.py +0 -0
  781. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_invis_broadcasts.py +0 -0
  782. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_json_loader_parity.py +0 -0
  783. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_kill_command_single_delivery.py +0 -0
  784. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_lock_broadcasts.py +0 -0
  785. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_look007_look_at_char_broadcast.py +0 -0
  786. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_look_004_room_object_description.py +0 -0
  787. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_look_holylight_rom_parity.py +0 -0
  788. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_look_long_descr_rom_parity.py +0 -0
  789. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_lookup_parity.py +0 -0
  790. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic005_poison_object_pers_masking.py +0 -0
  791. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic006_plague_pronoun_masking.py +0 -0
  792. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic007_object_pers_masking.py +0 -0
  793. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic010_object_invis_pers_masking.py +0 -0
  794. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic011_poison_food_caster_caps.py +0 -0
  795. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic012_frenzy_room_pers_masking.py +0 -0
  796. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic013_cure_disease_room_pers_masking.py +0 -0
  797. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic014_single_actor_room_pers_sweep.py +0 -0
  798. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic015_infravision_caster_actor.py +0 -0
  799. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic017_shield_pers.py +0 -0
  800. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic018_bless_pers.py +0 -0
  801. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic019_cure_pers.py +0 -0
  802. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic020_curse_object_pers.py +0 -0
  803. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic021_change_sex_quirk.py +0 -0
  804. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic022_protection_pers.py +0 -0
  805. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic023_frenzy_pers.py +0 -0
  806. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic024_strength_haste_pers.py +0 -0
  807. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic025_fly_infra_passdoor_pers.py +0 -0
  808. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic026_object_p_capitalization.py +0 -0
  809. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic027_faerie_fire_silent_duplicate.py +0 -0
  810. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic028_plague_unaffected_pers.py +0 -0
  811. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic029_envenom_skill_already_envenomed_cap.py +0 -0
  812. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic030_sleep_silent_gates.py +0 -0
  813. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic032_sanctuary_pers.py +0 -0
  814. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic033_know_alignment_act_semantics.py +0 -0
  815. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic034_detect_cluster_pers.py +0 -0
  816. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic035_curse_dispel_neutral_pers.py +0 -0
  817. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic036_dispel_to_room_pers.py +0 -0
  818. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic037_demonfire_curse_pers.py +0 -0
  819. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic038_demonfire_demons_pers.py +0 -0
  820. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic039_charm_person_pers.py +0 -0
  821. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic040_cure_room_broadcast_pers.py +0 -0
  822. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic041_chill_touch_room_pers.py +0 -0
  823. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic042_faerie_fog_revealed_pers.py +0 -0
  824. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic043_envenom_room_broadcast_pers.py +0 -0
  825. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic044_blindness_room_pers.py +0 -0
  826. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic_002_armor_message.py +0 -0
  827. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic_002_bless_message.py +0 -0
  828. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic_003_affect_message_channel.py +0 -0
  829. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_magic_effect_message_no_duplicate.py +0 -0
  830. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_message_delivery_no_duplicate.py +0 -0
  831. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mload_oload_broadcasts.py +0 -0
  832. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_berserk_has_spell_effect.py +0 -0
  833. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_cmds_assist.py +0 -0
  834. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_cmds_call.py +0 -0
  835. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_cmds_cast.py +0 -0
  836. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_cmds_damage.py +0 -0
  837. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_cmds_flee.py +0 -0
  838. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_cmds_junk.py +0 -0
  839. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_cmds_kill.py +0 -0
  840. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_cmds_oload.py +0 -0
  841. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_cmds_purge.py +0 -0
  842. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_cmds_remember.py +0 -0
  843. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mob_cmds_transfer.py +0 -0
  844. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mobcmd020_echo_capitalization.py +0 -0
  845. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mobcmd021_asound_capitalization.py +0 -0
  846. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mobprog_edge_cases.py +0 -0
  847. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mobprog_give_trigger.py +0 -0
  848. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mobprog_greet_trigger.py +0 -0
  849. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mobprog_predicates.py +0 -0
  850. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mobprog_program_flow.py +0 -0
  851. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mobprog_scenarios.py +0 -0
  852. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_money_objects.py +0 -0
  853. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_move005_exit_trigger_ordering.py +0 -0
  854. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_move006_no_encumbrance_movement_gate.py +0 -0
  855. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_move_003_walk_line.py +0 -0
  856. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mpedit_001_interpret_mpedit.py +0 -0
  857. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mpedit_002_do_mpedit.py +0 -0
  858. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_mpedit_003_mprog_code_model.py +0 -0
  859. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_music_load_songs.py +0 -0
  860. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_music_play.py +0 -0
  861. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_nanny_login_parity.py +0 -0
  862. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_nanny_saveload_runtime_path.py +0 -0
  863. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_new_player_workflow.py +0 -0
  864. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_npc_speaker_does_not_trigger_speech.py +0 -0
  865. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_nukepet001_pet_fade_pers_and_notvict.py +0 -0
  866. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_numbered_get_syntax.py +0 -0
  867. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_obj_from_char_no_floor.py +0 -0
  868. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_001_run_olc_editor.py +0 -0
  869. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_007_redit_list_show.py +0 -0
  870. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_008_oedit_missing_cmds.py +0 -0
  871. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_009_medit_missing_cmds.py +0 -0
  872. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_010_015_do_olc_router.py +0 -0
  873. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_011_aedit_flag_toggle.py +0 -0
  874. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_012_014_editor_fallback.py +0 -0
  875. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_001_aedit_create.py +0 -0
  876. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_002_redit_create.py +0 -0
  877. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_003_redit_reset.py +0 -0
  878. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_004_redit_vnum_teleport.py +0 -0
  879. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_005_oedit_create.py +0 -0
  880. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_006_medit_create.py +0 -0
  881. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_007_aedit_show_flags.py +0 -0
  882. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_008_redit_show_parity.py +0 -0
  883. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_009_oedit_show_parity.py +0 -0
  884. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_010_medit_show_parity.py +0 -0
  885. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_011_name_messages.py +0 -0
  886. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_012_aedit_reset.py +0 -0
  887. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_013_get_area_for_vnum_order.py +0 -0
  888. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_act_014_area_changed_protocol.py +0 -0
  889. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_alist.py +0 -0
  890. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_builders.py +0 -0
  891. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_commands_listing.py +0 -0
  892. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_descriptor_state.py +0 -0
  893. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_display_resets.py +0 -0
  894. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_do_resets_subcommands.py +0 -0
  895. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_001_mob_defensive_flags.py +0 -0
  896. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_002_mob_form_parts_size_material.py +0 -0
  897. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_003_mob_mprogs.py +0 -0
  898. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_004_mob_shops.py +0 -0
  899. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_005_mob_spec_fun.py +0 -0
  900. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_006_object_level.py +0 -0
  901. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_007_object_affects.py +0 -0
  902. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_008_object_extra_descr.py +0 -0
  903. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_009_area_helps_round_trip.py +0 -0
  904. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_010_asave_area_dispatch.py +0 -0
  905. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_011_autosave_entry.py +0 -0
  906. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_012_npc_security_gate.py +0 -0
  907. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_013_area_list_social_prepend.py +0 -0
  908. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_olc_save_014_017_message_strings.py +0 -0
  909. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_order002_wait_state.py +0 -0
  910. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_order003_immortal_trust.py +0 -0
  911. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_order_broadcasts.py +0 -0
  912. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_password001_wait_state_umax.py +0 -0
  913. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_pc_death_keeps_connection.py +0 -0
  914. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_pc_death_no_message_replay.py +0 -0
  915. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_pet_buy_single_delivery.py +0 -0
  916. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_pick001_check_improve.py +0 -0
  917. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_pick002_wait_state.py +0 -0
  918. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_pick_broadcasts.py +0 -0
  919. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_pilot_integration.py +0 -0
  920. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_pit_timer_handling.py +0 -0
  921. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_player_config.py +0 -0
  922. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_player_npc_interaction.py +0 -0
  923. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_position_commands.py +0 -0
  924. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_practice_single_delivery.py +0 -0
  925. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_prompt_cmd_parity.py +0 -0
  926. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_prompt_rom_parity.py +0 -0
  927. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_purge_broadcasts.py +0 -0
  928. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_purge_routes_through_extract_character.py +0 -0
  929. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_put_pit_timer.py +0 -0
  930. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_put_room_messages.py +0 -0
  931. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_quit_broadcasts.py +0 -0
  932. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_recall001_exp_floor.py +0 -0
  933. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_recall002_check_improve.py +0 -0
  934. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_recall_train_commands.py +0 -0
  935. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_remove_command.py +0 -0
  936. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_restore_strips_affects.py +0 -0
  937. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_room_contents_show_list_parity.py +0 -0
  938. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_room_light_tracking.py +0 -0
  939. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_room_retrieval.py +0 -0
  940. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_room_safety_features.py +0 -0
  941. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_runtime_bugs_2026_04_30.py +0 -0
  942. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_sacrifice_command.py +0 -0
  943. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_save001_wait_state.py +0 -0
  944. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_say_parity.py +0 -0
  945. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_scan_broadcasts.py +0 -0
  946. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_shop_error_paths.py +0 -0
  947. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_shop_haggle_delivery_channel.py +0 -0
  948. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_shop_pet_001_dam_type_resolution.py +0 -0
  949. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_shop_pet_002_create_mobile_reroll.py +0 -0
  950. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_shop_room_broadcasts.py +0 -0
  951. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_shout_yell_parity.py +0 -0
  952. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_skill_registry_delivery_channel.py +0 -0
  953. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_skills_integration.py +0 -0
  954. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_skills_integration_combat_specials.py +0 -0
  955. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_slay_broadcasts.py +0 -0
  956. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_slay_routes_through_raw_kill.py +0 -0
  957. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_socials.py +0 -0
  958. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_spawn_001_rng_draw_order.py +0 -0
  959. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_spec017_delivery_channel.py +0 -0
  960. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_spell_casting.py +0 -0
  961. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_steal_broadcasts.py +0 -0
  962. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_steal_command.py +0 -0
  963. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_steal_thief_flag_delivery.py +0 -0
  964. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_still_recovering_single_delivery.py +0 -0
  965. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_string_editor_append.py +0 -0
  966. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_string_editor_edit.py +0 -0
  967. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_string_editor_first_arg.py +0 -0
  968. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_string_editor_format_string.py +0 -0
  969. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_string_editor_lineadd.py +0 -0
  970. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_string_editor_linedel.py +0 -0
  971. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_string_editor_merc_getline.py +0 -0
  972. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_string_editor_numlines.py +0 -0
  973. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_string_editor_proper.py +0 -0
  974. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_string_editor_replace.py +0 -0
  975. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_string_editor_string_add.py +0 -0
  976. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_string_editor_unpad.py +0 -0
  977. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_surrender_broadcasts.py +0 -0
  978. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_surrender_single_delivery.py +0 -0
  979. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_tables_parity.py +0 -0
  980. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_tell_parity.py +0 -0
  981. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_unlock_broadcasts.py +0 -0
  982. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_update_c_parity.py +0 -0
  983. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_visible001_strip_cast_invis.py +0 -0
  984. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_vision_002_dark_gate.py +0 -0
  985. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_weapon_damage_damroll_c_div.py +0 -0
  986. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_weapon_poison_affect.py +0 -0
  987. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_weapon_proc_pers.py +0 -0
  988. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_weather_time.py +0 -0
  989. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_wiz047_transfer_pers_name_masking.py +0 -0
  990. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/integration/test_xp_compute_level_zero_pc.py +0 -0
  991. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_account_auth.py +0 -0
  992. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_act_comm_rom_parity.py +0 -0
  993. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_act_enter_rom_parity.py +0 -0
  994. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_act_info_rom_parity.py +0 -0
  995. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_act_obj_rom_parity.py +0 -0
  996. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_act_wiz_rom_parity.py +0 -0
  997. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_affects.py +0 -0
  998. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_agent_interface.py +0 -0
  999. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_alias_parity.py +0 -0
  1000. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_ansi.py +0 -0
  1001. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_are_conversion.py +0 -0
  1002. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_area_counts.py +0 -0
  1003. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_area_exits.py +0 -0
  1004. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_area_loader.py +0 -0
  1005. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_area_specials.py +0 -0
  1006. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_arith_208_dice_no_floor.py +0 -0
  1007. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_arith_210_current_hp_no_floor.py +0 -0
  1008. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_arith_211_look_condition_negative_max_hit.py +0 -0
  1009. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_arith_max_hit_floor.py +0 -0
  1010. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_attribute_convention.py +0 -0
  1011. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_bans.py +0 -0
  1012. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_boards.py +0 -0
  1013. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_builder_hedit.py +0 -0
  1014. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_builder_stat_commands.py +0 -0
  1015. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_building.py +0 -0
  1016. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_char_update_rom_parity.py +0 -0
  1017. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat_assist.py +0 -0
  1018. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat_damage_types.py +0 -0
  1019. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat_death.py +0 -0
  1020. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat_messages.py +0 -0
  1021. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat_position_damage.py +0 -0
  1022. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat_skills.py +0 -0
  1023. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat_state.py +0 -0
  1024. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat_surrender.py +0 -0
  1025. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat_thac0.py +0 -0
  1026. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_combat_thac0_engine.py +0 -0
  1027. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_command_abbrev.py +0 -0
  1028. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_command_parity.py +0 -0
  1029. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_commands.py +0 -0
  1030. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_communication.py +0 -0
  1031. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_connection_motd.py +0 -0
  1032. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_convert_are_to_json_cli.py +0 -0
  1033. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_damage_reduction.py +0 -0
  1034. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_damage_reduction_integration.py +0 -0
  1035. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_db_resets_rom_parity.py +0 -0
  1036. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_db_seed.py +0 -0
  1037. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_defense_flags.py +0 -0
  1038. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_diff_harness_data_parity.py +0 -0
  1039. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_diff_harness_generated.py +0 -0
  1040. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_encumbrance.py +0 -0
  1041. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_enter_portal.py +0 -0
  1042. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_equipment_key_convention.py +0 -0
  1043. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_fighting_state.py +0 -0
  1044. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_fix_sex.py +0 -0
  1045. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_flag_hex_convention.py +0 -0
  1046. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_follow_canonical.py +0 -0
  1047. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_game_loop.py +0 -0
  1048. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_game_loop_order.py +0 -0
  1049. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_game_loop_wait_daze.py +0 -0
  1050. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_golden_reference.py +0 -0
  1051. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_handler_affects_rom_parity.py +0 -0
  1052. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_hash_utils.py +0 -0
  1053. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_healer.py +0 -0
  1054. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_healer_parity.py +0 -0
  1055. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_healer_rom_parity.py +0 -0
  1056. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_help_conversion.py +0 -0
  1057. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_help_system.py +0 -0
  1058. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_imc.py +0 -0
  1059. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_inv034_pointer_identity_divergence.py +0 -0
  1060. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_invariant_checker.py +0 -0
  1061. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_json_io.py +0 -0
  1062. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_json_model_instantiation.py +0 -0
  1063. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_json_room_fields.py +0 -0
  1064. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_load_midgaard.py +0 -0
  1065. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_logging_admin.py +0 -0
  1066. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_message_delivery_convention.py +0 -0
  1067. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_mob_act_flags.py +0 -0
  1068. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_mob_damage_modifiers.py +0 -0
  1069. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_mob_dice_parity.py +0 -0
  1070. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_mobprog.py +0 -0
  1071. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_mobprog_commands.py +0 -0
  1072. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_mobprog_helpers.py +0 -0
  1073. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_mobprog_triggers.py +0 -0
  1074. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_movement.py +0 -0
  1075. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_movement_charm.py +0 -0
  1076. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_movement_costs.py +0 -0
  1077. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_movement_doors.py +0 -0
  1078. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_movement_followers.py +0 -0
  1079. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_movement_mobprog.py +0 -0
  1080. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_movement_npc.py +0 -0
  1081. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_movement_portals.py +0 -0
  1082. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_movement_privacy.py +0 -0
  1083. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_movement_visibility.py +0 -0
  1084. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_music.py +0 -0
  1085. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_nanny_rom_parity.py +0 -0
  1086. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_obj_loader.py +0 -0
  1087. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_obj_update_rom_parity.py +0 -0
  1088. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_olc_aedit.py +0 -0
  1089. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_olc_medit.py +0 -0
  1090. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_olc_oedit.py +0 -0
  1091. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_olc_save.py +0 -0
  1092. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_passive_skills_rom_parity.py +0 -0
  1093. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_pet_save_affect_roundtrip.py +0 -0
  1094. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_phantom_registry_convention.py +0 -0
  1095. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_affect_flags.py +0 -0
  1096. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_auto_settings.py +0 -0
  1097. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_combat_attributes.py +0 -0
  1098. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_conditions.py +0 -0
  1099. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_creation.py +0 -0
  1100. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_equipment.py +0 -0
  1101. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_flags.py +0 -0
  1102. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_info_commands.py +0 -0
  1103. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_mechanics.py +0 -0
  1104. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_prompt.py +0 -0
  1105. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_resistance_flags.py +0 -0
  1106. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_skills_spells.py +0 -0
  1107. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_stats.py +0 -0
  1108. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_title_description.py +0 -0
  1109. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_player_wimpy.py +0 -0
  1110. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_practice.py +0 -0
  1111. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_prompt_clamps_hp.py +0 -0
  1112. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_reset_levels.py +0 -0
  1113. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_resets.py +0 -0
  1114. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_rng_and_ccompat.py +0 -0
  1115. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_rng_determinism.py +0 -0
  1116. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_rng_dice.py +0 -0
  1117. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_runtime_models.py +0 -0
  1118. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_saves_rom_parity.py +0 -0
  1119. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_say_spell.py +0 -0
  1120. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_scan_parity.py +0 -0
  1121. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_schema_validation.py +0 -0
  1122. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_scripted_session.py +0 -0
  1123. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_shop_conversion.py +0 -0
  1124. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skill_conversion.py +0 -0
  1125. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skill_envenom_rom_parity.py +0 -0
  1126. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skill_haggle_rom_parity.py +0 -0
  1127. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skill_hide_rom_parity.py +0 -0
  1128. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skill_peek_rom_parity.py +0 -0
  1129. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skill_pick_lock_rom_parity.py +0 -0
  1130. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skill_recall_rom_parity.py +0 -0
  1131. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skill_registry.py +0 -0
  1132. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skill_steal_rom_parity.py +0 -0
  1133. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_conjuration.py +0 -0
  1134. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_debuffs.py +0 -0
  1135. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_detection.py +0 -0
  1136. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_healing.py +0 -0
  1137. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_identify.py +0 -0
  1138. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_learned.py +0 -0
  1139. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_mass.py +0 -0
  1140. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_misc.py +0 -0
  1141. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_spells_cast_listing.py +0 -0
  1142. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_skills_transport.py +0 -0
  1143. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_social_conversion.py +0 -0
  1144. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_social_placeholders.py +0 -0
  1145. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spawning.py +0 -0
  1146. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spec_fun_behaviors.py +0 -0
  1147. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spec_funs.py +0 -0
  1148. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spec_funs_extra.py +0 -0
  1149. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_specials_loader_ext.py +0 -0
  1150. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_area_effects_rom_parity.py +0 -0
  1151. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_breath_weapons_rom_parity.py +0 -0
  1152. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_buff_debuff_additional_rom_parity.py +0 -0
  1153. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_cancellation_rom_parity.py +0 -0
  1154. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_charm_control_rom_parity.py +0 -0
  1155. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_creation_rom_parity.py +0 -0
  1156. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_critical_gameplay_rom_parity.py +0 -0
  1157. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_damage_additional_rom_parity.py +0 -0
  1158. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_detection_rom_parity.py +0 -0
  1159. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_enchantment_rom_parity.py +0 -0
  1160. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_farsight_rom_parity.py +0 -0
  1161. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_final_nine_rom_parity.py +0 -0
  1162. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_harm_rom_parity.py +0 -0
  1163. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_healing_rom_parity.py +0 -0
  1164. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_mass_healing_rom_parity.py +0 -0
  1165. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_priority_high_rom_parity.py +0 -0
  1166. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_shocking_grasp_rom_parity.py +0 -0
  1167. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spell_travel_portal_rom_parity.py +0 -0
  1168. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spells_basic.py +0 -0
  1169. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_spells_damage.py +0 -0
  1170. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_state_transitions.py +0 -0
  1171. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_telnet_server.py +0 -0
  1172. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_thief_skills_dispatcher_parity.py +0 -0
  1173. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_time_daynight.py +0 -0
  1174. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_time_persistence.py +0 -0
  1175. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_vision_roomless_target.py +0 -0
  1176. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_weapon_damage.py +0 -0
  1177. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_weapon_special_attacks.py +0 -0
  1178. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_weapon_table_parity.py +0 -0
  1179. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_websocket_server.py +0 -0
  1180. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_wiznet.py +0 -0
  1181. {rom24_quickmud_python-2.14.211 → rom24_quickmud_python-2.14.268}/tests/test_world.py +0 -0
@@ -7,6 +7,479 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.14.268] - 2026-07-05
11
+
12
+ ### Changed (CI)
13
+
14
+ - **Full test suite gated to pull-request + manual dispatch; master pushes run
15
+ only the collect-smokes.** Empirically the pinned full suite takes ~32 CI-min
16
+ on a GitHub runner (verified: it ran clean to 98% with no worker crash, i.e.
17
+ the 2.14.267 pinning fix works — it just needs headroom), so running it on
18
+ every push would cost ~36 CI-min/push, no cheaper than the old broken matrix.
19
+ Direct pushes to master now trigger just the ~4-min 3.10/3.11 import smokes
20
+ (the full suite is validated locally via `.venv` before pushing); the full
21
+ suite still gates PRs and is runnable on demand via `workflow_dispatch`.
22
+ Full-suite `timeout-minutes` raised 30 → 40 for headroom.
23
+
24
+ ## [2.14.267] - 2026-07-05
25
+
26
+ ### Fixed (CI)
27
+
28
+ - **CI Tests workflow green again after ~10 months red** (last passed 2025-09-15
29
+ at v1.2.3, when the suite was tiny). Two root causes, both confirmed by
30
+ reproducing the failure locally:
31
+ - **Unpinned deps → bleeding-edge crash.** The job installed `.[dev,test]`
32
+ (unpinned floors), which pip resolved to **pytest 9.1.1 / pytest-xdist 3.8.0**.
33
+ That stack crashes xdist workers mid-run (`node down: Not properly terminated`
34
+ → `INTERNALERROR` in `loadscope._reschedule`) — reproduced on a machine with
35
+ ample RAM, so it is a plugin incompatibility, not OOM. The pinned lock
36
+ (`requirements-dev.txt`, pytest 8.x — the same stack that runs green locally)
37
+ does not. **Fix:** the full-suite job now installs `-r requirements-dev.txt`.
38
+ - **Suite outgrew the 10-minute cap.** 6131 tests need ~13 min at the runner's
39
+ worker count; the job capped at 10 min and always timed out. **Fix:**
40
+ `timeout-minutes: 30`.
41
+ - **CI cost reduced.** The 3-way full-suite matrix (3.10/3.11/3.12, ~30 CI-min/push,
42
+ all failing) is replaced by one full-suite run on **3.12** (the version the lock
43
+ is built + proven against) plus near-free **`--collect-only`** import smokes on
44
+ **3.10/3.11** that guard the "Python 3.10+" floor (these would have caught the
45
+ `datetime.UTC` 3.10 break in 2.14.266). Net: fewer CI minutes *and* green.
46
+ - Note: the separate `CI` workflow (`ci.yml`) remains **disabled** (it was turned
47
+ off manually); its coverage gate + drift/mypy/rng static checks are not
48
+ currently enforced. Re-enabling it (pinned, with a timeout) is a follow-up.
49
+
50
+ ## [2.14.266] - 2026-07-05
51
+
52
+ ### Fixed
53
+
54
+ - **Python 3.10 compatibility: `admin_logging` no longer imports `datetime.UTC`.**
55
+ `datetime.UTC` is a Python **3.11+** alias; `mud/admin_logging/admin.py` used it,
56
+ and since that module is imported transitively across the engine, every test
57
+ collecting `mud` failed at import under 3.10 (`ImportError: cannot import name
58
+ 'UTC' from 'datetime'`) — making the advertised "Python 3.10+" support false in
59
+ CI. Swapped to `timezone.utc` (available since 3.2, behavior-identical). Also
60
+ fixed the same import in `tests/test_logging_rotation.py`.
61
+
62
+ ## [2.14.265] - 2026-07-05
63
+
64
+ ### Changed (dev tooling)
65
+
66
+ - **CI: bump GitHub Actions off deprecated Node 20.** `actions/checkout@v4→v7`,
67
+ `actions/setup-python@v5→v6`, `actions/upload-artifact@v4→v7`,
68
+ `actions/download-artifact@v4→v8` across `ci.yml`, `release.yml`, `test.yml`,
69
+ `docker-image.yml` — GitHub was force-running the v4/v5 actions on Node 24 and
70
+ warning they target the deprecated Node 20 runtime. `pypa/gh-action-pypi-publish`
71
+ is Docker-based and unaffected. No workflow logic changed.
72
+
73
+ ## [2.14.264] - 2026-07-05
74
+
75
+ ### Changed
76
+
77
+ - **Test suite: per-test hang-guard via `--timeout=120 --timeout-method=thread`
78
+ in `pyproject` addopts** (pytest-timeout, already a declared dep). A single
79
+ hung test now fails with a stack dump after 120s instead of stalling the run
80
+ indefinitely. Does not affect the intermittent xdist *sessionfinish* teardown
81
+ flake (environmental, harmless — all tests have reported by then). Disable with
82
+ `--timeout=0`; override per test with `@pytest.mark.timeout(n)`.
83
+
84
+ ### Added
85
+
86
+ - **Coverage-lock: `xp_compute` neutral-branch alignment `c_div` truncation.** A
87
+ probe verified the XP/group award math is ROM-faithful;
88
+ `test_fight055…::test_fight055_neutral_align_change_truncates_toward_zero` pins
89
+ the one signed-math site test_fight055's ±500 branches didn't cover — the
90
+ neutral-alignment change `gch->alignment * base_exp / 500 * level / total_levels`
91
+ (`src/fight.c:1908`) truncates toward zero (`c_div`) for a negative killer, not
92
+ floor (`//`). Also filed SPLIT-001 (`do_split`'s non-ROM `N gold` keyword form)
93
+ for maintainer review.
94
+
95
+ - **Dev environment: run tests in a project virtualenv (`.venv`).** Documented in
96
+ AGENTS.md ("Build / Lint / Test" → Environment): the shared system framework
97
+ Python is over-constrained across projects (`fastapi`/`gradio` need
98
+ `starlette < 1.0`, `sse-starlette` needs `>= 0.49.1` — no single global version
99
+ works), which silently broke 4 web/session test files at collection when the
100
+ global `starlette` drifted to 1.3.1. Setup: `python3 -m venv .venv &&
101
+ .venv/bin/python -m pip install -r requirements-dev.txt`. The project's own pins
102
+ were always correct — only the global env was wrong.
103
+
104
+ ### Fixed (dev tooling)
105
+
106
+ - **`requirements-dev.txt` lock now includes the test plugins.** Added
107
+ `pytest-xdist`, `pytest-timeout`, and `hypothesis` to `requirements-dev.in` and
108
+ regenerated the pip-compiled lock (existing pins preserved). Previously the lock
109
+ omitted these plugins that `pyproject`'s `[dev]` extra and the default `addopts`
110
+ (`-n auto`, `--timeout`) require, so a fresh `pip install -r requirements-dev.txt`
111
+ produced a venv that couldn't even parse the pytest options. A clean install from
112
+ the lock now yields a runnable suite.
113
+
114
+ - **Coverage-lock: `aggr_update` victim reservoir selection.** New
115
+ `TestAggressiveUpdateVictimReservoir` in
116
+ `tests/integration/test_mob_ai.py` pins ROM's reservoir sampling
117
+ (`src/update.c:1115-1131`): an aggressive NPC facing multiple eligible PCs
118
+ draws one `number_range(0, count)` per victim in `room.people` order, keeping
119
+ the first eligible victim (count==0 always selects) unless a later victim's
120
+ roll wins. Freezes the shared-RNG draw sequence at a classic desync site that
121
+ had no deterministic regression test.
122
+
123
+ - **Coverage-lock: `gain_condition` DRUNK sober-message guard.** New
124
+ `tests/integration/test_gain_condition_drunk_sober_guard.py` pins ROM's
125
+ `if (condition != 0)` old-value guard (`src/update.c:391-394`): "You are sober."
126
+ fires only when the DRUNK slot was non-zero before ticking to 0, so an
127
+ already-sober idle player is never re-notified (unlike HUNGER/THIRST, which
128
+ announce unconditionally at 0). Locks a previously-untested branch.
129
+
130
+ - **HANDLER-008: faithful unified `get_skill` port (core).** Added
131
+ `mud/skills/skill_lookup.py:get_skill` mirroring ROM `src/handler.c:346-448` —
132
+ the PC class-level gate + learned percent, the full NPC formula dispatch
133
+ (spell/weapon/kick/backstab/dodge/parry/trip/bash/disarm/… by flags), the daze
134
+ (`skill/2` spell, `2*skill/3` skill) and drunk (`9*skill/10`) reductions, and the
135
+ `URANGE(0,skill,100)` clamp. Self-contained + unit-tested; call-site migrations
136
+ (retiring the per-skill NPC-formula partial mirrors) follow.
137
+
138
+ - **Differential harness death autosac coverage** — added `__plr_autosac=0|1`
139
+ to the C/Python replay drivers and committed the `death_auto_sac` scenario +
140
+ golden. The new replay confirms death `PLR_AUTOSAC` converges with ROM
141
+ `src/fight.c:968-979` / `src/act_obj.c:1838-1862` for an empty NPC corpse.
142
+ - **Differential harness grouped autosplit coverage** — added `__plr_autosplit=0|1`
143
+ and descriptorless `__group_pc=<name>` setup to the C/Python replay drivers,
144
+ then committed the `death_autosac_autosplit` scenario + golden. The replay
145
+ confirms grouped death `PLR_AUTOSAC` + `PLR_AUTOSPLIT` converges with ROM:
146
+ the driver sees the sacrifice/split lines and the grouped peer receives its
147
+ silver share.
148
+ - **Differential harness death autogold/autosplit coverage** — committed the
149
+ `death_autogold_autosplit` scenario + golden, pinning ROM `get_obj` autosplit
150
+ behavior when `PLR_AUTOGOLD` collects NPC corpse coins for a grouped PC. The
151
+ replay confirms the driver keeps the remainder share and the grouped peer
152
+ receives its split silver without the autosac branch.
153
+ - **Differential harness death autoloot/autosplit coverage** — committed the
154
+ `death_autoloot_autosplit` scenario + golden, pinning ROM `do_get all corpse`
155
+ behavior when `PLR_AUTOLOOT` collects mixed NPC corpse contents for a grouped
156
+ PC with `PLR_AUTOSPLIT`.
157
+ - **`weather_tick` RNG draw-order regression lock** — `tests/test_weather_tick_draw_order.py`
158
+ pins the Mitchell-Moore draw sequence of ROM `weather_update`
159
+ (`src/update.c:578`): the pressure line `change += diff*dice(1,4) + dice(2,6)
160
+ - dice(2,6)` is a single C expression whose three `dice()` calls have
161
+ *unspecified* evaluation order in C, but the diff-harness build platform
162
+ evaluates it strictly left-to-right — which is the order the Python port
163
+ draws in. The test locks the draw count, order, operand sizes, and the +/−
164
+ assignment (so a refactor cannot silently swap the two `dice(2,6)` draws and
165
+ desync every subsequent MM draw shared with combat/spells), plus the
166
+ per-sky-state `number_bits(2)` draw count. No behavior change — this path was
167
+ previously unguarded by any dedicated test.
168
+ - **Differential harness non-death `get all corpse` autosplit coverage** —
169
+ committed the `get_corpse_money_autosplit` scenario + golden, exercising the
170
+ shared `do_get` → `get_obj` autosplit path (`src/act_obj.c:162-184`) via a
171
+ **manual** `get all corpse` (autoloot/autogold OFF) rather than the death
172
+ auto-branch. A grouped level-5 PC with `PLR_AUTOSPLIT` picks up 17 silver /
173
+ 2 gold from a slain janitor's corpse; ROM emits the "You get ..." line plus
174
+ both `do_split` share lines (9 silver / 1 gold), and Python converges — locking
175
+ the FIGHT-080 fix on the non-death entry point.
176
+
177
+ ### Fixed
178
+
179
+ - **PRACTICE-002: below-level skills can't be practiced even when already known.**
180
+ ROM `do_practice` (`src/act_info.c:2744-2757`) rejects a skill whenever
181
+ `ch->level < skill_level[class]`, unconditionally — a group-granted spell stored
182
+ at 1% that a low-level character isn't high enough for still can't be practiced.
183
+ The port only applied the level gate at 0%, so a below-level mage could practice
184
+ a known-at-1% spell (spending a session, raising the percent). Made the level
185
+ gate unconditional. Test:
186
+ `tests/integration/test_do_practice_command.py::test_practice_below_class_level_known_skill_is_rejected`.
187
+
188
+ - **LOOK-010: room-occupant aura tags — order + double-render.** ROM prints
189
+ `(Pink Aura)` (faerie fire) before `(White Aura)` (sanctuary)
190
+ (`src/act_info.c:266,272`); both Python aura sites had them reversed. The room
191
+ list also double-rendered them (`_room_occupant_line` prepended auras and then
192
+ used `describe_character`, which prepends them too), so an aura'd occupant showed
193
+ `(White)(Pink)(White)(Pink) Name`. Fixed the order in both sites and removed the
194
+ duplicate prepend. Test:
195
+ `tests/integration/test_do_look_command.py::test_room_occupant_line_aura_order_pink_before_white`.
196
+
197
+ - **MAGIC-049: `dispel magic` was missing ROM's opening save.** ROM
198
+ `spell_dispel_magic` (`src/magic.c:2082`) opens with `saves_spell(level, victim,
199
+ DAM_OTHER)`; on success it aborts ("You feel a brief tingling sensation." /
200
+ "You failed.") and strips nothing. The port had no gate, so it always proceeded
201
+ to the per-effect dispel loop — a missing RNG draw, two absent messages, and a
202
+ high-saving victim losing buffs ROM preserves. Added the gate. Test:
203
+ `tests/test_utility_spells_parity.py::test_dispel_magic_aborts_when_victim_saves`.
204
+
205
+ - **AFFECTS-001: `affects` double-colon on the level-20+ duplicate line.** For a
206
+ level-20+ character with two same-spell affects (e.g. `bless`, which applies
207
+ APPLY_HITROLL + APPLY_SAVING_SPELL), the continuation line rendered a double
208
+ colon (`: :`). ROM (`src/act_info.c:1726`) emits 22 spaces then `": modifies…"`
209
+ — one colon; the port added an extra `": "`. Dropped it. Test:
210
+ `tests/integration/test_do_affects.py::test_affects_level_20_plus_duplicate_continuation_single_colon`.
211
+
212
+ - **MAGIC-048: `chain lightning` arcs to every target in a bounce pass.** ROM's
213
+ bounce loop (`src/magic.c:1259-1278`) has no level-based break — once a pass
214
+ starts, the bolt arcs to every valid target in the room even after `level`
215
+ reaches 0 (0 damage, but the save roll and messages still fire). The port broke
216
+ out at `level <= 0`, skipping later occupants and desyncing the shared RNG.
217
+ Removed the break. Test:
218
+ `tests/test_skills_damage.py::test_chain_lightning_arcs_to_every_target_in_the_pass`.
219
+ (Also corrected two invisible-attacker masking tests that predated the FIGHT-092
220
+ invis-on-hit reveal.)
221
+
222
+ - **MAGIC-047: `stone skin` already-affected guard checks the caster, not the
223
+ target.** ROM `spell_stone_skin` (`src/magic.c:4447`) is unique among buffs —
224
+ its guard tests `is_affected(ch)` (the caster) while still applying the affect
225
+ to the victim; the port checked the target. So a stone-skinned caster casting on
226
+ a different un-skinned victim wrongly buffed the victim (and the mirror case
227
+ wrongly refused). Now gates on the caster, matching ROM. Test:
228
+ `tests/test_skills_buffs.py::test_stone_skin_guard_checks_caster_not_victim`.
229
+
230
+ - **MOVE-008: container open/close message order (CLOSED before CLOSEABLE).** ROM
231
+ `do_open`/`do_close` (`src/act_move.c`) check `CONT_CLOSED` before
232
+ `CONT_CLOSEABLE`, so an already-open non-closeable container reports "It's
233
+ already open." (and already-closed → "It's already closed."). The port checked
234
+ `CLOSEABLE` first and wrongly returned "You can't do that." for those states.
235
+ Reordered both container arms. Test:
236
+ `tests/integration/test_door_container_message_order.py`.
237
+
238
+ - **FIGHT-092: attacking reveals an invisible attacker.** ROM `damage()`
239
+ (`src/fight.c:763-769`) strips the attacker's invis/mass-invis affects and
240
+ `AFF_INVISIBLE` and broadcasts "$n fades into existence." on every connecting
241
+ hit; the port's `apply_damage` did nothing, so an invisible caster/thief stayed
242
+ hidden through a whole fight. Added the strip + room broadcast after the
243
+ parry/dodge/shield-block checks. Test:
244
+ `tests/integration/test_invisibility_combat.py::test_invisible_attacker_revealed_on_connecting_hit`.
245
+
246
+ - **SELL-005: keeper standardizes a sold item's cost even when the existing
247
+ duplicate is free.** ROM `obj_to_keeper` (`src/act_obj.c:2424`) does
248
+ `obj->cost = t_obj->cost` unconditionally when stacking onto a same-proto
249
+ duplicate; the port skipped it for a `cost==0` duplicate. Removed the guard.
250
+ Test: `tests/test_shops.py::test_obj_to_keeper_standardizes_cost_even_when_existing_is_zero`.
251
+
252
+ - **BUY-011: `buy N*item` counts only consecutive stock.** The multi-buy stock
253
+ check scanned the keeper's whole inventory and counted non-adjacent duplicates,
254
+ but ROM `do_buy` (`src/act_obj.c:2667-2686`) counts only a consecutive run and
255
+ stops at the first non-matching item. So a keeper carrying `[lantern, dagger,
256
+ lantern]` refuses `buy 2*lantern` ("I don't have that many in stock.") in ROM,
257
+ but the port sold both. `_collect_matching_stock` now breaks on the first
258
+ non-matching candidate. Test:
259
+ `tests/test_shops.py::test_buy_multi_stock_requires_consecutive_run`.
260
+
261
+ - **GET-016: magic containers weigh less toward carry limits (WEIGHT_MULT).** The
262
+ command-local `_get_obj_weight` helpers (do_get's `can_carry_w` gate and do_put's
263
+ fit check) summed a container's contents at full weight, ignoring ROM's
264
+ `WEIGHT_MULT` (`get_obj_weight(tobj) * WEIGHT_MULT(obj) / 100`,
265
+ `src/handler.c` / `merc.h:2137`). So a magic bag (`value[4]=50`) holding a
266
+ 100-lb item counted as bag+100 instead of bag+50, and Python could refuse a
267
+ `get <magic-bag>` that ROM allows. Both helpers now apply the multiplier. Test:
268
+ `tests/integration/test_get_weight_mult.py`.
269
+
270
+ - **PUT-004: putting into a carried bag no longer corrupts encumbrance (INV-011).**
271
+ `do_put`'s object move subtracted the item's weight/number from the carrier but
272
+ never re-added it, so `put sword bag` (a carried bag) permanently dropped
273
+ `carry_weight`/`carry_number` — a player could stuff a carried bag to slip under
274
+ the `can_carry_w` movement gate. ROM `obj_to_obj` re-adds
275
+ `get_obj_weight(obj) * WEIGHT_MULT(container) / 100` (and the number) for each
276
+ carried container in the nesting chain (`src/handler.c:1971-1984`), so a normal
277
+ bag (WEIGHT_MULT=100) is net-zero and a magic bag reduces weight. `_obj_to_obj`
278
+ now performs that walk. Test:
279
+ `tests/integration/test_put_weight_mult.py::test_put_into_carried_bag_is_net_zero_on_carry_weight`.
280
+
281
+ - **WEAR-010: `wear/wield/hold N.item` count prefix now resolves.** `do_wear`
282
+ found its target with a substring-only helper instead of ROM's `get_obj_carry`
283
+ (`src/act_obj.c:1726`), so `wear 2.ring` returned "You do not have that item."
284
+ where ROM wears the 2nd of two same-named rings. `wield`/`hold` delegate to
285
+ `do_wear`, so all three were affected. Same finder class as EAT-008; wired to the
286
+ existing `get_obj_carry`. Test:
287
+ `tests/integration/test_equipment_system.py::test_wear_count_prefix_selects_nth_item`.
288
+
289
+ - **EAT-008: `eat N.item` count prefix now resolves.** `do_eat` found its target
290
+ with a substring-only helper instead of ROM's `get_obj_carry`
291
+ (`src/act_obj.c:1296`), so the `N.name` count prefix never parsed — `eat
292
+ 2.mushroom` returned "You do not have that item." where ROM eats the 2nd of two
293
+ same-named items. Wired `do_eat` to the existing `get_obj_carry` (already used by
294
+ `do_quaff`/`do_drink`), a strict superset of the old match. Test:
295
+ `tests/integration/test_consumables.py::test_eat_count_prefix_selects_nth_item`.
296
+
297
+ - **GL-048: mob delay-trigger ends the tick unconditionally (`mobile_update`).**
298
+ ROM's TRIG_DELAY block (`src/update.c:448-454`) fires the trigger on expiry and
299
+ `continue`s **unconditionally**, so the mob does not scavenge or wander that
300
+ tick. The port returned `mp_percent_trigger`'s result, so a *failed* delay
301
+ percent roll let the mob fall through into scavenge/wander — drawing extra RNG
302
+ off the shared stream (desyncing the whole tick) and sometimes picking up an
303
+ item or moving when ROM would not. Also added the missing `HAS_TRIGGER` gate so
304
+ a mob without a delay program no longer counts its `mprog_delay` down. Test:
305
+ `tests/integration/test_gl048_mp_delay_trigger_parity.py`.
306
+
307
+ - **GL-047: regen drains in a negative-rate room + signed rate math (`char_update`).**
308
+ `hit_gain`/`mana_gain`/`move_gain` returned `max(0, min(gain, deficit))`, so a
309
+ room with a negative `heal_rate`/`mana_rate` (a "drain room", fully
310
+ representable via OLC or the signed area loader) never actually drained HP/mana/
311
+ move — ROM returns `UMIN(gain, max-cur)`, a plain min that goes negative and the
312
+ caller subtracts it (`src/update.c:229,698`). The clamp is removed. Separately,
313
+ once the room-rate multiply makes `gain` negative, the rate `/100`, furniture
314
+ `/100`, and poison `/4` / plague `/8` / haste `/2` divisions must truncate
315
+ toward zero like C; the port used floor `//` (off-by-one on a negative
316
+ dividend) — switched to `c_div`. Test:
317
+ `tests/integration/test_gl047_regen_drain_room.py`.
318
+
319
+ - **GL-046: plague-spread RNG draw order/count parity (`char_update`).** The
320
+ per-tick plague infection loop desynced the shared Mitchell-Moore RNG stream
321
+ from ROM `src/update.c:824,829-841` three ways: it drew the spread affect's
322
+ `number_range` **duration** once per infected victim instead of once before the
323
+ loop; it skipped the carrier/immortals/already-plagued occupants without drawing
324
+ their `saves_spell` roll (ROM draws the save for every occupant as the first
325
+ `&&` operand); and it drew `number_bits(4)` **before** the save instead of last.
326
+ Any of the three shifts every downstream RNG consumer in that pulse (regen,
327
+ later chars' affect fades, combat) whenever a plagued character stands in a
328
+ populated room. The loop now mirrors ROM's operand order and draw count exactly.
329
+ Char-side twin of GL-045/GL-026. Test:
330
+ `tests/integration/test_gl046_plague_spread_rng_order.py`.
331
+
332
+ - **HANDLER-008 do_trip NPC trip-chance uses `get_skill` (was hardcoded 100).** `do_trip`'s NPC branch set `skill_level = 100`, so any OFF_TRIP mob tripped at a near-certain base chance regardless of level. It now uses `get_skill(char, "trip")` = ROM's `10 + 3*level` for an OFF_TRIP NPC (`src/handler.c:373-432`, `src/fight.c:2649`) — a level-10 mob's trip base drops from 100 to 40. The OFF_TRIP gate and the `""` silent return for descriptor-less mobs are unchanged. PC path unchanged (a separate opportunistic migration). This closes the last dict-sourced NPC skill lookup — every `get_skill` site in the HANDLER-008 port is now migrated. Test: `test_fight_026_npc_offensive_skill_no_crash.py::test_npc_trip_chance_uses_get_skill_not_hardcoded_100` (+ an over-correction guard confirming a low roll still lands).
333
+
334
+ - **HANDLER-008 test hygiene: `test_fight035` disarm caster is now a warrior.** The disarm act-structure test's caster was a level-30 mage, but ROM's `disarm` skill is mage@53 — so `get_skill` gates it to 0 ("You don't know how to disarm"). The test only passed because it never calls `initialize_world`, leaving the global `skill_registry` empty so the class-gate was skipped; once a sibling test on the same xdist worker populated the registry, the gate activated and the test flaked. Set `ch_class=3` (warrior, disarm@11) so the gate passes deterministically — the same ROM-faithful fix already applied to the `TestDisarmRomParity` chars when the disarm gate was migrated (2.14.236). Exposed by the defensive-check migration reshuffling worker grouping.
335
+
336
+ - **HANDLER-008 complete: defensive checks use `get_skill` — NPCs can finally dodge/parry/shield-block.** `check_dodge`, `check_parry`, and `check_shield_block` sourced their skill from the ad-hoc `_get_skill_percent(defender, …)`, which reads the skills dict — empty (→0) for mobs — so **NPC mobs never dodged, parried, or shield-blocked**. All three now route through the unified `get_skill(victim, …)` (`src/handler.c:373-432`): an NPC with OFF_DODGE/OFF_PARRY gets `level*2`, every NPC gets shield_block `10+2*level`, and PCs are gated below their class skill level. This retires the last dict-sourced defensive site and completes the get_skill port. Test blast radius (13 tests, all re-verified against `get_skill`'s actual output): PC-defender formula tests set a class that learns the skill early (warrior parry@1 / thief dodge@1) to preserve the level-diff; the one NPC-defender test had its expected chance recomputed from the ROM formula (the old dict value was inert); `test_combat_defenses_prob` NPC victims switched from `skills[...]` to `off_flags` with equalized attacker/victim levels (so the level-diff modifier doesn't leak a chance into an unflagged defense).
337
+
338
+ - **FIGHT-090: unified the two `do_trip` implementations.** The `trip` command (`do_trip`) and the `trip` skill function (`skill_handlers.trip`) were divergent duplicate ports of ROM `do_trip`; `skill_handlers.trip` is now a thin delegate to the single canonical `do_trip`. Merged three ROM fixes that had landed only on the handler copy into do_trip: the self-trip colour + `$n trips over $s own feet!` room broadcast (FIGHT-039), the PERS flying/position gate messages `$S`/`$N` (TRIP-001, do_trip had baked "Their"/"They"), and `check_improve` on success/failure (do_trip omitted it, so trip never improved via the command). Also dropped the handler's non-ROM post-damage RESTING re-set. Filed a HANDLER-008 follow-up: do_trip's NPC trip chance still hardcodes 100 instead of get_skill's 10+3*level.
339
+
340
+ - **MAGIC-046: `heat_metal` walks ROM's single `victim->carrying` list + emits `remove_obj` lines.** The spell iterated `inventory + equipment.values()` (carried then worn) instead of ROM's one LIFO list interleaving both by acquisition, so its per-object RNG draws hit different objects. Added `Character.iter_carrying()` (descending `_carry_seq`, the FINDING-020 acquisition counter) and route heat_metal through it; also restored `remove_obj`'s "$n stops using $p." / "You stop using $p." lines before the heat throw lines (src/magic.c:3134, src/act_obj.c:1389-1390).
341
+
342
+ - **HANDLER-008 test fixes: warrior `ch_class` on disarm/rescue PC casters.** The disarm-skill and do_rescue get_skill migrations enforce ROM's PC class-level gate; cross-file disarm/rescue tests that created default mage-class casters now set `ch_class=3` (+ adequate level) — ROM-faithful, since a mage can't disarm/rescue below level 53. Restores the full suite to green.
343
+
344
+ - **HANDLER-008 migration: do_rescue uses `get_skill`.** The rescue success roll now comes from unified `get_skill(char, "rescue")` — class-gated for PCs and 40+level for NPCs (was 0 via the dict → NPC rescue never succeeded). Fifth get_skill site migration; all offensive-skill NPC-formula workarounds are now retired.
345
+
346
+ - **HANDLER-008 migration: disarm-skill gate uses `get_skill`.** `do_disarm`'s skill gate/chance now come from unified `get_skill(caster, "disarm")` — enforcing ROM's PC class-level requirement and finally letting an NPC with OFF_DISARM disarm (20+3*level; was 0 via the dict → always rejected). Fourth of five get_skill site migrations.
347
+
348
+ - **HANDLER-008 migration: disarm hand-to-hand uses `get_skill`.** The unarmed disarm chance sources its hand-to-hand skill from unified `get_skill` (retiring `_hand_to_hand_skill`); daze/drunk now apply. The disarm-*skill* gate migration (which enforces ROM's PC class-level requirement) is a documented follow-up.
349
+
350
+ - **HANDLER-008 migration: backstab THAC0 uses `get_skill`.** `attack_round`'s backstab branch sources its skill from unified `get_skill` (retiring `engine._backstab_skill`); daze/drunk now factor into the backstab near-auto-hit.
351
+
352
+ - **HANDLER-008 migration: `do_kick` routes through `get_skill`.** The kick chance now comes from the unified `get_skill(char, "kick")` — retiring the inline NPC-formula workaround (FIGHT-091) and newly applying ROM's daze/drunk reductions at this site.
353
+
354
+ - **FIGHT-091: an NPC's kick never landed (chance was 0).** `do_kick` read the
355
+ kick percent from the skills dict — empty for mobs — so an aggressive OFF_KICK
356
+ mob could never land a kick. The NPC branch now uses ROM `get_skill`'s
357
+ `10 + 3*level` (`src/handler.c:410`). Fourth site of the get_skill NPC-formula
358
+ class (HANDLER-008), which the unified port will consolidate.
359
+
360
+ - **FIGHT-088: `do_trip` now emits ROM's three act() lines and the failure
361
+ `damage(0)`.** The trip command returned a single baked
362
+ `"You trip X and they go down!"` with no room broadcast or `$N`/`$M` pronoun
363
+ render, and on a miss only set the wait — never starting the fight. Success now
364
+ pushes the TO_VICT line, broadcasts the `$M`-gendered TO_NOTVICT to the room, and
365
+ returns the TO_CHAR line; a miss now calls `damage(ch, victim, 0, gsn_trip, …)`
366
+ before the wait (miss combat message + fight-start), matching
367
+ `src/fight.c:2735-2751`. Filed FIGHT-090 (divergent duplicate trip
368
+ implementations to unify).
369
+
370
+ - **FIGHT-087: unarmed disarm used a hand-to-hand floor of 1 and a non-ROM gate.**
371
+ An unarmed NPC disarmer computed `chance * 1 / 150` (via `max(hand_to_hand, 1)`)
372
+ instead of ROM's `chance * (40+2*level) / 150` — a near-guaranteed failure. Added
373
+ a `_hand_to_hand_skill` helper (PC learned / NPC `40+2*level`, per ROM
374
+ `get_skill`), dropped the floor, and aligned the unarmed gate to ROM's
375
+ `hth==0 OR (IS_NPC AND !OFF_DISARM)`. The disarm-skill NPC lookup on the same
376
+ function remains part of HANDLER-008.
377
+
378
+ - **FIGHT-089: `check_dodge` visibility halving was inert.** The dodge check
379
+ halved chance when the defender couldn't see the attacker, but the port used a
380
+ `getattr(victim, "can_see", lambda x: True)` fallback that never fired (runtime
381
+ entities have no `can_see` method), so a blind defender dodged at full chance.
382
+ Now `not can_see_character(victim, attacker)` (ROM `src/fight.c:1363`) — the twin
383
+ of the FIGHT-084 `check_parry` fix.
384
+
385
+ - **FIGHT-086: backstab THAC0 bonus was missing.** ROM `one_hit`
386
+ (`src/fight.c:474-475`) subtracts `10 * (100 - get_skill(ch, gsn_backstab))`
387
+ from THAC0 for a backstab — a near-guaranteed hit below skill 100. The port
388
+ had the backstab *damage* multiplier but not the THAC0 branch, so sub-100
389
+ backstabs missed far more often than ROM. Added the branch in `attack_round`
390
+ plus a `_backstab_skill` helper mirroring ROM `get_skill` (PC learned / NPC
391
+ thief `20+2*level`). Surfaced HANDLER-008 (systemic daze/drunk get_skill
392
+ modifiers still unported).
393
+
394
+ - **FIGHT-085: skill wait-states were haste/slow-scaled; ROM uses raw beats.**
395
+ `SkillRegistry._compute_skill_lag` halved a skill's lag under `AFF_HASTE` and
396
+ doubled it under `AFF_SLOW`. ROM's `WAIT_STATE` macro (`src/merc.h:2116`) is a
397
+ bare `UMAX` that applies the raw `skill_table[sn].beats`; haste/slow only
398
+ change the number of attacks (`multi_hit`), never lag. Removed the scaling so
399
+ bash/kick/backstab/rescue and every registry-`use()` skill match ROM.
400
+
401
+ - **FIGHT-084: `check_parry` visibility halving used the wrong direction and was
402
+ inert.** ROM `src/fight.c:1311` halves parry on `!can_see(attacker, victim)`;
403
+ the port used `victim.can_see(attacker)` (wrong direction) with a
404
+ `lambda x: True` fallback that never halved. Now `not
405
+ can_see_character(attacker, victim)`. (The sibling inert halving in
406
+ `check_dodge` is filed as FIGHT-089.)
407
+ - **FIGHT-083: `dirt_kicking` false-zero hack + `chance == 0` terrain gate.**
408
+ `src/fight.c:2566-2608`. Restored ROM's "sloppy hack to prevent false zeroes"
409
+ (`chance % 5 == 0 → += 1`, before the terrain switch) and changed the
410
+ post-terrain gate from `chance <= 0` to `chance == 0`, so a weak/low-dex
411
+ kicker on dry land no longer wrongly sees "There isn't any dirt to kick." and
412
+ correctly eats the guaranteed-miss WAIT_STATE; only water/air (which hard-set
413
+ chance to 0) report no dirt.
414
+ - **MAGIC-045: `heat_metal` collapsed ROM's cursed-item branches (HIGH).**
415
+ `src/magic.c:3123-3277`. The port hardcoded `can_drop_obj` to `True`, so a
416
+ worn cursed (NODROP) weapon/armor or a cursed inventory item was dropped and
417
+ took the wrong damage instead of ROM's "sears your flesh / skin is seared"
418
+ else-branch (item stays). Restored the real `can_drop_obj` (NODROP +
419
+ immortal bypass), modelled `remove_obj`'s NOREMOVE failure, preserved ROM's
420
+ `&&` short-circuit so the worn-armor DEX `number_range` is only drawn when the
421
+ item is droppable (RNG parity), and switched that bound to
422
+ `get_curr_stat(DEX)`. Iteration-order sub-finding refiled as MAGIC-046.
423
+ - **FIGHT-082: `do_trip` cluster — four ROM divergences (HIGH).** `src/fight.c:2711-2753`.
424
+ (a) dropped the spurious `skill_level // 20` term from the bash-damage bound
425
+ (ROM `number_range(2, 2 + 2*victim->size)`); (b) added the missing
426
+ OFF_FAST/AFF_HASTE speed modifier (`+10` self / `-20` victim); (c) fixed the
427
+ wait/daze values — success now WAITs the attacker for the skill's raw `beats`
428
+ (24) and `DAZE`s the victim (`2*PULSE_VIOLENCE`) instead of WAITing it, failure
429
+ WAITs `beats*2/3` (16), and self-trip WAITs `2*beats` (48) — all previously a
430
+ flat `PULSE_VIOLENCE`.
431
+ - **FIGHT-081: melee AC modifiers applied at the wrong scale/order in
432
+ `attack_round` (HIGH — every swing).** ROM `one_hit` (`src/fight.c:480-503`)
433
+ divides `GET_AC` by 10 **first**, then applies the `< -15` rescale and the
434
+ `-4/+4/+6` visibility/position modifiers on the /10 scale; the port applied
435
+ them to the raw (×10) AC and divided last, making the modifiers ~10× too weak
436
+ and mis-firing the rescale for nearly every armored character. Extracted
437
+ `_compute_victim_ac` mirroring ROM order, and gated the -4 on
438
+ `not can_see_character(attacker, victim)` (blind/dark/hide/detect-invis aware)
439
+ instead of the victim's INVISIBLE affect. No existing combat test needed
440
+ re-baselining.
441
+ - **GL-045: `obj_update` object-affect fade skipped its RNG draw at level 0
442
+ (RNG desync).** `_tick_object_affects` had the fade-roll operands swapped
443
+ (`level > 0 and number_range(0,4) == 0`), so a level-0 object affect with
444
+ `duration > 0` short-circuited past the draw. ROM
445
+ (`if (number_range(0,4) == 0 && paf->level > 0)`, `src/update.c:933`) consumes
446
+ the roll unconditionally for every `duration>0` affect. The skipped draw
447
+ desynced the shared Mitchell-Moore stream for every downstream consumer in the
448
+ pulse — the object-side twin of the character-side GL-026 fix. Reordered to
449
+ roll first. Test: `tests/test_obj_update_affect_fade_rng.py`.
450
+ - **PICK-003: `do_pick` door immortal-bypass used the wrong threshold and
451
+ skipped the `get_trust` level fallback.** The door branch had
452
+ `is_immortal = trust >= 51` reading raw `char.trust`. ROM gates on
453
+ `!IS_IMMORTAL(ch)` where `IS_IMMORTAL = get_trust(ch) >= LEVEL_IMMORTAL` (=52)
454
+ and `get_trust` falls back to level when trust is unset
455
+ (`src/act_move.c:958,963,973`, `src/merc.h:149,2091`). So (a) a trust-51
456
+ mortal hero wrongly bypassed pickproof/open-door gates, and (b) a level-52
457
+ immortal with trust 0 was wrongly refused ("You failed.") on a pickproof door.
458
+ Fixed to `char.is_immortal()`. Contradicts a stale "immortal bypass FIXED"
459
+ audit claim. Same wrong-constant class as GET-015.
460
+ - **GET-015: `get all <pit>` greed gate treated a level-51 mortal hero as
461
+ immortal.** The pit donation gate hardcoded `char_trust >= 51`, but ROM gates
462
+ on `!IS_IMMORTAL(ch)` where `IS_IMMORTAL = get_trust(ch) >= LEVEL_IMMORTAL`
463
+ and `LEVEL_IMMORTAL = 52` (`src/act_obj.c:320-321`, `src/merc.h:149,2091`).
464
+ Level/trust 51 is `LEVEL_HERO` — the top *mortal* tier — so a max-level mortal
465
+ could empty a donation pit in one command. Fixed to compare `>= LEVEL_IMMORTAL`.
466
+ The prior test encoded the misread (`trust = 51 # ROM: god = 51`) and was
467
+ corrected; added a hero-trust-51 regression.
468
+ - **FIGHT-080 follow-up: AUTOSPLIT output from `get_obj` is now preserved in
469
+ `do_get` output.** ROM `get_obj` (`src/act_obj.c:162-184`) calls `do_split`
470
+ after the "You get ..." money line, so `PLR_AUTOLOOT` over a mixed corpse must
471
+ show both split lines for the actor. Python updated the balances but dropped
472
+ `do_split`'s returned actor lines. The new `death_autoloot_autosplit` C-oracle
473
+ replay caught and locks the fix.
474
+ - **INV-054 DESCRIPTOR-WAIT-BUFFERS-INPUT** — commands typed while a connected
475
+ player is in ROM wait-state recovery are now buffered at the descriptor read
476
+ chokepoint and replayed after recovery clears, matching `src/comm.c:619-623`.
477
+ This removes the Python-only visible `"You are still recovering."` result for
478
+ live `cast magic`/combat-command input during kill/cast lag; the command now
479
+ waits in the session buffer instead of dispatching early into `do_cast`.
480
+ Enforced by
481
+ `tests/test_networking_telnet.py::test_wait_state_buffers_command_until_recovered_per_rom`.
482
+
10
483
  ## [2.14.211] - 2026-06-22
11
484
 
12
485
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rom24-quickmud-python
3
- Version: 2.14.211
3
+ Version: 2.14.268
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>
@@ -59,10 +59,10 @@ Dynamic: license-file
59
59
 
60
60
  # QuickMUD - A Modern ROM 2.4 Python Port
61
61
 
62
- [![Version](https://img.shields.io/badge/version-2.14.211-blue.svg)](https://github.com/Nostoi/rom24-quickmud-python)
62
+ [![Version](https://img.shields.io/badge/version-2.14.268-blue.svg)](https://github.com/Nostoi/rom24-quickmud-python)
63
63
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
64
64
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
65
- [![Tests](https://img.shields.io/badge/tests-6034%20passing-brightgreen.svg)](https://github.com/Nostoi/rom24-quickmud-python)
65
+ [![Tests](https://img.shields.io/badge/tests-6127%20passing-brightgreen.svg)](https://github.com/Nostoi/rom24-quickmud-python)
66
66
  [![ROM 2.4b Parity](https://img.shields.io/badge/ROM%202.4b%20Parity-parity%20beta-blue.svg)](docs/parity/ROM_C_SUBSYSTEM_AUDIT_TRACKER.md)
67
67
  [![ROM C Audit](https://img.shields.io/badge/ROM%20C%20Audit-43%2F43%20audited-success.svg)](docs/parity/ROM_C_SUBSYSTEM_AUDIT_TRACKER.md)
68
68
  [![Integration Tests](https://img.shields.io/badge/integration%20tests-1000%2B-brightgreen.svg)](tests/integration/)
@@ -83,7 +83,7 @@ A "[Multi-User Dungeon](https://en.wikipedia.org/wiki/MUD)" (MUD) is a text-base
83
83
  - **⚔️ ROM Combat System**: Classic ROM combat mechanics and skill system
84
84
  - **👥 Social Features**: Say, tell, shout, and 100+ social interactions
85
85
  - **🛠️ Admin Commands**: Teleport, spawn, ban management, and OLC building
86
- - **📊 Comprehensive Testing**: 6,034 passing tests across unit, integration, and command-registry suites
86
+ - **📊 Comprehensive Testing**: 6,076 passing tests across unit, integration, and command-registry suites
87
87
  - **🔧 ROM C-Compatible API**: Public API wrappers for external tools and scripts (27 functions)
88
88
 
89
89
  ## 📦 Installation
@@ -228,7 +228,7 @@ python -m mud # Start development server
228
228
  **Stage: parity beta** — feature-complete and playable; parity fidelity is being
229
229
  systematically hardened toward ROM-exact behavioral equivalence.
230
230
 
231
- - **Version**: 2.14.211
231
+ - **Version**: 2.14.268
232
232
  - **Playability**: ✅ All 255 ROM commands implemented. Combat, spells, skills,
233
233
  movement, shops, mob programs, OLC building, and admin tools work and pass their
234
234
  tests. You can run a server and play today.
@@ -256,7 +256,7 @@ systematically hardened toward ROM-exact behavioral equivalence.
256
256
  diffed. Any behavioral divergence surfaces mechanically rather than requiring a
257
257
  hand-written assertion. Coverage is growing; uncovered surfaces are the remaining
258
258
  parity-confidence gap.
259
- - **Test Suite**: ✅ **6,034 passed, 4 skipped** (full `pytest` run, ~5min parallel).
259
+ - **Test Suite**: ✅ **6,049 passed, 4 skipped** (full `pytest` run, ~5min parallel).
260
260
  Unit, integration, command-registry, and differential-harness layers.
261
261
  - **Active focus**: Cross-file invariants and the divergence-class roster (the
262
262
  enumeration-of-structural-divergences pass). Recently closed: **divergence-class
@@ -421,7 +421,7 @@ being hardened gap-by-gap (see **Project Status** above).
421
421
 
422
422
  ### 📈 Quality Metrics
423
423
 
424
- - **Test Suite**: 6,034 passing, 4 skipped on the latest full run.
424
+ - **Test Suite**: 6,076 passing, 4 skipped on the latest full run.
425
425
  - **Audit Coverage**: every ROM 2.4b6 gameplay subsystem has a completed audit
426
426
  document (combat, skills, spells, movement, communication, world/db, save/load,
427
427
  mob programs, 255/255 commands). Audit completion means *reviewed and documented*,
@@ -1,9 +1,9 @@
1
1
  # QuickMUD - A Modern ROM 2.4 Python Port
2
2
 
3
- [![Version](https://img.shields.io/badge/version-2.14.211-blue.svg)](https://github.com/Nostoi/rom24-quickmud-python)
3
+ [![Version](https://img.shields.io/badge/version-2.14.268-blue.svg)](https://github.com/Nostoi/rom24-quickmud-python)
4
4
  [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
- [![Tests](https://img.shields.io/badge/tests-6034%20passing-brightgreen.svg)](https://github.com/Nostoi/rom24-quickmud-python)
6
+ [![Tests](https://img.shields.io/badge/tests-6127%20passing-brightgreen.svg)](https://github.com/Nostoi/rom24-quickmud-python)
7
7
  [![ROM 2.4b Parity](https://img.shields.io/badge/ROM%202.4b%20Parity-parity%20beta-blue.svg)](docs/parity/ROM_C_SUBSYSTEM_AUDIT_TRACKER.md)
8
8
  [![ROM C Audit](https://img.shields.io/badge/ROM%20C%20Audit-43%2F43%20audited-success.svg)](docs/parity/ROM_C_SUBSYSTEM_AUDIT_TRACKER.md)
9
9
  [![Integration Tests](https://img.shields.io/badge/integration%20tests-1000%2B-brightgreen.svg)](tests/integration/)
@@ -24,7 +24,7 @@ A "[Multi-User Dungeon](https://en.wikipedia.org/wiki/MUD)" (MUD) is a text-base
24
24
  - **⚔️ ROM Combat System**: Classic ROM combat mechanics and skill system
25
25
  - **👥 Social Features**: Say, tell, shout, and 100+ social interactions
26
26
  - **🛠️ Admin Commands**: Teleport, spawn, ban management, and OLC building
27
- - **📊 Comprehensive Testing**: 6,034 passing tests across unit, integration, and command-registry suites
27
+ - **📊 Comprehensive Testing**: 6,076 passing tests across unit, integration, and command-registry suites
28
28
  - **🔧 ROM C-Compatible API**: Public API wrappers for external tools and scripts (27 functions)
29
29
 
30
30
  ## 📦 Installation
@@ -169,7 +169,7 @@ python -m mud # Start development server
169
169
  **Stage: parity beta** — feature-complete and playable; parity fidelity is being
170
170
  systematically hardened toward ROM-exact behavioral equivalence.
171
171
 
172
- - **Version**: 2.14.211
172
+ - **Version**: 2.14.268
173
173
  - **Playability**: ✅ All 255 ROM commands implemented. Combat, spells, skills,
174
174
  movement, shops, mob programs, OLC building, and admin tools work and pass their
175
175
  tests. You can run a server and play today.
@@ -197,7 +197,7 @@ systematically hardened toward ROM-exact behavioral equivalence.
197
197
  diffed. Any behavioral divergence surfaces mechanically rather than requiring a
198
198
  hand-written assertion. Coverage is growing; uncovered surfaces are the remaining
199
199
  parity-confidence gap.
200
- - **Test Suite**: ✅ **6,034 passed, 4 skipped** (full `pytest` run, ~5min parallel).
200
+ - **Test Suite**: ✅ **6,049 passed, 4 skipped** (full `pytest` run, ~5min parallel).
201
201
  Unit, integration, command-registry, and differential-harness layers.
202
202
  - **Active focus**: Cross-file invariants and the divergence-class roster (the
203
203
  enumeration-of-structural-divergences pass). Recently closed: **divergence-class
@@ -362,7 +362,7 @@ being hardened gap-by-gap (see **Project Status** above).
362
362
 
363
363
  ### 📈 Quality Metrics
364
364
 
365
- - **Test Suite**: 6,034 passing, 4 skipped on the latest full run.
365
+ - **Test Suite**: 6,076 passing, 4 skipped on the latest full run.
366
366
  - **Audit Coverage**: every ROM 2.4b6 gameplay subsystem has a completed audit
367
367
  document (combat, skills, spells, movement, communication, world/db, save/load,
368
368
  mob programs, 255/255 commands). Audit completion means *reviewed and documented*,
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from datetime import UTC, datetime
3
+ from datetime import datetime, timezone
4
4
  from pathlib import Path
5
5
  from typing import TYPE_CHECKING
6
6
 
@@ -100,7 +100,7 @@ def log_admin_command(
100
100
  """
101
101
 
102
102
  Path("log").mkdir(exist_ok=True)
103
- timestamp = datetime.now(UTC).isoformat().replace("+00:00", "Z")
103
+ timestamp = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z")
104
104
  sanitized = _sanitize_command_line(command_line)
105
105
  if character is not None:
106
106
  try:
@@ -132,7 +132,7 @@ def rotate_admin_log(today: datetime | None = None) -> Path:
132
132
  active = log_dir / "admin.log"
133
133
  if not active.exists():
134
134
  return active
135
- dt = today or datetime.now(UTC)
135
+ dt = today or datetime.now(timezone.utc)
136
136
  dated = log_dir / f"admin-{dt.strftime('%Y%m%d')}.log"
137
137
  # Avoid clobbering: if dated file exists, append current log and remove active
138
138
  if dated.exists():