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