moodlets.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. setup.moodletTimeMode = {
  2. Continuous: 0,
  3. Resetting: 1,
  4. Lasting: 2
  5. }
  6. setup.moodletAccumulationMode = {
  7. ADD: 0,
  8. HIGHEST: 1,
  9. LOWEST: 2,
  10. DIMINISHING: 3,
  11. DIMINISHING_REVERSE: 4
  12. }
  13. setup.moodlets ??= {};
  14. setup.moodletGroups ??= {};
  15. setup.moodletGroups.none = {
  16. accumulationMode: setup.moodletAccumulationMode.ADD
  17. }
  18. setup.moodletGroups.pain = {
  19. accumulationMode: setup.moodletAccumulationMode.LOWEST
  20. }
  21. setup.moodlets.pain = {
  22. title: "Pain",
  23. group: 'pain',
  24. description: '',
  25. effect: 0,
  26. timeMode: setup.moodletTimeMode.Lasting
  27. };
  28. setup.moodletGroups.pleasure = {
  29. accumulationMode: setup.moodletAccumulationMode.HIGHEST
  30. }
  31. setup.moodlets.orgasm = {
  32. title: "Orgasm",
  33. group: 'pleasure',
  34. description: '',
  35. effect: 30,
  36. timeMode: setup.moodletTimeMode.Resetting,
  37. duration: 240
  38. };
  39. setup.moodletGroups.socialNegative = {
  40. accumulationMode: setup.moodletAccumulationMode.LOWEST
  41. }
  42. setup.moodlets.annoyed = {
  43. title: "Annoyed",
  44. group: 'socialNegative',
  45. description: 'Somebody has annoyed you with their behavior.',
  46. effect: -5,
  47. timeMode: setup.moodletTimeMode.Resetting,
  48. duration: 30
  49. };
  50. setup.moodlets.embarrassed = {
  51. title: "Embarrassed",
  52. group: 'socialNegative',
  53. description: 'You have been embarrassed.',
  54. effect: -30,
  55. timeMode: setup.moodletTimeMode.Resetting,
  56. duration: 240
  57. };
  58. setup.moodlets.ignored = {
  59. title: "Ignored",
  60. group: 'socialNegative',
  61. description: 'You have been ignored where you would have liked to get attention.',
  62. effect: -5,
  63. timeMode: setup.moodletTimeMode.Resetting,
  64. duration: 60
  65. };
  66. setup.moodlets.insulted = {
  67. title: "Insulted",
  68. group: 'socialNegative',
  69. description: 'You have been insulted.',
  70. effect: -10,
  71. timeMode: setup.moodletTimeMode.Resetting,
  72. duration: 240
  73. };
  74. setup.moodletGroups.socialPositive = {
  75. accumulationMode: setup.moodletAccumulationMode.HIGHEST
  76. }
  77. setup.moodlets.acknowledged = {
  78. title: "Acknowledged",
  79. group: 'socialPositive',
  80. description: 'You got the positive attention you wanted.',
  81. effect: 5,
  82. timeMode: setup.moodletTimeMode.Resetting,
  83. duration: 60
  84. };
  85. setup.moodlets.littlePraise = {
  86. title: "Little Praise",
  87. group: 'socialPositive',
  88. description: 'You received a minor praise.',
  89. effect: 10,
  90. timeMode: setup.moodletTimeMode.Resetting,
  91. duration: 120
  92. };
  93. setup.moodlets.niceChat = {
  94. title: "Nice Chat",
  95. group: 'socialPositive',
  96. description: '',
  97. effect: 15,
  98. timeMode: setup.moodletTimeMode.Resetting,
  99. duration: 120
  100. };
  101. setup.moodletGroups.vanity = {
  102. accumulationMode: setup.moodletAccumulationMode.DIMINISHING
  103. }
  104. setup.moodletGroups.victim = {
  105. accumulationMode: setup.moodletAccumulationMode.LOWEST
  106. }
  107. // ----- Hunger -----
  108. setup.moodletGroups.hunger = {
  109. accumulationMode: setup.moodletAccumulationMode.LOWEST
  110. }
  111. setup.moodlets.hunger_1 = {
  112. title: "Very Hungry",
  113. group: 'hunger',
  114. description: '',
  115. effect: -30,
  116. timeMode: setup.moodletTimeMode.Lasting
  117. };
  118. setup.moodlets.hunger_2 = {
  119. title: "Extremely Hungry",
  120. group: 'hunger',
  121. description: '',
  122. effect: -60,
  123. timeMode: setup.moodletTimeMode.Lasting
  124. };
  125. setup.moodlets.hunger_3 = {
  126. title: "Dying from Hunger",
  127. group: 'hunger',
  128. description: '',
  129. effect: -120,
  130. timeMode: setup.moodletTimeMode.Lasting
  131. };
  132. // ----- Thirst -----
  133. setup.moodletGroups.thirst = {
  134. accumulationMode: setup.moodletAccumulationMode.LOWEST
  135. }
  136. setup.moodlets.thirst_1 = {
  137. title: "Very Thirsty",
  138. group: 'thirst',
  139. description: '',
  140. effect: -30,
  141. timeMode: setup.moodletTimeMode.Lasting
  142. };
  143. setup.moodlets.thirst_2 = {
  144. title: "Extremely Thirsty",
  145. group: 'thirst',
  146. description: '',
  147. effect: -60,
  148. timeMode: setup.moodletTimeMode.Lasting
  149. };
  150. setup.moodlets.thirst_3 = {
  151. title: "Dying from Thirst",
  152. group: 'thirst',
  153. description: '',
  154. effect: -120,
  155. timeMode: setup.moodletTimeMode.Lasting
  156. };
  157. // ----- Phone -----
  158. setup.moodletGroups.phone = {
  159. accumulationMode: setup.moodletAccumulationMode.HIGHEST
  160. }
  161. setup.moodlets.phone_0 = {
  162. title: "Played with phone",
  163. group: 'phone_0',
  164. description: 'You played with your phone.',
  165. effect: 20,
  166. timeMode: setup.moodletTimeMode.Resetting,
  167. duration: 120,
  168. maxDuration: 480
  169. };
  170. // ----- Reading -----
  171. setup.moodletGroups.read = {
  172. accumulationMode: setup.moodletAccumulationMode.HIGHEST
  173. }
  174. setup.moodlets.read_finish = {
  175. title: "Finished Book",
  176. group: 'read',
  177. description: 'You finished a book.',
  178. effect: 15,
  179. timeMode: setup.moodletTimeMode.Resetting,
  180. duration: 240
  181. };
  182. setup.moodlets.read = {
  183. title: "Read",
  184. group: 'read',
  185. description: 'You read a book.',
  186. effect: 10,
  187. timeMode: setup.moodletTimeMode.Continuous,
  188. timeConversion: 1,
  189. maxDuration: 480
  190. };
  191. // ----- TV -----
  192. setup.moodletGroups.tv = {
  193. accumulationMode: setup.moodletAccumulationMode.HIGHEST
  194. }
  195. setup.moodlets.tv_0 = {
  196. title: "Watched TV (Low Quality)",
  197. group: 'tv',
  198. description: 'You watched TV on a low quality TV.',
  199. effect: 5,
  200. timeMode: setup.moodletTimeMode.Continuous,
  201. timeConversion: 1,
  202. maxDuration: 480
  203. };
  204. setup.moodlets.tv_1 = {
  205. title: "Watched TV (Medium Quality)",
  206. group: 'tv',
  207. description: 'You watched TV on a medium quality TV.',
  208. effect: 10,
  209. timeMode: setup.moodletTimeMode.Continuous,
  210. timeConversion: 1,
  211. maxDuration: 480,
  212. includes:['tv_0']
  213. };
  214. // ----- work -----
  215. setup.moodletGroups.work = {
  216. accumulationMode: setup.moodletAccumulationMode.ADD
  217. }
  218. setup.moodlets.housework = {
  219. title: "Housework",
  220. group: 'work',
  221. description: 'You performed housework.',
  222. effect: -20,
  223. timeMode: setup.moodletTimeMode.Continuous,
  224. timeConversion: 2,
  225. maxDuration: 480
  226. };
  227. setup.getMoodlet ??= function(moodletId){
  228. return setup.moodlets[moodletId] ?? {};
  229. }
  230. setup.getMoodletGroup ??= function(moodletGroupId){
  231. return setup.moodletGroups[moodletGroupId] ?? {};
  232. }