structs.lisp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. (defstruct player-ship
  2. armor-val
  3. rep-shield-val
  4. warp-drive ; tuple, first ele is power state (0,1), second is fuel cost
  5. reactor-str ; 0 - low power, 1 - full power, 2 - overdrive
  6. ammo
  7. warp-field ; 0 - low power, 1 - full power
  8. weapons
  9. credits
  10. crew
  11. inventory)
  12. (defstruct player-inventory
  13. petrofuel
  14. gruel
  15. spice
  16. ammo
  17. archeotech)
  18. (defstruct crew
  19. sanity-val ; Max 100
  20. moral-val ; Max 100
  21. crew-members ; List of *uniq-crew-mem*
  22. )
  23. ;;; Unique crew member that can provide an abstract buff
  24. ;;; or nerf to some internal game system
  25. (defstruct uniq-crew-mem
  26. name
  27. armor-buff
  28. rep-shield-buff
  29. sanity-buff
  30. moral-buff
  31. warp-drive-buff
  32. reactor-str-buff
  33. warp-field-buff
  34. plasma-buff
  35. expl-buff
  36. beam-buff
  37. credit-buff)
  38. ;; Crew name generators
  39. (defvar *name-prefixes*
  40. (list "Precepitor"
  41. "Conjugator"
  42. "Principus"
  43. "Executor"
  44. "Commonus"
  45. "Gothicus"
  46. "Augusta"
  47. "Calligraphus"
  48. "Imperator"
  49. "Consul"
  50. "Signifier"
  51. "Tribune"
  52. "Praetorian"
  53. "Prefect"))
  54. (defvar *name-values*
  55. (list "Atticus"
  56. "Aurelia"
  57. "Cassius"
  58. "Maximus"
  59. "Aurelius"
  60. "Magnus"
  61. "Lucius"
  62. "Augustus"
  63. "Caeser"
  64. "Remus"
  65. "Julius"
  66. "Octavius"
  67. "Cato"
  68. "Tiberius"
  69. "Nero"
  70. "Romulus"
  71. "Septimus"
  72. "Cicero"
  73. "Cyprian"
  74. "Justus"
  75. "Quintus"
  76. "Decimus"))
  77. (defun get-crew-mem-name ()
  78. (let ((name (nth (random (length *name-values*)) *name-values*))
  79. (prefix (nth (random (length *name-prefixes*)) *name-prefixes*)))
  80. (concatenate 'string prefix " " name)))
  81. (defstruct weapon
  82. name
  83. shield-dmg
  84. hull-dmg
  85. ammo-cost)
  86. (defstruct market
  87. price-of-petrofuel
  88. price-of-ammo
  89. price-of-archeotech
  90. price-of-spice
  91. price-of-gruel)
  92. ;; This gets created when travelling to a
  93. ;; new sector
  94. (defstruct sector
  95. market ; contains market struct
  96. hazard-count ; number of hazard events in this sector
  97. boon-count) ; number of boon events in this sector