@fnndsc/brasa 0.42.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.
- package/dist/buildinfo.json +1 -1
- package/dist/builtins/fs/mkdir.js +28 -1
- package/dist/builtins/fs/mkdir.js.map +1 -1
- package/dist/builtins/games/trek.d.ts +8 -0
- package/dist/builtins/games/trek.js +50 -0
- package/dist/builtins/games/trek.js.map +1 -0
- package/dist/builtins/help.js +57 -0
- package/dist/builtins/help.js.map +1 -1
- package/dist/builtins/helpSections.js +7 -1
- package/dist/builtins/helpSections.js.map +1 -1
- package/dist/builtins/sys/textFilters.d.ts +107 -0
- package/dist/builtins/sys/textFilters.js +465 -0
- package/dist/builtins/sys/textFilters.js.map +1 -0
- package/dist/core/commandOrder.js +3 -3
- package/dist/core/commandOrder.js.map +1 -1
- package/dist/core/coreCommands.js +14 -1
- package/dist/core/coreCommands.js.map +1 -1
- package/dist/lib/completer/index.js +1 -1
- package/dist/lib/completer/index.js.map +1 -1
- package/dist/notes.json +1 -1
- package/package.json +4 -4
- package/NOTICE +0 -48
- package/dist/builtins/games/trek/abandon.d.ts +0 -3
- package/dist/builtins/games/trek/abandon.js +0 -159
- package/dist/builtins/games/trek/abandon.js.map +0 -1
- package/dist/builtins/games/trek/attack.d.ts +0 -3
- package/dist/builtins/games/trek/attack.js +0 -185
- package/dist/builtins/games/trek/attack.js.map +0 -1
- package/dist/builtins/games/trek/autover.d.ts +0 -3
- package/dist/builtins/games/trek/autover.js +0 -79
- package/dist/builtins/games/trek/autover.js.map +0 -1
- package/dist/builtins/games/trek/capture.d.ts +0 -3
- package/dist/builtins/games/trek/capture.js +0 -117
- package/dist/builtins/games/trek/capture.js.map +0 -1
- package/dist/builtins/games/trek/check_out.d.ts +0 -3
- package/dist/builtins/games/trek/check_out.js +0 -67
- package/dist/builtins/games/trek/check_out.js.map +0 -1
- package/dist/builtins/games/trek/checkcond.d.ts +0 -3
- package/dist/builtins/games/trek/checkcond.js +0 -101
- package/dist/builtins/games/trek/checkcond.js.map +0 -1
- package/dist/builtins/games/trek/compkl.d.ts +0 -8
- package/dist/builtins/games/trek/compkl.js +0 -66
- package/dist/builtins/games/trek/compkl.js.map +0 -1
- package/dist/builtins/games/trek/computer.d.ts +0 -3
- package/dist/builtins/games/trek/computer.js +0 -310
- package/dist/builtins/games/trek/computer.js.map +0 -1
- package/dist/builtins/games/trek/consts.d.ts +0 -109
- package/dist/builtins/games/trek/consts.js +0 -159
- package/dist/builtins/games/trek/consts.js.map +0 -1
- package/dist/builtins/games/trek/context.d.ts +0 -27
- package/dist/builtins/games/trek/context.js +0 -2
- package/dist/builtins/games/trek/context.js.map +0 -1
- package/dist/builtins/games/trek/damage.d.ts +0 -3
- package/dist/builtins/games/trek/damage.js +0 -87
- package/dist/builtins/games/trek/damage.js.map +0 -1
- package/dist/builtins/games/trek/damaged.d.ts +0 -3
- package/dist/builtins/games/trek/damaged.js +0 -58
- package/dist/builtins/games/trek/damaged.js.map +0 -1
- package/dist/builtins/games/trek/dcrept.d.ts +0 -3
- package/dist/builtins/games/trek/dcrept.js +0 -86
- package/dist/builtins/games/trek/dcrept.js.map +0 -1
- package/dist/builtins/games/trek/destruct.d.ts +0 -3
- package/dist/builtins/games/trek/destruct.js +0 -114
- package/dist/builtins/games/trek/destruct.js.map +0 -1
- package/dist/builtins/games/trek/dock.d.ts +0 -5
- package/dist/builtins/games/trek/dock.js +0 -133
- package/dist/builtins/games/trek/dock.js.map +0 -1
- package/dist/builtins/games/trek/dumpgame.d.ts +0 -15
- package/dist/builtins/games/trek/dumpgame.js +0 -29
- package/dist/builtins/games/trek/dumpgame.js.map +0 -1
- package/dist/builtins/games/trek/dumpme.d.ts +0 -3
- package/dist/builtins/games/trek/dumpme.js +0 -81
- package/dist/builtins/games/trek/dumpme.js.map +0 -1
- package/dist/builtins/games/trek/dumpssradio.d.ts +0 -6
- package/dist/builtins/games/trek/dumpssradio.js +0 -72
- package/dist/builtins/games/trek/dumpssradio.js.map +0 -1
- package/dist/builtins/games/trek/events.d.ts +0 -3
- package/dist/builtins/games/trek/events.js +0 -407
- package/dist/builtins/games/trek/events.js.map +0 -1
- package/dist/builtins/games/trek/getcodi.d.ts +0 -14
- package/dist/builtins/games/trek/getcodi.js +0 -24
- package/dist/builtins/games/trek/getcodi.js.map +0 -1
- package/dist/builtins/games/trek/getpar.d.ts +0 -40
- package/dist/builtins/games/trek/getpar.js +0 -174
- package/dist/builtins/games/trek/getpar.js.map +0 -1
- package/dist/builtins/games/trek/help.d.ts +0 -3
- package/dist/builtins/games/trek/help.js +0 -155
- package/dist/builtins/games/trek/help.js.map +0 -1
- package/dist/builtins/games/trek/impulse.d.ts +0 -6
- package/dist/builtins/games/trek/impulse.js +0 -85
- package/dist/builtins/games/trek/impulse.js.map +0 -1
- package/dist/builtins/games/trek/initquad.d.ts +0 -17
- package/dist/builtins/games/trek/initquad.js +0 -79
- package/dist/builtins/games/trek/initquad.js.map +0 -1
- package/dist/builtins/games/trek/io.d.ts +0 -102
- package/dist/builtins/games/trek/io.js +0 -216
- package/dist/builtins/games/trek/io.js.map +0 -1
- package/dist/builtins/games/trek/kill.d.ts +0 -21
- package/dist/builtins/games/trek/kill.js +0 -194
- package/dist/builtins/games/trek/kill.js.map +0 -1
- package/dist/builtins/games/trek/klmove.d.ts +0 -3
- package/dist/builtins/games/trek/klmove.js +0 -181
- package/dist/builtins/games/trek/klmove.js.map +0 -1
- package/dist/builtins/games/trek/lose.d.ts +0 -9
- package/dist/builtins/games/trek/lose.js +0 -36
- package/dist/builtins/games/trek/lose.js.map +0 -1
- package/dist/builtins/games/trek/lrscan.d.ts +0 -3
- package/dist/builtins/games/trek/lrscan.js +0 -96
- package/dist/builtins/games/trek/lrscan.js.map +0 -1
- package/dist/builtins/games/trek/main.d.ts +0 -24
- package/dist/builtins/games/trek/main.js +0 -37
- package/dist/builtins/games/trek/main.js.map +0 -1
- package/dist/builtins/games/trek/move.d.ts +0 -3
- package/dist/builtins/games/trek/move.js +0 -229
- package/dist/builtins/games/trek/move.js.map +0 -1
- package/dist/builtins/games/trek/nova.d.ts +0 -3
- package/dist/builtins/games/trek/nova.js +0 -135
- package/dist/builtins/games/trek/nova.js.map +0 -1
- package/dist/builtins/games/trek/out.d.ts +0 -3
- package/dist/builtins/games/trek/out.js +0 -52
- package/dist/builtins/games/trek/out.js.map +0 -1
- package/dist/builtins/games/trek/phaser.d.ts +0 -3
- package/dist/builtins/games/trek/phaser.js +0 -341
- package/dist/builtins/games/trek/phaser.js.map +0 -1
- package/dist/builtins/games/trek/play.d.ts +0 -3
- package/dist/builtins/games/trek/play.js +0 -112
- package/dist/builtins/games/trek/play.js.map +0 -1
- package/dist/builtins/games/trek/printf.d.ts +0 -31
- package/dist/builtins/games/trek/printf.js +0 -157
- package/dist/builtins/games/trek/printf.js.map +0 -1
- package/dist/builtins/games/trek/ram.d.ts +0 -3
- package/dist/builtins/games/trek/ram.js +0 -97
- package/dist/builtins/games/trek/ram.js.map +0 -1
- package/dist/builtins/games/trek/rand.d.ts +0 -29
- package/dist/builtins/games/trek/rand.js +0 -109
- package/dist/builtins/games/trek/rand.js.map +0 -1
- package/dist/builtins/games/trek/rest.d.ts +0 -3
- package/dist/builtins/games/trek/rest.js +0 -76
- package/dist/builtins/games/trek/rest.js.map +0 -1
- package/dist/builtins/games/trek/schedule.d.ts +0 -23
- package/dist/builtins/games/trek/schedule.js +0 -55
- package/dist/builtins/games/trek/schedule.js.map +0 -1
- package/dist/builtins/games/trek/score.d.ts +0 -8
- package/dist/builtins/games/trek/score.js +0 -61
- package/dist/builtins/games/trek/score.js.map +0 -1
- package/dist/builtins/games/trek/setup.d.ts +0 -18
- package/dist/builtins/games/trek/setup.js +0 -251
- package/dist/builtins/games/trek/setup.js.map +0 -1
- package/dist/builtins/games/trek/setwarp.d.ts +0 -8
- package/dist/builtins/games/trek/setwarp.js +0 -28
- package/dist/builtins/games/trek/setwarp.js.map +0 -1
- package/dist/builtins/games/trek/shield.d.ts +0 -3
- package/dist/builtins/games/trek/shield.js +0 -139
- package/dist/builtins/games/trek/shield.js.map +0 -1
- package/dist/builtins/games/trek/snova.d.ts +0 -3
- package/dist/builtins/games/trek/snova.js +0 -156
- package/dist/builtins/games/trek/snova.js.map +0 -1
- package/dist/builtins/games/trek/srscan.d.ts +0 -3
- package/dist/builtins/games/trek/srscan.js +0 -176
- package/dist/builtins/games/trek/srscan.js.map +0 -1
- package/dist/builtins/games/trek/state.d.ts +0 -190
- package/dist/builtins/games/trek/state.js +0 -84
- package/dist/builtins/games/trek/state.js.map +0 -1
- package/dist/builtins/games/trek/style.d.ts +0 -7
- package/dist/builtins/games/trek/style.js +0 -93
- package/dist/builtins/games/trek/style.js.map +0 -1
- package/dist/builtins/games/trek/systemname.d.ts +0 -10
- package/dist/builtins/games/trek/systemname.js +0 -12
- package/dist/builtins/games/trek/systemname.js.map +0 -1
- package/dist/builtins/games/trek/torped.d.ts +0 -3
- package/dist/builtins/games/trek/torped.js +0 -232
- package/dist/builtins/games/trek/torped.js.map +0 -1
- package/dist/builtins/games/trek/trek.d.ts +0 -27
- package/dist/builtins/games/trek/trek.js +0 -96
- package/dist/builtins/games/trek/trek.js.map +0 -1
- package/dist/builtins/games/trek/visual.d.ts +0 -3
- package/dist/builtins/games/trek/visual.js +0 -87
- package/dist/builtins/games/trek/visual.js.map +0 -1
- package/dist/builtins/games/trek/warp.d.ts +0 -5
- package/dist/builtins/games/trek/warp.js +0 -173
- package/dist/builtins/games/trek/warp.js.map +0 -1
- package/dist/builtins/games/trek/win.d.ts +0 -12
- package/dist/builtins/games/trek/win.js +0 -34
- package/dist/builtins/games/trek/win.js.map +0 -1
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { ENTERPRISE } from './consts.js';
|
|
2
|
-
import { sprintf } from './printf.js';
|
|
3
|
-
import { Skitab } from './setup.js';
|
|
4
|
-
/** One line of the score; nothing when it is worth nothing. */
|
|
5
|
-
function scoreitem(t, amount, descfmt, ...args) {
|
|
6
|
-
if (amount === 0)
|
|
7
|
-
return;
|
|
8
|
-
// vsnprintf into char buf[128]
|
|
9
|
-
const buf = sprintf(descfmt, ...args).slice(0, 127);
|
|
10
|
-
t.io.printf('%-40s %10ld\n', buf, amount);
|
|
11
|
-
}
|
|
12
|
-
/** PRINT OUT THE CURRENT SCORE */
|
|
13
|
-
export function score(t) {
|
|
14
|
-
const { Game, Param, Now, Move, Ship } = t.s;
|
|
15
|
-
let u;
|
|
16
|
-
let tt;
|
|
17
|
-
let s;
|
|
18
|
-
let r;
|
|
19
|
-
t.io.printf('\n*** Your score:\n');
|
|
20
|
-
s = tt = Math.trunc(Param.klingpwr / 4) * (u = Game.killk);
|
|
21
|
-
scoreitem(t, tt, '%d Klingons killed', u);
|
|
22
|
-
r = Now.date - Param.date;
|
|
23
|
-
if (r < 1.0)
|
|
24
|
-
r = 1.0;
|
|
25
|
-
r = Game.killk / r;
|
|
26
|
-
s += tt = Math.trunc(400 * r);
|
|
27
|
-
scoreitem(t, tt, 'Kill rate %.2f Klingons/stardate', r);
|
|
28
|
-
r = Now.klings;
|
|
29
|
-
r /= Game.killk + 1;
|
|
30
|
-
s += tt = Math.trunc(-400 * r);
|
|
31
|
-
scoreitem(t, tt, 'Penalty for %d klingons remaining', Now.klings);
|
|
32
|
-
if (Move.endgame > 0) {
|
|
33
|
-
s += tt = 100 * (u = Game.skill);
|
|
34
|
-
const p = Skitab[u - 1];
|
|
35
|
-
scoreitem(t, tt, 'Bonus for winning a %s%s game', p.abbrev, p.full);
|
|
36
|
-
}
|
|
37
|
-
if (Game.killed) {
|
|
38
|
-
s -= 500;
|
|
39
|
-
scoreitem(t, -500, 'Penalty for getting killed');
|
|
40
|
-
}
|
|
41
|
-
s += tt = -100 * (u = Game.killb);
|
|
42
|
-
scoreitem(t, tt, '%d starbases killed', u);
|
|
43
|
-
s += tt = -100 * (u = Game.helps);
|
|
44
|
-
scoreitem(t, tt, '%d calls for help', u);
|
|
45
|
-
s += tt = -5 * (u = Game.kills);
|
|
46
|
-
scoreitem(t, tt, '%d stars destroyed', u);
|
|
47
|
-
s += tt = -150 * (u = Game.killinhab);
|
|
48
|
-
scoreitem(t, tt, '%d inhabited starsystems destroyed', u);
|
|
49
|
-
if (Ship.ship !== ENTERPRISE) {
|
|
50
|
-
s -= 200;
|
|
51
|
-
scoreitem(t, -200, 'penalty for abandoning ship');
|
|
52
|
-
}
|
|
53
|
-
s += tt = 3 * (u = Game.captives);
|
|
54
|
-
scoreitem(t, tt, '%d Klingons captured', u);
|
|
55
|
-
s += tt = -(u = Game.deaths);
|
|
56
|
-
scoreitem(t, tt, '%d casualties', u);
|
|
57
|
-
t.io.printf('\n');
|
|
58
|
-
scoreitem(t, s, '*** TOTAL');
|
|
59
|
-
return s;
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=score.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../../../src/builtins/games/trek/score.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file Initializing a game: its length, skill and password are read, and
|
|
3
|
-
* the galaxy, the ship and the event queue are laid out. Game restart and
|
|
4
|
-
* tournament games are handled here.
|
|
5
|
-
*
|
|
6
|
-
* Deviation: the C's tables cast a length or a skill to a function pointer
|
|
7
|
-
* (`(cmdfun)4`); here the number rides in `value2`.
|
|
8
|
-
*
|
|
9
|
-
* @module
|
|
10
|
-
*/
|
|
11
|
-
import type { Trek } from './context.js';
|
|
12
|
-
import { type Cvntab } from './getpar.js';
|
|
13
|
-
/** The game lengths. */
|
|
14
|
-
export declare const Lentab: ReadonlyArray<Cvntab>;
|
|
15
|
-
/** The skills, in rank order. */
|
|
16
|
-
export declare const Skitab: ReadonlyArray<Cvntab>;
|
|
17
|
-
/** INITIALIZE THE GAME */
|
|
18
|
-
export declare function setup(t: Trek): Promise<void>;
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
import { CLOAK, COMPUTER, Device, E_ISSUE, E_KATSB, E_KDESB, E_ENSLV, E_LRTB, E_REPRO, E_SNAP, E_SNOVA, ENTERPRISE, GREEN, IMPULSE, KM_EA, KM_EB, KM_LA, KM_LB, KM_OA, KM_OB, LIFESUP, LRSCAN, MAXEVENTS, MAXKLQUAD, NDEV, NINHAB, NQUADS, NSECTS, PHASER, SHIELD, SINS, SRSCAN, SSRADIO, TOOLARGE, TORPED, WARP, XPORTER, } from './consts.js';
|
|
2
|
-
import { attack } from './attack.js';
|
|
3
|
-
import { restartgame } from './dumpgame.js';
|
|
4
|
-
import { getcodpar, getstrpar } from './getpar.js';
|
|
5
|
-
import { initquad } from './initquad.js';
|
|
6
|
-
import { franf, ranf } from './rand.js';
|
|
7
|
-
import { xsched } from './schedule.js';
|
|
8
|
-
import { srscan } from './srscan.js';
|
|
9
|
-
/** The game lengths. */
|
|
10
|
-
export const Lentab = [
|
|
11
|
-
{ abbrev: 's', full: 'hort', value: null, value2: 1 },
|
|
12
|
-
{ abbrev: 'm', full: 'edium', value: null, value2: 2 },
|
|
13
|
-
{ abbrev: 'l', full: 'ong', value: null, value2: 4 },
|
|
14
|
-
{ abbrev: 'restart', full: '', value: null, value2: 0 },
|
|
15
|
-
];
|
|
16
|
-
/** The skills, in rank order. */
|
|
17
|
-
export const Skitab = [
|
|
18
|
-
{ abbrev: 'n', full: 'ovice', value: null, value2: 1 },
|
|
19
|
-
{ abbrev: 'f', full: 'air', value: null, value2: 2 },
|
|
20
|
-
{ abbrev: 'g', full: 'ood', value: null, value2: 3 },
|
|
21
|
-
{ abbrev: 'e', full: 'xpert', value: null, value2: 4 },
|
|
22
|
-
{ abbrev: 'c', full: 'ommodore', value: null, value2: 5 },
|
|
23
|
-
{ abbrev: 'i', full: 'mpossible', value: null, value2: 6 },
|
|
24
|
-
];
|
|
25
|
-
/** A store into a C `char`: gcc truncates to int, then keeps the low byte, signed. */
|
|
26
|
-
function char_of(n) {
|
|
27
|
-
return (Math.trunc(n) << 24) >> 24;
|
|
28
|
-
}
|
|
29
|
-
/** INITIALIZE THE GAME */
|
|
30
|
-
export async function setup(t) {
|
|
31
|
-
const { Game, Param, Now, Ship, Move } = t.s;
|
|
32
|
-
let r;
|
|
33
|
-
let i;
|
|
34
|
-
let j;
|
|
35
|
-
let d;
|
|
36
|
-
let q;
|
|
37
|
-
while (true) {
|
|
38
|
-
r = await getcodpar(t, 'What length game', Lentab);
|
|
39
|
-
Game.length = r.value2;
|
|
40
|
-
if (Game.length === 0) {
|
|
41
|
-
if (await restartgame(t))
|
|
42
|
-
continue;
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
47
|
-
r = await getcodpar(t, 'What skill game', Skitab);
|
|
48
|
-
Game.skill = r.value2;
|
|
49
|
-
Game.tourn = 0;
|
|
50
|
-
Game.passwd = await getstrpar(t, 'Enter a password', 14, null);
|
|
51
|
-
if (Game.passwd === 'tournament') {
|
|
52
|
-
Game.passwd = await getstrpar(t, 'Enter tournament code', 14, null);
|
|
53
|
-
Game.tourn = 1;
|
|
54
|
-
d = 0;
|
|
55
|
-
for (i = 0; i < Game.passwd.length; i++)
|
|
56
|
-
d += Game.passwd.charCodeAt(i) << i;
|
|
57
|
-
t.rnd.srandom(d);
|
|
58
|
-
}
|
|
59
|
-
Param.bases = Now.bases = ranf(t.rnd, 6 - Game.skill) + 2;
|
|
60
|
-
if (Game.skill === 6)
|
|
61
|
-
Param.bases = Now.bases = 1;
|
|
62
|
-
Param.time = Now.time = 6.0 * Game.length + 2.0;
|
|
63
|
-
i = Game.skill;
|
|
64
|
-
j = Game.length;
|
|
65
|
-
Param.klings = Now.klings = char_of(i * j * 3.5 * (franf(t.rnd) + 0.75));
|
|
66
|
-
if (Param.klings < i * j * 5)
|
|
67
|
-
Param.klings = Now.klings = char_of(i * j * 5);
|
|
68
|
-
// numerical overflow problems
|
|
69
|
-
if (Param.klings <= i)
|
|
70
|
-
Param.klings = Now.klings = 127;
|
|
71
|
-
Param.energy = Ship.energy = 5000;
|
|
72
|
-
Param.torped = Ship.torped = 10;
|
|
73
|
-
Ship.ship = ENTERPRISE;
|
|
74
|
-
Ship.shipname = 'Enterprise';
|
|
75
|
-
Param.shield = Ship.shield = 1500;
|
|
76
|
-
Param.resource = Now.resource = Param.klings * Param.time;
|
|
77
|
-
Param.reserves = Ship.reserves = (6 - Game.skill) * 2.0;
|
|
78
|
-
Param.crew = Ship.crew = 387;
|
|
79
|
-
Param.brigfree = Ship.brigfree = 400;
|
|
80
|
-
Ship.shldup = 1;
|
|
81
|
-
Ship.cond = GREEN;
|
|
82
|
-
Ship.warp = 5.0;
|
|
83
|
-
Ship.warp2 = 25.0;
|
|
84
|
-
Ship.warp3 = 125.0;
|
|
85
|
-
Ship.sinsbad = 0;
|
|
86
|
-
Ship.cloaked = 0;
|
|
87
|
-
Param.date = Now.date = (ranf(t.rnd, 20) + 20) * 100;
|
|
88
|
-
let f = Game.skill;
|
|
89
|
-
f = Math.log(f + 0.5);
|
|
90
|
-
for (i = 0; i < NDEV; i++) {
|
|
91
|
-
if (Device[i].name.startsWith('*'))
|
|
92
|
-
Param.damfac[i] = 0;
|
|
93
|
-
else
|
|
94
|
-
Param.damfac[i] = f;
|
|
95
|
-
}
|
|
96
|
-
// these probabilities must sum to 1000
|
|
97
|
-
Param.damprob[WARP] = 70; // warp drive 7.0%
|
|
98
|
-
Param.damprob[SRSCAN] = 110; // short range scanners 11.0%
|
|
99
|
-
Param.damprob[LRSCAN] = 110; // long range scanners 11.0%
|
|
100
|
-
Param.damprob[PHASER] = 125; // phasers 12.5%
|
|
101
|
-
Param.damprob[TORPED] = 125; // photon torpedoes 12.5%
|
|
102
|
-
Param.damprob[IMPULSE] = 75; // impulse engines 7.5%
|
|
103
|
-
Param.damprob[SHIELD] = 150; // shield control 15.0%
|
|
104
|
-
Param.damprob[COMPUTER] = 20; // computer 2.0%
|
|
105
|
-
Param.damprob[SSRADIO] = 35; // subspace radio 3.5%
|
|
106
|
-
Param.damprob[LIFESUP] = 30; // life support 3.0%
|
|
107
|
-
Param.damprob[SINS] = 20; // navigation system 2.0%
|
|
108
|
-
Param.damprob[CLOAK] = 50; // cloaking device 5.0%
|
|
109
|
-
Param.damprob[XPORTER] = 80; // transporter 8.0%
|
|
110
|
-
// check to see that I didn't blow it
|
|
111
|
-
for (i = j = 0; i < NDEV; i++)
|
|
112
|
-
j += Param.damprob[i];
|
|
113
|
-
if (j !== 1000) {
|
|
114
|
-
t.io.printf('trek: Device probabilities sum to %d\n', j);
|
|
115
|
-
t.io.exit(1);
|
|
116
|
-
}
|
|
117
|
-
Param.dockfac = 0.5;
|
|
118
|
-
Param.regenfac = (5 - Game.skill) * 0.05;
|
|
119
|
-
if (Param.regenfac < 0.0)
|
|
120
|
-
Param.regenfac = 0.0;
|
|
121
|
-
Param.warptime = 10;
|
|
122
|
-
Param.stopengy = 50;
|
|
123
|
-
Param.shupengy = 40;
|
|
124
|
-
i = Game.skill;
|
|
125
|
-
Param.klingpwr = 100 + 150 * i;
|
|
126
|
-
if (i >= 6)
|
|
127
|
-
Param.klingpwr += 150;
|
|
128
|
-
Param.phasfac = 0.8;
|
|
129
|
-
Param.hitfac = 0.5;
|
|
130
|
-
Param.klingcrew = 200;
|
|
131
|
-
Param.srndrprob = 0.0035;
|
|
132
|
-
Param.moveprob[KM_OB] = 45;
|
|
133
|
-
Param.movefac[KM_OB] = 0.09;
|
|
134
|
-
Param.moveprob[KM_OA] = 40;
|
|
135
|
-
Param.movefac[KM_OA] = -0.05;
|
|
136
|
-
Param.moveprob[KM_EB] = 40;
|
|
137
|
-
Param.movefac[KM_EB] = 0.075;
|
|
138
|
-
Param.moveprob[KM_EA] = 25 + 5 * Game.skill;
|
|
139
|
-
Param.movefac[KM_EA] = -0.06 * Game.skill;
|
|
140
|
-
Param.moveprob[KM_LB] = 0;
|
|
141
|
-
Param.movefac[KM_LB] = 0.0;
|
|
142
|
-
Param.moveprob[KM_LA] = 10 + 10 * Game.skill;
|
|
143
|
-
Param.movefac[KM_LA] = 0.25;
|
|
144
|
-
Param.eventdly[E_SNOVA] = 0.5;
|
|
145
|
-
Param.eventdly[E_LRTB] = 25.0;
|
|
146
|
-
Param.eventdly[E_KATSB] = 1.0;
|
|
147
|
-
Param.eventdly[E_KDESB] = 3.0;
|
|
148
|
-
Param.eventdly[E_ISSUE] = 1.0;
|
|
149
|
-
Param.eventdly[E_SNAP] = 0.5;
|
|
150
|
-
Param.eventdly[E_ENSLV] = 0.5;
|
|
151
|
-
Param.eventdly[E_REPRO] = 2.0;
|
|
152
|
-
Param.navigcrud[0] = 1.5;
|
|
153
|
-
Param.navigcrud[1] = 0.75;
|
|
154
|
-
Param.cloakenergy = 1000;
|
|
155
|
-
Param.energylow = 1000;
|
|
156
|
-
for (i = 0; i < MAXEVENTS; i++) {
|
|
157
|
-
const e = t.s.Event[i];
|
|
158
|
-
e.date = TOOLARGE;
|
|
159
|
-
e.evcode = 0;
|
|
160
|
-
}
|
|
161
|
-
xsched(t, E_SNOVA, 1, 0, 0, 0);
|
|
162
|
-
xsched(t, E_LRTB, Param.klings, 0, 0, 0);
|
|
163
|
-
xsched(t, E_KATSB, 1, 0, 0, 0);
|
|
164
|
-
xsched(t, E_ISSUE, 1, 0, 0, 0);
|
|
165
|
-
xsched(t, E_SNAP, 1, 0, 0, 0);
|
|
166
|
-
Ship.sectx = ranf(t.rnd, NSECTS);
|
|
167
|
-
Ship.secty = ranf(t.rnd, NSECTS);
|
|
168
|
-
Game.killk = Game.kills = Game.killb = 0;
|
|
169
|
-
Game.deaths = Game.negenbar = 0;
|
|
170
|
-
Game.captives = 0;
|
|
171
|
-
Game.killinhab = 0;
|
|
172
|
-
Game.helps = 0;
|
|
173
|
-
Game.killed = 0;
|
|
174
|
-
Game.snap = 0;
|
|
175
|
-
Move.endgame = 0;
|
|
176
|
-
// setup stars
|
|
177
|
-
for (i = 0; i < NQUADS; i++) {
|
|
178
|
-
for (j = 0; j < NQUADS; j++) {
|
|
179
|
-
q = t.s.Quad[i][j];
|
|
180
|
-
q.klings = q.bases = 0;
|
|
181
|
-
q.scanned = -1;
|
|
182
|
-
q.stars = ranf(t.rnd, 9) + 1;
|
|
183
|
-
q.holes = ranf(t.rnd, 3);
|
|
184
|
-
const s5 = Math.trunc(q.stars / 5);
|
|
185
|
-
q.holes = q.holes > s5 ? q.holes - s5 : 0;
|
|
186
|
-
q.qsystemname = 0;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
// select inhabited starsystems
|
|
190
|
-
for (d = 1; d < NINHAB; d++) {
|
|
191
|
-
do {
|
|
192
|
-
i = ranf(t.rnd, NQUADS);
|
|
193
|
-
j = ranf(t.rnd, NQUADS);
|
|
194
|
-
q = t.s.Quad[i][j];
|
|
195
|
-
} while (q.qsystemname);
|
|
196
|
-
q.qsystemname = d;
|
|
197
|
-
}
|
|
198
|
-
// position starbases
|
|
199
|
-
for (i = 0; i < Param.bases; i++) {
|
|
200
|
-
let ix;
|
|
201
|
-
let iy;
|
|
202
|
-
while (true) {
|
|
203
|
-
ix = ranf(t.rnd, NQUADS);
|
|
204
|
-
iy = ranf(t.rnd, NQUADS);
|
|
205
|
-
q = t.s.Quad[ix][iy];
|
|
206
|
-
if (q.bases > 0)
|
|
207
|
-
continue;
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
q.bases = 1;
|
|
211
|
-
const base = Now.base[i];
|
|
212
|
-
base.x = ix;
|
|
213
|
-
base.y = iy;
|
|
214
|
-
q.scanned = 1001;
|
|
215
|
-
// start the Enterprise near starbase
|
|
216
|
-
if (i === 0) {
|
|
217
|
-
Ship.quadx = ix;
|
|
218
|
-
Ship.quady = iy;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
// position klingons
|
|
222
|
-
for (i = Param.klings; i > 0;) {
|
|
223
|
-
let klump = ranf(t.rnd, 4) + 1;
|
|
224
|
-
if (klump > i)
|
|
225
|
-
klump = i;
|
|
226
|
-
while (true) {
|
|
227
|
-
const ix = ranf(t.rnd, NQUADS);
|
|
228
|
-
const iy = ranf(t.rnd, NQUADS);
|
|
229
|
-
q = t.s.Quad[ix][iy];
|
|
230
|
-
if (q.klings + klump > MAXKLQUAD)
|
|
231
|
-
continue;
|
|
232
|
-
q.klings += klump;
|
|
233
|
-
i -= klump;
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
// initialize this quadrant
|
|
238
|
-
const bases = Now.base;
|
|
239
|
-
t.io.printf('%d Klingons\n%d starbase', Param.klings, Param.bases);
|
|
240
|
-
if (Param.bases > 1)
|
|
241
|
-
t.io.printf('s');
|
|
242
|
-
t.io.printf(' at %d,%d', bases[0].x, bases[0].y);
|
|
243
|
-
for (i = 1; i < Param.bases; i++)
|
|
244
|
-
t.io.printf(', %d,%d', bases[i].x, bases[i].y);
|
|
245
|
-
t.io.printf('\nIt takes %d units to kill a Klingon\n', Param.klingpwr);
|
|
246
|
-
Move.free = 0;
|
|
247
|
-
await initquad(t, 0);
|
|
248
|
-
await srscan(t, 1);
|
|
249
|
-
await attack(t, 0);
|
|
250
|
-
}
|
|
251
|
-
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/builtins/games/trek/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { getfltpar } from './getpar.js';
|
|
2
|
-
/*
|
|
3
|
-
** SET WARP FACTOR
|
|
4
|
-
**
|
|
5
|
-
** The warp factor is set for future move commands. It is
|
|
6
|
-
** checked for consistency.
|
|
7
|
-
*/
|
|
8
|
-
/** The warp command. */
|
|
9
|
-
export async function setwarp(t, _v) {
|
|
10
|
-
const { Ship } = t.s;
|
|
11
|
-
const warpfac = await getfltpar(t, 'Warp factor');
|
|
12
|
-
if (warpfac < 0.0)
|
|
13
|
-
return;
|
|
14
|
-
if (warpfac < 1.0) {
|
|
15
|
-
t.io.printf('Minimum warp speed is 1.0\n');
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
if (warpfac > 10.0) {
|
|
19
|
-
t.io.printf('Maximum speed is warp 10.0\n');
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (warpfac > 6.0)
|
|
23
|
-
t.io.printf('Damage to warp engines may occur above warp 6.0\n');
|
|
24
|
-
Ship.warp = warpfac;
|
|
25
|
-
Ship.warp2 = Ship.warp * warpfac;
|
|
26
|
-
Ship.warp3 = Ship.warp2 * warpfac;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=setwarp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setwarp.js","sourceRoot":"","sources":["../../../../src/builtins/games/trek/setwarp.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;EAKE;AAEF,wBAAwB;AACxB,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,CAAO,EAAE,EAAU;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAErB,MAAM,OAAO,GAAW,MAAM,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IAC1D,IAAI,OAAO,GAAG,GAAG;QAAE,OAAO;IAC1B,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QAClB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC;QACnB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IACD,IAAI,OAAO,GAAG,GAAG;QAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAC;IACpF,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;IACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;IACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;AACpC,CAAC"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* shield.ts: a TypeScript port of BSD trek(6), from shield.c.
|
|
3
|
-
* Ported from NetBSD src/games/trek (trunk 7a9ca154a8f6144307865f23390a3c63b400b801): shield.c 1.13 2009/08/12.
|
|
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 The shields and the cloaking device: up, down, or asked.
|
|
35
|
-
*
|
|
36
|
-
* Deviation: the C's Udtab carries up/down as `(cmdfun)1` and
|
|
37
|
-
* `(cmdfun)0` in the value slot; here they ride in value2.
|
|
38
|
-
*
|
|
39
|
-
* @module
|
|
40
|
-
*/
|
|
41
|
-
import { CLOAK, DOCKED, QUEENE, SHIELD, SRSCAN } from './consts.js';
|
|
42
|
-
import { damaged } from './damaged.js';
|
|
43
|
-
import { getcodpar, getynpar, testnl } from './getpar.js';
|
|
44
|
-
import { out } from './out.js';
|
|
45
|
-
import { sprintf } from './printf.js';
|
|
46
|
-
/*
|
|
47
|
-
** SHIELD AND CLOAKING DEVICE CONTROL
|
|
48
|
-
**
|
|
49
|
-
** 'f' is one for auto shield up (in case of Condition RED),
|
|
50
|
-
** zero for shield control, and negative one for cloaking
|
|
51
|
-
** device control.
|
|
52
|
-
**
|
|
53
|
-
** Called with an 'up' or 'down' on the same line, it puts
|
|
54
|
-
** the shields/cloak into the specified mode. Otherwise it
|
|
55
|
-
** reports to the user the current mode, and asks if she wishes
|
|
56
|
-
** to change.
|
|
57
|
-
**
|
|
58
|
-
** This is not a free move. Hits that occur as a result of
|
|
59
|
-
** this move appear as though the shields are half up/down,
|
|
60
|
-
** so you get partial hits.
|
|
61
|
-
*/
|
|
62
|
-
const Udtab = [
|
|
63
|
-
{ abbrev: 'u', full: 'p', value: null, value2: 1 },
|
|
64
|
-
{ abbrev: 'd', full: 'own', value: null, value2: 0 },
|
|
65
|
-
];
|
|
66
|
-
/** SHIELD AND CLOAKING DEVICE CONTROL */
|
|
67
|
-
export async function shield(t, f) {
|
|
68
|
-
let i;
|
|
69
|
-
let device;
|
|
70
|
-
let dev2;
|
|
71
|
-
let dev3;
|
|
72
|
-
let ind;
|
|
73
|
-
let stat;
|
|
74
|
-
if (f > 0 && (t.s.Ship.shldup || damaged(t, SRSCAN)))
|
|
75
|
-
return;
|
|
76
|
-
if (f < 0) {
|
|
77
|
-
/* cloaking device */
|
|
78
|
-
if (t.s.Ship.ship === QUEENE) {
|
|
79
|
-
t.io.printf('Ye Faire Queene does not have the cloaking device.\n');
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
device = 'Cloaking device';
|
|
83
|
-
dev2 = 'is';
|
|
84
|
-
ind = CLOAK;
|
|
85
|
-
dev3 = 'it';
|
|
86
|
-
stat = 'cloaked';
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
/* shields */
|
|
90
|
-
device = 'Shields';
|
|
91
|
-
dev2 = 'are';
|
|
92
|
-
dev3 = 'them';
|
|
93
|
-
ind = SHIELD;
|
|
94
|
-
stat = 'shldup';
|
|
95
|
-
}
|
|
96
|
-
if (damaged(t, ind)) {
|
|
97
|
-
if (f <= 0)
|
|
98
|
-
await out(t, ind);
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
if (t.s.Ship.cond === DOCKED) {
|
|
102
|
-
t.io.printf('%s %s down while docked\n', device, dev2);
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
if (f <= 0 && !(await testnl(t))) {
|
|
106
|
-
const r = await getcodpar(t, 'Up or down', Udtab);
|
|
107
|
-
i = r.value2;
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
let s;
|
|
111
|
-
if (t.s.Ship[stat])
|
|
112
|
-
s = sprintf('%s %s up. Do you want %s down', device, dev2, dev3);
|
|
113
|
-
else
|
|
114
|
-
s = sprintf('%s %s down. Do you want %s up', device, dev2, dev3);
|
|
115
|
-
if (!(await getynpar(t, s)))
|
|
116
|
-
return;
|
|
117
|
-
i = t.s.Ship[stat] ? 0 : 1;
|
|
118
|
-
}
|
|
119
|
-
if (t.s.Ship[stat] === i) {
|
|
120
|
-
t.io.printf('%s already ', device);
|
|
121
|
-
if (i)
|
|
122
|
-
t.io.printf('up\n');
|
|
123
|
-
else
|
|
124
|
-
t.io.printf('down\n');
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
if (i) {
|
|
128
|
-
if (f >= 0)
|
|
129
|
-
t.s.Ship.energy -= t.s.Param.shupengy;
|
|
130
|
-
else
|
|
131
|
-
t.s.Ship.cloakgood = 0;
|
|
132
|
-
}
|
|
133
|
-
t.s.Move.free = 0;
|
|
134
|
-
if (f >= 0)
|
|
135
|
-
t.s.Move.shldchg = 1;
|
|
136
|
-
t.s.Ship[stat] = i;
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
//# sourceMappingURL=shield.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shield.js","sourceRoot":"","sources":["../../../../src/builtins/games/trek/shield.ts"],"names":[],"mappings":"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"}
|