1 /* $NetBSD: ram.c,v 1.3 1995/04/22 10:59:19 cgd Exp $ */ 2 3 /* 4 * Copyright (c) 1980, 1993 5 * The Regents of the University of California. All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 3. All advertising materials mentioning features or use of this software 16 * must display the following acknowledgement: 17 * This product includes software developed by the University of 18 * California, Berkeley and its contributors. 19 * 4. Neither the name of the University nor the names of its contributors 20 * may be used to endorse or promote products derived from this software 21 * without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 */ 35 36 #ifndef lint 37 #if 0 38 static char sccsid[] = "@(#)ram.c 8.1 (Berkeley) 5/31/93"; 39 #else 40 static char rcsid[] = "$NetBSD: ram.c,v 1.3 1995/04/22 10:59:19 cgd Exp $"; 41 #endif 42 #endif /* not lint */ 43 44 # include "trek.h" 45 46 /* 47 ** RAM SOME OBJECT 48 ** 49 ** You have run into some sort of object. It may be a Klingon, 50 ** a star, or a starbase. If you run into a star, you are really 51 ** stupid, because there is no hope for you. 52 ** 53 ** If you run into something else, you destroy that object. You 54 ** also rack up incredible damages. 55 */ 56 57 ram(ix, iy) 58 int ix, iy; 59 { 60 register int i; 61 register char c; 62 63 printf("\07RED ALERT\07: collision imminent\n"); 64 c = Sect[ix][iy]; 65 switch (c) 66 { 67 68 case KLINGON: 69 printf("%s rams Klingon at %d,%d\n", Ship.shipname, ix, iy); 70 killk(ix, iy); 71 break; 72 73 case STAR: 74 case INHABIT: 75 printf("Yeoman Rand: Captain, isn't it getting hot in here?\n"); 76 sleep(2); 77 printf("Spock: Hull temperature approaching 550 Degrees Kelvin.\n"); 78 lose(L_STAR); 79 80 case BASE: 81 printf("You ran into the starbase at %d,%d\n", ix, iy); 82 killb(Ship.quadx, Ship.quady); 83 /* don't penalize the captain if it wasn't his fault */ 84 if (!damaged(SINS)) 85 Game.killb += 1; 86 break; 87 } 88 sleep(2); 89 printf("%s heavily damaged\n", Ship.shipname); 90 91 /* select the number of deaths to occur */ 92 i = 10 + ranf(20 * Game.skill); 93 Game.deaths += i; 94 Ship.crew -= i; 95 printf("McCoy: Take it easy Jim; we had %d casualties.\n", i); 96 97 /* damage devices with an 80% probability */ 98 for (i = 0; i < NDEV; i++) 99 { 100 if (ranf(100) < 20) 101 continue; 102 damage(i, (2.5 * (franf() + franf()) + 1.0) * Param.damfac[i]); 103 } 104 105 /* no chance that your shields remained up in all that */ 106 Ship.shldup = 0; 107 } 108