clibuddy 1.0.0

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 (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +60 -0
  3. package/dist/adventure/adventureUI.d.ts +24 -0
  4. package/dist/adventure/adventureUI.js +290 -0
  5. package/dist/adventure/adventures.d.ts +4 -0
  6. package/dist/adventure/adventures.js +206 -0
  7. package/dist/adventure/biomes.d.ts +30 -0
  8. package/dist/adventure/biomes.js +80 -0
  9. package/dist/adventure/combat/combat.d.ts +14 -0
  10. package/dist/adventure/combat/combat.js +638 -0
  11. package/dist/adventure/combat/combatUI.d.ts +5 -0
  12. package/dist/adventure/combat/combatUI.js +116 -0
  13. package/dist/adventure/combat/conditions.d.ts +20 -0
  14. package/dist/adventure/combat/conditions.js +111 -0
  15. package/dist/adventure/combat/enemies.d.ts +4 -0
  16. package/dist/adventure/combat/enemies.js +430 -0
  17. package/dist/adventure/combat/gear.d.ts +3 -0
  18. package/dist/adventure/combat/gear.js +199 -0
  19. package/dist/adventure/combat/skills.d.ts +6 -0
  20. package/dist/adventure/combat/skills.js +197 -0
  21. package/dist/adventure/combat.d.ts +31 -0
  22. package/dist/adventure/combat.js +732 -0
  23. package/dist/adventure/combatUI.d.ts +5 -0
  24. package/dist/adventure/combatUI.js +116 -0
  25. package/dist/adventure/endless.d.ts +18 -0
  26. package/dist/adventure/endless.js +154 -0
  27. package/dist/adventure/enemies.d.ts +4 -0
  28. package/dist/adventure/enemies.js +320 -0
  29. package/dist/adventure/engine.d.ts +20 -0
  30. package/dist/adventure/engine.js +137 -0
  31. package/dist/adventure/gear.d.ts +3 -0
  32. package/dist/adventure/gear.js +149 -0
  33. package/dist/adventure/generation/biomes.d.ts +30 -0
  34. package/dist/adventure/generation/biomes.js +102 -0
  35. package/dist/adventure/generation/endless.d.ts +18 -0
  36. package/dist/adventure/generation/endless.js +154 -0
  37. package/dist/adventure/generation/generator.d.ts +9 -0
  38. package/dist/adventure/generation/generator.js +245 -0
  39. package/dist/adventure/generation/templates.d.ts +25 -0
  40. package/dist/adventure/generation/templates.js +228 -0
  41. package/dist/adventure/generator.d.ts +9 -0
  42. package/dist/adventure/generator.js +245 -0
  43. package/dist/adventure/skills.d.ts +6 -0
  44. package/dist/adventure/skills.js +197 -0
  45. package/dist/adventure/templates.d.ts +25 -0
  46. package/dist/adventure/templates.js +228 -0
  47. package/dist/adventure/types.d.ts +236 -0
  48. package/dist/adventure/types.js +97 -0
  49. package/dist/app/state.d.ts +49 -0
  50. package/dist/app/state.js +51 -0
  51. package/dist/buddy/activities.d.ts +16 -0
  52. package/dist/buddy/activities.js +90 -0
  53. package/dist/buddy/decay.d.ts +3 -0
  54. package/dist/buddy/decay.js +45 -0
  55. package/dist/buddy/leveling.d.ts +11 -0
  56. package/dist/buddy/leveling.js +25 -0
  57. package/dist/buddy/roll.d.ts +4 -0
  58. package/dist/buddy/roll.js +61 -0
  59. package/dist/buddy/species.d.ts +4 -0
  60. package/dist/buddy/species.js +592 -0
  61. package/dist/buddy/titles.d.ts +17 -0
  62. package/dist/buddy/titles.js +89 -0
  63. package/dist/buddy/types.d.ts +92 -0
  64. package/dist/buddy/types.js +21 -0
  65. package/dist/commands/actions.d.ts +2 -0
  66. package/dist/commands/actions.js +141 -0
  67. package/dist/commands/admin.d.ts +2 -0
  68. package/dist/commands/admin.js +202 -0
  69. package/dist/commands/registry.d.ts +25 -0
  70. package/dist/commands/registry.js +31 -0
  71. package/dist/commands/social.d.ts +2 -0
  72. package/dist/commands/social.js +92 -0
  73. package/dist/dialogue/engine.d.ts +7 -0
  74. package/dist/dialogue/engine.js +68 -0
  75. package/dist/dialogue/lines.d.ts +26 -0
  76. package/dist/dialogue/lines.js +294 -0
  77. package/dist/events/engine.d.ts +20 -0
  78. package/dist/events/engine.js +51 -0
  79. package/dist/events/events.d.ts +13 -0
  80. package/dist/events/events.js +149 -0
  81. package/dist/index.d.ts +10 -0
  82. package/dist/index.js +1665 -0
  83. package/dist/inventory/finding.d.ts +11 -0
  84. package/dist/inventory/finding.js +99 -0
  85. package/dist/inventory/items.d.ts +31 -0
  86. package/dist/inventory/items.js +63 -0
  87. package/dist/minigames/copycat.d.ts +2 -0
  88. package/dist/minigames/copycat.js +153 -0
  89. package/dist/minigames/fetch.d.ts +2 -0
  90. package/dist/minigames/fetch.js +179 -0
  91. package/dist/minigames/moodmatch.d.ts +2 -0
  92. package/dist/minigames/moodmatch.js +144 -0
  93. package/dist/minigames/quickpaws.d.ts +2 -0
  94. package/dist/minigames/quickpaws.js +142 -0
  95. package/dist/minigames/registry.d.ts +5 -0
  96. package/dist/minigames/registry.js +16 -0
  97. package/dist/minigames/rpsplus.d.ts +2 -0
  98. package/dist/minigames/rpsplus.js +168 -0
  99. package/dist/minigames/treasurehunt.d.ts +2 -0
  100. package/dist/minigames/treasurehunt.js +146 -0
  101. package/dist/minigames/types.d.ts +30 -0
  102. package/dist/minigames/types.js +69 -0
  103. package/dist/rendering/commandPalette.d.ts +16 -0
  104. package/dist/rendering/commandPalette.js +77 -0
  105. package/dist/rendering/display.d.ts +9 -0
  106. package/dist/rendering/display.js +231 -0
  107. package/dist/rendering/inventoryUI.d.ts +14 -0
  108. package/dist/rendering/inventoryUI.js +99 -0
  109. package/dist/rendering/items.d.ts +7 -0
  110. package/dist/rendering/items.js +34 -0
  111. package/dist/rendering/listUtils.d.ts +3 -0
  112. package/dist/rendering/listUtils.js +24 -0
  113. package/dist/rendering/minigameUI.d.ts +11 -0
  114. package/dist/rendering/minigameUI.js +37 -0
  115. package/dist/rendering/overlayUI.d.ts +24 -0
  116. package/dist/rendering/overlayUI.js +184 -0
  117. package/dist/rendering/scene.d.ts +8 -0
  118. package/dist/rendering/scene.js +87 -0
  119. package/dist/rendering/screen.d.ts +43 -0
  120. package/dist/rendering/screen.js +97 -0
  121. package/dist/sound/sound.d.ts +11 -0
  122. package/dist/sound/sound.js +55 -0
  123. package/dist/state/save.d.ts +5 -0
  124. package/dist/state/save.js +100 -0
  125. package/dist/state/settings.d.ts +7 -0
  126. package/dist/state/settings.js +81 -0
  127. package/dist/story/mainStory.d.ts +4 -0
  128. package/dist/story/mainStory.js +3111 -0
  129. package/dist/story/npcs.d.ts +17 -0
  130. package/dist/story/npcs.js +137 -0
  131. package/dist/story/progress.d.ts +26 -0
  132. package/dist/story/progress.js +168 -0
  133. package/dist/story/seasonal.d.ts +6 -0
  134. package/dist/story/seasonal.js +96 -0
  135. package/dist/story/shop.d.ts +7 -0
  136. package/dist/story/shop.js +26 -0
  137. package/dist/story/sideQuests.d.ts +4 -0
  138. package/dist/story/sideQuests.js +151 -0
  139. package/dist/story/types.d.ts +61 -0
  140. package/dist/story/types.js +36 -0
  141. package/dist/updates.d.ts +23 -0
  142. package/dist/updates.js +142 -0
  143. package/package.json +53 -0
@@ -0,0 +1,592 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SPECIES = void 0;
4
+ exports.getSpecies = getSpecies;
5
+ // Helper to join lines into a frame string
6
+ const f = (lines) => lines.join("\n");
7
+ // ─── Rabbit ──────────────────────────────────────────────────
8
+ const rabbitAnimations = {
9
+ idle: [
10
+ f([" (\\(\\ ",
11
+ " ( -.-) ",
12
+ " o_(\")(\")"]),
13
+ f([" (\\(\\ ",
14
+ " ( o.o) ",
15
+ " o_(\")(\")"]),
16
+ f([" (\\(\\ ",
17
+ " ( o.o) ",
18
+ " o_(\")(\")"]),
19
+ f([" (\\(\\ ",
20
+ " ( o.o) ",
21
+ " o_(\")(\")"]),
22
+ ],
23
+ sleeping: [
24
+ f([" (\\(\\ ",
25
+ " ( -.-) z",
26
+ " o_(\")(\")"]),
27
+ f([" (\\(\\ ",
28
+ " ( -.-) Z",
29
+ " o_(\")(\")"]),
30
+ ],
31
+ eating: [
32
+ f([" (\\(\\ ",
33
+ " ( o.o) ",
34
+ " o_(\")(\")"]),
35
+ f([" (\\(\\ ",
36
+ " ( >.<) ",
37
+ " o_(\")(\")"]),
38
+ f([" (\\(\\ ",
39
+ " ( ^.^) ",
40
+ " o_(\")(\")"]),
41
+ ],
42
+ playing: [
43
+ f([" (\\(\\ ",
44
+ " ( ^.^) ",
45
+ " o_(\")(\")"]),
46
+ f([" (\\(\\ ",
47
+ " ( ^.^) ",
48
+ " o_(\")(\")"]),
49
+ f([" (\\(\\ ",
50
+ " (>^.^)> ",
51
+ " o_(\")(\")"]),
52
+ ],
53
+ sick: [
54
+ f([" (\\(\\ ",
55
+ " ( x.x) ",
56
+ " o_(\")(\")"]),
57
+ ],
58
+ hungry: [
59
+ f([" (\\(\\ ",
60
+ " ( o.o)~ ",
61
+ " o_(\")(\")"]),
62
+ f([" (\\(\\ ",
63
+ " ( o.o) ",
64
+ " o_(\")(\")"]),
65
+ ],
66
+ tired: [
67
+ f([" (\\(\\ ",
68
+ " ( -_-) ",
69
+ " o_(\")(\")"]),
70
+ ],
71
+ sad: [
72
+ f([" (\\(\\ ",
73
+ " ( u.u) ",
74
+ " o_(\")(\")"]),
75
+ ],
76
+ };
77
+ // ─── Cat ─────────────────────────────────────────────────────
78
+ const catAnimations = {
79
+ idle: [
80
+ f([" /\\_/\\ ",
81
+ " ( o.o ) ",
82
+ " > ^ < "]),
83
+ f([" /\\_/\\ ",
84
+ " ( -.- ) ",
85
+ " > ^ < "]),
86
+ f([" /\\_/\\ ",
87
+ " ( o.o ) ",
88
+ " > ^ < ~"]),
89
+ f([" /\\_/\\ ",
90
+ " ( o.o ) ",
91
+ " > ^ < "]),
92
+ ],
93
+ sleeping: [
94
+ f([" /\\_/\\ ",
95
+ " ( -.- ) z",
96
+ " > ^ < "]),
97
+ f([" /\\_/\\ ",
98
+ " ( -.- ) Z",
99
+ " > ^ < "]),
100
+ ],
101
+ eating: [
102
+ f([" /\\_/\\ ",
103
+ " ( o.o ) ",
104
+ " > ^ < "]),
105
+ f([" /\\_/\\ ",
106
+ " ( >w< ) ",
107
+ " > ^ < "]),
108
+ f([" /\\_/\\ ",
109
+ " ( ^.^ ) ",
110
+ " > ^ < "]),
111
+ ],
112
+ playing: [
113
+ f([" /\\_/\\ ",
114
+ " ( ^.^ ) ",
115
+ " > ^ < ~"]),
116
+ f([" /\\_/\\ ",
117
+ " ( >w< ) ",
118
+ " ~> ^ < "]),
119
+ f([" /\\_/\\ ",
120
+ " ( ^.^ ) ",
121
+ " > ^ <~ "]),
122
+ ],
123
+ sick: [
124
+ f([" /\\_/\\ ",
125
+ " ( x.x ) ",
126
+ " > ^ < "]),
127
+ ],
128
+ hungry: [
129
+ f([" /\\_/\\ ",
130
+ " ( o.o )~",
131
+ " > ^ < "]),
132
+ ],
133
+ tired: [
134
+ f([" /\\_/\\ ",
135
+ " ( -_- ) ",
136
+ " > ^ < "]),
137
+ ],
138
+ sad: [
139
+ f([" /\\_/\\ ",
140
+ " ( ;.; ) ",
141
+ " > ^ < "]),
142
+ ],
143
+ };
144
+ // ─── Frog ────────────────────────────────────────────────────
145
+ const frogAnimations = {
146
+ idle: [
147
+ f([" @..@ ",
148
+ " (----) ",
149
+ " ( >__< ) ",
150
+ " ^^ ~~ ^^ "]),
151
+ f([" @..@ ",
152
+ " (----) ",
153
+ " ( >__< ) ",
154
+ " ^ ~~ ^ "]),
155
+ f([" @..@ ",
156
+ " (----) ",
157
+ " ( >..< ) ",
158
+ " ^^ ~~ ^^ "]),
159
+ ],
160
+ sleeping: [
161
+ f([" @..@ ",
162
+ " (----) ",
163
+ " ( -__- )z",
164
+ " ^^ ~~ ^^ "]),
165
+ f([" @..@ ",
166
+ " (----) ",
167
+ " ( -__- )Z",
168
+ " ^^ ~~ ^^ "]),
169
+ ],
170
+ eating: [
171
+ f([" @..@ ",
172
+ " (----) ",
173
+ " ( >__< ) ",
174
+ " ^^ ~~ ^^ "]),
175
+ f([" @..@ ",
176
+ " (----) ",
177
+ " ( >oo< ) ",
178
+ " ^^ ~~ ^^ "]),
179
+ ],
180
+ playing: [
181
+ f([" @..@ ",
182
+ " (----) ",
183
+ " ( >__< ) ",
184
+ " ^^ ~~ ^^ "]),
185
+ f([" @..@ ",
186
+ " (\\--/) ",
187
+ " ( >^^< ) ",
188
+ " ^ ~~ ^ "]),
189
+ f([" @..@ ",
190
+ " (----) ",
191
+ " ( >__< ) ",
192
+ " ^^ ~~ ^^ "]),
193
+ ],
194
+ sick: [
195
+ f([" @..@ ",
196
+ " (----) ",
197
+ " ( x__x ) ",
198
+ " ^^ ~~ ^^ "]),
199
+ ],
200
+ hungry: [
201
+ f([" @..@ ",
202
+ " (----) ",
203
+ " ( >__< )~",
204
+ " ^^ ~~ ^^ "]),
205
+ ],
206
+ tired: [
207
+ f([" @..@ ",
208
+ " (----) ",
209
+ " ( -__- ) ",
210
+ " ^^ ~~ ^^ "]),
211
+ ],
212
+ sad: [
213
+ f([" @..@ ",
214
+ " (----) ",
215
+ " ( ;__; ) ",
216
+ " ^^ ~~ ^^ "]),
217
+ ],
218
+ };
219
+ // ─── Owl ─────────────────────────────────────────────────────
220
+ const owlAnimations = {
221
+ idle: [
222
+ f([" {o,o} ",
223
+ " |)__) ",
224
+ ' -"-"- ']),
225
+ f([" {o,o} ",
226
+ " (__(| ",
227
+ ' -"-"- ']),
228
+ f([" {-,-} ",
229
+ " |)__) ",
230
+ ' -"-"- ']),
231
+ ],
232
+ sleeping: [
233
+ f([" {-,-} z",
234
+ " |)__) ",
235
+ ' -"-"- ']),
236
+ f([" {-,-} Z",
237
+ " |)__) ",
238
+ ' -"-"- ']),
239
+ ],
240
+ eating: [
241
+ f([" {o,o} ",
242
+ " |)__) ",
243
+ ' -"-"- ']),
244
+ f([" {o,o} ",
245
+ " |>_<| ",
246
+ ' -"-"- ']),
247
+ ],
248
+ playing: [
249
+ f([" {^,^} ",
250
+ " |)__) ",
251
+ ' -"-"- ']),
252
+ f([" {o,o} ",
253
+ " (__)~ ",
254
+ ' -"-"- ']),
255
+ f([" {^,^} ",
256
+ " ~|)__) ",
257
+ ' -"-"- ']),
258
+ ],
259
+ sick: [
260
+ f([" {x,x} ",
261
+ " |)__) ",
262
+ ' -"-"- ']),
263
+ ],
264
+ hungry: [
265
+ f([" {o,o}~ ",
266
+ " |)__) ",
267
+ ' -"-"- ']),
268
+ ],
269
+ tired: [
270
+ f([" {-_-} ",
271
+ " |)__) ",
272
+ ' -"-"- ']),
273
+ ],
274
+ sad: [
275
+ f([" {;,;} ",
276
+ " |)__) ",
277
+ ' -"-"- ']),
278
+ ],
279
+ };
280
+ // ─── Fox ─────────────────────────────────────────────────────
281
+ const foxAnimations = {
282
+ idle: [
283
+ f([" /\\ /\\ ",
284
+ " ( o . o ) ",
285
+ " > V < ~ ",
286
+ " /| |\\ ",
287
+ " (_| |_) "]),
288
+ f([" /\\ /\\ ",
289
+ " ( - . - ) ",
290
+ " > V < ",
291
+ " /| |\\ ",
292
+ " (_| |_) "]),
293
+ f([" /\\ /\\ ",
294
+ " ( o . o ) ",
295
+ " ~ > V < ",
296
+ " /| |\\ ",
297
+ " (_| |_) "]),
298
+ ],
299
+ sleeping: [
300
+ f([" /\\ /\\ ",
301
+ " ( - . - ) z",
302
+ " > V < ",
303
+ " /| |\\ ",
304
+ " (_| |_) "]),
305
+ f([" /\\ /\\ ",
306
+ " ( - . - ) Z",
307
+ " > V < ",
308
+ " /| |\\ ",
309
+ " (_| |_) "]),
310
+ ],
311
+ eating: [
312
+ f([" /\\ /\\ ",
313
+ " ( o . o ) ",
314
+ " > V < ",
315
+ " /| |\\ ",
316
+ " (_| |_) "]),
317
+ f([" /\\ /\\ ",
318
+ " ( > . < ) ",
319
+ " > V < ",
320
+ " /| |\\ ",
321
+ " (_| |_) "]),
322
+ f([" /\\ /\\ ",
323
+ " ( ^ . ^ ) ",
324
+ " > V < ",
325
+ " /| |\\ ",
326
+ " (_| |_) "]),
327
+ ],
328
+ playing: [
329
+ f([" /\\ /\\ ",
330
+ " ( ^ . ^ ) ",
331
+ " > V < ~ ",
332
+ " /| |\\ ",
333
+ " (_| |_) "]),
334
+ f([" /\\ /\\ ",
335
+ " ( > . < ) ",
336
+ " ~ > V < ",
337
+ " /| |\\ ",
338
+ " (_| |_) "]),
339
+ f([" /\\ /\\ ",
340
+ " ( ^ . ^ ) ",
341
+ " > V < ~ ",
342
+ " /| |\\ ",
343
+ " (_| |_) "]),
344
+ ],
345
+ sick: [
346
+ f([" /\\ /\\ ",
347
+ " ( x . x ) ",
348
+ " > V < ",
349
+ " /| |\\ ",
350
+ " (_| |_) "]),
351
+ ],
352
+ hungry: [
353
+ f([" /\\ /\\ ",
354
+ " ( o . o )~",
355
+ " > V < ",
356
+ " /| |\\ ",
357
+ " (_| |_) "]),
358
+ ],
359
+ tired: [
360
+ f([" /\\ /\\ ",
361
+ " ( - _ - ) ",
362
+ " > V < ",
363
+ " /| |\\ ",
364
+ " (_| |_) "]),
365
+ ],
366
+ sad: [
367
+ f([" /\\ /\\ ",
368
+ " ( ; . ; ) ",
369
+ " > V < ",
370
+ " /| |\\ ",
371
+ " (_| |_) "]),
372
+ ],
373
+ };
374
+ // ─── Phoenix ─────────────────────────────────────────────────
375
+ // Cute fire bird: flame crest, round body, small wings
376
+ const phoenixAnimations = {
377
+ idle: [
378
+ f([" )\\*/( ",
379
+ " (o.o) ",
380
+ " \\=/ \\=/ ",
381
+ " | | ",
382
+ " v v "]),
383
+ f([" )/*\\( ",
384
+ " (o.o) ",
385
+ " \\=/ \\=/ ",
386
+ " | | ",
387
+ " v v "]),
388
+ f([" )*\\/( ",
389
+ " (-.-) ",
390
+ " \\=/ \\=/ ",
391
+ " | | ",
392
+ " v v "]),
393
+ ],
394
+ sleeping: [
395
+ f([" )\\*/( ",
396
+ " (-.-) z",
397
+ " \\=/ \\=/ ",
398
+ " | | ",
399
+ " v v "]),
400
+ f([" )/*\\( ",
401
+ " (-.-) Z",
402
+ " \\=/ \\=/ ",
403
+ " | | ",
404
+ " v v "]),
405
+ ],
406
+ eating: [
407
+ f([" )\\*/( ",
408
+ " (o.o) ",
409
+ " \\=/ \\=/ ",
410
+ " | | ",
411
+ " v v "]),
412
+ f([" )/*\\( ",
413
+ " (>.< ) ",
414
+ " \\=/ \\=/ ",
415
+ " | | ",
416
+ " v v "]),
417
+ f([" )\\*/( ",
418
+ " (^.^) ",
419
+ " \\=/ \\=/ ",
420
+ " | | ",
421
+ " v v "]),
422
+ ],
423
+ playing: [
424
+ f([" *)\\*/(* ",
425
+ " (^.^) ",
426
+ " \\=/ \\=/ ",
427
+ " | | ",
428
+ " v v "]),
429
+ f([" **)/*\\(** ",
430
+ " (^.^) ",
431
+ " \\=/ \\=/ ",
432
+ " | | ",
433
+ " v v "]),
434
+ f([" *)\\*/(* ",
435
+ " (>.< ) ",
436
+ " ~\\=/ \\=/~ ",
437
+ " | | ",
438
+ " v v "]),
439
+ ],
440
+ sick: [
441
+ f([" )....( ",
442
+ " (x.x) ",
443
+ " \\=/ \\=/ ",
444
+ " | | ",
445
+ " v v "]),
446
+ ],
447
+ hungry: [
448
+ f([" )\\*/( ",
449
+ " (o.o)~ ",
450
+ " \\=/ \\=/ ",
451
+ " | | ",
452
+ " v v "]),
453
+ ],
454
+ tired: [
455
+ f([" )...( ",
456
+ " (-.-) ",
457
+ " \\=/ \\=/ ",
458
+ " | | ",
459
+ " v v "]),
460
+ ],
461
+ sad: [
462
+ f([" )\\*/( ",
463
+ " (;.;) ",
464
+ " \\=/ \\=/ ",
465
+ " | | ",
466
+ " v v "]),
467
+ ],
468
+ };
469
+ // ─── Dragon ──────────────────────────────────────────────────
470
+ // Cute dragon: horns, wings, tail, friendly face
471
+ const dragonAnimations = {
472
+ idle: [
473
+ f([" \\~ ~/ ",
474
+ " (o.o) ",
475
+ " />/( )\\<\\ ",
476
+ " \\_| \\ / |_/ ",
477
+ " | | | ",
478
+ " |_|_| ~ "]),
479
+ f([" \\~ ~/ ",
480
+ " (o.o) ",
481
+ " />/( )\\<\\ ",
482
+ " \\_| \\ / |_/ ",
483
+ " | | | ",
484
+ " ~ |_|_| "]),
485
+ f([" \\~ ~/ ",
486
+ " (-.-) ",
487
+ " />/( )\\<\\ ",
488
+ " \\_| \\ / |_/ ",
489
+ " | | | ",
490
+ " |_|_| "]),
491
+ ],
492
+ sleeping: [
493
+ f([" \\~ ~/ ",
494
+ " (-.-) z ",
495
+ " />/( )\\<\\ ",
496
+ " \\_| \\ / |_/ ",
497
+ " | | | ",
498
+ " |_|_| "]),
499
+ f([" \\~ ~/ ",
500
+ " (-.-) Z ",
501
+ " />/( )\\<\\ ",
502
+ " \\_| \\ / |_/ ",
503
+ " | | | ",
504
+ " |_|_| "]),
505
+ ],
506
+ eating: [
507
+ f([" \\~ ~/ ",
508
+ " (o.o) ",
509
+ " />/( )\\<\\ ",
510
+ " \\_| \\ / |_/ ",
511
+ " | | | ",
512
+ " |_|_| "]),
513
+ f([" \\~ ~/ ",
514
+ " (>.<) ",
515
+ " />/( )\\<\\ ",
516
+ " \\_| \\ / |_/ ",
517
+ " | | | ",
518
+ " |_|_| "]),
519
+ f([" \\~ ~/ ",
520
+ " (^.^) ",
521
+ " />/( )\\<\\ ",
522
+ " \\_| \\ / |_/ ",
523
+ " | | | ",
524
+ " |_|_| "]),
525
+ ],
526
+ playing: [
527
+ f([" \\~ ~/ * ",
528
+ " (^.^) ",
529
+ " />/( )\\<\\ ",
530
+ " \\_| \\ / |_/ ",
531
+ " | | | ",
532
+ " |_|_| ~ "]),
533
+ f([" * \\~ ~/ ",
534
+ " (^.^) ",
535
+ " />/( )\\<\\ ",
536
+ " \\_| \\ / |_/ ",
537
+ " | | | ",
538
+ " ~ |_|_| "]),
539
+ f([" \\~ ~/ ",
540
+ " * (>.< ) * ",
541
+ " />/( )\\<\\ ",
542
+ " \\_| \\ / |_/ ",
543
+ " | | | ",
544
+ " |_|_| "]),
545
+ ],
546
+ sick: [
547
+ f([" \\~ ~/ ",
548
+ " (x.x) ",
549
+ " />/( )\\<\\ ",
550
+ " \\_| \\ / |_/ ",
551
+ " | | | ",
552
+ " |_|_| "]),
553
+ ],
554
+ hungry: [
555
+ f([" \\~ ~/ ",
556
+ " (o.o)~ ",
557
+ " />/( )\\<\\ ",
558
+ " \\_| \\ / |_/ ",
559
+ " | | | ",
560
+ " |_|_| "]),
561
+ ],
562
+ tired: [
563
+ f([" \\~ ~/ ",
564
+ " (-.-) ",
565
+ " />/( )\\<\\ ",
566
+ " \\_| \\ / |_/ ",
567
+ " | | | ",
568
+ " |_|_| "]),
569
+ ],
570
+ sad: [
571
+ f([" \\~ ~/ ",
572
+ " (;.;) ",
573
+ " />/( )\\<\\ ",
574
+ " \\_| \\ / |_/ ",
575
+ " | | | ",
576
+ " |_|_| "]),
577
+ ],
578
+ };
579
+ // ─── Registry ────────────────────────────────────────────────
580
+ exports.SPECIES = [
581
+ { id: "rabbit", name: "Rabbit", rarity: "common", statModifier: 1.0, animations: rabbitAnimations },
582
+ { id: "cat", name: "Cat", rarity: "common", statModifier: 1.0, animations: catAnimations },
583
+ { id: "frog", name: "Frog", rarity: "uncommon", statModifier: 1.1, animations: frogAnimations },
584
+ { id: "owl", name: "Owl", rarity: "uncommon", statModifier: 1.1, animations: owlAnimations },
585
+ { id: "fox", name: "Fox", rarity: "rare", statModifier: 1.2, animations: foxAnimations },
586
+ { id: "phoenix", name: "Phoenix", rarity: "epic", statModifier: 1.4, animations: phoenixAnimations },
587
+ { id: "dragon", name: "Dragon", rarity: "legendary", statModifier: 1.6, animations: dragonAnimations },
588
+ ];
589
+ function getSpecies(id) {
590
+ return exports.SPECIES.find((s) => s.id === id);
591
+ }
592
+ //# sourceMappingURL=species.js.map
@@ -0,0 +1,17 @@
1
+ import { BuddyState } from "./types";
2
+ export interface TitleRule {
3
+ id: string;
4
+ label: string;
5
+ position: "prefix" | "suffix";
6
+ hint: string;
7
+ condition: (state: BuddyState) => boolean;
8
+ }
9
+ export declare const TITLE_RULES: TitleRule[];
10
+ /**
11
+ * Check for newly earned titles. Returns IDs of titles just earned (not previously in state.titles).
12
+ */
13
+ export declare function checkForNewTitles(state: BuddyState): string[];
14
+ export declare function getTitleRule(id: string): TitleRule | undefined;
15
+ /** Format the buddy's display name with active title */
16
+ export declare function formatNameWithTitle(state: BuddyState, speciesName: string): string;
17
+ //# sourceMappingURL=titles.d.ts.map