🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by Latitudinarian Lobster Tue, 04 Jun 1985 23:47
Hack 1.0.2 fix for mellow shopkeepers.
#718
Author: Latitudinarian Lobster
Date: Tue, 04 Jun 1985 23:47
86 lines
3240 bytes
I've always thought it a bit funny that shopkeepers didn't mind you having
a box or pickaxe IN the shop -- you are only checked when you enter.  It
was recently pointed out that you can currently always get in the front door
with a pickaxe if you are patient enough.

Below is a context diff for a patch (with a couple of older ones included)
which will cause the shopkeeper to become angry if you are ever in his shop
with a box or a pickaxe (aside from standing on the front door).

*** hack.shk.c.old	Mon Apr 29 18:42:44 1985
--- hack.shk.c	Tue Jun  4 18:16:25 1985
***************
*** 233,239
  		if(ANGRY(shopkeeper) &&
  		   strncmp(ESHK(shopkeeper)->customer,plname,PL_NSIZ))
  			NOTANGRY(shopkeeper) = 1;
- 		billobjs = 0;
  		return;
  	}
  	shopkeeper = 0;

--- 233,238 -----
  		if(ANGRY(shopkeeper) &&
  		   strncmp(ESHK(shopkeeper)->customer,plname,PL_NSIZ))
  			NOTANGRY(shopkeeper) = 1;
  		return;
  	}
  	shopkeeper = 0;
***************
*** 816,821
  		else {
  		  uondoor = (u.ux == ESHK(shkp)->shd.x &&
  				u.uy == ESHK(shkp)->shd.y);
  		  if(uondoor) {
  		    if(ESHK(shkp)->billct)
  			pline("Hello %s! Will you please pay before leaving?",

--- 815,821 -----
  		else {
  		  uondoor = (u.ux == ESHK(shkp)->shd.x &&
  				u.uy == ESHK(shkp)->shd.y);
+ 		  badinv = (carrying(PICK_AXE) || carrying(ICE_BOX));
  		  if(uondoor) {
  		    if(ESHK(shkp)->billct)
  			pline("Hello %s! Will you please pay before leaving?",
***************
*** 820,826
  		    if(ESHK(shkp)->billct)
  			pline("Hello %s! Will you please pay before leaving?",
  				plname);
- 		    badinv = (carrying(PICK_AXE) || carrying(ICE_BOX));
  		    if(satdoor && badinv)
  			return(0);
  		    avoid = !badinv;

--- 820,825 -----
  		    if(ESHK(shkp)->billct)
  			pline("Hello %s! Will you please pay before leaving?",
  				plname);
  		    if(satdoor && badinv)
  			return(0);
  		    avoid = !badinv;
***************
*** 824,832
  		    if(satdoor && badinv)
  			return(0);
  		    avoid = !badinv;
! 		  } else {
! 		    avoid = (u.uinshop && dist(gx,gy) > 8);
! 		    badinv = FALSE;
  		  }
  
  		  if(((!ESHK(shkp)->robbed && !ESHK(shkp)->billct) || avoid)

--- 823,833 -----
  		    if(satdoor && badinv)
  			return(0);
  		    avoid = !badinv;
! 		  } else {			/* uwmacc!myers; get angry  */
! 		    if(u.uinshop && badinv) {	/* if you're not in doorway */
! 			avoid = FALSE;
! 			setmangry(shkp);
! 		    } else avoid = (u.uinshop && dist(gx,gy) > 8);
  		  }
  
  		  if(((!ESHK(shkp)->robbed && !ESHK(shkp)->billct) || avoid)
Re: Hack 1.0.2 fix for mellow shopkeepers.
#741
Author: Andries Brouwer
Date: Sat, 08 Jun 1985 12:51
5 lines
976 bytes
I disagree with this "fix" - it violates the shopkeeper philosophy.
As it is now the shopkeeper will NEVER attack you unless you attacked
him first. This pseudo-fix would make the shopkeeper attack you under
other circumstances as well, e.g. when you fall into a shop through a
trapdoor while carrying a pick-axe.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads