/
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.								*
 *																			*
 ***************************************************************************/
 
/****************************************************************************
*	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							*
***************************************************************************/
#if defined(macintosh)
#include <types.h>
#else
#include <sys/types.h>
#endif
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "merc.h"
#include "arena.h"
#include "interp.h"
#include "tables.h"
#include "olc.h"
#include "recycle.h"
#include "lookup.h"
#include "skill_tree.h"


struct	node*	combat()
{
	struct node* temp;

	temp = empty();
	temp->name =	"combat";
	temp->tn	=	"combat";
	temp->x1	=	offense();
	temp->x2	=	defense();
	temp->x3	=	special();
	temp->level	=	1;
	set_prefix(temp);
	return temp;
}
struct	node*	offense()
{
	struct node* temp;

	temp = empty();
	temp->name =	"offense";
	temp->tn	=	"combat.offense";
	temp->x1	=	slashing();
	temp->x2	=	bashing();
	temp->x3	=	piercing();
	temp->x4	=	unarmed();
	temp->level	=	2;
	set_prefix(temp);
	return temp;
}
struct	node*	defense()
{
	struct node* temp;

	temp = empty();
	temp->name =	"defense";
	temp->tn	=	"combat.defense";
	temp->x1	=	dodging();
	temp->x2	=	parrying();
	temp->x3	=	countering();
	temp->level	=	2;
	set_prefix(temp);
	return temp;
}
struct	node*	special()
{
	struct node* temp;

	temp = empty();
	temp->name =	"special";
	temp->tn	=	"combat.special";
	temp->x1	=	berserk();
	temp->x2	=	mastery();
	temp->x3	=	multihit();
	temp->level	=	2;
	set_prefix(temp);
	return temp;
}
struct	node*	slashing()
{
	struct node* temp;

	temp = empty();
	temp->name =	"slashing";
	temp->tn	=	"combat.offense.slashing";
	temp->x1	=	swords();
	temp->x2	=	axes();
	temp->x3	=	polearms();
	temp->level	=	3;
	set_prefix(temp);
	return temp;
}
struct	node*	bashing()
{
	struct node* temp;

	temp = empty();
	temp->name =	"bashing";
	temp->tn	=	"combat.offense.bashing";
	temp->x1	=	maces();
	temp->x2	=	flails();
	temp->x3	=	staves();
	temp->level	=	3;
	set_prefix(temp);
	return temp;
}
struct	node*	piercing()
{
	struct node* temp;

	temp = empty();
	temp->name =	"piercing";
	temp->tn	=	"combat.offense.piercing";
	temp->x1	=	daggers();
	temp->x2	=	spears();
	temp->x3	=	missiles();
	temp->level	=	3;
	set_prefix(temp);
	return temp;
}
struct	node*	unarmed()
{
	struct node* temp;

	temp = empty();
	temp->name =	"unarmed";
	temp->tn	=	"combat.offense.unarmed";
	temp->level	=	3;
	set_prefix(temp);
	return temp;
}
struct	node*	dodging()
{
	struct node* temp;

	temp = empty();
	temp->name =	"dodging";
	temp->tn	=	"combat.defense.dodging";
	temp->level	=	3;
	set_prefix(temp);
	return temp;
}
struct	node*	parrying()
{
	struct node* temp;

	temp = empty();
	temp->name =	"parrying";
	temp->tn	=	"combat.defense.parrying";
	temp->level	=	3;
	set_prefix(temp);
	return temp;
}
struct	node*	countering()
{
	struct node* temp;

	temp = empty();
	temp->name =	"countering";
	temp->tn	=	"combat.defense.countering";
	temp->level	=	3;
	set_prefix(temp);
	return temp;
}
struct node*	shield()
{
	struct node* temp;
	temp		= empty();
	temp->name	= "shield";
	temp->tn	= "combat.defnese.shield";
	temp->level	= 3;
	set_prefix(temp);
	return temp;
}
struct	node*	swords()
{
	struct node* temp;

	temp = empty();
	temp->name =	"swords";
	temp->tn	=	"combat.offense.slashing.swords";
	temp->level	=	4;
	set_prefix(temp);
	return temp;
}
struct	node*	axes()
{
	struct node* temp;

	temp = empty();
	temp->name =	"axes";
	temp->tn	=	"combat.offense.slashing.axes";
	temp->level	=	4;
	set_prefix(temp);
	return temp;
}
struct	node*	polearms()
{
	struct node* temp;

	temp = empty();
	temp->name =	"polearms";
	temp->tn	=	"combat.offense.slashing.polearms";
	temp->level	=	4;
	set_prefix(temp);
	return temp;
}
struct	node*	maces()
{
	struct node* temp;

	temp = empty();
	temp->name =	"maces";
	temp->tn	=	"combat.offense.bashing.maces";
	temp->level	=	4;
	set_prefix(temp);
	return temp;
}
struct	node*	flails()
{
	struct node* temp;

	temp = empty();
	temp->name =	"flails";
	temp->tn	=	"combat.offense.bashing.flails";
	temp->level	=	4;
	set_prefix(temp);
	return temp;
}
struct	node*	staves()
{
	struct node* temp;

	temp = empty();
	temp->name =	"staves";
	temp->tn	=	"combat.offense.bashing.staves";
	temp->level	=	4;
	set_prefix(temp);
	return temp;
}
struct	node*	daggers()
{
	struct node* temp;

	temp = empty();
	temp->name =	"daggers";
	temp->tn	=	"combat.offense.piercing.daggers";
	temp->level	=	4;
	set_prefix(temp);
	return temp;
}
struct	node*	spears()
{
	struct node* temp;

	temp = empty();
	temp->name =	"spears";
	temp->tn	=	"combat.offense.piercing.spears";
	temp->level	=	4;
	set_prefix(temp);
	return temp;
}
struct	node*	missiles()
{
	struct node* temp;

	temp = empty();
	temp->name =	"missiles";
	temp->tn	=	"combat.offense.piercing.missiles";
	temp->level	=	4;
	set_prefix(temp);
	return temp;
}
struct	node*	multihit()
{
	struct node* temp;

	temp = empty();
	temp->name =	"multihit";
	temp->tn	=	"combat.special.multihit";
	temp->level	=	3;
	set_prefix(temp);
	return temp;
}
struct	node*	mastery()
{
	struct node* temp;

	temp = empty();
	temp->name =	"mastery";
	temp->tn	=	"combat.special.mastery";
	temp->level	=	3;
	set_prefix(temp);
	return temp;
}
struct	node*	berserk()
{
	struct node* temp;

	temp = empty();
	temp->name =	"berserk";
	temp->tn	=	"combat.special.berserk";
	temp->level	=	3;
	set_prefix(temp);
	return temp;
}