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
+1
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 neglected to report that target monster was awakened in the process
hero movement affects the water bubble movement direction hero movement affects the water bubble movement direction
pets and peacefuls avoid a location hero just kicked 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 Fixes to 3.7.0-x General Problems Exposed Via git Repository
+1
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 globby_donation(struct obj *, struct obj *); */
extern void credit_report(struct monst *shkp, int idx, extern void credit_report(struct monst *shkp, int idx,
boolean silent) NONNULLARG1; boolean silent) NONNULLARG1;
extern void use_unpaid_trapobj(struct obj *, coordxy, coordxy) NONNULLARG1;
/* ### shknam.c ### */ /* ### shknam.c ### */
+1
View File
@@ -2880,6 +2880,7 @@ use_trap(struct obj *otmp)
} }
} }
You("begin setting %s%s.", shk_your(buf, otmp), trapname(ttyp, FALSE)); 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); set_occupation(set_trap, occutext, 0);
return; return;
} }
+17
View File
@@ -5523,4 +5523,21 @@ globby_bill_fixup(struct obj *obj_absorber, struct obj *obj_absorbed)
return; 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*/ /*shk.c*/