[net.games.hack] Shape Changing Ring fix

arnold@ucsfcgl.UUCP (Ken Arnold%CGL) (06/23/85)

The following is a fix for the ring of protection from shape changers.
The problem is that, if one is swallowed by a chameleon masquerading as
a trapper, and then one puts on a ring of protection from shape
changers, one instantly dies because of it, since you are now inside a
non-swallowing monster.  I figure that if you put on a ring to protect
you from a monster, it shouldn't make that monster kill you.  Here is a
context diff which fixes this problem.

----- CUT HERE -----
*** /tmp/,RCSt1007456	Tue Jun 18 16:12:59 1985
--- hack.mon.c	Tue Jun 18 12:07:34 1985
***************
*** 627,632
  unstuck(mtmp)
  register struct monst *mtmp;
  {
  	if(u.ustuck == mtmp) {
  		if(u.uswallow){
  			u.ux = mtmp->mx;

--- 627,635 -----
  unstuck(mtmp)
  register struct monst *mtmp;
  {
+ 	extern coord enexto();
+ 	coord mm;
+ 
  	if(u.ustuck == mtmp) {
  		if(u.uswallow){
  			u.ux = mtmp->mx;
***************
*** 632,637
  			u.ux = mtmp->mx;
  			u.uy = mtmp->my;
  			u.uswallow = 0;
  			setsee();
  			docrt();
  		}

--- 635,643 -----
  			u.ux = mtmp->mx;
  			u.uy = mtmp->my;
  			u.uswallow = 0;
+ 			mm = enexto(u.ux, u.uy);
+ 			mtmp->mx = mm.x;
+ 			mtmp->my = mm.y;
  			setsee();
  			docrt();
  		}
***************
*** 787,792
  	if(mdat->mlet == 'w' && getwn(mtmp)) initworm(mtmp);
  			/* perhaps we should clear mtmp->mtame here? */
  #endif NOWORM
  	unpmon(mtmp);	/* necessary for 'I' and to force pmon */
  	pmon(mtmp);
  	return(1);

--- 793,802 -----
  	if(mdat->mlet == 'w' && getwn(mtmp)) initworm(mtmp);
  			/* perhaps we should clear mtmp->mtame here? */
  #endif NOWORM
+ 	unstuck(mtmp);
+ 	mtmp->mflee = 0;
+ 	mtmp->mfleetim = 0;
+ 	mtmp->mpeaceful = 0;
  	unpmon(mtmp);	/* necessary for 'I' and to force pmon */
  	pmon(mtmp);
  	return(1);

rcj@burl.UUCP (Curtis Jackson) (06/26/85)

In article <554@ucsfcgl.UUCP> arnold@ucsfcgl.UUCP () writes:
>The following is a fix for the ring of protection from shape changers.
>The problem is that, if one is swallowed by a chameleon masquerading as
>a trapper, and then one puts on a ring of protection from shape
>changers, one instantly dies because of it, since you are now inside a
>non-swallowing monster.  I figure that if you put on a ring to protect
>you from a monster, it shouldn't make that monster kill you.  Here is a
>context diff which fixes this problem.

<<<flame on!!>>>
WHY!!??  What you are describing is the equivalent of putting on your
seatbelt as you go over a cliff, then dying in the crash's fire because
you can't get your seatbelt off fast enough.  If you are eaten by a
shape-changer you have already made_your_mistake/had_your_bad_luck
and will (probably) die.  Life (hack) is a bitch, let's keep it that
way or hack will turn into a milquetoast game in no time.

"Mommy! Mommy! I picked up the cat by the tail and it scratched me!"

"I'm sorry, dear; I'll go kill that nasty cat right away so you never
 have to deal with it again."

POPPYCOCK and STUFF!!
<<<flame off>>>
-- 

The MAD Programmer -- 919-228-3313 (Cornet 291)
alias: Curtis Jackson	...![ ihnp4 ulysses cbosgd mgnetp ]!burl!rcj
			...![ ihnp4 cbosgd akgua masscomp ]!clyde!rcj

arnold@ucsfcgl.UUCP (Ken Arnold%CGL) (07/03/85)

In article <760@burl.UUCP> rcj@burl.UUCP (Curtis Jackson) writes:
>In article <554@ucsfcgl.UUCP> arnold@ucsfcgl.UUCP () writes:
>>The following is a fix for the ring of protection from shape changers.
>>The problem is that, if one is swallowed by a chameleon masquerading as
>>a trapper, and then one puts on a ring of protection from shape
>>changers, one instantly dies because of it, since you are now inside a
>>non-swallowing monster.  I figure that if you put on a ring to protect
>>you from a monster, it shouldn't make that monster kill you.  Here is a
>>context diff which fixes this problem.
><<<flame on!!>>>
>WHY!!??  What you are describing is the equivalent of putting on your
>seatbelt as you go over a cliff, then dying in the crash's fire because
>you can't get your seatbelt off fast enough.

Of course, dear.  Calm down and stick this sock in your mouth and
listen to mother... :->

It seems to me that, as soon as a chameleon has changed into a Dragon,
I am in big trouble.  However, if I put on my protection ring **poof!**
I am protected from the Dragon.  Now, when I've been swallowed by a
chameleon posing as a trapper, I am in big trouble.  However, if I put
on my protection ring **poof!** I am dead.  Uh, does this seem
consistent?

Can you so "no it doesn't?"  I knew that you could.  I just figure that
if it claims on the label to protect you, killing you instead isn't
proper behavior.

		Ken Arnold

P.S.  Of course, if you don't LIKE the fix you don't gotta install
it...