@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
@@ -0,0 +1,305 @@
1
+ /**
2
+ * Scroll functions.
3
+ * Ported from scrolls.c
4
+ */
5
+ import { state, SCROLL, scr_info, S_CONFUSE, S_MAP, S_HOLD, S_SLEEP, S_ARMOR, S_ID_POTION, S_ID_SCROLL, S_ID_WEAPON, S_ID_ARMOR, S_ID_R_OR_S, S_SCARE, S_FDET, S_TELEP, S_ENCH, S_CREATE, S_REMOVE, S_AGGR, S_PROTECT, POTION, WEAPON, ARMOR, FOOD, NUMLINES, NUMCOLS, CANHUH, ISHELD, ISRUN, ISKNOW, ISCURSED, ISPROT, FLOOR, PASSAGE, DOOR, TRAP, R_OR_S, INDEX, chat, moat, F_REAL, F_PASS, pot_info, weap_info, ring_info, ws_info, } from "./globals.js";
6
+ import { rnd } from "./util.js";
7
+ import { msg, getBackend, status } from "./io.js";
8
+ import { get_item } from "./pack.js";
9
+ import { inv_name } from "./things.js";
10
+ import { new_monster_thing } from "./list.js";
11
+ import { new_monster, randmonster } from "./monsters.js";
12
+ import { find_floor, roomin } from "./rooms.js";
13
+ /**
14
+ * read_scroll: Read a scroll.
15
+ */
16
+ export async function read_scroll() {
17
+ const obj = await get_item("read", SCROLL.charCodeAt(0));
18
+ if (obj === null)
19
+ return;
20
+ if (obj.o_type !== SCROLL.charCodeAt(0)) {
21
+ await msg("there is nothing on it to read");
22
+ return;
23
+ }
24
+ // Identify the scroll since we're reading it
25
+ const which = obj.o_which;
26
+ switch (which) {
27
+ case S_CONFUSE:
28
+ // Next hit confuses monster
29
+ state.player.t_flags |= CANHUH;
30
+ await msg("your hands begin to glow %s", state.player.t_flags & CANHUH ? "red" : "blue");
31
+ break;
32
+ case S_MAP:
33
+ // Magic mapping — reveal the whole level
34
+ scr_info[S_MAP].oi_know = true;
35
+ {
36
+ const backend = getBackend();
37
+ // Reveal all places on the map
38
+ for (let y = 1; y < NUMLINES - 1; y++) {
39
+ for (let x = 0; x < NUMCOLS; x++) {
40
+ const pp = INDEX(y, x);
41
+ // Reveal secret doors and hidden traps
42
+ if (!(pp.p_flags & F_REAL)) {
43
+ pp.p_flags |= F_REAL;
44
+ if (pp.p_flags & F_PASS) {
45
+ pp.p_ch = PASSAGE;
46
+ }
47
+ else {
48
+ pp.p_ch = DOOR;
49
+ }
50
+ }
51
+ // Reveal traps
52
+ if (pp.p_ch === FLOOR && !(pp.p_flags & F_REAL)) {
53
+ pp.p_ch = TRAP;
54
+ pp.p_flags |= F_REAL;
55
+ }
56
+ // Show everything except space
57
+ const ch = pp.p_ch;
58
+ if (ch !== " ") {
59
+ backend.mvaddch(y, x, ch.charCodeAt(0));
60
+ }
61
+ }
62
+ }
63
+ }
64
+ await msg("oh, now this scroll has a map on it");
65
+ break;
66
+ case S_HOLD:
67
+ // Hold monsters — freeze only monsters in the same room
68
+ {
69
+ const playerRoom = state.player.t_room;
70
+ let monsterItem = state.mlist;
71
+ let held = false;
72
+ while (monsterItem !== null) {
73
+ if (monsterItem._kind === "monster") {
74
+ // Only affect monsters in the same room
75
+ if (playerRoom !== null && monsterItem.t_room === playerRoom) {
76
+ monsterItem.t_flags &= ~ISRUN;
77
+ monsterItem.t_flags |= ISHELD;
78
+ held = true;
79
+ }
80
+ }
81
+ monsterItem = monsterItem.l_next;
82
+ }
83
+ if (!held) {
84
+ await msg("you feel a strange sense of loss");
85
+ }
86
+ }
87
+ break;
88
+ case S_SLEEP:
89
+ scr_info[S_SLEEP].oi_know = true;
90
+ state.no_command += rnd(5) + 4;
91
+ await msg("you fall asleep");
92
+ break;
93
+ case S_ARMOR:
94
+ // Enchant armor
95
+ if (state.cur_armor !== null && state.cur_armor._kind === "object") {
96
+ state.cur_armor.o_arm--;
97
+ state.cur_armor.o_flags &= ~ISCURSED;
98
+ await msg("your armor glows faintly for a moment");
99
+ }
100
+ else {
101
+ await msg("you feel a strange sense of loss");
102
+ }
103
+ break;
104
+ case S_ID_POTION:
105
+ scr_info[S_ID_POTION].oi_know = true;
106
+ await identify_item("potion", POTION.charCodeAt(0));
107
+ break;
108
+ case S_ID_SCROLL:
109
+ scr_info[S_ID_SCROLL].oi_know = true;
110
+ await identify_item("scroll", SCROLL.charCodeAt(0));
111
+ break;
112
+ case S_ID_WEAPON:
113
+ scr_info[S_ID_WEAPON].oi_know = true;
114
+ await identify_item("weapon", WEAPON.charCodeAt(0));
115
+ break;
116
+ case S_ID_ARMOR:
117
+ scr_info[S_ID_ARMOR].oi_know = true;
118
+ await identify_item("armor", ARMOR.charCodeAt(0));
119
+ break;
120
+ case S_ID_R_OR_S:
121
+ scr_info[S_ID_R_OR_S].oi_know = true;
122
+ await identify_item("ring, wand, or staff", R_OR_S);
123
+ break;
124
+ case S_SCARE:
125
+ // Scare monster — the scroll scares monsters if on the ground
126
+ await msg("you hear maniacal laughter in the distance");
127
+ break;
128
+ case S_FDET:
129
+ // Food detection
130
+ {
131
+ let found = false;
132
+ let itemObj = state.lvl_obj;
133
+ const backend = getBackend();
134
+ while (itemObj !== null) {
135
+ if (itemObj._kind === "object" &&
136
+ itemObj.o_type === FOOD.charCodeAt(0)) {
137
+ backend.mvaddch(itemObj.o_pos.y, itemObj.o_pos.x, FOOD.charCodeAt(0));
138
+ found = true;
139
+ }
140
+ itemObj = itemObj.l_next;
141
+ }
142
+ if (found) {
143
+ await msg("you sense the presence of food");
144
+ }
145
+ else {
146
+ await msg("you have a strange feeling for a moment, then it passes");
147
+ }
148
+ }
149
+ break;
150
+ case S_TELEP:
151
+ // Teleport
152
+ {
153
+ const heroPos = state.player.t_pos;
154
+ const newPos = { y: 0, x: 0 };
155
+ const oldRoom = state.player.t_room;
156
+ find_floor(null, newPos, false, true);
157
+ const backend = getBackend();
158
+ // Erase hero from old position
159
+ const { floor_at } = await import("./misc.js");
160
+ backend.mvaddch(heroPos.y, heroPos.x, floor_at().charCodeAt(0));
161
+ heroPos.y = newPos.y;
162
+ heroPos.x = newPos.x;
163
+ state.player.t_room = roomin(heroPos);
164
+ const { enter_room } = await import("./rooms.js");
165
+ if (state.player.t_room !== oldRoom) {
166
+ enter_room(heroPos);
167
+ }
168
+ await msg("you find yourself in unfamiliar surroundings");
169
+ }
170
+ break;
171
+ case S_ENCH:
172
+ // Enchant weapon
173
+ if (state.cur_weapon !== null && state.cur_weapon._kind === "object") {
174
+ state.cur_weapon.o_flags &= ~ISCURSED;
175
+ if (rnd(2) === 0) {
176
+ state.cur_weapon.o_hplus++;
177
+ }
178
+ else {
179
+ state.cur_weapon.o_dplus++;
180
+ }
181
+ await msg("your %s glows %s for a moment", weap_info[state.cur_weapon.o_which]?.oi_name || "weapon", rnd(2) === 0 ? "blue" : "gold");
182
+ }
183
+ else {
184
+ await msg("you feel a strange sense of loss");
185
+ }
186
+ break;
187
+ case S_CREATE:
188
+ // Create monster
189
+ {
190
+ const heroPos = state.player.t_pos;
191
+ let placed = false;
192
+ for (let dy = -1; dy <= 1 && !placed; dy++) {
193
+ for (let dx = -1; dx <= 1 && !placed; dx++) {
194
+ if (dy === 0 && dx === 0)
195
+ continue;
196
+ const ny = heroPos.y + dy;
197
+ const nx = heroPos.x + dx;
198
+ if (ny <= 0 || ny >= NUMLINES - 1 || nx < 0 || nx >= NUMCOLS)
199
+ continue;
200
+ const ch = chat(ny, nx);
201
+ if ((ch === FLOOR || ch === PASSAGE) && moat(ny, nx) === null) {
202
+ const monsterThing = new_monster_thing();
203
+ new_monster(monsterThing, randmonster(false), { y: ny, x: nx });
204
+ placed = true;
205
+ }
206
+ }
207
+ }
208
+ if (!placed) {
209
+ await msg("you hear a faint cry of anguish in the distance");
210
+ }
211
+ }
212
+ break;
213
+ case S_REMOVE:
214
+ // Remove curse
215
+ if (state.cur_armor !== null && state.cur_armor._kind === "object") {
216
+ state.cur_armor.o_flags &= ~ISCURSED;
217
+ }
218
+ if (state.cur_weapon !== null && state.cur_weapon._kind === "object") {
219
+ state.cur_weapon.o_flags &= ~ISCURSED;
220
+ }
221
+ if (state.cur_ring[0] !== null && state.cur_ring[0]._kind === "object") {
222
+ state.cur_ring[0].o_flags &= ~ISCURSED;
223
+ }
224
+ if (state.cur_ring[1] !== null && state.cur_ring[1]._kind === "object") {
225
+ state.cur_ring[1].o_flags &= ~ISCURSED;
226
+ }
227
+ await msg("you feel as if somebody is watching over you");
228
+ break;
229
+ case S_AGGR:
230
+ // Aggravate monsters
231
+ scr_info[S_AGGR].oi_know = true;
232
+ aggravate();
233
+ await msg("you hear a high pitched humming noise");
234
+ break;
235
+ case S_PROTECT:
236
+ // Protect armor
237
+ if (state.cur_armor !== null && state.cur_armor._kind === "object") {
238
+ state.cur_armor.o_flags |= ISPROT;
239
+ await msg("your armor is bathed in a shimmering gold aura");
240
+ }
241
+ else {
242
+ await msg("you feel a strange sense of loss");
243
+ }
244
+ break;
245
+ }
246
+ // Consume the scroll
247
+ obj.o_count--;
248
+ if (obj.o_count < 1) {
249
+ const { _detach, discard } = await import("./list.js");
250
+ const packIdx = obj.o_packch.charCodeAt(0) - "a".charCodeAt(0);
251
+ if (packIdx >= 0 && packIdx < 26) {
252
+ state.pack_used[packIdx] = false;
253
+ }
254
+ const packHead = { head: state.player.t_pack };
255
+ _detach(packHead, obj);
256
+ state.player.t_pack = packHead.head;
257
+ discard(obj);
258
+ state.inpack--;
259
+ }
260
+ await status();
261
+ }
262
+ /**
263
+ * identify_item: Let the player identify an item from their pack.
264
+ */
265
+ async function identify_item(purpose, type) {
266
+ await msg("this scroll is an identify scroll");
267
+ const obj = await get_item("identify", type);
268
+ if (obj === null)
269
+ return;
270
+ obj.o_flags |= ISKNOW;
271
+ // Reveal the item's true nature based on type
272
+ switch (String.fromCharCode(obj.o_type)) {
273
+ case "!": // POTION
274
+ pot_info[obj.o_which].oi_know = true;
275
+ break;
276
+ case "?": // SCROLL
277
+ scr_info[obj.o_which].oi_know = true;
278
+ break;
279
+ case ")": // WEAPON
280
+ break; // ISKNOW flag is enough
281
+ case "]": // ARMOR
282
+ break; // ISKNOW flag is enough
283
+ case "=": // RING
284
+ ring_info[obj.o_which].oi_know = true;
285
+ break;
286
+ case "/": // STICK
287
+ ws_info[obj.o_which].oi_know = true;
288
+ break;
289
+ }
290
+ await msg("%s (%s)", inv_name(obj, false), obj.o_packch);
291
+ }
292
+ /**
293
+ * aggravate: Aggravate all the monsters on this level.
294
+ */
295
+ export function aggravate() {
296
+ let monsterItem = state.mlist;
297
+ while (monsterItem !== null) {
298
+ if (monsterItem._kind === "monster") {
299
+ monsterItem.t_flags |= ISRUN;
300
+ monsterItem.t_dest = state.player.t_pos;
301
+ }
302
+ monsterItem = monsterItem.l_next;
303
+ }
304
+ }
305
+ //# sourceMappingURL=scrolls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrolls.js","sourceRoot":"","sources":["../src/scrolls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Wand/Staff functions.
3
+ * Ported from sticks.c
4
+ */
5
+ /**
6
+ * do_zap: Zap a wand/staff in a direction.
7
+ */
8
+ export declare function do_zap(): Promise<void>;
9
+ //# sourceMappingURL=sticks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sticks.d.ts","sourceRoot":"","sources":["../src/sticks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0BH;;GAEG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAyM5C"}