205 lines
7.9 KiB
Plaintext
205 lines
7.9 KiB
Plaintext
|
|
|
|
|
|
This document is a brief description of the MULTIGOD hack.
|
|
|
|
--------------
|
|
Introduction -
|
|
--------------
|
|
|
|
The intention of this code is to enhance the enjoy-ability and
|
|
playability of clerical characters in the new skills/exp scheme.
|
|
|
|
This is done by giving players gods to worship who in turn effect
|
|
clerical magic and powers. Included in this patch are several new
|
|
spells which (hopefully) will allow the priest characters a better
|
|
chance to gain xp at higher levels. Notably, the "holy orb" and
|
|
"holy word" spells have been revamped.
|
|
|
|
When MULTIPLE_GODS flag is defined in include/config.h, this
|
|
code is enabled. This code (described below) encompasses 3
|
|
main parts: an array of gods that players/NPCs may worship,
|
|
new clerical spells which rely on the worshiped god's attrib-
|
|
utes in Gods[] array and, altars/praying--the interface between
|
|
a worshiper and their god.
|
|
|
|
b.t.
|
|
thomas@astro.psu.edu
|
|
|
|
---------
|
|
Outline -
|
|
---------
|
|
|
|
1. Description of code -
|
|
|
|
2. Properties of the gods
|
|
|
|
3. Designing new gods
|
|
|
|
4. TODO/Idea list
|
|
|
|
|
|
---------------------
|
|
Description of code -
|
|
---------------------
|
|
|
|
This code is flexible and easy to configure (just edit the god
|
|
archetypes). Part of the reason for creating this code was to
|
|
allow server maintainers to develop their own "mythos". From my
|
|
personal point of view, I hate having the old "Christian" aligned
|
|
mythos, but if that's what you like, you can replicate it with
|
|
this code too (see below).
|
|
|
|
|
|
-------------------------
|
|
2. Properties of the Gods
|
|
-------------------------
|
|
|
|
Here is a fuller description of Gods archetype values.
|
|
|
|
name - name of the god (required)
|
|
other_arch - archetype that will be used for the summon holy
|
|
servant spell.
|
|
title - diametrically opposed god, leave blank if none exists
|
|
attacktype - favored attack of this god, used in spells of summon
|
|
avatar, holy word. Recipients of "holy possession" get
|
|
this too.
|
|
immune - Avatars/holy servants/recipient of "holy possession"
|
|
gets this.
|
|
protected - all of the above AND recipient of god's blessing and the
|
|
priest of this god gets this.
|
|
vulnerable - Avatar/servant/recipient of gods curse/priest of this god
|
|
get this.
|
|
path_attuned - priest of this god and recipient of "bless" gets this
|
|
path_repelled - priest and recipient of "curse" gets this
|
|
path_denied - priest and recipient of "curse" gets this
|
|
slaying - comma delimited list of the races of creatures that are
|
|
aligned with the god. "summon cult monsters" uses.
|
|
this list to find creatures. Summon avatar/call servant
|
|
code assigns this value to prevent them from attacking
|
|
aligned races. Value is blank if no race(s) exists.
|
|
race - comma delimited list of the races of creatures "holy word",
|
|
"holy possession" spells will effect. Value entry is
|
|
blank if no such race(s) exists.
|
|
hp,dam,ac,wc - base stats for the summoned avatar.
|
|
|
|
|
|
IF MORE_PRIEST_GIFTS is defined (in gods.c) then ADDITIONAL gifts/limitations
|
|
will be assigned to the priest:
|
|
|
|
A. FLAGS
|
|
|
|
Now, the following flags, in addition to being used by the god (if planted
|
|
on a map) are assigned to the worshiping priest:
|
|
|
|
can_use_weapon, can_use_armour, is_undead, is_blind, reflect_missile,
|
|
reflect_spell, make_invisible, stealth, can_see_in_dark, xrays
|
|
|
|
NOTE: if can_use_armour/can_use_weapon flags are NOT present, then
|
|
the priest will be forbidden the use of these items.
|
|
|
|
B. STATS
|
|
|
|
The following stats are used:
|
|
|
|
luck - how lucky the god (and the priest) are.
|
|
last_eat - how fast priest digestion is
|
|
last_hp - how fast priest healing is
|
|
last_sp - how fast priest mana regeneration is
|
|
last_grace - how fast priest grace regeneration is
|
|
|
|
|
|
|
|
---------------------
|
|
3. Designing new gods
|
|
---------------------
|
|
|
|
To examine the gods properties, use the '-m8' flag (ie 'crossfire -m8').
|
|
Note some of the big differences here in terms of spell_paths, races, etc.
|
|
Most of these entries were designed with roughly polar opposite gods.
|
|
|
|
For designing new gods. You should make sure that worshiping a god will
|
|
be "unique" in some way. But playbalance first! You must consider the balance
|
|
between the following:
|
|
1) spellpaths 2) priest gifts 3) priest limitations 4) special spells
|
|
5) attacktypes 6) summoned monster lists 7) properties of the avatar
|
|
and holy servant.
|
|
|
|
Here are some hard and fast rules for designing gods:
|
|
- Decide how the cleric will get experience. The god should be either
|
|
a 'summoning', 'turning' *or* a 'wounding' god. If summoning/turning,
|
|
make sure the aligned_race/enemy_race list(s) has enough creatures
|
|
to summon/slay at low, medium and high levels. DONT give a god attuned
|
|
to wounding AND turning||summoning (in fact, at minimum, one of these
|
|
3 paths should be repelled/denied).
|
|
- make sure the summoned avatar is stronger than the servant (!)
|
|
- examine the avatar/servant stats. If set inproperly, you will give
|
|
wimpy/super values. For example, Avatars/servants with less than 50 hp
|
|
(and a high ac/no armour) will vanish quickly. Shoot for stats like:
|
|
|
|
type | A V E R A G E S T A T S
|
|
| hp | ac | wc | arm | dam | speed
|
|
----------|-----------------------------------
|
|
servant | 50 | 5 | 5 | 20 | 5 | 0.15
|
|
avatar | 350 | -5 | -1 | 50 | 50 | 0.25
|
|
|
|
Its difficult to give measurements on how to trade these off. To help
|
|
guide your choices try to conserve the value of speed*dam and
|
|
(armour+1)*hp.
|
|
- avoid giving the potent attacktypes of death, weaponmagic and paralysis.
|
|
- gods have a vulnerability for every immunity. Not all attacktypes
|
|
are the same. Immunity to physical, magic and common attacktypes
|
|
(like fire/cold/electric) are very potent. Similarly, vuln to these
|
|
is a big negative.
|
|
- SPELL paths. Carefull treatment is needed here. Give a path_denied/
|
|
or a couple path_repelled for every path_attuned. BUT note: not all
|
|
paths are of equal use. (ex path_abjuration has a very large list of
|
|
spells). The main clerical paths are restoration, abjuration,
|
|
protection, turning, wounding and summoning. For balance, make 3-4
|
|
of these repelled/denied and 1 or 2 attuned. Be sure to check out the
|
|
special spells list (below). Attuned paths like DEATH, WOUNDING and
|
|
(especially) PROTECTION are very potent. Allow for some balance else
|
|
where if you assign (one!) of these as a path_attuned.
|
|
- If using the MORE_PRIEST_GIFTS define: priest limitations of no weapons
|
|
and no armour are very negative, be sure to compensate with more than
|
|
an attunded path.
|
|
|
|
Of course, you may break these 'rules' to create your god. When you do that,
|
|
you had better make up for the bonus elsewhere! Otherwise, you will create a
|
|
'mega-god' whose worship (by the player priests) will unbalance the game.
|
|
Designing a good god takes a bit of work.
|
|
|
|
|
|
----------------------
|
|
App A. Special spells-
|
|
----------------------
|
|
|
|
Here is a possibly *incomplete* list of the special spells that a god may
|
|
grant use to a worshiper. Check the file spellist.h for the 0 bookchance
|
|
clerical spells to find all of these. (This list was complete on 10/96).
|
|
|
|
God has attuned path spells
|
|
-------------------- -------------
|
|
INFO perceive self
|
|
PROTECTION defense; immuntity to cold, fire, electricity,
|
|
poison, slow, paralysis, draining, attack,
|
|
and magic
|
|
RESTORE remove damnation; reincarnation; raise dead;
|
|
resurrection; regeneration
|
|
WOUNDING cause critical wounds; retributive strike
|
|
LIGHT daylight; nightfall
|
|
DEATH face of death; finger of death
|
|
SUMMONING insect plague
|
|
CREATE wall of thorns
|
|
|
|
|
|
|
|
----------------
|
|
App B. Ideas-
|
|
----------------
|
|
|
|
-- Allow sacrifices. This is an excellent way to give a cleric xp.
|
|
Need to create enemy_race creatures w/ bodyparts we can sacrifice,
|
|
and designate a pointer in Gods{} to the appropriate array of stuff
|
|
we can sacrifice for xp.
|