richd@sci.UUCP (Rich doherty) (01/29/88)
These grenade bugfixes fix the following three bugs:
1) Stephen Linhart pointed out that blind people would not get further
blinded by the grenade blast. This is fixed, and now they are
only "pounded by the blast".
2) Mark Purtill pointed out a real bug -- in the resist code, I
used otmp->olet instead of obj->olet. Turns out the best thing to
use is simply '('.
3) Grenades were intended to be found in small quantities, but it turns
out they were only found singly. This is fixed.
An amusing aside for readers of comp.lang.c: Bug #3 was a result of
typing == instead of =. I have been programming in C for about 2 years
and programming in general since the womb, and this is the first time
that this has happened to me. I remember thinking that = and == seemed
like a silly way to do it, but no big deal. (I had been previously
programming in Pascal [ := and = ] and Smalltalk [ <- and == (sort of)]).
No preaching, but somehow I have renewed my mild dislike of a language
that spurns most forms of code verification.
-------------------------------------------------------------
*** archive/apply.c Fri Jan 15 00:15:18 1988
--- apply.c Sun Jan 17 17:33:28 1988
***************
*** 355,360
if (!explode)
goto fullcurse;
superdamage:
pline("You are beaten and blinded by the blast!");
u.uhpmax -= ((damage < 4) ? 2 : (int)(damage/2));
if (u.uhpmax < 2) u.uhpmax = 2;
--- 355,363 -----
if (!explode)
goto fullcurse;
superdamage:
+ if (Blinded || Blindfolded)
+ pline("You are pounded by the blast!");
+ else
pline("You are beaten and blinded by the blast!");
u.uhpmax -= ((damage < 4) ? 2 : (int)(damage/2));
if (u.uhpmax < 2) u.uhpmax = 2;
***************
*** 360,365
if (u.uhpmax < 2) u.uhpmax = 2;
losehp(2*damage + 10,"exploding grenade");
HConfusion += 2*damage;
doblind = 3*damage;
burn_scrolls();
boil_potions();
--- 363,369 -----
if (u.uhpmax < 2) u.uhpmax = 2;
losehp(2*damage + 10,"exploding grenade");
HConfusion += 2*damage;
+ if (!Blindfolded)
doblind = 3*damage;
burn_scrolls();
boil_potions();
***************
*** 397,402
{
pline("%s at your feet!",exptxt);
bigdamage:
pline("You are beaten and blinded by the blast!");
if (explode)
{ u.uhpmax -= ((damage < 3) ? 1 : (int)(damage / 3));
--- 401,409 -----
{
pline("%s at your feet!",exptxt);
bigdamage:
+ if (Blinded || Blindfolded)
+ pline("You are pounded by the blast!");
+ else
pline("You are beaten and blinded by the blast!");
if (explode)
{ u.uhpmax -= ((damage < 3) ? 1 : (int)(damage / 3));
***************
*** 403,408
if (u.uhpmax < 2) u.uhpmax = 2;
losehp(2*damage,"exploding grenade");
HConfusion += 2*damage;
doblind = 2*damage;
flags.botl = 1;
}
--- 410,416 -----
if (u.uhpmax < 2) u.uhpmax = 2;
losehp(2*damage,"exploding grenade");
HConfusion += 2*damage;
+ if (!Blindfolded)
doblind = 2*damage;
flags.botl = 1;
}
***************
*** 448,454
}
else if (explode)
mtmp->mhp -= damage;
! else if (!resist(mtmp,otmp->olet, 0, NOTELL))
mtmp->mcan = 1;
if (mtmp->mhp < 1)
{ if (mon == mtmp)
--- 456,462 -----
}
else if (explode)
mtmp->mhp -= damage;
! else if (!resist(mtmp,'(', 0, NOTELL))
mtmp->mcan = 1;
if (mtmp->mhp < 1)
{ if (mon == mtmp)
*** archive/mkobj.c Mon Jan 18 22:55:16 1988
--- mkobj.c Mon Jan 18 22:54:32 1988
***************
*** 131,137
case TOOL_SYM:
#ifdef DOGRENADE
if (otmp->otyp == GRENADE)
! { otmp->quan == rn2(4) ? rn1(4,2) : 1;
if (!rn2(8)) otmp->spe = rne(2);
else if (!rn2(10)) {
otmp->cursed = 1;
--- 131,137 -----
case TOOL_SYM:
#ifdef DOGRENADE
if (otmp->otyp == GRENADE)
! { otmp->quan = rn2(4) ? rn1(4,2) : 1;
if (!rn2(8)) otmp->spe = rne(2);
else if (!rn2(10)) {
otmp->cursed = 1;
***************
*** 140,146
break;
}
else if (otmp->otyp == CANCELLATION_GRENADE)
! { otmp->quan == rn2(3) ? rn1(2,2) : 1;
otmp->spe = 1;
if (!rn2(10)) otmp->cursed = 1;
break;
--- 140,146 -----
break;
}
else if (otmp->otyp == CANCELLATION_GRENADE)
! { otmp->quan = rn2(3) ? rn1(2,2) : 1;
otmp->spe = 1;
if (!rn2(10)) otmp->cursed = 1;
break;
--
-------------------------------------------------
"I have no ambition whatsoever, except to turn my life
into successful entertainment" -- Jean Anouilhcasey@lll-crg.llnl.gov (Casey Leedom) (01/30/88)
Grenades. So when are we going to get the laser pistols and plasma rifles? Are these weapons really in the spirit of the game? Does the game have a spirit? Oh well, not really saying that I object, just pointing out that grenades seem to tread on the thin line of magic and fantasy. By the way, instead of all these really niggling little changes, why doesn't someone bite the bullet and make a real change. Either real time play or multi-player would be a quantum jump in functionality. I mean, the depth of feel that all these detailed and filigreed features add to hack is nice, but sooner or later you have to add something real. Casey