Shopkeepers bill you for using their bear trap or land mine

This commit is contained in:
Pasi Kallinen
2024-04-13 15:10:15 +03:00
parent a57d0e6f4f
commit 3086f16386
4 changed files with 20 additions and 0 deletions

View File

@@ -1399,6 +1399,7 @@ gold thrown or kicked at a sleeping monster with the 'greedy' attribute gets
neglected to report that target monster was awakened in the process
hero movement affects the water bubble movement direction
pets and peacefuls avoid a location hero just kicked
shopkeepers bill you for using their bear trap or land mine
Fixes to 3.7.0-x General Problems Exposed Via git Repository

View File

@@ -2847,6 +2847,7 @@ extern void globby_bill_fixup(struct obj *, struct obj *) NONNULLARG12;
/*extern void globby_donation(struct obj *, struct obj *); */
extern void credit_report(struct monst *shkp, int idx,
boolean silent) NONNULLARG1;
extern void use_unpaid_trapobj(struct obj *, coordxy, coordxy) NONNULLARG1;
/* ### shknam.c ### */

View File

@@ -2880,6 +2880,7 @@ use_trap(struct obj *otmp)
}
}
You("begin setting %s%s.", shk_your(buf, otmp), trapname(ttyp, FALSE));
use_unpaid_trapobj(otmp, u.ux, u.uy);
set_occupation(set_trap, occutext, 0);
return;
}

View File

@@ -5523,4 +5523,21 @@ globby_bill_fixup(struct obj *obj_absorber, struct obj *obj_absorbed)
return;
}
/* Shopkeeper bills for use of a land mine or bear trap they own */
void
use_unpaid_trapobj(struct obj *otmp, coordxy x, coordxy y)
{
if (otmp->unpaid) {
if (!Deaf) {
struct monst *shkp = find_objowner(otmp, x, y);
if (shkp && !muteshk(shkp)) {
SetVoice(shkp, 0, 80, 0);
verbalize("You set it, you buy it!");
}
}
bill_dummy_object(otmp);
}
}
/*shk.c*/