pet-terminal 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 (147) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +268 -0
  3. package/dist/commands/care.d.ts +3 -0
  4. package/dist/commands/care.d.ts.map +1 -0
  5. package/dist/commands/care.js +103 -0
  6. package/dist/commands/care.js.map +1 -0
  7. package/dist/commands/clean.d.ts +3 -0
  8. package/dist/commands/clean.d.ts.map +1 -0
  9. package/dist/commands/clean.js +105 -0
  10. package/dist/commands/clean.js.map +1 -0
  11. package/dist/commands/feed.d.ts +3 -0
  12. package/dist/commands/feed.d.ts.map +1 -0
  13. package/dist/commands/feed.js +106 -0
  14. package/dist/commands/feed.js.map +1 -0
  15. package/dist/commands/git.d.ts +3 -0
  16. package/dist/commands/git.d.ts.map +1 -0
  17. package/dist/commands/git.js +138 -0
  18. package/dist/commands/git.js.map +1 -0
  19. package/dist/commands/heal.d.ts +3 -0
  20. package/dist/commands/heal.d.ts.map +1 -0
  21. package/dist/commands/heal.js +106 -0
  22. package/dist/commands/heal.js.map +1 -0
  23. package/dist/commands/init.d.ts +3 -0
  24. package/dist/commands/init.d.ts.map +1 -0
  25. package/dist/commands/init.js +89 -0
  26. package/dist/commands/init.js.map +1 -0
  27. package/dist/commands/inventory.d.ts +3 -0
  28. package/dist/commands/inventory.d.ts.map +1 -0
  29. package/dist/commands/inventory.js +113 -0
  30. package/dist/commands/inventory.js.map +1 -0
  31. package/dist/commands/play.d.ts +3 -0
  32. package/dist/commands/play.d.ts.map +1 -0
  33. package/dist/commands/play.js +110 -0
  34. package/dist/commands/play.js.map +1 -0
  35. package/dist/commands/shop.d.ts +3 -0
  36. package/dist/commands/shop.d.ts.map +1 -0
  37. package/dist/commands/shop.js +197 -0
  38. package/dist/commands/shop.js.map +1 -0
  39. package/dist/commands/sleep.d.ts +3 -0
  40. package/dist/commands/sleep.d.ts.map +1 -0
  41. package/dist/commands/sleep.js +48 -0
  42. package/dist/commands/sleep.js.map +1 -0
  43. package/dist/commands/status.d.ts +3 -0
  44. package/dist/commands/status.d.ts.map +1 -0
  45. package/dist/commands/status.js +98 -0
  46. package/dist/commands/status.js.map +1 -0
  47. package/dist/commands/sync.d.ts +3 -0
  48. package/dist/commands/sync.d.ts.map +1 -0
  49. package/dist/commands/sync.js +66 -0
  50. package/dist/commands/sync.js.map +1 -0
  51. package/dist/commands/tutorial.d.ts +3 -0
  52. package/dist/commands/tutorial.d.ts.map +1 -0
  53. package/dist/commands/tutorial.js +210 -0
  54. package/dist/commands/tutorial.js.map +1 -0
  55. package/dist/core/auto-care.d.ts +63 -0
  56. package/dist/core/auto-care.d.ts.map +1 -0
  57. package/dist/core/auto-care.js +295 -0
  58. package/dist/core/auto-care.js.map +1 -0
  59. package/dist/core/config.d.ts +89 -0
  60. package/dist/core/config.d.ts.map +1 -0
  61. package/dist/core/config.js +195 -0
  62. package/dist/core/config.js.map +1 -0
  63. package/dist/core/database.d.ts +29 -0
  64. package/dist/core/database.d.ts.map +1 -0
  65. package/dist/core/database.js +81 -0
  66. package/dist/core/database.js.map +1 -0
  67. package/dist/core/inventory.d.ts +63 -0
  68. package/dist/core/inventory.d.ts.map +1 -0
  69. package/dist/core/inventory.js +140 -0
  70. package/dist/core/inventory.js.map +1 -0
  71. package/dist/core/level-system.d.ts +32 -0
  72. package/dist/core/level-system.d.ts.map +1 -0
  73. package/dist/core/level-system.js +76 -0
  74. package/dist/core/level-system.js.map +1 -0
  75. package/dist/core/pet.d.ts +123 -0
  76. package/dist/core/pet.d.ts.map +1 -0
  77. package/dist/core/pet.js +781 -0
  78. package/dist/core/pet.js.map +1 -0
  79. package/dist/core/shop.d.ts +93 -0
  80. package/dist/core/shop.d.ts.map +1 -0
  81. package/dist/core/shop.js +205 -0
  82. package/dist/core/shop.js.map +1 -0
  83. package/dist/core/time-decay.d.ts +30 -0
  84. package/dist/core/time-decay.d.ts.map +1 -0
  85. package/dist/core/time-decay.js +149 -0
  86. package/dist/core/time-decay.js.map +1 -0
  87. package/dist/core/welcome.d.ts +31 -0
  88. package/dist/core/welcome.d.ts.map +1 -0
  89. package/dist/core/welcome.js +180 -0
  90. package/dist/core/welcome.js.map +1 -0
  91. package/dist/index.d.ts +3 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +80 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/monitor/git-monitor.d.ts +90 -0
  96. package/dist/monitor/git-monitor.d.ts.map +1 -0
  97. package/dist/monitor/git-monitor.js +342 -0
  98. package/dist/monitor/git-monitor.js.map +1 -0
  99. package/dist/types/auto-care.d.ts +86 -0
  100. package/dist/types/auto-care.d.ts.map +1 -0
  101. package/dist/types/auto-care.js +15 -0
  102. package/dist/types/auto-care.js.map +1 -0
  103. package/dist/types/config.d.ts +42 -0
  104. package/dist/types/config.d.ts.map +1 -0
  105. package/dist/types/config.js +24 -0
  106. package/dist/types/config.js.map +1 -0
  107. package/dist/types/git.d.ts +68 -0
  108. package/dist/types/git.d.ts.map +1 -0
  109. package/dist/types/git.js +14 -0
  110. package/dist/types/git.js.map +1 -0
  111. package/dist/types/items.d.ts +41 -0
  112. package/dist/types/items.d.ts.map +1 -0
  113. package/dist/types/items.js +286 -0
  114. package/dist/types/items.js.map +1 -0
  115. package/dist/types/pet.d.ts +42 -0
  116. package/dist/types/pet.d.ts.map +1 -0
  117. package/dist/types/pet.js +16 -0
  118. package/dist/types/pet.js.map +1 -0
  119. package/dist/types/species.d.ts +30 -0
  120. package/dist/types/species.d.ts.map +1 -0
  121. package/dist/types/species.js +164 -0
  122. package/dist/types/species.js.map +1 -0
  123. package/dist/types/stats.d.ts +22 -0
  124. package/dist/types/stats.d.ts.map +1 -0
  125. package/dist/types/stats.js +18 -0
  126. package/dist/types/stats.js.map +1 -0
  127. package/dist/types/time.d.ts +30 -0
  128. package/dist/types/time.d.ts.map +1 -0
  129. package/dist/types/time.js +79 -0
  130. package/dist/types/time.js.map +1 -0
  131. package/dist/ui/ascii-art.d.ts +4 -0
  132. package/dist/ui/ascii-art.d.ts.map +1 -0
  133. package/dist/ui/ascii-art.js +170 -0
  134. package/dist/ui/ascii-art.js.map +1 -0
  135. package/dist/ui/display.d.ts +11 -0
  136. package/dist/ui/display.d.ts.map +1 -0
  137. package/dist/ui/display.js +93 -0
  138. package/dist/ui/display.js.map +1 -0
  139. package/dist/ui/help.d.ts +17 -0
  140. package/dist/ui/help.d.ts.map +1 -0
  141. package/dist/ui/help.js +280 -0
  142. package/dist/ui/help.js.map +1 -0
  143. package/dist/ui/progress-bar.d.ts +9 -0
  144. package/dist/ui/progress-bar.d.ts.map +1 -0
  145. package/dist/ui/progress-bar.js +57 -0
  146. package/dist/ui/progress-bar.js.map +1 -0
  147. package/package.json +61 -0
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatDuration = exports.getTimeAgo = exports.DEFAULT_DECAY_CONFIG = void 0;
4
+ exports.DEFAULT_DECAY_CONFIG = {
5
+ hungerPerHour: 6, // Hunger increases by 6 per hour (player needs to feed)
6
+ happinessPerHour: 2.5, // Happiness decreases by 2.5 per hour
7
+ cleanlinessPerHour: 1.5, // Cleanliness decreases by 1.5 per hour
8
+ energyPerHour: 4, // Energy decreases by 4 per hour when awake
9
+ healthDecayThreshold: {
10
+ hunger: 20, // If hunger < 20, health decays
11
+ happiness: 15, // If happiness < 15, health decays
12
+ cleanliness: 15, // If cleanliness < 15, health decays
13
+ },
14
+ healthPerHourWhenCritical: 5, // Health decay per hour when conditions are critical
15
+ };
16
+ const getTimeAgo = (date) => {
17
+ const now = new Date();
18
+ const past = typeof date === 'string' ? new Date(date) : date;
19
+ const diffMs = now.getTime() - past.getTime();
20
+ const diffSeconds = Math.floor(diffMs / 1000);
21
+ const diffMinutes = Math.floor(diffSeconds / 60);
22
+ const diffHours = Math.floor(diffMinutes / 60);
23
+ const diffDays = Math.floor(diffHours / 24);
24
+ const diffMonths = Math.floor(diffDays / 30);
25
+ if (diffSeconds < 60) {
26
+ return {
27
+ value: diffSeconds,
28
+ unit: 'second',
29
+ raw: diffSeconds === 1 ? '1 second ago' : `${diffSeconds} seconds ago`,
30
+ };
31
+ }
32
+ if (diffMinutes < 60) {
33
+ return {
34
+ value: diffMinutes,
35
+ unit: 'minute',
36
+ raw: diffMinutes === 1 ? '1 minute ago' : `${diffMinutes} minutes ago`,
37
+ };
38
+ }
39
+ if (diffHours < 24) {
40
+ return {
41
+ value: diffHours,
42
+ unit: 'hour',
43
+ raw: diffHours === 1 ? '1 hour ago' : `${diffHours} hours ago`,
44
+ };
45
+ }
46
+ if (diffDays < 30) {
47
+ return {
48
+ value: diffDays,
49
+ unit: 'day',
50
+ raw: diffDays === 1 ? '1 day ago' : `${diffDays} days ago`,
51
+ };
52
+ }
53
+ return {
54
+ value: diffMonths,
55
+ unit: 'month',
56
+ raw: diffMonths === 1 ? '1 month ago' : `${diffMonths} months ago`,
57
+ };
58
+ };
59
+ exports.getTimeAgo = getTimeAgo;
60
+ const formatDuration = (hours) => {
61
+ if (hours < 1) {
62
+ const minutes = Math.round(hours * 60);
63
+ return minutes === 1 ? '1 minute' : `${minutes} minutes`;
64
+ }
65
+ if (hours < 24) {
66
+ const h = Math.floor(hours);
67
+ const m = Math.round((hours - h) * 60);
68
+ if (m === 0)
69
+ return h === 1 ? '1 hour' : `${h} hours`;
70
+ return `${h}h ${m}m`;
71
+ }
72
+ const days = Math.floor(hours / 24);
73
+ const h = Math.round(hours % 24);
74
+ if (h === 0)
75
+ return days === 1 ? '1 day' : `${days} days`;
76
+ return `${days}d ${h}h`;
77
+ };
78
+ exports.formatDuration = formatDuration;
79
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/types/time.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { PetSpecies, MoodState } from '../types/species';
2
+ export declare const getPetAscii: (species: PetSpecies, mood: MoodState, isSleeping: boolean) => string;
3
+ export declare const getActionAscii: (action: string, species: PetSpecies) => string;
4
+ //# sourceMappingURL=ascii-art.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ascii-art.d.ts","sourceRoot":"","sources":["../../src/ui/ascii-art.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AAE1E,eAAO,MAAM,WAAW,GAAI,SAAS,UAAU,EAAE,MAAM,SAAS,EAAE,YAAY,OAAO,KAAG,MAkBvF,CAAC;AA+BF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,SAAS,UAAU,KAAG,MAsHpE,CAAC"}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getActionAscii = exports.getPetAscii = void 0;
4
+ const species_1 = require("../types/species");
5
+ const getPetAscii = (species, mood, isSleeping) => {
6
+ if (isSleeping) {
7
+ return getSleepingAscii(species);
8
+ }
9
+ const config = species_1.SPECIES_CONFIGS[species];
10
+ switch (mood) {
11
+ case species_1.MoodState.HAPPY:
12
+ case species_1.MoodState.EXCITED:
13
+ return config.ascii.happy;
14
+ case species_1.MoodState.SAD:
15
+ return config.ascii.sad;
16
+ case species_1.MoodState.SICK:
17
+ return config.ascii.sick;
18
+ default:
19
+ return config.ascii.normal;
20
+ }
21
+ };
22
+ exports.getPetAscii = getPetAscii;
23
+ const getSleepingAscii = (species) => {
24
+ const sleepingArt = {
25
+ [species_1.PetSpecies.CAT]: ` /\\_/\\
26
+ ( -.-)
27
+ > Z <`,
28
+ [species_1.PetSpecies.DOG]: ` / \\__
29
+ ( Z\\___
30
+ / - O
31
+ / (_____ /
32
+ /_____/ z`,
33
+ [species_1.PetSpecies.RABBIT]: ` (\\ /)
34
+ ( -.-)
35
+ z(")(")`,
36
+ [species_1.PetSpecies.HAMSTER]: ` (\\,/)
37
+ (-.-)
38
+ (Z Z)
39
+ /_| |_\\`,
40
+ [species_1.PetSpecies.BIRD]: ` (>
41
+ />
42
+ (-_-)`,
43
+ [species_1.PetSpecies.DRAGON]: ` ,,
44
+ (Z.<
45
+ /|
46
+ // )
47
+ (____/`,
48
+ };
49
+ return sleepingArt[species];
50
+ };
51
+ const getActionAscii = (action, species) => {
52
+ const actionArt = {
53
+ eat: {
54
+ [species_1.PetSpecies.CAT]: ` /\\_/\\
55
+ ( nom)
56
+ > * <`,
57
+ [species_1.PetSpecies.DOG]: ` / \\__
58
+ ( nom\\___
59
+ / O
60
+ / (_____ /
61
+ /_____/ U`,
62
+ [species_1.PetSpecies.RABBIT]: ` (\\ /)
63
+ ( •.• )
64
+ c(")(")
65
+ *crunch*`,
66
+ [species_1.PetSpecies.HAMSTER]: ` (\\,/)
67
+ (o.O)nom
68
+ (> <)
69
+ /_| |_\\`,
70
+ [species_1.PetSpecies.BIRD]: ` (>
71
+ /> peck
72
+ (^o^)`,
73
+ [species_1.PetSpecies.DRAGON]: ` ,,
74
+ (nom)<
75
+ /|
76
+ // )
77
+ (____/`,
78
+ },
79
+ play: {
80
+ [species_1.PetSpecies.CAT]: ` /\\_/\\
81
+ ( ~^~)
82
+ > * <`,
83
+ [species_1.PetSpecies.DOG]: ` / \\__
84
+ ( ~\\___
85
+ / ~ O
86
+ / (_____ /
87
+ /_____/ U`,
88
+ [species_1.PetSpecies.RABBIT]: ` (\\ /)
89
+ ( ~^~ )
90
+ c(")(")`,
91
+ [species_1.PetSpecies.HAMSTER]: ` (\\,/)
92
+ (~^~)
93
+ (O O)
94
+ /_| |_\\`,
95
+ [species_1.PetSpecies.BIRD]: ` (>
96
+ /> whee!
97
+ (~^~)`,
98
+ [species_1.PetSpecies.DRAGON]: ` ,,
99
+ (~^~)<
100
+ /|
101
+ // )
102
+ (____/`,
103
+ },
104
+ clean: {
105
+ [species_1.PetSpecies.CAT]: ` /\\_/\\
106
+ ( ^.^)
107
+ > * <
108
+ *splash*`,
109
+ [species_1.PetSpecies.DOG]: ` / \\__
110
+ ( @\\___
111
+ / ~ O
112
+ / (_____ /
113
+ /_____/ U
114
+ *bath time*`,
115
+ [species_1.PetSpecies.RABBIT]: ` (\\ /)
116
+ ( ^.^ )
117
+ c(")(")
118
+ *sparkle*`,
119
+ [species_1.PetSpecies.HAMSTER]: ` (\\,/)
120
+ (^.^)
121
+ (> <)
122
+ /_| |_\\
123
+ *clean*`,
124
+ [species_1.PetSpecies.BIRD]: ` (>
125
+ />
126
+ (^o^)
127
+ *splash*`,
128
+ [species_1.PetSpecies.DRAGON]: ` ,,
129
+ (^"^)<
130
+ /|
131
+ // )
132
+ (____/)
133
+ *splash*`,
134
+ },
135
+ heal: {
136
+ [species_1.PetSpecies.CAT]: ` /\\_/\\
137
+ ( ^.^)
138
+ > + <
139
+ *glow*`,
140
+ [species_1.PetSpecies.DOG]: ` / \\__
141
+ ( +\\___
142
+ / * O
143
+ / (_____ /
144
+ /_____/ U
145
+ *healing*`,
146
+ [species_1.PetSpecies.RABBIT]: ` (\\ /)
147
+ ( ^.^ )
148
+ c(")(")
149
+ *sparkle*`,
150
+ [species_1.PetSpecies.HAMSTER]: ` (\\,/)
151
+ (+^+)
152
+ (> <)
153
+ /_| |_\\
154
+ *heal*`,
155
+ [species_1.PetSpecies.BIRD]: ` (>
156
+ />
157
+ (^o^)
158
+ *glow*`,
159
+ [species_1.PetSpecies.DRAGON]: ` ,,
160
+ (+^+)<
161
+ /|
162
+ // )
163
+ (____/)
164
+ *healing*`,
165
+ },
166
+ };
167
+ return actionArt[action]?.[species] || species_1.SPECIES_CONFIGS[species].ascii.normal;
168
+ };
169
+ exports.getActionAscii = getActionAscii;
170
+ //# sourceMappingURL=ascii-art.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ascii-art.js","sourceRoot":"","sources":["../../src/ui/ascii-art.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare const drawProgressBar: (label: string, value: number, width?: number) => string;
2
+ export declare const drawXPBar: (current: number, max: number, width?: number) => string;
3
+ export declare const drawHeader: (title: string, width?: number) => string;
4
+ export declare const drawDivider: (width?: number) => string;
5
+ export declare const drawStatChanges: (changes: Array<{
6
+ stat: string;
7
+ delta: number;
8
+ }>) => string[];
9
+ export declare const getMoodEmoji: (mood: string) => string;
10
+ export declare const getMoodDescription: (mood: string) => string;
11
+ //# sourceMappingURL=display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/ui/display.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb,OAAO,MAAM,EACb,QAAO,MAAW,KACjB,MAeF,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,EAAE,KAAK,MAAM,EAAE,QAAO,MAAW,KAAG,MAU5E,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,QAAO,MAAW,KAAG,MAQ9D,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,QAAO,MAAW,KAAG,MAEhD,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,SAAS,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,KAC9C,MAAM,EAaR,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAU3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,MAUjD,CAAC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getMoodDescription = exports.getMoodEmoji = exports.drawStatChanges = exports.drawDivider = exports.drawHeader = exports.drawXPBar = exports.drawProgressBar = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const stats_1 = require("../types/stats");
9
+ const getColorFn = (color) => {
10
+ switch (color) {
11
+ case 'green':
12
+ return chalk_1.default.green;
13
+ case 'yellow':
14
+ return chalk_1.default.yellow;
15
+ case 'orange':
16
+ return chalk_1.default.hex('#FFA500');
17
+ case 'red':
18
+ return chalk_1.default.red;
19
+ default:
20
+ return chalk_1.default.white;
21
+ }
22
+ };
23
+ const drawProgressBar = (label, value, width = 30) => {
24
+ const filled = Math.round((value / 100) * width);
25
+ const empty = width - filled;
26
+ const color = (0, stats_1.getStatColor)(value);
27
+ const filledBar = '█'.repeat(filled);
28
+ const emptyBar = '░'.repeat(empty);
29
+ const labelPad = label.padEnd(12);
30
+ const valueStr = value.toString().padStart(3);
31
+ const colorFn = getColorFn(color);
32
+ const coloredBar = colorFn(filledBar) + chalk_1.default.gray(emptyBar);
33
+ return `${labelPad}${coloredBar} ${valueStr}%`;
34
+ };
35
+ exports.drawProgressBar = drawProgressBar;
36
+ const drawXPBar = (current, max, width = 20) => {
37
+ const filled = Math.round((current / max) * width);
38
+ const empty = width - filled;
39
+ const filledBar = '█'.repeat(filled);
40
+ const emptyBar = '░'.repeat(empty);
41
+ const coloredBar = chalk_1.default.cyan(filledBar) + chalk_1.default.gray(emptyBar);
42
+ return `Level: ${chalk_1.default.cyan.bold(current.toString())} ${coloredBar} ${current}/${max} XP`;
43
+ };
44
+ exports.drawXPBar = drawXPBar;
45
+ const drawHeader = (title, width = 40) => {
46
+ const border = '═'.repeat(width - 2);
47
+ const line = chalk_1.default.cyan(`╔${border}╗`);
48
+ const empty = ' '.repeat((width - 2 - title.length) / 2);
49
+ const titleLine = chalk_1.default.cyan(`║${empty}${chalk_1.default.yellow.bold(title)}${empty}║`);
50
+ const bottom = chalk_1.default.cyan(`╚${border}╝`);
51
+ return `${line}\n${titleLine}\n${bottom}`;
52
+ };
53
+ exports.drawHeader = drawHeader;
54
+ const drawDivider = (width = 40) => {
55
+ return chalk_1.default.gray('─'.repeat(width));
56
+ };
57
+ exports.drawDivider = drawDivider;
58
+ const drawStatChanges = (changes) => {
59
+ const lines = [];
60
+ for (const change of changes) {
61
+ const sign = change.delta >= 0 ? '+' : '';
62
+ const color = change.delta >= 0 ? 'green' : 'red';
63
+ const statName = change.stat.charAt(0).toUpperCase() + change.stat.slice(1);
64
+ lines.push(` ${statName.padEnd(12)} ${chalk_1.default.gray('→')} ${chalk_1.default[color](`${sign}${change.delta}`)}`);
65
+ }
66
+ return lines;
67
+ };
68
+ exports.drawStatChanges = drawStatChanges;
69
+ const getMoodEmoji = (mood) => {
70
+ const emojis = {
71
+ happy: '😊',
72
+ sad: '😢',
73
+ sick: '🤒',
74
+ angry: '😠',
75
+ sleepy: '😴',
76
+ excited: '🤩',
77
+ };
78
+ return emojis[mood] || '😐';
79
+ };
80
+ exports.getMoodEmoji = getMoodEmoji;
81
+ const getMoodDescription = (mood) => {
82
+ const descriptions = {
83
+ happy: 'is feeling wonderful!',
84
+ sad: 'needs some attention.',
85
+ sick: 'needs medicine and rest.',
86
+ angry: 'is not happy right now.',
87
+ sleepy: 'is very tired.',
88
+ excited: 'is full of energy!',
89
+ };
90
+ return descriptions[mood] || 'is doing okay.';
91
+ };
92
+ exports.getMoodDescription = getMoodDescription;
93
+ //# sourceMappingURL=display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/ui/display.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Show detailed help for a specific command
3
+ */
4
+ export declare const showCommandHelp: (commandName: string) => void;
5
+ /**
6
+ * Show general help
7
+ */
8
+ export declare const showGeneralHelp: () => void;
9
+ /**
10
+ * Show enhanced help (general or command-specific)
11
+ */
12
+ export declare const showDetailedHelp: (command?: string) => void;
13
+ /**
14
+ * Show quick tips
15
+ */
16
+ export declare const showQuickTips: () => void;
17
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/ui/help.ts"],"names":[],"mappings":"AAiJA;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,aAAa,MAAM,KAAG,IA8CrD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,QAAO,IAqDlC,CAAC;AAgBF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG,IAMnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,IAgBhC,CAAC"}