1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-24 11:29:10 +00:00
freebsd/games/trek/board.x
Jordan K. Hubbard 554eb505f8 Bring in the 4.4 Lite games directory, modulo man page changes and segregation
of the x11 based games.  I'm not going to tag the originals with bsd_44_lite
and do this in two stages since it's just not worth it for this collection,
and I've got directory renames to deal with that way.  Bleah.
Submitted by:	jkh
1994-09-04 04:03:31 +00:00

60 lines
1.7 KiB
Plaintext

# include "trek.h"
/*
** BOARD A KLINGON
**
** A Klingon battle cruiser is boarded. If the boarding party
** is successful, they take over the vessel, otherwise, you
** have wasted a move. Needless to say, this move is not free.
**
** User parameters are the Klingon to be boarded and the size of
** the boarding party.
**
** Three things are computed. The first is the probability that
** the party takes over the Klingon. This is dependent on the
** size of the party, the condition of the Klingon (for which
** the energy left is used, which is definately incorrect), and
** the number of losses that the boarding party sustains. If too
** many of the boarding party are killed, the probability drops
** to zero. The second quantity computed is the losses that the
** boarding party sustains. This counts in your score. It
** depends on the absolute and relative size of the boarding
** party and the strength of the Klingon. The third quantity
** computed is the number of Klingon captives you get to take.
** It is actually computed as the number of losses they sustain
** subtracted from the size of their crew. It depends on the
** relative size of the party. All of these quantities are
** randomized in some fashion.
*/
board()
{
int prob;
int losses;
int captives;
float t;
int party;
if (checkout(XPORTER))
return;
k = selectklingon();
if (!k->srndreq)
{
return (printf("But captain! You must request surrender first\n"));
}
t = party / Param.crew;
prob = 1000 * t;
prob =- 500 * k->power / Param.klingpwr;
losses = party * k->power * t * 0.5 / Param.klingpwr * (franf() + 1.0);
if (losses * 4 > party)
prob = 0;
captives = %%% * (1.0 - t) * 0.5 * (franf() + 1.0);
if (prob > ranf(1000))
success!!!;