Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ALCHEMY idea
- To: crossfire (at) ifi.uio.no
- Subject: ALCHEMY idea
- From: "Brian Thomas" <>
- Date: Tue, 30 May 95 07:59:30 EDT
Hi, ...things seem to have slowed down around here
(*except* for the spam :). I thought I would share
an idea with the community on some thoughts I had
about implementation of Alchemy (in the sense of
players making magic compounds like potions).
In essense the Alchemy should feature:
1) player ability to create magical compounds
(like potions, powder, balm, etc) from various
found, bought, and prepared ingredients.
2) player's should have the ability to experiment
making stuff. As a result, both good and bad
things can happen.
3) The code should be contained and as simple as
possible. It should feature a way to easily
add new alchemical formulae and potions to
an existing roster of allowable formulae.
I thinking of implementing this in the following way.
Players will be able to grind, distill, etc various
items (see below) with alchemical devices (below) to
produce 'alchemical' ingredients. These ingredients
are inert until they are mixed together and the alchemy
spell is cast upon the container holding them (I will
call it the 'beaker' for now). If the mixure in the
beaker is appropriate (according to an array holding
allowed 'formulae') then something is predictably
produced. If the mixture in the beaker is wrong, well
bad things can happen (like explosions, fireballs,
summon evil monsters, player loses stats, etc).
Alchemical devices: The objects are like containers, but
will change other allowed objects into alchemical
ingredients. In concept alchemical devices are a new
object type (ie 'ALCONTAINER') as is each of the alchemical
ingredients. Some Alchemical devices require spells to be
cast on them to operate.
Device Operation Produces (type) Activation Spell
------ --------- --------------- ----------------
Mortar Grinds Powder (POWDER) none
Retort Distills Essence (ESSENCE) Fire spells
Crucible Calcinates Ashes (ASH) Fire spells
Beaker Combines Potion, balm, (POTION) Alchemy spell
etc.
In princible, most of this alchemical equipment is reusable,
(excepting the beaker) but is quite heavy.
A 'potion' array could look something like this:
"product name", "spell","ingrd1","ingrd2","ingrd3","value","face","level"
where "product name" is the name of the produced 'potion', balm, etc.
"spell" is the spell to be cast by the potion, balm, etc. when
it is consumed, "ingrd1","ingrd2" and "ingrd3" are the components
for making the "product". Each comprises the name and type of the
ingredient (see below example). There can be from 1-3 ingredients required,
which must match the name,type and *order* listed in the array.
"value" is the value of the product, "face" is the image that
will be associated with the produced POTION (the beaker is removed
after every attempt, even if the compounding is unsuccessfull).
"level" is the level at which the spell will be cast. Most potions
should "cast" at the base level of the spell, but some may be
stronger.
Examples for an array of alchemical products and formulae
---------------------------------------------------------
"Balm of transparency",SP_INVISIBLE,"beholder eye, POWDER","NULL,NULL",
"NULL,NULL",1000,"balm.111",10
In the above, one ingredient is needed to make the "balm of transparency"
a POTION which when consumed makes the user invisible. This ingredient
is the "Powder of beholder eye", which is produced by putting a
beholder eye into a mortar. The resultant product 'potion' has the
'balm' image, and is cast at the 10th level.
"Phylum of Rigidity",SP_PARALYZE,"orc steak, ASH","food, ESSENSE",
"NULL,NULL",10,"potion.111",30
In the above, 2 ingredients are needed to make the "Phlyum of
Rigidity", a POTION which when consumed paralyzes the user.
These ingredients are "ash of orc steak" and "essence of food"
(ok, ok we will need more monster parts than are currently around)
Not a good thing to consume :)
And so on.... Any comments on this would be appreciated. Also...
I seem to remember someone stating that they were working on implementing
throwing code.. Has this been done yet??
Caio, b.t.