xref: /dflybsd-src/games/monop/spec.c (revision 11c3b524747d8c5b8633b938fd0fceb1d5878a2e)
1*11c3b524SAaron LI /*	$NetBSD: spec.c,v 1.11 2012/06/19 05:35:32 dholland Exp $	*/
2*11c3b524SAaron LI 
3*11c3b524SAaron LI /*
4*11c3b524SAaron LI  * Copyright (c) 1980, 1993
5*11c3b524SAaron LI  *	The Regents of the University of California.  All rights reserved.
6*11c3b524SAaron LI  *
7*11c3b524SAaron LI  * Redistribution and use in source and binary forms, with or without
8*11c3b524SAaron LI  * modification, are permitted provided that the following conditions
9*11c3b524SAaron LI  * are met:
10*11c3b524SAaron LI  * 1. Redistributions of source code must retain the above copyright
11*11c3b524SAaron LI  *    notice, this list of conditions and the following disclaimer.
12*11c3b524SAaron LI  * 2. Redistributions in binary form must reproduce the above copyright
13*11c3b524SAaron LI  *    notice, this list of conditions and the following disclaimer in the
14*11c3b524SAaron LI  *    documentation and/or other materials provided with the distribution.
15*11c3b524SAaron LI  * 3. Neither the name of the University nor the names of its contributors
16*11c3b524SAaron LI  *    may be used to endorse or promote products derived from this software
17*11c3b524SAaron LI  *    without specific prior written permission.
18*11c3b524SAaron LI  *
19*11c3b524SAaron LI  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20*11c3b524SAaron LI  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21*11c3b524SAaron LI  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22*11c3b524SAaron LI  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23*11c3b524SAaron LI  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24*11c3b524SAaron LI  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25*11c3b524SAaron LI  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26*11c3b524SAaron LI  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27*11c3b524SAaron LI  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28*11c3b524SAaron LI  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29*11c3b524SAaron LI  * SUCH DAMAGE.
30*11c3b524SAaron LI  *
31*11c3b524SAaron LI  *	@(#)spec.c	8.1 (Berkeley) 5/31/93
32*11c3b524SAaron LI  */
33*11c3b524SAaron LI 
34*11c3b524SAaron LI #include "monop.h"
35*11c3b524SAaron LI #include "deck.h"
36*11c3b524SAaron LI 
37*11c3b524SAaron LI static const char	*const perc[]	= {
38*11c3b524SAaron LI 	"10%", "ten percent", "%", "$200", "200", 0
39*11c3b524SAaron LI 	};
40*11c3b524SAaron LI 
41*11c3b524SAaron LI /*
42*11c3b524SAaron LI  * collect income tax
43*11c3b524SAaron LI  */
44*11c3b524SAaron LI void
inc_tax(void)45*11c3b524SAaron LI inc_tax(void)
46*11c3b524SAaron LI {
47*11c3b524SAaron LI 	int worth, com_num;
48*11c3b524SAaron LI 
49*11c3b524SAaron LI 	com_num = getinp("Do you wish to lose 10% of your total worth or "
50*11c3b524SAaron LI 	    "$200? ", perc);
51*11c3b524SAaron LI 	worth = cur_p->money + prop_worth(cur_p);
52*11c3b524SAaron LI 	printf("You were worth $%d", worth);
53*11c3b524SAaron LI 	worth /= 10;
54*11c3b524SAaron LI 	if (com_num > 2) {
55*11c3b524SAaron LI 		if (worth < 200)
56*11c3b524SAaron LI 			printf(".  Good try, but not quite.\n");
57*11c3b524SAaron LI 		else if (worth > 200)
58*11c3b524SAaron LI 			lucky(".\nGood guess.  ");
59*11c3b524SAaron LI 		cur_p->money -= 200;
60*11c3b524SAaron LI 	}
61*11c3b524SAaron LI 	else {
62*11c3b524SAaron LI 		printf(", so you pay $%d", worth);
63*11c3b524SAaron LI 		if (worth > 200)
64*11c3b524SAaron LI 			printf("  OUCH!!!!.\n");
65*11c3b524SAaron LI 		else if (worth < 200)
66*11c3b524SAaron LI 			lucky("\nGood guess.  ");
67*11c3b524SAaron LI 		cur_p->money -= worth;
68*11c3b524SAaron LI 	}
69*11c3b524SAaron LI 	if (worth == 200)
70*11c3b524SAaron LI 		lucky("\nIt makes no difference!  ");
71*11c3b524SAaron LI }
72*11c3b524SAaron LI 
73*11c3b524SAaron LI /*
74*11c3b524SAaron LI  * move player to jail
75*11c3b524SAaron LI  */
76*11c3b524SAaron LI void
goto_jail(void)77*11c3b524SAaron LI goto_jail(void)
78*11c3b524SAaron LI {
79*11c3b524SAaron LI 	cur_p->loc = JAIL;
80*11c3b524SAaron LI }
81*11c3b524SAaron LI 
82*11c3b524SAaron LI /*
83*11c3b524SAaron LI  * landing on luxury tax
84*11c3b524SAaron LI  */
85*11c3b524SAaron LI void
lux_tax(void)86*11c3b524SAaron LI lux_tax(void)
87*11c3b524SAaron LI {
88*11c3b524SAaron LI 	printf("You lose $75\n");
89*11c3b524SAaron LI 	cur_p->money -= 75;
90*11c3b524SAaron LI }
91*11c3b524SAaron LI 
92*11c3b524SAaron LI /*
93*11c3b524SAaron LI  * draw community chest card
94*11c3b524SAaron LI  */
95*11c3b524SAaron LI void
cc(void)96*11c3b524SAaron LI cc(void)
97*11c3b524SAaron LI {
98*11c3b524SAaron LI 	get_card(&CC_D);
99*11c3b524SAaron LI }
100*11c3b524SAaron LI 
101*11c3b524SAaron LI /*
102*11c3b524SAaron LI  * draw chance card
103*11c3b524SAaron LI  */
104*11c3b524SAaron LI void
chance(void)105*11c3b524SAaron LI chance(void)
106*11c3b524SAaron LI {
107*11c3b524SAaron LI 	get_card(&CH_D);
108*11c3b524SAaron LI }
109