|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1980 Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution and use in source and binary forms are permitted provided ! 6: * that: (1) source distributions retain this entire copyright notice and ! 7: * comment, and (2) distributions including binaries display the following ! 8: * acknowledgement: ``This product includes software developed by the ! 9: * University of California, Berkeley and its contributors'' in the ! 10: * documentation or other materials provided with the distribution and in ! 11: * all advertising materials mentioning features or use of this software. ! 12: * Neither the name of the University nor the names of its contributors may ! 13: * be used to endorse or promote products derived from this software without ! 14: * specific prior written permission. ! 15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 16: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 17: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 18: */ ! 19: ! 20: #ifndef lint ! 21: static char sccsid[] = "@(#)ram.c 5.5 (Berkeley) 6/1/90"; ! 22: #endif /* not lint */ ! 23: ! 24: # include "trek.h" ! 25: ! 26: /* ! 27: ** RAM SOME OBJECT ! 28: ** ! 29: ** You have run into some sort of object. It may be a Klingon, ! 30: ** a star, or a starbase. If you run into a star, you are really ! 31: ** stupid, because there is no hope for you. ! 32: ** ! 33: ** If you run into something else, you destroy that object. You ! 34: ** also rack up incredible damages. ! 35: */ ! 36: ! 37: ram(ix, iy) ! 38: int ix, iy; ! 39: { ! 40: register int i; ! 41: register char c; ! 42: ! 43: printf("\07RED ALERT\07: collision imminent\n"); ! 44: c = Sect[ix][iy]; ! 45: switch (c) ! 46: { ! 47: ! 48: case KLINGON: ! 49: printf("%s rams Klingon at %d,%d\n", Ship.shipname, ix, iy); ! 50: killk(ix, iy); ! 51: break; ! 52: ! 53: case STAR: ! 54: case INHABIT: ! 55: printf("Yeoman Rand: Captain, isn't it getting hot in here?\n"); ! 56: sleep(2); ! 57: printf("Spock: Hull temperature approaching 550 Degrees Kelvin.\n"); ! 58: lose(L_STAR); ! 59: ! 60: case BASE: ! 61: printf("You ran into the starbase at %d,%d\n", ix, iy); ! 62: killb(Ship.quadx, Ship.quady); ! 63: /* don't penalize the captain if it wasn't his fault */ ! 64: if (!damaged(SINS)) ! 65: Game.killb += 1; ! 66: break; ! 67: } ! 68: sleep(2); ! 69: printf("%s heavily damaged\n", Ship.shipname); ! 70: ! 71: /* select the number of deaths to occur */ ! 72: i = 10 + ranf(20 * Game.skill); ! 73: Game.deaths += i; ! 74: Ship.crew -= i; ! 75: printf("McCoy: Take it easy Jim; we had %d casualties.\n", i); ! 76: ! 77: /* damage devices with an 80% probability */ ! 78: for (i = 0; i < NDEV; i++) ! 79: { ! 80: if (ranf(100) < 20) ! 81: continue; ! 82: damage(i, (2.5 * (franf() + franf()) + 1.0) * Param.damfac[i]); ! 83: } ! 84: ! 85: /* no chance that your shields remained up in all that */ ! 86: Ship.shldup = 0; ! 87: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.