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 @@
1
+ {"version":3,"file":"pet.js","sourceRoot":"","sources":["../../src/core/pet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import { ItemDefinition, ItemType } from '../types/items';
2
+ export interface ShopItem {
3
+ item: ItemDefinition;
4
+ price: number;
5
+ category: string;
6
+ }
7
+ export interface PurchaseResult {
8
+ success: boolean;
9
+ message: string;
10
+ coinsSpent: number;
11
+ itemPurchased?: ItemDefinition;
12
+ remainingCoins?: number;
13
+ }
14
+ /**
15
+ * Coin earning reasons - for tracking where coins come from
16
+ * This helps with future statistics and programming reward integration
17
+ */
18
+ export declare enum CoinReason {
19
+ FEED = "feed",
20
+ PLAY = "play",
21
+ CLEAN = "clean",
22
+ HEAL = "heal",
23
+ SLEEP = "sleep",
24
+ LEVEL_UP = "level_up",
25
+ GIT_COMMIT_NORMAL = "git_commit_normal",
26
+ GIT_COMMIT_FEATURE = "git_commit_feature",
27
+ GIT_COMMIT_BUG_FIX = "git_commit_bug_fix",
28
+ GIT_COMMIT_REFACTOR = "git_commit_refactor",
29
+ GIT_NIGHT_BONUS = "git_night_bonus",
30
+ GIT_LARGE_BONUS = "git_large_bonus",
31
+ GIT_STREAK_DAILY = "git_streak_daily",
32
+ GIT_STREAK_7 = "git_streak_7",
33
+ GIT_STREAK_30 = "git_streak_30",
34
+ GIT_COMMIT = "git_commit",
35
+ CODE_SESSION = "code_session",
36
+ CHALLENGE_COMPLETE = "challenge_complete",
37
+ STREAK_BONUS = "streak_bonus",
38
+ GIFT = "gift",
39
+ REFUND = "refund"
40
+ }
41
+ /**
42
+ * Shop class for managing item purchases
43
+ */
44
+ export declare class Shop {
45
+ private shopItems;
46
+ constructor();
47
+ /**
48
+ * Initialize shop with all purchasable items
49
+ * Uses the price defined in item definitions
50
+ */
51
+ private initializeShop;
52
+ private getCategoryName;
53
+ /**
54
+ * Get all shop items, optionally filtered by category
55
+ */
56
+ getShopItems(category?: ItemType): ShopItem[];
57
+ /**
58
+ * Get shop items grouped by category
59
+ */
60
+ getShopItemsByCategory(): Map<string, ShopItem[]>;
61
+ /**
62
+ * Get a specific shop item by ID
63
+ */
64
+ getShopItem(itemId: string): ShopItem | undefined;
65
+ /**
66
+ * Get the price of an item
67
+ */
68
+ getItemPrice(itemId: string): number | undefined;
69
+ /**
70
+ * Check if a player can afford an item
71
+ */
72
+ canAfford(itemId: string, playerCoins: number): boolean;
73
+ /**
74
+ * Calculate how many of an item a player can afford
75
+ */
76
+ maxAffordable(itemId: string, playerCoins: number): number;
77
+ /**
78
+ * Get coin reward for an action
79
+ * These are temporary small rewards for basic interactions
80
+ * In the future, most coins will come from programming activities
81
+ */
82
+ static getCoinReward(reason: CoinReason): number;
83
+ /**
84
+ * Format coins for display
85
+ */
86
+ static formatCoins(amount: number): string;
87
+ /**
88
+ * Get a description of what coins can be spent on
89
+ */
90
+ static getShopDescription(): string;
91
+ }
92
+ export declare const getShop: () => Shop;
93
+ //# sourceMappingURL=shop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shop.d.ts","sourceRoot":"","sources":["../../src/core/shop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,oBAAY,UAAU;IAEpB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IAGf,QAAQ,aAAa;IAGrB,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,mBAAmB,wBAAwB;IAG3C,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAG/B,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,kBAAkB,uBAAuB;IACzC,YAAY,iBAAiB;IAG7B,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,SAAS,CAAwB;;IAOzC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE;IAU7C;;OAEG;IACH,sBAAsB,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAcjD;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIjD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKhD;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAKvD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAM1D;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAmDhD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI1C;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,MAAM;CAGpC;AAOD,eAAO,MAAM,OAAO,QAAO,IAK1B,CAAC"}
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getShop = exports.Shop = exports.CoinReason = void 0;
4
+ const items_1 = require("../types/items");
5
+ /**
6
+ * Coin earning reasons - for tracking where coins come from
7
+ * This helps with future statistics and programming reward integration
8
+ */
9
+ var CoinReason;
10
+ (function (CoinReason) {
11
+ // Temporary interaction rewards (will be replaced by programming rewards)
12
+ CoinReason["FEED"] = "feed";
13
+ CoinReason["PLAY"] = "play";
14
+ CoinReason["CLEAN"] = "clean";
15
+ CoinReason["HEAL"] = "heal";
16
+ CoinReason["SLEEP"] = "sleep";
17
+ // Level-up rewards (permanent)
18
+ CoinReason["LEVEL_UP"] = "level_up";
19
+ // Git commit rewards by type
20
+ CoinReason["GIT_COMMIT_NORMAL"] = "git_commit_normal";
21
+ CoinReason["GIT_COMMIT_FEATURE"] = "git_commit_feature";
22
+ CoinReason["GIT_COMMIT_BUG_FIX"] = "git_commit_bug_fix";
23
+ CoinReason["GIT_COMMIT_REFACTOR"] = "git_commit_refactor";
24
+ // Git bonus rewards
25
+ CoinReason["GIT_NIGHT_BONUS"] = "git_night_bonus";
26
+ CoinReason["GIT_LARGE_BONUS"] = "git_large_bonus";
27
+ CoinReason["GIT_STREAK_DAILY"] = "git_streak_daily";
28
+ CoinReason["GIT_STREAK_7"] = "git_streak_7";
29
+ CoinReason["GIT_STREAK_30"] = "git_streak_30";
30
+ // Legacy (for backward compatibility)
31
+ CoinReason["GIT_COMMIT"] = "git_commit";
32
+ CoinReason["CODE_SESSION"] = "code_session";
33
+ CoinReason["CHALLENGE_COMPLETE"] = "challenge_complete";
34
+ CoinReason["STREAK_BONUS"] = "streak_bonus";
35
+ // Other
36
+ CoinReason["GIFT"] = "gift";
37
+ CoinReason["REFUND"] = "refund";
38
+ })(CoinReason || (exports.CoinReason = CoinReason = {}));
39
+ /**
40
+ * Shop class for managing item purchases
41
+ */
42
+ class Shop {
43
+ constructor() {
44
+ this.shopItems = new Map();
45
+ this.initializeShop();
46
+ }
47
+ /**
48
+ * Initialize shop with all purchasable items
49
+ * Uses the price defined in item definitions
50
+ */
51
+ initializeShop() {
52
+ for (const [itemId, item] of Object.entries(items_1.ITEMS)) {
53
+ // All items with a price are available in the shop
54
+ if (item.price !== undefined && item.price > 0) {
55
+ this.shopItems.set(itemId, {
56
+ item,
57
+ price: item.price,
58
+ category: this.getCategoryName(item.type),
59
+ });
60
+ }
61
+ }
62
+ }
63
+ getCategoryName(type) {
64
+ switch (type) {
65
+ case items_1.ItemType.FOOD:
66
+ return 'Food';
67
+ case items_1.ItemType.TOY:
68
+ return 'Toys';
69
+ case items_1.ItemType.CLEANING:
70
+ return 'Cleaning';
71
+ case items_1.ItemType.MEDICINE:
72
+ return 'Medicine';
73
+ default:
74
+ return 'Other';
75
+ }
76
+ }
77
+ /**
78
+ * Get all shop items, optionally filtered by category
79
+ */
80
+ getShopItems(category) {
81
+ const items = Array.from(this.shopItems.values());
82
+ if (category) {
83
+ return items.filter((si) => si.item.type === category);
84
+ }
85
+ return items;
86
+ }
87
+ /**
88
+ * Get shop items grouped by category
89
+ */
90
+ getShopItemsByCategory() {
91
+ const grouped = new Map();
92
+ for (const shopItem of this.shopItems.values()) {
93
+ const category = shopItem.category;
94
+ if (!grouped.has(category)) {
95
+ grouped.set(category, []);
96
+ }
97
+ grouped.get(category).push(shopItem);
98
+ }
99
+ return grouped;
100
+ }
101
+ /**
102
+ * Get a specific shop item by ID
103
+ */
104
+ getShopItem(itemId) {
105
+ return this.shopItems.get(itemId);
106
+ }
107
+ /**
108
+ * Get the price of an item
109
+ */
110
+ getItemPrice(itemId) {
111
+ const shopItem = this.shopItems.get(itemId);
112
+ return shopItem?.price;
113
+ }
114
+ /**
115
+ * Check if a player can afford an item
116
+ */
117
+ canAfford(itemId, playerCoins) {
118
+ const price = this.getItemPrice(itemId);
119
+ return price !== undefined && playerCoins >= price;
120
+ }
121
+ /**
122
+ * Calculate how many of an item a player can afford
123
+ */
124
+ maxAffordable(itemId, playerCoins) {
125
+ const price = this.getItemPrice(itemId);
126
+ if (!price || price <= 0)
127
+ return 0;
128
+ return Math.floor(playerCoins / price);
129
+ }
130
+ /**
131
+ * Get coin reward for an action
132
+ * These are temporary small rewards for basic interactions
133
+ * In the future, most coins will come from programming activities
134
+ */
135
+ static getCoinReward(reason) {
136
+ switch (reason) {
137
+ // Temporary interaction rewards (small amounts)
138
+ case CoinReason.FEED:
139
+ case CoinReason.PLAY:
140
+ case CoinReason.CLEAN:
141
+ case CoinReason.HEAL:
142
+ case CoinReason.SLEEP:
143
+ return 1;
144
+ // Level-up reward (more substantial)
145
+ case CoinReason.LEVEL_UP:
146
+ return 20;
147
+ // Git commit rewards by type
148
+ case CoinReason.GIT_COMMIT_NORMAL:
149
+ return 5;
150
+ case CoinReason.GIT_COMMIT_FEATURE:
151
+ return 8;
152
+ case CoinReason.GIT_COMMIT_BUG_FIX:
153
+ return 10;
154
+ case CoinReason.GIT_COMMIT_REFACTOR:
155
+ return 6;
156
+ // Git bonus rewards
157
+ case CoinReason.GIT_NIGHT_BONUS:
158
+ return 0; // This is a multiplier, not a direct reward
159
+ case CoinReason.GIT_LARGE_BONUS:
160
+ return 5;
161
+ case CoinReason.GIT_STREAK_DAILY:
162
+ return 1;
163
+ case CoinReason.GIT_STREAK_7:
164
+ return 10;
165
+ case CoinReason.GIT_STREAK_30:
166
+ return 50;
167
+ // Legacy (for backward compatibility)
168
+ case CoinReason.GIT_COMMIT:
169
+ return 5;
170
+ case CoinReason.CODE_SESSION:
171
+ return 10;
172
+ case CoinReason.CHALLENGE_COMPLETE:
173
+ return 25;
174
+ case CoinReason.STREAK_BONUS:
175
+ return 50;
176
+ default:
177
+ return 0;
178
+ }
179
+ }
180
+ /**
181
+ * Format coins for display
182
+ */
183
+ static formatCoins(amount) {
184
+ return `${amount} 🪙`;
185
+ }
186
+ /**
187
+ * Get a description of what coins can be spent on
188
+ */
189
+ static getShopDescription() {
190
+ return 'Purchase items to care for your pet!';
191
+ }
192
+ }
193
+ exports.Shop = Shop;
194
+ /**
195
+ * Singleton instance for the shop
196
+ */
197
+ let shopInstance = null;
198
+ const getShop = () => {
199
+ if (!shopInstance) {
200
+ shopInstance = new Shop();
201
+ }
202
+ return shopInstance;
203
+ };
204
+ exports.getShop = getShop;
205
+ //# sourceMappingURL=shop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shop.js","sourceRoot":"","sources":["../../src/core/shop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { PetStats } from '../types/stats';
2
+ import { TimeDecayConfig, TimeSyncResult } from '../types/time';
3
+ export declare class TimeDecay {
4
+ private config;
5
+ constructor(config?: Partial<TimeDecayConfig>);
6
+ /**
7
+ * Calculate stat decay based on time passed
8
+ * @param hours Hours that have passed
9
+ * @param currentStats Current pet stats
10
+ * @param isSleeping Whether the pet is sleeping
11
+ */
12
+ calculateDecay(hours: number, currentStats: PetStats, isSleeping: boolean): TimeSyncResult;
13
+ /**
14
+ * Check if pet has been abandoned (stats too low for too long)
15
+ */
16
+ isAbandoned(stats: PetStats, hours: number): boolean;
17
+ /**
18
+ * Get a message about time passed
19
+ */
20
+ getTimeMessage(hours: number): string;
21
+ /**
22
+ * Get severity level based on hours passed
23
+ */
24
+ getSeverity(hours: number): 'none' | 'low' | 'medium' | 'high' | 'critical';
25
+ /**
26
+ * Apply the decay result to stats
27
+ */
28
+ applyDecay(stats: PetStats, result: TimeSyncResult): PetStats;
29
+ }
30
+ //# sourceMappingURL=time-decay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-decay.d.ts","sourceRoot":"","sources":["../../src/core/time-decay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAkB,MAAM,eAAe,CAAC;AAGhF,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAkB7C;;;;;OAKG;IACH,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,QAAQ,EACtB,UAAU,EAAE,OAAO,GAClB,cAAc;IAyFjB;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAQpD;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAWrC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU;IAQ3E;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,GAAG,QAAQ;CAG9D"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TimeDecay = void 0;
4
+ const time_1 = require("../types/time");
5
+ const stats_1 = require("../types/stats");
6
+ class TimeDecay {
7
+ constructor(config) {
8
+ this.config = {
9
+ // Lenient decay rates - reduced by 50-92%
10
+ hungerPerHour: 3, // Was 6 - 50% slower
11
+ happinessPerHour: 0.67, // Was 2.5 - 73% slower (2 per 3 hours)
12
+ cleanlinessPerHour: 0.125, // Was 1.5 - 92% slower (1 per 8 hours)
13
+ energyPerHour: 2, // Was 4 - 50% slower
14
+ // Health only decays in extreme conditions
15
+ healthDecayThreshold: {
16
+ hunger: 10, // Was 20 - only when starving
17
+ happiness: 10, // Was 15 - only when very depressed
18
+ cleanliness: 10, // Was 15 - only when very filthy
19
+ },
20
+ healthPerHourWhenCritical: 2, // Was 5 - 60% slower
21
+ ...config,
22
+ };
23
+ }
24
+ /**
25
+ * Calculate stat decay based on time passed
26
+ * @param hours Hours that have passed
27
+ * @param currentStats Current pet stats
28
+ * @param isSleeping Whether the pet is sleeping
29
+ */
30
+ calculateDecay(hours, currentStats, isSleeping) {
31
+ const result = {
32
+ hoursPassed: hours,
33
+ statChanges: [],
34
+ healthDecayTriggered: false,
35
+ warnings: [],
36
+ };
37
+ if (hours <= 0) {
38
+ return result;
39
+ }
40
+ const newStats = { ...currentStats };
41
+ const warnings = [];
42
+ // Calculate hunger decay (hunger = full, so it decreases over time)
43
+ // Actually, hunger should work inversely - high hunger = full, low hunger = starving
44
+ // So we SUBTRACT from hunger over time
45
+ const hungerDecay = Math.round(hours * this.config.hungerPerHour);
46
+ newStats.hunger = (0, stats_1.clampStat)(newStats.hunger - hungerDecay);
47
+ if (hungerDecay > 0) {
48
+ result.statChanges.push({ stat: 'Hunger', delta: -hungerDecay });
49
+ }
50
+ // Calculate happiness decay
51
+ const happinessDecay = Math.round(hours * this.config.happinessPerHour);
52
+ newStats.happiness = (0, stats_1.clampStat)(newStats.happiness - happinessDecay);
53
+ if (happinessDecay > 0) {
54
+ result.statChanges.push({ stat: 'Happiness', delta: -happinessDecay });
55
+ }
56
+ // Calculate cleanliness decay
57
+ const cleanlinessDecay = Math.round(hours * this.config.cleanlinessPerHour);
58
+ newStats.cleanliness = (0, stats_1.clampStat)(newStats.cleanliness - cleanlinessDecay);
59
+ if (cleanlinessDecay > 0) {
60
+ result.statChanges.push({ stat: 'Cleanliness', delta: -cleanlinessDecay });
61
+ }
62
+ // Calculate energy decay
63
+ // If sleeping, energy recovers instead of decaying
64
+ if (isSleeping) {
65
+ const energyRecovery = Math.round(hours * 10); // Recover 10 energy per hour while sleeping
66
+ newStats.energy = (0, stats_1.clampStat)(newStats.energy + energyRecovery);
67
+ if (energyRecovery > 0) {
68
+ result.statChanges.push({ stat: 'Energy', delta: energyRecovery });
69
+ }
70
+ }
71
+ else {
72
+ const energyDecay = Math.round(hours * this.config.energyPerHour);
73
+ newStats.energy = (0, stats_1.clampStat)(newStats.energy - energyDecay);
74
+ if (energyDecay > 0) {
75
+ result.statChanges.push({ stat: 'Energy', delta: -energyDecay });
76
+ }
77
+ }
78
+ // Check if health should decay due to poor conditions
79
+ const shouldDecayHealth = newStats.hunger < this.config.healthDecayThreshold.hunger ||
80
+ newStats.happiness < this.config.healthDecayThreshold.happiness ||
81
+ newStats.cleanliness < this.config.healthDecayThreshold.cleanliness;
82
+ if (shouldDecayHealth) {
83
+ const healthDecay = Math.round(hours * this.config.healthPerHourWhenCritical);
84
+ newStats.health = (0, stats_1.clampStat)(newStats.health - healthDecay);
85
+ result.statChanges.push({ stat: 'Health', delta: -healthDecay });
86
+ result.healthDecayTriggered = true;
87
+ warnings.push(`${newStats.health}% health - your pet needs care!`);
88
+ }
89
+ // Generate warnings based on critical stats
90
+ if (newStats.hunger < 20) {
91
+ warnings.push(`${newStats.hunger}% hunger - your pet is starving!`);
92
+ }
93
+ if (newStats.happiness < 20) {
94
+ warnings.push(`${newStats.happiness}% happiness - your pet is depressed!`);
95
+ }
96
+ if (newStats.cleanliness < 20) {
97
+ warnings.push(`${newStats.cleanliness}% cleanliness - your pet is filthy!`);
98
+ }
99
+ if (newStats.energy < 15 && !isSleeping) {
100
+ warnings.push(`${newStats.energy}% energy - your pet is exhausted!`);
101
+ }
102
+ // Add the new stats to the result for applying
103
+ result.newStats = newStats;
104
+ result.warnings = warnings;
105
+ return result;
106
+ }
107
+ /**
108
+ * Check if pet has been abandoned (stats too low for too long)
109
+ */
110
+ isAbandoned(stats, hours) {
111
+ const avgStat = (stats.hunger + stats.happiness + stats.health + stats.cleanliness + stats.energy) / 5;
112
+ // If average stat is below 20 and more than 48 hours have passed
113
+ return avgStat < 20 && hours > 48;
114
+ }
115
+ /**
116
+ * Get a message about time passed
117
+ */
118
+ getTimeMessage(hours) {
119
+ if (hours < 0.01)
120
+ return 'Just now';
121
+ if (hours < 1) {
122
+ const minutes = Math.round(hours * 60);
123
+ return `${minutes} minute${minutes !== 1 ? 's' : ''} ago`;
124
+ }
125
+ return (0, time_1.formatDuration)(hours) + ' ago';
126
+ }
127
+ /**
128
+ * Get severity level based on hours passed
129
+ */
130
+ getSeverity(hours) {
131
+ if (hours < 1)
132
+ return 'none';
133
+ if (hours < 6)
134
+ return 'low';
135
+ if (hours < 24)
136
+ return 'medium';
137
+ if (hours < 72)
138
+ return 'high';
139
+ return 'critical';
140
+ }
141
+ /**
142
+ * Apply the decay result to stats
143
+ */
144
+ applyDecay(stats, result) {
145
+ return result.newStats || stats;
146
+ }
147
+ }
148
+ exports.TimeDecay = TimeDecay;
149
+ //# sourceMappingURL=time-decay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-decay.js","sourceRoot":"","sources":["../../src/core/time-decay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { Database } from './database';
2
+ /**
3
+ * Welcome system for Pet Terminal
4
+ */
5
+ export declare class WelcomeSystem {
6
+ /**
7
+ * Show the startup logo
8
+ */
9
+ static showStartupLogo(): void;
10
+ /**
11
+ * Get a random pet quote
12
+ */
13
+ static getPetQuote(): string;
14
+ /**
15
+ * Show first-time welcome message
16
+ */
17
+ static showFirstTimeWelcome(): void;
18
+ /**
19
+ * Check if this is the first run (no pet exists)
20
+ */
21
+ static isFirstRun(db?: Database): boolean;
22
+ /**
23
+ * Show a helpful message when no pet is found
24
+ */
25
+ static showNoPetMessage(): void;
26
+ /**
27
+ * Show welcome back message when returning user runs without args
28
+ */
29
+ static showWelcomeBack(petName: string, petSpecies: string): void;
30
+ }
31
+ //# sourceMappingURL=welcome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../src/core/welcome.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAsEtC;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,IAAI;IA8B9B;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,MAAM;IAK5B;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,IAAI;IA8BnC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO;IAczC;;OAEG;IACH,MAAM,CAAC,gBAAgB,IAAI,IAAI;IAY/B;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;CAMlE"}