Color Alchemy Patch v1.2

Download patch

This patch was inspired by a YANI by Graham Cox.
The current system of alchemy based on potion type (e.g. healing + gain energy = extra healing) is changed to one based on color (e.g. sky blue + yellow = emerald). The advantage of this is that what potions you can get from alchemy change with each game, which contributes to each game's uniqueness.
This patch doesn't change bones/save file compatability


First we catagorize the potions by color and dark/light level:

Dark Light
Red ruby pink
Yellow golden yellow
Blue brilliant blue sky blue

Orange amber orange
Green dark green emerald
Purple magenta puce

Brown brown

Black black
White white
Gray cloudy

murky, milky, dark, smoky, swirly, bubbly, effervescent, fizzy, viscous

Note a few changes from vanilla: "purple-red" has been changed to "amber" and "cyan" has been changed to "viscous".
Brown has no light/dark distinction: "brown" is both.
You could classify "milky" as White, "dark" as Black, "smoky" as Gray, "murky" as Dark Brown and re-classify "brown" as Light Brown. However, for balance reasons I want to cut down on the number of possible combinations.

Combination rules:

Red+Yellow = Orange
Red+Blue = Purple
Yellow+Blue = Green

Always yields Brown

In the above combinations, the light/dark level of the resulting potion will be the same as that of the input potions if they are the same, or randomly chosen if they are different. An exception to this rule is that if one input potion is diluted and the other isn't, the non-diluted potion passes its light/dark level to the resulting potion.

Black+White = Gray
Black+light color = dark color
White+dark color = light color

Other combinations:
1/2 evaporates, 1/4 sickness, 1/8 random potion, 1/8 water
(Unchanged from vanilla)

Potion of polymorph always polymorphs the other potion instead of combining.

yellow + sky blue = emerald
ruby + golden = amber
orange + dark green = brown
brilliant blue + pink = equal chance of magenta or puce
diluted golden + sky blue = always emerald
pink + black = ruby
amber + white = orange.

Version Information

Changes in v1.1
Updated to 3.4.2 code base.
Changes in v1.2
Updated to 3.4.3 code base.