/
area/city/
area/crypts/
area/guilds/
area/psuedowild/
area/religion/
data/documents/MPDocs/
data/html/
data/mobprogs/
data/quest/
data/world/
data/world/_utilities/
data/world/images/
design/html/
notes/
player/
#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "merc.h"
#include "interp.h"
#include "tables.h"
#include "rig_tables.h"
#include "rig.h"

/*
 * Weapons Table
 *
 * Name
 * Short
 * Long
 * Values[0-4]
 * Cost, Weight
 */
const struct rig_weapons_type rig_weapons_table[] =
{
    {"dagger %s",
    "%s dagger",
    "%s dagger is on the ground here.",
    {WEAPON_DAGGER, 1, 6, 11},
    5, 1},
    
    {"tanto %s",
    "%s tanto",
    "%s tanto is on the ground here.",
    {WEAPON_DAGGER, 1, 8, 11},
    10, 2},
    
    {"shortsword %s",
    "%s shortsword",
    "%s shortsword is on the ground here.",
    {WEAPON_SWORD, 1, 8, 11},
    14, 3},
    
    {"staff %s",
    "%s staff",
    "%s staff is on the ground here.",
    {WEAPON_SPEAR, 1, 8, 11},
    5, 3},
    
    {"wakizashi %s",
    "%s wakizashi",
    "%s wakizashi is on the ground here.",
    {WEAPON_SWORD, 1, 10, 11},
    25, 5},
    
    {"broadsword %s",
    "%s broadsword",
    "%s broadsword is on the ground here.",
    {WEAPON_SWORD, 1, 12, 11},
    35, 10},
    
    {"mace %s",
    "%s mace",
    "%s mace is on the ground here.",
    {WEAPON_MACE, 1, 12, 11},
    30, 7},
    
    {"war axe %s",
    "%s war axe",
    "%s war axe is on the ground here.",
    {WEAPON_AXE, 2, 12, 11},
    50, 10},
    
    {"saber %s",
    "%s saber",
    "%s saber is on the ground here.",
    {WEAPON_SWORD, 3, 12, 11},
    55, 8},
    
    {"flail %s",
    "%s flail",
    "%s flail is on the ground here.",
    {WEAPON_FLAIL, 2, 14, 11},
    36, 19},
    
    {"whip %s",
    "%s whip",
    "%s whip is on the ground here.",
    {WEAPON_WHIP, 2, 14, 11},
    36, 19},
    
    {"longsword %s",
    "%s longsword",
    "%s longsword is on the ground here.",
    {WEAPON_SWORD, 2, 16, 11},
    75, 15},
    
    {"battleaxe %s",
    "%s battleaxe",
    "%s battleaxe is on the ground here.",
    {WEAPON_AXE, 2, 16, 11},
    100, 25},
    
    {"katana %s",
    "%s katana",
    "%s katana is on the ground here.",
    {WEAPON_SWORD, 3, 16, 11},
    125, 12},
    
    {"claymore %s",
    "%s claymore",
    "%s claymore is on the ground here.",
    {WEAPON_SWORD, 2, 18, 11},
    200, 40},
    
    {"warhammer %s",
    "%s warhammer",
    "%s warhammer is on the ground here.",
    {WEAPON_MACE, 3, 18, 11},
    250, 75},
    
    {"dia-katana %s",
    "%s dia-katana",
    "%s dia-katana is on the ground here.",
    {WEAPON_SWORD, 3, 21, 11},
    300, 24},
    
    {NULL, NULL, NULL, {-1, -1, -1 -1}, -1, -1}
};

/*
 * Armor Table
 *
 * Name
 * Short
 * Long
 * Armor Class, Location
 * Wear flags
 * Weight, Cost
 */
const struct rig_armor_type rig_armor_table[] =
{
    {"helmet %s",
    "%s helmet",
    "%s helmet is on the ground here.",
    1,  LOC_HEAD,
    ITEM_TAKE | ITEM_WEAR_HEAD,
    4, 10},
    
    {"right pauldron %s",
    "%s right pauldron",
    "%s right pauldron is on the ground here.",
    1,  LOC_R_SHOULDER | LOC_UPPER_ARM,
    ITEM_TAKE | ITEM_WEAR_ARMS,
    3, 7},
    
    {"left pauldron %s",
    "%s left pauldron",
    "%s left pauldron is on the ground here.",
    1,  LOC_L_SHOULDER | LOC_UPPER_ARM,
    ITEM_TAKE | ITEM_WEAR_ARMS,
    3, 7},
    
    {"curiass %s",
    "%s curiass",
    "%s curiass is on the ground here.",
    4,  LOC_CHEST | LOC_BACK,
    ITEM_TAKE | ITEM_WEAR_BODY,
    10, 50},
    
    {"right gauntlets %s",
    "%s right gauntlet",
    "%s right gauntlet is on the ground here.",
    1,  LOC_HANDS,
    ITEM_TAKE | ITEM_WEAR_HANDS,
    4, 8},   
    
    {"left gauntlets %s",
    "%s left gauntlet",
    "%s left gauntlet is on the ground here.",
    1,  LOC_HANDS,
    ITEM_TAKE | ITEM_WEAR_HANDS,
    4, 8},
    
    {"greaves %s",
    "%s pair of greaves",
    "%s pair of greaves is on the ground here.",
    3,  LOC_WAIST | LOC_UPPER_LEG,
    ITEM_TAKE | ITEM_WEAR_LEGS,
    4, 25},
    
    {"left boots %s",
    "%s left boot",
    "%s left boot is on the ground here.",
    2,  LOC_FEET | LOC_LOWER_LEG,
    ITEM_TAKE | ITEM_WEAR_FEET,
    4, 14},
    
    {"right boots %s",
    "%s right boot",
    "%s right boot is on the ground here.",
    2,  LOC_FEET | LOC_LOWER_LEG,
    ITEM_TAKE | ITEM_WEAR_FEET,
    4, 14},
     
    {NULL, NULL, NULL, -1, -1, -1, -1, -1}
};

/*
 * Material table
 *
 * Name
 * Weapon bonus, Armor Bonus
 */
const struct rig_material_type rig_material_table[] =
{
    {"iron",        "an",
    FALSE, -1, -1,  ARMOR_MEDIUM,
    75, 100},
    
    {"goblinish",   "a",
    FALSE, -2, -1,  ARMOR_LIGHT,
    25, 50},
    
    {"wooden",        "a",
    FALSE, 0, 0,  ARMOR_MEDIUM,
    25, 50},
    
    {"leather",     "a",
    TRUE, 0, 0,     ARMOR_LIGHT,
    50, 80},
    
    {"steel",       "a", 
    FALSE, 0, 0,    ARMOR_MEDIUM,
    100, 120},
    
    {"draconian",   "a", 
    FALSE, 1, 0,    ARMOR_LIGHT,
    100, 175},
    
    {"imperial",    "an", 
    FALSE, 1, 0,    ARMOR_HEAVY,
    100, 175},
    
    {"silver",      "a", 
    FALSE, 0, 0,    ARMOR_MEDIUM,
    90, 125},
    
    {"elven",       "an",
    FALSE, 1, 1,    ARMOR_LIGHT,
    35, 200},
    
    {"orcish",     "an", 
    FALSE, 2, 2,    ARMOR_MEDIUM,
    125, 400},
    
    {"gnomish",     "a", 
    FALSE, 1, 3,    ARMOR_LIGHT,
    66, 1800},
    
    {"dwarven",     "a", 
    FALSE, 3, 3,    ARMOR_MEDIUM,
    125, 600},
    
    {"trollish",    "a", 
    FALSE, 2, 4,    ARMOR_HEAVY,
    125, 600},
    
    {"drowish",     "a", 
    FALSE, 5, 1,    ARMOR_LIGHT,
    66, 1800},
    
    {"mithril",     "a", 
    FALSE, 4, 4,    ARMOR_LIGHT,
    75, 800}, 
    
    {"ebony",       "an",
    FALSE, 5, 5,    ARMOR_HEAVY,
    150, 1500},
    
    {NULL, NULL, -1, -1, -1, -1}
    
};

/*
 * rig_clothing_table[]
 *
 * common clothing
 */
const struct rig_clothing_type rig_clothing_table[] =
{
    {"a common shirt",
    ITEM_TAKE | ITEM_WEAR_BODY,
    1, 1, FALSE},
    
    {"a pair of common pants",
    ITEM_TAKE | ITEM_WEAR_LEGS,
    1, 1, FALSE},
    
    {"a pair of common shoes",
    ITEM_TAKE | ITEM_WEAR_FEET,
    1, 1, FALSE},
    
    {"a pair of common gloves",
    ITEM_TAKE | ITEM_WEAR_HANDS,
    1, 1, FALSE},
    
    {"a common robe",
    ITEM_TAKE | ITEM_WEAR_ABOUT,
    1, 1, FALSE},
    
    {"a common belt",
    ITEM_TAKE | ITEM_WEAR_WAIST,
    1, 1, FALSE},
    
    {"an amulet of Gwendion",
    ITEM_TAKE | ITEM_WEAR_NECK,
    1, 1, FALSE},
    
    {NULL, -1, -1, -1, -1}
};

/*
 * rig_clothing_exp_table[]
 *
 * Expensive clothing (noble)
 */
const struct rig_clothing_type rig_clothing_exp_table[] =
{
    {"an expensive shirt",
    ITEM_TAKE | ITEM_WEAR_BODY,
    1, 1, FALSE},
    
    {"an pair of expensive pants",
    ITEM_TAKE | ITEM_WEAR_LEGS,
    1, 1, FALSE},
    
    {"an pair of expensive shoes",
    ITEM_TAKE | ITEM_WEAR_FEET,
    1, 1, FALSE},
    
    {"an pair of expensive gloves",
    ITEM_TAKE | ITEM_WEAR_HANDS,
    1, 1, FALSE},
    
    {"an expensive robe",
    ITEM_TAKE | ITEM_WEAR_ABOUT,
    1, 1, FALSE},
    
    {"an expensive belt",
    ITEM_TAKE | ITEM_WEAR_WAIST,
    1, 1, FALSE},
    
    {"an amulet",
    ITEM_TAKE | ITEM_WEAR_NECK,
    1, 1, FALSE},
    
    {"a gold ring",
    ITEM_TAKE | ITEM_WEAR_FINGER,
    1, 1, FALSE},
    
    {NULL, -1, -1, -1, -1}
};


/*
 * wizard scrolls
 */
const struct rig_scroll_type rig_wizscroll_table[] =
{
    {"continual light",
    240, CIRCLE_1},
    {"create food",
    130, CIRCLE_1},
    {"create rose",
    138, CIRCLE_1},
    {"create spring",
    182, CIRCLE_1},
    {"identify",
    230, CIRCLE_1},
    {"infravision",
    97, CIRCLE_1},
    {"see alignment",
    121, CIRCLE_1},
    {"lesser invisibility",
    210, CIRCLE_1},
    {"magic missile",
    50, CIRCLE_1},
    {"mend",
    241, CIRCLE_1},
    {"orcish strength",
    165, CIRCLE_1},
    {"refresh",
    139, CIRCLE_1},
    {"wizard fire",
    150, CIRCLE_1},
    {"wizard frost",
    163, CIRCLE_1},
    {"wizard spark",
    174, CIRCLE_1},
    {"detect hidden",
    500, CIRCLE_2},
    {"detect invis",
    4086, CIRCLE_2},
    {"farsight",
    3658, CIRCLE_2},
    {"fear",
    4216, CIRCLE_2},
    {"flight",
    4515, CIRCLE_2},
    {"leech strength",
    5077, CIRCLE_2},
    {"locate object",
    3522, CIRCLE_2},
    {"protection from evil",
    5095, CIRCLE_2},
    {"protection from good",
    5092, CIRCLE_2},
    {"shield",
    6021, CIRCLE_2},
    {"spark",
    4557, CIRCLE_2},
    {"sleep",
    5512, CIRCLE_2},
    {"summon",
    5053, CIRCLE_2},
    {"pass door",
    4020, CIRCLE_3},
    {"fireball",
    12569, CIRCLE_3},
    {"haste",
    10578, CIRCLE_3},
    {"ice bolt",
    11563, CIRCLE_3},
    {"knock",
    9042, CIRCLE_3},
    {"lightning",
    12095, CIRCLE_3},
    {"manashield",
    10046, CIRCLE_3},
    {"wizard eye",
    10053, CIRCLE_3},
    
    {NULL, -1, -1}
};

/*
 * Priest scrolls
 */
const struct rig_scroll_type rig_priscroll_table[] =
{
    {"adept",
    551},
    {"armor",
    510},
    {"bark skin",
    2232},
    {"bless",
    581},
    {"blindness",
    518},
    {"brushfire",
    5072},
    {"calm",
    3100},
    {"cancellation",
    3067},
    {"cause critical",
    2061},
    {"cause light",
    1525},
    {"cause serious",
    1723},
    {"create food",
    560},
    {"create rose",
    3072},
    {"create spring",
    2010},
    {"create water",
    540},
    {"cure blindness",
    596},
    {"cure critical",
    2077},
    {"cure disease",
    2039},
    {"cure light",
    1058},
    {"cure poison",
    522},
    {"cure serious",
    1525},
    {"curse",
    2017},
    {"demonfire",
    2038},
    {"detect evil",
    522},
    {"detect good",
    564},
    {"detect hidden",
    556},
    {"detect invis",
    592},
    {"detect magic",
    566},
    {"dispel magic",
    1599},
    {"divinity",
    320},
    {"earthquake",
    1516},
    {"fear",
    1543},
    {"fireproof",
    1002},
    {"fire storm",
    2054},
    {"flamestrike",
    2002},
    {"fly",
    1007},
    {"frenzy",
    3077},
    {"grudge",
    263},
    {"harm",
    3579},
    {"heal",
    5088},
    {"heat metal",
    2548},
    {"holy word",
    20038},
    {"holy sight",
    1515},
    {"identify",
    1227},
    {"infravision",
    538},
    {"know alignment",
    905},
    {"malady",
    10045},
    {"magic missile",
    276},
    {"mass healing",
    10027},
    {"pass door",
    2005},
    {"plague",
    2098},
    {"protection evil",
    571},
    {"protection good",
    570},
    {"ray of truth",
    2091},
    {"refresh",
    1207},
    {"replenish",
    5084},
    {"rejuvination",
    20009},
    {"restoration",
    2096},
    {"sacred cloak",
    510},
    {"scared flame",
    312},
    {"sanctify",
    888},
    {"sanctuary",
    7575},
    {"suppression",
    15056},
    {"sun ritual",
    2048},
    
    {NULL, -1, -1}
};

const struct rig_scroll_type rig_thief_tome_table[] =
{
    {"axe",
    74, CIRCLE_NONE},
    {"dagger",
    6, CIRCLE_NONE},
    {"flail",
    87, CIRCLE_NONE},
    {"mace",
    20, CIRCLE_NONE},
    {"sword",
    22, CIRCLE_NONE},
    {"agility",
    1203, CIRCLE_NONE},
    {"backstab",
    70, CIRCLE_NONE},
    {"blindfighting",
    21, CIRCLE_NONE},
    {"circle",
    1227, CIRCLE_NONE},
    {"critical hit",
    1259, CIRCLE_NONE},
    {"counterattack",
    52, CIRCLE_NONE},
    {"dirt kicking",
    41, CIRCLE_NONE},
    {"disarm",
    41, CIRCLE_NONE},
    {"dodge",
    96, CIRCLE_NONE},
    {"dual weapons",
    9, CIRCLE_NONE},
    {"duck",
    40, CIRCLE_NONE},
    {"envenom",
    69, CIRCLE_NONE},
    {"fourth attack",
    30, CIRCLE_NONE},
    {"hand to hand",
    78, CIRCLE_NONE},
    {"jugular slice",
    46, CIRCLE_NONE},
    {"parry",
    84, CIRCLE_NONE},
    {"second attack",
    43, CIRCLE_NONE},
    {"snare",
    6, CIRCLE_NONE},
    {"third attack",
    73, CIRCLE_NONE},
    {"trip",
    86, CIRCLE_NONE},
    {"untangle",
    79, CIRCLE_NONE},
    {"vital points",
    1242, CIRCLE_NONE},
    {"vein slice",
    1297, CIRCLE_NONE},
    {"hide",
    25, CIRCLE_NONE},
    {"hunting",
    48, CIRCLE_NONE},
    {"lore",
    57, CIRCLE_NONE},
    {"pick lock",
    46, CIRCLE_NONE},
    {"sneak",
    71, CIRCLE_NONE},
    {"scrolls",
    61, CIRCLE_NONE},
    {"wands",
    92, CIRCLE_NONE},

    {NULL, -1, -1}
};

const struct rig_scroll_type rig_fighter_tome_table[] =
{
    {"axe",
    20, CIRCLE_NONE},
    {"dagger",
    13, CIRCLE_NONE},
    {"flail",
    69, CIRCLE_NONE},
    {"mace",
    25, CIRCLE_NONE},
    {"polearm",
    34, CIRCLE_NONE},
    {"spear",
    44, CIRCLE_NONE},
    {"sword",
    99, CIRCLE_NONE},
    {"whip",
    83, CIRCLE_NONE},
    {"bash",
    6, CIRCLE_NONE},
    {"berserk",
    26, CIRCLE_NONE},
    {"blindfighting",
    72, CIRCLE_NONE},
    {"counterattack",
    23, CIRCLE_NONE},
    {"disarm",
    74, CIRCLE_NONE},
    {"dodge",
    78, CIRCLE_NONE},
    {"dual weapons",
    0, CIRCLE_NONE},
    {"enhanced damage",
    38, CIRCLE_NONE},
    {"flurry",
    30, CIRCLE_NONE},
    {"fifth attack",
    68, CIRCLE_NONE},
    {"fourth attack",
    17, CIRCLE_NONE},
    {"hand to hand",
    8, CIRCLE_NONE},
    {"jugular slice",
    95, CIRCLE_NONE},
    {"parry",
    86, CIRCLE_NONE},
    {"rescue",
    27, CIRCLE_NONE},
    {"rush",
    39, CIRCLE_NONE},
    {"second attack",
    19, CIRCLE_NONE},
    {"shield bash",
    48, CIRCLE_NONE},
    {"shield block",
    53, CIRCLE_NONE},
    {"third attack",
    88, CIRCLE_NONE},
    {"kick",
    331, CIRCLE_NONE},
    {"fast healing",
    78, CIRCLE_NONE},
    {"haggle",
    67, CIRCLE_NONE},
    {"hunting",
    66, CIRCLE_NONE},
    {"sharpen",
    39, CIRCLE_NONE},

    {NULL, -1, -1}
};
/*
  potion_spells_table
 *
 * This table holds the normal player use spells, like rejuve, etc
 * Non-healing spells
 */
const struct rig_potion_type rig_potion_table[] =
{
    {"armor",           100},
    {"bless",           250},
    {"cancellation",    450},
    {"cure blindness",  120},
    {"cure disease",    180},
    {"cure poison",     70},
    {"detect invis",    200},
    {"detect hidden",   180},
    {"detect magic",    210},
    {"detect good",     140},
    {"fly",             110},
    {"holy sight",      275},
    {"pass door",       130},
    {"protection evil", 250},
    {"protection good", 250},
    {"haste",           500},
    {"dispel magic",    750},
    {"giant strength",  140},
    {"immolate",        800},
    {"shield",          190},
    {"sanctify",        400},
    {"sanctuary",       350},
    
    {NULL, -1}
};

/*
 * rig_potion_heal_table()
 *
 * Holds 'healing' potions, like restore health, restore mana, etc
 */
const struct rig_potion_type rig_potion_heal_table[] =
{
    {"cure light",              50},
    {"cure serious",            150},
    {"cure critical",           300},
    {"minor restore health",    75},
    {"light restore health",    125},
    {"restore health",          175},
    {"greater restore health",  225},
    {"excellent restore health",275},
    {"minor restore mana",      100},
    {"light restore mana",      150},
    {"restore mana",            200},
    {"greater restore mana",    250},
    {"excellent restore mana",  300},
    {NULL, -1}
};

const struct rig_potion_type rig_beer_table[] =
{
    {"elven ale",               10},
    {"Budweiser",               12},
    {"Budweiser light",         26},
    {"Busch",                   17},
    {"Coors",                   13},
    {"Coors Light",             15},
    {"Michelob",                17},
    {"Michelob light",          19},
    {"Michelob Amber Bock",     21},
    {"Miller Genuine Draft",    10},
    {"Miller Genuine Draft Light",  11},
    {"Miller High Life",        30},
    {"Miller Lite",             20},
    {"Miller Lite Ice",         21},
    {"Pabst Blue Ribbon",       18},
    {"Red Dog",                 26},
    {"Rolling Rock",            22},
    {"Strohs",                  28},
    {"Jack Daniels",            50},
    {"Bourbon",                 150},
    {"Captian Morgans Rum",     120},
    {"Mike's hard lemonade",    70},
    {"Southern comfort",        180},
    {"Southern comfort light",  200},
    {"Skyy Vodka",              190},
    
    {NULL, -1}
};

const struct rig_potion_type rig_food_table[] =
{
    {"bread",               1},
    {"wheat bread",         1},
    {"buttermilk bread",    2},
    {"cookie",              2},
    {"cheese cracker",      2},
    {"french fries",        3},
    {"eggs",                3},
    {"hot dog",             3},
    {"ham sandwich",        5},
    {"Quzino's sandwich",   5},
    {"beef steak",          10},
    {"standard ration",     10},
    {"iron ration",         20},
    {"C ration",            15},
    {"K ration",            25},
    {"Z ration",            50},

    {"NULL",    -1}
};