]> granicus.if.org Git - nethack/commitdiff
C342-46: cleric cast lightning
authornethack.allison <nethack.allison>
Sat, 5 Jun 2004 05:22:40 +0000 (05:22 +0000)
committernethack.allison <nethack.allison>
Sat, 5 Jun 2004 05:22:40 +0000 (05:22 +0000)
Get rid of an old known buglist entry C342-46
> Cleric cast lightning doesn't blind as other lightning does

doc/fixes34.4
include/extern.h
src/mcastu.c
src/zap.c

index 6e6baa5c65c1d8e37a44efba6682407b4ae7172c..50968148745cf3fc804ffac6a9a47cc9ece3b1fd 100644 (file)
@@ -29,6 +29,7 @@ calculate weight of corpses on special levels correctly
 Sting could trigger premature display of orcs during savegame restore
 Sting now glows light blue again
 prevent "offering" or other words with similar ending from matching ring quote
+make cleric cast lightning blind as other lightning does
 
 
 Platform- and/or Interface-Specific Fixes
index a684735dfc48bd1ca538516a209ba3b908320a2d..c7c6f06c521f5de992764a60afcaceb500244d26 100644 (file)
@@ -2451,6 +2451,7 @@ E void FDECL(destroy_item, (int,int));
 E int FDECL(destroy_mitem, (struct monst *,int,int));
 E int FDECL(resist, (struct monst *,CHAR_P,int,int));
 E void NDECL(makewish);
+E boolean FDECL(flashburn, (long));
 
 #endif /* !MAKEDEFS_C && !LEV_LEX_C */
 
index 24ea19ad6d936ad954d079c74386aeb277bc25a1..9135399a0b2566bb20d58b170eecae7300195e05 100644 (file)
@@ -522,6 +522,7 @@ int spellnum;
        if (Half_spell_damage) dmg = (dmg + 1) / 2;
        destroy_item(WAND_CLASS, AD_ELEC);
        destroy_item(RING_CLASS, AD_ELEC);
+       (void) flashburn((long)rnd(100));
        break;
     }
     case CLC_CURSE_ITEMS:
index e6f884bbdb53a5772e760769f70ca1529e31faa7..fededb390a5fc5fbac00138fce142bd3a2af86fb 100644 (file)
--- a/src/zap.c
+++ b/src/zap.c
@@ -1920,11 +1920,7 @@ boolean ordinary;
                    }
                    destroy_item(WAND_CLASS, AD_ELEC);
                    destroy_item(RING_CLASS, AD_ELEC);
-                   if (!resists_blnd(&youmonst)) {
-                           You(are_blinded_by_the_flash);
-                           make_blinded((long)rnd(100),FALSE);
-                           if (!Blind) Your(vision_clears);
-                   }
+                   (void) flashburn((long)rnd(100));
                    break;
 
                case SPE_FIREBALL:
@@ -2099,12 +2095,7 @@ boolean ordinary;
                case EXPENSIVE_CAMERA:
 #endif
                    damage += rnd(25);
-                   if (!resists_blnd(&youmonst)) {
-                       You(are_blinded_by_the_flash);
-                       make_blinded((long)damage, FALSE);
-                       makeknown(obj->otyp);
-                       if (!Blind) Your(vision_clears);
-                   }
+                   if (flashburn((long)damage)) makeknown(obj->otyp);
                    damage = 0; /* reset */
                    break;
                case WAN_OPENING:
@@ -2161,6 +2152,19 @@ boolean ordinary;
        return(damage);
 }
 
+boolean
+flashburn(duration)
+long duration;
+{
+       if (!resists_blnd(&youmonst)) {
+               You(are_blinded_by_the_flash);
+               make_blinded(duration, FALSE);
+               if (!Blind) Your(vision_clears);
+               return TRUE;
+       }
+       return FALSE;
+}
+
 #ifdef STEED
 /* you've zapped a wand downwards while riding
  * Return TRUE if the steed was hit by the wand.
@@ -3459,11 +3463,7 @@ register int dx,dy;
            } else {
                pline("%s whizzes by you!", The(fltxt));
            }
-           if (abstype == ZT_LIGHTNING && !resists_blnd(&youmonst)) {
-               You(are_blinded_by_the_flash);
-               make_blinded((long)d(nd,50),FALSE);
-               if (!Blind) Your(vision_clears);
-           }
+           if (abstype == ZT_LIGHTNING) (void) flashburn((long)d(nd,50));
            stop_occupation();
            nomul(0);
        }