/*
* The unique portions of SunderMud code as well as the integration efforts
* for code from other sources is based on the efforts of:
*
* Lotherius (elfren@aros.net)
*
* This code can only be used under the terms of the DikuMud, Merc,
* and ROM licenses. The same requirements apply to the changes that
* have been made.
*
* All other copyrights remain in place and in force.
*/
/***************************************************************************
* 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. *
***************************************************************************/
#include "everything.h"
#include "magic.h"
/* Zeran - administrative staff table (useful for note to admin) */
const char *admin_table[] =
{
"Zeran",
"Lotherius",
"Eardianm",
"Cyz",
"Ashind"
""
};
/* Zeran - material table */
const struct material_data material_table [] =
{
/* { material name ,material_type, vuln_flag } */
{ "wood", MATERIAL_WOOD, VULN_WOOD },
{ "iron", MATERIAL_IRON, VULN_IRON },
{ "silver", MATERIAL_SILVER, VULN_SILVER },
{ "gold", MATERIAL_GOLD, 0 },
{ "adamantite", MATERIAL_ADAMANTITE,VULN_ADAMANTITE },
{ "cloth", MATERIAL_CLOTH, 0 },
{ "glass", MATERIAL_GLASS, 0 },
{ "food", MATERIAL_FOOD, 0 },
{ "liquid", MATERIAL_LIQUID, 0 },
{ "mithril", MATERIAL_MITHRIL, VULN_MITHRIL },
{ "steel", MATERIAL_STEEL, VULN_STEEL },
{ "paper", MATERIAL_PAPER, 0 },
{ "meat", MATERIAL_MEAT, 0 },
{ "flesh", MATERIAL_FLESH, 0 },
{ "leather", MATERIAL_LEATHER, 0 },
{ "pill", MATERIAL_PILL, 0 },
{ "vellum", MATERIAL_VELLUM, 0 },
{ "bronze", MATERIAL_BRONZE, 0 },
{ "brass", MATERIAL_BRASS, 0 },
{ "stone", MATERIAL_STONE, 0 },
{ "bone", MATERIAL_BONE, 0 },
{ "unique", MATERIAL_UNIQUE, 0 },
{ "crystal", MATERIAL_CRYSTAL, 0 },
{ "diamond", MATERIAL_DIAMOND, 0 },
{ "unknown", 0, 0 }
};
/* Zeran - condition table */
const char *cond_table [] =
{
"perfect",
"almost perfect",
"slightly worn",
"moderately worn",
"heavily worn",
"badly worn",
"barely usable",
"worthless"
};
/* Zeran - size name table */
const char *size_table [] =
{
"tiny",
"small",
"medium",
"large",
"huge",
"giant"
};
/* attack table -- not very organized :( */
const struct attack_type attack_table [] =
{
{ "hit", -1 }, /* 0 */
{ "slice", DAM_SLASH },
{ "stab", DAM_PIERCE },
{ "slash", DAM_SLASH },
{ "whip", DAM_SLASH },
{ "claw", DAM_SLASH }, /* 5 */
{ "blast", DAM_BASH },
{ "pound", DAM_BASH },
{ "crush", DAM_BASH },
{ "grep", DAM_SLASH },
{ "bite", DAM_PIERCE }, /* 10 */
{ "pierce", DAM_PIERCE },
{ "suction", DAM_BASH },
{ "beating", DAM_BASH },
{ "digestion",DAM_ACID },
{ "charge", DAM_BASH }, /* 15 */
{ "slap", DAM_BASH },
{ "punch", DAM_BASH },
{ "wrath", DAM_ENERGY },
{ "magic", DAM_ENERGY },
{ "divine power", DAM_HOLY }, /* 20 */
{ "cleave", DAM_SLASH },
{ "scratch", DAM_PIERCE },
{ "peck", DAM_PIERCE },
{ "peck", DAM_BASH },
{ "chop", DAM_SLASH }, /* 25 */
{ "sting", DAM_PIERCE },
{ "smash", DAM_BASH },
{ "shocking bite",DAM_LIGHTNING },
{ "flaming bite", DAM_FIRE },
{ "freezing bite", DAM_COLD }, /* 30 */
{ "acidic bite", DAM_ACID },
{ "chomp", DAM_PIERCE },
{ "left wing", DAM_SLASH }, /*start of special race attacks*/
{ "right wing", DAM_SLASH },
{ "hooves", DAM_BASH }, /* 35 */
{ "horns", DAM_PIERCE },
{ "flaming aura", DAM_FIRE }
};
/* race table */
const struct race_type race_table [] =
{
/*
{
name, pc_race?,
act bits, aff_by bits, off bits,
imm, res, vuln,
form, parts
},
*/
/* 1 */
{ "unique", FALSE, 0, 0, 0, 0, 0, 0, 0, 0 },
/* 2 */
{
"human", TRUE,
0, 0, 0,
0, 0, 0,
A|H|M|V, A|B|C|D|E|F|G|H|I|J|K
},
/* 3 */
{
"azer", TRUE,
0, 0, 0,
0, RES_FIRE, VULN_COLD,
A|H|M|V, A|B|C|D|E|F|G|H|I|J|K|L
},
/* 4 */
{
"centaur", TRUE,
0, 0, OFF_FAST,
0, RES_BASH, VULN_MENTAL,
A|H|M|V, A|B|C|D|E|F|G|H|I|J|K|Z
},
/* 5 */
{
"satyr", TRUE,
0, AFF_INFRARED|AFF_DETECT_INVIS|AFF_DARK_VISION, 0,
0, RES_CHARM|RES_POISON, VULN_IRON,
A|H|M|V, A|B|C|D|E|F|G|H|I|J|K|W
},
/* 6 */
{
"gargoyle", TRUE,
0, AFF_FLYING|AFF_DETECT_EVIL, 0,
0, RES_HOLY, VULN_SILVER,
A|H|M|V, A|B|C|D|E|F|G|H|I|J|K|P
},
/* 7 */
{
"elf", TRUE,
0, AFF_INFRARED, 0,
0, RES_CHARM, VULN_IRON,
A|H|M|V, A|B|C|D|E|F|G|H|I|J|K
},
/* 8 */
{
"dwarf", TRUE,
0, AFF_INFRARED, 0,
0, RES_MAGIC|RES_POISON|RES_DISEASE, VULN_DROWNING,
A|H|M|V, A|B|C|D|E|F|G|H|I|J|K
},
/* 9 */
{
"giant", TRUE,
0, 0, 0,
0, RES_FIRE|RES_COLD, VULN_MENTAL|VULN_LIGHTNING,
A|H|M|V, A|B|C|D|E|F|G|H|I|J|K
},
/* 10 */
{
"bat", FALSE,
0, AFF_FLYING|AFF_DARK_VISION, OFF_DODGE|OFF_FAST,
0, 0, VULN_LIGHT,
A|G|W, A|C|D|E|F|H|J|K|P
},
/* 11 */
{
"bear", FALSE,
0, 0, OFF_CRUSH|OFF_DISARM|OFF_BERSERK,
0, RES_BASH|RES_COLD, 0,
A|G|V, A|B|C|D|E|F|H|J|K|U|V
},
/* 12 */
{
"cat", FALSE,
0, AFF_DARK_VISION, OFF_FAST|OFF_DODGE,
0, 0, 0,
A|G|V, A|C|D|E|F|H|J|K|Q|U|V
},
/* 13 */
{
"centipede", FALSE,
0, AFF_DARK_VISION, 0,
0, RES_PIERCE|RES_COLD, VULN_BASH
},
/* 14 */
{
"dog", FALSE,
0, 0, OFF_FAST,
0, 0, 0,
A|G|V, A|C|D|E|F|H|J|K|U|V
},
/* 15 */
{
"doll", FALSE,
0, 0, 0,
IMM_MAGIC, RES_BASH|RES_LIGHT,
VULN_SLASH|VULN_FIRE|VULN_ACID|VULN_LIGHTNING|VULN_ENERGY,
E|J|M|cc, A|B|C|G|H|K
},
/* 16 */
{
"fido", FALSE,
0, 0, OFF_DODGE|ASSIST_RACE,
0, 0, VULN_MAGIC,
B|G|V, A|C|D|E|F|H|J|K|Q|V
},
/* 17 */
{
"fox", FALSE,
0, AFF_DARK_VISION, OFF_FAST|OFF_DODGE,
0, 0, 0,
A|G|V, A|C|D|E|F|H|J|K|Q|V
},
/* 18 */
{
"goblin", FALSE,
0, AFF_INFRARED, 0,
0, RES_DISEASE, VULN_MAGIC,
A|H|M|V, A|B|C|D|E|F|G|H|I|J|K
},
/* 19 */
{
"hobgoblin", FALSE,
0, AFF_INFRARED, 0,
0, RES_DISEASE|RES_POISON, 0
},
/* 20 */
{
"kobold", FALSE,
0, AFF_INFRARED, 0,
0, RES_POISON, VULN_MAGIC,
A|B|H|M|V, A|B|C|D|E|F|G|H|I|J|K|Q
},
/* 21 */
{
"lizard", FALSE,
0, 0, 0,
0, RES_POISON, VULN_COLD,
A|G|X|cc, A|C|D|E|F|H|K|Q|V
},
/* 22 */
{
"modron", FALSE,
0, AFF_INFRARED, ASSIST_RACE|ASSIST_ALIGN,
IMM_CHARM|IMM_DISEASE|IMM_MENTAL|IMM_HOLY|IMM_NEGATIVE,
RES_FIRE|RES_COLD|RES_ACID, 0,
H, A|B|C|G|H|J|K
},
/* 23 */
{
"orc", FALSE,
0, AFF_INFRARED, 0,
0, RES_DISEASE, VULN_LIGHT,
A|H|M|V, A|B|C|D|E|F|G|H|I|J|K
},
/* 24 */
{
"pig", FALSE,
0, 0, 0,
0, 0, 0,
A|G|V, A|C|D|E|F|H|J|K
},
/* 25 */
{
"rabbit", FALSE,
0, 0, OFF_DODGE|OFF_FAST,
0, 0, 0,
A|G|V, A|C|D|E|F|H|J|K
},
/* 26 */
{
"school monster", FALSE,
ACT_NOALIGN, 0, 0,
IMM_CHARM|IMM_SUMMON, 0, VULN_MAGIC,
A|M|V, A|B|C|D|E|F|H|J|K|Q|U
},
/* 27 */
{
"snake", FALSE,
0, 0, 0,
0, RES_POISON, VULN_COLD,
A|G|R|X|Y|cc, A|D|E|F|K|L|Q|V|X
},
/* 28 */
{
"song bird", FALSE,
0, AFF_FLYING, OFF_FAST|OFF_DODGE,
0, 0, 0,
A|G|W, A|C|D|E|F|H|K|P
},
/* 29 */
{
"troll", FALSE,
0, AFF_REGENERATION|AFF_INFRARED|AFF_DETECT_HIDDEN,
OFF_BERSERK,
0, RES_CHARM|RES_BASH, VULN_FIRE|VULN_ACID,
B|M|V, A|B|C|D|E|F|G|H|I|J|K|U|V
},
/* 30 */
{
"water fowl", FALSE,
0, AFF_SWIM|AFF_FLYING, 0,
0, RES_DROWNING, 0,
A|G|W, A|C|D|E|F|H|K|P
},
/* 31 */
{
"wolf", FALSE,
0, AFF_DARK_VISION, OFF_FAST|OFF_DODGE,
0, 0, 0,
A|G|V, A|C|D|E|F|J|K|Q|V
},
/* 32 */
{
"wyvern", FALSE,
0, AFF_FLYING|AFF_DETECT_INVIS|AFF_DETECT_HIDDEN,
OFF_BASH|OFF_FAST|OFF_DODGE,
IMM_POISON, 0, VULN_LIGHT,
B|Z|cc, A|C|D|E|F|H|J|K|Q|V|X
},
/* 33 */
{
"undead", FALSE,
ACT_UNDEAD, AFF_CURSE|AFF_PROTECTG, OFF_FADE,
IMM_CHARM|IMM_POISON|IMM_MENTAL|IMM_DISEASE|IMM_DROWNING, 0,
VULN_FIRE|VULN_HOLY,
D|I, A|B|C|G|H|I
},
/* 34 */
{
"demon", FALSE,
0, AFF_PROTECTG|AFF_DARK_VISION|AFF_REGENERATION,
OFF_BACKSTAB|OFF_DODGE|OFF_TAIL|ASSIST_RACE,
IMM_DISEASE, RES_CHARM, VULN_HOLY|VULN_MITHRIL,
B|H|M, A|B|C|D|E|F|G|H|I|J|K|L|Q|U|V|W
},
/* 35 */
{
"avatar", FALSE,
0, AFF_PROTECTE|AFF_SANCTUARY,
OFF_PARRY|ASSIST_ALIGN|ASSIST_RACE,
IMM_HOLY, RES_DISEASE|RES_CHARM, VULN_NEGATIVE,
C|H|M, A|B|C|D|E|F|G|H|I|J|K|P
},
{
NULL, 0, 0, 0, 0, 0, 0
}
};
/* for a balanced race, all bonuses and penalties should add to 0 */
const struct pc_race_type pc_race_table [] =
{
{ "null race", "", 0, { 100, 100, 100, 100 },
{ "" },0,0, { 13, 13, 13, 13, 13 }, { 18, 18, 18, 18, 18 }, 0 },
/*
{
"race name", short name, points, { class multipliers },
{ bonus skills }, recall, healer,
{ base stats }, { max stats }, size
},
*/
{
"human", "Human", 0, { 100,100,100,100,100,100,100},
{ "" }, 2093, 2096,
{ 0, 0, 0, 0, 0 }, { 20, 20, 20, 20, 20 }, SIZE_MEDIUM
},
{
"azer", "Azer ", 15, {110,160,160,110,130,130,110},
{ "meditation", "fast healing"}, 2093, 2096,
{ 2, 0, -2, -2, 2}, {22, 20, 18, 18, 22} , SIZE_MEDIUM
},
{
"centaur", "Ctaur", 15, {150,140,140,100,140,140,100 },
{ "bash", "dodge" }, 2093, 2096,
{ 2, 0, 0, -4, 2}, { 22, 20, 20, 16, 22 }, SIZE_LARGE
},
{
"satyr", "Satyr", 15, { 150,150,100,150,150,150,150 },
{ "sneak", "hide", "beguiling" }, 2093, 2096,
{ 0, -3, -1, 4, 0}, { 20, 17, 19, 24, 20}, SIZE_MEDIUM
},
{
"gargoyle", "Grgyl", 10, { 140, 100, 170, 120,120,120,135 },
{ "meditation", "benedictions" }, 2093, 2096,
{ 1, -2, 4, -3, 0 }, { 21, 18, 24, 17, 20 }, SIZE_LARGE
},
{
"elf", " Elf ", 5, { 100,125,100,120,110,110,95 },
{ "sneak", "hide" }, 2093, 2096,
{ -1, 1, 0, 2, -2 }, { 16, 20, 18, 21, 15 },SIZE_MEDIUM
},
{
"dwarf", "Dwarf", 8, { 150, 100, 125, 100,120,120,115 },
{ "berserk" }, 2093, 2096,
{ 1, -1, 1, -3, 2 }, { 20, 16, 19, 14, 21 },SIZE_MEDIUM
},
{
"giant", "Giant", 6, { 200, 150, 150, 100,200,200,175 },
{ "bash", "fast healing" }, 2093, 2096,
{ 3, -2, 0, -2, 1 }, { 22, 15, 18, 15, 20 }, SIZE_HUGE
}
};
/*
class list is as follows:
mage: Traditional Magic-User
avenger: Priests of Aecindo & Lukhan
warrior: Traditional Warrior
thief: Traditional Thief
chaosmage: Mages who went a bit too far
monk: A warrior who fights with wit & skin
defiler: Priests of Thuahamin & Roqmin
*/
/*
* Class table.
*/
const struct class_type class_table [MAX_CLASS] =
{
{
"mage", "Mag", STAT_INT, OBJ_VNUM_SCHOOL_DAGGER,
{ 1, 1 }, 65, 18, 6, 6, 8, TRUE
},
/* replace cleric with good cleric (avenger) */
{
"avenger", "Ave", STAT_WIS, OBJ_VNUM_SCHOOL_MACE,
{ 1, 1 }, 65, 18, 2, 7, 10, TRUE
},
{
"thief", "Thi", STAT_DEX, OBJ_VNUM_SCHOOL_DAGGER,
{ 1, 1 }, 65, 18, -4, 8, 13, FALSE
},
{
"warrior", "War", STAT_STR, OBJ_VNUM_SCHOOL_SWORD,
{ 1, 1 }, 65, 17, -11, 11, 15, FALSE
},
{
"chaosmage", "Cha", STAT_INT, OBJ_VNUM_SCHOOL_DAGGER,
{ 1, 1 }, 65, 19, 7, 6, 8, TRUE
},
{
"monk", "Mon", STAT_CON, OBJ_VNUM_SCHOOL_SWORD,
{ 1, 1 }, 65, 18, 3, 6, 9, TRUE
},
{
"defiler", "Def", STAT_WIS, OBJ_VNUM_SCHOOL_MACE,
{ 1, 1 }, 65, 18, 2, 7, 10, TRUE
}
};
/*
* Titles.
*/
char * const title_table [MAX_CLASS][MAX_LEVEL+1][2] =
{
{
{ "Man", "Woman" },
{ "Apprentice of Magic", "Apprentice of Magic" },
{ "Spell Student", "Spell Student" },
{ "Scholar of Magic", "Scholar of Magic" },
{ "Delver in Spells", "Delveress in Spells" },
{ "Medium of Magic", "Medium of Magic" },
{ "Scribe of Magic", "Scribess of Magic" },
{ "Seer", "Seeress" },
{ "Sage", "Sage" },
{ "Illusionist", "Illusionist" },
{ "Abjurer", "Abjuress" },
{ "Invoker", "Invoker" },
{ "Enchanter", "Enchantress" },
{ "Conjurer", "Conjuress" },
{ "Magician", "Witch" },
{ "Creator", "Creator" },
{ "Savant", "Savant" },
{ "Magus", "Craftess" },
{ "Wizard", "Wizard" },
{ "Warlock", "War Witch" },
{ "Sorcerer", "Sorceress" },
{ "Elder Sorcerer", "Elder Sorceress" },
{ "Grand Sorcerer", "Grand Sorceress" },
{ "Great Sorcerer", "Great Sorceress" },
{ "Golem Maker", "Golem Maker" },
{ "Greater Golem Maker", "Greater Golem Maker" },
{ "Maker of Stones", "Maker of Stones", },
{ "Maker of Potions", "Maker of Potions", },
{ "Maker of Scrolls", "Maker of Scrolls", },
{ "Maker of Wands", "Maker of Wands", },
{ "Maker of Staves", "Maker of Staves", },
{ "Demon Summoner", "Demon Summoner" },
{ "Greater Demon Summoner", "Greater Demon Summoner" },
{ "Dragon Charmer", "Dragon Charmer" },
{ "Greater Dragon Charmer", "Greater Dragon Charmer" },
{ "Master of all Magic", "Master of all Magic" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Mage Hero", "Mage Heroine" },
{ "Avatar of Magic", "Avatar of Magic" },
{ "Angel of Magic", "Angel of Magic" },
{ "Demigod of Magic", "Demigoddess of Magic" },
{ "Immortal of Magic", "Immortal of Magic" },
{ "God of Magic", "Goddess of Magic" },
{ "Deity of Magic", "Deity of Magic" },
{ "Supremity of Magic", "Supremity of Magic" },
{ "Creator", "Creator" },
{ "Implementor", "Implementress" }
},
{
{ "Man", "Woman" },
{ "Believer", "Believer" },
{ "Attendant", "Attendant" },
{ "Acolyte", "Acolyte" },
{ "Novice", "Novice" },
{ "Missionary", "Missionary" },
{ "Adept", "Adept" },
{ "Deacon", "Deaconess" },
{ "Vicar", "Vicaress" },
{ "Priest", "Priestess" },
{ "Minister", "Lady Minister" },
{ "Canon", "Canon" },
{ "Levite", "Levitess" },
{ "Curate", "Curess" },
{ "Monk", "Nun" },
{ "Healer", "Healess" },
{ "Chaplain", "Chaplain" },
{ "Expositor", "Expositress" },
{ "Bishop", "Bishop" },
{ "Arch Bishop", "Arch Lady of the Church" },
{ "Patriarch", "Matriarch" },
{ "Elder Patriarch", "Elder Matriarch" },
{ "Grand Patriarch", "Grand Matriarch" },
{ "Great Patriarch", "Great Matriarch" },
{ "Demon Killer", "Demon Killer" },
{ "Greater Demon Killer", "Greater Demon Killer" },
{ "Cardinal of the Sea", "Cardinal of the Sea" },
{ "Cardinal of the Earth", "Cardinal of the Earth" },
{ "Cardinal of the Air", "Cardinal of the Air" },
{ "Cardinal of the Ether", "Cardinal of the Ether" },
{ "Cardinal of the Heavens", "Cardinal of the Heavens" },
{ "Avatar of an Immortal", "Avatar of an Immortal" },
{ "Avatar of a Deity", "Avatar of a Deity" },
{ "Avatar of a Supremity", "Avatar of a Supremity" },
{ "Avatar of an Implementor", "Avatar of an Implementor" },
{ "Master of all Divinity", "Mistress of all Divinity" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Master Cleric", "Master Cleric" },
{ "Holy Hero", "Holy Heroine" },
{ "Holy Avatar", "Holy Avatar" },
{ "Angel", "Angel" },
{ "Demigod", "Demigoddess", },
{ "Immortal", "Immortal" },
{ "God", "Goddess" },
{ "Deity", "Deity" },
{ "Supreme Master", "Supreme Mistress" },
{ "Creator", "Creator" },
{ "Implementor", "Implementress" }
},
{
{ "Man", "Woman" },
{ "Pilferer", "Pilferess" },
{ "Footpad", "Footpad" },
{ "Filcher", "Filcheress" },
{ "Pick-Pocket", "Pick-Pocket" },
{ "Sneak", "Sneak" },
{ "Pincher", "Pincheress" },
{ "Cut-Purse", "Cut-Purse" },
{ "Snatcher", "Snatcheress" },
{ "Sharper", "Sharpress" },
{ "Rogue", "Rogue" },
{ "Robber", "Robber" },
{ "Magsman", "Magswoman" },
{ "Highwayman", "Highwaywoman" },
{ "Burglar", "Burglaress" },
{ "Thief", "Thief" },
{ "Knifer", "Knifer" },
{ "Quick-Blade", "Quick-Blade" },
{ "Killer", "Murderess" },
{ "Brigand", "Brigand" },
{ "Cut-Throat", "Cut-Throat" },
{ "Spy", "Spy" },
{ "Grand Spy", "Grand Spy" },
{ "Master Spy", "Master Spy" },
{ "Assassin", "Assassin" },
{ "Greater Assassin", "Greater Assassin" },
{ "Master of Vision", "Mistress of Vision" },
{ "Master of Hearing", "Mistress of Hearing" },
{ "Master of Smell", "Mistress of Smell" },
{ "Master of Taste", "Mistress of Taste" },
{ "Master of Touch", "Mistress of Touch" },
{ "Crime Lord", "Crime Mistress" },
{ "Infamous Crime Lord", "Infamous Crime Mistress" },
{ "Greater Crime Lord", "Greater Crime Mistress" },
{ "Master Crime Lord", "Master Crime Mistress" },
{ "Godfather", "Godmother" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Master Thief", "Master Thief" },
{ "Assassin Hero", "Assassin Heroine" },
{ "Avatar of Death", "Avatar of Death", },
{ "Angel of Death", "Angel of Death" },
{ "Demigod of Assassins", "Demigoddess of Assassins" },
{ "Immortal Assasin", "Immortal Assassin" },
{ "God of Assassins", "God of Assassins", },
{ "Deity of Assassins", "Deity of Assassins" },
{ "Supreme Master", "Supreme Mistress" },
{ "Creator", "Creator" },
{ "Implementor", "Implementress" }
},
{
{ "Man", "Woman" },
{ "Swordpupil", "Swordpupil" },
{ "Recruit", "Recruit" },
{ "Sentry", "Sentress" },
{ "Fighter", "Fighter" },
{ "Soldier", "Soldier" },
{ "Warrior", "Warrior" },
{ "Veteran", "Veteran" },
{ "Swordsman", "Swordswoman" },
{ "Fencer", "Fenceress" },
{ "Combatant", "Combatess" },
{ "Hero", "Heroine" },
{ "Myrmidon", "Myrmidon" },
{ "Swashbuckler", "Swashbuckleress" },
{ "Mercenary", "Mercenaress" },
{ "Swordmaster", "Swordmistress" },
{ "Lieutenant", "Lieutenant" },
{ "Champion", "Lady Champion" },
{ "Dragoon", "Lady Dragoon" },
{ "Cavalier", "Lady Cavalier" },
{ "Knight", "Lady Knight" },
{ "Grand Knight", "Grand Knight" },
{ "Master Knight", "Master Knight" },
{ "Paladin", "Paladin" },
{ "Grand Paladin", "Grand Paladin" },
{ "Demon Slayer", "Demon Slayer" },
{ "Greater Demon Slayer", "Greater Demon Slayer" },
{ "Dragon Slayer", "Dragon Slayer" },
{ "Greater Dragon Slayer", "Greater Dragon Slayer" },
{ "Underlord", "Underlord" },
{ "Overlord", "Overlord" },
{ "Baron of Thunder", "Baroness of Thunder" },
{ "Baron of Storms", "Baroness of Storms" },
{ "Baron of Tornadoes", "Baroness of Tornadoes" },
{ "Baron of Hurricanes", "Baroness of Hurricanes" },
{ "Baron of Meteors", "Baroness of Meteors" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Master Warrior", "Master Warrior" },
{ "Knight Hero", "Knight Heroine" },
{ "Avatar of War", "Avatar of War" },
{ "Angel of War", "Angel of War" },
{ "Demigod of War", "Demigoddess of War" },
{ "Immortal Warlord", "Immortal Warlord" },
{ "God of War", "God of War" },
{ "Deity of War", "Deity of War" },
{ "Supreme Master of War", "Supreme Mistress of War" },
{ "Creator", "Creator" },
{ "Implementor", "Implementress" }
},
{
{ "Man", "Woman" },
{ "Apprentice of Magic", "Apprentice of Magic" },
{ "Spell Student", "Spell Student" },
{ "Scholar of Magic", "Scholar of Magic" },
{ "Delver in Spells", "Delveress in Spells" },
{ "Medium of Magic", "Medium of Magic" },
{ "Scribe of Magic", "Scribess of Magic" },
{ "Seer", "Seeress" },
{ "Sage", "Sage" },
{ "Illusionist", "Illusionist" },
{ "Abjurer", "Abjuress" },
{ "Invoker", "Invoker" },
{ "Enchanter", "Enchantress" },
{ "Conjurer", "Conjuress" },
{ "Magician", "Witch" },
{ "Creator", "Creator" },
{ "Savant", "Savant" },
{ "Magus", "Craftess" },
{ "Wizard", "Wizard" },
{ "Warlock", "War Witch" },
{ "Sorcerer", "Sorceress" },
{ "Elder Sorcerer", "Elder Sorceress" },
{ "Grand Sorcerer", "Grand Sorceress" },
{ "Great Sorcerer", "Great Sorceress" },
{ "Golem Maker", "Golem Maker" },
{ "Greater Golem Maker", "Greater Golem Maker" },
{ "Maker of Stones", "Maker of Stones", },
{ "Maker of Potions", "Maker of Potions", },
{ "Maker of Scrolls", "Maker of Scrolls", },
{ "Maker of Wands", "Maker of Wands", },
{ "Maker of Staves", "Maker of Staves", },
{ "Demon Summoner", "Demon Summoner" },
{ "Greater Demon Summoner", "Greater Demon Summoner" },
{ "Dragon Charmer", "Dragon Charmer" },
{ "Greater Dragon Charmer", "Greater Dragon Charmer" },
{ "Master of all Magic", "Master of all Magic" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Mage Hero", "Mage Heroine" },
{ "Avatar of Magic", "Avatar of Magic" },
{ "Angel of Magic", "Angel of Magic" },
{ "Demigod of Magic", "Demigoddess of Magic" },
{ "Immortal of Magic", "Immortal of Magic" },
{ "God of Magic", "Goddess of Magic" },
{ "Deity of Magic", "Deity of Magic" },
{ "Supremity of Magic", "Supremity of Magic" },
{ "Creator", "Creator" },
{ "Implementor", "Implementress" }
},
{
{ "Man", "Woman" },
{ "Apprentice of Magic", "Apprentice of Magic" },
{ "Spell Student", "Spell Student" },
{ "Scholar of Magic", "Scholar of Magic" },
{ "Delver in Spells", "Delveress in Spells" },
{ "Medium of Magic", "Medium of Magic" },
{ "Scribe of Magic", "Scribess of Magic" },
{ "Seer", "Seeress" },
{ "Sage", "Sage" },
{ "Illusionist", "Illusionist" },
{ "Abjurer", "Abjuress" },
{ "Invoker", "Invoker" },
{ "Enchanter", "Enchantress" },
{ "Conjurer", "Conjuress" },
{ "Magician", "Witch" },
{ "Creator", "Creator" },
{ "Savant", "Savant" },
{ "Magus", "Craftess" },
{ "Wizard", "Wizard" },
{ "Warlock", "War Witch" },
{ "Sorcerer", "Sorceress" },
{ "Elder Sorcerer", "Elder Sorceress" },
{ "Grand Sorcerer", "Grand Sorceress" },
{ "Great Sorcerer", "Great Sorceress" },
{ "Golem Maker", "Golem Maker" },
{ "Greater Golem Maker", "Greater Golem Maker" },
{ "Maker of Stones", "Maker of Stones", },
{ "Maker of Potions", "Maker of Potions", },
{ "Maker of Scrolls", "Maker of Scrolls", },
{ "Maker of Wands", "Maker of Wands", },
{ "Maker of Staves", "Maker of Staves", },
{ "Demon Summoner", "Demon Summoner" },
{ "Greater Demon Summoner", "Greater Demon Summoner" },
{ "Dragon Charmer", "Dragon Charmer" },
{ "Greater Dragon Charmer", "Greater Dragon Charmer" },
{ "Master of all Magic", "Master of all Magic" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Master Mage", "Master Mage" },
{ "Mage Hero", "Mage Heroine" },
{ "Avatar of Magic", "Avatar of Magic" },
{ "Angel of Magic", "Angel of Magic" },
{ "Demigod of Magic", "Demigoddess of Magic" },
{ "Immortal of Magic", "Immortal of Magic" },
{ "God of Magic", "Goddess of Magic" },
{ "Deity of Magic", "Deity of Magic" },
{ "Supremity of Magic", "Supremity of Magic" },
{ "Creator", "Creator" },
{ "Implementor", "Implementress" }
}
};
/*
* Attribute bonus tables.
*/
const struct str_app_type str_app [26] =
{
{ -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 */
};
const struct int_app_type int_app [26] =
{
{ 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 },
{ 85 } /* 25 */
};
const struct wis_app_type wis_app [26] =
{
{ 0 }, /* 0 */
{ 0 }, /* 1 */
{ 0 },
{ 0 }, /* 3 */
{ 0 },
{ 1 }, /* 5 */
{ 1 },
{ 1 },
{ 1 },
{ 1 },
{ 1 }, /* 10 */
{ 1 },
{ 1 },
{ 1 },
{ 1 },
{ 2 }, /* 15 */
{ 2 },
{ 2 },
{ 3 }, /* 18 */
{ 3 },
{ 3 }, /* 20 */
{ 3 },
{ 4 },
{ 4 },
{ 4 },
{ 5 } /* 25 */
};
const struct dex_app_type dex_app [26] =
{
{ 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 },
{ -120 } /* 25 */
};
const struct con_app_type con_app [26] =
{
{ -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 */
};
/*
* Liquid properties.
* Used in world.obj.
*/
const struct liq_type liq_table [LIQ_MAX] =
{
{ "water", "clear", { 0, 1, 10 } }, /* 0 */
{ "beer", "amber", { 3, 2, 5 } },
{ "wine", "rose", { 5, 2, 5 } },
{ "ale", "brown", { 2, 2, 5 } },
{ "dark ale", "dark", { 1, 2, 5 } },
{ "whisky", "golden", { 6, 1, 4 } }, /* 5 */
{ "lemonade", "pink", { 0, 1, 8 } },
{ "firebreather", "boiling", { 10, 0, 0 } },
{ "local specialty", "everclear", { 3, 3, 3 } },
{ "slime mold juice", "green", { 0, 4, -8 } },
{ "milk", "white", { 0, 3, 6 } }, /* 10 */
{ "tea", "tan", { 0, 1, 6 } },
{ "coffee", "black", { 0, 1, 6 } },
{ "blood", "red", { 0, 2, -1 } },
{ "salt water", "clear", { 0, 1, -2 } },
{ "cola", "cherry", { 0, 1, 5 } } /* 15 */
};
/*
* The skill and spell table.
* Slot numbers must never be changed as they appear in #OBJECTS sections.
* Class Rating is now unused, as is level requirements.
* Level req's are in savefiles, rating is totally unused.
*/
#define SLOT(n) n
struct skill_type skill_table [MAX_SKILL] =
{
/*
* Magic spells.
*/
{
"reserved", { 99, 99, 99, 99, 99, 99 }, { 99, 99, 99, 99, 99, 99},
0, TAR_IGNORE, POS_STANDING,
NULL, SLOT( 0), 0, 0,
"", "", ""
},
{
"armor", { 93,1,93,93,93,93 }, { 1, 1,0,0,1,1},
spell_armor, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT( 1), 5, 12,
"", "You feel less protected.", ""
},
{
"teleport", { 93,10,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_teleport, TAR_CHAR_SELF, POS_FIGHTING,
NULL, SLOT( 2), 35, 12,
"", "!Teleport!", ""
},
{
"bless", { 93,5,93,93,93,93 }, { 1, 1,0,0,1,1},
spell_bless, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT( 3), 5, 12,
"", "You feel less righteous.", ""
},
{
"blindness", { 93,8,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_blindness, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
&gsn_blindness, SLOT( 4), 5, 12,
"", "You can see again.", ""
},
{
"burning hands", { 5,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_burning_hands, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT( 5), 15, 12,
"burning hands", "!Burning Hands!", ""
},
{
"call lightning", { 93,18,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_call_lightning, TAR_IGNORE, POS_FIGHTING,
NULL, SLOT( 6), 15, 12,
"lightning bolt", "!Call Lightning!", ""
},
{
"charm person", { 15,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_charm_person, TAR_CHAR_OFFENSIVE, POS_STANDING,
&gsn_charm_person, SLOT( 7), 5, 12,
"", "You feel more self-confident.", ""
},
{
"chill touch", { 93,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_chill_touch, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT( 8), 15, 12,
"chilling touch", "You feel less cold.", ""
},
{
"colour spray", { 10,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_colour_spray, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(10), 15, 12,
"colour spray", "!Colour Spray!", ""
},
{
"control weather", { 93,19,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_control_weather, TAR_IGNORE, POS_STANDING,
NULL, SLOT(11), 25, 12,
"", "!Control Weather!", ""
},
{
"create food", { 6,4,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_create_food, TAR_IGNORE, POS_STANDING,
NULL, SLOT(12), 5, 12,
"", "!Create Food!", ""
},
{
"create water", { 93,3,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_create_water, TAR_OBJ_INV, POS_STANDING,
NULL, SLOT(13), 5, 12,
"", "!Create Water!", ""
},
{
"cure blindness", {93,5,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_cure_blindness, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
NULL, SLOT(14), 5, 12,
"", "!Cure Blindness!", ""
},
{
"cure critical", { 93,13,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_cure_critical, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
NULL, SLOT(15), 20, 12,
"", "!Cure Critical!", ""
},
{
"cure light", { 93,1,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_cure_light, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
NULL, SLOT(16), 10, 12,
"", "!Cure Light!", ""
},
{
"curse", { 93,16,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_curse, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
&gsn_curse, SLOT(17), 20, 12,
"curse", "The curse wears off.", ""
},
{
"detect evil", { 93,4,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_detect_evil, TAR_CHAR_SELF, POS_STANDING,
NULL, SLOT(18), 5, 12,
"", "The red in your vision disappears.", ""
},
{
"detect invis", {5,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_detect_invis, TAR_CHAR_SELF, POS_STANDING,
NULL, SLOT(19), 5, 12,
"", "You no longer see invisible objects.", ""
},
{
"detect magic", { 4,12,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_detect_magic, TAR_CHAR_SELF, POS_STANDING,
NULL, SLOT(20), 5, 12,
"", "The detect magic wears off.", ""
},
{
"detect poison", { 93,10,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_detect_poison, TAR_OBJ_INV, POS_STANDING,
NULL, SLOT(21), 5, 12,
"", "!Detect Poison!", ""
},
{
"dispel evil", { 93,15,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_dispel_evil, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(22), 15, 12,
"dispel evil", "!Dispel Evil!", ""
},
{
"earthquake", { 93,11,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_earthquake, TAR_IGNORE, POS_FIGHTING,
NULL, SLOT(23), 15, 12,
"earthquake", "!Earthquake!", ""
},
{
"enchant weapon", { 16,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_enchant_weapon, TAR_OBJ_INV, POS_STANDING,
NULL, SLOT(24), 100, 24,
"", "!Enchant Weapon!", ""
},
{
"energy drain", { 93,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_energy_drain, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(25), 35, 12,
"energy drain", "!Energy Drain!", ""
},
{
"fireball", { 19,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_fireball, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(26), 15, 12,
"fireball", "!Fireball!", ""
},
{
"harm", {93,25,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_harm, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(27), 35, 12,
"harm spell", "!Harm!", ""
},
{
"heal", {93,39,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_heal, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
NULL, SLOT(28), 50, 12,
"", "!Heal!", ""
},
{
"invis", {7,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_invis, TAR_CHAR_DEFENSIVE, POS_STANDING,
&gsn_invis, SLOT(29), 5, 12,
"", "You are no longer invisible.", ""
},
{
"lightning bolt", { 10,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_lightning_bolt, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(30), 15, 12,
"lightning bolt", "!Lightning Bolt!", ""
},
{
"locate object", { 11,33,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_locate_object, TAR_IGNORE, POS_STANDING,
NULL, SLOT(31), 20, 4,
"", "!Locate Object!", ""
},
{
"magic missile", { 1,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_magic_missile, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(32), 15, 12,
"magic missile", "!Magic Missile!", ""
},
{
"poison", { 14,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_poison, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
&gsn_poison, SLOT(33), 10, 12,
"poison", "You feel less sick.", ""
},
{
"protection evil", { 93,9,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_protection_evil, TAR_CHAR_SELF, POS_STANDING,
NULL, SLOT(34), 5, 12,
"", "You feel less protected from evil.", ""
},
{
"remove curse", { 93,18,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_remove_curse, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(35), 5, 12,
"", "!Remove Curse!", ""
},
{
"sanctuary", { 93,30,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_sanctuary, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(36), 75, 12,
"", "The white aura around your body fades.", "alabaster"
},
{
"sleep", { 11,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_sleep, TAR_CHAR_OFFENSIVE, POS_STANDING,
&gsn_sleep, SLOT(38), 15, 12,
"", "You feel less tired.", ""
},
{
"giant strength", {9,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_giant_strength, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(39), 20, 12,
"", "You feel weaker.", ""
},
{
"summon", { 21,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_summon, TAR_IGNORE, POS_STANDING,
NULL, SLOT(40), 50, 12,
"", "!Summon!", ""
},
{
"ventriloquate", { 2,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_ventriloquate, TAR_IGNORE, POS_STANDING,
NULL, SLOT(41), 5, 12,
"", "!Ventriloquate!", ""
},
{
"word of recall", { 93,12,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_word_of_recall, TAR_CHAR_SELF, POS_RESTING,
NULL, SLOT(42), 5, 12,
"", "!Word of Recall!", ""
},
{
"cure poison", { 93,14,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_cure_poison, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(43), 5, 12,
"", "!Cure Poison!", ""
},
{
"detect hidden", { 9,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_detect_hidden, TAR_CHAR_SELF, POS_STANDING,
NULL, SLOT(44), 5, 12,
"", "You feel less aware of your suroundings.", ""
},
{
"identify", {12,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_identify, TAR_OBJ_INV, POS_STANDING,
NULL, SLOT(52), 12, 24,
"", "!Identify!", ""
},
{
"shocking grasp", { 93,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_shocking_grasp, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(53), 15, 12,
"shocking grasp", "!Shocking Grasp!", ""
},
{
"fly", { 8,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_fly, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(56), 10, 18,
"", "You slowly float to the ground.", ""
},
{
"continual light", {5,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_continual_light, TAR_IGNORE, POS_STANDING,
NULL, SLOT(57), 7, 12,
"", "!Continual Light!", ""
},
{
"know alignment", { 93,18,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_know_alignment, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
NULL, SLOT(58), 9, 12,
"", "!Know Alignment!", ""
},
{
"dispel magic", { 12,20,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_dispel_magic, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(59), 15, 12,
"", "!Dispel Magic!", ""
},
{
"cure serious", { 93,9,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_cure_serious, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
NULL, SLOT(61), 15, 12,
"", "!Cure Serious!", ""
},
{
"cause light", { 93,3,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_cause_light, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(62), 15, 12,
"spell", "!Cause Light!", ""
},
{
"cause critical", { 93,14,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_cause_critical, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(63), 20, 12,
"spell", "!Cause Critical!", ""
},
{
"cause serious", { 93,7,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_cause_serious, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(64), 17, 12,
"spell", "!Cause Serious!", ""
},
{
"flamestrike", {93,16,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_flamestrike, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(65), 20, 12,
"flamestrike", "!Flamestrike!", ""
},
{
"stone skin", { 23,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_stone_skin, TAR_CHAR_SELF, POS_STANDING,
NULL, SLOT(66), 12, 18,
"", "Your skin feels soft again.", ""
},
{
"shield", { 17,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_shield, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(67), 12, 18,
"", "Your force shield shimmers then fades away.", ""
},
{
"weaken", { 93,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_weaken, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(68), 20, 12,
"spell", "You feel stronger.", ""
},
{
"mass invis", { 38,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_mass_invis, TAR_IGNORE, POS_STANDING,
&gsn_mass_invis, SLOT(69), 20, 24,
"", "!Mass Invis!", ""
},
{
"acid blast", { 25,93,93,93,93,93 }, { 1,1,0,0,1,1},
spell_acid_blast, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(70), 20, 12,
"acid blast", "!Acid Blast!", ""
},
{
"faerie fire", { 4,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_faerie_fire, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(72), 5, 12,
"faerie fire", "The pink aura around you fades away.", ""
},
{
"faerie fog", { 9,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_faerie_fog, TAR_IGNORE, POS_STANDING,
NULL, SLOT(73), 12, 12,
"faerie fog", "!Faerie Fog!", ""
},
{
"pass door", { 23,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_pass_door, TAR_CHAR_SELF, POS_STANDING,
NULL, SLOT(74), 20, 12,
"", "You feel solid again.", ""
},
{
"infravision", {93,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_infravision, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(77), 5, 18,
"", "You no longer see in the dark.", ""
},
{
"create spring", { 93,17,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_create_spring, TAR_IGNORE, POS_STANDING,
NULL, SLOT(80), 20, 12,
"", "!Create Spring!", ""
},
{
"refresh", { 93,6,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_refresh, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(81), 12, 18,
"refresh", "!Refresh!", ""
},
{
"change sex", { 93,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_change_sex, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
NULL, SLOT(82), 15, 12,
"", "Your body feels familiar again.", ""
},
{
"gate", {23,33,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_gate, TAR_IGNORE, POS_FIGHTING,
NULL, SLOT(83), 80, 12,
"", "!Gate!", "obsidian"
},
/*
* Dragon breath
*/
{
"acid breath", { 44,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_acid_breath, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(200), 0, 4,
"blast of acid", "!Acid Breath!", ""
},
{
"fire breath", { 41,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_fire_breath, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(201), 0, 4,
"blast of flame", "!Fire Breath!", ""
},
{
"frost breath", { 46,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_frost_breath, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(202), 0, 4,
"blast of frost", "!Frost Breath!", ""
},
{
"gas breath", { 45,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_gas_breath, TAR_IGNORE, POS_FIGHTING,
NULL, SLOT(203), 0, 4,
"blast of gas", "!Gas Breath!", ""
},
{
"lightning breath", { 47,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_lightning_breath, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(204), 0, 4,
"blast of lightning", "!Lightning Breath!", ""
},
{
"chaos", {93,93,93,93,93,93,93}, {1,1,1,1,1,1,1},
spell_chaos, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(205), 30, 16,
"chaos", "!Chaos!", ""
},
{
"create buffet", { 93,13,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_create_buffet, TAR_IGNORE, POS_STANDING,
NULL, SLOT(230), 50, 12,
"", "!Create Buffet!", ""
},
{
"general purpose", { 93,93,93,93,93,93 }, { 1, 1, 1, 1, 1, 1 },
spell_general_purpose, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(401), 0, 12,
"general purpose ammo", "!General Purpose Ammo!", ""
},
{
"high explosive", { 93,93,93,93,93,93 }, { 0, 0, 0, 0,0,0 },
spell_high_explosive, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(402), 0, 12,
"high explosive ammo", "!High Explosive Ammo!", ""
},
{
"mind meld", {93,93,93,93,93,93 }, {2,1,1,1,1,1},
spell_mind_meld, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(403), 35, 24,
"mental blast", "Your feel your head clearing.", ""
},
{
"animate dead", {27,93,93,93,93,93 }, { 2, 1, 0,0,1,1},
spell_animate, TAR_IGNORE, POS_STANDING,
NULL, SLOT(404), 100, 15,
"", "!Animate Dead!", ""
},
{
"soul blade", {93,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_soul_blade, TAR_IGNORE, POS_STANDING,
NULL, SLOT(405), 35, 15,
"", "!Soul Blade!", ""
},
{
"minor creation", {6,93,93,93,93,93}, {1,1,0,0,1,1},
spell_minor_creation, TAR_IGNORE, POS_STANDING,
NULL, SLOT(406), 15, 20,
"", "!Minor Creation!", ""
},
{
"psi twister", {93,93,93,93,93,93}, {1,1,0,0,1,1},
spell_psi_twister, TAR_IGNORE, POS_FIGHTING,
NULL, SLOT(407), 25, 20,
"psi twister", "!Psi Twister!", ""
},
{
"exorcism", { 93,26,93,93,93,93 }, {1,1,0,0,1,1},
spell_exorcism, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(408), 20, 12,
"angels", "!Exorcism!", ""
},
{
"youth", {53,49,53,53,53,53}, {1,1,0,0,1,1},
spell_youth, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(409), 200, 24,
"", "!YOUTH!", ""
},
{
"age", {53,49,53,53,53,53}, {1,1,0,0,1,1},
spell_age, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(410), 200, 12,
"", "!AGE!", ""
},
{
"chain lightning", {29,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_chain_lightning, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(500), 25, 12,
"lightning", "!Chain Lightning!", ""
},
{
"cure disease", { 93,11,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_cure_disease, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(501), 20, 12,
"", "!Cure Disease!", ""
},
{
"haste", {18,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_haste, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
NULL, SLOT(502), 30, 12,
"", "You feel yourself slow down.", ""
},
{
"plague", { 93,25,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_plague, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
&gsn_plague, SLOT(503), 20, 12,
"sickness", "Your sores vanish.", ""
},
{
"frenzy", { 34,29,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_frenzy, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(504), 30, 24,
"", "Your rage ebbs.", ""
},
{
"demonfire", { 93,26,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_demonfire, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(505), 20, 12,
"torments", "!Demonfire!", ""
},
{
"holy word", {93,33,93,93,93,93 }, { 2, 2, 2, 2,1,1},
spell_holy_word, TAR_IGNORE, POS_FIGHTING,
NULL, SLOT(506), 200, 24,
"divine wrath", "!Holy Word!", ""
},
{
"cancellation", { 13,15,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_cancellation, TAR_CHAR_DEFENSIVE, POS_FIGHTING,
NULL, SLOT(507), 20, 12,
"", "!cancellation!", ""
},
{
"mass healing", { 93,45,93,93,93,93 }, { 2, 2, 0, 0,1,1},
spell_mass_healing, TAR_IGNORE, POS_STANDING,
NULL, SLOT(508), 100, 36,
"", "!Mass Healing!", ""
},
{
"calm", { 93,16,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_calm, TAR_IGNORE, POS_FIGHTING,
NULL, SLOT(509), 30, 12,
"", "You have lost your peace of mind.", ""
},
{
"enchant armor", { 15,27,93,93,93,93 }, { 1, 1, 0,0,1,1 },
spell_enchant_armor, TAR_OBJ_INV, POS_STANDING,
NULL, SLOT(510), 100, 24,
"", "!Enchant Armor!", ""
},
{
"brand", { 38,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_brand, TAR_OBJ_INV, POS_STANDING,
NULL, SLOT(511), 100, 8,
"", "!brand!", ""
},
{
"negate alignment", {93,30,93,93,93,93 }, {1,1,0,0,1,1},
spell_negate_alignment, TAR_OBJ_INV, POS_STANDING,
NULL, SLOT(512), 50, 12,
"", "!negate alignment", ""
},
{
"mask self", { 16,53,53,53,53,53 }, {1,1,0,0,1,1},
spell_mask_self, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(513), 100, 8,
"", "You return to normal form.", ""
},
{
"absorb magic", { 24,53,53,53,53,53 }, {1,1,0,0,1,1},
spell_absorb_magic, TAR_CHAR_SELF, POS_STANDING,
NULL, SLOT(514), 50, 4,
"", "You can no longer absorb magic.", ""
},
{
"psychic anchor", {53,19,53,53,53,53 }, {1,1,0,0,1,1},
spell_psychic_anchor, TAR_IGNORE, POS_STANDING,
NULL, SLOT(515), 30, 4,
"", "!psychic anchor!", ""
},
{
"fear", {14,53,53,53,53,53 }, {1,1,0,0,1,1},
spell_fear, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(516), 20, 8,
"", "You no longer feel so scared.", ""
},
{
"protection good", { 93,9,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_protection_good, TAR_CHAR_SELF, POS_STANDING,
NULL, SLOT(517), 5, 12,
"", "You feel less protected from good.", ""
},
{
"detect good", { 93,4,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_detect_good, TAR_CHAR_SELF, POS_STANDING,
NULL, SLOT(518), 5, 12,
"", "The green in your vision disappears.", ""
},
{
"dispel good", { 93,16,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_dispel_good, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(519), 15, 12,
"dispel good", "!Dispel Good!", ""
},
{
"regeneration", { 93,14,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_regeneration, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(520), 30, 8,
"", "You are no longer regenerating.", ""
},
{
"fire shield", {93,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_fire_shield, TAR_CHAR_SELF, POS_STANDING,
NULL, SLOT(521), 10, 8,
"fire shield", "Your fire shield fades away.", ""
},
{
"portal", { 45,93,93,93,93,93 }, { 1, 1, 0, 0, 1, 1},
spell_portal, TAR_IGNORE, POS_STANDING,
NULL, SLOT(522), 100, 16,
"portal", "!portal!", ""
},
{
"remove invis", { 28,93,93,93,93,93 }, { 1, 1, 0,0,1,1},
spell_remove_invis, TAR_OBJ_INV, POS_STANDING,
NULL, SLOT(523), 40, 12,
"", "!Remove Invis!", ""
},
{
"vocalize", { 21,53,53,53,53,53 }, { 1, 1, 0,0,1, 1},
spell_vocalize, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(524), 50, 12,
"", "You must speak to cast spells again.", ""
},
{
"entropy", { 93,93,93,93,93,93 }, {1, 1, 1, 1, 1, 1},
spell_entropy, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(525), 30, 18,
"entropy", "!Entropy!", ""
},
{
"remove fear", { 53,6,93,93,93,93 }, { 1, 1,0,0,1, 1},
spell_remove_fear, TAR_CHAR_DEFENSIVE, POS_STANDING,
NULL, SLOT(526), 5, 12,
"", "!Remove Fear!", ""
},
{
"mute", { 23,53,53,53,53,53 }, { 1, 1,0,0,1, 1},
spell_mute, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
NULL, SLOT(527), 50, 12,
"", "You can speak again.", ""
},
/* classes are: mage Avenger thief warrior chaosmage monk Defiler */
/* combat and weapons skills */
{
"axe", {93,93,93,3,93,93 }, { 0, 0, 0, 4,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_axe, SLOT( 0), 0, 0,
"", "!Axe!", ""
},
{
"dagger", {1,93,1,2,93,93 }, { 2, 0, 2, 0,0,2},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_dagger, SLOT( 0), 0, 0,
"", "!Dagger!", ""
},
{
"flail", {93,1,93,6,93,93 }, { 0, 3, 0, 4,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_flail, SLOT( 0), 0, 0,
"", "!Flail!", ""
},
{
"mace", {93,1,93,6,93,93 }, { 0, 2, 0, 3,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_mace, SLOT( 0), 0, 0,
"", "!Mace!", ""
},
{
"polearm", { 93,93,93,8,93,93 }, { 0, 0, 0, 4,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_polearm, SLOT( 0), 0, 0,
"", "!Polearm!", ""
},
{
"shield block", { 93,22,11,5,93,93 }, { 0, 4, 6, 2,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_shield_block, SLOT(0), 0, 0,
"", "!Shield!", ""
},
{
"spear", {93,93,93,4,93,93 }, { 0, 0, 0, 3,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_spear, SLOT( 0), 0, 0,
"", "!Spear!", ""
},
{
"sword", { 93,93,93,1,93,93 }, { 0, 0, 0, 2,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_sword, SLOT( 0), 0, 0,
"", "!sword!", ""
},
{
"whip", { 93,93,3,7,93,93 }, { 0, 0, 5, 4,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_whip, SLOT( 0), 0, 0,
"", "!Whip!", ""
},
{
"backstab", { 93,93,10,93,93,93 }, { 0, 0, 5, 0,0,0},
spell_null, TAR_IGNORE, POS_STANDING,
&gsn_backstab, SLOT( 0), 0, 24,
"backstab", "!Backstab!", ""
},
{
"circle", {93,93,25,93,93,93 }, { 0, 0, 8, 0,0,0},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_circle, SLOT( 0), 0, 24,
"circle", "!Circle!", ""
},
{
"bash", {93,93,93,13,93,93 }, { 0, 0, 0, 4,0,0},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_bash, SLOT( 0), 0, 24,
"bash", "!Bash!", ""
},
{
"berserk", {93,93,93,15,93,93 }, { 0, 0, 0, 5,0,0},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_berserk, SLOT( 0), 0, 24,
"", "You feel your pulse slow down.", ""
},
{
"dual", {93,93,93,21,93,93 }, { 0, 0, 0, 5,0,0 },
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_dual, SLOT(0), 0, 4,
"", "!dual!", ""
},
{
"dirt kicking", { 35,93,7,9,93,93 }, { 4, 0, 2, 4,0,0},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_dirt, SLOT( 0), 0, 24,
"kicked dirt", "You rub the dirt out of your eyes.", ""
},
{
"disarm", { 93,93,16,16,93,93 }, { 0, 0, 6, 4,0,0},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_disarm, SLOT( 0), 0, 24,
"", "!Disarm!", ""
},
{
"dodge", { 20,18,10,15,93,93 }, { 6, 8, 4, 6,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_dodge, SLOT( 0), 0, 0,
"", "!Dodge!", ""
},
{
"enhanced damage", { 93,93,23,9,93,93 }, { 0, 0, 5, 3,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_enhanced_damage, SLOT( 0), 0, 0,
"", "!Enhanced Damage!", ""
},
{
"ultra damage", { 93,93,93,35,93,93 }, { 0, 0, 0, 5,0,0},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_ultra_damage, SLOT( 0), 0, 0,
"", "!Ultra Damage!", ""
},
{
"envenom", { 93,93,18,93,93,93 }, { 0, 0, 4, 0,0,0 },
spell_null, TAR_IGNORE, POS_RESTING,
&gsn_envenom, SLOT(0), 0, 36,
"", "!Envenom!", ""
},
{
"hand to hand", { 93,93,17,8,93,93 }, { 0, 0, 6, 4,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_hand_to_hand, SLOT( 0), 0, 0,
"", "!Hand to Hand!", ""
},
{
"kick", { 93,93,15,3,93,93 }, { 0, 0, 6, 3,1,1},
spell_null, TAR_CHAR_OFFENSIVE, POS_FIGHTING,
&gsn_kick, SLOT( 0), 0, 12,
"kick", "!Kick!", ""
},
{
"parry", { 93,93,32,8,93,93 }, { 0, 0, 6, 4,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_parry, SLOT( 0), 0, 0,
"", "!Parry!", ""
},
{
"rotate", {93,93,93,18,93,93 }, { 0, 0, 0,4,0,0},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_rotate, SLOT(0), 0, 8,
"", "!Rotate!", ""
},
{
"rescue", { 93,28,93,6,93,93 }, { 0, 6, 0, 4,0,0},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_rescue, SLOT( 0), 0, 12,
"", "!Rescue!", ""
},
{
"trip", { 93,93,5,4,93,93 }, { 0, 0, 4, 8,0,0},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_trip, SLOT( 0), 0, 24,
"trip", "!Trip!", ""
},
{
"second attack", { 55,23,18,11,93,93 }, { 10, 8, 5, 3,1,1},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_second_attack, SLOT( 0), 0, 0,
"", "!Second Attack!", ""
},
{
"sharpen", { 93,93,93,24,93,93 }, {0, 0, 0, 4,0,0 },
spell_null, TAR_OBJ_INV, POS_STANDING,
&gsn_sharpen, SLOT(0), 0, 16,
"", "!Sharpen!", ""
},
{
"third attack", { 93,93,93,20,93,93 }, { 0, 0,0 , 4,0,0},
spell_null, TAR_IGNORE, POS_FIGHTING,
&gsn_third_attack, SLOT( 0), 0, 0,
"", "!Third Attack!", ""
},
/* non-combat skills */
{
"fast healing", { 93,19,14,13,93,93 }, { 0, 5, 6, 4,1,1},
spell_null, TAR_IGNORE, POS_SLEEPING,
&gsn_fast_healing, SLOT( 0), 0, 0,
"", "!Fast Healing!", ""
},
{
"haggle", { 21,19,18,22,93,93 }, { 5, 8, 3, 6,1,1},
spell_null, TAR_IGNORE, POS_RESTING,
&gsn_haggle, SLOT( 0), 0, 0,
"", "!Haggle!", ""
},
{
"hide", { 93,93,4,93,93,93 }, { 0, 0, 4, 0,0,0},
spell_null, TAR_IGNORE, POS_RESTING,
&gsn_hide, SLOT( 0), 0, 12,
"", "!Hide!", ""
},
{
"lore", { 15,17,27,93,93,93 }, { 6, 6, 4, 0,0,0},
spell_null, TAR_IGNORE, POS_RESTING,
&gsn_lore, SLOT( 0), 0, 18,
"", "!Lore!", ""
},
{
"meditation", {15,9,93,93,93,93 }, { 5, 5, 0, 0,1,1},
spell_null, TAR_IGNORE, POS_SLEEPING,
&gsn_meditation, SLOT( 0), 0, 0,
"", "Meditation", ""
},
{
"peek", { 93,93,19,93,93,93 }, { 0, 0, 3, 0,0,0},
spell_null, TAR_IGNORE, POS_STANDING,
&gsn_peek, SLOT( 0), 0, 0,
"", "!Peek!", ""
},
{
"pick lock", { 93,93,12,93,93,93 }, { 0, 0, 4, 0,0,0},
spell_null, TAR_IGNORE, POS_STANDING,
&gsn_pick_lock, SLOT( 0), 0, 12,
"", "!Pick!", ""
},
{
"recruit", {93,93,93,93,93,93}, {1,1,1,1,1,1},
spell_null, TAR_IGNORE, POS_STANDING,
&gsn_recruit, SLOT( 0), 0, 0,
"", "!Recruit!", ""
},
{
"sneak", { 93,93,8,93,93,93 }, { 0, 0, 4, 0,0,0},
spell_null, TAR_IGNORE, POS_STANDING,
&gsn_sneak, SLOT( 0), 0, 12,
"", "You no longer feel stealthy.", ""
},
{
"steal", { 93,93,2,93,93,93 }, { 0, 0, 2, 0,0,0},
spell_null, TAR_IGNORE, POS_STANDING,
&gsn_steal, SLOT( 0), 0, 24,
"", "!Steal!", ""
},
{
"scrolls", { 5,5,7,10,5,5 }, { 1, 2, 4, 7,1,2},
spell_null, TAR_IGNORE, POS_STANDING,
&gsn_scrolls, SLOT( 0), 0, 24,
"", "!Scrolls!", ""
},
{
"staves", { 5,5,7,10,5,5 }, { 2,3,8,0,2,3},
spell_null, TAR_IGNORE, POS_STANDING,
&gsn_staves, SLOT( 0), 0, 12,
"", "!Staves!", ""
},
{
"wands", { 5,5,7,10,5,5 }, { 2, 3, 0, 0,1,1},
spell_null, TAR_IGNORE, POS_STANDING,
&gsn_wands, SLOT( 0), 0, 12,
"", "!Wands!", ""
},
{
"recall", { 1, 1, 1, 1,1,1 }, { 2, 2, 2,2,2,2},
spell_null, TAR_IGNORE, POS_STANDING,
&gsn_recall, SLOT( 0), 0, 12,
"", "!Recall!", ""
}
};