@ticktockbent/rogue-ts 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 (123) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +175 -0
  3. package/dist/armor.d.ts +18 -0
  4. package/dist/armor.d.ts.map +1 -0
  5. package/dist/armor.js +84 -0
  6. package/dist/armor.js.map +1 -0
  7. package/dist/chase.d.ts +15 -0
  8. package/dist/chase.d.ts.map +1 -0
  9. package/dist/chase.js +152 -0
  10. package/dist/chase.js.map +1 -0
  11. package/dist/command.d.ts +12 -0
  12. package/dist/command.d.ts.map +1 -0
  13. package/dist/command.js +761 -0
  14. package/dist/command.js.map +1 -0
  15. package/dist/curses.d.ts +102 -0
  16. package/dist/curses.d.ts.map +1 -0
  17. package/dist/curses.js +47 -0
  18. package/dist/curses.js.map +1 -0
  19. package/dist/daemon.d.ts +43 -0
  20. package/dist/daemon.d.ts.map +1 -0
  21. package/dist/daemon.js +116 -0
  22. package/dist/daemon.js.map +1 -0
  23. package/dist/daemons.d.ts +47 -0
  24. package/dist/daemons.d.ts.map +1 -0
  25. package/dist/daemons.js +194 -0
  26. package/dist/daemons.js.map +1 -0
  27. package/dist/fight.d.ts +52 -0
  28. package/dist/fight.d.ts.map +1 -0
  29. package/dist/fight.js +508 -0
  30. package/dist/fight.js.map +1 -0
  31. package/dist/globals.d.ts +387 -0
  32. package/dist/globals.d.ts.map +1 -0
  33. package/dist/globals.js +935 -0
  34. package/dist/globals.js.map +1 -0
  35. package/dist/index.d.ts +11 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +9 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/init.d.ts +30 -0
  40. package/dist/init.d.ts.map +1 -0
  41. package/dist/init.js +159 -0
  42. package/dist/init.js.map +1 -0
  43. package/dist/io.d.ts +48 -0
  44. package/dist/io.d.ts.map +1 -0
  45. package/dist/io.js +248 -0
  46. package/dist/io.js.map +1 -0
  47. package/dist/list.d.ts +37 -0
  48. package/dist/list.d.ts.map +1 -0
  49. package/dist/list.js +109 -0
  50. package/dist/list.js.map +1 -0
  51. package/dist/main.d.ts +23 -0
  52. package/dist/main.d.ts.map +1 -0
  53. package/dist/main.js +207 -0
  54. package/dist/main.js.map +1 -0
  55. package/dist/misc.d.ts +53 -0
  56. package/dist/misc.d.ts.map +1 -0
  57. package/dist/misc.js +296 -0
  58. package/dist/misc.js.map +1 -0
  59. package/dist/monsters.d.ts +55 -0
  60. package/dist/monsters.d.ts.map +1 -0
  61. package/dist/monsters.js +211 -0
  62. package/dist/monsters.js.map +1 -0
  63. package/dist/move.d.ts +23 -0
  64. package/dist/move.d.ts.map +1 -0
  65. package/dist/move.js +270 -0
  66. package/dist/move.js.map +1 -0
  67. package/dist/new_level.d.ts +17 -0
  68. package/dist/new_level.d.ts.map +1 -0
  69. package/dist/new_level.js +173 -0
  70. package/dist/new_level.js.map +1 -0
  71. package/dist/pack.d.ts +47 -0
  72. package/dist/pack.d.ts.map +1 -0
  73. package/dist/pack.js +359 -0
  74. package/dist/pack.js.map +1 -0
  75. package/dist/passages.d.ts +23 -0
  76. package/dist/passages.d.ts.map +1 -0
  77. package/dist/passages.js +277 -0
  78. package/dist/passages.js.map +1 -0
  79. package/dist/potions.d.ts +13 -0
  80. package/dist/potions.d.ts.map +1 -0
  81. package/dist/potions.js +239 -0
  82. package/dist/potions.js.map +1 -0
  83. package/dist/rings.d.ts +13 -0
  84. package/dist/rings.d.ts.map +1 -0
  85. package/dist/rings.js +173 -0
  86. package/dist/rings.js.map +1 -0
  87. package/dist/rip.d.ts +22 -0
  88. package/dist/rip.d.ts.map +1 -0
  89. package/dist/rip.js +216 -0
  90. package/dist/rip.js.map +1 -0
  91. package/dist/rooms.d.ts +62 -0
  92. package/dist/rooms.d.ts.map +1 -0
  93. package/dist/rooms.js +432 -0
  94. package/dist/rooms.js.map +1 -0
  95. package/dist/save.d.ts +25 -0
  96. package/dist/save.d.ts.map +1 -0
  97. package/dist/save.js +565 -0
  98. package/dist/save.js.map +1 -0
  99. package/dist/scrolls.d.ts +13 -0
  100. package/dist/scrolls.d.ts.map +1 -0
  101. package/dist/scrolls.js +305 -0
  102. package/dist/scrolls.js.map +1 -0
  103. package/dist/sticks.d.ts +9 -0
  104. package/dist/sticks.d.ts.map +1 -0
  105. package/dist/sticks.js +379 -0
  106. package/dist/sticks.js.map +1 -0
  107. package/dist/things.d.ts +28 -0
  108. package/dist/things.d.ts.map +1 -0
  109. package/dist/things.js +307 -0
  110. package/dist/things.js.map +1 -0
  111. package/dist/types.d.ts +113 -0
  112. package/dist/types.d.ts.map +1 -0
  113. package/dist/types.js +10 -0
  114. package/dist/types.js.map +1 -0
  115. package/dist/util.d.ts +36 -0
  116. package/dist/util.d.ts.map +1 -0
  117. package/dist/util.js +198 -0
  118. package/dist/util.js.map +1 -0
  119. package/dist/weapons.d.ts +22 -0
  120. package/dist/weapons.d.ts.map +1 -0
  121. package/dist/weapons.js +185 -0
  122. package/dist/weapons.js.map +1 -0
  123. package/package.json +31 -0
package/dist/util.js ADDED
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Utility functions: RNG, dice, sprintf, and macro functions.
3
+ * Ported from rogue's RNG (mdport.c) and various macros in rogue.h.
4
+ */
5
+ // --- RNG ---
6
+ let seed = 0;
7
+ export function setRNGSeed(newSeed) {
8
+ seed = newSeed;
9
+ }
10
+ export function getRNGSeed() {
11
+ return seed;
12
+ }
13
+ /**
14
+ * Linear congruential RNG matching the original Rogue 5.4.4.
15
+ * From extern.h: #define RN (((seed = seed*11109+13849) >> 16) & 0xffff)
16
+ * Uses 32-bit integer math with high-bit extraction for quality output.
17
+ */
18
+ export function RN() {
19
+ seed = (Math.imul(seed, 11109) + 13849) | 0;
20
+ return (seed >> 16) & 0xffff;
21
+ }
22
+ export function rnd(range) {
23
+ return range === 0 ? 0 : RN() % range;
24
+ }
25
+ export function roll(number, sides) {
26
+ let total = 0;
27
+ for (let i = 0; i < number; i++) {
28
+ total += rnd(sides) + 1;
29
+ }
30
+ return total;
31
+ }
32
+ // --- Math utilities ---
33
+ export function sign(nm) {
34
+ if (nm < 0)
35
+ return -1;
36
+ if (nm > 0)
37
+ return 1;
38
+ return 0;
39
+ }
40
+ export function spread(nm) {
41
+ return nm - Math.floor(nm / 20) + rnd(Math.floor(nm / 10));
42
+ }
43
+ // --- Macro functions from rogue.h ---
44
+ export function ce(a, b) {
45
+ return a.x === b.x && a.y === b.y;
46
+ }
47
+ export function on(thing, flag) {
48
+ const flags = thing.t_flags
49
+ ?? thing.o_flags
50
+ ?? thing.flags
51
+ ?? 0;
52
+ return (flags & flag) !== 0;
53
+ }
54
+ export function off(thing, flag) {
55
+ return !on(thing, flag);
56
+ }
57
+ export function isMonster(thing) {
58
+ return thing._kind === "monster";
59
+ }
60
+ export function isObject(thing) {
61
+ return thing._kind === "object";
62
+ }
63
+ export function CTRL(ch) {
64
+ return ch.charCodeAt(0) & 0o37;
65
+ }
66
+ // --- sprintf ---
67
+ /**
68
+ * C-style sprintf supporting: %d, %s, %c, %ld, %-Nd, %*d, %%, %x, %o
69
+ */
70
+ export function sprintf(fmt, ...args) {
71
+ let result = "";
72
+ let argIndex = 0;
73
+ let i = 0;
74
+ while (i < fmt.length) {
75
+ if (fmt[i] !== "%") {
76
+ result += fmt[i];
77
+ i++;
78
+ continue;
79
+ }
80
+ i++; // skip '%'
81
+ if (i >= fmt.length)
82
+ break;
83
+ // Handle %%
84
+ if (fmt[i] === "%") {
85
+ result += "%";
86
+ i++;
87
+ continue;
88
+ }
89
+ // Parse flags
90
+ let leftJustify = false;
91
+ let zeroPad = false;
92
+ let plusSign = false;
93
+ while (i < fmt.length) {
94
+ if (fmt[i] === "-") {
95
+ leftJustify = true;
96
+ i++;
97
+ }
98
+ else if (fmt[i] === "0") {
99
+ zeroPad = true;
100
+ i++;
101
+ }
102
+ else if (fmt[i] === "+") {
103
+ plusSign = true;
104
+ i++;
105
+ }
106
+ else {
107
+ break;
108
+ }
109
+ }
110
+ // Parse width
111
+ let width = 0;
112
+ let widthFromArg = false;
113
+ if (i < fmt.length && fmt[i] === "*") {
114
+ widthFromArg = true;
115
+ width = Number(args[argIndex++]);
116
+ i++;
117
+ }
118
+ else {
119
+ while (i < fmt.length && fmt[i] >= "0" && fmt[i] <= "9") {
120
+ width = width * 10 + (fmt.charCodeAt(i) - 48);
121
+ i++;
122
+ }
123
+ }
124
+ // Parse precision (ignored for now but consume it)
125
+ if (i < fmt.length && fmt[i] === ".") {
126
+ i++;
127
+ if (i < fmt.length && fmt[i] === "*") {
128
+ argIndex++;
129
+ i++;
130
+ }
131
+ else {
132
+ while (i < fmt.length && fmt[i] >= "0" && fmt[i] <= "9") {
133
+ i++;
134
+ }
135
+ }
136
+ }
137
+ // Skip length modifier
138
+ if (i < fmt.length && fmt[i] === "l") {
139
+ i++;
140
+ }
141
+ if (i >= fmt.length)
142
+ break;
143
+ // Format specifier
144
+ const spec = fmt[i];
145
+ i++;
146
+ let formatted = "";
147
+ switch (spec) {
148
+ case "d":
149
+ case "i": {
150
+ const numValue = Number(args[argIndex++]);
151
+ formatted = String(numValue);
152
+ if (plusSign && numValue >= 0)
153
+ formatted = "+" + formatted;
154
+ break;
155
+ }
156
+ case "s": {
157
+ formatted = String(args[argIndex++]);
158
+ break;
159
+ }
160
+ case "c": {
161
+ const charArg = args[argIndex++];
162
+ if (typeof charArg === "number") {
163
+ formatted = String.fromCharCode(charArg);
164
+ }
165
+ else {
166
+ formatted = String(charArg).charAt(0);
167
+ }
168
+ break;
169
+ }
170
+ case "x": {
171
+ formatted = (Number(args[argIndex++]) >>> 0).toString(16);
172
+ break;
173
+ }
174
+ case "o": {
175
+ formatted = (Number(args[argIndex++]) >>> 0).toString(8);
176
+ break;
177
+ }
178
+ default: {
179
+ formatted = "%" + spec;
180
+ break;
181
+ }
182
+ }
183
+ // Apply width padding
184
+ if (width > 0 && formatted.length < width) {
185
+ const padChar = zeroPad && !leftJustify ? "0" : " ";
186
+ const padding = padChar.repeat(width - formatted.length);
187
+ if (leftJustify) {
188
+ formatted = formatted + padding;
189
+ }
190
+ else {
191
+ formatted = padding + formatted;
192
+ }
193
+ }
194
+ result += formatted;
195
+ }
196
+ return result;
197
+ }
198
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Weapon functions.
3
+ * Ported from weapons.c
4
+ */
5
+ import type { GameObj } from "./types.js";
6
+ /**
7
+ * init_weapon: Set up the initial attributes of a weapon.
8
+ */
9
+ export declare function init_weapon(weap: GameObj, which: number): void;
10
+ /**
11
+ * num: Format a weapon's +hit/+dam string.
12
+ */
13
+ export declare function num(n1: number, n2: number, type: number): string;
14
+ /**
15
+ * wield: The wield command — equip a weapon.
16
+ */
17
+ export declare function wield(): Promise<void>;
18
+ /**
19
+ * missile: The throw command — hurl an object in a direction.
20
+ */
21
+ export declare function missile(): Promise<void>;
22
+ //# sourceMappingURL=weapons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weapons.d.ts","sourceRoot":"","sources":["../src/weapons.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAgB,OAAO,EAAE,MAAM,YAAY,CAAC;AA0CxD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAmB9D;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOhE;AAED;;GAEG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA4B3C;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA0B7C"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Weapon functions.
3
+ * Ported from weapons.c
4
+ */
5
+ import { state, WEAPON, BOW, ISMISL, ISMANY, ISCURSED, NUMLINES, NUMCOLS, FLOOR, PASSAGE, DOOR, weap_info, setCh, moat, chat, F_DROPPED, flat, setFlat, } from "./globals.js";
6
+ import { msg, getBackend } from "./io.js";
7
+ import { _attach } from "./list.js";
8
+ import { inv_name } from "./things.js";
9
+ import { get_item, leave_pack, dropcheck, fallpos } from "./pack.js";
10
+ import { step_ok } from "./io.js";
11
+ import { get_dir } from "./misc.js";
12
+ const NO_WEAPON = -1;
13
+ const init_dam = [
14
+ { iw_dam: "2x4", iw_hrl: "1x3", iw_launch: NO_WEAPON, iw_flags: 0 }, // Mace
15
+ { iw_dam: "3x4", iw_hrl: "1x2", iw_launch: NO_WEAPON, iw_flags: 0 }, // Long sword
16
+ { iw_dam: "1x1", iw_hrl: "1x1", iw_launch: NO_WEAPON, iw_flags: 0 }, // Bow
17
+ { iw_dam: "1x1", iw_hrl: "2x3", iw_launch: BOW, iw_flags: ISMANY | ISMISL }, // Arrow
18
+ { iw_dam: "1x6", iw_hrl: "1x4", iw_launch: NO_WEAPON, iw_flags: ISMISL }, // Dagger
19
+ { iw_dam: "4x4", iw_hrl: "1x2", iw_launch: NO_WEAPON, iw_flags: 0 }, // 2h sword
20
+ { iw_dam: "1x1", iw_hrl: "1x3", iw_launch: NO_WEAPON, iw_flags: ISMANY | ISMISL }, // Dart
21
+ { iw_dam: "1x2", iw_hrl: "2x4", iw_launch: NO_WEAPON, iw_flags: ISMANY | ISMISL }, // Shuriken
22
+ { iw_dam: "2x3", iw_hrl: "1x6", iw_launch: NO_WEAPON, iw_flags: ISMISL }, // Spear
23
+ ];
24
+ let group = 2;
25
+ /**
26
+ * init_weapon: Set up the initial attributes of a weapon.
27
+ */
28
+ export function init_weapon(weap, which) {
29
+ const iwp = init_dam[which];
30
+ weap.o_type = WEAPON.charCodeAt(0);
31
+ weap.o_which = which;
32
+ weap.o_damage = iwp.iw_dam;
33
+ weap.o_hurldmg = iwp.iw_hrl;
34
+ weap.o_launch = iwp.iw_launch;
35
+ weap.o_flags = iwp.iw_flags;
36
+ if (weap.o_flags & ISMANY) {
37
+ weap.o_count = 8;
38
+ weap.o_group = group++;
39
+ }
40
+ else {
41
+ weap.o_count = 1;
42
+ }
43
+ weap.o_hplus = 0;
44
+ weap.o_dplus = 0;
45
+ }
46
+ /**
47
+ * num: Format a weapon's +hit/+dam string.
48
+ */
49
+ export function num(n1, n2, type) {
50
+ if (type === WEAPON.charCodeAt(0)) {
51
+ return `${n1 >= 0 ? "+" : ""}${n1},${n2 >= 0 ? "+" : ""}${n2}`;
52
+ }
53
+ else {
54
+ // Armor: just +n
55
+ return `${n1 >= 0 ? "+" : ""}${n1}`;
56
+ }
57
+ }
58
+ /**
59
+ * wield: The wield command — equip a weapon.
60
+ */
61
+ export async function wield() {
62
+ if (state.cur_weapon !== null && state.cur_weapon._kind === "object") {
63
+ if (state.cur_weapon.o_flags & ISCURSED) {
64
+ await msg("you can't. It appears to be cursed");
65
+ return;
66
+ }
67
+ }
68
+ const obj = await get_item("wield", 0);
69
+ if (obj === null)
70
+ return;
71
+ if (obj.o_type === 0x5d) { // ARMOR type
72
+ await msg("you can't wield armor");
73
+ return;
74
+ }
75
+ if (state.cur_weapon !== null && state.cur_weapon._kind === "object") {
76
+ state.cur_weapon.o_flags &= ~(0); // no flag change needed, just unequip
77
+ }
78
+ state.cur_weapon = obj;
79
+ const weapName = weap_info[obj.o_which]?.oi_name || "weapon";
80
+ if (!state.terse) {
81
+ await msg("you are now wielding %s (%s)", inv_name(obj, false), obj.o_packch);
82
+ }
83
+ else {
84
+ await msg("wielding %s (%s)", inv_name(obj, false), obj.o_packch);
85
+ }
86
+ }
87
+ /**
88
+ * missile: The throw command — hurl an object in a direction.
89
+ */
90
+ export async function missile() {
91
+ if (!await get_dir())
92
+ return;
93
+ const obj = await get_item("throw", WEAPON.charCodeAt(0));
94
+ if (obj === null)
95
+ return;
96
+ if (!await dropcheck(obj))
97
+ return;
98
+ const thrownObj = leave_pack(obj, true, false);
99
+ do_motion(thrownObj, state.delta.y, state.delta.x);
100
+ // Check if we hit a monster at the final position
101
+ const mp = moat(thrownObj.o_pos.y, thrownObj.o_pos.x);
102
+ if (mp !== null && mp._kind === "monster") {
103
+ const { fight } = await import("./fight.js");
104
+ if (await fight({ y: thrownObj.o_pos.y, x: thrownObj.o_pos.x }, thrownObj, true)) {
105
+ // Hit! If the monster died, the item may still need to be placed
106
+ if (moat(thrownObj.o_pos.y, thrownObj.o_pos.x) === null) {
107
+ // Monster died — try to place item there
108
+ await fall(thrownObj, true);
109
+ }
110
+ return;
111
+ }
112
+ }
113
+ await fall(thrownObj, true);
114
+ }
115
+ /**
116
+ * do_motion: Animate a thrown object moving across the screen.
117
+ */
118
+ function do_motion(obj, dy, dx) {
119
+ const backend = getBackend();
120
+ obj.o_pos.y = state.player.t_pos.y;
121
+ obj.o_pos.x = state.player.t_pos.x;
122
+ for (;;) {
123
+ const newY = obj.o_pos.y + dy;
124
+ const newX = obj.o_pos.x + dx;
125
+ // Check bounds
126
+ if (newY <= 0 || newY >= NUMLINES - 1 || newX < 0 || newX >= NUMCOLS)
127
+ break;
128
+ const ch = winatForMissile(newY, newX);
129
+ // Stop on walls and monsters
130
+ if (!step_ok(ch) && ch !== PASSAGE)
131
+ break;
132
+ if (ch >= "A" && ch <= "Z") {
133
+ obj.o_pos.y = newY;
134
+ obj.o_pos.x = newX;
135
+ break;
136
+ }
137
+ obj.o_pos.y = newY;
138
+ obj.o_pos.x = newX;
139
+ // Check for monster
140
+ if (moat(newY, newX) !== null)
141
+ break;
142
+ // C original: missiles stop at doors
143
+ if (ch === DOOR)
144
+ break;
145
+ }
146
+ }
147
+ /**
148
+ * winatForMissile: Get what's at a position for missile checking.
149
+ */
150
+ function winatForMissile(y, x) {
151
+ const monster = moat(y, x);
152
+ if (monster !== null && monster._kind === "monster") {
153
+ return monster.t_disguise;
154
+ }
155
+ return chat(y, x);
156
+ }
157
+ /**
158
+ * fall: An item falls to the ground after being thrown.
159
+ * Tries to place it at the landing position or nearby.
160
+ */
161
+ async function fall(obj, pr) {
162
+ const backend = getBackend();
163
+ const landPos = { y: obj.o_pos.y, x: obj.o_pos.x };
164
+ const newPos = { y: 0, x: 0 };
165
+ const ch = chat(landPos.y, landPos.x);
166
+ if (ch !== FLOOR && ch !== PASSAGE) {
167
+ // Try to find an adjacent spot
168
+ if (!fallpos(landPos, newPos)) {
169
+ if (pr) {
170
+ await msg("the %s vanishes as it hits the ground", weap_info[obj.o_which]?.oi_name || "missile");
171
+ }
172
+ return;
173
+ }
174
+ obj.o_pos.y = newPos.y;
175
+ obj.o_pos.x = newPos.x;
176
+ }
177
+ // Place on the floor
178
+ const typeCh = String.fromCharCode(obj.o_type);
179
+ setCh(obj.o_pos.y, obj.o_pos.x, typeCh);
180
+ setFlat(obj.o_pos.y, obj.o_pos.x, flat(obj.o_pos.y, obj.o_pos.x) | F_DROPPED);
181
+ const listHead = { head: state.lvl_obj };
182
+ _attach(listHead, obj);
183
+ state.lvl_obj = listHead.head;
184
+ }
185
+ //# sourceMappingURL=weapons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weapons.js","sourceRoot":"","sources":["../src/weapons.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@ticktockbent/rogue-ts",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "README.md",
10
+ "LICENSE"
11
+ ],
12
+ "exports": {
13
+ ".": {
14
+ "import": "./dist/index.js",
15
+ "types": "./dist/index.d.ts"
16
+ }
17
+ },
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "typecheck": "tsc --noEmit"
21
+ },
22
+ "license": "MIT",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/TickTockBent/rogue-ts.git"
26
+ },
27
+ "devDependencies": {
28
+ "tsx": "^4.21.0",
29
+ "typescript": "^5.9.3"
30
+ }
31
+ }