idlerpg.sh 0.1.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 (478) hide show
  1. package/README.md +171 -0
  2. package/dist/affix/AffixRegistry.d.ts +68 -0
  3. package/dist/affix/AffixRegistry.d.ts.map +1 -0
  4. package/dist/affix/AffixRegistry.js +245 -0
  5. package/dist/affix/AffixRegistry.js.map +1 -0
  6. package/dist/affix/PluginLoader.d.ts +66 -0
  7. package/dist/affix/PluginLoader.d.ts.map +1 -0
  8. package/dist/affix/PluginLoader.js +321 -0
  9. package/dist/affix/PluginLoader.js.map +1 -0
  10. package/dist/affix/builtin.d.ts +6 -0
  11. package/dist/affix/builtin.d.ts.map +1 -0
  12. package/dist/affix/builtin.js +311 -0
  13. package/dist/affix/builtin.js.map +1 -0
  14. package/dist/affix/index.d.ts +8 -0
  15. package/dist/affix/index.d.ts.map +1 -0
  16. package/dist/affix/index.js +11 -0
  17. package/dist/affix/index.js.map +1 -0
  18. package/dist/affix/types.d.ts +152 -0
  19. package/dist/affix/types.d.ts.map +1 -0
  20. package/dist/affix/types.js +8 -0
  21. package/dist/affix/types.js.map +1 -0
  22. package/dist/ai/PlayKitClient.d.ts +208 -0
  23. package/dist/ai/PlayKitClient.d.ts.map +1 -0
  24. package/dist/ai/PlayKitClient.js +721 -0
  25. package/dist/ai/PlayKitClient.js.map +1 -0
  26. package/dist/ai/index.d.ts +5 -0
  27. package/dist/ai/index.d.ts.map +1 -0
  28. package/dist/ai/index.js +8 -0
  29. package/dist/ai/index.js.map +1 -0
  30. package/dist/app/App.d.ts +85 -0
  31. package/dist/app/App.d.ts.map +1 -0
  32. package/dist/app/App.js +296 -0
  33. package/dist/app/App.js.map +1 -0
  34. package/dist/app/EventBus.d.ts +222 -0
  35. package/dist/app/EventBus.d.ts.map +1 -0
  36. package/dist/app/EventBus.js +88 -0
  37. package/dist/app/EventBus.js.map +1 -0
  38. package/dist/app/Keybind.d.ts +83 -0
  39. package/dist/app/Keybind.d.ts.map +1 -0
  40. package/dist/app/Keybind.js +184 -0
  41. package/dist/app/Keybind.js.map +1 -0
  42. package/dist/app/Router.d.ts +123 -0
  43. package/dist/app/Router.d.ts.map +1 -0
  44. package/dist/app/Router.js +142 -0
  45. package/dist/app/Router.js.map +1 -0
  46. package/dist/app/ScreenManager.d.ts +97 -0
  47. package/dist/app/ScreenManager.d.ts.map +1 -0
  48. package/dist/app/ScreenManager.js +216 -0
  49. package/dist/app/ScreenManager.js.map +1 -0
  50. package/dist/app/index.d.ts +14 -0
  51. package/dist/app/index.d.ts.map +1 -0
  52. package/dist/app/index.js +19 -0
  53. package/dist/app/index.js.map +1 -0
  54. package/dist/app/screens/BaseScreen.d.ts +101 -0
  55. package/dist/app/screens/BaseScreen.d.ts.map +1 -0
  56. package/dist/app/screens/BaseScreen.js +132 -0
  57. package/dist/app/screens/BaseScreen.js.map +1 -0
  58. package/dist/app/screens/CharacterCreationScreen.d.ts +42 -0
  59. package/dist/app/screens/CharacterCreationScreen.d.ts.map +1 -0
  60. package/dist/app/screens/CharacterCreationScreen.js +467 -0
  61. package/dist/app/screens/CharacterCreationScreen.js.map +1 -0
  62. package/dist/app/screens/CombatScreen.d.ts +30 -0
  63. package/dist/app/screens/CombatScreen.d.ts.map +1 -0
  64. package/dist/app/screens/CombatScreen.js +309 -0
  65. package/dist/app/screens/CombatScreen.js.map +1 -0
  66. package/dist/app/screens/DialogScreen.d.ts +29 -0
  67. package/dist/app/screens/DialogScreen.d.ts.map +1 -0
  68. package/dist/app/screens/DialogScreen.js +295 -0
  69. package/dist/app/screens/DialogScreen.js.map +1 -0
  70. package/dist/app/screens/ExploreScreen.d.ts +50 -0
  71. package/dist/app/screens/ExploreScreen.d.ts.map +1 -0
  72. package/dist/app/screens/ExploreScreen.js +308 -0
  73. package/dist/app/screens/ExploreScreen.js.map +1 -0
  74. package/dist/app/screens/HelpScreen.d.ts +12 -0
  75. package/dist/app/screens/HelpScreen.d.ts.map +1 -0
  76. package/dist/app/screens/HelpScreen.js +155 -0
  77. package/dist/app/screens/HelpScreen.js.map +1 -0
  78. package/dist/app/screens/InventoryScreen.d.ts +27 -0
  79. package/dist/app/screens/InventoryScreen.d.ts.map +1 -0
  80. package/dist/app/screens/InventoryScreen.js +326 -0
  81. package/dist/app/screens/InventoryScreen.js.map +1 -0
  82. package/dist/app/screens/PrologueScreen.d.ts +24 -0
  83. package/dist/app/screens/PrologueScreen.d.ts.map +1 -0
  84. package/dist/app/screens/PrologueScreen.js +176 -0
  85. package/dist/app/screens/PrologueScreen.js.map +1 -0
  86. package/dist/app/screens/TitleScreen.d.ts +42 -0
  87. package/dist/app/screens/TitleScreen.d.ts.map +1 -0
  88. package/dist/app/screens/TitleScreen.js +380 -0
  89. package/dist/app/screens/TitleScreen.js.map +1 -0
  90. package/dist/app/screens/TravelScreen.d.ts +22 -0
  91. package/dist/app/screens/TravelScreen.d.ts.map +1 -0
  92. package/dist/app/screens/TravelScreen.js +122 -0
  93. package/dist/app/screens/TravelScreen.js.map +1 -0
  94. package/dist/app/screens/index.d.ts +14 -0
  95. package/dist/app/screens/index.d.ts.map +1 -0
  96. package/dist/app/screens/index.js +17 -0
  97. package/dist/app/screens/index.js.map +1 -0
  98. package/dist/commands/CommandRegistry.d.ts +91 -0
  99. package/dist/commands/CommandRegistry.d.ts.map +1 -0
  100. package/dist/commands/CommandRegistry.js +159 -0
  101. package/dist/commands/CommandRegistry.js.map +1 -0
  102. package/dist/commands/index.d.ts +7 -0
  103. package/dist/commands/index.d.ts.map +1 -0
  104. package/dist/commands/index.js +10 -0
  105. package/dist/commands/index.js.map +1 -0
  106. package/dist/core/Actor.d.ts +103 -0
  107. package/dist/core/Actor.d.ts.map +1 -0
  108. package/dist/core/Actor.js +409 -0
  109. package/dist/core/Actor.js.map +1 -0
  110. package/dist/core/Combat.d.ts +37 -0
  111. package/dist/core/Combat.d.ts.map +1 -0
  112. package/dist/core/Combat.js +294 -0
  113. package/dist/core/Combat.js.map +1 -0
  114. package/dist/core/DungeonRunner.d.ts +169 -0
  115. package/dist/core/DungeonRunner.d.ts.map +1 -0
  116. package/dist/core/DungeonRunner.js +627 -0
  117. package/dist/core/DungeonRunner.js.map +1 -0
  118. package/dist/core/Game.d.ts +133 -0
  119. package/dist/core/Game.d.ts.map +1 -0
  120. package/dist/core/Game.js +644 -0
  121. package/dist/core/Game.js.map +1 -0
  122. package/dist/core/IdleCombat.d.ts +61 -0
  123. package/dist/core/IdleCombat.d.ts.map +1 -0
  124. package/dist/core/IdleCombat.js +461 -0
  125. package/dist/core/IdleCombat.js.map +1 -0
  126. package/dist/core/IdleGameManager.d.ts +198 -0
  127. package/dist/core/IdleGameManager.d.ts.map +1 -0
  128. package/dist/core/IdleGameManager.js +688 -0
  129. package/dist/core/IdleGameManager.js.map +1 -0
  130. package/dist/core/IdleSaveManager.d.ts +109 -0
  131. package/dist/core/IdleSaveManager.d.ts.map +1 -0
  132. package/dist/core/IdleSaveManager.js +296 -0
  133. package/dist/core/IdleSaveManager.js.map +1 -0
  134. package/dist/core/NewGameFlowManager.d.ts +64 -0
  135. package/dist/core/NewGameFlowManager.d.ts.map +1 -0
  136. package/dist/core/NewGameFlowManager.js +153 -0
  137. package/dist/core/NewGameFlowManager.js.map +1 -0
  138. package/dist/core/Player.d.ts +65 -0
  139. package/dist/core/Player.d.ts.map +1 -0
  140. package/dist/core/Player.js +261 -0
  141. package/dist/core/Player.js.map +1 -0
  142. package/dist/core/RoomHandlers.d.ts +75 -0
  143. package/dist/core/RoomHandlers.d.ts.map +1 -0
  144. package/dist/core/RoomHandlers.js +383 -0
  145. package/dist/core/RoomHandlers.js.map +1 -0
  146. package/dist/core/SaveManager.d.ts +84 -0
  147. package/dist/core/SaveManager.d.ts.map +1 -0
  148. package/dist/core/SaveManager.js +281 -0
  149. package/dist/core/SaveManager.js.map +1 -0
  150. package/dist/core/SaveMigration.d.ts +69 -0
  151. package/dist/core/SaveMigration.d.ts.map +1 -0
  152. package/dist/core/SaveMigration.js +408 -0
  153. package/dist/core/SaveMigration.js.map +1 -0
  154. package/dist/core/StateAdapter.d.ts +79 -0
  155. package/dist/core/StateAdapter.d.ts.map +1 -0
  156. package/dist/core/StateAdapter.js +397 -0
  157. package/dist/core/StateAdapter.js.map +1 -0
  158. package/dist/core/Team.d.ts +145 -0
  159. package/dist/core/Team.d.ts.map +1 -0
  160. package/dist/core/Team.js +371 -0
  161. package/dist/core/Team.js.map +1 -0
  162. package/dist/core/TeamCombat.d.ts +88 -0
  163. package/dist/core/TeamCombat.d.ts.map +1 -0
  164. package/dist/core/TeamCombat.js +405 -0
  165. package/dist/core/TeamCombat.js.map +1 -0
  166. package/dist/core/TeamDungeonRunner.d.ts +186 -0
  167. package/dist/core/TeamDungeonRunner.d.ts.map +1 -0
  168. package/dist/core/TeamDungeonRunner.js +758 -0
  169. package/dist/core/TeamDungeonRunner.js.map +1 -0
  170. package/dist/core/TimeManager.d.ts +114 -0
  171. package/dist/core/TimeManager.d.ts.map +1 -0
  172. package/dist/core/TimeManager.js +318 -0
  173. package/dist/core/TimeManager.js.map +1 -0
  174. package/dist/core/index.d.ts +9 -0
  175. package/dist/core/index.d.ts.map +1 -0
  176. package/dist/core/index.js +12 -0
  177. package/dist/core/index.js.map +1 -0
  178. package/dist/core/timeConstants.d.ts +135 -0
  179. package/dist/core/timeConstants.d.ts.map +1 -0
  180. package/dist/core/timeConstants.js +157 -0
  181. package/dist/core/timeConstants.js.map +1 -0
  182. package/dist/core/types.d.ts +780 -0
  183. package/dist/core/types.d.ts.map +1 -0
  184. package/dist/core/types.js +16 -0
  185. package/dist/core/types.js.map +1 -0
  186. package/dist/data/continents/index.d.ts +163 -0
  187. package/dist/data/continents/index.d.ts.map +1 -0
  188. package/dist/data/continents/index.js +31 -0
  189. package/dist/data/continents/index.js.map +1 -0
  190. package/dist/data/continents/verdantia.d.ts +294 -0
  191. package/dist/data/continents/verdantia.d.ts.map +1 -0
  192. package/dist/data/continents/verdantia.js +327 -0
  193. package/dist/data/continents/verdantia.js.map +1 -0
  194. package/dist/handlers/DialogHandler.d.ts +95 -0
  195. package/dist/handlers/DialogHandler.d.ts.map +1 -0
  196. package/dist/handlers/DialogHandler.js +450 -0
  197. package/dist/handlers/DialogHandler.js.map +1 -0
  198. package/dist/handlers/SaveLoadHandler.d.ts +60 -0
  199. package/dist/handlers/SaveLoadHandler.d.ts.map +1 -0
  200. package/dist/handlers/SaveLoadHandler.js +187 -0
  201. package/dist/handlers/SaveLoadHandler.js.map +1 -0
  202. package/dist/handlers/TitleScreenHandler.d.ts +43 -0
  203. package/dist/handlers/TitleScreenHandler.d.ts.map +1 -0
  204. package/dist/handlers/TitleScreenHandler.js +508 -0
  205. package/dist/handlers/TitleScreenHandler.js.map +1 -0
  206. package/dist/handlers/WorkshopHandler.d.ts +75 -0
  207. package/dist/handlers/WorkshopHandler.d.ts.map +1 -0
  208. package/dist/handlers/WorkshopHandler.js +401 -0
  209. package/dist/handlers/WorkshopHandler.js.map +1 -0
  210. package/dist/handlers/index.d.ts +12 -0
  211. package/dist/handlers/index.d.ts.map +1 -0
  212. package/dist/handlers/index.js +14 -0
  213. package/dist/handlers/index.js.map +1 -0
  214. package/dist/handlers/types.d.ts +34 -0
  215. package/dist/handlers/types.d.ts.map +1 -0
  216. package/dist/handlers/types.js +8 -0
  217. package/dist/handlers/types.js.map +1 -0
  218. package/dist/i18n/en.d.ts +3 -0
  219. package/dist/i18n/en.d.ts.map +1 -0
  220. package/dist/i18n/en.js +130 -0
  221. package/dist/i18n/en.js.map +1 -0
  222. package/dist/i18n/index.d.ts +40 -0
  223. package/dist/i18n/index.d.ts.map +1 -0
  224. package/dist/i18n/index.js +105 -0
  225. package/dist/i18n/index.js.map +1 -0
  226. package/dist/i18n/types.d.ts +133 -0
  227. package/dist/i18n/types.d.ts.map +1 -0
  228. package/dist/i18n/types.js +8 -0
  229. package/dist/i18n/types.js.map +1 -0
  230. package/dist/i18n/zh.d.ts +3 -0
  231. package/dist/i18n/zh.d.ts.map +1 -0
  232. package/dist/i18n/zh.js +130 -0
  233. package/dist/i18n/zh.js.map +1 -0
  234. package/dist/instrument.d.ts +8 -0
  235. package/dist/instrument.d.ts.map +1 -0
  236. package/dist/instrument.js +33 -0
  237. package/dist/instrument.js.map +1 -0
  238. package/dist/main-new.d.ts +12 -0
  239. package/dist/main-new.d.ts.map +1 -0
  240. package/dist/main-new.js +32 -0
  241. package/dist/main-new.js.map +1 -0
  242. package/dist/main.d.ts +7 -0
  243. package/dist/main.d.ts.map +1 -0
  244. package/dist/main.js +2816 -0
  245. package/dist/main.js.map +1 -0
  246. package/dist/map/ContinentManager.d.ts +88 -0
  247. package/dist/map/ContinentManager.d.ts.map +1 -0
  248. package/dist/map/ContinentManager.js +241 -0
  249. package/dist/map/ContinentManager.js.map +1 -0
  250. package/dist/map/DungeonGenerator.d.ts +32 -0
  251. package/dist/map/DungeonGenerator.d.ts.map +1 -0
  252. package/dist/map/DungeonGenerator.js +615 -0
  253. package/dist/map/DungeonGenerator.js.map +1 -0
  254. package/dist/map/MapGenerator.d.ts +27 -0
  255. package/dist/map/MapGenerator.d.ts.map +1 -0
  256. package/dist/map/MapGenerator.js +485 -0
  257. package/dist/map/MapGenerator.js.map +1 -0
  258. package/dist/map/index.d.ts +5 -0
  259. package/dist/map/index.d.ts.map +1 -0
  260. package/dist/map/index.js +8 -0
  261. package/dist/map/index.js.map +1 -0
  262. package/dist/npc/NPCGenerator.d.ts +68 -0
  263. package/dist/npc/NPCGenerator.d.ts.map +1 -0
  264. package/dist/npc/NPCGenerator.js +468 -0
  265. package/dist/npc/NPCGenerator.js.map +1 -0
  266. package/dist/npc/NPCManager.d.ts +86 -0
  267. package/dist/npc/NPCManager.d.ts.map +1 -0
  268. package/dist/npc/NPCManager.js +217 -0
  269. package/dist/npc/NPCManager.js.map +1 -0
  270. package/dist/npc/fixedNPCs.d.ts +7 -0
  271. package/dist/npc/fixedNPCs.d.ts.map +1 -0
  272. package/dist/npc/fixedNPCs.js +196 -0
  273. package/dist/npc/fixedNPCs.js.map +1 -0
  274. package/dist/npc/index.d.ts +9 -0
  275. package/dist/npc/index.d.ts.map +1 -0
  276. package/dist/npc/index.js +12 -0
  277. package/dist/npc/index.js.map +1 -0
  278. package/dist/npc/traits.d.ts +33 -0
  279. package/dist/npc/traits.d.ts.map +1 -0
  280. package/dist/npc/traits.js +795 -0
  281. package/dist/npc/traits.js.map +1 -0
  282. package/dist/npc/types.d.ts +193 -0
  283. package/dist/npc/types.d.ts.map +1 -0
  284. package/dist/npc/types.js +9 -0
  285. package/dist/npc/types.js.map +1 -0
  286. package/dist/quest/QuestManager.d.ts +79 -0
  287. package/dist/quest/QuestManager.d.ts.map +1 -0
  288. package/dist/quest/QuestManager.js +273 -0
  289. package/dist/quest/QuestManager.js.map +1 -0
  290. package/dist/quest/index.d.ts +6 -0
  291. package/dist/quest/index.d.ts.map +1 -0
  292. package/dist/quest/index.js +9 -0
  293. package/dist/quest/index.js.map +1 -0
  294. package/dist/quest/types.d.ts +81 -0
  295. package/dist/quest/types.d.ts.map +1 -0
  296. package/dist/quest/types.js +8 -0
  297. package/dist/quest/types.js.map +1 -0
  298. package/dist/strategy/StrategyExecutor.d.ts +159 -0
  299. package/dist/strategy/StrategyExecutor.d.ts.map +1 -0
  300. package/dist/strategy/StrategyExecutor.js +479 -0
  301. package/dist/strategy/StrategyExecutor.js.map +1 -0
  302. package/dist/strategy/StrategyParser.d.ts +48 -0
  303. package/dist/strategy/StrategyParser.d.ts.map +1 -0
  304. package/dist/strategy/StrategyParser.js +321 -0
  305. package/dist/strategy/StrategyParser.js.map +1 -0
  306. package/dist/strategy/defaultStrategy.d.ts +40 -0
  307. package/dist/strategy/defaultStrategy.d.ts.map +1 -0
  308. package/dist/strategy/defaultStrategy.js +254 -0
  309. package/dist/strategy/defaultStrategy.js.map +1 -0
  310. package/dist/strategy/index.d.ts +8 -0
  311. package/dist/strategy/index.d.ts.map +1 -0
  312. package/dist/strategy/index.js +14 -0
  313. package/dist/strategy/index.js.map +1 -0
  314. package/dist/tui/ExploreMenu.d.ts +106 -0
  315. package/dist/tui/ExploreMenu.d.ts.map +1 -0
  316. package/dist/tui/ExploreMenu.js +282 -0
  317. package/dist/tui/ExploreMenu.js.map +1 -0
  318. package/dist/tui/GameUI.d.ts +313 -0
  319. package/dist/tui/GameUI.d.ts.map +1 -0
  320. package/dist/tui/GameUI.js +2116 -0
  321. package/dist/tui/GameUI.js.map +1 -0
  322. package/dist/tui/GameUIAdapter.d.ts +207 -0
  323. package/dist/tui/GameUIAdapter.d.ts.map +1 -0
  324. package/dist/tui/GameUIAdapter.js +1342 -0
  325. package/dist/tui/GameUIAdapter.js.map +1 -0
  326. package/dist/tui/Input.d.ts +139 -0
  327. package/dist/tui/Input.d.ts.map +1 -0
  328. package/dist/tui/Input.js +278 -0
  329. package/dist/tui/Input.js.map +1 -0
  330. package/dist/tui/Menu.d.ts +110 -0
  331. package/dist/tui/Menu.d.ts.map +1 -0
  332. package/dist/tui/Menu.js +365 -0
  333. package/dist/tui/Menu.js.map +1 -0
  334. package/dist/tui/Screen.d.ts +228 -0
  335. package/dist/tui/Screen.d.ts.map +1 -0
  336. package/dist/tui/Screen.js +502 -0
  337. package/dist/tui/Screen.js.map +1 -0
  338. package/dist/tui/components/Box.d.ts +36 -0
  339. package/dist/tui/components/Box.d.ts.map +1 -0
  340. package/dist/tui/components/Box.js +43 -0
  341. package/dist/tui/components/Box.js.map +1 -0
  342. package/dist/tui/components/List.d.ts +69 -0
  343. package/dist/tui/components/List.d.ts.map +1 -0
  344. package/dist/tui/components/List.js +136 -0
  345. package/dist/tui/components/List.js.map +1 -0
  346. package/dist/tui/components/ProgressBar.d.ts +42 -0
  347. package/dist/tui/components/ProgressBar.d.ts.map +1 -0
  348. package/dist/tui/components/ProgressBar.js +75 -0
  349. package/dist/tui/components/ProgressBar.js.map +1 -0
  350. package/dist/tui/components/index.d.ts +8 -0
  351. package/dist/tui/components/index.d.ts.map +1 -0
  352. package/dist/tui/components/index.js +11 -0
  353. package/dist/tui/components/index.js.map +1 -0
  354. package/dist/tui/core/BaseSection.d.ts +98 -0
  355. package/dist/tui/core/BaseSection.d.ts.map +1 -0
  356. package/dist/tui/core/BaseSection.js +174 -0
  357. package/dist/tui/core/BaseSection.js.map +1 -0
  358. package/dist/tui/core/Component.d.ts +61 -0
  359. package/dist/tui/core/Component.d.ts.map +1 -0
  360. package/dist/tui/core/Component.js +32 -0
  361. package/dist/tui/core/Component.js.map +1 -0
  362. package/dist/tui/core/Section.d.ts +101 -0
  363. package/dist/tui/core/Section.d.ts.map +1 -0
  364. package/dist/tui/core/Section.js +24 -0
  365. package/dist/tui/core/Section.js.map +1 -0
  366. package/dist/tui/core/SectionManager.d.ts +108 -0
  367. package/dist/tui/core/SectionManager.d.ts.map +1 -0
  368. package/dist/tui/core/SectionManager.js +258 -0
  369. package/dist/tui/core/SectionManager.js.map +1 -0
  370. package/dist/tui/core/index.d.ts +9 -0
  371. package/dist/tui/core/index.d.ts.map +1 -0
  372. package/dist/tui/core/index.js +12 -0
  373. package/dist/tui/core/index.js.map +1 -0
  374. package/dist/tui/index.d.ts +15 -0
  375. package/dist/tui/index.d.ts.map +1 -0
  376. package/dist/tui/index.js +23 -0
  377. package/dist/tui/index.js.map +1 -0
  378. package/dist/tui/screens/BaseScreen.d.ts +62 -0
  379. package/dist/tui/screens/BaseScreen.d.ts.map +1 -0
  380. package/dist/tui/screens/BaseScreen.js +55 -0
  381. package/dist/tui/screens/BaseScreen.js.map +1 -0
  382. package/dist/tui/screens/CombatScreen.d.ts +43 -0
  383. package/dist/tui/screens/CombatScreen.d.ts.map +1 -0
  384. package/dist/tui/screens/CombatScreen.js +125 -0
  385. package/dist/tui/screens/CombatScreen.js.map +1 -0
  386. package/dist/tui/screens/DialogScreen.d.ts +53 -0
  387. package/dist/tui/screens/DialogScreen.d.ts.map +1 -0
  388. package/dist/tui/screens/DialogScreen.js +90 -0
  389. package/dist/tui/screens/DialogScreen.js.map +1 -0
  390. package/dist/tui/screens/DungeonScreen.d.ts +80 -0
  391. package/dist/tui/screens/DungeonScreen.d.ts.map +1 -0
  392. package/dist/tui/screens/DungeonScreen.js +317 -0
  393. package/dist/tui/screens/DungeonScreen.js.map +1 -0
  394. package/dist/tui/screens/ExploreScreen.d.ts +69 -0
  395. package/dist/tui/screens/ExploreScreen.d.ts.map +1 -0
  396. package/dist/tui/screens/ExploreScreen.js +224 -0
  397. package/dist/tui/screens/ExploreScreen.js.map +1 -0
  398. package/dist/tui/screens/SectionScreen.d.ts +84 -0
  399. package/dist/tui/screens/SectionScreen.d.ts.map +1 -0
  400. package/dist/tui/screens/SectionScreen.js +156 -0
  401. package/dist/tui/screens/SectionScreen.js.map +1 -0
  402. package/dist/tui/screens/TitleScreen.d.ts +40 -0
  403. package/dist/tui/screens/TitleScreen.d.ts.map +1 -0
  404. package/dist/tui/screens/TitleScreen.js +253 -0
  405. package/dist/tui/screens/TitleScreen.js.map +1 -0
  406. package/dist/tui/screens/TownScreen.d.ts +98 -0
  407. package/dist/tui/screens/TownScreen.d.ts.map +1 -0
  408. package/dist/tui/screens/TownScreen.js +370 -0
  409. package/dist/tui/screens/TownScreen.js.map +1 -0
  410. package/dist/tui/screens/TravelScreen.d.ts +67 -0
  411. package/dist/tui/screens/TravelScreen.d.ts.map +1 -0
  412. package/dist/tui/screens/TravelScreen.js +286 -0
  413. package/dist/tui/screens/TravelScreen.js.map +1 -0
  414. package/dist/tui/screens/index.d.ts +8 -0
  415. package/dist/tui/screens/index.d.ts.map +1 -0
  416. package/dist/tui/screens/index.js +17 -0
  417. package/dist/tui/screens/index.js.map +1 -0
  418. package/dist/tui/sections/ActionsSection.d.ts +71 -0
  419. package/dist/tui/sections/ActionsSection.d.ts.map +1 -0
  420. package/dist/tui/sections/ActionsSection.js +184 -0
  421. package/dist/tui/sections/ActionsSection.js.map +1 -0
  422. package/dist/tui/sections/DungeonSection.d.ts +65 -0
  423. package/dist/tui/sections/DungeonSection.d.ts.map +1 -0
  424. package/dist/tui/sections/DungeonSection.js +144 -0
  425. package/dist/tui/sections/DungeonSection.js.map +1 -0
  426. package/dist/tui/sections/EventsSection.d.ts +50 -0
  427. package/dist/tui/sections/EventsSection.d.ts.map +1 -0
  428. package/dist/tui/sections/EventsSection.js +134 -0
  429. package/dist/tui/sections/EventsSection.js.map +1 -0
  430. package/dist/tui/sections/MapSection.d.ts +66 -0
  431. package/dist/tui/sections/MapSection.d.ts.map +1 -0
  432. package/dist/tui/sections/MapSection.js +669 -0
  433. package/dist/tui/sections/MapSection.js.map +1 -0
  434. package/dist/tui/sections/StatusSection.d.ts +47 -0
  435. package/dist/tui/sections/StatusSection.d.ts.map +1 -0
  436. package/dist/tui/sections/StatusSection.js +133 -0
  437. package/dist/tui/sections/StatusSection.js.map +1 -0
  438. package/dist/tui/sections/TeamSection.d.ts +71 -0
  439. package/dist/tui/sections/TeamSection.d.ts.map +1 -0
  440. package/dist/tui/sections/TeamSection.js +224 -0
  441. package/dist/tui/sections/TeamSection.js.map +1 -0
  442. package/dist/tui/sections/TravelingSection.d.ts +51 -0
  443. package/dist/tui/sections/TravelingSection.d.ts.map +1 -0
  444. package/dist/tui/sections/TravelingSection.js +106 -0
  445. package/dist/tui/sections/TravelingSection.js.map +1 -0
  446. package/dist/tui/sections/index.d.ts +9 -0
  447. package/dist/tui/sections/index.d.ts.map +1 -0
  448. package/dist/tui/sections/index.js +12 -0
  449. package/dist/tui/sections/index.js.map +1 -0
  450. package/dist/ui/Terminal.d.ts +68 -0
  451. package/dist/ui/Terminal.d.ts.map +1 -0
  452. package/dist/ui/Terminal.js +297 -0
  453. package/dist/ui/Terminal.js.map +1 -0
  454. package/dist/ui/index.d.ts +5 -0
  455. package/dist/ui/index.d.ts.map +1 -0
  456. package/dist/ui/index.js +8 -0
  457. package/dist/ui/index.js.map +1 -0
  458. package/dist/utils/configMigration.d.ts +14 -0
  459. package/dist/utils/configMigration.d.ts.map +1 -0
  460. package/dist/utils/configMigration.js +92 -0
  461. package/dist/utils/configMigration.js.map +1 -0
  462. package/dist/utils/errorHandler.d.ts +86 -0
  463. package/dist/utils/errorHandler.d.ts.map +1 -0
  464. package/dist/utils/errorHandler.js +224 -0
  465. package/dist/utils/errorHandler.js.map +1 -0
  466. package/dist/utils/logger.d.ts +14 -0
  467. package/dist/utils/logger.d.ts.map +1 -0
  468. package/dist/utils/logger.js +43 -0
  469. package/dist/utils/logger.js.map +1 -0
  470. package/dist/weapon/WeaponFactory.d.ts +32 -0
  471. package/dist/weapon/WeaponFactory.d.ts.map +1 -0
  472. package/dist/weapon/WeaponFactory.js +216 -0
  473. package/dist/weapon/WeaponFactory.js.map +1 -0
  474. package/dist/weapon/index.d.ts +5 -0
  475. package/dist/weapon/index.d.ts.map +1 -0
  476. package/dist/weapon/index.js +8 -0
  477. package/dist/weapon/index.js.map +1 -0
  478. package/package.json +46 -0
@@ -0,0 +1,780 @@
1
+ /**
2
+ * Core game type definitions
3
+ */
4
+ /**
5
+ * Actor stats - the stats for a single character
6
+ * (Note: PlayerStats is kept as an alias for backward compatibility)
7
+ */
8
+ export interface ActorStats {
9
+ level: number;
10
+ hp: number;
11
+ maxHp: number;
12
+ mp: number;
13
+ maxMp: number;
14
+ attack: number;
15
+ defense: number;
16
+ speed: number;
17
+ exp: number;
18
+ expToNextLevel: number;
19
+ gold: number;
20
+ }
21
+ export type PlayerStats = ActorStats;
22
+ /**
23
+ * Actor character customization - similar to NPC traits
24
+ */
25
+ export interface ActorCharacter {
26
+ backstory: string;
27
+ appearance: string;
28
+ personality: string;
29
+ motivation: string;
30
+ origin: string;
31
+ traits: string[];
32
+ }
33
+ export type PlayerCharacter = ActorCharacter;
34
+ /**
35
+ * Actor status - whether they can participate in combat
36
+ */
37
+ export type ActorStatus = 'active' | 'reserve' | 'injured' | 'dead';
38
+ /**
39
+ * Actor role in the team - affects AI behavior and formation
40
+ */
41
+ export type ActorRole = 'tank' | 'dps' | 'healer' | 'support' | 'balanced';
42
+ /**
43
+ * AI settings for auto-battle behavior
44
+ */
45
+ export interface ActorAISettings {
46
+ autoAttack: boolean;
47
+ useSkills: boolean;
48
+ targetPriority: 'nearest' | 'lowest_hp' | 'highest_damage' | 'random';
49
+ healThreshold: number;
50
+ retreatThreshold: number;
51
+ }
52
+ /**
53
+ * Actor (character) - represents a single playable character
54
+ * Multiple Actors form a Team
55
+ */
56
+ export interface Actor {
57
+ id: string;
58
+ name: string;
59
+ stats: ActorStats;
60
+ position: Position;
61
+ equipment: Equipment;
62
+ inventory: InventoryItem[];
63
+ activeQuests: Quest[];
64
+ completedQuests: string[];
65
+ discoveredLocations: string[];
66
+ unlockedAffixes: string[];
67
+ createdAt: number;
68
+ playTime: number;
69
+ character?: ActorCharacter;
70
+ status: ActorStatus;
71
+ teamId?: string;
72
+ role: ActorRole;
73
+ aiSettings: ActorAISettings;
74
+ }
75
+ /**
76
+ * Legacy Player interface - kept for backward compatibility
77
+ * New code should use Actor interface
78
+ */
79
+ export interface Player {
80
+ id: string;
81
+ name: string;
82
+ stats: PlayerStats;
83
+ position: Position;
84
+ equipment: Equipment;
85
+ inventory: InventoryItem[];
86
+ activeQuests: Quest[];
87
+ completedQuests: string[];
88
+ discoveredLocations: string[];
89
+ unlockedAffixes: string[];
90
+ createdAt: number;
91
+ playTime: number;
92
+ character?: PlayerCharacter;
93
+ }
94
+ /**
95
+ * Team formation - affects damage distribution
96
+ */
97
+ export type TeamFormation = 'line' | 'wedge' | 'defensive' | 'spread';
98
+ /**
99
+ * Formation effects configuration
100
+ * frontline: actor indices that are in front
101
+ * backline: actor indices that are protected
102
+ * damage: damage multiplier for each position (0=leader, 1-3=members)
103
+ */
104
+ export interface FormationConfig {
105
+ frontline: number[];
106
+ backline: number[];
107
+ damage: number[];
108
+ }
109
+ /**
110
+ * Pre-defined formation effects
111
+ */
112
+ export declare const FORMATION_EFFECTS: Record<TeamFormation, FormationConfig>;
113
+ /**
114
+ * Team - a group of up to 4 active characters
115
+ */
116
+ export interface Team {
117
+ id: string;
118
+ name: string;
119
+ activeMembers: string[];
120
+ reserveMembers: string[];
121
+ sharedInventory: InventoryItem[];
122
+ sharedGold: number;
123
+ position: Position;
124
+ currentLocation: CurrentLocation;
125
+ formation: TeamFormation;
126
+ strategy: StrategyStateMachine;
127
+ createdAt: number;
128
+ totalPlayTime: number;
129
+ }
130
+ /**
131
+ * Account-level statistics
132
+ */
133
+ export interface AccountStats {
134
+ totalPlayTime: number;
135
+ actorsCreated: number;
136
+ teamsCreated: number;
137
+ totalDungeonsCleared: number;
138
+ totalEnemiesKilled: number;
139
+ totalGoldEarned: number;
140
+ totalDeaths: number;
141
+ highestActorLevel: number;
142
+ }
143
+ /**
144
+ * Global unlocks that persist across all actors/teams
145
+ */
146
+ export interface GlobalUnlocks {
147
+ unlockedContinents: string[];
148
+ unlockedClasses: string[];
149
+ unlockedAffixes: string[];
150
+ achievements: string[];
151
+ }
152
+ /**
153
+ * Player Account - manages all actors and teams
154
+ * This is the top-level entity for a player's save data
155
+ */
156
+ export interface PlayerAccount {
157
+ id: string;
158
+ accountName: string;
159
+ actors: Record<string, Actor>;
160
+ teams: Record<string, Team>;
161
+ activeTeamId: string | null;
162
+ accountStats: AccountStats;
163
+ settings: GameSettings;
164
+ globalUnlocks: GlobalUnlocks;
165
+ createdAt: number;
166
+ lastPlayedAt: number;
167
+ }
168
+ /**
169
+ * Entry in the turn order for team combat
170
+ */
171
+ export interface CombatTurnEntry {
172
+ type: 'actor' | 'enemy';
173
+ id: string;
174
+ name: string;
175
+ speed: number;
176
+ isActive: boolean;
177
+ }
178
+ /**
179
+ * Team combat state - tracks HP for all team members
180
+ */
181
+ export interface TeamCombatState {
182
+ isActive: boolean;
183
+ turn: number;
184
+ actorHp: Record<string, number>;
185
+ actorMp: Record<string, number>;
186
+ enemies: Enemy[];
187
+ turnOrder: CombatTurnEntry[];
188
+ currentTurnIndex: number;
189
+ combatType: 'mob' | 'elite' | 'boss' | 'ambush';
190
+ log: CombatLogEntry[];
191
+ startTime: number;
192
+ estimatedEndTime: number;
193
+ }
194
+ export interface Equipment {
195
+ weapon: Weapon | null;
196
+ armor: Armor | null;
197
+ accessory: Accessory | null;
198
+ }
199
+ export interface Weapon {
200
+ id: string;
201
+ name: string;
202
+ description: string;
203
+ lore?: string;
204
+ baseAttack: number;
205
+ durability: number;
206
+ maxDurability: number;
207
+ affixes: AppliedAffix[];
208
+ rarity: Rarity;
209
+ generatedByAI: boolean;
210
+ }
211
+ export interface Armor {
212
+ id: string;
213
+ name: string;
214
+ description: string;
215
+ baseDefense: number;
216
+ durability: number;
217
+ maxDurability: number;
218
+ affixes: AppliedAffix[];
219
+ rarity: Rarity;
220
+ }
221
+ export interface Accessory {
222
+ id: string;
223
+ name: string;
224
+ description: string;
225
+ effect: string;
226
+ affixes: AppliedAffix[];
227
+ rarity: Rarity;
228
+ }
229
+ export interface InventoryItem {
230
+ id: string;
231
+ type: 'weapon' | 'armor' | 'accessory' | 'consumable' | 'material' | 'affix_fragment';
232
+ name: string;
233
+ description: string;
234
+ quantity: number;
235
+ data?: unknown;
236
+ }
237
+ export type Rarity = 'common' | 'uncommon' | 'rare' | 'epic' | 'legendary';
238
+ export type AffixType = 'prefix' | 'suffix' | 'legendary';
239
+ export interface AffixDefinition {
240
+ id: string;
241
+ name: string;
242
+ description: string;
243
+ type: AffixType;
244
+ rarity: Rarity;
245
+ statModifiers?: Partial<StatModifiers>;
246
+ onHitEffects?: OnHitEffect[];
247
+ passiveEffects?: PassiveEffect[];
248
+ incompatibleWith?: string[];
249
+ requiresLevel?: number;
250
+ isBuiltIn: boolean;
251
+ pluginPath?: string;
252
+ }
253
+ export interface AppliedAffix {
254
+ definitionId: string;
255
+ name: string;
256
+ type: AffixType;
257
+ rarity: Rarity;
258
+ }
259
+ export interface StatModifiers {
260
+ attack: number;
261
+ defense: number;
262
+ speed: number;
263
+ maxHp: number;
264
+ maxMp: number;
265
+ critChance: number;
266
+ critDamage: number;
267
+ lifesteal: number;
268
+ }
269
+ export interface OnHitEffect {
270
+ type: 'damage' | 'heal' | 'status' | 'custom';
271
+ element?: 'fire' | 'ice' | 'lightning' | 'poison' | 'dark' | 'holy';
272
+ value: number;
273
+ chance: number;
274
+ duration?: number;
275
+ }
276
+ export interface PassiveEffect {
277
+ type: 'regen' | 'aura' | 'trigger' | 'custom';
278
+ description: string;
279
+ value: number;
280
+ }
281
+ export interface Position {
282
+ x: number;
283
+ y: number;
284
+ floor: number;
285
+ }
286
+ export type RoomType = 'empty' | 'combat' | 'shop' | 'treasure' | 'event' | 'boss' | 'rest' | 'town' | 'dungeon_entrance';
287
+ export interface Room {
288
+ id: string;
289
+ type: RoomType;
290
+ position: Position;
291
+ name: string;
292
+ description: string;
293
+ isExplored: boolean;
294
+ isCleared: boolean;
295
+ connections: string[];
296
+ enemies?: Enemy[];
297
+ npcs?: NPC[];
298
+ items?: InventoryItem[];
299
+ events?: GameEvent[];
300
+ }
301
+ export type GameMapType = 'town' | 'dungeon';
302
+ export interface GameMap {
303
+ id: string;
304
+ name: string;
305
+ type: GameMapType;
306
+ floor: number;
307
+ rooms: Map<string, Room>;
308
+ startRoomId: string;
309
+ bossRoomId?: string;
310
+ generatedAt: number;
311
+ }
312
+ export interface Enemy {
313
+ id: string;
314
+ name: string;
315
+ level: number;
316
+ hp: number;
317
+ maxHp: number;
318
+ attack: number;
319
+ defense: number;
320
+ speed: number;
321
+ expReward: number;
322
+ goldReward: number;
323
+ dropTable: DropTableEntry[];
324
+ abilities?: EnemyAbility[];
325
+ isBoss: boolean;
326
+ }
327
+ export interface DropTableEntry {
328
+ itemId: string;
329
+ chance: number;
330
+ quantity: {
331
+ min: number;
332
+ max: number;
333
+ };
334
+ }
335
+ export interface EnemyAbility {
336
+ name: string;
337
+ damage: number;
338
+ cooldown: number;
339
+ currentCooldown: number;
340
+ statusEffect?: string;
341
+ }
342
+ export type CombatStrategy = 'aggressive' | 'defensive' | 'balanced' | 'skill_focus';
343
+ export interface CombatState {
344
+ isActive: boolean;
345
+ turn: number;
346
+ playerHp: number;
347
+ enemies: Enemy[];
348
+ log: CombatLogEntry[];
349
+ strategy: CombatStrategy;
350
+ startTime: number;
351
+ estimatedEndTime: number;
352
+ }
353
+ export interface CombatLogEntry {
354
+ timestamp: number;
355
+ message: string;
356
+ type: 'damage' | 'heal' | 'status' | 'system';
357
+ }
358
+ export type NPCType = 'merchant' | 'sage' | 'guard' | 'traveler' | 'blacksmith' | 'quest_giver';
359
+ export interface NPC {
360
+ id: string;
361
+ name: string;
362
+ type: NPCType;
363
+ description: string;
364
+ systemPrompt: string;
365
+ dialogHistory: DialogEntry[];
366
+ inventory?: InventoryItem[];
367
+ quests?: string[];
368
+ }
369
+ export interface DialogEntry {
370
+ role: 'player' | 'npc';
371
+ content: string;
372
+ timestamp: number;
373
+ }
374
+ export type QuestType = 'explore' | 'combat' | 'collect' | 'dialog' | 'escort' | 'boss';
375
+ export type QuestStatus = 'available' | 'active' | 'completed' | 'failed';
376
+ export interface Quest {
377
+ id: string;
378
+ name: string;
379
+ description: string;
380
+ type: QuestType;
381
+ status: QuestStatus;
382
+ objectives: QuestObjective[];
383
+ rewards: QuestReward[];
384
+ timeLimit?: number;
385
+ startTime?: number;
386
+ targetLocation?: string;
387
+ }
388
+ export interface QuestObjective {
389
+ id: string;
390
+ description: string;
391
+ type: 'kill' | 'collect' | 'reach' | 'talk' | 'survive';
392
+ target: string;
393
+ required: number;
394
+ current: number;
395
+ isComplete: boolean;
396
+ }
397
+ export interface QuestReward {
398
+ type: 'exp' | 'gold' | 'item' | 'affix';
399
+ value: number | string;
400
+ quantity?: number;
401
+ }
402
+ export type EventType = 'combat_start' | 'combat_end' | 'item_found' | 'npc_encounter' | 'quest_update' | 'level_up' | 'affix_discovered' | 'travel_event' | 'random_encounter';
403
+ export interface GameEvent {
404
+ id: string;
405
+ type: EventType;
406
+ title: string;
407
+ description: string;
408
+ choices?: EventChoice[];
409
+ timestamp: number;
410
+ processed: boolean;
411
+ }
412
+ export interface EventChoice {
413
+ id: string;
414
+ text: string;
415
+ consequence: string;
416
+ effect: EventEffect;
417
+ }
418
+ export interface EventEffect {
419
+ type: 'reward' | 'damage' | 'heal' | 'trigger_combat' | 'trigger_dialog' | 'none';
420
+ value?: number | string;
421
+ }
422
+ export type GamePhase = 'menu' | 'exploring' | 'traveling' | 'combat' | 'dialog' | 'inventory' | 'quest_log' | 'affix_workshop' | 'game_over';
423
+ export interface GameState {
424
+ phase: GamePhase;
425
+ player: Player;
426
+ currentMap: GameMap;
427
+ currentRoom: Room;
428
+ combat?: CombatState;
429
+ activeDialog?: {
430
+ npc: NPC;
431
+ isStreaming: boolean;
432
+ };
433
+ pendingEvents: GameEvent[];
434
+ travelState?: TravelState;
435
+ gameTime: number;
436
+ lastUpdateTime: number;
437
+ isPaused: boolean;
438
+ }
439
+ export interface TravelState {
440
+ fromRoomId: string;
441
+ toRoomId: string;
442
+ startTime: number;
443
+ duration: number;
444
+ progress: number;
445
+ events: GameEvent[];
446
+ }
447
+ export interface SaveData {
448
+ version: string;
449
+ timestamp: number;
450
+ player: Player;
451
+ currentMapId: string;
452
+ currentRoomId: string;
453
+ discoveredMaps: string[];
454
+ gameTime: number;
455
+ settings: GameSettings;
456
+ }
457
+ export interface GameSettings {
458
+ language: string;
459
+ autoSave: boolean;
460
+ autoSaveInterval: number;
461
+ combatSpeed: number;
462
+ soundEnabled: boolean;
463
+ }
464
+ /**
465
+ * A continent containing multiple towns and dungeons
466
+ */
467
+ export interface Continent {
468
+ id: string;
469
+ name: string;
470
+ description: string;
471
+ towns: Town[];
472
+ dungeons: Dungeon[];
473
+ connections: ContinentConnection[];
474
+ unlockedAt?: number;
475
+ imageUrl?: string;
476
+ }
477
+ /**
478
+ * Connection between continents (for future expansion)
479
+ */
480
+ export interface ContinentConnection {
481
+ targetContinentId: string;
482
+ travelTime: number;
483
+ requiresItem?: string;
484
+ requiresQuestComplete?: string;
485
+ }
486
+ /**
487
+ * A town with various facilities
488
+ */
489
+ export interface Town {
490
+ id: string;
491
+ name: string;
492
+ description: string;
493
+ continentId: string;
494
+ position: {
495
+ x: number;
496
+ y: number;
497
+ };
498
+ facilities: TownFacility[];
499
+ npcs: string[];
500
+ unlockedAt?: number;
501
+ connectedTowns: TownConnection[];
502
+ connectedDungeons: string[];
503
+ }
504
+ /**
505
+ * Connection between towns
506
+ */
507
+ export interface TownConnection {
508
+ targetTownId: string;
509
+ travelTime: number;
510
+ dangerLevel: number;
511
+ }
512
+ /**
513
+ * Facilities available in a town
514
+ */
515
+ export interface TownFacility {
516
+ type: TownFacilityType;
517
+ name: string;
518
+ description: string;
519
+ npcId?: string;
520
+ isUnlocked: boolean;
521
+ }
522
+ export type TownFacilityType = 'inn' | 'shop' | 'blacksmith' | 'tavern' | 'guild' | 'temple' | 'bank' | 'arena';
523
+ /**
524
+ * A dungeon with multiple levels
525
+ */
526
+ export interface Dungeon {
527
+ id: string;
528
+ name: string;
529
+ description: string;
530
+ continentId: string;
531
+ nearestTownId: string;
532
+ difficulty: DungeonDifficulty;
533
+ recommendedLevel: number;
534
+ levels: DungeonLevel[];
535
+ hasBoss: boolean;
536
+ bossName?: string;
537
+ estimatedTime: number;
538
+ unlockedAt?: number;
539
+ rewards: DungeonReward[];
540
+ travelTimeFromTown: number;
541
+ }
542
+ export type DungeonDifficulty = 'easy' | 'normal' | 'hard' | 'nightmare' | 'legendary';
543
+ export interface DungeonReward {
544
+ type: 'exp' | 'gold' | 'item' | 'affix' | 'unlock';
545
+ value: number | string;
546
+ chance: number;
547
+ }
548
+ /**
549
+ * A level within a dungeon
550
+ */
551
+ export interface DungeonLevel {
552
+ levelNumber: number;
553
+ name?: string;
554
+ rooms: DungeonRoom[];
555
+ entranceRoomId: string;
556
+ exitRoomId: string;
557
+ bossRoomId?: string;
558
+ minEnemyLevel: number;
559
+ maxEnemyLevel: number;
560
+ }
561
+ /**
562
+ * A room within a dungeon level
563
+ */
564
+ export interface DungeonRoom {
565
+ id: string;
566
+ type: DungeonRoomType;
567
+ name: string;
568
+ description: string;
569
+ connections: RoomConnection[];
570
+ content: DungeonRoomContent;
571
+ timeToTraverse: number;
572
+ isExplored: boolean;
573
+ isCleared: boolean;
574
+ position: {
575
+ x: number;
576
+ y: number;
577
+ };
578
+ }
579
+ export type DungeonRoomType = 'entrance' | 'exit' | 'dead_end' | 'safe_room' | 'combat' | 'elite' | 'boss' | 'ambush' | 'treasure' | 'fountain' | 'altar' | 'shop' | 'event' | 'encounter' | 'trap' | 'puzzle' | 'rest' | 'empty';
580
+ export interface RoomConnection {
581
+ targetRoomId: string;
582
+ direction: 'north' | 'south' | 'east' | 'west' | 'up' | 'down';
583
+ isLocked: boolean;
584
+ keyRequired?: string;
585
+ isHidden: boolean;
586
+ }
587
+ export interface DungeonRoomContent {
588
+ enemies?: Enemy[];
589
+ items?: InventoryItem[];
590
+ event?: GameEvent;
591
+ npc?: NPC;
592
+ trap?: TrapData;
593
+ puzzle?: PuzzleData;
594
+ treasureChest?: TreasureChest;
595
+ }
596
+ export interface TrapData {
597
+ id: string;
598
+ name: string;
599
+ damage: number;
600
+ effect?: string;
601
+ disarmDifficulty: number;
602
+ isTriggered: boolean;
603
+ isDisarmed: boolean;
604
+ }
605
+ export interface PuzzleData {
606
+ id: string;
607
+ name: string;
608
+ description: string;
609
+ difficulty: number;
610
+ reward: InventoryItem | number;
611
+ isSolved: boolean;
612
+ }
613
+ export interface TreasureChest {
614
+ id: string;
615
+ rarity: Rarity;
616
+ isOpened: boolean;
617
+ isLocked: boolean;
618
+ keyRequired?: string;
619
+ contents: InventoryItem[];
620
+ goldAmount: number;
621
+ }
622
+ /**
623
+ * Complete strategy state machine for AI-controlled gameplay
624
+ */
625
+ export interface StrategyStateMachine {
626
+ combat: CombatStrategyConfig;
627
+ exploration: ExplorationStrategy;
628
+ resource: ResourceStrategy;
629
+ encounter: EncounterStrategy;
630
+ }
631
+ /**
632
+ * Combat strategy configuration (renamed from CombatStrategy to avoid conflict)
633
+ */
634
+ export interface CombatStrategyConfig {
635
+ targetPriority: TargetPriority[];
636
+ itemUsage: ItemUsageRule[];
637
+ retreatCondition: RetreatCondition;
638
+ skillPriority: string[];
639
+ focusTarget: 'highest_damage' | 'lowest_hp' | 'highest_threat' | 'random';
640
+ }
641
+ export type TargetPriority = 'healer' | 'ranged' | 'caster' | 'tank' | 'lowest_hp' | 'highest_damage' | 'boss' | 'minion';
642
+ export interface ItemUsageRule {
643
+ itemType: 'health_potion' | 'mana_potion' | 'buff' | 'debuff' | 'revive';
644
+ condition: 'hp_below' | 'mp_below' | 'status_effect' | 'enemy_count' | 'turn_count';
645
+ threshold: number;
646
+ priority: number;
647
+ }
648
+ export interface RetreatCondition {
649
+ enabled: boolean;
650
+ hpThreshold: number;
651
+ partyWipeRisk: boolean;
652
+ bossExempt: boolean;
653
+ }
654
+ /**
655
+ * Exploration strategy for dungeon navigation
656
+ */
657
+ export interface ExplorationStrategy {
658
+ roomPriority: RoomPriority[];
659
+ deadEndBehavior: DeadEndBehavior;
660
+ treasureHunting: boolean;
661
+ thoroughExploration: boolean;
662
+ avoidTraps: boolean;
663
+ avoidElites: boolean;
664
+ restThreshold: number;
665
+ }
666
+ export type RoomPriority = 'combat' | 'treasure' | 'event' | 'shop' | 'rest' | 'exit';
667
+ export type DeadEndBehavior = 'retreat_immediately' | 'search_thoroughly' | 'rest_if_needed';
668
+ /**
669
+ * Resource management strategy
670
+ */
671
+ export interface ResourceStrategy {
672
+ hpThreshold: number;
673
+ hpAction: ResourceAction;
674
+ mpThreshold: number;
675
+ mpAction: ResourceAction;
676
+ goldReserve: number;
677
+ sellJunk: boolean;
678
+ repairThreshold: number;
679
+ }
680
+ export type ResourceAction = 'use_item' | 'rest' | 'retreat_to_town' | 'continue';
681
+ /**
682
+ * Encounter strategy for NPCs and events
683
+ */
684
+ export interface EncounterStrategy {
685
+ npcBehavior: NPCBehavior;
686
+ eventRiskTolerance: number;
687
+ acceptQuests: boolean;
688
+ shopBehavior: ShopBehavior;
689
+ }
690
+ export type NPCBehavior = 'always_talk' | 'quest_givers_only' | 'skip';
691
+ export type ShopBehavior = 'buy_upgrades' | 'sell_only' | 'buy_consumables' | 'skip';
692
+ /**
693
+ * Extended game phase for IdleRPG mechanics
694
+ */
695
+ export type IdleGamePhase = 'in_town' | 'traveling' | 'in_dungeon' | 'combat' | 'returning' | 'resting' | 'shopping' | 'dialog';
696
+ /**
697
+ * Current player location
698
+ */
699
+ export interface CurrentLocation {
700
+ type: 'town' | 'dungeon' | 'traveling' | 'world_map';
701
+ continentId: string;
702
+ townId?: string;
703
+ dungeonId?: string;
704
+ levelNumber?: number;
705
+ roomId?: string;
706
+ }
707
+ /**
708
+ * Active dungeon exploration state
709
+ */
710
+ export interface ActiveDungeonState {
711
+ dungeonId: string;
712
+ currentLevel: number;
713
+ currentRoomId: string;
714
+ strategy: StrategyStateMachine;
715
+ exploredRooms: string[];
716
+ clearedRooms: string[];
717
+ startTime: number;
718
+ elapsedTime: number;
719
+ lootCollected: InventoryItem[];
720
+ goldCollected: number;
721
+ expGained: number;
722
+ enemiesKilled: number;
723
+ floorsCleared: number;
724
+ }
725
+ /**
726
+ * Represents an action that takes real time to complete
727
+ */
728
+ export interface TimeAction {
729
+ id: string;
730
+ type: TimeActionType;
731
+ description: string;
732
+ startTime: number;
733
+ duration: number;
734
+ progress: number;
735
+ isPaused: boolean;
736
+ canCancel: boolean;
737
+ onComplete?: string;
738
+ data?: Record<string, unknown>;
739
+ }
740
+ export type TimeActionType = 'travel' | 'combat' | 'combat_turn' | 'rest' | 'craft' | 'repair' | 'train' | 'explore_room' | 'search' | 'dialog';
741
+ /**
742
+ * Extended save data for IdleRPG features
743
+ */
744
+ export interface IdleSaveData extends SaveData {
745
+ currentLocation: CurrentLocation;
746
+ activeDungeon?: ActiveDungeonState;
747
+ strategy?: StrategyStateMachine;
748
+ worldState: WorldState;
749
+ statistics: GameStatistics;
750
+ }
751
+ /**
752
+ * World state tracking unlocks and progress
753
+ */
754
+ export interface WorldState {
755
+ unlockedContinents: string[];
756
+ unlockedTowns: string[];
757
+ unlockedDungeons: string[];
758
+ clearedDungeons: string[];
759
+ completedQuests: string[];
760
+ discoveredNPCs: string[];
761
+ reputations: Record<string, number>;
762
+ }
763
+ /**
764
+ * Player statistics
765
+ */
766
+ export interface GameStatistics {
767
+ totalPlayTime: number;
768
+ dungeonsCleared: number;
769
+ dungeonsAttempted: number;
770
+ enemiesKilled: number;
771
+ bossesKilled: number;
772
+ totalGoldEarned: number;
773
+ totalGoldSpent: number;
774
+ itemsCollected: number;
775
+ questsCompleted: number;
776
+ deathCount: number;
777
+ longestDungeonRun: number;
778
+ fastestBossClear: Record<string, number>;
779
+ }
780
+ //# sourceMappingURL=types.d.ts.map