


	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.


