| 1 |
|
| 2 |
|
| 3 |
This document is a brief description of the ALCHEMY hack. |
| 4 |
|
| 5 |
-------------- |
| 6 |
Introduction - |
| 7 |
-------------- |
| 8 |
|
| 9 |
As always, the general intention is to enhance the enjoyability and |
| 10 |
playability of CF. In this code, I have created a system whereby |
| 11 |
players may assemble various ingredients to make artifacts. |
| 12 |
|
| 13 |
The amount of work I put into this was substantial; other than |
| 14 |
new code -- I created new archetypes, revised archetypes, altered the |
| 15 |
treasures file and created 2 new object types and a flag. |
| 16 |
|
| 17 |
It therefore may be enjoyable to install this patch (incl code) |
| 18 |
and *not* define ALCHEMY in define.h. In particular, this patch |
| 19 |
does the following things: |
| 20 |
|
| 21 |
1) more varieties of potions are available in shops. |
| 22 |
|
| 23 |
2) new gems and types of food. |
| 24 |
|
| 25 |
3) monsters will now leave behind body parts when you kill them. |
| 26 |
|
| 27 |
4) if ALCHEMY is defined players may make potions/artifacts. |
| 28 |
|
| 29 |
I have included instructions for installation, an install script |
| 30 |
and a brief document for using the code (pretty simple). |
| 31 |
|
| 32 |
Finally, as always, feedback is appreciated. |
| 33 |
|
| 34 |
b.t. |
| 35 |
thomas@astro.psu.edu |
| 36 |
|
| 37 |
------------------------ |
| 38 |
Instructions to Players - how to use this code. |
| 39 |
------------------------ |
| 40 |
|
| 41 |
Using the alchemy code (to make artifacts) is easy. You need |
| 42 |
the following things: 1) be able to cast alchemy spell, 2) |
| 43 |
have access to a cauldron and 3) have the right ingredients. |
| 44 |
|
| 45 |
To create an artifact, put ingredients in the cauldron, then |
| 46 |
cast 'alchemy' spell. You might make something :) Backfire |
| 47 |
effects are possible. In order to get better at making stuff, |
| 48 |
you will need to learn the alchemy skill. Books found in shops |
| 49 |
(and elsewhere) will give you formulae for making stuff. |
| 50 |
Of course , you can always 'experiment' on your own, but this |
| 51 |
may be dangerous. |
| 52 |
|
| 53 |
|
| 54 |
--------------------- |
| 55 |
Description of code - |
| 56 |
--------------------- |
| 57 |
|
| 58 |
The bulk fo the alchemy code resides in 2 files - recipe.c |
| 59 |
and alchemy.c. The basic features of the code are: |
| 60 |
|
| 61 |
1- allow players to make artifacts from formulae. As players |
| 62 |
gain xp and levels, their ability to create stuff improves |
| 63 |
|
| 64 |
2- fast lookup of formulae. Lookup is randomized so that the |
| 65 |
list is attempted for a match based on # levels the player |
| 66 |
has. Obviously, higher level players get more attempts |
| 67 |
to match the list--and thereby have a grater chance of |
| 68 |
successfully completing a formula. |
| 69 |
|
| 70 |
3- There are ~80 formulae in this version. You can dump |
| 71 |
the formulalists using the crossfire -m7 option. |
| 72 |
|
| 73 |
Basically, a simple linked list, ordered by the |
| 74 |
number of different archs in a formulae, is used to |
| 75 |
lookup 'recipe' matches. An indexed value for each formulae |
| 76 |
allows a quick comparison for a match with the cauldron |
| 77 |
contents. When a player casts alchemy on a cauldron, we |
| 78 |
first determine # archs inside the cauldron, pick the |
| 79 |
correct formulalist, randomly match against that list to |
| 80 |
see if we got a match. If matched, we remove the ingredients, |
| 81 |
and insert the artifact into the cauldron. Exp is awarded |
| 82 |
to the players alchemy skill (if they have it). |
| 83 |
|
| 84 |
|