|
|
1.1 root 1: #ifndef lint
2: static char sccsid[] = "@(#)ram.c 4.2 (Berkeley) 5/9/83";
3: #endif not lint
4:
5: # include "trek.h"
6:
7: /*
8: ** RAM SOME OBJECT
9: **
10: ** You have run into some sort of object. It may be a Klingon,
11: ** a star, or a starbase. If you run into a star, you are really
12: ** stupid, because there is no hope for you.
13: **
14: ** If you run into something else, you destroy that object. You
15: ** also rack up incredible damages.
16: */
17:
18: ram(ix, iy)
19: int ix, iy;
20: {
21: register int i;
22: register char c;
23:
24: printf("RED ALERT: collision imminent\n");
25: c = Sect[ix][iy];
26: switch (c)
27: {
28:
29: case KLINGON:
30: printf("%s rams Klingon at %d,%d\n", Ship.shipname, ix, iy);
31: killk(ix, iy);
32: break;
33:
34: case STAR:
35: case INHABIT:
36: printf("Yeoman Rand: Captain, isn't it getting hot in here?\n");
37: sleep(2);
38: printf("Spock: Hull temperature approaching 550 Degrees Kelvin.\n");
39: lose(L_STAR);
40:
41: case BASE:
42: printf("You ran into the starbase at %d,%d\n", ix, iy);
43: killb(Ship.quadx, Ship.quady);
44: /* don't penalize the captain if it wasn't his fault */
45: if (!damaged(SINS))
46: Game.killb += 1;
47: break;
48: }
49: sleep(2);
50: printf("%s heavily damaged\n", Ship.shipname);
51:
52: /* select the number of deaths to occur */
53: i = 10 + ranf(20 * Game.skill);
54: Game.deaths += i;
55: Ship.crew -= i;
56: printf("McCoy: Take it easy Jim; we had %d casualties.\n", i);
57:
58: /* damage devices with an 80% probability */
59: for (i = 0; i < NDEV; i++)
60: {
61: if (ranf(100) < 20)
62: continue;
63: damage(i, (2.5 * (franf() + franf()) + 1.0) * Param.damfac[i]);
64: }
65:
66: /* no chance that your shields remained up in all that */
67: Ship.shldup = 0;
68: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.