U719: grayswandir and exploding black lights
<email deleted> wrote: > When wielding greyswander and a black light explodes, the > message is still "You are freaked by a blast of kaleidoscopic > light!" giving no indication that you are immune to > hallucination. Maybe something like "You see a blast of color, > but seem unaffected" would be more appropriate? return the changed status back to the caller from make_hallucinated().
This commit is contained in:
@@ -82,6 +82,7 @@ allow Conflict-resistant monsters to respond to conflict attacks rather than
|
||||
sitting there and taking the attacks until they die
|
||||
prefer herbivorous stone-to-flesh message when hero is a vegitarian
|
||||
try even harder to avoid incorrect map display while changing levels
|
||||
no "freaked" message by exploding black light, unless you really are
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific Fixes
|
||||
|
||||
@@ -1560,7 +1560,7 @@ E void FDECL(make_blinded, (long,BOOLEAN_P));
|
||||
E void FDECL(make_sick, (long, const char *, BOOLEAN_P,int));
|
||||
E void FDECL(make_slimed, (long,const char*));
|
||||
E void FDECL(make_vomiting, (long,BOOLEAN_P));
|
||||
E void FDECL(make_hallucinated, (long,BOOLEAN_P,long));
|
||||
E boolean FDECL(make_hallucinated, (long,BOOLEAN_P,long));
|
||||
E int NDECL(dodrink);
|
||||
E int FDECL(dopotion, (struct obj *));
|
||||
E int FDECL(peffects, (struct obj *));
|
||||
|
||||
@@ -1470,7 +1470,7 @@ struct obj *obj;
|
||||
break;
|
||||
case 4: (void) adjattrib(rn2(A_MAX), -1, FALSE);
|
||||
break;
|
||||
case 5: make_hallucinated(HHallucination + lcount, TRUE, 0L);
|
||||
case 5: (void) make_hallucinated(HHallucination + lcount, TRUE, 0L);
|
||||
break;
|
||||
}
|
||||
return;
|
||||
@@ -1550,7 +1550,7 @@ struct obj *obj;
|
||||
did_prop++;
|
||||
break;
|
||||
case prop2trbl(HALLUC):
|
||||
make_hallucinated(0L, TRUE, 0L);
|
||||
(void) make_hallucinated(0L, TRUE, 0L);
|
||||
did_prop++;
|
||||
break;
|
||||
case prop2trbl(VOMITING):
|
||||
|
||||
@@ -408,7 +408,7 @@ long wp_mask;
|
||||
* that can print a message--need to guard against being printed
|
||||
* when restoring a game
|
||||
*/
|
||||
make_hallucinated((long)!on, restoring ? FALSE : TRUE, wp_mask);
|
||||
(void) make_hallucinated((long)!on, restoring ? FALSE : TRUE, wp_mask);
|
||||
}
|
||||
if (spfx & SPFX_ESP) {
|
||||
if(on) ETelepat |= wp_mask;
|
||||
|
||||
@@ -815,7 +815,7 @@ struct obj *obj;
|
||||
}
|
||||
break;
|
||||
case 4 : pline("%s your mind!", Tobjnam(obj, "zap"));
|
||||
make_hallucinated(HHallucination + rnd(100),FALSE,0L);
|
||||
(void) make_hallucinated(HHallucination + rnd(100),FALSE,0L);
|
||||
break;
|
||||
case 5 : pline("%s!", Tobjnam(obj, "explode"));
|
||||
useup(obj);
|
||||
|
||||
@@ -1869,9 +1869,11 @@ common:
|
||||
u.umonnum == PM_VIOLET_FUNGUS ||
|
||||
dmgtype(youmonst.data, AD_STUN));
|
||||
if (!not_affected) {
|
||||
boolean chg;
|
||||
if (!Hallucination)
|
||||
You("are freaked by a blast of kaleidoscopic light!");
|
||||
make_hallucinated(HHallucination + (long)tmp,FALSE,0L);
|
||||
You("are caught in a blast of kaleidoscopic light!");
|
||||
chg = make_hallucinated(HHallucination + (long)tmp,FALSE,0L);
|
||||
You("%s.", chg ? "are freaked out" : "seem unaffected");
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
11
src/potion.c
11
src/potion.c
@@ -247,7 +247,7 @@ boolean talk;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
boolean
|
||||
make_hallucinated(xtime, talk, mask)
|
||||
long xtime; /* nonzero if this is an attempt to turn on hallucination */
|
||||
boolean talk;
|
||||
@@ -305,6 +305,7 @@ long mask; /* nonzero if resistance status should change by mask */
|
||||
context.botl = 1;
|
||||
if (talk) pline(message, verb);
|
||||
}
|
||||
return changed;
|
||||
}
|
||||
|
||||
STATIC_OVL void
|
||||
@@ -450,7 +451,7 @@ peffects(otmp)
|
||||
break;
|
||||
case POT_HALLUCINATION:
|
||||
if (Hallucination || Halluc_resistance) nothing++;
|
||||
make_hallucinated(itimeout_incr(HHallucination,
|
||||
(void) make_hallucinated(itimeout_incr(HHallucination,
|
||||
rn1(200, 600 - 300 * bcsign(otmp))),
|
||||
TRUE, 0L);
|
||||
break;
|
||||
@@ -700,7 +701,7 @@ peffects(otmp)
|
||||
}
|
||||
if(Hallucination) {
|
||||
You("are shocked back to your senses!");
|
||||
make_hallucinated(0L,FALSE,0L);
|
||||
(void) make_hallucinated(0L,FALSE,0L);
|
||||
}
|
||||
break;
|
||||
case POT_CONFUSION:
|
||||
@@ -805,7 +806,7 @@ peffects(otmp)
|
||||
healup(d(6 + 2 * bcsign(otmp), 8),
|
||||
otmp->blessed ? 5 : !otmp->cursed ? 2 : 0,
|
||||
!otmp->cursed, TRUE);
|
||||
make_hallucinated(0L,TRUE,0L);
|
||||
(void) make_hallucinated(0L,TRUE,0L);
|
||||
exercise(A_CON, TRUE);
|
||||
exercise(A_STR, TRUE);
|
||||
break;
|
||||
@@ -819,7 +820,7 @@ peffects(otmp)
|
||||
u.ulevelmax -= 1;
|
||||
pluslvl(FALSE);
|
||||
}
|
||||
make_hallucinated(0L,TRUE,0L);
|
||||
(void) make_hallucinated(0L,TRUE,0L);
|
||||
exercise(A_STR, TRUE);
|
||||
exercise(A_CON, TRUE);
|
||||
break;
|
||||
|
||||
@@ -440,7 +440,7 @@ decurse:
|
||||
break;
|
||||
case TROUBLE_HALLUCINATION:
|
||||
pline ("Looks like you are back in Kansas.");
|
||||
make_hallucinated(0L,FALSE,0L);
|
||||
(void) make_hallucinated(0L,FALSE,0L);
|
||||
break;
|
||||
#ifdef STEED
|
||||
case TROUBLE_SADDLE:
|
||||
|
||||
@@ -304,7 +304,7 @@ nh_timeout()
|
||||
break;
|
||||
case HALLUC:
|
||||
HHallucination = 1;
|
||||
make_hallucinated(0L, TRUE, 0L);
|
||||
(void) make_hallucinated(0L, TRUE, 0L);
|
||||
stop_occupation();
|
||||
break;
|
||||
case SLEEPING:
|
||||
|
||||
@@ -3734,7 +3734,7 @@ boolean disarm;
|
||||
stagger(youmonst.data, "stagger"));
|
||||
}
|
||||
make_stunned(HStun + rn1(7, 16),FALSE);
|
||||
make_hallucinated(HHallucination + rn1(5, 16),FALSE,0L);
|
||||
(void) make_hallucinated(HHallucination + rn1(5, 16),FALSE,0L);
|
||||
break;
|
||||
default: impossible("bad chest trap");
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user