/
Debug/
area/
data/
gods/
player/
player/skill/
/****************************************************************************
 *  Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,			*
 *  Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe.	*
 *																			*
 *  Merc Diku Mud improvments copyright (C) 1992, 1993 by Michael			*
 *  Chastain, Michael Quan, and Mitchell Tse.								*
 *																			*
 *  In order to use any part of this Merc Diku Mud, you must comply with	*
 *  both the original Diku license in 'license.doc' as well the Merc		*
 *  license in 'license.txt'.  In particular, you may not remove either of	*
 *  these copyright notices.												*
 *																			*
 *  Much time and thought has gone into this software and you are			*
 *  benefitting.  We hope that you share your changes too.  What goes		*
 *  around, comes around.													*
 ***************************************************************************/
 
/****************************************************************************
*	ROM 2.4 is copyright 1993-1998 Russ Taylor								*
*	ROM has been brought to you by the ROM consortium						*
*	    Russ Taylor (rtaylor@hypercube.org)									*
*	    Gabrielle Taylor (gtaylor@hypercube.org)							*
*	    Brian Moore (zump@rom.org)											*
*	By using this code, you have agreed to follow the terms of the			*
*	ROM license, in the file Rom24/doc/rom.license							*
***************************************************************************/
/****************************************************************************
*	Demon's Dance MUD, and source code are property of Eric Goetschalckx	*
*	By compiling this code, you agree to include the following in your		*
*	login screen:															*
*	    Derivative of Demon's Dance, by Enzo/Stan							*
***************************************************************************/

#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <stdio.h>
#include <time.h>
#include "merc.h"
#include "magic.h"
#include "interp.h"
#include "execute.h"


/* item type list */
const struct item_type		item_table	[]	=
{
    {	ITEM_LIGHT,	"light"		},
    {	ITEM_SCROLL,	"scroll"	},
    {	ITEM_WAND,	"wand"		},
    {   ITEM_STAFF,	"staff"		},
    {   ITEM_WEAPON,	"weapon"	},
    {   ITEM_TREASURE,	"treasure"	},
    {   ITEM_ARMOR,	"armor"		},
    {	ITEM_POTION,	"potion"	},
    {	ITEM_CLOTHING,	"clothing"	},
    {   ITEM_FURNITURE,	"furniture"	},
    {	ITEM_TRASH,	"trash"		},
    {	ITEM_CONTAINER,	"container"	},
    {	ITEM_DRINK_CON, "drink"		},
    {	ITEM_KEY,	"key"		},
    {	ITEM_FOOD,	"food"		},
    {	ITEM_MONEY,	"money"		},
    {	ITEM_BOAT,	"boat"		},
    {	ITEM_CORPSE_NPC,"npc_corpse"	},
    {	ITEM_CORPSE_PC,	"pc_corpse"	},
    {   ITEM_FOUNTAIN,	"fountain"	},
    {	ITEM_PILL,	"pill"		},
    {	ITEM_PROTECT,	"protect"	},
    {	ITEM_MAP,	"map"		},
    {	ITEM_PORTAL,	"portal"	},
    {	ITEM_WARP_STONE,"warp_stone"	},
    {	ITEM_ROOM_KEY,	"room_key"	},
    {	ITEM_GEM,	"gem"		},
    {	ITEM_JEWELRY,	"jewelry"	},
    {   ITEM_JUKEBOX,	"jukebox"	},
	{	ITEM_QUIVER,	"quiver"	},
	{	ITEM_ARROW,		"arrow",	},
	{	ITEM_FORT,		"fort",		},
	{	ITEM_TOKEN,		"token",	},
	{	ITEM_GOLEM_BAG,	"golem_bag"	},
	{	ITEM_GOLEM_PART,"golem_part"},
	{	ITEM_SMITH_FURNACE,	"smith_furnace"	},
	{	ITEM_SMITH_HAMMER,	"smith_hammer"	},
	{	ITEM_SMITH_BARREL,	"smith_barrel"	},
	{	ITEM_SMITH_GRINDER,	"smith_grinder"	},
	{	ITEM_SMITH_ANVIL,	"smith_anvil"	},
	{	ITEM_SMITH_ORE,		"smith_ore"	},
	{	ITEM_SHEATH,		"sheath"	},

    {   0,		NULL		}
};


/* weapon selection table */
const	struct	weapon_type	weapon_table	[]	=
{
   { "sword",	OBJ_VNUM_SCHOOL_SWORD,	WEAPON_SWORD,	&gsn_sword	},
   { "mace",	OBJ_VNUM_SCHOOL_MACE,	WEAPON_MACE,	&gsn_mace 	},
   { "dagger",	OBJ_VNUM_SCHOOL_DAGGER,	WEAPON_DAGGER,	&gsn_dagger	},
   { "axe",	OBJ_VNUM_SCHOOL_AXE,	WEAPON_AXE,	&gsn_axe	},
   { "staff",	OBJ_VNUM_SCHOOL_STAFF,	WEAPON_SPEAR,	&gsn_spear	},
   { "flail",	OBJ_VNUM_SCHOOL_FLAIL,	WEAPON_FLAIL,	&gsn_flail	},
   { "whip",	OBJ_VNUM_SCHOOL_WHIP,	WEAPON_WHIP,	&gsn_whip	},
   { "polearm",	OBJ_VNUM_SCHOOL_POLEARM,WEAPON_POLEARM,	&gsn_polearm	},
   { "bow",		OBJ_VNUM_SCHOOL_SWORD,	WEAPON_BOW,		&gsn_bow		},
   { NULL,	0,				0,	NULL		}
};

const	struct	golem_type	golem_table		[]	=
{
   { "heart",	GOLEM_VNUM_HEART,	GOLEM_HEART	},
   { "head",	GOLEM_VNUM_HEAD,	GOLEM_HEAD	},
   { "leg",		GOLEM_VNUM_LEG,		GOLEM_LEG	},
   { "arm",		GOLEM_VNUM_ARM,		GOLEM_ARM	},
};


 
/* wiznet table and prototype for future flag setting */
const   struct wiznet_type      wiznet_table    []              =
{
   {    "on",           WIZ_ON,         IM },
   {    "prefix",	WIZ_PREFIX,	IM },
   {    "ticks",        WIZ_TICKS,      IM },
   {    "logins",       WIZ_LOGINS,     IM },
   {    "sites",        WIZ_SITES,      L4 },
   {    "links",        WIZ_LINKS,      L7 },
   {	"newbies",	WIZ_NEWBIE,	IM },
   {	"spam",		WIZ_SPAM,	L5 },
   {    "deaths",       WIZ_DEATHS,     IM },
   {    "resets",       WIZ_RESETS,     L4 },
   {    "mobdeaths",    WIZ_MOBDEATHS,  L4 },
   {    "flags",	WIZ_FLAGS,	L5 },
   {	"penalties",	WIZ_PENALTIES,	L5 },
   {	"saccing",	WIZ_SACCING,	L5 },
   {	"levels",	WIZ_LEVELS,	IM },
   {	"load",		WIZ_LOAD,	L2 },
   {	"restore",	WIZ_RESTORE,	L2 },
   {	"snoops",	WIZ_SNOOPS,	L2 },
   {	"switches",	WIZ_SWITCHES,	L2 },
   {	"secure",	WIZ_SECURE,	L1 },
   {	NULL,		0,		0  }
};

/* attack table  -- not very organized :( */
const 	struct attack_type	attack_table	[MAX_DAMAGE_MESSAGE]	=
{
    { 	"none",		"hit",		-1		},  /*  0 */
    {	"slice",	"slice", 	DAM_SLASH	},	
    {   "stab",		"stab",		DAM_PIERCE	},
    {	"slash",	"slash",	DAM_SLASH	},
    {	"whip",		"whip",		DAM_SLASH	},
    {   "claw",		"claw",		DAM_SLASH	},  /*  5 */
    {	"blast",	"blast",	DAM_BASH	},
    {   "pound",	"pound",	DAM_BASH	},
    {	"crush",	"crush",	DAM_BASH	},
    {   "grep",		"grep",		DAM_SLASH	},
    {	"bite",		"bite",		DAM_PIERCE	},  /* 10 */
    {   "pierce",	"pierce",	DAM_PIERCE	},
    {   "suction",	"suction",	DAM_BASH	},
    {	"beating",	"beating",	DAM_BASH	},
    {   "digestion",	"digestion",	DAM_ACID	},
    {	"charge",	"charge",	DAM_BASH	},  /* 15 */
    { 	"slap",		"slap",		DAM_BASH	},
    {	"punch",	"punch",	DAM_BASH	},
    {	"wrath",	"wrath",	DAM_ENERGY	},
    {	"magic",	"magic",	DAM_ENERGY	},
    {   "divine",	"divine power",	DAM_HOLY	},  /* 20 */
    {	"cleave",	"cleave",	DAM_SLASH	},
    {	"scratch",	"scratch",	DAM_PIERCE	},
    {   "peck",		"peck",		DAM_PIERCE	},
    {   "peckb",	"peck",		DAM_BASH	},
    {   "chop",		"chop",		DAM_SLASH	},  /* 25 */
    {   "sting",	"sting",	DAM_PIERCE	},
    {   "smash",	 "smash",	DAM_BASH	},
    {   "shbite",	"shocking bite",DAM_LIGHTNING	},
    {	"flbite",	"flaming bite", DAM_FIRE	},
    {	"frbite",	"freezing bite", DAM_COLD	},  /* 30 */
    {	"acbite",	"acidic bite", 	DAM_ACID	},
    {	"chomp",	"chomp",	DAM_PIERCE	},
    {  	"drain",	"life drain",	DAM_NEGATIVE	},
    {   "thrust",	"thrust",	DAM_PIERCE	}, 
    {   "slime",	"slime",	DAM_ACID	}, /*35*/
    {	"shock",	"shock",	DAM_LIGHTNING	},
    {   "thwack",	"thwack",	DAM_BASH	},
    {   "flame",	"flame",	DAM_FIRE	},
    {   "chill",	"chill",	DAM_COLD	},	
	{	"warp",		"{Mw{Gar{Mp{x",	DAM_ENERGY	}, /*40*/
	{	"wail",		"banshee wail",	DAM_MENTAL	},
	{	"blaze",	"blaze",		DAM_FIRE	},
	{	"icicle",	"icicle",		DAM_COLD	},
	{	"lunge",	"lunge",		DAM_PIERCE	},
	{	"scythe",	"wicked scythe",	DAM_SLASH	},
    {   NULL,		NULL,		0		}
};





/*
 * Attribute bonus tables.
 */
const	struct	str_app_type	str_app		[MAX_STAT_VALUE]		=
{
    { -5, -4,   0,  0 },  /* 0  */
    { -5, -4,   3,  1 },  /* 1  */
    { -3, -2,   3,  2 },
    { -3, -1,  10,  3 },  /* 3  */
    { -2, -1,  25,  4 },
    { -2, -1,  55,  5 },  /* 5  */
    { -1,  0,  80,  6 },
    { -1,  0,  90,  7 },
    {  0,  0, 100,  8 },
    {  0,  0, 100,  9 },
    {  0,  0, 115, 10 }, /* 10  */
    {  0,  0, 115, 11 },
    {  0,  0, 130, 12 },
    {  0,  0, 130, 13 }, /* 13  */
    {  0,  1, 140, 14 },
    {  1,  1, 150, 15 }, /* 15  */
    {  1,  2, 165, 16 },
    {  2,  3, 180, 22 },
    {  2,  3, 200, 25 }, /* 18  */
    {  3,  4, 225, 30 },
    {  3,  5, 250, 35 }, /* 20  */
    {  4,  6, 300, 40 },
    {  4,  6, 350, 45 },
    {  5,  7, 400, 50 },
    {  5,  8, 450, 55 },
    {  6,  9, 500, 60 },  /* 25   */
    {  6,  10, 550, 65 },
    {  7,  11, 600, 70 },
    {  7,  12, 650, 75 },
    {  8,  13, 700, 80 },
    {  8,  14, 750, 85 }, /* 30 */
    {  9,  15, 800, 90 },
    {  9,  16, 850, 95 },
    {  10,  17, 900, 100 },
	{  10,  18, 950, 105 },
    {  11,  19, 1000, 110 }, /* 35 */
    {  12,  20, 1050, 115 },
    {  12,  21, 1100, 120 },
    {  13,  22, 1150, 125 },
    {  13,  23, 1200, 130 },
    {  14,  24, 1250, 135 }, /* 40 */
	{  15,  25, 1300, 140 },
	{  16,  26, 1350, 145 },
	{  17,  27, 1400, 150 },
	{  18,  28, 1450, 155 },
	{  19,  29, 1500, 160 },/* 50 */
	{  20,  30, 1550, 165 },
	{  21,  31, 1600, 170 },
	{  22,  32, 1650, 175 },
	{  23,  33, 1700, 180 },
	{  24,  34, 1750, 185 } /* 55 */
};



const	struct	int_app_type	int_app		[MAX_STAT_VALUE]		=
{
    {  3 },	/*  0 */
    {  5 },	/*  1 */
    {  7 },
    {  8 },	/*  3 */
    {  9 },
    { 10 },	/*  5 */
    { 11 },
    { 12 },
    { 13 },
    { 15 },
    { 17 },	/* 10 */
    { 19 },
    { 22 },
    { 25 },
    { 28 },
    { 31 },	/* 15 */
    { 34 },
    { 37 },
    { 40 },	/* 18 */
    { 44 },
    { 49 },	/* 20 */
    { 55 },
    { 60 },
    { 70 },
    { 80 },
    { 80 },	/* 25 */
	{ 80 },
	{ 80 },
	{ 80 },
	{ 80 },
	{ 80 }, /* 30 */
	{ 80 },
	{ 80 },
	{ 80 },
	{ 80 },
	{ 80 }, /* 35 */
	{ 80 },
	{ 80 },
	{ 80 },
	{ 80 },
	{ 80 }, /* 40 */
	{ 80 },
	{ 80 },
	{ 80 },
	{ 80 },
	{ 80 },/* 45 */
	{ 80 },
	{ 80 },
	{ 80 },
	{ 80 },
	{ 80 }/* 50 */


};



const	struct	wis_app_type	wis_app		[MAX_STAT_VALUE]		=
{
    { 0 },	
	{ 1 },	{ 1 },	{ 1 },	{ 1 },	{ 1 },	/* 5  */
	{ 2 },	{ 2 },	{ 2 },	{ 2 },	{ 2 },	/* 10 */
	{ 3 },	{ 3 },	{ 3 },	{ 3 },	{ 3 },	/* 15 */
    { 4 },	{ 4 },	{ 4 },	{ 4 },	{ 4 },	/* 20 */
	{ 5 },	{ 5 },	{ 5 },	{ 5 },	{ 5 },	/* 25 */
	{ 6 },	{ 6 },	{ 6 },	{ 6 },	{ 7	},	/* 30 */
	{ 8 },  { 8 },	{ 8 },	{ 8 },	{ 8 },	/* 35 */
    { 9 },	{ 9 },	{ 9 },	{ 9 },	{ 9 },	/* 40 */
	{ 10 },	{ 10 },	{ 10 },	{ 10 },	{ 10 },	/* 45 */
	{ 11 },	{ 11 },	{ 11 },	{ 11 },	{ 11 }	/* 50 */
};



const	struct	dex_app_type	dex_app		[MAX_STAT_VALUE]		=
{
    {   60 },   /* 0 */
    {   50 },   /* 1 */
    {   50 },
    {   40 },
    {   30 },
    {   20 },   /* 5 */
    {   10 },
    {    0 },
    {    0 },
    {    0 },
    {    0 },   /* 10 */
    {    0 },
    {    0 },
    {    0 },
    {    0 },
    { - 10 },   /* 15 */
    { - 15 },
    { - 20 },
    { - 30 },
    { - 40 },
    { - 50 },   /* 20 */
    { - 60 },
    { - 75 },
    { - 90 },
    { -105 },
    { -125 },    /* 25 */
    { -150 },
    { -175 },
    { -200 },
    { -225 }, /* 30 */
    { -250 },
    { -275 },
    { -300 },
    { -325 },
    { -350 }, /* 35 */
    { -375 },
    { -400 },
    { -425 },
    { -450 },
    { -475 },
    { -500 } /* 40 */
};


const	struct	con_app_type	con_app		[MAX_STAT_VALUE]		=
{
    { -4, 20 },   /*  0 */
    { -3, 25 },   /*  1 */
    { -2, 30 },
    { -2, 35 },	  /*  3 */
    { -1, 40 },
    { -1, 45 },   /*  5 */
    { -1, 50 },
    {  0, 55 },
    {  0, 60 },
    {  0, 65 },
    {  0, 70 },   /* 10 */
    {  0, 75 },
    {  0, 80 },
    {  0, 85 },
    {  0, 88 },
    {  1, 90 },   /* 15 */
    {  2, 95 },
    {  2, 97 },
    {  3, 99 },   /* 18 */
    {  3, 99 },
    {  4, 99 },   /* 20 */
    {  4, 99 },
    {  5, 99 },
    {  6, 99 },
    {  7, 99 },
    {  8, 99 },    /* 25 */
    {  9, 99 },
    {  10, 99 },
    {  11, 99 },
    {  12, 99 },
    {  13, 99 }, /* 30 */
    {  14, 99 },
    {  15, 99 },
    {  16, 99 },
    {  17, 99 },
    {  18, 99 }, /* 35 */
    {  19, 99 },
    {  20, 99 },
    {  21, 99 },
    {  22, 99 },
    {  23, 99 } /* 40 */
};



/*
 * Liquid properties.
 * Used in world.obj.
 */
const	struct	liq_type	liq_table	[]	=
{
/*    name			color	proof, full, thirst, food, ssize */
    { "water",			"clear",	{   0, 1, 10, 0, 16 }	},
    { "beer",			"amber",	{  12, 1,  8, 1, 12 }	},
    { "red wine",		"burgundy",	{  30, 1,  8, 1,  5 }	},
    { "ale",			"brown",	{  15, 1,  8, 1, 12 }	},
    { "dark ale",		"dark",		{  16, 1,  8, 1, 12 }	},

    { "whisky",			"golden",	{ 120, 1,  5, 0,  2 }	},
    { "lemonade",		"pink",		{   0, 1,  9, 2, 12 }	},
    { "firebreather",		"boiling",	{ 190, 0,  4, 0,  2 }	},
    { "local specialty",	"clear",	{ 151, 1,  3, 0,  2 }	},
    { "slime mold juice",	"green",	{   0, 2, -8, 1,  2 }	},

    { "milk",			"white",	{   0, 2,  9, 3, 12 }	},
    { "tea",			"tan",		{   0, 1,  8, 0,  6 }	},
    { "coffee",			"black",	{   0, 1,  8, 0,  6 }	},
    { "blood",			"red",		{   0, 2, -1, 2,  6 }	},
    { "salt water",		"clear",	{   0, 1, -2, 0,  1 }	},

    { "coke",			"brown",	{   0, 2,  9, 2, 12 }	}, 
    { "root beer",		"brown",	{   0, 2,  9, 2, 12 }   },
    { "elvish wine",		"green",	{  35, 2,  8, 1,  5 }   },
    { "white wine",		"golden",	{  28, 1,  8, 1,  5 }   },
    { "champagne",		"golden",	{  32, 1,  8, 1,  5 }   },

    { "mead",			"honey-colored",{  34, 2,  8, 2, 12 }   },
    { "rose wine",		"pink",		{  26, 1,  8, 1,  5 }	},
    { "benedictine wine",	"burgundy",	{  40, 1,  8, 1,  5 }   },
    { "vodka",			"clear",	{ 130, 1,  5, 0,  2 }   },
    { "cranberry juice",	"red",		{   0, 1,  9, 2, 12 }	},

    { "orange juice",		"orange",	{   0, 2,  9, 3, 12 }   }, 
    { "absinthe",		"green",	{ 200, 1,  4, 0,  2 }	},
    { "brandy",			"golden",	{  80, 1,  5, 0,  4 }	},
    { "aquavit",		"clear",	{ 140, 1,  5, 0,  2 }	},
    { "schnapps",		"clear",	{  90, 1,  5, 0,  2 }   },

    { "icewine",		"purple",	{  50, 2,  6, 1,  5 }	},
    { "amontillado",		"burgundy",	{  35, 2,  8, 1,  5 }	},
    { "sherry",			"red",		{  38, 2,  7, 1,  5 }   },	
    { "framboise",		"red",		{  50, 1,  7, 1,  5 }   },
    { "rum",			"amber",	{ 151, 1,  4, 0,  2 }	},

    { "cordial",		"clear",	{ 100, 1,  5, 0,  2 }   },
    { NULL,			NULL,		{   0, 0,  0, 0,  0 }	}
};

/*
 * The skill and spell table.
 * Slot numbers must never be changed as they appear in #OBJECTS sections.
 */
#define SLOT(n)	n

struct	skill_type	skill_table	[MAX_SKILL]	=
{

/*
 * Magic spells.
 */

    {
	"reserved",
	{0},{0},
	0,	0,		TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT( 0),	 0,	 0,
	"",			"",		"", ""
    },

    {
	"acid blast",
	{0}, {0},
	spell_acid_blast, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(70),	35,	12,
	"acid blast",		"!Acid Blast!", "", "TEACH_NONE"
    },

    {
	"armor",
	{0}, {0},
	spell_armor, form_null,		TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT( 1),	 5,	12,
	"",			"You feel less armored.",	"", "TEACH_NONE"
    },

    {
	"bless",
	{0}, {0},
	spell_bless, form_null,		TAR_OBJ_CHAR_DEF,	POS_STANDING,
	NULL,			SLOT( 3),	 5,	12,
	"",			"You feel less righteous.", 
	"$p's holy aura fades.", "TEACH_NONE"
    },

    {
	"blindness",
	{0}, {0},
	spell_blindness, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	&gsn_blindness,		SLOT( 4),	 5,	12,
	"",			"You can see again.",	"", "TEACH_NONE"
    },

    {
	"burning hands",
	{0}, {0},
	spell_burning_hands, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT( 5),	20,	12,
	"burning hands",	"!Burning Hands!", 	"", "TEACH_NONE"
    },

    {
	"call lightning",
	{0}, {0},
	spell_call_lightning, form_null,	TAR_IGNORE,		POS_FIGHTING,
	NULL,			SLOT( 6),	15,	12,
	"lightning bolt",	"!Call Lightning!",	"", "TEACH_NONE"
    },

    {   
	"calm",	
	{0}, {0},
	spell_calm, form_null,		TAR_IGNORE,		POS_FIGHTING,
	NULL,			SLOT(509),	30,	12,
	"",			"You have lost your peace of mind.",	"", "TEACH_NONE"
    },

    {
	"cancellation",
	{0}, {0},
	spell_cancellation, form_null,	TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(507),	20,	12,
	"",			"!cancellation!",	"", "TEACH_NONE"
    },

    {
	"cause critical",
	{0}, {0},
	spell_cause_critical, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(63),	20,	12,
	"spell",		"!Cause Critical!",	"", "TEACH_NONE"
    },

    {
	"cause light",
	{0}, {0},
	spell_cause_light, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(62),	5,	12,
	"spell",		"!Cause Light!",	"", "TEACH_NONE"
    },

    {
	"cause serious",
	{0}, {0},
	spell_cause_serious, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(64),	10,	12,
	"spell",		"!Cause Serious!",	"", "TEACH_NONE"
    },

    {   
	"chain lightning",
	{0}, {0},
	spell_chain_lightning, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(500),	25,	12,
	"lightning",		"!Chain Lightning!",	"", "TEACH_NONE"
    }, 

    {
	"change sex",
	{0}, {0},
	spell_change_sex, form_null,	TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(82),	15,	12,
	"",			"Your body feels familiar again.",	"", "TEACH_NONE"
    },

    {
	"charm person",
	{0}, {0},
	spell_charm_person, form_null,	TAR_CHAR_OFFENSIVE,	POS_STANDING,
	&gsn_charm_person,	SLOT( 7),	 5,	12,
	"",			"You feel more self-confident.",	"", "TEACH_NONE"
    },

    {
	"chill touch",
	{0}, {0},
	spell_chill_touch, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT( 8),	7,	12,
	"chilling touch",	"You feel less cold.",	"", "TEACH_NONE"
    },

    {
	"colour spray",
	{0}, {0},
	spell_colour_spray, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(10),	25,	12,
	"colour spray",		"!Colour Spray!",	"", "TEACH_NONE"
    },

    {
	"continual light",
	{0}, {0},
	spell_continual_light, form_null,	TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT(57),	 7,	12,
	"",			"!Continual Light!",	"", "TEACH_NONE"
    },

    {
	"control weather",
	{0}, {0},
	spell_control_weather, form_null,	TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT(11),	25,	12,
	"",			"!Control Weather!",	"", "TEACH_NONE"
    },

    {
	"create food",
	{0}, {0},
	spell_create_food, form_null,	TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT(12),	 5,	12,
	"",			"!Create Food!",	"", "TEACH_NONE"
    },

    {
	"create rose",
	{0}, {0},
	spell_create_rose, form_null,	TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT(511),	30, 	12,
	"",			"!Create Rose!",	"", "TEACH_NONE"
    },  

    {
	"create spring",
	{0}, {0},
	spell_create_spring, form_null,	TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT(80),	20,	12,
	"",			"!Create Spring!",	"", "TEACH_NONE"
    },

    {
	"create water",	
	{0}, {0},
	spell_create_water, form_null,	TAR_OBJ_INV,		POS_STANDING,
	NULL,			SLOT(13),	 5,	12,
	"",			"!Create Water!",	"", "TEACH_NONE"
    },

    {
	"cure blindness",
	{0}, {0},
	spell_cure_blindness, form_null,	TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(14),	 5,	12,
	"",			"!Cure Blindness!",	"", "TEACH_NONE"
    },

    {
	"cure critical",
	{0}, {0},
	spell_cure_critical, form_null,	TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(15),	20,	12,
	"",			"!Cure Critical!",	"", "TEACH_NONE"
    },

    {
	"cure disease",
	{0}, {0},
	spell_cure_disease, form_null,	TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT(501),	20,	12,
	"",			"!Cure Disease!",	"", "TEACH_NONE"
    },

    {
	"cure light",
	{0}, {0},
	spell_cure_light, form_null,	TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(16),	8,	12,
	"",			"!Cure Light!",		"", "TEACH_NONE"
    },

    {
	"cure poison",
	{0}, {0},
	spell_cure_poison, form_null,	TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT(43),	 5,	12,
	"",			"!Cure Poison!",	"", "TEACH_NONE"
    },

    {
	"cure serious",
	{0}, {0},
	spell_cure_serious, form_null,	TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(61),	15,	12,
	"",			"!Cure Serious!",	"", "TEACH_NONE"
    },

    {
	"curse",
	{0}, {0},
	spell_curse, form_null,		TAR_OBJ_CHAR_OFF,	POS_FIGHTING,
	&gsn_curse,		SLOT(17),	20,	12,
	"curse",		"The curse wears off.", 
	"$p is no longer impure.", "TEACH_NONE"
    },

    {
	"demonfire",
	{0}, {0},
	spell_demonfire, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(505),	20,	12,
	"torments",		"!Demonfire!",		"", "TEACH_NONE"
    },	

    {
	"detect evil",
	{0}, {0},
	spell_detect_evil, form_null,	TAR_CHAR_SELF,		POS_STANDING,
	NULL,			SLOT(18),	 5,	12,
	"",			"The red in your vision disappears.",	"", "TEACH_NONE"
    },

    {
    "detect good",
	{0}, {0},
    spell_detect_good, form_null,      TAR_CHAR_SELF,          POS_STANDING,
    NULL,                   SLOT(513),        5,     12,
    "",                     "The gold in your vision disappears.",	"", "TEACH_NONE"
    },

    {
	"detect hidden",
	{0}, {0},
	spell_detect_hidden, form_null,	TAR_CHAR_SELF,		POS_STANDING,
	NULL,			SLOT(44),	 5,	12,
	"",			"You feel less aware of your surroundings.",	
	"", "TEACH_NONE"
    },

    {
	"detect invis",
	{0}, {0},
	spell_detect_invis, form_null,	TAR_CHAR_SELF,		POS_STANDING,
	NULL,			SLOT(19),	 5,	12,
	"",			"You no longer see invisible objects.",
	"", "TEACH_NONE"
    },

    {
	"detect magic",
	{0}, {0},
	spell_detect_magic, form_null,	TAR_CHAR_SELF,		POS_STANDING,
	NULL,			SLOT(20),	 5,	12,
	"",			"The detect magic wears off.",	"", "TEACH_NONE"
    },

    {
	"detect poison",
	{0}, {0},
	spell_detect_poison, form_null,	TAR_OBJ_INV,		POS_STANDING,
	NULL,			SLOT(21),	 5,	12,
	"",			"!Detect Poison!",	"", "TEACH_NONE"
    },

	{
	"discern weakness",
	{0}, {0},
	spell_discern_weakness, form_null,	TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(606),	 9,	12,
	"",			"!Discern Weakness!",	"", "TEACH_NONE"
    },

    {
	"dispel evil",
	{0}, {0},
	spell_dispel_evil, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(22),	25,	12,
	"dispel evil",		"!Dispel Evil!",	"", "TEACH_NONE"
    },

    {
	"dispel good",
	{0}, {0},
    spell_dispel_good, form_null,      TAR_CHAR_OFFENSIVE,     POS_FIGHTING,
    NULL,                   SLOT(512),      25,     12,
    "dispel good",          "!Dispel Good!",	"", "TEACH_NONE"
    },

    {
	"dispel magic",
	{0}, {0},
	spell_dispel_magic, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(59),	15,	12,
	"",			"!Dispel Magic!",	"", "TEACH_NONE"
    },

	{
	"divine right",
	{0}, {0},
	spell_divine_right, form_null,		TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT(612),	100,	12,
	"{Dd{Ri{yvi{Rn{De {Dr{Ri{yg{Rh{Dt{x",			"Your divine right to combat has left you",
	"", "TEACH_ZEALOT_1"
    },

    {
	"dragonfury",
	{0}, {0},
	spell_dragonfury, form_null,		TAR_OBJ_CHAR_DEF,	POS_STANDING,
	NULL,			SLOT( 614),	 100,	12,
	"",			"You lose the fury of your dragon heritage", 
	"$p loses the fury accorded him by his dragon heritage", "TEACH_DRACONIAN_1"
    },

	{
	"elemental shield",
	{0}, {0},
	spell_elemental_shield, form_null,	TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,		SLOT(611),	75,	12,
	"",			"Your shield from the elements has departed",
	"", "TEACH_TAO_2"
    },

    {
	"earthquake",
	{0}, {0},
	spell_earthquake, form_null,	TAR_IGNORE,		POS_FIGHTING,
	NULL,			SLOT(23),	15,	12,
	"earthquake",		"!Earthquake!",		"", "TEACH_NONE"
    },

    {
	"enchant armor",
	{0}, {0},
	spell_enchant_armor, form_null,	TAR_OBJ_INV,		POS_STANDING,
	NULL,			SLOT(510),	100,	24,
	"",			"!Enchant Armor!",	"", "TEACH_NONE"
    },

    {
	"enchant weapon",
	{0}, {0},
	spell_enchant_weapon, form_null,	TAR_OBJ_INV,		POS_STANDING,
	NULL,			SLOT(24),	100,	24,
	"",			"!Enchant Weapon!",	"", "TEACH_NONE"
    },

    {
	"energy drain",	
	{0}, {0},
	spell_energy_drain, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(25),	25,	12,
	"energy drain",		"!Energy Drain!",	"", "TEACH_NONE"
    },

	{
	"erecover",
	{0}, {0},
	spell_energy_recover, form_null,	TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(602),	20,	12,
	"",			"!Energy Recovery!",	"", "TEACH_NONE"
    },

	{
	"exodus",
	{0}, {0},
	spell_exodus, form_null,		TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT( 609),	 250,	30,
	"{REXODUS{x","!EXODUS!",	"", "TEACH_DRAC_1"
    },

    {
	"faerie fire",	
	{0}, {0},
	spell_faerie_fire, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(72),	 5,	12,
	"faerie fire",		"The pink aura around you fades away.",
	"", "TEACH_NONE"
    },

    {
	"faerie fog",
	{0}, {0},
	spell_faerie_fog, form_null,	TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT(73),	12,	12,
	"faerie fog",		"!Faerie Fog!",		"", "TEACH_NONE"
    },

    {
	"farsight",
	{0}, {0},
	spell_farsight, form_null,		TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT(521),	36,	20,
	"farsight",		"!Farsight!",		"", "TEACH_NONE"
    },
	
    {
	"fanatics flame",
	{0}, {0},
	spell_fanatic_flame, form_null,		TAR_OBJ_CHAR_DEF,	POS_STANDING,
	NULL,			SLOT( 606),	 5,	12,
	"",			"!Fanatic's Flame!",	"$fanatic's flame$", "TEACH_NONE"
    },

    {
	"fireball",
	{0}, {0},
	spell_fireball, form_null,		TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(26),	25,	12,
	"fireball",		"!Fireball!",		"", "TEACH_NONE"
    },

	{
	"fireshield",
	{0}, {0},
	spell_fireshield, form_null,		TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT(603),	12,	18,
	"{Rfi{Yre{ys{Wh{yi{Ye{Rld{x","Your {Rfi{Yre{ys{Wh{yi{Ye{Rld{x dissipates.",
	"", "TEACH_NONE"
    },
  
    {
	"fireproof",
	{0}, {0},
	spell_fireproof, form_null,	TAR_OBJ_INV,		POS_STANDING,
	NULL,			SLOT(523),	10,	12,
	"",			"",	"$p's protective aura fades.", "TEACH_NONE"
    },

    {
	"flamestrike",
	{0}, {0},
	spell_flamestrike, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(65),	30,	12,
	"flamestrike",		"!Flamestrike!",		"", "TEACH_NONE"
    },

	{
	"judgement",
	{0}, {0},
	spell_judgement, form_null,		TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT( 616),	 85,	20,
	"judgement", "!Judgement!",	"", "TEACH_NONE"
    },

    {
	"fly",
	{0}, {0},
	spell_fly, form_null,		TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT(56),	10,	18,
	"",			"You slowly float to the ground.",	"", "TEACH_NONE"
    },

    {
	"floating disc",
	{0}, {0},
	spell_floating_disc, form_null,	TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT(522),	40,	24,
	"",			"!Floating disc!",	"", "TEACH_NONE"
    },

    {
	"frenzy",
	{0}, {0},
    spell_frenzy, form_null,           TAR_CHAR_DEFENSIVE,     POS_STANDING,
    NULL,                   SLOT(504),      30,     24,
    "",                     "Your rage ebbs.",	"", "TEACH_NONE"
    },

    {
	"gate",
	{0}, {0},
	spell_gate, form_null,		TAR_IGNORE,		POS_FIGHTING,
	NULL,			SLOT(83),	80,	12,
	"",			"!Gate!",		"", "TEACH_NONE"
    },

    {
	"giant strength",
	{0}, {0},
	spell_giant_strength, form_null,	TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT(39),	20,	12,
	"",			"You feel weaker.",	"", "TEACH_NONE"
    },

	{
	"giga blast",
	{0}, {0},
	spell_giga_blast, form_null,		TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT( 609),	 250,	30,
	"{rg{Ri{rg{Ra {yb{bl{ya{bs{yt{x","!Giga Blaster!",	"", "TEACH_TAO_1"
    },

	{
	"gouge",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_FIGHTING,
	&gsn_gouge,		SLOT( 0),	0,	24,
	"{Dg{wo{Du{wg{De{x",		"Your vision returns.",	"", "TEACH_NONE"
    },

    {
	"greater healing",
	{0}, {0},
	spell_greater_healing, form_null,		TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(605),	50,	45,
	"",			"!Greater Healing!",		"", "TEACH_ZEALOT_2"
    },

    {
	"harm",	
	{0}, {0},
	spell_harm, form_null,		TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(27),	35,	12,
	"harm spell",		"!Harm!",		"", "TEACH_NONE"
    },
  
    {
	"haste",
	{0}, {0},
	spell_haste, form_null,		TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(502),	30,	12,
	"",			"You feel yourself slow down.",	"", "TEACH_NONE"
    },

    {
	"heal",	
	{0}, {0},
	spell_heal, form_null,		TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(28),	50,	12,
	"",			"!Heal!",		"", "TEACH_NONE"
    },
  
    {
	"heat metal",
	{0}, {0},
	spell_null, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(516), 	0,	0,
	"spell",		"!Heat Metal!",		"", "TEACH_NONE"
    },

    {
	"heavenly justice",
	{0}, {0},
	spell_heavenly_justice, form_null,		TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT( 618),	 250,	25,
	"heavenly justice",			"!Heavenly Justice!",	"", "TEACH_ZEALOT_1"
    },

	{
	"hold person",
	{0}, {0},
	spell_hold_person, form_null,		TAR_CHAR_OFFENSIVE,	POS_STANDING,
	NULL,			SLOT( 608),	 5,	12,
	"",			"You have control of your legs again",	"", "TEACH_NONE"
    },

    {
	"holy armor",
	{0}, {0},
	spell_holy_armor, form_null,		TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT(603),	95,	18,
	"",			"Your {Dh{wo{Wl{Yy ar{Wm{wo{Dr{x dissipates.",
	"", "TEACH_ZEALOT_1"
    },

    {
	"holy word",
	{0}, {0},
	spell_holy_word, form_null,	TAR_IGNORE,	POS_FIGHTING,
	NULL,			SLOT(506), 	80,	24,
	"holy word",		"!Holy Word!",		"", "TEACH_NONE"
    },

    {
	"identify",	
	{0}, {0},
	spell_identify, form_null,		TAR_OBJ_INV,		POS_STANDING,
	NULL,			SLOT(53),	12,	24,
	"",			"!Identify!",		"", "TEACH_NONE"
    },

    {
	"infravision",
	{0}, {0},
	spell_infravision, form_null,	TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT(77),	 5,	18,
	"",			"You no longer see in the dark.",	"", "TEACH_NONE"
    },

    {
	"invisibility",
	{0}, {0},
	spell_invis, form_null,		TAR_OBJ_CHAR_DEF,	POS_STANDING,
	&gsn_invis,		SLOT(29),	 5,	12,
	"",			"You are no longer invisible.",		
	"$p fades into view.", "TEACH_NONE"
    },

    {
	"know alignment",
	{0}, {0},
	spell_know_alignment, form_null,	TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(58),	 9,	12,
	"",			"!Know Alignment!",	"", "TEACH_NONE"
    },

    {
	"lightning bolt",
	{0}, {0},
	spell_lightning_bolt, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(30),	25,	12,
	"lightning bolt",	"!Lightning Bolt!",	"", "TEACH_NONE"
    },

    {
	"locate object",
	{0}, {0},
	spell_locate_object, form_null,	TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT(31),	20,	18,
	"",			"!Locate Object!",	"", "TEACH_NONE"
    },

    {
	"magic missile",
	{0}, {0},
	spell_magic_missile, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(32),	5,	12,
	"magic missile",	"!Magic Missile!",	"", "TEACH_NONE"
    },

    {
	"mass healing",	
	{0}, {0},
	spell_mass_healing, form_null,	TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT(508),	100,	36,
	"",			"!Mass Healing!",	"", "TEACH_NONE"
    },

    {
	"mass invis",
	{0}, {0},
	spell_mass_invis, form_null,	TAR_IGNORE,		POS_STANDING,
	&gsn_mass_invis,	SLOT(69),	20,	24,
	"",			"You are no longer invisible.",		"", "TEACH_NONE"
    },

	{
	"minsc power",
	{0}, {0},
	spell_minsc_power, form_null,           TAR_CHAR_DEFENSIVE,     POS_STANDING,
	NULL,                   SLOT(607),      30,     24,
	"",                     "Boo does not like you anymore",	"", "TEACH_NONE"
	},

	{
	"mind thrust",
	{0}, {0},
	spell_mind_thrust, form_null,TAR_CHAR_OFFENSIVE,     POS_FIGHTING,
	NULL,                   SLOT(616),      30,     9,
	"{Bm{Ci{Bn{Cd {yt{Dh{wr{Du{ys{Dt{x", "!Mind Thrust!","", "TEACH_NONE"
	},

	{
	"mind blast",
	{0}, {0},
	spell_mind_blast, form_null, TAR_CHAR_OFFENSIVE,     POS_FIGHTING,
	NULL,                   SLOT(617),      80,     15,
	"{Bm{Ci{Bn{Cd {Rb{Gl{Ca{Gs{Rt{x", "!Mind Blast",	"", "TEACH_NONE"
	},

	{
	"mind crush",
	{0}, {0},
	spell_mind_crush, form_null,TAR_CHAR_OFFENSIVE,    POS_FIGHTING,
	NULL,                   SLOT(618),      150,     20,
	"{Bm{Ci{Bn{Cd {Yc{Dr{ru{Ds{Yh{x", "!Mind Crush!",	"", "TEACH_NONE"
	},


	{
	"mrecover",
	{0}, {0},
	spell_mental_recover, form_null,	TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(601),	20,	12,
	"",			"!Mental Recovery!",	"", "TEACH_NONE"
    },

	{
	"mystic sight",
	{0}, {0},
	spell_mystic_sight, form_null,		TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT(615),	100,	12,
	"",			"Your mystic sight fades and the shadows no longer give up their secrets","",
	"TEACH_TAO_1"
	},

    {
    "nexus",
	{0}, {0},
    spell_nexus, form_null,            TAR_IGNORE,             POS_STANDING,
    NULL,                   SLOT(520),       150,   36,
    "",                     "!Nexus!",		"", "TEACH_NONE"
    },

    {
	"pass door",
	{0}, {0},
	spell_pass_door, form_null,	TAR_CHAR_SELF,		POS_STANDING,
	NULL,			SLOT(74),	20,	12,
	"",			"You feel solid again.",	"", "TEACH_NONE"
    },

    {
	"plague",
	{0}, {0},
	spell_plague, form_null,		TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	&gsn_plague,		SLOT(503),	20,	12,
	"sickness",		"Your sores vanish.",	"", "TEACH_NONE"
    },

    {
	"poison",
	{0}, {0},
	spell_poison, form_null,		TAR_OBJ_CHAR_OFF,	POS_FIGHTING,
	&gsn_poison,		SLOT(33),	10,	12,
	"poison",		"You feel less sick.",	
	"The poison on $p dries up.", "TEACH_NONE"
    },

    {
	"portal",
	{0}, {0},
	spell_portal, form_null,           TAR_IGNORE,             POS_STANDING,
	NULL,                   SLOT(519),       100,     24,
	"",                     "!Portal!",		"", "TEACH_NONE"
    },

	{
	"precover",
	{0}, {0},
	spell_physical_recover, form_null,	TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(600),	20,	12,
	"",			"!Physical Recovery!",	"", "TEACH_NONE"
    },

    {
	"protection evil",
	{0}, {0},
	spell_protection_evil, form_null,	TAR_CHAR_SELF,		POS_STANDING,
	NULL,			SLOT(34), 	5,	12,
	"",			"You feel less protected.",	"", "TEACH_NONE"
    },

    {
	"protection good",
	{0}, {0},
	spell_protection_good, form_null,  TAR_CHAR_SELF,          POS_STANDING,
	NULL,                   SLOT(514),       5,     12,
	"",                     "You feel less protected.",	"", "TEACH_NONE"
    },

    {
	"ray of truth",
	{0}, {0},
    spell_ray_of_truth, form_null,     TAR_CHAR_OFFENSIVE,     POS_FIGHTING,
    NULL,                   SLOT(518),      20,     12,
    "{yra{Yy {wof {Ytru{yth{x",         "!Ray of Truth!",	"", "TEACH_NONE"
    },

    {
	"recharge",
	{0}, {0},
	spell_recharge, form_null,		TAR_OBJ_INV,		POS_STANDING,
	NULL,			SLOT(517),	60,	24,
	"",			"!Recharge!",		"", "TEACH_NONE"
    },

    {
	"refresh",
	{0}, {0},
	spell_refresh, form_null,		TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT(81),	12,	18,
	"refresh",		"!Refresh!",		"", "TEACH_NONE"
    },

    {
	"remove curse",
	{0}, {0},
	spell_remove_curse, form_null,	TAR_OBJ_CHAR_DEF,	POS_STANDING,
	NULL,			SLOT(35),	 5,	12,
	"",			"!Remove Curse!",	"", "TEACH_NONE"
    },

	{
	"repulsar",
	{0}, {0},
	spell_repulsar, form_null,		TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT(67),	75,	18,
	"",			"Your repulsion wave sputters out of existance",
	"", "TEACH_TAO_2"
    },

	{
	"runic scribing",
	{0}, {0},
	spell_runic_scribing, form_null,		TAR_OBJ_CHAR_DEF,	POS_STANDING,
	NULL,			SLOT(81),	150,	18,
	"",		"",		"The runes wear off of your weapon", "TEACH_NONE"
    },

		{
	"rune of warding",
	{0}, {0},
	spell_rune_warding, form_null,		TAR_OBJ_CHAR_DEF,	POS_STANDING,
	NULL,			SLOT(81),	120,	18,
	"",		"",		"The runes wear off your armor", "TEACH_NONE"
    },

    {
	"sanctuary",
	{0}, {0},
	spell_sanctuary, form_null,	TAR_CHAR_DEFENSIVE,	POS_STANDING,
	&gsn_sanctuary,		SLOT(36),	75,	12,
	"",			"The white aura around your body fades.",
	"", "TEACH_NONE"
    },

    {
	"shield",
	{0}, {0},
	spell_shield, form_null,		TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT(67),	12,	18,
	"",			"Your force shield shimmers then fades away.",
	"", "TEACH_NONE"
    },

    {
	"shocking grasp",
	{0}, {0},
	spell_shocking_grasp, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(53),	25,	12,
	"shocking grasp",	"!Shocking Grasp!",	"", "TEACH_NONE"
    },

	{
	"skeleton dance",
	{0}, {0},
	spell_skeleton_dance, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(620),	500,	24,
	"",	"",	"", "TEACH_NONE"
    },

    {
	"sleep",
	{0}, {0},
	spell_sleep, form_null,		TAR_CHAR_OFFENSIVE,	POS_STANDING,
	&gsn_sleep,		SLOT(38),	15,	12,
	"",			"You feel less tired.",	"", "TEACH_NONE"
    },

    {
	"slow",
	{0}, {0},
	spell_slow, form_null,             TAR_CHAR_OFFENSIVE,     POS_FIGHTING,
	NULL,                   SLOT(515),      30,     12,
	"",                     "You feel yourself speed up.",	"", "TEACH_NONE"
    },

    {
	"stone skin",
	{0}, {0},
	spell_stone_skin, form_null,	TAR_CHAR_SELF,		POS_STANDING,
	NULL,			SLOT(66),	12,	18,
	"",			"Your skin feels soft again.",	"", "TEACH_NONE"
    },

    {
	"summon",
	{0}, {0},
	spell_summon, form_null,		TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT(40),	50,	12,
	"",			"!Summon!",		"", "TEACH_NONE"
    },

	{
	"supernova",
	{0}, {0},
	spell_supernova, form_null,		TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT( 610),	 350,	30,
	"{Bs{ru{Bp{re{Br{Wn{Go{Wv{Ga{x","!Supernova!",	"", "TEACH_TAO_1"
    },

    {
	"teleport",
	{0}, {0},
	spell_teleport, form_null,		TAR_CHAR_SELF,		POS_FIGHTING,
	NULL,	 		SLOT( 2),	35,	12,
	"",			"!Teleport!",		"", "TEACH_NONE"
    },

	{
	"thermonuclear blast",
	{0}, {0},
	spell_thermonuclear, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(613),	9000,	17,
	"{YN{GU{YC{GL{YE{GA{YR {RDE{rTO{YNA{rTI{RON{x",	"!Thermonuclear Blast!",	"", "TEACH_NONE"
    },

	{
	"venom lance",
	{0}, {0},
	spell_venom_lance, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(609),	200,	35,
	"venom lance",	"!Venom Lance!",	"", "TEACH_DRACONIAN_1"
    },

    {
	"ventriloquate",
	{0}, {0},
	spell_ventriloquate, form_null,	TAR_IGNORE,		POS_STANDING,
	NULL,			SLOT(41),	 5,	12,
	"",			"!Ventriloquate!",	"", "TEACH_NONE"
    },

    {
	"vise grip",
	{0}, {0},
	spell_vise_grip, form_null,		TAR_CHAR_DEFENSIVE,	POS_STANDING,
	NULL,			SLOT( 619),	 5,	12,
	"",			"Your vise-like grip on your weapon wears off",	"", "TEACH_NONE"
    },

    {
	"weaken",
	{0}, {0},
	spell_weaken, form_null,		TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(68),	20,	12,
	"spell",		"You feel stronger.",	"", "TEACH_NONE"
    },

	    {
	"spectral hand",
	{0}, {0},
	spell_spectral_hand, form_null,		TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(68),	35,	12,
	"",		"",	"", "TEACH_NONE"
    },

/*
 * Dragon breath
 */
    {
	"acid breath",
	{0}, {0},
	spell_acid_breath, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(200),	100,	24,
	"blast of acid",	"!Acid Breath!",	"", "TEACH_NONE"
    },

    {
	"fire breath",
	{0}, {0},
	spell_fire_breath, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(201),	200,	24,
	"blast of flame",	"The smoke leaves your eyes.",	"", "TEACH_NONE"
    },

    {
	"frost breath",
	{0}, {0},
	spell_frost_breath, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(202),	125,	24,
	"blast of frost",	"!Frost Breath!",	"", "TEACH_NONE"
    },

    {
	"gas breath",
	{0}, {0},
	spell_gas_breath, form_null,	TAR_IGNORE,		POS_FIGHTING,
	NULL,			SLOT(203),	175,	24,
	"blast of gas",		"!Gas Breath!",		"", "TEACH_NONE"
    },

    {
	"lightning breath",
	{0}, {0},
	spell_lightning_breath, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(204),	150,	24,
	"{Bb{Wlas{wt of {Dli{wgh{Wtn{yin{Yg{x",	"!Lightning Breath!",	"", "TEACH_NONE"
    },
/*
 *Wrath of the Elements spell and dam messages
 */

    {
	"elemental wrath",
	{0}, {0},
	spell_elemental_wrath, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(620),	400,	24,
	"",	"!Elemental Wrath!",	"", "TEACH_NONE"
    },

    {
	"wrath fire",
	{0}, {0},
	spell_null, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(0),	0,	0,
	"{RF{yl{Ya{Rm{Yi{yn{Rg {DW{wr{Ra{wt{Dh{x",	"!Wrath Fire!",	"", "TEACH_NONE"
    },
    {
	"wrath cold",
	{0}, {0},
	spell_null, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(0),	0,	0,
	"{BF{cr{Be{cez{Bi{cn{Bg {DW{wr{Ba{wt{Dh{x",	"!Wrath Cold!",	"", "TEACH_NONE"
    },
    {
	"wrath acid",
	{0}, {0},
	spell_null, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(0),	0,	0,
	"{gA{cc{Gid{ci{gc {DW{wr{Ga{wt{Dh{x",	"!Wrath Acid!",	"", "TEACH_NONE"
    },
    {
	"wrath lightning",
	{0}, {0},
	spell_null, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(0),	0,	0,
	"{DE{yl{Ye{Dc{yt{Yr{Di{yc{x {DW{wr{Ya{wt{Dh{x",	"!Wrath Lightning!",	"", "TEACH_NONE"
    },
    {
	"wrath negative",
	{0}, {0},
	spell_null, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(0),	0,	0,
	"{rS{wa{Dt{ra{Dn{wi{rc {DW{wr{ra{wt{Dh{x",	"!Wrath Negative!",	"", "TEACH_NONE"
    },
    {
	"wrath holy",
	{0}, {0},
	spell_null, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(0),	0,	0,
	"{WD{wi{yvi{wn{We{x {DW{wr{ya{wt{Dh{x",	"!Wrath Holy!",	"", "TEACH_NONE"
    },

/*
 *Skeletal Dance skills
 */
	{
	"skeletal mage",
	{0}, {0},
	spell_null, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(53),	0,	0,
	"{Ds{Wk{De{Wl{De{Wt{Da{Wl {Dm{Wa{Dg{We{x throws back it's head, cackles insanely, and",
	"!Skeletal Mage!",	"", "TEACH_NONE"
    },

	{
	"skeletal archer",
	{0}, {0},
	spell_null, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(53),	0,	0,
	"{Ds{Yk{De{Yl{De{Yt{Da{Yl {Da{Yr{Dc{Yh{De{Yr{x raises a bow, pulls back an arrow, and",
	"!Skeletal Archer!",	"", "TEACH_NONE"
    },

	{
	"skeletal warrior",
	{0}, {0},
	spell_null, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(53),	0,	0,
	"{Ds{Rk{De{Rl{De{Rt{Da{Rl {Dw{Ra{Dr{Rr{Di{Ro{Dr{x raises a sword, laughs madly, and",
	"!Skeletal Warrior!",	"", "TEACH_NONE"
    },

	{
	"phantasmal wraith",
	{0}, {0},
	spell_null, form_null,	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,			SLOT(53),	0,	0,
	"{Dp{wh{Da{wn{Dt{wa{Ds{wm{Da{wl {Dw{wr{Da{wi{Dt{wh{x fades into existence, points a bony finger, and",
	"!phantasmal wraith!",	"", "TEACH_NONE"
    },

/*
 * Spells for mega1.are from Glop/Erkenbrand.
 */
    {
        "general purpose",
		{0}, {0},
        spell_general_purpose, form_null,  TAR_CHAR_OFFENSIVE,     POS_FIGHTING,
        NULL,                   SLOT(401),      0,      12,
        "general purpose ammo", "!General Purpose Ammo!",	"", "TEACH_NONE"
    },
 
    {
        "high explosive",
		{0}, {0},
        spell_high_explosive, form_null,   TAR_CHAR_OFFENSIVE,     POS_FIGHTING,
        NULL,                   SLOT(402),      0,      12,
        "high explosive ammo",  "!High Explosive Ammo!",	"", "TEACH_NONE"
    },


/* combat and weapons skills */


    {
	"axe",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_axe,            	SLOT( 0),       0,      0,
	"",                     "!Axe!",		"", "TEACH_NONE"
    },

	{
	"backstab", 
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_STANDING,
	&gsn_backstab,          SLOT( 0),        0,     24,
	"backstab",             "!Backstab!",		"", "TEACH_NONE"
    },

    {
	"bash",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_bash,            	SLOT( 0),       0,      24,
	"bash",                 "!Bash!",		"", "TEACH_NONE"
    },

    {
	"berserk",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_berserk,        	SLOT( 0),       0,      24,
	"",                     "You feel your pulse slow down.",	"", "TEACH_NONE"
    },

	{
	"bow", 
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_bow,     			SLOT( 0),       0,      0,
	"arrow",                     "!Bow!",		"", "TEACH_NONE"
    },

	{
	"burst of speed",
	{0}, {0},
	spell_null, form_null,		TAR_CHAR_DEFENSIVE,	POS_FIGHTING,
	&gsn_burst_of_speed,			SLOT(0),	30,	12,
	"","The adreneline runs out of your system as you slow to normal speed",	"", "TEACH_DAGASHI_2"
    },

	{
	"circle",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_STANDING,
	&gsn_circle,          SLOT( 0),        0,     24,
	"circle",             "!Circle!",		"", "TEACH_DAGASHI_1"
    },

    {
	"coat",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,	  	POS_RESTING,
	&gsn_coat,		SLOT(0),	0,	36,
	"",			"!Coat!",		"", "TEACH_DAGASHI_1"
    },

    {
	"counter",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_counter,           SLOT( 0),       0,      0,
	"counterattack",        "!Counter!",   "", "TEACH_NONE"
    },

	{
	"create golem",
	{0}, {0},
	spell_null, form_null,	TAR_CHAR_DEFENSIVE,	POS_STANDING,
	&gsn_create_golem,		SLOT(0),	200,	12,
	"",			"!Create Golem!","", "TEACH_NONE"
    },

    {
	"dagashi poison",
	{0}, {0},
	spell_null, form_null,		TAR_OBJ_CHAR_OFF,	POS_FIGHTING,
	&gsn_dagashi_poison,		SLOT(0),	10,	12,
	"{BD{ra{Bg{ra{Bs{rh{Bi{x poisoning","Somehow, you have survived the {BD{ra{Bg{ra{Bs{rh{Bi{x poisons","The poison on $p dries up.",
	"TEACH_DAGASHI_2"
    },

    {
	"dagger",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_dagger,            SLOT( 0),       0,      0,
	"",                     "!Dagger!",		"", "TEACH_NONE"
    },

	{
	"dirt kicking",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_FIGHTING,
	&gsn_dirt,		SLOT( 0),	0,	24,
	"kicked dirt",		"You rub the dirt out of your eyes.",	"", "TEACH_NONE"
    },

    {
	"disarm",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_disarm,            SLOT( 0),        0,     24,
	"",                     "!Disarm!",		"", "TEACH_NONE"
    },
 
    {
	"dodge",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_dodge,             SLOT( 0),        0,     0,
	"",                     "!Dodge!",		"", "TEACH_NONE"
    },
 
    {
	"enhanced damage",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_enhanced_damage,   SLOT( 0),        0,     0,
	"",                     "!Enhanced Damage!",	"", "TEACH_NONE"
    },

    {
	"envenom",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,	  	POS_RESTING,
	&gsn_envenom,		SLOT(0),	0,	36,
	"",			"!Envenom!",		"", "TEACH_NONE"
    },

    { 
	"fast healing",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_SLEEPING,
	&gsn_fast_healing,	SLOT( 0),	0,	0,
	"",			"!Fast Healing!",	"", "TEACH_NONE"
    },

	{
	"fatality",
	{0}, {0},
	spell_null, form_null, TAR_IGNORE,		POS_FIGHTING,
	&gsn_fatality,			SLOT(0),	0,	60,
	"Fatality",	"!Fatality!", "", "TEACH_SENSEI_2"
	},

	{
	"fifth attack",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_fifth_attack,      SLOT( 0),        0,     0,
	"",                     "!Fifth Attack!",	"", "TEACH_MULTI_HIT"
    },

	{
    "find dragon",
	{0}, {0},
    spell_null, form_null,	TAR_IGNORE,		POS_RESTING,
    &gsn_find_dragon,	SLOT(0),	0,	0,
    "",		"!Find Dragon",	"", "TEACH_NONE"
	},

    {
	"flail",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
    &gsn_flail,            	SLOT( 0),       0,      0,
    "",                     "!Flail!",		"", "TEACH_NONE"
    },

	{
	"forging",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_RESTING,
	&gsn_forging,		SLOT( 0),	0,	0,
	"",			"!Forging!",		"", "TEACH_NONE"
    },

    {
	"fortify",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_STANDING,
	&gsn_fortify,          SLOT( 0),        0,     80,
	"fortify",             "Your fortifications crumble around you","", "TEACH_LEGIONARE_1"
    },

	{
	"fourth attack",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_fourth_attack,      SLOT( 0),        0,     0,
	"",                     "!Fourth Attack!",	"", "TEACH_MULTI_HIT"
    },

	{
	"gouge",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_FIGHTING,
	&gsn_gouge,		SLOT( 0),	0,	24,
	"{Dg{wo{Du{wg{De{x",		"Your vision returns.",	"", "TEACH_DAGASHI_2"
    },

	{
	"haduken",
	{0}, {0},
	spell_null, form_null, TAR_IGNORE,		POS_FIGHTING,
	&gsn_haduken,			SLOT(0),	0,	30,
	"{YH{Ga{cd{Wu{ck{Ge{Yn{x",	"!Haduken!", "", "TEACH_SENSEI_1"
	},

	{
	"haggle",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_RESTING,
	&gsn_haggle,		SLOT( 0),	0,	0,
	"",			"!Haggle!",		"", "TEACH_NONE"
    },

    {
	"hand to hand",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_FIGHTING,
	&gsn_hand_to_hand,	SLOT( 0),	0,	0,
	"",			"!Hand to Hand!",	"", "TEACH_NONE"
    },

    {
	"hide",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_RESTING,
	&gsn_hide,		SLOT( 0),	 0,	12,
	"",			"!Hide!",		"", "TEACH_NONE"
    },

    {
	"kick",
	{0}, {0},
	spell_null, form_null,             TAR_CHAR_OFFENSIVE,     POS_FIGHTING,
	&gsn_kick,              SLOT( 0),        0,     12,
	"kick",                 "!Kick!",		"", "TEACH_NONE"
    },

    {
	"lore",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_RESTING,
	&gsn_lore,		SLOT( 0),	0,	36,
	"",			"!Lore!",		"", "TEACH_NONE"
    },

    {
	"mace",	
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_mace,            	SLOT( 0),       0,      0,
	"",                     "!Mace!",		"", "TEACH_NONE"
    },

    {
	"meditation",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_SLEEPING,
	&gsn_meditation,	SLOT( 0),	0,	0,
	"",			"Meditation",		"", "TEACH_NONE"
    },

    {
	"parry",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_parry,             SLOT( 0),        0,     0,
	"",                     "!Parry!",		"", "TEACH_NONE"
    },

    {
	"peek",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_STANDING,
	&gsn_peek,		SLOT( 0),	 0,	 0,
	"",			"!Peek!",		"", "TEACH_NONE"
    },

    {
	"phalanx",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_phalanx,        	SLOT( 0),       0,      10,
	"", "Your discipline breaks, and the formation crumbles",	"","TEACH_LEGIONARE_2"
    },

	{
    "phase",
	{0}, {0},
    spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
    &gsn_phase,             SLOT( 0),       0,      0,
    "",                     "!Phase!",   "", "TEACH_NONE"
    },

    {
	"pick lock",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_STANDING,
	&gsn_pick_lock,		SLOT( 0),	 0,	12,
	"",			"!Pick!",		"", "TEACH_NONE"
    },
	
    {
	"polearm",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_polearm,           SLOT( 0),       0,      0,
	"",                     "!Polearm!",		"", "TEACH_NONE"
    },

	{
	"precision",
	{0}, {0},
	spell_null, form_null,				TAR_IGNORE,				POS_FIGHTING,
	&gsn_precision,			SLOT( 0),		0,		0,
	"",						"!Precision!",		"", "TEACH_LEGIONARE_2"
	},

    {
	"rescue",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_rescue,            SLOT( 0),        0,     12,
	"",                     "!Rescue!",		"", "TEACH_NONE"
    },

    {
	"scrolls",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_STANDING,
	&gsn_scrolls,		SLOT( 0),	0,	24,
	"",			"!Scrolls!",		"", "TEACH_NONE"
    },

	{
	"second attack",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_second_attack,     SLOT( 0),        0,     0,
	"",                     "!Second Attack!",	"", "TEACH_NONE"
    },

	{
	"second cast",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_STANDING,
	&gsn_second_cast,     SLOT( 0),        0,     0,
	"",                     "!Second Cast!",	"", "TEACH_NONE"
	},

	{
	"sever",
	{0}, {0},
	spell_null, form_null, TAR_IGNORE,		POS_FIGHTING,
	&gsn_sever,			SLOT(0),	0,	60,
	"{Rs{re{Rv{Der{Ri{rn{Rg{x",	"!Severing!", "", "TEACH_DRACONIAN_2"
	},

    {
	"shadowslip",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_STANDING,
	&gsn_shadow_slip,		SLOT( 0),	 0,	12,
	"",			"You slide out of the shadows.",	"", "TEACH_DAGASHI_2"
    },

    {
	"shield block",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_FIGHTING,
	&gsn_shield_block,	SLOT(0),	0,	0,
	"",			"!Shield!",		"", "TEACH_NONE"
    },

    {
	"shield wall",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_STANDING,
	&gsn_shield_wall,          SLOT( 0),        0,     10,
	"shield wall","You are unable to hide behind your shield for the moment","", "TEACH_LEGIONARE_1"
    },

    {
	"smite",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_STANDING,
	&gsn_smite,          SLOT( 0),        0,     60,
	"{BS{YM{WI{YT{BE{x",             "!Smite!",		"", "TEACH_ZEALOT_2"
    },

    {
	"sneak",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_STANDING,
	&gsn_sneak,		SLOT( 0),	 0,	12,
	"",			"You no longer feel stealthy.",	"", "TEACH_NONE"
    },

    {
	"spear",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_spear,            	SLOT( 0),       0,      0,
	"",                     "!Spear!",		"", "TEACH_NONE"
    },

    {
	"staves",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_STANDING,
	&gsn_staves,		SLOT( 0),	0,	12,
	"",			"!Staves!",		"", "TEACH_NONE"
    },

    {
	"steal",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_STANDING,
	&gsn_steal,		SLOT( 0),	 0,	24,
	"",			"!Steal!",		"", "TEACH_NONE"
    },

    {
	"strike", 
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_STANDING,
	&gsn_strike,          SLOT( 0),        0,     60,
	"{ys{Rt{Wri{Rk{ye{x",             "!Strike!",		"", "TEACH_LEGIONARE_2"
    },

    {
	"sword",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_sword,            	SLOT( 0),       0,      0,
	"",                     "!sword!",		"", "TEACH_NONE"
    },

    {
	"third attack",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
	&gsn_third_attack,      SLOT( 0),        0,     0,
	"",                     "!Third Attack!",	"", "TEACH_MULTI_HIT"
    },

	{
	"third cast",
	{0}, {0},
	spell_null, form_null,             TAR_IGNORE,             POS_STANDING,
	&gsn_third_cast,     SLOT( 0),        0,     0,
	"",                     "!Third Cast!",	"", "TEACH_NONE"
	},

    {
	"trip",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_FIGHTING,
	&gsn_trip,		SLOT( 0),	0,	24,
	"trip",			"!Trip!",		"", "TEACH_NONE"
    },

	{
	"triple kick",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_FIGHTING,
	&gsn_triple_kick,		SLOT (0),		0,	30,
	"Triple Kick",		"!Triple Kick!", "", "TEACH_SENSEI_1"
    },

	{
	"wands",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_STANDING,
	&gsn_wands,		SLOT( 0),	0,	12,
	"",			"!Wands!",		"", "TEACH_NONE"
    },

    {
	"whip",	
	{0}, {0},
    spell_null, form_null,             TAR_IGNORE,             POS_FIGHTING,
    &gsn_whip,            	SLOT( 0),       0,      0,
    "",                     "!Whip!",	"", "TEACH_NONE"
    },
    
	{
	"whirlwind",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_FIGHTING,
	&gsn_whirlwind,		SLOT (0),		0,	30,
	"{BW{Ch{Wi{Cr{Bl{CW{Wi{Cn{Bd{x",		"!Whirlwind!", "", "TEACH_NONE"
    },
	
    {
	"recall",
	{0}, {0},
	spell_null, form_null,		TAR_IGNORE,		POS_STANDING,
	&gsn_recall,		SLOT( 0),	0,	12,
	"",			"!Recall!",		"", "TEACH_NONE"
    },

	/*forms*/
	{
	"smiling death",
	{0},{0},
	spell_null,
	form_smiling_death,
	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,	SLOT( 0),	20,	12,
	"smiling death","!SMILING DEATH!","","TEACH_NONE"
    },

    {
	"mantis dance",
	{0},{0},
	spell_null,
	form_mantis_dance,
	TAR_CHAR_OFFENSIVE,	POS_STANDING,
	NULL,	SLOT( 0),200,	20,
	"{Gm{ga{Dnt{gi{Gs {Dd{wa{Gn{wc{De{x","!MANTIS DANCE!","","TEACH_DAGASHI_2"
    },

    {
	"deadly fingertips",
	{0},{0},
	spell_null,
	form_deadly_fingertips,
	TAR_CHAR_OFFENSIVE,	POS_FIGHTING,
	NULL,	SLOT( 0),200,	20,
	"Deadly Fingertips","!DEADLY FINGERTIPS!","","TEACH_SENSEI_2"
    }
};

const   struct  group_type      group_table     [MAX_GROUP]     =
{

    {
	"rom basics",		{ 0, 0, 0, 0, 0 },
	{ "scrolls", "staves", "wands", "recall" }
    },

    {
	"mage basics",		{ 0, -1, -1, -1 },
	{ "dagger" }
    },

    {
	"esper basics",		{ -1, -1, -1, -1,-1,-1,-1,-1,-1,0 },
	{ "whip" }
    },

    {
	"cleric basics",	{ -1, 0, -1, -1 },
	{ "mace" }
    },

    {
	"thief basics",		{ -1, -1, 0, -1},
	{ "dagger", "steal" }
    },

    {
	"warrior basics",	{ -1, -1, -1, 0},
	{ "sword", "second attack" }
    },

	{
	"legionare basics",	{ -1, -1, -1, -1, 0, -1, -1 },
	{ "sword", "spear", "dirt kicking", "second attack" }
    },

	{
	"draconian basics",		{ -1, -1, -1, -1, -1, 0, -1 },
	{ "dagger", "sword", "acid blast" }
    },

	{
	"sensei basics",	{ -1, -1, -1, -1, -1, -1 , 0},
	{ "sword", "spear", "dirt kicking", "second attack" }
    },

	{
	"zealot basics",	{ -1, -1, -1, -1, -1, -1 , -1, 0},
	{ "mace", "spear", "dirt kicking", "second attack" }
    },

	{
	"tao basics",	{ -1, -1, -1, -1, -1, -1 , -1, -1, 0},
	{ "dagger", "spear", "second cast", "third cast" }
    },

	{
	"dagashi basics",	{ -1, -1, -1, -1, -1, -1 , -1, -1, -1, 0},
	{ "dagger", "backstab", "second attack", "dodge", "parry", "gouge" }
    },

    {
	"mage default",		{ 40, -1, -1, -1, -1 , -1, -1},
	{ "beguiling", "combat", "detection", "enhancement", "illusion",
	  "maladictions", "protective", "transportation", "weather" }
    },

    {
		"esper default",		{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,40},
	{ "beguiling", "combat", "detection", "illusion",
	  "maladictions", "protective", "transportation", "second cast" }
    },

    {
	"cleric default",	{ -1, 40, -1, -1, -1, -1, -1},
	{ "flail", "attack", "curative",  "benedictions",
	  "detection", "healing", "maladictions", "protective", "shield block",
	  "transportation", "weather", "harmful" }
    },

    {
	"thief default",	{ -1, -1, 40, -1, -1, -1, -1},
	{ "mace", "sword", "backstab", "disarm", "dodge", "second attack",
	  "trip", "hide", "peek", "pick lock", "sneak" }
    },

    {
	"warrior default",	{ -1, -1, -1, 40, -1, -1, -1},
	{ "shield block", "bash", "disarm", "enhanced damage",
	  "parry", "rescue", "third attack" }
    },

    {
	"legionare default",	{ -1, -1, -1, -1, 40, -1, -1},
	{ "weaponsmaster", "shield block", "bash", "disarm", "enhanced damage",
	  "parry", "rescue", "third attack", "fourth attack", "strike", "whirlwind" }
    },

	{
	"draconian default",		{ -1, -1, -1, -1, -1, 40, -1},
	{ "beguiling", "combat", "detection", "enhancement", "illusion",
	  "maladictions", "protective", "transportation", "weather","elemental wrath"}
    },

    {
	"sensei default",	{ -1, -1, -1, -1, -1, -1, 40},
	{ "shield block", "bash", "disarm", "enhanced damage",
	  "parry", "rescue", "third attack", "fourth attack" }
    },

	{
	"zealot default",	{ -1, -1, -1, -1, -1, -1, -1, 40},
	{ "flail", "attack","curative",  "benedictions",
	  "detection", "healing", "maladictions", "protective", "shield block",
	  "transportation", "weather" }
    },

	{
	"tao default",		{ -1, -1, -1, -1, -1, -1, -1, -1, 40},
	{ "combat", "detection", "enhancement", "protective",
	"transportation", "weather" }
    },

	{
	"dagashi default",		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, 40},
	{ "detection","transportation","third attack","enhanced damage","sword",
	"whip", "shadowslip", "gouge"}
    },

{
	"attack",		{ -1, 5, -1, -1, -1, -1, -1, 4, -1, -1, -1 },
	{ "demonfire", "dispel evil", "dispel good", "earthquake",
	  "flamestrike", "heat metal", "ray of truth", "exacation" }
    },

	{
	"beguiling",		{ 4, -1, -1, -1, -1, 4, -1, 6, -1, -1, 3},
	{ "calm", "charm person", "sleep" }
    },

    {
	"benedictions",		{ 8, 5, -1, -1, -1, 7, -1, 4, -1, -1, 8},
	{ "bless", "calm", "frenzy", "holy word", "remove curse" }
    },

    {
	"breath",		{ 6, -1, -1, -1, -1, 3, -1, -1, -1 , -1, 8},
	{ "acid breath", "fire breath", "frost breath", "gas breath",
	  "lightning breath"  }
    },

    {
	"combat",		{ 6, -1, -1, -1, -1, 5, -1, -1, 5, -1, 6},
	{ "acid blast", "burning hands", "chain lightning", "chill touch",
	  "colour spray", "fireball", "lightning bolt", "magic missile",
	  "shocking grasp"  }
    },

    {
	"creation",		{ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
	{ "continual light", "create food", "create spring", "create water",
	  "create rose", "floating disc" }
    },

    {
	"curative",		{ -1, 4, -1, -1, -1, 5, 6, 3, 4, 6, -1 },
	{ "cure blindness", "cure disease", "cure poison" }
    },

    {
	"detection",		{ 6, 5, 4, -1, -1, 5, 3, 5, 5, 3, 5},
	{ "detect evil", "detect good", "detect hidden", "detect invis","identify",
	  "know alignment", "locate object" }
    },

	{
	"dragon lore",		{ -1, -1, -1, -1, -1, 4, -1, -1 },
	{ "hold person", "vise grip", "venom lance", "dragonfury","mystic sight",
	"exodus","skeletal dance","rune warding","runic scribing"}
    },

    {
	"enchantment",		{ 6, -1, -1, -1, -1, 4, -1, 6, 6, -1, 5 },
	{ "enchant armor", "enchant weapon", "fireproof" }
    },

    {
	"enhancement",		{ 5, 4, 6, -1, 8, 4, 5, 3, 4, 5, 5},
	{ "giant strength", "haste", "infravision", "refresh" }
    },

	{
	"fanatic",		{ -1, -1, -1, -1, -1, -1, -1, 5 },
	{ "greater healing", "holy armor", "fanatics flame","heavenly justice",
	  "divine right"}
    },

    {
	"harmful",		{ -1, 5, -1, -1, -1, -1, -1, 4 },
	{ "cause critical", "cause light", "cause serious", "harm" }
    },

    {
	"healing",		{ -1, 4, -1, -1, -1, -1, -1 , 3},
	{ "cure critical", "cure light", "cure serious", "heal", "refresh" }
    },

    {
	"illusion",		{ 4, -1, 4, -1, -1, 3, 4, 5, 5, 4, 4 },
	{ "invis", "ventriloquate" }
    },

    {
	"maladictions",		{ 5, 6, 8, -1, -1, 4, 6, 5, 5, 6, 6},
	{ "blindness", "curse", "energy drain", "plague",
	  "poison", "slow", "weaken" }
    },

    {
	"protective",		{ 6, 5, -1, -1, -1, 5, -1, 4, 4, -1, 6 },
	{ "armor", "cancellation", "dispel magic", "fireproof",
	  "protection evil", "protection good", "sanctuary", "shield",
	  "stone skin","fireshield" }
    },

	{
	"tao magic",		{ -1, -1, -1, -1, -1, -1, -1, -1, 5 },
	{ "giga blast","supernova","hold person", "vise grip",
	  "elemental shield", "repulsar" }
    },

    {
	"transportation",	{ 4, 4, 6, -1, 8, 3, 5, 3, 3, 5, 3},
	{ "fly", "gate", "nexus", "pass door", "portal", "summon", "teleport" }
    },

    {
	"weaponsmaster",	{ -1, -1, -1, 40, 15, 30, 20, -1, -1, 20, -1},
	{ "axe", "dagger", "flail", "mace", "polearm", "spear", "sword","whip" }
    },

    {
	"weather",		{ 5, -1, -1, -1, -1, 4, -1, -1, 3, -1, 4 },
	{ "faerie fire", "faerie fog", "control weather", "call lightning"
	  "lightning bolt" }
    },

	{
	"mental",	{ -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, 5 },
	{ "mind thrust","mind blast","mind crush" }
	},
};

const	struct	multi_cast_type	multi_cast_table	[MAX_MULTI_CAST]	=
{
	/*{"spell_name"}*/
	{"gate"},
	{"portal"},
	{"nexus"},
	{"summon"},
	{"thermonuclear blast"},
	{"dragonfury"},
	{"fanatics flame"},
	{"shield"},
	{"armor"},
	{"frenzy"},
	{"bless"},
	{"pass door"},
	{"haste"},
	{"sanctuary"},
	{"venom lance"},
	{"enchant armor"},
	{"enchant weapon"},
	{"charm person"},
	{"holy armor"},
	{"repulsar"},
	{"elemental shield"},
	{"stone skin"},
	{"divine right"},
	{"holy word"},
	{"mind crush"},
	{"mind thrust"},
	{"mind blast"},
	{"fly"},
	{"fireshield"}
};