Subject: [S] PATCH: potion of mocca (final version (?))

From: [email-masked] (Kev The Chiller)
Date: 15 Oct 2001 16:00:30 GMT

diff -u /home/mkc/SlashEm/slashem-0.0.6E4F5/src/objects.c src/objects.c
--- /home/mkc/SlashEm/slashem-0.0.6E4F5/src/objects.c	Fri Aug 31 10:55:37 2001
+++ src/objects.c	Sat Oct 13 20:45:47 2001
@@ -981,6 +981,7 @@
 POTION("full healing",  "black",        1, 0,          20, 200, CLR_BLACK),
 POTION("levitation", "cyan",            1, LEVITATION, 40, 200, CLR_CYAN),
 POTION("polymorph", "golden",           1, 0,          10, 200, CLR_YELLOW),
+POTION("mocca", "deep brown",           1, FAST,       40, 200, CLR_BROWN),
 POTION("speed", "dark green",           1, FAST,       40, 200, CLR_GREEN),
 POTION("acid", "white",                 0, 0,          20, 250, CLR_WHITE),
 POTION("oil", "murky",                  0, 0,          30, 250, CLR_BROWN),
diff -u /home/mkc/SlashEm/slashem-0.0.6E4F5/src/potion.c src/potion.c
--- /home/mkc/SlashEm/slashem-0.0.6E4F5/src/potion.c	Fri Aug 31 10:55:39 2001
+++ src/potion.c	Mon Oct 15 17:58:11 2001
@@ -792,6 +792,7 @@
 		}
 		exercise(A_DEX, TRUE);
 		incr_itimeout(&HFast, rn1(10, 100 + 60 * bcsign(otmp)));
+
 		break;
 	case POT_BLINDNESS:
 		if(Blind) nothing++;
@@ -955,6 +956,85 @@
 		You_feel("a little %s.", Hallucination ? "normal" : "strange");
 		if (!Unchanging) polyself();
 		break;
+	case POT_MOCCA:
+		
+		/* Benjamin S Wiegele <kevi at freeshell dot org>'s potion of mocca. */
+		/* Thanks to Matthew K Lahut and Alon Lischinsky, Tina Hall and      */
+		/* Gabriele Neukam. (and all I've forgotten ...)                     */
+
+		if (otmp -> odiluted)
+				
+	{
+		if (Hallucination) pline ("Yummy. That potion tastes like watered down l
iquid 10%% decaf.");
+		else pline ("Ulch! That tastes like decaf!");
+		exercise (A_CON, FALSE);
+	}
+
+		else
+		{
+				
+		if (otmp -> blessed)
+		{
+			make_confused     (0L, TRUE);
+			make_hallucinated (0L, TRUE, 0L);
+			if (!Very_fast) You ("are suddenly moving %sfaster.",
+				Fast ? "" : "much ");
+			else
+			{
+				Your ("%s get new energy.", makeplural (body_part (LEG)));
+				unkn++;
+			}
+			
+			exercise (A_CON, TRUE);
+			incr_itimeout (&HFast, rn1(10, 100 + 60 * bcsign(otmp)));
+			
+			if (!Sleep_resistance)
+			{
+				pline ("Somehow, you feel awake ... ");
+				incr_itimeout (&HSleep_resistance, rn1 (10, 100 + 80 * bcsign (otmp)));
+			}
+		}		/* end blessed */
+
+		else if (otmp -> cursed)
+		{
+			
+			if (Hallucination)
+			{
+				if (Confusion)
+				{
+					pline ("For the booze of us all: Go bravely with a cup of Mocca!");
+				}
+				else if (Stunned)
+				{
+					pline ("For the shake of us all: Go bravely with a cup of Mocca!");
+				}
+				else pline ("You are able to stick a spoon upright into it!");
+			}
+			
+			else pline ("Those beans have been roasted to long!");
+		
+			losehp (10, "potion of mocca", KILLED_BY_AN);
+			exercise (A_CON, FALSE);
+		}		/* end cursed */
+
+		/* somehow, I didn't manage to do so just with "else" ... */
+		else if (!otmp -> cursed && !otmp -> blessed)	
+		
+		{
+			if (!Sleep_resistance)
+			{
+				pline ("Somehow, you feel a bit more awake ... ");
+				incr_itimeout (&HSleep_resistance, rn1 (10, 100 + 20 * bcsign (otmp)));	
+			}
+			exercise (A_CON, TRUE);
+
+		}		/* end uncursed  */
+		}		/* end undiluted */
+		
+		exercise (A_WIS, FALSE);
+
+	    u.uhunger += ((otmp->odiluted ? 5 : 10) * (2 + bcsign(otmp)) / 2);
+		break;
 	default:
 		impossible("What a funny potion! (%u)", otmp->otyp);
 		return(0);
@@ -1515,6 +1595,19 @@
 				return POT_CONFUSION;
 			}
 			break;
+		case POT_MOCCA:
+			if (o2 -> otyp == POT_BOOZE)
+			{
+				pline ("Fool. You don't want to be shaking AND drunken!");
+				return POT_MOCCA;
+			}
+			break;
+		case POT_BOOZE:
+			if (o2 -> otyp == POT_MOCCA)
+			{
+				pline ("Fool. You don't want to be drunken AND shaking!");
+				return POT_BOOZE;
+			}
 	}
 	return 0;
 }
diff -u /home/mkc/SlashEm/slashem-0.0.6E4F5/include/date.h include/date.h
--- /home/mkc/SlashEm/slashem-0.0.6E4F5/include/date.h	Sat Sep 15 15:58:14 2001
+++ include/date.h	Mon Oct 15 17:58:14 2001
@@ -1,14 +1,14 @@
 /*	SCCS Id: @(#)date.h	3.3	1996/05/17 */
 
 /* This source file is generated by 'makedefs'.  Do not edit. */
-#define BUILD_DATE "Sat Sep 15 15:58:14 2001"
-#define BUILD_TIME (1000562294L)
+#define BUILD_DATE "Mon Oct 15 17:58:14 2001"
+#define BUILD_TIME (1003161494L)
 
 #define VERSION_NUMBER 0x00000604UL
 #define VERSION_FEATURES 0x001f0cc4UL
-#define VERSION_SANITY1 0x44210243UL
+#define VERSION_SANITY1 0x44211243UL
 #define VERSION_SANITY2 0xa489c5e8UL
 
 #define VERSION_STRING "0.0.6E4F5"
 #define VERSION_ID \
- "Unix SlashEM Beta Version 0.0.6E4F5 - last build Sat Sep 15 15:58:14 2001."
+ "Unix SlashEM Beta Version 0.0.6E4F5 - last build Mon Oct 15 17:58:14 2001."
diff -u /home/mkc/SlashEm/slashem-0.0.6E4F5/include/onames.h include/onames.h
--- /home/mkc/SlashEm/slashem-0.0.6E4F5/include/onames.h	Sat Sep 15 15:53:11 
2001
+++ include/onames.h	Sat Oct 13 20:45:49 2001
@@ -357,171 +357,172 @@
 #define	POT_FULL_HEALING	350
 #define	POT_LEVITATION	351
 #define	POT_POLYMORPH	352
-#define	POT_SPEED	353
-#define	POT_ACID	354
-#define	POT_OIL	355
-#define	POT_GAIN_ABILITY	356
-#define	POT_GAIN_LEVEL	357
-#define	POT_INVULNERABILITY	358
-#define	POT_PARALYSIS	359
-#define	POT_WATER	360
-#define	SCR_CREATE_MONSTER	361
-#define	SCR_TAMING	362
-#define	SCR_LIGHT	363
-#define	SCR_FOOD_DETECTION	364
-#define	SCR_GOLD_DETECTION	365
-#define	SCR_IDENTIFY	366
-#define	SCR_MAGIC_MAPPING	367
-#define	SCR_CONFUSE_MONSTER	368
-#define	SCR_SCARE_MONSTER	369
-#define	SCR_ENCHANT_WEAPON	370
-#define	SCR_ENCHANT_ARMOR	371
-#define	SCR_REMOVE_CURSE	372
-#define	SCR_TELEPORTATION	373
-#define	SCR_FIRE	374
-#define	SCR_EARTH	375
-#define	SCR_DESTROY_ARMOR	376
-#define	SCR_AMNESIA	377
-#define	SCR_CHARGING	378
-#define	SCR_GENOCIDE	379
-#define	SCR_PUNISHMENT	380
-#define	SCR_STINKING_CLOUD	381
-#define	SCR_MAIL	386
-#define	SCR_BLANK_PAPER	387
-#define	SPE_FORCE_BOLT	388
-#define	SPE_CREATE_MONSTER	389
-#define	SPE_DRAIN_LIFE	390
-#define	SPE_COMMAND_UNDEAD	391
-#define	SPE_SUMMON_UNDEAD	392
-#define	SPE_STONE_TO_FLESH	393
-#define	SPE_HEALING	394
-#define	SPE_CURE_BLINDNESS	395
-#define	SPE_CURE_SICKNESS	396
-#define	SPE_EXTRA_HEALING	397
-#define	SPE_RESTORE_ABILITY	398
-#define	SPE_CREATE_FAMILIAR	399
-#define	SPE_LIGHT	400
-#define	SPE_DETECT_MONSTERS	401
-#define	SPE_DETECT_FOOD	402
-#define	SPE_CLAIRVOYANCE	403
-#define	SPE_DETECT_UNSEEN	404
-#define	SPE_IDENTIFY	405
-#define	SPE_DETECT_TREASURE	406
-#define	SPE_MAGIC_MAPPING	407
-#define	SPE_CONFUSE_MONSTER	408
-#define	SPE_SLOW_MONSTER	409
-#define	SPE_CAUSE_FEAR	410
-#define	SPE_CHARM_MONSTER	411
-#define	SPE_ENCHANT_WEAPON	412
-#define	SPE_ENCHANT_ARMOR	413
-#define	SPE_PROTECTION	414
-#define	SPE_RESIST_POISON	415
-#define	SPE_RESIST_SLEEP	416
-#define	SPE_ENDURE_COLD	417
-#define	SPE_ENDURE_HEAT	418
-#define	SPE_INSULATE	419
-#define	SPE_REMOVE_CURSE	420
-#define	SPE_TURN_UNDEAD	421
-#define	SPE_JUMPING	422
-#define	SPE_HASTE_SELF	423
-#define	SPE_ENLIGHTEN	424
-#define	SPE_INVISIBILITY	425
-#define	SPE_LEVITATION	426
-#define	SPE_TELEPORT_AWAY	427
-#define	SPE_PASSWALL	428
-#define	SPE_POLYMORPH	429
-#define	SPE_KNOCK	430
-#define	SPE_FLAME_SPHERE	431
-#define	SPE_FREEZE_SPHERE	432
-#define	SPE_WIZARD_LOCK	433
-#define	SPE_DIG	434
-#define	SPE_CANCELLATION	435
-#define	SPE_MAGIC_MISSILE	436
-#define	SPE_FIREBALL	437
-#define	SPE_CONE_OF_COLD	438
-#define	SPE_SLEEP	439
-#define	SPE_FINGER_OF_DEATH	440
-#define	SPE_LIGHTNING	441
-#define	SPE_POISON_BLAST	442
-#define	SPE_ACID_STREAM	443
-#define	SPE_BLANK_PAPER	450
-#define	SPE_BOOK_OF_THE_DEAD	451
-#define	WAN_LIGHT	452
-#define	WAN_NOTHING	453
-#define	WAN_ENLIGHTENMENT	454
-#define	WAN_HEALING	455
-#define	WAN_LOCKING	456
-#define	WAN_MAKE_INVISIBLE	457
-#define	WAN_OPENING	458
-#define	WAN_PROBING	459
-#define	WAN_SECRET_DOOR_DETECTION	460
-#define	WAN_SLOW_MONSTER	461
-#define	WAN_SPEED_MONSTER	462
-#define	WAN_STRIKING	463
-#define	WAN_UNDEAD_TURNING	464
-#define	WAN_DRAINING	465
-#define	WAN_CANCELLATION	466
-#define	WAN_CREATE_MONSTER	467
-#define	WAN_FEAR	468
-#define	WAN_POLYMORPH	469
-#define	WAN_TELEPORTATION	470
-#define	WAN_CREATE_HORDE	471
-#define	WAN_EXTRA_HEALING	472
-#define	WAN_WISHING	473
-#define	WAN_DIGGING	474
-#define	WAN_MAGIC_MISSILE	475
-#define	WAN_FIRE	476
-#define	WAN_COLD	477
-#define	WAN_SLEEP	478
-#define	WAN_DEATH	479
-#define	WAN_LIGHTNING	480
-#define	WAN_FIREBALL	481
-#define	GOLD_PIECE	485
-#define	DILITHIUM_CRYSTAL	486
-#define	DIAMOND	487
-#define	RUBY	488
-#define	JACINTH	489
-#define	SAPPHIRE	490
-#define	BLACK_OPAL	491
-#define	EMERALD	492
-#define	TURQUOISE	493
-#define	CITRINE	494
-#define	AQUAMARINE	495
-#define	AMBER	496
-#define	TOPAZ	497
-#define	JET	498
-#define	OPAL	499
-#define	CHRYSOBERYL	500
-#define	GARNET	501
-#define	AMETHYST	502
-#define	JASPER	503
-#define	FLUORITE	504
-#define	OBSIDIAN	505
-#define	AGATE	506
-#define	JADE	507
-/* #define	WORTHLESS_PIECE_OF_WHITE_GLASS	508 */
-/* #define	WORTHLESS_PIECE_OF_BLUE_GLASS	509 */
-/* #define	WORTHLESS_PIECE_OF_RED_GLASS	510 */
-/* #define	WORTHLESS_PIECE_OF_YELLOWISH_BROWN_GLASS	511 */
-/* #define	WORTHLESS_PIECE_OF_ORANGE_GLASS	512 */
-/* #define	WORTHLESS_PIECE_OF_YELLOW_GLASS	513 */
-/* #define	WORTHLESS_PIECE_OF_BLACK_GLASS	514 */
-/* #define	WORTHLESS_PIECE_OF_GREEN_GLASS	515 */
-/* #define	WORTHLESS_PIECE_OF_VIOLET_GLASS	516 */
-#define	LUCKSTONE	517
-#define	HEALTHSTONE	518
-#define	LOADSTONE	519
-#define	FLINT	520
-#define	ROCK	521
-#define	BOULDER	522
-#define	STATUE	523
-#define	HEAVY_IRON_BALL	524
-#define	IRON_CHAIN	525
-#define	BLINDING_VENOM	526
-#define	ACID_VENOM	527
+#define	POT_MOCCA	353
+#define	POT_SPEED	354
+#define	POT_ACID	355
+#define	POT_OIL	356
+#define	POT_GAIN_ABILITY	357
+#define	POT_GAIN_LEVEL	358
+#define	POT_INVULNERABILITY	359
+#define	POT_PARALYSIS	360
+#define	POT_WATER	361
+#define	SCR_CREATE_MONSTER	362
+#define	SCR_TAMING	363
+#define	SCR_LIGHT	364
+#define	SCR_FOOD_DETECTION	365
+#define	SCR_GOLD_DETECTION	366
+#define	SCR_IDENTIFY	367
+#define	SCR_MAGIC_MAPPING	368
+#define	SCR_CONFUSE_MONSTER	369
+#define	SCR_SCARE_MONSTER	370
+#define	SCR_ENCHANT_WEAPON	371
+#define	SCR_ENCHANT_ARMOR	372
+#define	SCR_REMOVE_CURSE	373
+#define	SCR_TELEPORTATION	374
+#define	SCR_FIRE	375
+#define	SCR_EARTH	376
+#define	SCR_DESTROY_ARMOR	377
+#define	SCR_AMNESIA	378
+#define	SCR_CHARGING	379
+#define	SCR_GENOCIDE	380
+#define	SCR_PUNISHMENT	381
+#define	SCR_STINKING_CLOUD	382
+#define	SCR_MAIL	387
+#define	SCR_BLANK_PAPER	388
+#define	SPE_FORCE_BOLT	389
+#define	SPE_CREATE_MONSTER	390
+#define	SPE_DRAIN_LIFE	391
+#define	SPE_COMMAND_UNDEAD	392
+#define	SPE_SUMMON_UNDEAD	393
+#define	SPE_STONE_TO_FLESH	394
+#define	SPE_HEALING	395
+#define	SPE_CURE_BLINDNESS	396
+#define	SPE_CURE_SICKNESS	397
+#define	SPE_EXTRA_HEALING	398
+#define	SPE_RESTORE_ABILITY	399
+#define	SPE_CREATE_FAMILIAR	400
+#define	SPE_LIGHT	401
+#define	SPE_DETECT_MONSTERS	402
+#define	SPE_DETECT_FOOD	403
+#define	SPE_CLAIRVOYANCE	404
+#define	SPE_DETECT_UNSEEN	405
+#define	SPE_IDENTIFY	406
+#define	SPE_DETECT_TREASURE	407
+#define	SPE_MAGIC_MAPPING	408
+#define	SPE_CONFUSE_MONSTER	409
+#define	SPE_SLOW_MONSTER	410
+#define	SPE_CAUSE_FEAR	411
+#define	SPE_CHARM_MONSTER	412
+#define	SPE_ENCHANT_WEAPON	413
+#define	SPE_ENCHANT_ARMOR	414
+#define	SPE_PROTECTION	415
+#define	SPE_RESIST_POISON	416
+#define	SPE_RESIST_SLEEP	417
+#define	SPE_ENDURE_COLD	418
+#define	SPE_ENDURE_HEAT	419
+#define	SPE_INSULATE	420
+#define	SPE_REMOVE_CURSE	421
+#define	SPE_TURN_UNDEAD	422
+#define	SPE_JUMPING	423
+#define	SPE_HASTE_SELF	424
+#define	SPE_ENLIGHTEN	425
+#define	SPE_INVISIBILITY	426
+#define	SPE_LEVITATION	427
+#define	SPE_TELEPORT_AWAY	428
+#define	SPE_PASSWALL	429
+#define	SPE_POLYMORPH	430
+#define	SPE_KNOCK	431
+#define	SPE_FLAME_SPHERE	432
+#define	SPE_FREEZE_SPHERE	433
+#define	SPE_WIZARD_LOCK	434
+#define	SPE_DIG	435
+#define	SPE_CANCELLATION	436
+#define	SPE_MAGIC_MISSILE	437
+#define	SPE_FIREBALL	438
+#define	SPE_CONE_OF_COLD	439
+#define	SPE_SLEEP	440
+#define	SPE_FINGER_OF_DEATH	441
+#define	SPE_LIGHTNING	442
+#define	SPE_POISON_BLAST	443
+#define	SPE_ACID_STREAM	444
+#define	SPE_BLANK_PAPER	451
+#define	SPE_BOOK_OF_THE_DEAD	452
+#define	WAN_LIGHT	453
+#define	WAN_NOTHING	454
+#define	WAN_ENLIGHTENMENT	455
+#define	WAN_HEALING	456
+#define	WAN_LOCKING	457
+#define	WAN_MAKE_INVISIBLE	458
+#define	WAN_OPENING	459
+#define	WAN_PROBING	460
+#define	WAN_SECRET_DOOR_DETECTION	461
+#define	WAN_SLOW_MONSTER	462
+#define	WAN_SPEED_MONSTER	463
+#define	WAN_STRIKING	464
+#define	WAN_UNDEAD_TURNING	465
+#define	WAN_DRAINING	466
+#define	WAN_CANCELLATION	467
+#define	WAN_CREATE_MONSTER	468
+#define	WAN_FEAR	469
+#define	WAN_POLYMORPH	470
+#define	WAN_TELEPORTATION	471
+#define	WAN_CREATE_HORDE	472
+#define	WAN_EXTRA_HEALING	473
+#define	WAN_WISHING	474
+#define	WAN_DIGGING	475
+#define	WAN_MAGIC_MISSILE	476
+#define	WAN_FIRE	477
+#define	WAN_COLD	478
+#define	WAN_SLEEP	479
+#define	WAN_DEATH	480
+#define	WAN_LIGHTNING	481
+#define	WAN_FIREBALL	482
+#define	GOLD_PIECE	486
+#define	DILITHIUM_CRYSTAL	487
+#define	DIAMOND	488
+#define	RUBY	489
+#define	JACINTH	490
+#define	SAPPHIRE	491
+#define	BLACK_OPAL	492
+#define	EMERALD	493
+#define	TURQUOISE	494
+#define	CITRINE	495
+#define	AQUAMARINE	496
+#define	AMBER	497
+#define	TOPAZ	498
+#define	JET	499
+#define	OPAL	500
+#define	CHRYSOBERYL	501
+#define	GARNET	502
+#define	AMETHYST	503
+#define	JASPER	504
+#define	FLUORITE	505
+#define	OBSIDIAN	506
+#define	AGATE	507
+#define	JADE	508
+/* #define	WORTHLESS_PIECE_OF_WHITE_GLASS	509 */
+/* #define	WORTHLESS_PIECE_OF_BLUE_GLASS	510 */
+/* #define	WORTHLESS_PIECE_OF_RED_GLASS	511 */
+/* #define	WORTHLESS_PIECE_OF_YELLOWISH_BROWN_GLASS	512 */
+/* #define	WORTHLESS_PIECE_OF_ORANGE_GLASS	513 */
+/* #define	WORTHLESS_PIECE_OF_YELLOW_GLASS	514 */
+/* #define	WORTHLESS_PIECE_OF_BLACK_GLASS	515 */
+/* #define	WORTHLESS_PIECE_OF_GREEN_GLASS	516 */
+/* #define	WORTHLESS_PIECE_OF_VIOLET_GLASS	517 */
+#define	LUCKSTONE	518
+#define	HEALTHSTONE	519
+#define	LOADSTONE	520
+#define	FLINT	521
+#define	ROCK	522
+#define	BOULDER	523
+#define	STATUE	524
+#define	HEAVY_IRON_BALL	525
+#define	IRON_CHAIN	526
+#define	BLINDING_VENOM	527
+#define	ACID_VENOM	528
 #define	LAST_GEM	(JADE)
 #define	MAXSPELL	59
-#define	NUM_OBJECTS	528
+#define	NUM_OBJECTS	529
 
 /* Artifacts (unique objects) */