Subject: Re: Interesting Topic: What's your favorite thing to eat?

From: [email-masked] (Donald Welsh)
Date: Wed, 01 Nov 2000 15:52:28 GMT

On Wed, 01 Nov 2000 13:23:09 GMT, [email-masked] (Donald Welsh) wrote:

>On Tue, 31 Oct 2000 13:14:46 GMT, [email-masked] (Donald Welsh) wrote:

>[ Talking to yourself is a bad habit for a dungeoneer. ]

>>Patch follows to add messages for ring of protection from shape
>>changers, ring of increase accuracy, and ring of increase damage.

>This newly extended patch covers the above cases, as well as rings of
>aggravate monster, conflict, hunger, polymorph, polymorph control, and
>regeneration.

Third time lucky.  This patch will do all the above, as well as give
messages when gaining an intrinsic from eating an amulet of ESP, magical
breathing, unchanging, or versus poison.

Also, no message will be given if the hero had that intrinsic before
eating.

*** eat.c.old	Wed Sep  6 11:49:08 2000
--- eat.c	Thu Nov  2 02:37:16 2000
***************
*** 1390,1396 ****
  struct obj *otmp;
  {
  	int typ = otmp->otyp;
! 	int oldprop;
  
  	/* Note: rings are not so common that this is unbalancing. */
  	/* (How often do you even _find_ 3 rings of polymorph in a game?) */
--- 1390,1396 ----
  struct obj *otmp;
  {
  	int typ = otmp->otyp;
! 	int oldprop, newprop;
  
  	/* Note: rings are not so common that this is unbalancing. */
  	/* (How often do you even _find_ 3 rings of polymorph in a game?) */
***************
*** 1405,1411 ****
  	    default:
  	        if (!objects[typ].oc_oprop) break; /* should never happen */
  
! 		if (!(u.uprops[objects[typ].oc_oprop].intrinsic & FROMOUTSIDE))
  		    pline("Magic spreads through your body as you digest the %s.",
  			  otmp->oclass == RING_CLASS ? "ring" : "amulet");
  
--- 1405,1412 ----
  	    default:
  	        if (!objects[typ].oc_oprop) break; /* should never happen */
  
! 		newprop = !(u.uprops[objects[typ].oc_oprop].intrinsic & FROMOUTSIDE);
! 		if (newprop)
  		    pline("Magic spreads through your body as you digest the %s.",
  			  otmp->oclass == RING_CLASS ? "ring" : "amulet");
  
***************
*** 1433,1438 ****
--- 1434,1444 ----
  		    break;
  		  case RIN_PROTECTION_FROM_SHAPE_CHAN:
  		    rescham();
+ 		    if (newprop)
+ 			if (Hallucination)
+ 			    You_feel("that your eyes can deceive you.");
+ 			else
+ 			    You_feel("that things are what they seem.");
  		    break;
  		  case RIN_LEVITATION:
  		    if (!Levitation) {
***************
*** 1441,1446 ****
--- 1447,1505 ----
  			makeknown(typ);
  		    }
  		    break;
+ 		  /* extra cases to give messages -- DAW */
+ 		  case RIN_AGGRAVATE_MONSTER:
+ 		    if (newprop)
+ 			if (Hallucination)
+ 			    You_feel("like everyone's out to get you.");
+ 			else
+ 			    You_feel("surrounded by hostile intentions.");
+ 		    break;
+ 		  case RIN_CONFLICT:
+ 		    if (newprop)
+ 			if (Hallucination)
+ 			    You_feel("this is the dawning of the Age of Aquarius!");
+ 			else
+ 			    You_feel("you are the center of strife!");
+ 		    break;
+ 		  case RIN_HUNGER:
+ 		    if (newprop)
+ 			You_feel("your appetite quicken.");
+ 		    break;
+ 		  case RIN_POLYMORPH_CONTROL:
+ 		    if (newprop)
+ 			You_feel("you could be anyone you want to be!");
+ 		    break;
+ 		  case RIN_POLYMORPH:
+ 		    if (newprop)
+ 			if (Hallucination)
+ 			    You("have awesome mutant powers!");
+ 			else
+ 			    You_feel("protean.");
+ 		    break;
+ 		  case RIN_REGENERATION:
+ 		    if (newprop)
+ 			You_feel("your healing powers increase.");
+ 		    break;
+ 		  case AMULET_OF_ESP:
+ 		    if (newprop)
+ 			You_feel(Hallucination ?
+ 			    "in touch with the cosmos." :
+ 			    "a strange mental acuity.");
+ 		    break;
+ 		  case AMULET_OF_MAGICAL_BREATHING:
+ 		    if (newprop)
+ 			You("breathe more easily.");
+ 		    break;
+ 		  case AMULET_OF_UNCHANGING:
+ 		    if (newprop)
+ 			You("like yourself the way you are.");
+ 		    break;
+ 		  case AMULET_VERSUS_POISON:
+ 		    if (newprop)
+ 			You_feel(Poison_resistance ?
+ 				 "especially healthy." : "healthy.");
+ 		    break;
  		}
  		break;
  	    case RIN_ADORNMENT:
***************
*** 1457,1465 ****
--- 1516,1528 ----
  		break;
  	    case RIN_INCREASE_ACCURACY:
  		u.uhitinc += otmp->spe;
+ 		if (otmp->spe != 0)
+ 		    You_feel("%s accurate!", (otmp->spe > 0 ? "more" : "less"));
  		break;
  	    case RIN_INCREASE_DAMAGE:
  		u.udaminc += otmp->spe;
+ 		if (otmp->spe != 0)
+ 		    You_feel("%s dangerous!", (otmp->spe > 0 ? "more" : "less"));
  		break;
  	    case RIN_PROTECTION:
  		HProtection |= FROMOUTSIDE;
***************
*** 1485,1491 ****
  	    case AMULET_OF_RESTFUL_SLEEP: /* another bad idea! */
  		HSleeping = FROMOUTSIDE | rnd(100);
  		break;
! 		case RIN_SUSTAIN_ABILITY:
  	    case AMULET_OF_LIFE_SAVING:
  	    case AMULET_OF_REFLECTION: /* nice try */
  	    /* can't eat Amulet of Yendor or fakes,
--- 1548,1554 ----
  	    case AMULET_OF_RESTFUL_SLEEP: /* another bad idea! */
  		HSleeping = FROMOUTSIDE | rnd(100);
  		break;
! 	    case RIN_SUSTAIN_ABILITY:
  	    case AMULET_OF_LIFE_SAVING:
  	    case AMULET_OF_REFLECTION: /* nice try */
  	    /* can't eat Amulet of Yendor or fakes,