1 |
root |
1.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 |
|
|
|