diff --git a/src/dokick.c b/src/dokick.c index 7f10a6c0c..95cc3f117 100644 --- a/src/dokick.c +++ b/src/dokick.c @@ -353,30 +353,36 @@ ghitm(register struct monst *mtmp, register struct obj *gold) ? "I'll take care of that; please move along." : "I'll take that; now get moving."); } else if (is_mercenary(mtmp->data)) { + boolean was_angry = !mtmp->mpeaceful; long goldreqd = 0L; - if (rn2(3)) { - if (mtmp->data == &mons[PM_SOLDIER]) - goldreqd = 100L; - else if (mtmp->data == &mons[PM_SERGEANT]) - goldreqd = 250L; - else if (mtmp->data == &mons[PM_LIEUTENANT]) - goldreqd = 500L; - else if (mtmp->data == &mons[PM_CAPTAIN]) - goldreqd = 750L; + if (mtmp->data == &mons[PM_SOLDIER]) + goldreqd = 100L; + else if (mtmp->data == &mons[PM_SERGEANT]) + goldreqd = 250L; + else if (mtmp->data == &mons[PM_LIEUTENANT]) + goldreqd = 500L; + else if (mtmp->data == &mons[PM_CAPTAIN]) + goldreqd = 750L; - if (goldreqd) { - umoney = money_cnt(g.invent); - if (value - > goldreqd - + (umoney + u.ulevel * rn2(5)) / ACURR(A_CHA)) - mtmp->mpeaceful = TRUE; - } + if (goldreqd && rn2(3)) { + umoney = money_cnt(g.invent); + goldreqd += (umoney + u.ulevel * rn2(5)) / ACURR(A_CHA); + if (value > goldreqd) + mtmp->mpeaceful = TRUE; } - if (mtmp->mpeaceful) + + if (!mtmp->mpeaceful) { + if (goldreqd) + verbalize("That's not enough, coward!"); + else /* unbribeable (watchman) */ + verbalize("I don't take bribes from scum like you!"); + } else if (was_angry) { verbalize("That should do. Now beat it!"); - else - verbalize("That's not enough, coward!"); + } else { + verbalize("Thanks for the tip, %s.", + flags.female ? "lady" : "buddy"); + } } return TRUE; }