Subject: [S] Patch - priest curse technique

From: Kev The Warlock <[email-masked]>
Date: 27 Dec 2001 12:18:28 GMT

what this patch does:
*) it adds a curse #technique, which is only accessible for chaotic priests.
(however, it will still be showen for neutral and lawful priests.)
*) it causes a violation of the atheist conduct when doing one of the following:
 #) blessing or uncursing something using the #technique or a potion of holy
    water
 #) cursing or unblessing something using the #technique or a potion of unholy
    water

 (this may sound strange, but at least _I_ think that a blessing is something
 which comes from your god, because:
 you can't make holy water without a god (or the #technique, but ...
 "aura of holiness" still means the precense of a god.)
 even if you wish or buy that potions, they are still blessed from a god.
 IMO.....

 if you don't like this idea, just don't install that patch:)
	
 but NOT when you _drink_ a nonuncursed potion of water.
 and NOT when you try to bless/curse something which is already
 blessed/cursed.

 ...

(I hope there are not any bugs in it, I didn't find one.)
--cut--
diff slashem-0.0.6E4F6/src/potion.c curse-tech-patch/src/potion.c
2060a2061,2065
> 
> 		/* added by Kev's <kevi at freeshell dot org> curse technique patch: */
> 				u.uconduct.gnostic++;
> 		/* end of code added by Kev's curse technique patch */
> 
2076a2082,2086
> 
> 		/* added by Kev's <kevi at freeshell dot org> curse technique patch: */
> 				u.uconduct.gnostic++;
> 		/* end of code added by Kev's curse technique patch */
> 
2087a2098,2102
> 
> 		/* added by Kev's <kevi at freeshell dot org> curse technique patch: */
> 				u.uconduct.gnostic++;
> 		/* end of code added by Kev's curse technique patch */
> 
2098a2114,2118
> 
> 		/* added by Kev's <kevi at freeshell dot org> curse technique patch: */
> 				u.uconduct.gnostic++;
> 		/* end of code added by Kev's curse technique patch */
> 
diff slashem-0.0.6E4F6/src/tech.c curse-tech-patch/src/tech.c
80a81,83
> 	/* added by Kev's <kevi at freeshell dot org> curse technique patch: */
> 	"cursing",
> 	/* end of words and commas added by Kev's curse technique patch      */
130a134
> 			   {   1, T_CURSING,  1},
713a718,721
> 		/* added by Kev's <kevi at freeshell dot org> curse technique patch: */
> 				u.uconduct.gnostic++;
> 		/* end of code added by Kev's curse technique patch */
> 
723a732,736
> 	
> 		/* added by Kev's <kevi at freeshell dot org> curse technique patch: */
> 			u.uconduct.gnostic++;
> 		/* end of code added by Kev's curse technique patch */
> 
733a747,796
> 	
> 		/* added by Kev's <kevi at freeshell dot org> curse technique patch: */
> 		/* (note that this is a modified copy of T_BLESSING :-)              */
> 		case T_CURSING:
> 		allowall[0] = ALL_CLASSES; allowall[1] = '\0';
> 
> 		if (u.ualign.type != A_CHAOTIC)
> 		{
> 			pline ("You don't %slike the idea of cursing ...", u.ualign.type == A_LAWFUL ? "" : "really ");
> 			return (0);
> 		}
> 			
> 		if (! (obj = getobj (allowall, "curse"))) return (0);
> 		pline("An aura of unholiness surrounds your hands!");
>                 if (!Blind) (void) Shk_Your (Your_buf, obj);
> 		if (obj -> blessed)
> 		{
>         	if (!Blind) pline ("%s %s %s.", Your_buf, aobjnam(obj, "glow"), hcolor ((const char *) "brown"));
> 			unbless (obj);	/* note: Do not use uncurse (obj); here. */
> 			obj -> bknown = 1;
> 			u.uconduct.gnostic++;
> 		}
> 		
> 		else if(!obj -> cursed)
> 		{
> 			if (!Blind)
> 			{
> 				str = hcolor (Black);
> 				pline("%s %s with a%s %s aura.", Your_buf, aobjnam(obj, "faintly glow"), index(vowels, *str) ? "n" : "", str);
> 			}
> 			curse (obj);
> 			obj -> bknown = 1;
> 			u.uconduct.gnostic++;
> 		}
> 		
> 		else
> 		{
> 			if (obj -> bknown)
> 			{
> 				pline ("That object is already cursed!");
> 				return (0);
> 			}
> 			obj -> bknown = 1;
> 			pline("The dark aura fades.");
> 			/* note: we did not _really_ violate the atheist conduct ... */
> 		}
> 		t_timeout = rn1 (1000,500);
> 		break;
> 		/* end of code added by Kev's curse technique patch */
> 				
diff slashem-0.0.6E4F6/include/tech.h curse-tech-patch/include/tech.h
89a90,92
> /* added by Kev's <kevi at freeshell dot org> curse technique patch: */
> #define T_CURSING       41
> /* end of preprocessor constants added by Kev's curse technique patch */
91c94,95
< #define MAXTECH 40
---
> #define MAXTECH 41
--cut--

-- 
-- Kev
-- To find out about my Slash'Em ascensions, please look at
-- my X-SlashEm-Ascended header.