/************************************************************************
Realms of Aurealis James Rhone aka Vall of RoA
classes.c Code dealing with filling and
assignment of classes... perhaps
OLCable classes someday...
******** 100% Completely Original Code ********
*** BE AWARE OF ALL RIGHTS AND RESERVATIONS ***
******** 100% Completely Original Code ********
All rights reserved henceforth.
Please note that no guarantees are associated with any code from
Realms of Aurealis. All code which has been released to the general
public has been done so with an 'as is' pretense. RoA is based on both
Diku and CircleMUD and ALL licenses from both *MUST* be adhered to as well
as the RoA license. *** Read, Learn, Understand, Improve ***
*************************************************************************/
#include "conf.h"
#include "sysdep.h"
#include "structures.h"
#include "utils.h"
#include "comm.h"
#include "db.h"
#include "interpreter.h"
#include "acmd.h"
#include "magic.h"
#include "handler.h"
#include "nature.h"
#include "affect.h"
#include "lists.h"
#include "darkenelf.h"
#include "global.h"
// fill this slot of clarray with this info 7/8/98 -jtrhone
void fill_class(int cnum, char *cname, char *ab, char *mleg, char *fleg, char *title, int perc,
int str, int intel, int wis, int dex, int con)
{
strcpy(clarray[cnum].class_name, cname);
strcpy(clarray[cnum].class_abbrev, ab);
strcpy(clarray[cnum].male_legend, mleg);
strcpy(clarray[cnum].female_legend, fleg);
strcpy(clarray[cnum].default_title, title);
clarray[cnum].max_perc = perc;
clarray[cnum].str = str;
clarray[cnum].intel = intel;
clarray[cnum].wis = wis;
clarray[cnum].dex = dex;
clarray[cnum].con = con;
}
// add a spell to a particular class... 7/8/98 -jtrhone
void skill_to_class(int cnum, int skl, BOOL innate, BOOL learnable, int minlevel)
{
clarray[cnum].skills[skl].innate = innate;
clarray[cnum].skills[skl].learnable = learnable;
clarray[cnum].skills[skl].minlevel = minlevel;
}
// fill classes with meaningful default data 7/9/98 -jtrhone
void init_classes(void)
{
int c, i;
for (c = 0; c <= NUM_CLASSES; c++)
{
fill_class(c, "default", "---", "------", "------", "the newbie somethin or other.", 0, 0, 1, 2, 3, 4);
for (i = 0; i < MAX_SKILLS; i++)
skill_to_class(c, i, FALSE, FALSE, LEV_IMM);
}
}
// using clinfo array, fill in class information here...
void assign_classes(void)
{
init_classes();
// // // // //
// Mages...
// // // // //
fill_class(CLASS_MAGE, "mage", "Mag", "Wizard", "Wizard", "the newbie mage.", 95, 3, 0, 1, 2, 4);
skill_to_class(CLASS_MAGE, SKILL_FIRST_AID, TRUE, FALSE, 1);
skill_to_class(CLASS_MAGE, SPELL_MAGIC_MISSILE, TRUE, FALSE, 1);
skill_to_class(CLASS_MAGE, SPELL_DETECT_MAGIC, TRUE, FALSE, 2);
skill_to_class(CLASS_MAGE, SPELL_DETECT_INVISIBLE, TRUE, FALSE, 2);
skill_to_class(CLASS_MAGE, SPELL_CHILL_TOUCH, TRUE, FALSE, 3);
skill_to_class(CLASS_MAGE, SPELL_INVISIBLE, TRUE, FALSE , 4);
skill_to_class(CLASS_MAGE, SPELL_ARMOR, TRUE, FALSE , 5);
skill_to_class(CLASS_MAGE, SPELL_BURNING_HANDS, TRUE, FALSE , 5);
skill_to_class(CLASS_MAGE, SPELL_IDENTIFY, TRUE, FALSE , 5);
skill_to_class(CLASS_MAGE, SPELL_LOCATE_OBJECT, TRUE, FALSE, 6);
skill_to_class(CLASS_MAGE, SPELL_STRENGTH, TRUE, FALSE , 7);
skill_to_class(CLASS_MAGE, SPELL_SHOCKING_GRASP, TRUE, FALSE, 7);
skill_to_class(CLASS_MAGE, SPELL_TELEPORT, TRUE, FALSE, 8);
skill_to_class(CLASS_MAGE, SPELL_BLINDNESS, TRUE, FALSE, 8);
skill_to_class(CLASS_MAGE, SPELL_LIGHTNING_BOLT, TRUE, FALSE, 9);
skill_to_class(CLASS_MAGE, SPELL_CONTROL_WEATHER, TRUE, FALSE, 10);
skill_to_class(CLASS_MAGE, SPELL_COLOUR_SPRAY, TRUE, FALSE, 11);
skill_to_class(CLASS_MAGE, SPELL_CURSE, TRUE, FALSE, 12);
skill_to_class(CLASS_MAGE, SPELL_ENCHANT_WEAPON, TRUE, FALSE, 12);
skill_to_class(CLASS_MAGE, SPELL_ENERGY_DRAIN, TRUE, FALSE, 13);
skill_to_class(CLASS_MAGE, SPELL_SLEEP, TRUE, FALSE, 14);
skill_to_class(CLASS_MAGE, SPELL_CHARM_PERSON, TRUE, FALSE, 14);
skill_to_class(CLASS_MAGE, SPELL_FIREFLASH, TRUE, FALSE, 15);
skill_to_class(CLASS_MAGE, SPELL_ANIMATE_DEAD, TRUE, FALSE, 15);
skill_to_class(CLASS_MAGE, SPELL_IMPLOSION, TRUE, FALSE, 18);
skill_to_class(CLASS_MAGE, SPELL_WINGS, TRUE, FALSE, 20);
skill_to_class(CLASS_MAGE, SPELL_GILLS, TRUE, FALSE, 20);
skill_to_class(CLASS_MAGE, SPELL_VOID, TRUE, FALSE, 22);
skill_to_class(CLASS_MAGE, SPELL_KNOCK, TRUE, FALSE, 23);
skill_to_class(CLASS_MAGE, SPELL_STONE_SKIN, TRUE, FALSE, 25);
skill_to_class(CLASS_MAGE, SPELL_ARMOR_GOLEM, TRUE, FALSE, 28);
skill_to_class(CLASS_MAGE, SPELL_CHAIN_LIGHTNING, TRUE, FALSE, 29);
skill_to_class(CLASS_MAGE, SPELL_HASTE, TRUE, FALSE, 30);
skill_to_class(CLASS_MAGE, SPELL_RECHARGE, TRUE, FALSE, 33);
skill_to_class(CLASS_MAGE, SPELL_FIREBALL, TRUE, FALSE, 34);
skill_to_class(CLASS_MAGE, SPELL_ICE_SHAFT, TRUE, FALSE, 35);
skill_to_class(CLASS_MAGE, SPELL_PROJECT, TRUE, FALSE, 37);
skill_to_class(CLASS_MAGE, SPELL_FIREWALL, TRUE, FALSE, 40);
skill_to_class(CLASS_MAGE, SPELL_CIRCLE_OF_WARDING, TRUE, FALSE, 42);
skill_to_class(CLASS_MAGE, SPELL_MIRRORIMAGE, TRUE, FALSE, 45);
skill_to_class(CLASS_MAGE, SPELL_GATEWAY, TRUE, FALSE, 50);
skill_to_class(CLASS_MAGE, SPELL_GASCLOUD, TRUE, FALSE, 52);
skill_to_class(CLASS_MAGE, SPELL_ICEWALL, TRUE, FALSE, 55);
skill_to_class(CLASS_MAGE, SPELL_WALLOFFOG, TRUE, FALSE, 57);
skill_to_class(CLASS_MAGE, SPELL_TYPHOON, TRUE, FALSE, 60);
skill_to_class(CLASS_MAGE, SPELL_ABSOLUTE_WARD, TRUE, FALSE, 60);
skill_to_class(CLASS_MAGE, SPELL_AREA_OF_RETURN, TRUE, FALSE, 63);
skill_to_class(CLASS_MAGE, SPELL_RETURN, TRUE, FALSE, 63);
skill_to_class(CLASS_MAGE, SPELL_BLINDWALL, TRUE, FALSE, 65);
skill_to_class(CLASS_MAGE, SPELL_CONFUSION, TRUE, FALSE, 68);
skill_to_class(CLASS_MAGE, SPELL_SWARM, TRUE, FALSE, 70);
// // // // //
// Clerics...
// // // // //
fill_class(CLASS_CLERIC, "cleric", "Cle", "Bishop", "Bishop", "the newbie cleric.", 95, 2, 1, 0, 3, 4);
skill_to_class(CLASS_CLERIC, SKILL_FIRST_AID, TRUE, FALSE, 1);
skill_to_class(CLASS_CLERIC, SPELL_ARMOR, TRUE, FALSE, 1);
skill_to_class(CLASS_CLERIC, SPELL_CURE_LIGHT, TRUE, FALSE, 1);
skill_to_class(CLASS_CLERIC, SPELL_DETECT_POISON, TRUE, FALSE, 2);
skill_to_class(CLASS_CLERIC, SPELL_CREATE_WATER, TRUE, FALSE, 2);
skill_to_class(CLASS_CLERIC, SPELL_DETECT_MAGIC, TRUE, FALSE, 3);
skill_to_class(CLASS_CLERIC, SPELL_CREATE_FOOD, TRUE, FALSE, 3);
skill_to_class(CLASS_CLERIC, SPELL_DETECT_EVIL, TRUE, FALSE, 4);
skill_to_class(CLASS_CLERIC, SPELL_CURE_BLIND, TRUE, FALSE, 4);
skill_to_class(CLASS_CLERIC, SPELL_BLESS, TRUE, FALSE, 5);
skill_to_class(CLASS_CLERIC, SPELL_DETECT_INVISIBLE, TRUE, FALSE, 5);
skill_to_class(CLASS_CLERIC, SPELL_BLINDNESS, TRUE, FALSE, 6);
skill_to_class(CLASS_CLERIC, SPELL_PROTECT_FROM_EVIL, TRUE, FALSE, 6);
skill_to_class(CLASS_CLERIC, SPELL_PROTECT_FROM_GOOD, TRUE, FALSE, 6);
skill_to_class(CLASS_CLERIC, SPELL_SENSE_LIFE, TRUE, FALSE, 7);
skill_to_class(CLASS_CLERIC, SPELL_EARTHQUAKE, TRUE, FALSE, 7);
skill_to_class(CLASS_CLERIC, SPELL_POISON, TRUE, FALSE, 8);
skill_to_class(CLASS_CLERIC, SPELL_SUMMON, TRUE, FALSE, 8);
skill_to_class(CLASS_CLERIC, SPELL_REMOVE_POISON, TRUE, FALSE, 9);
skill_to_class(CLASS_CLERIC, SPELL_CURE_CRITIC, TRUE, FALSE, 9);
skill_to_class(CLASS_CLERIC, SPELL_DISPEL_EVIL, TRUE, FALSE, 10);
skill_to_class(CLASS_CLERIC, SPELL_LOCATE_OBJECT, TRUE, FALSE, 10);
skill_to_class(CLASS_CLERIC, SPELL_PROTECT_UNDEAD, TRUE, FALSE, 10);
skill_to_class(CLASS_CLERIC, SPELL_WORD_OF_RECALL, TRUE, FALSE, 11);
skill_to_class(CLASS_CLERIC, SPELL_REMOVE_CURSE, TRUE, FALSE, 12);
skill_to_class(CLASS_CLERIC, SPELL_CALL_LIGHTNING, TRUE, FALSE, 12);
skill_to_class(CLASS_CLERIC, SPELL_CONTROL_WEATHER, TRUE, FALSE, 13);
skill_to_class(CLASS_CLERIC, SPELL_SANCTUARY, TRUE, FALSE, 13);
skill_to_class(CLASS_CLERIC, SPELL_HEAL, TRUE, FALSE, 14);
skill_to_class(CLASS_CLERIC, SPELL_ANIMATE_DEAD, TRUE, FALSE, 15);
skill_to_class(CLASS_CLERIC, SPELL_HARM, TRUE, FALSE, 15);
skill_to_class(CLASS_CLERIC, SPELL_ILLUMINATE, TRUE, FALSE, 16);
skill_to_class(CLASS_CLERIC, SPELL_FORCEFUL_WIND, TRUE, FALSE, 18);
skill_to_class(CLASS_CLERIC, SPELL_WINGS, TRUE, FALSE, 20);
skill_to_class(CLASS_CLERIC, SPELL_GILLS, TRUE, FALSE, 20);
skill_to_class(CLASS_CLERIC, SPELL_STONE_SKIN, TRUE, FALSE, 21);
skill_to_class(CLASS_CLERIC, SPELL_CALM, TRUE, FALSE, 31);
skill_to_class(CLASS_CLERIC, SPELL_P_HEAL, TRUE, FALSE, 40);
skill_to_class(CLASS_CLERIC, SPELL_HOLD_PERSON, TRUE, FALSE, 41);
skill_to_class(CLASS_CLERIC, SPELL_VIEW_HIDDEN, TRUE, FALSE, 42);
skill_to_class(CLASS_CLERIC, SPELL_SHOWEROFLIFE, TRUE, FALSE, 50);
skill_to_class(CLASS_CLERIC, SPELL_LOCATE_BEING, TRUE, FALSE, 55);
skill_to_class(CLASS_CLERIC, SPELL_SILENCE, TRUE, FALSE, 65);
skill_to_class(CLASS_CLERIC, SPELL_RETRIEVE_CORPSE, TRUE, FALSE, 70);
// // // // //
// Thieves...
// // // // //
fill_class(CLASS_THIEF, "thief", "Thf", "Master", "Master", "the newbie thief.", 90, 2, 3, 4, 0, 1);
skill_to_class(CLASS_THIEF, SKILL_FIRST_AID, TRUE, FALSE, 1);
skill_to_class(CLASS_THIEF, SKILL_BACKSTAB, TRUE, FALSE, 1);
skill_to_class(CLASS_THIEF, SKILL_HIDE, TRUE, FALSE, 2);
skill_to_class(CLASS_THIEF, SKILL_PICK_LOCK, TRUE, FALSE, 3);
skill_to_class(CLASS_THIEF, SKILL_STEAL, TRUE, FALSE, 4);
skill_to_class(CLASS_THIEF, SKILL_DETECTTRAP, TRUE, FALSE, 5);
skill_to_class(CLASS_THIEF, SKILL_REMOVETRAP, TRUE, FALSE, 6);
skill_to_class(CLASS_THIEF, SKILL_EAVESDROP, TRUE, FALSE, 7);
skill_to_class(CLASS_THIEF, SKILL_BREW, TRUE, FALSE, 8);
skill_to_class(CLASS_THIEF, SKILL_TPOISON, TRUE, FALSE, 9);
skill_to_class(CLASS_THIEF, SKILL_SNEAK, TRUE, FALSE, 10);
skill_to_class(CLASS_THIEF, SKILL_SEALEXIT, TRUE, FALSE, 11);
skill_to_class(CLASS_THIEF, SKILL_DOUBLE, TRUE, FALSE, 12);
skill_to_class(CLASS_THIEF, SKILL_PARRY, TRUE, FALSE, 14);
skill_to_class(CLASS_THIEF, SKILL_BLINDSTRIKE, TRUE, FALSE, 16);
skill_to_class(CLASS_THIEF, SKILL_DARTTRAP, TRUE, FALSE, 18);
skill_to_class(CLASS_THIEF, SKILL_JAMLOCK, TRUE, FALSE, 20);
skill_to_class(CLASS_THIEF, SKILL_POISONBLADE, TRUE, FALSE, 22);
skill_to_class(CLASS_THIEF, SKILL_STUNTOUCH, TRUE, FALSE, 24);
skill_to_class(CLASS_THIEF, SKILL_REDIRECT, TRUE, FALSE, 26);
skill_to_class(CLASS_THIEF, SKILL_POISONTRAP, TRUE, FALSE, 28);
skill_to_class(CLASS_THIEF, SKILL_SETSNARE, TRUE, FALSE, 30);
skill_to_class(CLASS_THIEF, SKILL_DETECTSNARE, TRUE, FALSE, 32);
skill_to_class(CLASS_THIEF, SKILL_REMOVESNARE, TRUE, FALSE, 34);
skill_to_class(CLASS_THIEF, SKILL_LOWSTRIKE, TRUE, FALSE, 36);
skill_to_class(CLASS_THIEF, SKILL_DODGE, TRUE, FALSE, 38);
skill_to_class(CLASS_THIEF, SKILL_DISARM, TRUE, FALSE, 40);
skill_to_class(CLASS_THIEF, SKILL_FIRETRAP, TRUE, FALSE, 42);
skill_to_class(CLASS_THIEF, SKILL_DUAL, TRUE, FALSE, 44);
skill_to_class(CLASS_THIEF, SKILL_BLADEDANCE, TRUE, FALSE, 46);
skill_to_class(CLASS_THIEF, SKILL_TUMBLE, TRUE, FALSE, 48);
skill_to_class(CLASS_THIEF, SKILL_SHADOWWALK, TRUE, FALSE, 50);
skill_to_class(CLASS_THIEF, SKILL_SIDESTEP, TRUE, FALSE, 52);
skill_to_class(CLASS_THIEF, SKILL_LIGHTNINGTRAP, TRUE, FALSE, 54);
skill_to_class(CLASS_THIEF, SKILL_CRIPPLE, TRUE, FALSE, 56);
skill_to_class(CLASS_THIEF, SKILL_CIRCLE, TRUE, FALSE, 58);
skill_to_class(CLASS_THIEF, SKILL_DISEMBOWEL, TRUE, FALSE, 60);
skill_to_class(CLASS_THIEF, SKILL_SUBDUE, TRUE, FALSE, 62);
skill_to_class(CLASS_THIEF, SKILL_DETECTSECRET, TRUE, FALSE, 64);
skill_to_class(CLASS_THIEF, SKILL_OBSCURE, TRUE, FALSE, 66);
skill_to_class(CLASS_THIEF, SKILL_HAMSTRING, TRUE, FALSE, 68);
skill_to_class(CLASS_THIEF, SKILL_ASSASSINATE, TRUE, FALSE, 70);
// // // // //
// Warriors...
// // // // //
fill_class(CLASS_WARRIOR, "warrior", "War", "Lord", "Lady", "the newbie warrior.", 85, 0, 4, 3, 1, 2);
skill_to_class(CLASS_WARRIOR, SKILL_FIRST_AID, TRUE, FALSE, 1);
skill_to_class(CLASS_WARRIOR, SKILL_KICK, TRUE, FALSE, 1);
skill_to_class(CLASS_WARRIOR, SKILL_BASH, TRUE, FALSE, 1);
skill_to_class(CLASS_WARRIOR, SKILL_RESCUE, TRUE, FALSE, 4);
skill_to_class(CLASS_WARRIOR, SKILL_WAR_ENDURANCE, TRUE, FALSE, 8);
skill_to_class(CLASS_WARRIOR, SKILL_DOUBLE, TRUE, FALSE, 10);
skill_to_class(CLASS_WARRIOR, SKILL_PARRY, TRUE, FALSE, 15);
skill_to_class(CLASS_WARRIOR, SKILL_DOORBASH, TRUE, FALSE, 18);
skill_to_class(CLASS_WARRIOR, SKILL_FORTIFY, TRUE, FALSE, 20);
skill_to_class(CLASS_WARRIOR, SKILL_SHIELDBLOCK, TRUE, FALSE, 25);
skill_to_class(CLASS_WARRIOR, SKILL_DISARM, TRUE, FALSE, 30);
skill_to_class(CLASS_WARRIOR, SKILL_DODGE, TRUE, FALSE, 35);
skill_to_class(CLASS_WARRIOR, SKILL_STUNTOUCH, TRUE, FALSE, 35);
skill_to_class(CLASS_WARRIOR, SKILL_TRIPLE, TRUE, FALSE, 40);
skill_to_class(CLASS_WARRIOR, SKILL_HURL, TRUE, FALSE, 45);
skill_to_class(CLASS_WARRIOR, SKILL_CRIPPLE, TRUE, FALSE, 50);
skill_to_class(CLASS_WARRIOR, SKILL_GRAPPLE, TRUE, FALSE, 55);
skill_to_class(CLASS_WARRIOR, SKILL_FENGAGE, TRUE, FALSE, 60);
// // // // //
// Shaman...
// // // // //
fill_class(CLASS_SHAMAN, "shaman", "Sha", "Wytch", "Wytch", "the newbie shaman.", 90, 2, 1, 0, 3, 4);
skill_to_class(CLASS_SHAMAN, SKILL_FIRST_AID, TRUE, FALSE, 1);
skill_to_class(CLASS_SHAMAN, SKILL_HIDE, TRUE, FALSE, 1);
skill_to_class(CLASS_SHAMAN, SKILL_SNAKE_FIRE, TRUE, FALSE, 1);
skill_to_class(CLASS_SHAMAN, SKILL_PURGE, TRUE, FALSE, 1);
skill_to_class(CLASS_SHAMAN, SKILL_SP_STRENGTH, TRUE, FALSE, 4);
skill_to_class(CLASS_SHAMAN, SKILL_PROTECTION, TRUE, FALSE, 5);
skill_to_class(CLASS_SHAMAN, SKILL_TRUESIGHT, TRUE, FALSE, 7);
skill_to_class(CLASS_SHAMAN, SKILL_ELUSION, TRUE, FALSE, 10);
skill_to_class(CLASS_SHAMAN, SKILL_EAGLE_EYES, TRUE, FALSE, 10);
skill_to_class(CLASS_SHAMAN, SKILL_FORAGE, TRUE, FALSE, 12);
skill_to_class(CLASS_SHAMAN, SKILL_FORTITUDE, TRUE, FALSE, 15);
skill_to_class(CLASS_SHAMAN, SKILL_STONE, TRUE, FALSE, 20);
skill_to_class(CLASS_SHAMAN, SKILL_ENDURANCE, TRUE, FALSE, 24);
skill_to_class(CLASS_SHAMAN, SKILL_DOUBLE, TRUE, FALSE, 25);
skill_to_class(CLASS_SHAMAN, SKILL_HEAL, TRUE, FALSE, 30);
skill_to_class(CLASS_SHAMAN, SKILL_LOCATION, TRUE, FALSE, 32);
skill_to_class(CLASS_SHAMAN, SKILL_PARRY, TRUE, FALSE, 35);
skill_to_class(CLASS_SHAMAN, SKILL_CROW, TRUE, FALSE, 40);
skill_to_class(CLASS_SHAMAN, SKILL_SHIELDBLOCK, TRUE, FALSE, 43);
skill_to_class(CLASS_SHAMAN, SKILL_TRUCE, TRUE, FALSE, 45);
skill_to_class(CLASS_SHAMAN, SKILL_WOLF, TRUE, FALSE, 50);
skill_to_class(CLASS_SHAMAN, SKILL_NOTRACK, TRUE, FALSE, 52);
skill_to_class(CLASS_SHAMAN, SKILL_DODGE, TRUE, FALSE, 55);
skill_to_class(CLASS_SHAMAN, SKILL_CLAWS, TRUE, FALSE, 60);
skill_to_class(CLASS_SHAMAN, SKILL_FANG, TRUE, FALSE, 65);
// // // // //
// Ranger...
// // // // //
fill_class(CLASS_RANGER, "ranger", "Rng", "Lord", "Lady", "the newbie ranger.", 85, 2, 3, 4, 0, 1);
skill_to_class(CLASS_RANGER, SKILL_FIRST_AID, TRUE, FALSE, 1);
skill_to_class(CLASS_RANGER, SKILL_FORAGE, TRUE, FALSE, 1);
skill_to_class(CLASS_RANGER, SKILL_DIVINE, TRUE, FALSE, 3);
skill_to_class(CLASS_RANGER, SKILL_CREATE_TORCH, TRUE, FALSE, 4);
skill_to_class(CLASS_RANGER, SKILL_KICK, TRUE, FALSE, 5);
skill_to_class(CLASS_RANGER, SKILL_FILET, TRUE, FALSE, 6);
skill_to_class(CLASS_RANGER, SKILL_RESCUE, TRUE, FALSE, 8);
skill_to_class(CLASS_RANGER, SPELL_POISON_DART, TRUE, FALSE, 9);
skill_to_class(CLASS_RANGER, SKILL_HEALWOUNDS, TRUE, FALSE, 10);
skill_to_class(CLASS_RANGER, SKILL_CALL_WILDLIFE, TRUE, FALSE, 12);
skill_to_class(CLASS_RANGER, SPELL_FOREST_SIGHT, TRUE, FALSE, 14);
skill_to_class(CLASS_RANGER, SKILL_DOUBLE, TRUE, FALSE, 15);
skill_to_class(CLASS_RANGER, SKILL_TRAILBLAZE, TRUE, FALSE, 16);
skill_to_class(CLASS_RANGER, SKILL_SKIN, TRUE, FALSE, 17);
skill_to_class(CLASS_RANGER, SPELL_EARTHDARTS, TRUE, FALSE, 18);
skill_to_class(CLASS_RANGER, SKILL_CAMOUFLAGE, TRUE, FALSE, 20);
skill_to_class(CLASS_RANGER, SKILL_DODGE, TRUE, FALSE, 21);
skill_to_class(CLASS_RANGER, SKILL_SWEEP, TRUE, FALSE, 22);
skill_to_class(CLASS_RANGER, SKILL_WAR_ENDURANCE, TRUE, FALSE, 23);
skill_to_class(CLASS_RANGER, SKILL_STUNTOUCH, TRUE, FALSE, 25);
skill_to_class(CLASS_RANGER, SKILL_SILENTWALK, TRUE, FALSE, 26);
skill_to_class(CLASS_RANGER, SPELL_SPIRITLEAVES, TRUE, FALSE, 27);
skill_to_class(CLASS_RANGER, SPELL_ENTANGLE, TRUE, FALSE, 28);
skill_to_class(CLASS_RANGER, SKILL_WHIRLWIND, TRUE, FALSE, 30);
skill_to_class(CLASS_RANGER, SKILL_NOTRACK, TRUE, FALSE, 33);
skill_to_class(CLASS_RANGER, SPELL_BARKSKIN, TRUE, FALSE, 34);
skill_to_class(CLASS_RANGER, SKILL_BECOME, TRUE, FALSE, 35);
skill_to_class(CLASS_RANGER, SPELL_SPIRITBALM, TRUE, FALSE, 36);
skill_to_class(CLASS_RANGER, SPELL_SPIRITSHOCK, TRUE, FALSE, 38);
skill_to_class(CLASS_RANGER, SKILL_MEDITATE, TRUE, FALSE, 39);
skill_to_class(CLASS_RANGER, SKILL_PARRY, TRUE, FALSE, 40);
skill_to_class(CLASS_RANGER, SPELL_FORESTEYES, TRUE, FALSE, 43);
skill_to_class(CLASS_RANGER, SKILL_DISARM, TRUE, FALSE, 45);
skill_to_class(CLASS_RANGER, SKILL_PRESENCE, TRUE, FALSE, 50);
skill_to_class(CLASS_RANGER, SPELL_ENSNARE, TRUE, FALSE, 53);
skill_to_class(CLASS_RANGER, SKILL_BEFRIEND, TRUE, FALSE, 55);
skill_to_class(CLASS_RANGER, SPELL_OCCLUSION, TRUE, FALSE, 58);
skill_to_class(CLASS_RANGER, SKILL_REDIRECT, TRUE, FALSE, 60);
skill_to_class(CLASS_RANGER, SPELL_CAMPFIRE, TRUE, FALSE, 63);
skill_to_class(CLASS_RANGER, SKILL_TREK, TRUE, FALSE, 65);
skill_to_class(CLASS_RANGER, SKILL_CYCLONE, TRUE, FALSE, 66);
skill_to_class(CLASS_RANGER, SPELL_SPIRITSHIELD, TRUE, FALSE, 67);
skill_to_class(CLASS_RANGER, SKILL_TRIPLE, TRUE, FALSE, 70);
// // // // //
// Bard...
// // // // //
fill_class(CLASS_BARD, "bard", "Brd", "Trbdr", "Trbdr", "the newbie bard.", 85, 0, 4, 3, 1, 2);
skill_to_class(CLASS_BARD, SKILL_FIRST_AID, TRUE, FALSE, 1);
skill_to_class(CLASS_BARD, SKILL_SING, TRUE, FALSE, 1);
skill_to_class(CLASS_BARD, SKILL_PICK_LOCK, TRUE, FALSE, 5);
skill_to_class(CLASS_BARD, SKILL_STEAL, TRUE, FALSE, 6);
skill_to_class(CLASS_BARD, SKILL_PARRY, TRUE, FALSE, 8);
skill_to_class(CLASS_BARD, SKILL_PLAY, TRUE, FALSE, 10);
skill_to_class(CLASS_BARD, SKILL_DOUBLE, TRUE, FALSE, 20);
skill_to_class(CLASS_BARD, SKILL_HEALWOUNDS, TRUE, FALSE, 24);
skill_to_class(CLASS_BARD, SKILL_SHIELDBLOCK, TRUE, FALSE, 28);
skill_to_class(CLASS_BARD, SKILL_DISARM, TRUE, FALSE, 30);
skill_to_class(CLASS_BARD, SKILL_CRAFT, TRUE, FALSE, 35);
skill_to_class(CLASS_BARD, SKILL_DODGE, TRUE, FALSE, 50);
skill_to_class(CLASS_BARD, SKILL_CIRCLE, TRUE, FALSE, 60);
// // // // //
// Warlock...
// // // // //
fill_class(CLASS_WARLOCK, "warlock", "Wlk", "Demon", "Demon", "the newbie warlock.", 95, 3, 0, 1, 2, 4);
skill_to_class(CLASS_WARLOCK, SKILL_FIRST_AID, TRUE, FALSE, 1);
skill_to_class(CLASS_WARLOCK, SKILL_SNEAK, TRUE, FALSE, 3);
skill_to_class(CLASS_WARLOCK, SPELL_DETECT_MAGIC, TRUE, FALSE, 5);
skill_to_class(CLASS_WARLOCK, SPELL_DETECT_INVISIBLE, TRUE, FALSE, 7);
skill_to_class(CLASS_WARLOCK, SPELL_STRENGTH, TRUE, FALSE, 11);
skill_to_class(CLASS_WARLOCK, SPELL_CURSE, TRUE, FALSE, 13);
skill_to_class(CLASS_WARLOCK, SKILL_RESCUE, TRUE, FALSE, 15);
skill_to_class(CLASS_WARLOCK, SPELL_PROTECT_FROM_GOOD, TRUE, FALSE, 20);
skill_to_class(CLASS_WARLOCK, SKILL_KICK, TRUE, FALSE, 25);
skill_to_class(CLASS_WARLOCK, SPELL_MINDTRAP, TRUE, FALSE, 30);
skill_to_class(CLASS_WARLOCK, SPELL_CURSED_GROUNDS, TRUE, FALSE, 50);
// // // // //
// Monshai...
// // // // //
fill_class(CLASS_MONK, "monshai", "Mon", "Abbot", "Abbess", "the newbie monshai.", 90, 0, 4, 3, 1, 2);
skill_to_class(CLASS_MONK, SKILL_HIDE, TRUE, FALSE, 1);
skill_to_class(CLASS_MONK, SKILL_PICK_LOCK, TRUE, FALSE, 1);
skill_to_class(CLASS_MONK, SKILL_SNEAK, TRUE, FALSE, 1);
skill_to_class(CLASS_MONK, SKILL_AURA, TRUE, FALSE, 1);
skill_to_class(CLASS_MONK, SKILL_ROLL, TRUE, FALSE, 2);
skill_to_class(CLASS_MONK, SKILL_RAZOR, TRUE, FALSE, 3);
skill_to_class(CLASS_MONK, SKILL_FIRST_AID, TRUE, FALSE, 4);
skill_to_class(CLASS_MONK, SKILL_SENSE, TRUE, FALSE, 5);
skill_to_class(CLASS_MONK, SKILL_OM, TRUE, FALSE, 6);
skill_to_class(CLASS_MONK, SKILL_DOUBLE, TRUE, FALSE, 7);
skill_to_class(CLASS_MONK, SKILL_CLEANSE, TRUE, FALSE, 9);
skill_to_class(CLASS_MONK, SKILL_LEAP, TRUE, FALSE, 10);
skill_to_class(CLASS_MONK, SKILL_DODGE, TRUE, FALSE, 11);
skill_to_class(CLASS_MONK, SKILL_STONE_FINGER, TRUE, FALSE, 12);
skill_to_class(CLASS_MONK, SKILL_TRIPLE, TRUE, FALSE, 13);
skill_to_class(CLASS_MONK, SKILL_HEALWOUNDS, TRUE, FALSE, 14);
skill_to_class(CLASS_MONK, SKILL_MOK, TRUE, FALSE, 15);
skill_to_class(CLASS_MONK, SKILL_PARRY, TRUE, FALSE, 16);
skill_to_class(CLASS_MONK, SKILL_KICK, TRUE, FALSE, 18);
skill_to_class(CLASS_MONK, SKILL_LEVITATE, TRUE, FALSE, 19);
skill_to_class(CLASS_MONK, SKILL_STUNTOUCH, TRUE, FALSE, 21);
skill_to_class(CLASS_MONK, SKILL_WHIRLWIND, TRUE, FALSE, 22);
skill_to_class(CLASS_MONK, SKILL_WAR_ENDURANCE, TRUE, FALSE, 24);
skill_to_class(CLASS_MONK, SKILL_SNARL, TRUE, FALSE, 25);
skill_to_class(CLASS_MONK, SKILL_FLIP, TRUE, FALSE, 28);
skill_to_class(CLASS_MONK, SKILL_IRONHAND, TRUE, FALSE, 31);
skill_to_class(CLASS_MONK, SKILL_WA, TRUE, FALSE, 34);
skill_to_class(CLASS_MONK, SKILL_HASTEN, TRUE, FALSE, 40);
skill_to_class(CLASS_MONK, SKILL_HURL, TRUE, FALSE, 43);
skill_to_class(CLASS_MONK, SKILL_IRON, TRUE, FALSE, 46);
skill_to_class(CLASS_MONK, SKILL_TURTLE, TRUE, FALSE, 50);
skill_to_class(CLASS_MONK, SKILL_FIST, TRUE, FALSE, 52);
skill_to_class(CLASS_MONK, SKILL_TRANCE, TRUE, FALSE, 56);
// // // // //
// Madept...
// // // // //
fill_class(CLASS_MADEPT, "madept", "Mad", "Sorcer", "Sorcer", "the newbie madept.", 75, 3, 0, 1, 2, 4);
skill_to_class(CLASS_MADEPT, SKILL_FIRST_AID, TRUE, FALSE, 1);
skill_to_class(CLASS_MADEPT, SPELL_MAGIC_MISSILE, TRUE, FALSE, 1);
skill_to_class(CLASS_MADEPT, SPELL_CURE_LIGHT, TRUE, FALSE, 1);
skill_to_class(CLASS_MADEPT, SPELL_DETECT_INVISIBLE, TRUE, FALSE, 2);
skill_to_class(CLASS_MADEPT, SPELL_DETECT_POISON, TRUE, FALSE, 2);
skill_to_class(CLASS_MADEPT, SPELL_CREATE_WATER, TRUE, FALSE, 2);
skill_to_class(CLASS_MADEPT, SPELL_DETECT_MAGIC, TRUE, FALSE, 3);
skill_to_class(CLASS_MADEPT, SPELL_CREATE_FOOD, TRUE, FALSE, 3);
skill_to_class(CLASS_MADEPT, SPELL_CHILL_TOUCH, TRUE, FALSE, 3);
skill_to_class(CLASS_MADEPT, SPELL_DETECT_EVIL, TRUE, FALSE, 4);
skill_to_class(CLASS_MADEPT, SPELL_INVISIBLE, TRUE, FALSE, 4);
skill_to_class(CLASS_MADEPT, SPELL_CURE_BLIND, TRUE, FALSE, 4);
skill_to_class(CLASS_MADEPT, SPELL_ARMOR, TRUE, FALSE, 5);
skill_to_class(CLASS_MADEPT, SPELL_BURNING_HANDS, TRUE, FALSE, 5);
skill_to_class(CLASS_MADEPT, SPELL_IDENTIFY, TRUE, FALSE, 5);
skill_to_class(CLASS_MADEPT, SPELL_BLESS, TRUE, FALSE, 5);
skill_to_class(CLASS_MADEPT, SPELL_BLINDNESS, TRUE, FALSE, 6);
skill_to_class(CLASS_MADEPT, SPELL_PROTECT_FROM_EVIL, TRUE, FALSE, 6);
skill_to_class(CLASS_MADEPT, SPELL_PROTECT_FROM_GOOD, TRUE, FALSE, 6);
skill_to_class(CLASS_MADEPT, SPELL_STRENGTH, TRUE, FALSE, 7);
skill_to_class(CLASS_MADEPT, SPELL_SHOCKING_GRASP, TRUE, FALSE, 7);
skill_to_class(CLASS_MADEPT, SPELL_SENSE_LIFE, TRUE, FALSE, 7);
skill_to_class(CLASS_MADEPT, SPELL_EARTHQUAKE, TRUE, FALSE, 7);
skill_to_class(CLASS_MADEPT, SPELL_POISON, TRUE, FALSE, 8);
skill_to_class(CLASS_MADEPT, SPELL_TELEPORT, TRUE, FALSE, 8);
skill_to_class(CLASS_MADEPT, SPELL_SUMMON, TRUE, FALSE, 8);
skill_to_class(CLASS_MADEPT, SPELL_REMOVE_POISON, TRUE, FALSE, 9);
skill_to_class(CLASS_MADEPT, SPELL_LIGHTNING_BOLT, TRUE, FALSE, 9);
skill_to_class(CLASS_MADEPT, SPELL_CURE_CRITIC, TRUE, FALSE, 9);
skill_to_class(CLASS_MADEPT, SPELL_DISPEL_EVIL, TRUE, FALSE, 10);
skill_to_class(CLASS_MADEPT, SPELL_LOCATE_OBJECT, TRUE, FALSE, 10);
skill_to_class(CLASS_MADEPT, SPELL_PROTECT_UNDEAD, TRUE, FALSE, 10);
skill_to_class(CLASS_MADEPT, SPELL_COLOUR_SPRAY, TRUE, FALSE, 11);
skill_to_class(CLASS_MADEPT, SPELL_WORD_OF_RECALL, TRUE, FALSE, 11);
skill_to_class(CLASS_MADEPT, SPELL_CURSE, TRUE, FALSE, 12);
skill_to_class(CLASS_MADEPT, SPELL_ENCHANT_WEAPON, TRUE, FALSE, 12);
skill_to_class(CLASS_MADEPT, SPELL_REMOVE_CURSE, TRUE, FALSE, 12);
skill_to_class(CLASS_MADEPT, SPELL_CALL_LIGHTNING, TRUE, FALSE, 12);
skill_to_class(CLASS_MADEPT, SPELL_CONTROL_WEATHER, TRUE, FALSE, 13);
skill_to_class(CLASS_MADEPT, SPELL_ENERGY_DRAIN, TRUE, FALSE, 13);
skill_to_class(CLASS_MADEPT, SPELL_SANCTUARY, TRUE, FALSE, 13);
skill_to_class(CLASS_MADEPT, SPELL_HEAL, TRUE, FALSE, 14);
skill_to_class(CLASS_MADEPT, SPELL_SLEEP, TRUE, FALSE, 14);
skill_to_class(CLASS_MADEPT, SPELL_CHARM_PERSON, TRUE, FALSE, 14);
skill_to_class(CLASS_MADEPT, SPELL_ANIMATE_DEAD, TRUE, FALSE, 15);
skill_to_class(CLASS_MADEPT, SPELL_HARM, TRUE, FALSE, 15);
skill_to_class(CLASS_MADEPT, SPELL_FIREFLASH, TRUE, FALSE, 15);
skill_to_class(CLASS_MADEPT, SPELL_ILLUMINATE, TRUE, FALSE, 16);
skill_to_class(CLASS_MADEPT, SPELL_IMPLOSION, TRUE, FALSE, 18);
skill_to_class(CLASS_MADEPT, SPELL_FORCEFUL_WIND, TRUE, FALSE, 18);
skill_to_class(CLASS_MADEPT, SPELL_WINGS, TRUE, FALSE, 20);
skill_to_class(CLASS_MADEPT, SPELL_GILLS, TRUE, FALSE, 20);
skill_to_class(CLASS_MADEPT, SPELL_VOID, TRUE, FALSE, 22);
skill_to_class(CLASS_MADEPT, SPELL_STONE_SKIN, TRUE, FALSE, 25);
skill_to_class(CLASS_MADEPT, SPELL_ARMOR_GOLEM, TRUE, FALSE, 28);
skill_to_class(CLASS_MADEPT, SPELL_CHAIN_LIGHTNING, TRUE, FALSE, 29);
skill_to_class(CLASS_MADEPT, SPELL_HASTE, TRUE, FALSE, 30);
skill_to_class(CLASS_MADEPT, SPELL_CALM, TRUE, FALSE, 31);
skill_to_class(CLASS_MADEPT, SPELL_RECHARGE, TRUE, FALSE, 33);
skill_to_class(CLASS_MADEPT, SPELL_FIREBALL, TRUE, FALSE, 34);
skill_to_class(CLASS_MADEPT, SPELL_ICE_SHAFT, TRUE, FALSE, 35);
skill_to_class(CLASS_MADEPT, SPELL_P_HEAL, TRUE, FALSE, 40);
skill_to_class(CLASS_MADEPT, SPELL_FIREWALL, TRUE, FALSE, 40);
skill_to_class(CLASS_MADEPT, SPELL_HOLD_PERSON, TRUE, FALSE, 41);
skill_to_class(CLASS_MADEPT, SPELL_VIEW_HIDDEN, TRUE, FALSE, 42);
skill_to_class(CLASS_MADEPT, SPELL_CIRCLE_OF_WARDING, TRUE, FALSE, 42);
skill_to_class(CLASS_MADEPT, SPELL_MIRRORIMAGE, TRUE, FALSE, 45);
skill_to_class(CLASS_MADEPT, SPELL_GATEWAY, TRUE, FALSE, 50);
skill_to_class(CLASS_MADEPT, SPELL_SHOWEROFLIFE, TRUE, FALSE, 50);
skill_to_class(CLASS_MADEPT, SPELL_GASCLOUD, TRUE, FALSE, 52);
skill_to_class(CLASS_MADEPT, SPELL_ICEWALL, TRUE, FALSE, 55);
skill_to_class(CLASS_MADEPT, SPELL_LOCATE_BEING, TRUE, FALSE, 55);
skill_to_class(CLASS_MADEPT, SPELL_WALLOFFOG, TRUE, FALSE, 57);
skill_to_class(CLASS_MADEPT, SPELL_ABSOLUTE_WARD, TRUE, FALSE, 60);
skill_to_class(CLASS_MADEPT, SPELL_TYPHOON, TRUE, FALSE, 60);
skill_to_class(CLASS_MADEPT, SPELL_SILENCE, TRUE, FALSE, 65);
skill_to_class(CLASS_MADEPT, SPELL_BLINDWALL, TRUE, FALSE, 65);
skill_to_class(CLASS_MADEPT, SPELL_CONFUSION, TRUE, FALSE, 68);
skill_to_class(CLASS_MADEPT, SPELL_SWARM, TRUE, FALSE, 70);
skill_to_class(CLASS_MADEPT, SPELL_RETRIEVE_CORPSE, TRUE, FALSE, 70);
// // // // //
// Druid...
// // // // //
fill_class(CLASS_DRUID, "druid", "Dru", "Druid", "Druid", "the newbie druid.", 90, 3, 0, 1, 2, 4);
skill_to_class(CLASS_DRUID, SKILL_FIRST_AID, TRUE, FALSE, 1);
skill_to_class(CLASS_DRUID, SPELL_CURE_LIGHT, TRUE, FALSE, 1);
skill_to_class(CLASS_DRUID, SPELL_FOREST_EMBRACE, TRUE, FALSE, 2);
skill_to_class(CLASS_DRUID, SKILL_FORAGE, TRUE, FALSE, 2);
skill_to_class(CLASS_DRUID, SPELL_OBSCURE_PASSING, TRUE, FALSE, 3);
skill_to_class(CLASS_DRUID, SPELL_TREESKIN, TRUE, FALSE, 3);
skill_to_class(CLASS_DRUID, SKILL_DIVINE, TRUE, FALSE, 4);
skill_to_class(CLASS_DRUID, SPELL_KNOW_ALIGNMENT, TRUE, FALSE, 4);
skill_to_class(CLASS_DRUID, SPELL_CALL_LIGHTNING, TRUE, FALSE, 5);
skill_to_class(CLASS_DRUID, SPELL_LOCATE_OBJECT, TRUE, FALSE, 5);
skill_to_class(CLASS_DRUID, SKILL_FILET, TRUE, FALSE, 6);
skill_to_class(CLASS_DRUID, SPELL_PROTECT_FROM_POISON, TRUE, FALSE, 6);
skill_to_class(CLASS_DRUID, SPELL_NATURE_COMMUNION, TRUE, FALSE, 7);
skill_to_class(CLASS_DRUID, SPELL_PROTECT_FROM_FIRE, TRUE, FALSE, 7);
skill_to_class(CLASS_DRUID, SPELL_ANIMAL_SUMMONING, TRUE, FALSE, 8);
skill_to_class(CLASS_DRUID, SPELL_PROTECT_FROM_COLD, TRUE, FALSE, 8);
skill_to_class(CLASS_DRUID, SPELL_PROTECT_FROM_DRAGON, TRUE, FALSE, 8);
skill_to_class(CLASS_DRUID, SPELL_CURE_CRITIC, TRUE, FALSE, 9);
skill_to_class(CLASS_DRUID, SKILL_HEALWOUNDS, TRUE, FALSE, 10);
skill_to_class(CLASS_DRUID, SPELL_WATER_WALK, TRUE, FALSE, 10);
skill_to_class(CLASS_DRUID, SPELL_NATURES_CALTROPS, TRUE, FALSE, 11);
skill_to_class(CLASS_DRUID, SPELL_EARTHQUAKE, TRUE, FALSE, 12);
skill_to_class(CLASS_DRUID, SPELL_CONTROL_WEATHER, TRUE, FALSE, 13);
skill_to_class(CLASS_DRUID, SPELL_FOREST_WARRIOR, TRUE, FALSE, 14);
skill_to_class(CLASS_DRUID, SPELL_TONGUES, TRUE, FALSE, 15);
skill_to_class(CLASS_DRUID, SPELL_WALL_BRAMBLES, TRUE, FALSE, 16);
skill_to_class(CLASS_DRUID, SPELL_HEAL, TRUE, FALSE, 17);
skill_to_class(CLASS_DRUID, SPELL_GILLS, TRUE, FALSE, 18);
skill_to_class(CLASS_DRUID, SPELL_WINGS, TRUE, FALSE, 19);
skill_to_class(CLASS_DRUID, SKILL_CAMOUFLAGE, TRUE, FALSE, 20);
skill_to_class(CLASS_DRUID, SPELL_SANCTUARY, TRUE, FALSE, 20);
skill_to_class(CLASS_DRUID, SKILL_DODGE, TRUE, FALSE, 21);
skill_to_class(CLASS_DRUID, SPELL_TRUE_SEEING, TRUE, FALSE, 24);
skill_to_class(CLASS_DRUID, SPELL_THORNSTORM, TRUE, FALSE, 28);
skill_to_class(CLASS_DRUID, SPELL_FIRE_SERVANT, TRUE, FALSE, 30);
skill_to_class(CLASS_DRUID, SPELL_WALL_FIRE, TRUE, FALSE, 35);
skill_to_class(CLASS_DRUID, SPELL_EARTH_SERVANT, TRUE, FALSE, 40);
skill_to_class(CLASS_DRUID, SPELL_HOLD_ANIMAL, TRUE, FALSE, 45);
skill_to_class(CLASS_DRUID, SPELL_ROCK_TO_MUD, TRUE, FALSE, 50);
skill_to_class(CLASS_DRUID, SPELL_FIRESTORM, TRUE, FALSE, 55);
skill_to_class(CLASS_DRUID, SPELL_SHAPECHANGE, TRUE, FALSE, 60);
skill_to_class(CLASS_DRUID, SPELL_WOODBRITTLE, TRUE, FALSE, 65);
skill_to_class(CLASS_DRUID, SPELL_INSECT_DEATH, TRUE, FALSE, 70);
}