rom24-quickmud-python 1.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. rom24_quickmud_python-1.2.2/CHANGELOG.md +64 -0
  2. rom24_quickmud_python-1.2.2/LICENSE +21 -0
  3. rom24_quickmud_python-1.2.2/MANIFEST.in +15 -0
  4. rom24_quickmud_python-1.2.2/PKG-INFO +236 -0
  5. rom24_quickmud_python-1.2.2/README.md +184 -0
  6. rom24_quickmud_python-1.2.2/area/air.are +1223 -0
  7. rom24_quickmud_python-1.2.2/area/arachnos.are +1298 -0
  8. rom24_quickmud_python-1.2.2/area/area.lst +54 -0
  9. rom24_quickmud_python-1.2.2/area/astral.are +3420 -0
  10. rom24_quickmud_python-1.2.2/area/canyon.are +2096 -0
  11. rom24_quickmud_python-1.2.2/area/catacomb.are +1781 -0
  12. rom24_quickmud_python-1.2.2/area/chapel.are +1964 -0
  13. rom24_quickmud_python-1.2.2/area/daycare.are +647 -0
  14. rom24_quickmud_python-1.2.2/area/draconia.are +1629 -0
  15. rom24_quickmud_python-1.2.2/area/dream.are +1301 -0
  16. rom24_quickmud_python-1.2.2/area/drow.are +1238 -0
  17. rom24_quickmud_python-1.2.2/area/dwarven.are +1416 -0
  18. rom24_quickmud_python-1.2.2/area/dylan.are +1806 -0
  19. rom24_quickmud_python-1.2.2/area/eastern.are +1466 -0
  20. rom24_quickmud_python-1.2.2/area/galaxy.are +2010 -0
  21. rom24_quickmud_python-1.2.2/area/gnome.are +2260 -0
  22. rom24_quickmud_python-1.2.2/area/grave.are +934 -0
  23. rom24_quickmud_python-1.2.2/area/group.are +909 -0
  24. rom24_quickmud_python-1.2.2/area/grove.are +960 -0
  25. rom24_quickmud_python-1.2.2/area/haon.are +2530 -0
  26. rom24_quickmud_python-1.2.2/area/help.are +1701 -0
  27. rom24_quickmud_python-1.2.2/area/hitower.are +5512 -0
  28. rom24_quickmud_python-1.2.2/area/hood.are +1891 -0
  29. rom24_quickmud_python-1.2.2/area/immort.are +687 -0
  30. rom24_quickmud_python-1.2.2/area/limbo.are +196 -0
  31. rom24_quickmud_python-1.2.2/area/mahntor.are +3850 -0
  32. rom24_quickmud_python-1.2.2/area/marsh.are +818 -0
  33. rom24_quickmud_python-1.2.2/area/mega1.are +1042 -0
  34. rom24_quickmud_python-1.2.2/area/midennir.are +1341 -0
  35. rom24_quickmud_python-1.2.2/area/midgaard.are +6483 -0
  36. rom24_quickmud_python-1.2.2/area/mirror.are +3050 -0
  37. rom24_quickmud_python-1.2.2/area/mobfact.are +701 -0
  38. rom24_quickmud_python-1.2.2/area/moria.are +3078 -0
  39. rom24_quickmud_python-1.2.2/area/newthalos.are +7370 -0
  40. rom24_quickmud_python-1.2.2/area/nirvana.are +1315 -0
  41. rom24_quickmud_python-1.2.2/area/ofcol.are +191 -0
  42. rom24_quickmud_python-1.2.2/area/ofcol2.are +3433 -0
  43. rom24_quickmud_python-1.2.2/area/olympus.are +1629 -0
  44. rom24_quickmud_python-1.2.2/area/plains.are +1333 -0
  45. rom24_quickmud_python-1.2.2/area/proto.are +49 -0
  46. rom24_quickmud_python-1.2.2/area/pyramid.are +2311 -0
  47. rom24_quickmud_python-1.2.2/area/quifael.are +190 -0
  48. rom24_quickmud_python-1.2.2/area/redferne.are +498 -0
  49. rom24_quickmud_python-1.2.2/area/rom.are +514 -0
  50. rom24_quickmud_python-1.2.2/area/school.are +2176 -0
  51. rom24_quickmud_python-1.2.2/area/sewer.are +4810 -0
  52. rom24_quickmud_python-1.2.2/area/shire.are +1945 -0
  53. rom24_quickmud_python-1.2.2/area/smurf.are +890 -0
  54. rom24_quickmud_python-1.2.2/area/social.are +2219 -0
  55. rom24_quickmud_python-1.2.2/area/thalos.are +2203 -0
  56. rom24_quickmud_python-1.2.2/area/tohell.are +4802 -0
  57. rom24_quickmud_python-1.2.2/area/trollden.are +373 -0
  58. rom24_quickmud_python-1.2.2/area/valley.are +2300 -0
  59. rom24_quickmud_python-1.2.2/area/wyvern.are +1739 -0
  60. rom24_quickmud_python-1.2.2/data/areas/air.json +1345 -0
  61. rom24_quickmud_python-1.2.2/data/areas/arachnos.json +2019 -0
  62. rom24_quickmud_python-1.2.2/data/areas/area.json +12 -0
  63. rom24_quickmud_python-1.2.2/data/areas/area_0.json +442 -0
  64. rom24_quickmud_python-1.2.2/data/areas/astral.json +2978 -0
  65. rom24_quickmud_python-1.2.2/data/areas/astral_plane.json +4501 -0
  66. rom24_quickmud_python-1.2.2/data/areas/canyon.json +1677 -0
  67. rom24_quickmud_python-1.2.2/data/areas/catacomb.json +1688 -0
  68. rom24_quickmud_python-1.2.2/data/areas/catacombs.json +2658 -0
  69. rom24_quickmud_python-1.2.2/data/areas/chapel.json +2836 -0
  70. rom24_quickmud_python-1.2.2/data/areas/day_care.json +1042 -0
  71. rom24_quickmud_python-1.2.2/data/areas/daycare.json +555 -0
  72. rom24_quickmud_python-1.2.2/data/areas/draconia.json +1407 -0
  73. rom24_quickmud_python-1.2.2/data/areas/dragon_tower.json +2732 -0
  74. rom24_quickmud_python-1.2.2/data/areas/dream.json +1346 -0
  75. rom24_quickmud_python-1.2.2/data/areas/drow.json +1226 -0
  76. rom24_quickmud_python-1.2.2/data/areas/drow_city.json +1944 -0
  77. rom24_quickmud_python-1.2.2/data/areas/dwarven.json +1267 -0
  78. rom24_quickmud_python-1.2.2/data/areas/dwarven_kingdom.json +2225 -0
  79. rom24_quickmud_python-1.2.2/data/areas/dylan's_area.json +2493 -0
  80. rom24_quickmud_python-1.2.2/data/areas/dylan.json +1995 -0
  81. rom24_quickmud_python-1.2.2/data/areas/eastern.json +1372 -0
  82. rom24_quickmud_python-1.2.2/data/areas/elemental_canyon.json +3479 -0
  83. rom24_quickmud_python-1.2.2/data/areas/galaxy.json +3386 -0
  84. rom24_quickmud_python-1.2.2/data/areas/gangland.json +2625 -0
  85. rom24_quickmud_python-1.2.2/data/areas/gnome.json +2266 -0
  86. rom24_quickmud_python-1.2.2/data/areas/gnome_village.json +3575 -0
  87. rom24_quickmud_python-1.2.2/data/areas/grave.json +930 -0
  88. rom24_quickmud_python-1.2.2/data/areas/graveyard.json +1384 -0
  89. rom24_quickmud_python-1.2.2/data/areas/group.json +12 -0
  90. rom24_quickmud_python-1.2.2/data/areas/grove.json +739 -0
  91. rom24_quickmud_python-1.2.2/data/areas/haon.json +2489 -0
  92. rom24_quickmud_python-1.2.2/data/areas/haon_dor.json +3421 -0
  93. rom24_quickmud_python-1.2.2/data/areas/hell.json +7359 -0
  94. rom24_quickmud_python-1.2.2/data/areas/help.json +12 -0
  95. rom24_quickmud_python-1.2.2/data/areas/high_tower.json +9028 -0
  96. rom24_quickmud_python-1.2.2/data/areas/hitower.json +5036 -0
  97. rom24_quickmud_python-1.2.2/data/areas/holy_grove.json +1355 -0
  98. rom24_quickmud_python-1.2.2/data/areas/hood.json +1765 -0
  99. rom24_quickmud_python-1.2.2/data/areas/immort.json +619 -0
  100. rom24_quickmud_python-1.2.2/data/areas/in_the_air.json +1422 -0
  101. rom24_quickmud_python-1.2.2/data/areas/limbo.json +136 -0
  102. rom24_quickmud_python-1.2.2/data/areas/machine_dreams.json +1465 -0
  103. rom24_quickmud_python-1.2.2/data/areas/mahn-tor.json +6066 -0
  104. rom24_quickmud_python-1.2.2/data/areas/mahntor.json +3100 -0
  105. rom24_quickmud_python-1.2.2/data/areas/marsh.json +1314 -0
  106. rom24_quickmud_python-1.2.2/data/areas/mega1.json +843 -0
  107. rom24_quickmud_python-1.2.2/data/areas/mega_city_one.json +1601 -0
  108. rom24_quickmud_python-1.2.2/data/areas/miden'nir.json +1758 -0
  109. rom24_quickmud_python-1.2.2/data/areas/midennir.json +1346 -0
  110. rom24_quickmud_python-1.2.2/data/areas/midgaard.json +12453 -0
  111. rom24_quickmud_python-1.2.2/data/areas/mirror.json +2518 -0
  112. rom24_quickmud_python-1.2.2/data/areas/mob_factory.json +836 -0
  113. rom24_quickmud_python-1.2.2/data/areas/mobfact.json +625 -0
  114. rom24_quickmud_python-1.2.2/data/areas/moria.json +4627 -0
  115. rom24_quickmud_python-1.2.2/data/areas/mud_school.json +3076 -0
  116. rom24_quickmud_python-1.2.2/data/areas/new_ofcol.json +5386 -0
  117. rom24_quickmud_python-1.2.2/data/areas/new_thalos.json +11535 -0
  118. rom24_quickmud_python-1.2.2/data/areas/newthalos.json +6643 -0
  119. rom24_quickmud_python-1.2.2/data/areas/nirvana.json +1974 -0
  120. rom24_quickmud_python-1.2.2/data/areas/ofcol.json +205 -0
  121. rom24_quickmud_python-1.2.2/data/areas/ofcol2.json +2835 -0
  122. rom24_quickmud_python-1.2.2/data/areas/old_thalos.json +4212 -0
  123. rom24_quickmud_python-1.2.2/data/areas/olympus.json +2730 -0
  124. rom24_quickmud_python-1.2.2/data/areas/plains.json +1881 -0
  125. rom24_quickmud_python-1.2.2/data/areas/pyramid.json +3286 -0
  126. rom24_quickmud_python-1.2.2/data/areas/quifael's.json +197 -0
  127. rom24_quickmud_python-1.2.2/data/areas/quifael.json +185 -0
  128. rom24_quickmud_python-1.2.2/data/areas/redferne's.json +583 -0
  129. rom24_quickmud_python-1.2.2/data/areas/redferne.json +458 -0
  130. rom24_quickmud_python-1.2.2/data/areas/rom.json +12 -0
  131. rom24_quickmud_python-1.2.2/data/areas/sands_of_sorrow.json +2442 -0
  132. rom24_quickmud_python-1.2.2/data/areas/school.json +1892 -0
  133. rom24_quickmud_python-1.2.2/data/areas/sewer.json +4912 -0
  134. rom24_quickmud_python-1.2.2/data/areas/sewers.json +6783 -0
  135. rom24_quickmud_python-1.2.2/data/areas/shire.json +2973 -0
  136. rom24_quickmud_python-1.2.2/data/areas/smurf.json +846 -0
  137. rom24_quickmud_python-1.2.2/data/areas/smurfville.json +1395 -0
  138. rom24_quickmud_python-1.2.2/data/areas/social.json +12 -0
  139. rom24_quickmud_python-1.2.2/data/areas/thalos.json +3179 -0
  140. rom24_quickmud_python-1.2.2/data/areas/tohell.json +4037 -0
  141. rom24_quickmud_python-1.2.2/data/areas/troll_den.json +616 -0
  142. rom24_quickmud_python-1.2.2/data/areas/trollden.json +210 -0
  143. rom24_quickmud_python-1.2.2/data/areas/valhalla.json +697 -0
  144. rom24_quickmud_python-1.2.2/data/areas/valley.json +2329 -0
  145. rom24_quickmud_python-1.2.2/data/areas/valley_of_the_elves.json +3232 -0
  146. rom24_quickmud_python-1.2.2/data/areas/wyvern's_tower.json +2818 -0
  147. rom24_quickmud_python-1.2.2/data/areas/wyvern.json +1553 -0
  148. rom24_quickmud_python-1.2.2/data/help.json +1166 -0
  149. rom24_quickmud_python-1.2.2/data/shops.json +642 -0
  150. rom24_quickmud_python-1.2.2/data/skills.json +1855 -0
  151. rom24_quickmud_python-1.2.2/data/socials.json +2686 -0
  152. rom24_quickmud_python-1.2.2/data/time.json +7 -0
  153. rom24_quickmud_python-1.2.2/doc/MPDocs/examples.doc +299 -0
  154. rom24_quickmud_python-1.2.2/doc/MPDocs/hacker.doc +122 -0
  155. rom24_quickmud_python-1.2.2/doc/MPDocs/mobprog.doc +1248 -0
  156. rom24_quickmud_python-1.2.2/doc/MPDocs/new_readme.txt +3 -0
  157. rom24_quickmud_python-1.2.2/doc/QuickMUD.txt +73 -0
  158. rom24_quickmud_python-1.2.2/doc/Rom2.4.doc +2054 -0
  159. rom24_quickmud_python-1.2.2/doc/act.txt +133 -0
  160. rom24_quickmud_python-1.2.2/doc/area.txt +935 -0
  161. rom24_quickmud_python-1.2.2/doc/c_module_inventory.md +47 -0
  162. rom24_quickmud_python-1.2.2/doc/c_python_cross_reference.md +20 -0
  163. rom24_quickmud_python-1.2.2/doc/c_to_python_file_coverage.md +50 -0
  164. rom24_quickmud_python-1.2.2/doc/class.txt +122 -0
  165. rom24_quickmud_python-1.2.2/doc/command.txt +115 -0
  166. rom24_quickmud_python-1.2.2/doc/contrib.txt +183 -0
  167. rom24_quickmud_python-1.2.2/doc/drool.txt +118 -0
  168. rom24_quickmud_python-1.2.2/doc/hacker.txt +358 -0
  169. rom24_quickmud_python-1.2.2/doc/license.doc +103 -0
  170. rom24_quickmud_python-1.2.2/doc/license.txt +46 -0
  171. rom24_quickmud_python-1.2.2/doc/memory.txt +137 -0
  172. rom24_quickmud_python-1.2.2/doc/new.txt +260 -0
  173. rom24_quickmud_python-1.2.2/doc/pfile.txt +101 -0
  174. rom24_quickmud_python-1.2.2/doc/port.txt +130 -0
  175. rom24_quickmud_python-1.2.2/doc/pr_queue.md +45 -0
  176. rom24_quickmud_python-1.2.2/doc/python_architecture.md +25 -0
  177. rom24_quickmud_python-1.2.2/doc/python_module_inventory.md +37 -0
  178. rom24_quickmud_python-1.2.2/doc/security.txt +106 -0
  179. rom24_quickmud_python-1.2.2/doc/sites.txt +36 -0
  180. rom24_quickmud_python-1.2.2/doc/skill.txt +254 -0
  181. rom24_quickmud_python-1.2.2/doc/sky.txt +95 -0
  182. rom24_quickmud_python-1.2.2/doc/trad.txt +81 -0
  183. rom24_quickmud_python-1.2.2/doc/vnum.txt +34 -0
  184. rom24_quickmud_python-1.2.2/doc/~$Rom2.4.doc +0 -0
  185. rom24_quickmud_python-1.2.2/mud/__init__.py +0 -0
  186. rom24_quickmud_python-1.2.2/mud/__main__.py +40 -0
  187. rom24_quickmud_python-1.2.2/mud/account/__init__.py +20 -0
  188. rom24_quickmud_python-1.2.2/mud/account/account_manager.py +62 -0
  189. rom24_quickmud_python-1.2.2/mud/account/account_service.py +80 -0
  190. rom24_quickmud_python-1.2.2/mud/advancement.py +62 -0
  191. rom24_quickmud_python-1.2.2/mud/affects/saves.py +123 -0
  192. rom24_quickmud_python-1.2.2/mud/agent/__init__.py +0 -0
  193. rom24_quickmud_python-1.2.2/mud/agent/agent_protocol.py +19 -0
  194. rom24_quickmud_python-1.2.2/mud/agent/character_agent.py +61 -0
  195. rom24_quickmud_python-1.2.2/mud/combat/__init__.py +3 -0
  196. rom24_quickmud_python-1.2.2/mud/combat/engine.py +189 -0
  197. rom24_quickmud_python-1.2.2/mud/commands/__init__.py +3 -0
  198. rom24_quickmud_python-1.2.2/mud/commands/admin_commands.py +77 -0
  199. rom24_quickmud_python-1.2.2/mud/commands/advancement.py +36 -0
  200. rom24_quickmud_python-1.2.2/mud/commands/alias_cmds.py +44 -0
  201. rom24_quickmud_python-1.2.2/mud/commands/build.py +18 -0
  202. rom24_quickmud_python-1.2.2/mud/commands/combat.py +16 -0
  203. rom24_quickmud_python-1.2.2/mud/commands/communication.py +55 -0
  204. rom24_quickmud_python-1.2.2/mud/commands/decorators.py +11 -0
  205. rom24_quickmud_python-1.2.2/mud/commands/dispatcher.py +206 -0
  206. rom24_quickmud_python-1.2.2/mud/commands/healer.py +81 -0
  207. rom24_quickmud_python-1.2.2/mud/commands/help.py +14 -0
  208. rom24_quickmud_python-1.2.2/mud/commands/imc.py +19 -0
  209. rom24_quickmud_python-1.2.2/mud/commands/inspection.py +113 -0
  210. rom24_quickmud_python-1.2.2/mud/commands/inventory.py +42 -0
  211. rom24_quickmud_python-1.2.2/mud/commands/movement.py +71 -0
  212. rom24_quickmud_python-1.2.2/mud/commands/notes.py +44 -0
  213. rom24_quickmud_python-1.2.2/mud/commands/shop.py +138 -0
  214. rom24_quickmud_python-1.2.2/mud/commands/socials.py +34 -0
  215. rom24_quickmud_python-1.2.2/mud/config.py +59 -0
  216. rom24_quickmud_python-1.2.2/mud/db/__init__.py +0 -0
  217. rom24_quickmud_python-1.2.2/mud/db/init.py +27 -0
  218. rom24_quickmud_python-1.2.2/mud/db/migrate_from_files.py +87 -0
  219. rom24_quickmud_python-1.2.2/mud/db/migrations.py +7 -0
  220. rom24_quickmud_python-1.2.2/mud/db/models.py +98 -0
  221. rom24_quickmud_python-1.2.2/mud/db/seed.py +28 -0
  222. rom24_quickmud_python-1.2.2/mud/db/session.py +11 -0
  223. rom24_quickmud_python-1.2.2/mud/devtools/__init__.py +0 -0
  224. rom24_quickmud_python-1.2.2/mud/devtools/agent_demo.py +19 -0
  225. rom24_quickmud_python-1.2.2/mud/entrypoint.py +34 -0
  226. rom24_quickmud_python-1.2.2/mud/game_loop.py +117 -0
  227. rom24_quickmud_python-1.2.2/mud/imc/__init__.py +17 -0
  228. rom24_quickmud_python-1.2.2/mud/imc/protocol.py +32 -0
  229. rom24_quickmud_python-1.2.2/mud/loaders/__init__.py +27 -0
  230. rom24_quickmud_python-1.2.2/mud/loaders/area_loader.py +73 -0
  231. rom24_quickmud_python-1.2.2/mud/loaders/base_loader.py +38 -0
  232. rom24_quickmud_python-1.2.2/mud/loaders/help_loader.py +17 -0
  233. rom24_quickmud_python-1.2.2/mud/loaders/json_area_loader.py +203 -0
  234. rom24_quickmud_python-1.2.2/mud/loaders/json_loader.py +285 -0
  235. rom24_quickmud_python-1.2.2/mud/loaders/mob_loader.py +104 -0
  236. rom24_quickmud_python-1.2.2/mud/loaders/obj_loader.py +76 -0
  237. rom24_quickmud_python-1.2.2/mud/loaders/reset_loader.py +29 -0
  238. rom24_quickmud_python-1.2.2/mud/loaders/room_loader.py +63 -0
  239. rom24_quickmud_python-1.2.2/mud/loaders/shop_loader.py +41 -0
  240. rom24_quickmud_python-1.2.2/mud/loaders/social_loader.py +16 -0
  241. rom24_quickmud_python-1.2.2/mud/loaders/specials_loader.py +63 -0
  242. rom24_quickmud_python-1.2.2/mud/logging/__init__.py +0 -0
  243. rom24_quickmud_python-1.2.2/mud/logging/admin.py +40 -0
  244. rom24_quickmud_python-1.2.2/mud/logging/agent_trace.py +9 -0
  245. rom24_quickmud_python-1.2.2/mud/math/c_compat.py +27 -0
  246. rom24_quickmud_python-1.2.2/mud/mobprog.py +72 -0
  247. rom24_quickmud_python-1.2.2/mud/models/__init__.py +106 -0
  248. rom24_quickmud_python-1.2.2/mud/models/area.py +33 -0
  249. rom24_quickmud_python-1.2.2/mud/models/area_json.py +27 -0
  250. rom24_quickmud_python-1.2.2/mud/models/board.py +49 -0
  251. rom24_quickmud_python-1.2.2/mud/models/board_json.py +16 -0
  252. rom24_quickmud_python-1.2.2/mud/models/character.py +195 -0
  253. rom24_quickmud_python-1.2.2/mud/models/character_json.py +46 -0
  254. rom24_quickmud_python-1.2.2/mud/models/constants.py +423 -0
  255. rom24_quickmud_python-1.2.2/mud/models/conversion.py +45 -0
  256. rom24_quickmud_python-1.2.2/mud/models/help.py +28 -0
  257. rom24_quickmud_python-1.2.2/mud/models/help_json.py +14 -0
  258. rom24_quickmud_python-1.2.2/mud/models/json_io.py +64 -0
  259. rom24_quickmud_python-1.2.2/mud/models/mob.py +82 -0
  260. rom24_quickmud_python-1.2.2/mud/models/note.py +29 -0
  261. rom24_quickmud_python-1.2.2/mud/models/note_json.py +16 -0
  262. rom24_quickmud_python-1.2.2/mud/models/obj.py +82 -0
  263. rom24_quickmud_python-1.2.2/mud/models/object.py +28 -0
  264. rom24_quickmud_python-1.2.2/mud/models/object_json.py +40 -0
  265. rom24_quickmud_python-1.2.2/mud/models/player_json.py +29 -0
  266. rom24_quickmud_python-1.2.2/mud/models/room.py +86 -0
  267. rom24_quickmud_python-1.2.2/mud/models/room_json.py +46 -0
  268. rom24_quickmud_python-1.2.2/mud/models/shop.py +21 -0
  269. rom24_quickmud_python-1.2.2/mud/models/shop_json.py +17 -0
  270. rom24_quickmud_python-1.2.2/mud/models/skill.py +25 -0
  271. rom24_quickmud_python-1.2.2/mud/models/skill_json.py +20 -0
  272. rom24_quickmud_python-1.2.2/mud/models/social.py +78 -0
  273. rom24_quickmud_python-1.2.2/mud/models/social_json.py +20 -0
  274. rom24_quickmud_python-1.2.2/mud/net/__init__.py +9 -0
  275. rom24_quickmud_python-1.2.2/mud/net/ansi.py +27 -0
  276. rom24_quickmud_python-1.2.2/mud/net/connection.py +174 -0
  277. rom24_quickmud_python-1.2.2/mud/net/protocol.py +57 -0
  278. rom24_quickmud_python-1.2.2/mud/net/session.py +21 -0
  279. rom24_quickmud_python-1.2.2/mud/net/telnet_server.py +31 -0
  280. rom24_quickmud_python-1.2.2/mud/network/__init__.py +0 -0
  281. rom24_quickmud_python-1.2.2/mud/network/websocket_server.py +83 -0
  282. rom24_quickmud_python-1.2.2/mud/network/websocket_session.py +21 -0
  283. rom24_quickmud_python-1.2.2/mud/notes.py +45 -0
  284. rom24_quickmud_python-1.2.2/mud/persistence.py +185 -0
  285. rom24_quickmud_python-1.2.2/mud/registry.py +5 -0
  286. rom24_quickmud_python-1.2.2/mud/scripts/convert_are_to_json.py +162 -0
  287. rom24_quickmud_python-1.2.2/mud/scripts/convert_help_are_to_json.py +92 -0
  288. rom24_quickmud_python-1.2.2/mud/scripts/convert_player_to_json.py +112 -0
  289. rom24_quickmud_python-1.2.2/mud/scripts/convert_shops_to_json.py +64 -0
  290. rom24_quickmud_python-1.2.2/mud/scripts/convert_skills_to_json.py +166 -0
  291. rom24_quickmud_python-1.2.2/mud/scripts/convert_social_are_to_json.py +92 -0
  292. rom24_quickmud_python-1.2.2/mud/scripts/load_test_data.py +17 -0
  293. rom24_quickmud_python-1.2.2/mud/security/__init__.py +0 -0
  294. rom24_quickmud_python-1.2.2/mud/security/bans.py +112 -0
  295. rom24_quickmud_python-1.2.2/mud/security/hash_utils.py +20 -0
  296. rom24_quickmud_python-1.2.2/mud/server.py +8 -0
  297. rom24_quickmud_python-1.2.2/mud/skills/__init__.py +3 -0
  298. rom24_quickmud_python-1.2.2/mud/skills/handlers.py +795 -0
  299. rom24_quickmud_python-1.2.2/mud/skills/registry.py +97 -0
  300. rom24_quickmud_python-1.2.2/mud/spawning/__init__.py +1 -0
  301. rom24_quickmud_python-1.2.2/mud/spawning/mob_spawner.py +13 -0
  302. rom24_quickmud_python-1.2.2/mud/spawning/obj_spawner.py +18 -0
  303. rom24_quickmud_python-1.2.2/mud/spawning/reset_handler.py +222 -0
  304. rom24_quickmud_python-1.2.2/mud/spawning/templates.py +63 -0
  305. rom24_quickmud_python-1.2.2/mud/spec_funs.py +57 -0
  306. rom24_quickmud_python-1.2.2/mud/time.py +48 -0
  307. rom24_quickmud_python-1.2.2/mud/utils/rng_mm.py +123 -0
  308. rom24_quickmud_python-1.2.2/mud/wiznet.py +74 -0
  309. rom24_quickmud_python-1.2.2/mud/world/__init__.py +11 -0
  310. rom24_quickmud_python-1.2.2/mud/world/linking.py +31 -0
  311. rom24_quickmud_python-1.2.2/mud/world/look.py +29 -0
  312. rom24_quickmud_python-1.2.2/mud/world/movement.py +135 -0
  313. rom24_quickmud_python-1.2.2/mud/world/world_state.py +179 -0
  314. rom24_quickmud_python-1.2.2/pyproject.toml +79 -0
  315. rom24_quickmud_python-1.2.2/rom24_quickmud_python.egg-info/PKG-INFO +236 -0
  316. rom24_quickmud_python-1.2.2/rom24_quickmud_python.egg-info/SOURCES.txt +390 -0
  317. rom24_quickmud_python-1.2.2/rom24_quickmud_python.egg-info/dependency_links.txt +1 -0
  318. rom24_quickmud_python-1.2.2/rom24_quickmud_python.egg-info/entry_points.txt +2 -0
  319. rom24_quickmud_python-1.2.2/rom24_quickmud_python.egg-info/requires.txt +22 -0
  320. rom24_quickmud_python-1.2.2/rom24_quickmud_python.egg-info/top_level.txt +1 -0
  321. rom24_quickmud_python-1.2.2/setup.cfg +4 -0
  322. rom24_quickmud_python-1.2.2/setup.py +4 -0
  323. rom24_quickmud_python-1.2.2/tests/conftest.py +132 -0
  324. rom24_quickmud_python-1.2.2/tests/helpers.py +15 -0
  325. rom24_quickmud_python-1.2.2/tests/test_account_auth.py +79 -0
  326. rom24_quickmud_python-1.2.2/tests/test_admin_commands.py +64 -0
  327. rom24_quickmud_python-1.2.2/tests/test_advancement.py +45 -0
  328. rom24_quickmud_python-1.2.2/tests/test_affects.py +239 -0
  329. rom24_quickmud_python-1.2.2/tests/test_agent_interface.py +28 -0
  330. rom24_quickmud_python-1.2.2/tests/test_ansi.py +5 -0
  331. rom24_quickmud_python-1.2.2/tests/test_are_conversion.py +28 -0
  332. rom24_quickmud_python-1.2.2/tests/test_area_counts.py +12 -0
  333. rom24_quickmud_python-1.2.2/tests/test_area_exits.py +23 -0
  334. rom24_quickmud_python-1.2.2/tests/test_area_loader.py +41 -0
  335. rom24_quickmud_python-1.2.2/tests/test_area_specials.py +38 -0
  336. rom24_quickmud_python-1.2.2/tests/test_bans.py +50 -0
  337. rom24_quickmud_python-1.2.2/tests/test_boards.py +18 -0
  338. rom24_quickmud_python-1.2.2/tests/test_building.py +19 -0
  339. rom24_quickmud_python-1.2.2/tests/test_combat.py +197 -0
  340. rom24_quickmud_python-1.2.2/tests/test_combat_defenses_prob.py +49 -0
  341. rom24_quickmud_python-1.2.2/tests/test_combat_thac0.py +31 -0
  342. rom24_quickmud_python-1.2.2/tests/test_combat_thac0_engine.py +49 -0
  343. rom24_quickmud_python-1.2.2/tests/test_command_abbrev.py +22 -0
  344. rom24_quickmud_python-1.2.2/tests/test_commands.py +143 -0
  345. rom24_quickmud_python-1.2.2/tests/test_communication.py +53 -0
  346. rom24_quickmud_python-1.2.2/tests/test_convert_are_to_json_cli.py +26 -0
  347. rom24_quickmud_python-1.2.2/tests/test_db_seed.py +31 -0
  348. rom24_quickmud_python-1.2.2/tests/test_defense_flags.py +18 -0
  349. rom24_quickmud_python-1.2.2/tests/test_encumbrance.py +36 -0
  350. rom24_quickmud_python-1.2.2/tests/test_enter_portal.py +20 -0
  351. rom24_quickmud_python-1.2.2/tests/test_game_loop.py +44 -0
  352. rom24_quickmud_python-1.2.2/tests/test_game_loop_order.py +28 -0
  353. rom24_quickmud_python-1.2.2/tests/test_game_loop_wait_daze.py +27 -0
  354. rom24_quickmud_python-1.2.2/tests/test_hash_utils.py +13 -0
  355. rom24_quickmud_python-1.2.2/tests/test_healer.py +54 -0
  356. rom24_quickmud_python-1.2.2/tests/test_help_conversion.py +32 -0
  357. rom24_quickmud_python-1.2.2/tests/test_help_system.py +20 -0
  358. rom24_quickmud_python-1.2.2/tests/test_imc.py +49 -0
  359. rom24_quickmud_python-1.2.2/tests/test_inventory_persistence.py +34 -0
  360. rom24_quickmud_python-1.2.2/tests/test_json_io.py +84 -0
  361. rom24_quickmud_python-1.2.2/tests/test_json_model_instantiation.py +114 -0
  362. rom24_quickmud_python-1.2.2/tests/test_load_midgaard.py +10 -0
  363. rom24_quickmud_python-1.2.2/tests/test_logging_admin.py +24 -0
  364. rom24_quickmud_python-1.2.2/tests/test_logging_rotation.py +69 -0
  365. rom24_quickmud_python-1.2.2/tests/test_mobprog.py +29 -0
  366. rom24_quickmud_python-1.2.2/tests/test_movement_costs.py +61 -0
  367. rom24_quickmud_python-1.2.2/tests/test_persistence.py +49 -0
  368. rom24_quickmud_python-1.2.2/tests/test_player_save_format.py +107 -0
  369. rom24_quickmud_python-1.2.2/tests/test_reset_levels.py +35 -0
  370. rom24_quickmud_python-1.2.2/tests/test_rng_and_ccompat.py +48 -0
  371. rom24_quickmud_python-1.2.2/tests/test_rng_dice.py +28 -0
  372. rom24_quickmud_python-1.2.2/tests/test_runtime_models.py +99 -0
  373. rom24_quickmud_python-1.2.2/tests/test_schema_validation.py +14 -0
  374. rom24_quickmud_python-1.2.2/tests/test_scripted_session.py +12 -0
  375. rom24_quickmud_python-1.2.2/tests/test_shop_conversion.py +20 -0
  376. rom24_quickmud_python-1.2.2/tests/test_shops.py +112 -0
  377. rom24_quickmud_python-1.2.2/tests/test_skill_conversion.py +12 -0
  378. rom24_quickmud_python-1.2.2/tests/test_skill_registry.py +12 -0
  379. rom24_quickmud_python-1.2.2/tests/test_skills.py +51 -0
  380. rom24_quickmud_python-1.2.2/tests/test_skills_learned.py +36 -0
  381. rom24_quickmud_python-1.2.2/tests/test_social_conversion.py +53 -0
  382. rom24_quickmud_python-1.2.2/tests/test_social_placeholders.py +21 -0
  383. rom24_quickmud_python-1.2.2/tests/test_socials.py +47 -0
  384. rom24_quickmud_python-1.2.2/tests/test_spawning.py +150 -0
  385. rom24_quickmud_python-1.2.2/tests/test_spec_funs.py +103 -0
  386. rom24_quickmud_python-1.2.2/tests/test_spec_funs_extra.py +29 -0
  387. rom24_quickmud_python-1.2.2/tests/test_specials_loader_ext.py +25 -0
  388. rom24_quickmud_python-1.2.2/tests/test_telnet_server.py +115 -0
  389. rom24_quickmud_python-1.2.2/tests/test_time_daynight.py +74 -0
  390. rom24_quickmud_python-1.2.2/tests/test_time_persistence.py +31 -0
  391. rom24_quickmud_python-1.2.2/tests/test_wiznet.py +100 -0
  392. rom24_quickmud_python-1.2.2/tests/test_world.py +35 -0
@@ -0,0 +1,64 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.2.0] - 2025-09-15
9
+
10
+ ### Added
11
+
12
+ - Complete telnet server with multi-user support
13
+ - Working shop system with buy/sell/list commands
14
+ - 132 skill system with handler stubs
15
+ - JSON-based world loading with 352 resets in Midgaard
16
+ - Admin commands (teleport, spawn, ban management)
17
+ - Communication system (say, tell, shout, socials)
18
+ - OLC building system for room editing
19
+ - pytest-timeout plugin for proper test timeouts
20
+
21
+ ### Fixed
22
+
23
+ - Character position initialization (STANDING vs DEAD)
24
+ - Hanging telnet tests resolved
25
+ - Enhanced error handling and null room safety
26
+ - Character creation now allows immediate command execution
27
+
28
+ ### Changed
29
+
30
+ - Achieved 100% test success rate (200/200 tests)
31
+ - Full test suite completes in ~16 seconds
32
+ - Modern async/await telnet server architecture
33
+ - SQLAlchemy ORM with migrations
34
+
35
+ ### Technical Improvements
36
+
37
+ - Comprehensive test coverage across all subsystems
38
+ - Memory efficient JSON area loading
39
+ - Optimized command processing pipeline
40
+ - Robust error handling throughout
41
+
42
+ ## [0.1.1] - 2025-09-14
43
+
44
+ ### Added
45
+
46
+ - Initial ROM 2.4 Python port foundation
47
+ - Basic world loading and character system
48
+ - Core command framework
49
+ - Database integration with SQLAlchemy
50
+
51
+ ### Changed
52
+
53
+ - Migrated from legacy C codebase to pure Python
54
+ - JSON world data format for easier editing
55
+ - Modern Python packaging structure
56
+
57
+ ## [0.1.0] - 2025-09-13
58
+
59
+ ### Added
60
+
61
+ - Initial project structure
62
+ - Basic MUD framework
63
+ - ROM compatibility layer
64
+ - Core game loop implementation
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 QuickMUD Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,15 @@
1
+ include README.md
2
+ include LICENSE
3
+ include CHANGELOG.md
4
+ include pyproject.toml
5
+ recursive-include mud *.py
6
+ recursive-include data *.json
7
+ recursive-include area *.are *.lst
8
+ recursive-include doc *.md *.txt *.doc
9
+ recursive-include tests *.py
10
+ recursive-exclude tests/data *
11
+ global-exclude *.pyc
12
+ global-exclude __pycache__
13
+ global-exclude .git*
14
+ global-exclude .pytest_cache
15
+ global-exclude *.log
@@ -0,0 +1,236 @@
1
+ Metadata-Version: 2.4
2
+ Name: rom24-quickmud-python
3
+ Version: 1.2.2
4
+ Summary: A modern Python port of the ROM 2.4b6 MUD engine with full telnet server and JSON world loading
5
+ Author-email: Mark Jedrzejczyk <mark.jedrzejczyk@gmail.com>
6
+ Maintainer-email: Mark Jedrzejczyk <mark.jedrzejczyk@gmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/Nostoi/rom24-quickmud-python
9
+ Project-URL: Repository, https://github.com/Nostoi/rom24-quickmud-python.git
10
+ Project-URL: Documentation, https://github.com/Nostoi/rom24-quickmud-python/blob/master/README.md
11
+ Project-URL: Bug Tracker, https://github.com/Nostoi/rom24-quickmud-python/issues
12
+ Project-URL: Changelog, https://github.com/Nostoi/rom24-quickmud-python/releases
13
+ Keywords: mud,rom,game,mmo,telnet,server
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Environment :: Console
16
+ Classifier: Environment :: No Input/Output (Daemon)
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: Intended Audience :: End Users/Desktop
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Programming Language :: Python :: 3
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Topic :: Games/Entertainment :: Multi-User Dungeons (MUD)
25
+ Classifier: Topic :: Internet
26
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
+ Classifier: Typing :: Typed
28
+ Requires-Python: >=3.10
29
+ Description-Content-Type: text/markdown
30
+ License-File: LICENSE
31
+ Requires-Dist: SQLAlchemy<3,>=2.0
32
+ Requires-Dist: typer>=0.9
33
+ Requires-Dist: python-dotenv>=1.0
34
+ Requires-Dist: fastapi>=0.68.0
35
+ Requires-Dist: uvicorn>=0.15.0
36
+ Requires-Dist: pytest-timeout>=2.1.0
37
+ Provides-Extra: dev
38
+ Requires-Dist: pytest>=8.0; extra == "dev"
39
+ Requires-Dist: pytest-cov>=6.0; extra == "dev"
40
+ Requires-Dist: pytest-timeout>=2.1.0; extra == "dev"
41
+ Requires-Dist: mypy>=1.0; extra == "dev"
42
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
43
+ Requires-Dist: black>=22.0; extra == "dev"
44
+ Requires-Dist: jsonschema>=4.0; extra == "dev"
45
+ Requires-Dist: build>=0.10.0; extra == "dev"
46
+ Requires-Dist: twine>=4.0.0; extra == "dev"
47
+ Provides-Extra: test
48
+ Requires-Dist: pytest>=8.0; extra == "test"
49
+ Requires-Dist: pytest-cov>=6.0; extra == "test"
50
+ Requires-Dist: pytest-timeout>=2.1.0; extra == "test"
51
+ Dynamic: license-file
52
+
53
+ # QuickMUD - A Modern ROM 2.4 Python Port
54
+
55
+ [![PyPI version](https://badge.fury.io/py/quickmud.svg)](https://badge.fury.io/py/quickmud)
56
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
57
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
58
+ [![Tests](https://img.shields.io/badge/tests-200%2F200%20passing-brightgreen.svg)](https://github.com/Nostoi/rom24-quickmud-python)
59
+
60
+ **QuickMUD is a modern Python port of the legendary ROM 2.4b6 MUD engine**, derived from ROM 2.4b6, Merc 2.1 and DikuMUD. This is a complete rewrite that brings the classic text-based MMORPG experience to modern Python with async networking, JSON world data, and comprehensive testing.
61
+
62
+ ## 🎮 What is a MUD?
63
+
64
+ A "[Multi-User Dungeon](https://en.wikipedia.org/wiki/MUD)" (MUD) is a text-based MMORPG that runs over telnet. ROM is renowned for its fast-paced combat system and rich player interaction. ROM was also the foundation for [Carrion Fields](http://www.carrionfields.net/), one of the most acclaimed MUDs ever created.
65
+
66
+ ## ✨ Key Features
67
+
68
+ - **🚀 Modern Python Architecture**: Fully async/await networking with SQLAlchemy ORM
69
+ - **📡 Multi-User Telnet Server**: Handle hundreds of concurrent players
70
+ - **🗺️ JSON World Loading**: Easy-to-edit world data with 352+ room resets
71
+ - **🏪 Complete Shop System**: Buy, sell, and list items with working economy
72
+ - **⚔️ ROM Combat System**: Classic ROM combat mechanics and skill system
73
+ - **👥 Social Features**: Say, tell, shout, and 100+ social interactions
74
+ - **🛠️ Admin Commands**: Teleport, spawn, ban management, and OLC building
75
+ - **📊 100% Test Coverage**: 200+ tests ensure reliability and stability
76
+
77
+ ## 📦 Installation
78
+
79
+ ### For Players & Server Operators
80
+
81
+ ```bash
82
+ pip install quickmud
83
+ ```
84
+
85
+ ### Quick Start
86
+
87
+ Run a QuickMUD server:
88
+
89
+ ```bash
90
+ mud runserver
91
+ ```
92
+
93
+ The server will start on `localhost:4000`. Connect with any telnet client:
94
+
95
+ ```bash
96
+ telnet localhost 4000
97
+ ```
98
+
99
+ ## 🏗️ For Developers
100
+
101
+ ## 🏗️ For Developers
102
+
103
+ ### Development Installation
104
+
105
+ ```bash
106
+ git clone https://github.com/Nostoi/rom24-quickmud-python.git
107
+ cd rom24-quickmud-python
108
+ python -m venv venv
109
+ source venv/bin/activate # On Windows: venv\Scripts\activate
110
+ pip install -e .[dev]
111
+ ```
112
+
113
+ ### Running Tests
114
+
115
+ ```bash
116
+ pytest # Run all 200 tests (should complete in ~16 seconds)
117
+ ```
118
+
119
+ ### Development Server
120
+
121
+ ```bash
122
+ python -m mud # Start development server
123
+ ```
124
+
125
+ ## 🎯 Project Status
126
+
127
+ - **Version**: 1.2.0 (Production Ready)
128
+ - **Test Coverage**: 200/200 tests passing (100% success rate)
129
+ - **Performance**: Full test suite completes in ~16 seconds
130
+ - **Compatibility**: Python 3.10+, cross-platform
131
+
132
+ ## 🏛️ Architecture
133
+
134
+ - **Async Networking**: Modern async/await telnet server
135
+ - **SQLAlchemy ORM**: Robust database layer with migrations
136
+ - **JSON World Data**: Human-readable area files with full ROM compatibility
137
+ - **Modular Design**: Clean separation of concerns (commands, world, networking)
138
+ - **Type Safety**: Comprehensive type hints throughout codebase
139
+
140
+ ## 📜 License
141
+
142
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
143
+
144
+ ## 🤝 Contributing
145
+
146
+ Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) and feel free to submit pull requests.
147
+
148
+ ## 📚 Documentation
149
+
150
+ - [Installation Guide](docs/installation.md)
151
+ - [Configuration](docs/configuration.md)
152
+ - [World Building](docs/world-building.md)
153
+ - [API Reference](docs/api.md)
154
+
155
+ ---
156
+
157
+ **Experience the classic MUD gameplay with modern Python reliability!** 🐍✨
158
+
159
+ For a fully reproducible environment, use the pinned requirements files generated with [pip-tools](https://github.com/jazzband/pip-tools):
160
+
161
+ ```bash
162
+ pip install -r requirements-dev.txt
163
+ ```
164
+
165
+ To update the pinned dependencies:
166
+
167
+ ```bash
168
+ pip-compile requirements.in
169
+ pip-compile requirements-dev.in
170
+ ```
171
+
172
+ Tools like [Poetry](https://python-poetry.org/) provide a similar workflow if you prefer that approach.
173
+
174
+ Run tests with:
175
+
176
+ ```bash
177
+ pytest
178
+ ```
179
+
180
+ ### Publishing
181
+
182
+ To release a new version to PyPI:
183
+
184
+ 1. Update the version in `pyproject.toml`.
185
+ 2. Commit and tag:
186
+
187
+ ```bash
188
+ git commit -am "release: v1.2.3"
189
+ git tag v1.2.3
190
+ git push origin main --tags
191
+ ```
192
+
193
+ The GitHub Actions workflow will build and publish the package when the tag is pushed.
194
+
195
+ ## Python Architecture
196
+
197
+ Game systems are implemented in Python modules:
198
+
199
+ - `mud/net` provides asynchronous telnet and websocket servers.
200
+ - `mud/game_loop.py` drives the tick-based update loop.
201
+ - `mud/commands` contains the command dispatcher and handlers.
202
+ - `mud/combat` and `mud/skills` implement combat and abilities.
203
+ - `mud/persistence.py` handles saving characters and world state.
204
+
205
+ Start the server with:
206
+
207
+ ```sh
208
+ python -m mud runserver
209
+ ```
210
+
211
+ ## Docker Image
212
+
213
+ Build and run the Python server with Docker:
214
+
215
+ ```bash
216
+ docker build -t quickmud .
217
+ docker run -p 5000:5000 quickmud
218
+ ```
219
+
220
+ Or use docker-compose to rebuild on changes and mount the repository:
221
+
222
+ ```bash
223
+ docker-compose up
224
+ ```
225
+
226
+ Connect via:
227
+
228
+ ```bash
229
+ telnet localhost 5000
230
+ ```
231
+
232
+ ## Data Models
233
+
234
+ The `mud/models` package defines dataclasses used by the game engine.
235
+ They mirror the JSON schemas in `schemas/` and supply enums and registries
236
+ for loading and manipulating area, room, object, and character data.
@@ -0,0 +1,184 @@
1
+ # QuickMUD - A Modern ROM 2.4 Python Port
2
+
3
+ [![PyPI version](https://badge.fury.io/py/quickmud.svg)](https://badge.fury.io/py/quickmud)
4
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
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-200%2F200%20passing-brightgreen.svg)](https://github.com/Nostoi/rom24-quickmud-python)
7
+
8
+ **QuickMUD is a modern Python port of the legendary ROM 2.4b6 MUD engine**, derived from ROM 2.4b6, Merc 2.1 and DikuMUD. This is a complete rewrite that brings the classic text-based MMORPG experience to modern Python with async networking, JSON world data, and comprehensive testing.
9
+
10
+ ## 🎮 What is a MUD?
11
+
12
+ A "[Multi-User Dungeon](https://en.wikipedia.org/wiki/MUD)" (MUD) is a text-based MMORPG that runs over telnet. ROM is renowned for its fast-paced combat system and rich player interaction. ROM was also the foundation for [Carrion Fields](http://www.carrionfields.net/), one of the most acclaimed MUDs ever created.
13
+
14
+ ## ✨ Key Features
15
+
16
+ - **🚀 Modern Python Architecture**: Fully async/await networking with SQLAlchemy ORM
17
+ - **📡 Multi-User Telnet Server**: Handle hundreds of concurrent players
18
+ - **🗺️ JSON World Loading**: Easy-to-edit world data with 352+ room resets
19
+ - **🏪 Complete Shop System**: Buy, sell, and list items with working economy
20
+ - **⚔️ ROM Combat System**: Classic ROM combat mechanics and skill system
21
+ - **👥 Social Features**: Say, tell, shout, and 100+ social interactions
22
+ - **🛠️ Admin Commands**: Teleport, spawn, ban management, and OLC building
23
+ - **📊 100% Test Coverage**: 200+ tests ensure reliability and stability
24
+
25
+ ## 📦 Installation
26
+
27
+ ### For Players & Server Operators
28
+
29
+ ```bash
30
+ pip install quickmud
31
+ ```
32
+
33
+ ### Quick Start
34
+
35
+ Run a QuickMUD server:
36
+
37
+ ```bash
38
+ mud runserver
39
+ ```
40
+
41
+ The server will start on `localhost:4000`. Connect with any telnet client:
42
+
43
+ ```bash
44
+ telnet localhost 4000
45
+ ```
46
+
47
+ ## 🏗️ For Developers
48
+
49
+ ## 🏗️ For Developers
50
+
51
+ ### Development Installation
52
+
53
+ ```bash
54
+ git clone https://github.com/Nostoi/rom24-quickmud-python.git
55
+ cd rom24-quickmud-python
56
+ python -m venv venv
57
+ source venv/bin/activate # On Windows: venv\Scripts\activate
58
+ pip install -e .[dev]
59
+ ```
60
+
61
+ ### Running Tests
62
+
63
+ ```bash
64
+ pytest # Run all 200 tests (should complete in ~16 seconds)
65
+ ```
66
+
67
+ ### Development Server
68
+
69
+ ```bash
70
+ python -m mud # Start development server
71
+ ```
72
+
73
+ ## 🎯 Project Status
74
+
75
+ - **Version**: 1.2.0 (Production Ready)
76
+ - **Test Coverage**: 200/200 tests passing (100% success rate)
77
+ - **Performance**: Full test suite completes in ~16 seconds
78
+ - **Compatibility**: Python 3.10+, cross-platform
79
+
80
+ ## 🏛️ Architecture
81
+
82
+ - **Async Networking**: Modern async/await telnet server
83
+ - **SQLAlchemy ORM**: Robust database layer with migrations
84
+ - **JSON World Data**: Human-readable area files with full ROM compatibility
85
+ - **Modular Design**: Clean separation of concerns (commands, world, networking)
86
+ - **Type Safety**: Comprehensive type hints throughout codebase
87
+
88
+ ## 📜 License
89
+
90
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
91
+
92
+ ## 🤝 Contributing
93
+
94
+ Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) and feel free to submit pull requests.
95
+
96
+ ## 📚 Documentation
97
+
98
+ - [Installation Guide](docs/installation.md)
99
+ - [Configuration](docs/configuration.md)
100
+ - [World Building](docs/world-building.md)
101
+ - [API Reference](docs/api.md)
102
+
103
+ ---
104
+
105
+ **Experience the classic MUD gameplay with modern Python reliability!** 🐍✨
106
+
107
+ For a fully reproducible environment, use the pinned requirements files generated with [pip-tools](https://github.com/jazzband/pip-tools):
108
+
109
+ ```bash
110
+ pip install -r requirements-dev.txt
111
+ ```
112
+
113
+ To update the pinned dependencies:
114
+
115
+ ```bash
116
+ pip-compile requirements.in
117
+ pip-compile requirements-dev.in
118
+ ```
119
+
120
+ Tools like [Poetry](https://python-poetry.org/) provide a similar workflow if you prefer that approach.
121
+
122
+ Run tests with:
123
+
124
+ ```bash
125
+ pytest
126
+ ```
127
+
128
+ ### Publishing
129
+
130
+ To release a new version to PyPI:
131
+
132
+ 1. Update the version in `pyproject.toml`.
133
+ 2. Commit and tag:
134
+
135
+ ```bash
136
+ git commit -am "release: v1.2.3"
137
+ git tag v1.2.3
138
+ git push origin main --tags
139
+ ```
140
+
141
+ The GitHub Actions workflow will build and publish the package when the tag is pushed.
142
+
143
+ ## Python Architecture
144
+
145
+ Game systems are implemented in Python modules:
146
+
147
+ - `mud/net` provides asynchronous telnet and websocket servers.
148
+ - `mud/game_loop.py` drives the tick-based update loop.
149
+ - `mud/commands` contains the command dispatcher and handlers.
150
+ - `mud/combat` and `mud/skills` implement combat and abilities.
151
+ - `mud/persistence.py` handles saving characters and world state.
152
+
153
+ Start the server with:
154
+
155
+ ```sh
156
+ python -m mud runserver
157
+ ```
158
+
159
+ ## Docker Image
160
+
161
+ Build and run the Python server with Docker:
162
+
163
+ ```bash
164
+ docker build -t quickmud .
165
+ docker run -p 5000:5000 quickmud
166
+ ```
167
+
168
+ Or use docker-compose to rebuild on changes and mount the repository:
169
+
170
+ ```bash
171
+ docker-compose up
172
+ ```
173
+
174
+ Connect via:
175
+
176
+ ```bash
177
+ telnet localhost 5000
178
+ ```
179
+
180
+ ## Data Models
181
+
182
+ The `mud/models` package defines dataclasses used by the game engine.
183
+ They mirror the JSON schemas in `schemas/` and supply enums and registries
184
+ for loading and manipulating area, room, object, and character data.