(buy, check_market, trad, check_trade): Remove the following virtually
undocumented feature: When a buyer didn't have enough money at the time of the trade, the seller *automatically* granted a high-interest, medium term loan for up to 90% of the price. This is just a silly trap for unwary sellers and buyers alike. (N_FIN_TROUBLE, N_CREDIT_JUNK): Unused, remove. (rpt): Update accordingly.
This commit is contained in:
parent
b2ae3257ca
commit
ada0ed8e61
7 changed files with 5 additions and 151 deletions
|
@ -137,8 +137,8 @@ struct rptstr {
|
|||
#define N_PARA_UNOCC 75
|
||||
#define N_ALOSE_SCT 76
|
||||
#define N_PLOSE_SCT 77
|
||||
#define N_FIN_TROUBLE 78
|
||||
#define N_CREDIT_JUNK 79
|
||||
/* unused 78 */
|
||||
/* unused 79 */
|
||||
#define N_WELCH_DEAL 80
|
||||
#define N_LND_LOSE 81
|
||||
#define N_BOARD_LAND 82
|
||||
|
|
|
@ -25,11 +25,6 @@ Typical output looks like:
|
|||
Looks just like Christmas at K-mart, doesn't it!
|
||||
|
||||
Which lot are you bidding on: 1
|
||||
WARNING! This market issues credit. If you make more
|
||||
bids than your treasury can cover at the time of sale,
|
||||
you can potentially go into financial ruin, and see no
|
||||
gains. You have been warned.
|
||||
|
||||
How much per unit: 2
|
||||
destination sector : 3,1
|
||||
Your bid is being considered.
|
||||
|
|
|
@ -24,7 +24,7 @@ Which will print the news for the last two days.
|
|||
You can select whose news to see with the ?actor or ?victim selectors,
|
||||
and what news to see with the ?action selector. Actions are:
|
||||
.nf
|
||||
1) Successful Sector attack
|
||||
1) Successful sector attack
|
||||
2) Unsuccessful attack
|
||||
3) Spy shot
|
||||
4) Telegram sent
|
||||
|
@ -96,8 +96,6 @@ and what news to see with the ?action selector. Actions are:
|
|||
75) Paradrop into unoccuppied land
|
||||
76) Failed assault
|
||||
77) Failed paradrop
|
||||
78) Forced loan taken out (by the market)
|
||||
79) Forced loan denied (by the market)
|
||||
80) Failed boarding of a land unit
|
||||
81) Successful boarding of a land unit
|
||||
.fi
|
||||
|
|
|
@ -24,11 +24,6 @@ Typical output looks like:
|
|||
0 $ 1000 2 0.06 hrs ( 2) tech 0 100% inf1 infantry 1 [f:21 ] #3
|
||||
Which lot to buy: 0
|
||||
Destination sector: 4,0
|
||||
WARNING! This market issues credit. If you make more
|
||||
bids than your treasury can cover at the time of sale,
|
||||
you can potentially go into financial ruin, and see no
|
||||
gains. You have been warned.
|
||||
|
||||
How much do you bid: 1100
|
||||
Your bid on lot #0 is being considered.
|
||||
.FI
|
||||
|
|
|
@ -105,10 +105,6 @@ buy(void)
|
|||
pr("You can't bid on your own lot.\n");
|
||||
return RET_OK;
|
||||
}
|
||||
pr("WARNING! This market issues credit. If you make more\n");
|
||||
pr(" bids than your treasury can cover at the time of sale,\n");
|
||||
pr(" you can potentially go into financial ruin, and see no\n");
|
||||
pr(" gains. You have been warned.\n\n");
|
||||
if ((p = getstarg(player->argp[3], "How much per unit: ", buf)) == 0)
|
||||
return RET_SYN;
|
||||
bid = atof(p);
|
||||
|
@ -219,11 +215,6 @@ check_market(void)
|
|||
double monleft;
|
||||
double gain;
|
||||
double price;
|
||||
struct lonstr loan;
|
||||
long outstanding; /* Outstanding debt */
|
||||
long couval; /* Value of country's goods */
|
||||
int foundloan;
|
||||
int j;
|
||||
|
||||
/* logerror("Checking the market.\n");*/
|
||||
for (n = 0; getcomm(n, &comm); n++) {
|
||||
|
@ -261,63 +252,6 @@ check_market(void)
|
|||
/* Subtract the amount of money that needs to come out in a loan. */
|
||||
subleft = monleft;
|
||||
|
||||
if (opt_LOANS) {
|
||||
/* Try to make a loan for the rest from the owner. */
|
||||
if (monleft > 0 && tmoney > 0) {
|
||||
if ((float)((float)price / (float)(price + monleft)) < 0.1) {
|
||||
wu(0, comm.com_maxbidder,
|
||||
"You need at least 10 percent down to purchase something on credit.\n");
|
||||
} else {
|
||||
couval = get_couval(comm.com_maxbidder);
|
||||
outstanding = get_outstand(comm.com_maxbidder);
|
||||
couval = couval - outstanding;
|
||||
if (couval > monleft) {
|
||||
/* Make the loan */
|
||||
foundloan = 0;
|
||||
for (j = 0; getloan(j, &loan); j++) {
|
||||
if (loan.l_status != LS_FREE)
|
||||
continue;
|
||||
foundloan = 1;
|
||||
break;
|
||||
}
|
||||
if (!foundloan)
|
||||
ef_extend(EF_LOAN, 1);
|
||||
loan.l_status = LS_SIGNED;
|
||||
loan.l_loner = comm.com_owner;
|
||||
loan.l_lonee = comm.com_maxbidder;
|
||||
loan.l_irate = 25;
|
||||
loan.l_ldur = 4;
|
||||
loan.l_amtpaid = 0;
|
||||
loan.l_amtdue = monleft;
|
||||
time(&loan.l_lastpay);
|
||||
loan.l_duedate =
|
||||
(loan.l_ldur * SECS_PER_DAY) + loan.l_lastpay;
|
||||
loan.l_uid = j;
|
||||
if (!putloan(j, &loan))
|
||||
logerror("Error writing to the loan file.\n");
|
||||
else
|
||||
monleft = 0;
|
||||
nreport(comm.com_maxbidder, N_FIN_TROUBLE,
|
||||
comm.com_owner, 1);
|
||||
wu(0, comm.com_maxbidder,
|
||||
"You just took loan #%d for $%ld to cover the cost of your purchase.\n",
|
||||
j, loan.l_amtdue);
|
||||
wu(0, comm.com_owner,
|
||||
"You just extended loan #%d to %s to help with the purchase cose.\n",
|
||||
j, cname(comm.com_maxbidder));
|
||||
} else {
|
||||
nreport(comm.com_maxbidder, N_CREDIT_JUNK,
|
||||
comm.com_owner, 1);
|
||||
wu(0, comm.com_maxbidder,
|
||||
"You don't have enough credit to get a loan.\n");
|
||||
wu(0, comm.com_owner,
|
||||
"You just turned down a loan to %s.\n",
|
||||
cname(comm.com_maxbidder));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (monleft > 0) {
|
||||
nreport(comm.com_maxbidder, N_WELCH_DEAL, comm.com_owner, 1);
|
||||
wu(0, comm.com_maxbidder,
|
||||
|
|
|
@ -257,11 +257,6 @@ trad(void)
|
|||
}
|
||||
}
|
||||
|
||||
pr("WARNING! This market issues credit. If you make more\n");
|
||||
pr(" bids than your treasury can cover at the time of sale,\n");
|
||||
pr(" you can potentially go into financial ruin, and see no\n");
|
||||
pr(" gains. You have been warned.\n\n");
|
||||
|
||||
if ((p = getstring("How much do you bid: ", buf)) == 0 || *p == 0)
|
||||
return RET_OK;
|
||||
if (!trade_check_ok(&trade, &tg))
|
||||
|
@ -298,7 +293,6 @@ int
|
|||
check_trade(void)
|
||||
{
|
||||
int n;
|
||||
int j;
|
||||
struct nstr_item ni;
|
||||
struct plnstr plane;
|
||||
struct lndstr land;
|
||||
|
@ -311,10 +305,6 @@ check_trade(void)
|
|||
double tleft;
|
||||
float price;
|
||||
int saveid;
|
||||
struct lonstr loan;
|
||||
long outstanding; /* Outstanding debt */
|
||||
long couval; /* Value of country's goods */
|
||||
int foundloan;
|
||||
|
||||
/* logerror("Checking the trades.\n");*/
|
||||
for (n = 0; gettrade(n, &trade); n++) {
|
||||
|
@ -368,62 +358,6 @@ check_trade(void)
|
|||
|
||||
subleft = monleft;
|
||||
|
||||
if (opt_LOANS) {
|
||||
/* Try to make a loan for the rest from the owner. */
|
||||
if (monleft > 0 && natp->nat_money > 0) {
|
||||
if ((float)((float)price / (float)(price + monleft)) < 0.1) {
|
||||
wu(0, trade.trd_maxbidder,
|
||||
"You need at least 10 percent down to purchase something on credit.\n");
|
||||
} else {
|
||||
couval = get_couval(trade.trd_maxbidder);
|
||||
outstanding = get_outstand(trade.trd_maxbidder);
|
||||
couval = couval - outstanding;
|
||||
if (couval > monleft) {
|
||||
/* Make the loan */
|
||||
foundloan = 0;
|
||||
for (j = 0; getloan(j, &loan); j++) {
|
||||
if (loan.l_status != LS_FREE)
|
||||
continue;
|
||||
foundloan = 1;
|
||||
break;
|
||||
}
|
||||
if (!foundloan)
|
||||
ef_extend(EF_LOAN, 1);
|
||||
loan.l_status = LS_SIGNED;
|
||||
loan.l_loner = trade.trd_owner;
|
||||
loan.l_lonee = trade.trd_maxbidder;
|
||||
loan.l_irate = 25;
|
||||
loan.l_ldur = 4;
|
||||
loan.l_amtpaid = 0;
|
||||
loan.l_amtdue = monleft;
|
||||
time(&loan.l_lastpay);
|
||||
loan.l_duedate =
|
||||
(loan.l_ldur * SECS_PER_DAY) + loan.l_lastpay;
|
||||
loan.l_uid = j;
|
||||
if (!putloan(j, &loan))
|
||||
logerror("Error writing to the loan file.\n");
|
||||
else
|
||||
monleft = 0;
|
||||
nreport(trade.trd_maxbidder, N_FIN_TROUBLE,
|
||||
trade.trd_owner, 1);
|
||||
wu(0, trade.trd_maxbidder,
|
||||
"You just took loan #%d for $%.2f to cover the cost of your purchase.\n",
|
||||
j, (float)loan.l_amtdue);
|
||||
wu(0, trade.trd_owner,
|
||||
"You just extended loan #%d to %s to help with the purchase cost.\n",
|
||||
j, cname(trade.trd_maxbidder));
|
||||
} else {
|
||||
nreport(trade.trd_maxbidder, N_CREDIT_JUNK,
|
||||
trade.trd_owner, 1);
|
||||
wu(0, trade.trd_maxbidder,
|
||||
"You don't have enough credit to get a loan.\n");
|
||||
wu(0, trade.trd_owner,
|
||||
"You just turned down a loan to %s.\n",
|
||||
cname(trade.trd_maxbidder));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (monleft > 0) {
|
||||
nreport(trade.trd_maxbidder, N_WELCH_DEAL, trade.trd_owner, 1);
|
||||
wu(0, trade.trd_owner,
|
||||
|
|
|
@ -210,10 +210,8 @@ struct rptstr rpt[] = {
|
|||
/* 76*/ "naval forces massacred in failed assault of %s" } },
|
||||
{-4, N_FRONT, { "paratroopers destroyed in failed air-assault on %s",
|
||||
/* 77*/ "loses parachutists in failed air-assault of %s" } },
|
||||
{ 0, N_ECON, { "is forced into debt to %s by bad management",
|
||||
/* 78*/ "shows bad financial planning" } },
|
||||
{ 0, N_ECON, { "has its credit rating downgraded to unworthy status",
|
||||
/* 79*/ "is denied credit by %s due to lack of collatoral" } },
|
||||
/* 78*/ { 0, 0, { no_news, no_news } },
|
||||
/* 79*/ { 0, 0, { no_news, no_news } },
|
||||
{ 0, N_ECON, { "is unable to fulfill its financial obligations to %s",
|
||||
/* 80*/ "welches on a deal with %s" } },
|
||||
{ -3, N_FRONT, { "is repelled by %s while attempting to board a land unit",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue