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