(payo, scuttle_tradeship, sdump): Disclose construction site only to
original owner and deities. Closes #815197.
This commit is contained in:
parent
c2ab6de7e7
commit
a99bc3be73
4 changed files with 35 additions and 11 deletions
|
@ -2,8 +2,10 @@
|
|||
.NA payoff "Find out the current payoff of a trade ship"
|
||||
.LV Expert
|
||||
.SY "payoff [<SHIP/FLEET> | <SECTS>]"
|
||||
The payoff command gives a census of your trade ships, and lists
|
||||
the payoff they would give if scuttled at the current sector.
|
||||
The payoff command gives a census of your trade ships, and lists the
|
||||
payoff they would give if scuttled at the current sector. Payoff can
|
||||
only be calculated for trade ships you built yourself, not for ships
|
||||
you `acquired' from somebody else.
|
||||
.s1
|
||||
The <SHIP/FLEET> and <SECTS> arguments are provided in case you only
|
||||
wish to look at one ship
|
||||
|
|
|
@ -92,11 +92,16 @@ payo(void)
|
|||
pr("%3d ", ship.shp_own);
|
||||
pr("%4d ", ni.cur);
|
||||
pr("%-16.16s ", mchr[(int)ship.shp_type].m_name);
|
||||
if (ship.shp_own != ship.shp_orig_own && !player->god) {
|
||||
/* Don't disclose construction site to pirates! */
|
||||
pr(" ? ");
|
||||
prxy("%4d,%-4d ", ship.shp_x, ship.shp_y, player->cnum);
|
||||
pr(" ? $ ?\n");
|
||||
continue;
|
||||
}
|
||||
prxy("%4d,%-4d ", ship.shp_orig_x, ship.shp_orig_y, player->cnum);
|
||||
prxy("%4d,%-4d ", ship.shp_x, ship.shp_y, player->cnum);
|
||||
|
||||
getsect(ship.shp_x, ship.shp_y, §);
|
||||
|
||||
dist = mapdist(ship.shp_x, ship.shp_y,
|
||||
ship.shp_orig_x, ship.shp_orig_y);
|
||||
pr("%4d ", dist);
|
||||
|
|
|
@ -80,10 +80,14 @@ scuttle_tradeship(struct shpstr *sp, int interactive)
|
|||
if (sect.sct_own && sect.sct_type == SCT_HARBR) {
|
||||
dist = mapdist(sp->shp_x, sp->shp_y,
|
||||
sp->shp_orig_x, sp->shp_orig_y);
|
||||
if (interactive)
|
||||
pr("%s has gone %d sects\n", prship(sp), dist);
|
||||
else
|
||||
wu(0, sp->shp_own, "%s has gone %d sects\n", prship(sp), dist);
|
||||
/* Don't disclose distance to to pirates */
|
||||
if (sp->shp_own == sp->shp_orig_own) {
|
||||
if (interactive)
|
||||
pr("%s has gone %d sects\n", prship(sp), dist);
|
||||
else
|
||||
wu(0, sp->shp_own, "%s has gone %d sects\n",
|
||||
prship(sp), dist);
|
||||
}
|
||||
if (dist < trade_1_dist)
|
||||
cash = 0;
|
||||
else if (dist < trade_2_dist)
|
||||
|
@ -110,7 +114,7 @@ scuttle_tradeship(struct shpstr *sp, int interactive)
|
|||
wu(0, sp->shp_own, "Unfortunately, you make $0 on this trade.\n");
|
||||
} else if (cash && interactive) {
|
||||
player->dolcost -= cash;
|
||||
} else if (interactive) {
|
||||
} else if (interactive && sp->shp_own == sp->shp_orig_own) {
|
||||
pr("You won't get any money if you scuttle in %s!",
|
||||
xyas(sp->shp_x, sp->shp_y, player->cnum));
|
||||
sprintf(buf, "Are you sure you want to scuttle %s? ", prship(sp));
|
||||
|
|
|
@ -384,10 +384,23 @@ sdump(void)
|
|||
pr(" %d", ship.shp_glim);
|
||||
break;
|
||||
case 32:
|
||||
pr(" %d", xrel(np, ship.shp_orig_x));
|
||||
/*
|
||||
* Disclosing construction site allows pirates to find
|
||||
* harbors. Disclose it only to the original owner
|
||||
* and to deities. Else dump illegal coordinates
|
||||
* 1,0
|
||||
*/
|
||||
if (ship.shp_own == ship.shp_orig_own || player->god)
|
||||
pr(" %d", xrel(np, ship.shp_orig_x));
|
||||
else
|
||||
pr(" 1");
|
||||
break;
|
||||
case 33:
|
||||
pr(" %d", yrel(np, ship.shp_orig_y));
|
||||
/* see case 32 */
|
||||
if (ship.shp_own == ship.shp_orig_own || player->god)
|
||||
pr(" %d", yrel(np, ship.shp_orig_y));
|
||||
else
|
||||
pr(" 0");
|
||||
break;
|
||||
case 34:
|
||||
pr(" %c%s%c", '"', ship.shp_name, '"');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue