| 3910 | } |
| 3911 | |
| 3912 | void |
| 3913 | mselftouch( |
| 3914 | struct monst *mon, |
| 3915 | const char *arg, |
| 3916 | boolean byplayer) |
| 3917 | { |
| 3918 | struct obj *mwep = MON_WEP(mon); |
| 3919 | |
| 3920 | if (mwep && mwep->otyp == CORPSE && touch_petrifies(&mons[mwep->corpsenm]) |
| 3921 | && !resists_ston(mon)) { |
| 3922 | if (cansee(mon->mx, mon->my)) { |
| 3923 | pline_mon(mon, "%s%s touches %s.", arg ? arg : "", |
| 3924 | arg ? mon_nam(mon) : Monnam(mon), |
| 3925 | corpse_xname(mwep, (const char *) 0, CXN_PFX_THE)); |
| 3926 | } |
| 3927 | minstapetrify(mon, byplayer); |
| 3928 | /* if life-saved, might not be able to continue wielding */ |
| 3929 | if (!DEADMONSTER(mon) |
| 3930 | && !which_armor(mon, W_ARMG) && !resists_ston(mon)) |
| 3931 | mwepgone(mon); |
| 3932 | } |
| 3933 | } |
| 3934 | |
| 3935 | /* start levitating */ |
| 3936 | void |
no test coverage detected