todo.txt 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. === 1.0 [vanilla-esque] ===
  2. X chance cards
  3. X define chance cards
  4. (name description type)
  5. X community chest cards
  6. X define chest cards
  7. (name description type)
  8. X square descriptions (varying)
  9. X actually go to jail
  10. X restrict movement
  11. X decrement jail value
  12. X free on jail value == 0
  13. X basic turn command-line
  14. X buying properties
  15. X mortaging properties
  16. X selling properties
  17. X trading properties
  18. X wiring money
  19. X player info
  20. X constructing buildings
  21. X set imprison, etc. to use squares' special-value instead of squares' name
  22. for identifying which square is prison
  23. X when money is negative, force mortgage, sell, or trade
  24. X fix mortgage
  25. X re-organize main.clisp... jesus.
  26. X split monopolisp.clisp into other file(s)
  27. X add easy exit for any input (ESC)
  28. X add win-conditions & win-check
  29. X replace all the`for`s with proper recursion, mapping, etc.
  30. X use standardized input-collection functions (read (format) for
  31. X square
  32. X property names
  33. - general completeness [totally subjective, WTH]
  34. X invocation args
  35. X saving
  36. X loading
  37. X internationalization (using gettext [https://github.com/rotatef/gettext], perhaps)
  38. ? use UTF over ASCII
  39. - Esperanto translation
  40. - Keep ~A, ~%, : out of it as much as possible
  41. X Replace "RENT", "Rent", and "rent" (etc) with just "Rent"
  42. * Use string-upcase and string-downcase when necessary
  43. X proper project creation
  44. X should be in-sync with quicklisp
  45. X use *only* read-line, no read
  46. X when printing property list, include each property's group
  47. X in pretty output, of course!
  48. - make input INDESTRUCTIBLE!
  49. - no crashes-- any input function should be able to take spaces, gibberish,
  50. sumerian text, anything!
  51. X when bankrupt (or in jail, I suppose), allow for:
  52. X donate (just to add salt to the wound c:<)
  53. X also, forfit, quit, save, load
  54. X when trading, allow for `esc as input
  55. X player input functions should take "me", "self", *or* other players :p
  56. = fully libre board data (not using Monopoly's square-names or board layout, etc.)
  57. * inc. Esperanto translation
  58. X 11x11-- 40 squares; raise GO to 250 (for the road <3)
  59. - speaking of which: manage GO-value (other values?) in the board file
  60. * take custom board and card-files from command-line
  61. * have consistent function argument order
  62. * here's the hierarchy:
  63. * (prompt player[s] square[s] value[s] other[s])
  64. * all output should be like so:
  65. * blank-line following prompt; blank-line after output
  66. * blank-line in-between different outputs
  67. * the newlines shouldn't be managed by print-* functions (etc), but the input
  68. loops (IE, of cli.lisp) as often as possible
  69. === 1.5 [departure] ===
  70. * train transportation
  71. * add security contractors
  72. * move as sub-turns when commanded
  73. * can defend a property from purchase
  74. * can defend a property from theft
  75. * can steal from other owned properties
  76. * if two are on another property, the player owns it
  77. * can purchase more
  78. * attack opposing players/contractors
  79. * varying starting money (200-5000)
  80. * varying starting contractor (0-1)
  81. * coloured output
  82. * monop card data compatibility
  83. == 2.0 [pipe-dreams] ==
  84. * ... multiplayer server/client system? (errrr, maybe?)
  85. * ... SDL? (um, hell no)
  86. * HTML output for CGI? (more feasible than the other two!)