Home | History | Annotate | Download | only in hack

Lines Matching defs:shkp

426 pay(long tmp, struct monst *shkp)
428 long robbed = ESHK(shkp)->robbed;
431 shkp->mgold += tmp;
437 ESHK(shkp)->robbed = robbed;
446 struct monst *shkp;
451 for (shkp = fmon; shkp; shkp = shkp->nmon)
452 if (shkp->isshk && dist(shkp->mx, shkp->my) < 3)
454 if (!shkp && u.uinshop &&
456 shkp = shopkeeper;
458 if (!shkp) {
462 ltmp = ESHK(shkp)->robbed;
463 if (shkp != shopkeeper && NOTANGRY(shkp)) {
465 pline("You do not owe %s anything.", monnam(shkp));
473 monnam(shkp), ltmp);
474 pay(ltmp, shkp);
476 pline("You give %s all your gold.", monnam(shkp));
477 pay(u.ugold, shkp);
482 ESHK(shkp)->robbed = 0;
483 ESHK(shkp)->following = 0;
484 if (ESHK(shkp)->shoplevel != dlevel) {
489 shkp->minvent = 0; /* %% */
490 shkp->mgold = 0;
491 mondead(shkp);
497 if (!ESHK(shkp)->billct) {
498 pline("You do not owe %s anything.", monnam(shkp));
503 if (ESHK(shkp)->robbed) {
507 (u.ugold < ESHK(shkp)->robbed) ? "partially " : "",
508 monnam(shkp));
509 pay(min(u.ugold, ESHK(shkp)->robbed), shkp);
510 ESHK(shkp)->robbed = 0;
513 if (ANGRY(shkp)) {
515 amonnam(shkp, "angry"));
523 pay(ltmp, shkp);
524 if (strncmp(ESHK(shkp)->customer, plname, PL_NSIZ)
526 pline("%s calms down.", Monnam(shkp));
527 NOTANGRY(shkp) = 1;
530 Monnam(shkp));
534 if (shkp != shopkeeper) {
919 struct monst *shkp = shopkeeper;
921 if (u.uinshop && shkp && !shkp->mfroz && !shkp->msleep &&
924 shkp->mx == ESHK(shkp)->shk.x && shkp->my == ESHK(shkp)->shk.y &&
925 u.ux == ESHK(shkp)->shd.x && u.uy == ESHK(shkp)->shd.y) {
926 pline("%s nimbly catches the %s.", Monnam(shkp), xname(obj));
927 obj->nobj = shkp->minvent;
928 shkp->minvent = obj;
938 shk_move(struct monst *shkp)
941 const struct permonst *mdat = shkp->data;
952 omx = shkp->mx;
953 omy = shkp->my;
956 if (ANGRY(shkp)) {
957 (void) hitu(shkp, d(mdat->damn, mdat->damd) + 1);
960 if (ESHK(shkp)->following) {
961 if (strncmp(ESHK(shkp)->customer, plname, PL_NSIZ)) {
963 plname, ESHK(shkp)->customer);
964 ESHK(shkp)->following = 0;
967 if (!ESHK(shkp)->robbed) { /* impossible? */
968 ESHK(shkp)->following = 0;
982 gx = ESHK(shkp)->shk.x;
983 gy = ESHK(shkp)->shk.y;
985 if (ESHK(shkp)->following || ((z = holetime()) >= 0 && z * z <= udist)) {
991 } else if (ANGRY(shkp)) {
994 if (shkp->mcansee && !Invis && cansee(omx, omy)) {
1005 uondoor = (u.ux == ESHK(shkp)->shd.x &&
1006 u.uy == ESHK(shkp)->shd.y);
1008 if (ESHK(shkp)->billct)
1020 if (((!ESHK(shkp)->robbed && !ESHK(shkp)->billct) || avoid)
1031 if (shkp->mconf) {
1037 cnt = mfndpos(shkp, poss, info, ALLOW_SSM);
1052 || shkroom != ESHK(shkp)->shoproom
1053 || ESHK(shkp)->following) {
1084 if (hitmm(shkp, mtmp) == 1 && rn2(3) &&
1085 hitmm(mtmp, shkp) == 2)
1089 (void) hitu(shkp, d(mdat->damn, mdat->damd) + 1);
1092 shkp->mx = nix;
1093 shkp->my = niy;
1094 pmon(shkp);
1097 mpickobj(shkp, ib);