@fnndsc/brasa 0.43.0 → 0.43.1

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 (171) hide show
  1. package/dist/buildinfo.json +1 -1
  2. package/dist/builtins/games/trek.d.ts +8 -0
  3. package/dist/builtins/games/trek.js +50 -0
  4. package/dist/builtins/games/trek.js.map +1 -0
  5. package/dist/core/coreCommands.js +1 -1
  6. package/dist/core/coreCommands.js.map +1 -1
  7. package/dist/notes.json +1 -1
  8. package/package.json +3 -3
  9. package/NOTICE +0 -48
  10. package/dist/builtins/games/trek/abandon.d.ts +0 -3
  11. package/dist/builtins/games/trek/abandon.js +0 -159
  12. package/dist/builtins/games/trek/abandon.js.map +0 -1
  13. package/dist/builtins/games/trek/attack.d.ts +0 -3
  14. package/dist/builtins/games/trek/attack.js +0 -185
  15. package/dist/builtins/games/trek/attack.js.map +0 -1
  16. package/dist/builtins/games/trek/autover.d.ts +0 -3
  17. package/dist/builtins/games/trek/autover.js +0 -79
  18. package/dist/builtins/games/trek/autover.js.map +0 -1
  19. package/dist/builtins/games/trek/capture.d.ts +0 -3
  20. package/dist/builtins/games/trek/capture.js +0 -117
  21. package/dist/builtins/games/trek/capture.js.map +0 -1
  22. package/dist/builtins/games/trek/check_out.d.ts +0 -3
  23. package/dist/builtins/games/trek/check_out.js +0 -67
  24. package/dist/builtins/games/trek/check_out.js.map +0 -1
  25. package/dist/builtins/games/trek/checkcond.d.ts +0 -3
  26. package/dist/builtins/games/trek/checkcond.js +0 -101
  27. package/dist/builtins/games/trek/checkcond.js.map +0 -1
  28. package/dist/builtins/games/trek/compkl.d.ts +0 -8
  29. package/dist/builtins/games/trek/compkl.js +0 -66
  30. package/dist/builtins/games/trek/compkl.js.map +0 -1
  31. package/dist/builtins/games/trek/computer.d.ts +0 -3
  32. package/dist/builtins/games/trek/computer.js +0 -310
  33. package/dist/builtins/games/trek/computer.js.map +0 -1
  34. package/dist/builtins/games/trek/consts.d.ts +0 -109
  35. package/dist/builtins/games/trek/consts.js +0 -159
  36. package/dist/builtins/games/trek/consts.js.map +0 -1
  37. package/dist/builtins/games/trek/context.d.ts +0 -27
  38. package/dist/builtins/games/trek/context.js +0 -2
  39. package/dist/builtins/games/trek/context.js.map +0 -1
  40. package/dist/builtins/games/trek/damage.d.ts +0 -3
  41. package/dist/builtins/games/trek/damage.js +0 -87
  42. package/dist/builtins/games/trek/damage.js.map +0 -1
  43. package/dist/builtins/games/trek/damaged.d.ts +0 -3
  44. package/dist/builtins/games/trek/damaged.js +0 -58
  45. package/dist/builtins/games/trek/damaged.js.map +0 -1
  46. package/dist/builtins/games/trek/dcrept.d.ts +0 -3
  47. package/dist/builtins/games/trek/dcrept.js +0 -86
  48. package/dist/builtins/games/trek/dcrept.js.map +0 -1
  49. package/dist/builtins/games/trek/destruct.d.ts +0 -3
  50. package/dist/builtins/games/trek/destruct.js +0 -114
  51. package/dist/builtins/games/trek/destruct.js.map +0 -1
  52. package/dist/builtins/games/trek/dock.d.ts +0 -5
  53. package/dist/builtins/games/trek/dock.js +0 -133
  54. package/dist/builtins/games/trek/dock.js.map +0 -1
  55. package/dist/builtins/games/trek/dumpgame.d.ts +0 -15
  56. package/dist/builtins/games/trek/dumpgame.js +0 -29
  57. package/dist/builtins/games/trek/dumpgame.js.map +0 -1
  58. package/dist/builtins/games/trek/dumpme.d.ts +0 -3
  59. package/dist/builtins/games/trek/dumpme.js +0 -81
  60. package/dist/builtins/games/trek/dumpme.js.map +0 -1
  61. package/dist/builtins/games/trek/dumpssradio.d.ts +0 -6
  62. package/dist/builtins/games/trek/dumpssradio.js +0 -72
  63. package/dist/builtins/games/trek/dumpssradio.js.map +0 -1
  64. package/dist/builtins/games/trek/events.d.ts +0 -3
  65. package/dist/builtins/games/trek/events.js +0 -407
  66. package/dist/builtins/games/trek/events.js.map +0 -1
  67. package/dist/builtins/games/trek/getcodi.d.ts +0 -14
  68. package/dist/builtins/games/trek/getcodi.js +0 -24
  69. package/dist/builtins/games/trek/getcodi.js.map +0 -1
  70. package/dist/builtins/games/trek/getpar.d.ts +0 -40
  71. package/dist/builtins/games/trek/getpar.js +0 -174
  72. package/dist/builtins/games/trek/getpar.js.map +0 -1
  73. package/dist/builtins/games/trek/help.d.ts +0 -3
  74. package/dist/builtins/games/trek/help.js +0 -155
  75. package/dist/builtins/games/trek/help.js.map +0 -1
  76. package/dist/builtins/games/trek/impulse.d.ts +0 -6
  77. package/dist/builtins/games/trek/impulse.js +0 -85
  78. package/dist/builtins/games/trek/impulse.js.map +0 -1
  79. package/dist/builtins/games/trek/initquad.d.ts +0 -17
  80. package/dist/builtins/games/trek/initquad.js +0 -79
  81. package/dist/builtins/games/trek/initquad.js.map +0 -1
  82. package/dist/builtins/games/trek/io.d.ts +0 -102
  83. package/dist/builtins/games/trek/io.js +0 -216
  84. package/dist/builtins/games/trek/io.js.map +0 -1
  85. package/dist/builtins/games/trek/kill.d.ts +0 -21
  86. package/dist/builtins/games/trek/kill.js +0 -194
  87. package/dist/builtins/games/trek/kill.js.map +0 -1
  88. package/dist/builtins/games/trek/klmove.d.ts +0 -3
  89. package/dist/builtins/games/trek/klmove.js +0 -181
  90. package/dist/builtins/games/trek/klmove.js.map +0 -1
  91. package/dist/builtins/games/trek/lose.d.ts +0 -9
  92. package/dist/builtins/games/trek/lose.js +0 -36
  93. package/dist/builtins/games/trek/lose.js.map +0 -1
  94. package/dist/builtins/games/trek/lrscan.d.ts +0 -3
  95. package/dist/builtins/games/trek/lrscan.js +0 -96
  96. package/dist/builtins/games/trek/lrscan.js.map +0 -1
  97. package/dist/builtins/games/trek/main.d.ts +0 -24
  98. package/dist/builtins/games/trek/main.js +0 -37
  99. package/dist/builtins/games/trek/main.js.map +0 -1
  100. package/dist/builtins/games/trek/move.d.ts +0 -3
  101. package/dist/builtins/games/trek/move.js +0 -229
  102. package/dist/builtins/games/trek/move.js.map +0 -1
  103. package/dist/builtins/games/trek/nova.d.ts +0 -3
  104. package/dist/builtins/games/trek/nova.js +0 -135
  105. package/dist/builtins/games/trek/nova.js.map +0 -1
  106. package/dist/builtins/games/trek/out.d.ts +0 -3
  107. package/dist/builtins/games/trek/out.js +0 -52
  108. package/dist/builtins/games/trek/out.js.map +0 -1
  109. package/dist/builtins/games/trek/phaser.d.ts +0 -3
  110. package/dist/builtins/games/trek/phaser.js +0 -341
  111. package/dist/builtins/games/trek/phaser.js.map +0 -1
  112. package/dist/builtins/games/trek/play.d.ts +0 -3
  113. package/dist/builtins/games/trek/play.js +0 -112
  114. package/dist/builtins/games/trek/play.js.map +0 -1
  115. package/dist/builtins/games/trek/printf.d.ts +0 -31
  116. package/dist/builtins/games/trek/printf.js +0 -157
  117. package/dist/builtins/games/trek/printf.js.map +0 -1
  118. package/dist/builtins/games/trek/ram.d.ts +0 -3
  119. package/dist/builtins/games/trek/ram.js +0 -97
  120. package/dist/builtins/games/trek/ram.js.map +0 -1
  121. package/dist/builtins/games/trek/rand.d.ts +0 -29
  122. package/dist/builtins/games/trek/rand.js +0 -109
  123. package/dist/builtins/games/trek/rand.js.map +0 -1
  124. package/dist/builtins/games/trek/rest.d.ts +0 -3
  125. package/dist/builtins/games/trek/rest.js +0 -76
  126. package/dist/builtins/games/trek/rest.js.map +0 -1
  127. package/dist/builtins/games/trek/schedule.d.ts +0 -23
  128. package/dist/builtins/games/trek/schedule.js +0 -55
  129. package/dist/builtins/games/trek/schedule.js.map +0 -1
  130. package/dist/builtins/games/trek/score.d.ts +0 -8
  131. package/dist/builtins/games/trek/score.js +0 -61
  132. package/dist/builtins/games/trek/score.js.map +0 -1
  133. package/dist/builtins/games/trek/setup.d.ts +0 -18
  134. package/dist/builtins/games/trek/setup.js +0 -251
  135. package/dist/builtins/games/trek/setup.js.map +0 -1
  136. package/dist/builtins/games/trek/setwarp.d.ts +0 -8
  137. package/dist/builtins/games/trek/setwarp.js +0 -28
  138. package/dist/builtins/games/trek/setwarp.js.map +0 -1
  139. package/dist/builtins/games/trek/shield.d.ts +0 -3
  140. package/dist/builtins/games/trek/shield.js +0 -139
  141. package/dist/builtins/games/trek/shield.js.map +0 -1
  142. package/dist/builtins/games/trek/snova.d.ts +0 -3
  143. package/dist/builtins/games/trek/snova.js +0 -156
  144. package/dist/builtins/games/trek/snova.js.map +0 -1
  145. package/dist/builtins/games/trek/srscan.d.ts +0 -3
  146. package/dist/builtins/games/trek/srscan.js +0 -176
  147. package/dist/builtins/games/trek/srscan.js.map +0 -1
  148. package/dist/builtins/games/trek/state.d.ts +0 -190
  149. package/dist/builtins/games/trek/state.js +0 -84
  150. package/dist/builtins/games/trek/state.js.map +0 -1
  151. package/dist/builtins/games/trek/style.d.ts +0 -7
  152. package/dist/builtins/games/trek/style.js +0 -93
  153. package/dist/builtins/games/trek/style.js.map +0 -1
  154. package/dist/builtins/games/trek/systemname.d.ts +0 -10
  155. package/dist/builtins/games/trek/systemname.js +0 -12
  156. package/dist/builtins/games/trek/systemname.js.map +0 -1
  157. package/dist/builtins/games/trek/torped.d.ts +0 -3
  158. package/dist/builtins/games/trek/torped.js +0 -232
  159. package/dist/builtins/games/trek/torped.js.map +0 -1
  160. package/dist/builtins/games/trek/trek.d.ts +0 -27
  161. package/dist/builtins/games/trek/trek.js +0 -96
  162. package/dist/builtins/games/trek/trek.js.map +0 -1
  163. package/dist/builtins/games/trek/visual.d.ts +0 -3
  164. package/dist/builtins/games/trek/visual.js +0 -87
  165. package/dist/builtins/games/trek/visual.js.map +0 -1
  166. package/dist/builtins/games/trek/warp.d.ts +0 -5
  167. package/dist/builtins/games/trek/warp.js +0 -173
  168. package/dist/builtins/games/trek/warp.js.map +0 -1
  169. package/dist/builtins/games/trek/win.d.ts +0 -12
  170. package/dist/builtins/games/trek/win.js +0 -34
  171. package/dist/builtins/games/trek/win.js.map +0 -1
@@ -1,407 +0,0 @@
1
- /*
2
- * events.ts: a TypeScript port of BSD trek(6), from events.c.
3
- * Ported from NetBSD src/games/trek (trunk 7a9ca154a8f6144307865f23390a3c63b400b801): events.c 1.11 2009/05/24.
4
- *
5
- * Copyright (c) 1980, 1993
6
- * The Regents of the University of California. All rights reserved.
7
- *
8
- * Redistribution and use in source and binary forms, with or without
9
- * modification, are permitted provided that the following conditions
10
- * are met:
11
- * 1. Redistributions of source code must retain the above copyright
12
- * notice, this list of conditions and the following disclaimer.
13
- * 2. Redistributions in binary form must reproduce the above copyright
14
- * notice, this list of conditions and the following disclaimer in the
15
- * documentation and/or other materials provided with the distribution.
16
- * 3. Neither the name of the University nor the names of its contributors
17
- * may be used to endorse or promote products derived from this software
18
- * without specific prior written permission.
19
- *
20
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30
- * SUCH DAMAGE.
31
- *
32
- */
33
- /**
34
- * @file Causing time to elapse: energy eaten and regenerated, and every
35
- * event that falls due processed in date order: supernovas, tractor beams,
36
- * attacks on starbases, distress calls, enslavement, Klingon
37
- * reproduction, galaxy snapshots, attacks during a rest, and repairs.
38
- *
39
- * Deviation: the snapshot is a copy of the state (state.ts), not a block
40
- * of bytes.
41
- *
42
- * @module
43
- */
44
- import { attack } from './attack.js';
45
- import { compkldist } from './compkl.js';
46
- import { Device, DOCKED, E_ATTACK, E_ENSLV, E_EVENT, E_FIXDV, E_GHOST, E_HIDDEN, E_ISSUE, E_KATSB, E_KDESB, E_LRTB, E_REPRO, E_SNAP, E_SNOVA, KLINGON, L_NOTIME, LIFESUP, MAXDISTR, MAXEVENTS, MAXKLQUAD, NQUADS, NSECTS, Q_DISTRESSED, Q_SYSTEM, SINS, SSRADIO, Systemname, } from './consts.js';
47
- import { damaged } from './damaged.js';
48
- import { dumpssradio } from './dumpssradio.js';
49
- import { getynpar } from './getpar.js';
50
- import { initquad, sector } from './initquad.js';
51
- import { killb } from './kill.js';
52
- import { lose } from './lose.js';
53
- import { franf, ranf } from './rand.js';
54
- import { reschedule, schedule, unschedule, xresched, xsched } from './schedule.js';
55
- import { snova } from './snova.js';
56
- import { snapshot_take } from './state.js';
57
- /** CAUSE TIME TO ELAPSE: 'timewarp' is set if called in a time warp. */
58
- export async function events(t, timewarp) {
59
- const s = t.s;
60
- const { Move, Now, Ship, Param, Etc, Game } = s;
61
- const quad = (x, y) => s.Quad[x][y];
62
- const event = (n) => s.Event[n];
63
- let i;
64
- let j = 0;
65
- let rtime;
66
- let xdate;
67
- let ev = -1;
68
- let ix = 0;
69
- let iy = 0;
70
- let q;
71
- let e;
72
- let evnum;
73
- let restcancel;
74
- // if nothing happened, just allow for any Klingons killed
75
- if (Move.time <= 0.0) {
76
- Now.time = Now.resource / Now.klings;
77
- return 0;
78
- }
79
- // indicate that the cloaking device is now working
80
- Ship.cloakgood = 1;
81
- // idate is the initial date
82
- const idate = Now.date;
83
- // schedule attacks if resting too long
84
- if (Move.time > 0.5 && Move.resting)
85
- schedule(t, E_ATTACK, 0.5, 0, 0, 0);
86
- // scan the event list
87
- while (true) {
88
- restcancel = 0;
89
- evnum = -1;
90
- // xdate is the date of the current event
91
- xdate = idate + Move.time;
92
- // find the first event that has happened
93
- for (i = 0; i < MAXEVENTS; i++) {
94
- const one = event(i);
95
- if (one.evcode === 0 || one.evcode & E_GHOST)
96
- continue;
97
- if (one.date < xdate) {
98
- xdate = one.date;
99
- ev = i;
100
- evnum = i;
101
- }
102
- }
103
- e = ev;
104
- // find the time between events
105
- rtime = xdate - Now.date;
106
- // decrement the magic "Federation Resources" pseudo-variable
107
- Now.resource -= Now.klings * rtime;
108
- // and recompute the time left
109
- Now.time = Now.resource / Now.klings;
110
- // move us up to the next date
111
- Now.date = xdate;
112
- // check for out of time
113
- if (Now.time <= 0.0)
114
- await lose(t, L_NOTIME);
115
- if (evnum >= 0 && s.Trace) {
116
- const one = event(e);
117
- t.io.printf('xdate = %.2f, evcode %d params %d %d %d\n', xdate, one.evcode, one.x, one.y, one.systemname);
118
- }
119
- // if evnum < 0, no events occurred
120
- if (evnum < 0)
121
- break;
122
- // otherwise one did. Find out what it is
123
- switch (event(e).evcode & E_EVENT) {
124
- case E_SNOVA: // supernova
125
- // cause the supernova to happen
126
- await snova(t, -1, 0);
127
- // and schedule the next one
128
- xresched(t, e, E_SNOVA, 1);
129
- break;
130
- case E_LRTB: // long range tractor beam
131
- // schedule the next one
132
- xresched(t, e, E_LRTB, Now.klings);
133
- // LRTB cannot occur if we are docked
134
- if (Ship.cond !== DOCKED) {
135
- // pick a new quadrant
136
- i = ranf(t.rnd, Now.klings) + 1;
137
- for (ix = 0; ix < NQUADS; ix++) {
138
- for (iy = 0; iy < NQUADS; iy++) {
139
- q = quad(ix, iy);
140
- if (q.stars >= 0)
141
- if ((i -= q.klings) <= 0)
142
- break;
143
- }
144
- if (i <= 0)
145
- break;
146
- }
147
- // test for LRTB to same quadrant
148
- if (Ship.quadx === ix && Ship.quady === iy)
149
- break;
150
- // nope, dump him in the new quadrant
151
- Ship.quadx = ix;
152
- Ship.quady = iy;
153
- t.io.printf('\n%s caught in long range tractor beam\n', Ship.shipname);
154
- t.io.printf('*** Pulled to quadrant %d,%d\n', Ship.quadx, Ship.quady);
155
- Ship.sectx = ranf(t.rnd, NSECTS);
156
- Ship.secty = ranf(t.rnd, NSECTS);
157
- await initquad(t, 0);
158
- // truncate the move time
159
- Move.time = xdate - idate;
160
- }
161
- break;
162
- case E_KATSB: // Klingon attacks starbase
163
- // if out of bases, forget it
164
- if (Now.bases <= 0) {
165
- unschedule(t, e);
166
- break;
167
- }
168
- // check for starbase and Klingons in same quadrant
169
- for (i = 0; i < Now.bases; i++) {
170
- ix = Now.base[i].x;
171
- iy = Now.base[i].y;
172
- // see if a Klingon exists in this quadrant
173
- q = quad(ix, iy);
174
- if (q.klings <= 0)
175
- continue;
176
- // see if already distressed
177
- for (j = 0; j < MAXEVENTS; j++) {
178
- const one = event(j);
179
- if ((one.evcode & E_EVENT) !== E_KDESB)
180
- continue;
181
- if (one.x === ix && one.y === iy)
182
- break;
183
- }
184
- if (j < MAXEVENTS)
185
- continue;
186
- // got a potential attack
187
- break;
188
- }
189
- e = ev;
190
- if (i >= Now.bases) {
191
- // not now; wait a while and see if some Klingons move in
192
- reschedule(t, e, 0.5 + 3.0 * franf(t.rnd));
193
- break;
194
- }
195
- // schedule a new attack, and a destruction of the base
196
- xresched(t, e, E_KATSB, 1);
197
- e = xsched(t, E_KDESB, 1, ix, iy, 0);
198
- // report it if we can
199
- if (!damaged(t, SSRADIO)) {
200
- t.io.printf('\nUhura: Captain, we have received a distress signal\n');
201
- t.io.printf(' from the starbase in quadrant %d,%d.\n', ix, iy);
202
- restcancel++;
203
- }
204
- else {
205
- // SSRADIO out, make it so we can't see the distress call but it's still there!!!
206
- event(e).evcode |= E_HIDDEN;
207
- }
208
- break;
209
- case E_KDESB: { // Klingon destroys starbase
210
- unschedule(t, e);
211
- const one = event(e);
212
- q = quad(one.x, one.y);
213
- // if the base has mysteriously gone away, or if the Klingon got tired and went home, ignore this event
214
- if (q.bases <= 0 || q.klings <= 0)
215
- break;
216
- // are we in the same quadrant?
217
- if (one.x === Ship.quadx && one.y === Ship.quady) {
218
- // yep, kill one in this quadrant
219
- t.io.printf('\nSpock: ');
220
- await killb(t, Ship.quadx, Ship.quady);
221
- }
222
- else {
223
- // kill one in some other quadrant
224
- await killb(t, one.x, one.y);
225
- }
226
- break;
227
- }
228
- case E_ISSUE: // issue a distress call
229
- xresched(t, e, E_ISSUE, 1);
230
- // if we already have too many, throw this one away
231
- if (Ship.distressed >= MAXDISTR)
232
- break;
233
- // try a bunch of times to find something suitable
234
- q = quad(0, 0);
235
- for (i = 0; i < 100; i++) {
236
- ix = ranf(t.rnd, NQUADS);
237
- iy = ranf(t.rnd, NQUADS);
238
- q = quad(ix, iy);
239
- // need a quadrant which is not the current one, which has some inhabited stars which are not
240
- // already under attack, which is not supernova'ed, and which has some Klingons in it
241
- if (!((ix === Ship.quadx && iy === Ship.quady) || q.stars < 0 || q.qsystemname & Q_DISTRESSED || (q.qsystemname & Q_SYSTEM) === 0 || q.klings <= 0))
242
- break;
243
- }
244
- // can't seem to find one; ignore this call
245
- if (i >= 100)
246
- break;
247
- // got one!! Schedule its enslavement
248
- Ship.distressed++;
249
- e = xsched(t, E_ENSLV, 1, ix, iy, q.qsystemname);
250
- q.qsystemname = e | Q_DISTRESSED;
251
- // tell the captain about it if we can
252
- if (!damaged(t, SSRADIO)) {
253
- t.io.printf('\nUhura: Captain, starsystem %s in quadrant %d,%d is under attack\n', Systemname[event(e).systemname], ix, iy);
254
- restcancel++;
255
- }
256
- else {
257
- // if we can't tell him, make it invisible
258
- event(e).evcode |= E_HIDDEN;
259
- }
260
- break;
261
- case E_ENSLV: { // starsystem is enslaved
262
- unschedule(t, e);
263
- // see if current distress call still active
264
- const one = event(e);
265
- q = quad(one.x, one.y);
266
- if (q.klings <= 0) {
267
- // no Klingons, clean up
268
- // restore the system name
269
- q.qsystemname = one.systemname;
270
- break;
271
- }
272
- // play stork and schedule the first baby
273
- e = schedule(t, E_REPRO, Param.eventdly[E_REPRO] * franf(t.rnd), one.x, one.y, one.systemname);
274
- // report the disaster if we can
275
- const baby = event(e);
276
- if (!damaged(t, SSRADIO)) {
277
- t.io.printf("\nUhura: We've lost contact with starsystem %s\n", Systemname[baby.systemname]);
278
- t.io.printf(' in quadrant %d,%d.\n', baby.x, baby.y);
279
- }
280
- else {
281
- baby.evcode |= E_HIDDEN;
282
- }
283
- break;
284
- }
285
- case E_REPRO: { // Klingon reproduces
286
- // see if distress call is still active
287
- const one = event(e);
288
- q = quad(one.x, one.y);
289
- if (q.klings <= 0) {
290
- unschedule(t, e);
291
- q.qsystemname = one.systemname;
292
- break;
293
- }
294
- xresched(t, e, E_REPRO, 1);
295
- // reproduce one Klingon
296
- ix = one.x;
297
- iy = one.y;
298
- if (Now.klings === 127) {
299
- // full right now
300
- break;
301
- }
302
- if (q.klings >= MAXKLQUAD) {
303
- // this quadrant not ok, pick an adjacent one
304
- for (i = ix - 1; i <= ix + 1; i++) {
305
- if (i < 0 || i >= NQUADS)
306
- continue;
307
- for (j = iy - 1; j <= iy + 1; j++) {
308
- if (j < 0 || j >= NQUADS)
309
- continue;
310
- q = quad(i, j);
311
- // check for this quad ok (not full & no snova)
312
- if (q.klings >= MAXKLQUAD || q.stars < 0)
313
- continue;
314
- break;
315
- }
316
- if (j <= iy + 1)
317
- break;
318
- }
319
- // cannot create another yet
320
- if (j > iy + 1)
321
- break;
322
- ix = i;
323
- iy = j;
324
- }
325
- // deliver the child
326
- q.klings++;
327
- Now.klings++;
328
- if (ix === Ship.quadx && iy === Ship.quady) {
329
- // we must position Klingon
330
- const r = sector(t);
331
- ix = r.x;
332
- iy = r.y;
333
- s.Sect[ix][iy] = KLINGON;
334
- const k = Etc.klingon[Etc.nkling++];
335
- k.x = ix;
336
- k.y = iy;
337
- k.power = Param.klingpwr;
338
- k.srndreq = 0;
339
- const first = Etc.klingon[0];
340
- compkldist(t, first.dist === first.avgdist ? 0 : 1);
341
- }
342
- // recompute time left
343
- Now.time = Now.resource / Now.klings;
344
- break;
345
- }
346
- case E_SNAP: // take a snapshot of the galaxy
347
- xresched(t, e, E_SNAP, 1);
348
- Etc.snapshot = snapshot_take(s);
349
- Game.snap = 1;
350
- break;
351
- case E_ATTACK: // Klingons attack during rest period
352
- if (!Move.resting) {
353
- unschedule(t, e);
354
- break;
355
- }
356
- await attack(t, 1);
357
- reschedule(t, e, 0.5);
358
- break;
359
- case E_FIXDV: {
360
- i = event(e).systemname;
361
- unschedule(t, e);
362
- // de-damage the device
363
- const device = Device[i];
364
- t.io.printf('%s reports repair work on the %s finished.\n', device.person, device.name);
365
- // handle special processing upon fix
366
- switch (i) {
367
- case LIFESUP:
368
- Ship.reserves = Param.reserves;
369
- break;
370
- case SINS:
371
- if (Ship.cond === DOCKED)
372
- break;
373
- t.io.printf('Spock has tried to recalibrate your Space Internal Navigation System,\n');
374
- t.io.printf(' but he has no standard base to calibrate to. Suggest you get\n');
375
- t.io.printf(' to a starbase immediately so that you can properly recalibrate.\n');
376
- Ship.sinsbad = 1;
377
- break;
378
- case SSRADIO:
379
- restcancel = dumpssradio(t);
380
- break;
381
- }
382
- break;
383
- }
384
- default:
385
- break;
386
- }
387
- if (restcancel && Move.resting && (await getynpar(t, 'Spock: Shall we cancel our rest period')))
388
- Move.time = xdate - idate;
389
- }
390
- // unschedule an attack during a rest period
391
- if ((e = Now.eventptr[E_ATTACK]) !== -1)
392
- unschedule(t, e);
393
- if (!timewarp) {
394
- // eat up energy if cloaked
395
- if (Ship.cloaked)
396
- Ship.energy = Math.trunc(Ship.energy - Param.cloakenergy * Move.time);
397
- // regenerate resources
398
- rtime = 1.0 - Math.exp(-Param.regenfac * Move.time);
399
- Ship.shield = Math.trunc(Ship.shield + (Param.shield - Ship.shield) * rtime);
400
- Ship.energy = Math.trunc(Ship.energy + (Param.energy - Ship.energy) * rtime);
401
- // decrement life support reserves
402
- if (damaged(t, LIFESUP) && Ship.cond !== DOCKED)
403
- Ship.reserves -= Move.time;
404
- }
405
- return 0;
406
- }
407
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/builtins/games/trek/events.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * @file Asking for a course and a distance.
3
- *
4
- * Deviation: the C returned 1 for an invalid input and filled its out
5
- * parameters; the port returns null, or the course and distance.
6
- *
7
- * @module
8
- */
9
- import type { Trek } from './context.js';
10
- /** Asks the course and distance; null for an invalid input. */
11
- export declare function getcodi(t: Trek): Promise<{
12
- co: number;
13
- value: number;
14
- } | null>;
@@ -1,24 +0,0 @@
1
- import { getfltpar, getintpar } from './getpar.js';
2
- /*
3
- ** get course and distance
4
- **
5
- ** The user is asked for a course and distance. This is used by
6
- ** move, impulse, and some of the computer functions.
7
- **
8
- ** The return value is zero for success, one for an invalid input
9
- ** (meaning to drop the request).
10
- */
11
- /** Asks the course and distance; null for an invalid input. */
12
- export async function getcodi(t) {
13
- const co = await getintpar(t, 'Course');
14
- /* course must be in the interval [0, 360] */
15
- if (co < 0 || co > 360)
16
- return null;
17
- const di = await getfltpar(t, 'Distance');
18
- /* distance must be in the interval [0, 15] */
19
- if (di <= 0.0 || di > 15.0)
20
- return null;
21
- /* good return */
22
- return { co, value: di };
23
- }
24
- //# sourceMappingURL=getcodi.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getcodi.js","sourceRoot":"","sources":["../../../../src/builtins/games/trek/getcodi.ts"],"names":[],"mappings":"AAyCA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;;EAQE;AAEF,+DAA+D;AAC/D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,CAAO;IACnC,MAAM,EAAE,GAAW,MAAM,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEhD,6CAA6C;IAC7C,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,EAAE,GAAW,MAAM,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAElD,8CAA8C;IAC9C,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,IAAI,CAAC;IAExC,iBAAiB;IACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAC3B,CAAC"}
@@ -1,40 +0,0 @@
1
- /**
2
- * @file Reading a parameter: an integer, a double, yes or no, a code from a
3
- * table, a string; and the stream tests the rest of the game reads with.
4
- *
5
- * As the C: a prompt is printed only when the next character is a
6
- * newline, so parameters typed ahead on the command line are taken
7
- * without being asked for.
8
- *
9
- * @module
10
- */
11
- import type { CmdFun, Trek } from './context.js';
12
- /** One entry of a conversion table: an abbreviation, the rest of the word, what it does, a value. */
13
- export interface Cvntab {
14
- abbrev: string;
15
- full: string;
16
- value: CmdFun | null;
17
- value2: number;
18
- }
19
- /** get integer parameter */
20
- export declare function getintpar(t: Trek, s: string | null): Promise<number>;
21
- /** get floating parameter */
22
- export declare function getfltpar(t: Trek, s: string | null): Promise<number>;
23
- /** get yes/no parameter */
24
- export declare function getynpar(t: Trek, s: string): Promise<number>;
25
- /**
26
- * get coded parameter: a word matched against a table by its abbreviation
27
- * and as much of the rest as was typed; `?` lists the table.
28
- */
29
- export declare function getcodpar(t: Trek, s: string, tab: ReadonlyArray<Cvntab>): Promise<Cvntab>;
30
- /** get string parameter: up to l characters, ended by any of t (default white space and ;). */
31
- export declare function getstrpar(t: Trek, s: string | null, l: number, terminators: string | null): Promise<string>;
32
- /** test if newline is next valid character */
33
- export declare function testnl(t: Trek): Promise<boolean>;
34
- /** scan for newline */
35
- export declare function skiptonl(t: Trek, c: number): Promise<void>;
36
- /**
37
- * TEST FOR SPECIFIED DELIMITER: the input is scanned for the delimiter;
38
- * found, it is thrown away and true is returned; not found, false.
39
- */
40
- export declare function readdelim(t: Trek, d: number): Promise<boolean>;