pull request #1092 - monster blindness

Pull request from entrez:  a monster can become permanently blind via
camera flash but being hit by vapors from thrown potion of blindness
would set a blindness countdown timer and blindness would be cured
when that expired.

Closes #1092
This commit is contained in:
PatR
2023-09-07 06:01:21 -07:00
3 changed files with 7 additions and 1 deletions

View File

@@ -248,6 +248,8 @@ struct monst {
#define engulfing_u(mon) (u.uswallow && (u.ustuck == (mon)))
#define helpless(mon) ((mon)->msleeping || !(mon)->mcanmove)
#define mon_perma_blind(mon) (!mon->mcansee && !mon->mblinded)
#define mon_offmap(mon) (((mon)->mstate & (MON_DETACH|MON_MIGRATING|MON_LIMBO|MON_OFFMAP)) != 0)
/* Get the maximum difficulty monsters that can currently be generated,

View File

@@ -226,6 +226,10 @@ can_blnd(
if (!haseyes(mdef->data))
return FALSE;
/* if monster has been permanently blinded, the deed is already done */
if (!is_you && mon_perma_blind(mdef))
return FALSE;
/* /corvus oculum corvi non eruit/
a saying expressed in Latin rather than a zoological observation:
"a crow will not pluck out the eye of another crow"

View File

@@ -1786,7 +1786,7 @@ potionhit(struct monst *mon, struct obj *obj, int how)
mon_adjust_speed(mon, 1, obj);
break;
case POT_BLINDNESS:
if (haseyes(mon->data)) {
if (haseyes(mon->data) && !mon_perma_blind(mon)) {
int btmp = 64 + rn2(32)
+ rn2(32) * !resist(mon, POTION_CLASS, 0, NOTELL);