/
mudd/docs/html/
mudd/world/
#include <sys/types.h> 
#include <stdio.h> 
#include <time.h>
#include "mud.h"


const char* coin_name[MAX_COINS] = 
{
  "copper",
  "silver",
  "gold",
  "platinum",
  "obsidian"
};


/* Two notes about coin_mult. 

1. the first number MUST BE 1 

2. Each number must be divisible by the number before it or
you run into problems in sub_coins in hnd.c In that function, I use
the value coin_mult[i]/coin_mult[i-1]. So if they do not divide 
exactly, you can expect some very unhappy players when their coins
start disappearing. */

int coin_mult[MAX_COINS] =
{
1,
10,
100,
1000,
10000
};


const char *coin_color[MAX_COINS] =
{
  "\x1b[1;31mcopper\x1b[0;37m",
  "\x1b[1;37msilver\x1b[0;37m",
  "\x1b[1;33mgold\x1b[0;37m",
  "\x1b[1;37mplatinum\x1b[0;37m",
  "\x1b[1;30mobsidian\x1b[0;37m"
};



const char* position_name[MAX_POSITIONS] = 
{
  "dead",
  "mortally wounded",
  "incapacitated",
  "stunned",
  "sleeping",
  "resting",
  "bashed",
  "groundfighting",
  "fighting",
  "circling",
  "falling",
  "meditating",
  "standing",
  "running",
  "searching",
  "backstabbing",
  "investigating",
  "casting",
  "shooting",
  "mining",
};

char *const color_name[] =
{
  "OOC",
  "CLANTALK",
  "YELL",
  "SAY",
  "TELL",
  "UNUSED",
  "IMMTALK",
  "GODTALK",
  "NONE",
  "NONE",
  "NONE",
  "NONE",
  "NONE",
  "NONE",
  "NONE"
};


const struct str_apply_type str_app[33] =
{
  {-4},
  {-4},
  {-2},
  {-1},
  {-1},
  {-1},
  {0},
  {0},
  {0},
  {0},
  {0},
  {0},
  {0},
  {0},
  {0},
  {1},
  {1},
  {1},
  {2},
  {2},
  {2},
  {3},
  {3},
  {4},
  {4},
  {5},
  {5},
  {5},
  {6},
  {6},
  {7},
  {8},
  {9}
};

/* obj->wear_loc references the type of slot obj->wear_number references which
   one of those slots we are wearing it in. */

const struct wearing_data worn_flags[] =
{
  {-1, "take", " take", ITEM_TAKE, "take", 1, 0},

  {2, "floating", " floating about", ITEM_FLOATING,       "<floating nearby>    ",2, 1},
  {2, "head", "on your head", ITEM_WEAR_HEAD,              "<worn on head>       ",1, 20},
  {2, "eyes", "over your eyes", ITEM_WEAR_EYES,              "<worn on eyes>       ",1, 5},
  {2, "ears", "in your ear", ITEM_WEAR_EARS,              "<worn on ear>        ",2, 1},
  {2, "face", "on your face", ITEM_WEAR_FACE,              "<worn on face>       ",1, 30},
  {2, "neck", "around your neck", ITEM_WEAR_NECK,              "<worn around neck>   ",2, 10},
  {3, "arms", "on your arms", ITEM_WEAR_ARMS,              "<worn on arms>       ",1, 70},
  {3, "elbow", "on your elbow", ITEM_WEAR_ELBOW,           "<worn on elbow>      ",2, 15},
  {3, "shield", "as a shield", ITEM_WEAR_SHIELD,        "<strapped to arm>    ",1, 80},
  {3, "wrist", "on your wrist", ITEM_WEAR_WRIST,           "<worn on wrist>      ",2, 7},
  {3, "hands", "on your hands", ITEM_WEAR_HANDS,           "<worn on hands>      ",1, 25},
  {3, "finger", "on your finger", ITEM_WEAR_FINGER,        "<worn on finger>     ",2, 2},
  {3, "wield", "in your hand", ITEM_WIELD,                "<held in hand>       ",2, 30},
  {1, "shoulder", "over your shoulder", ITEM_WEAR_SHOULDER,  "<worn on shoulder>   ",2, 20},
  {1, "body", "on your body", ITEM_WEAR_BODY,              "<worn on body>       ",1, 60},
  {1, "about", "about your body", ITEM_WEAR_ABOUT,           "<worn about body>    ",1, 70},
  {1, "back", "over your back", ITEM_WEAR_BACK,              "<worn on back>       ",1, 30},
  {1, "waist", "around your waist", ITEM_WEAR_WAIST,           "<worn about waist>   ",1, 15},
  {1, "belt",  "in your belt",   ITEM_WEAR_BELT,             "<thrust through belt>",2, 35},
  {0, "knee", "over your knee", ITEM_WEAR_KNEE,              "<worn on knee>       ",2, 7},
  {0, "legs", "on your legs", ITEM_WEAR_LEGS,              "<worn on legs>       ",1, 45},
  {0, "ankle", "around your ankle", ITEM_WEAR_ANKLE,           "<worn on ankle>      ",2, 5},
  {0, "feet", "on your feet", ITEM_WEAR_FEET,              "<worn on feet>       ",1, 35},
  {-2, "end_of_list", " end_of_list", 0,            "<worn nowhere>       ",1},
};


char *const dist_name[8] =
{
  "pretty close by",
  "fairly far off",
  "a long ways off",
  "fairly far off",
  "fairly far off",
  "fairly far off",
  "fairly far off",
  "fairly far off"
};


const struct flag_data exit_flagss[] =
{
  {"door"," door",EX_ISDOOR},
  {"closed"," closed",EX_CLOSED},
  {"locked"," locked",EX_LOCKED},
  {"pickproof"," pickproof",EX_PICKPROOF},
  {"bashproof"," bashproof",EX_BASHPROOF},
  {"hidden"," hidden",EX_HIDDEN},
  {"reset"," reset",EX_RESET},
  {"trapped"," trapped",EX_HASTRAP},
  {"end_of_list", "end_of_list", 0},
};






const struct mob_nfo mob_info[MAX_MOB_TYPE] =
{
 {"human", "punch",15,'h'}, 
 {"elf", "punch",2,'e'},
 {"dwarf", "punch",6,'d'},
 {"gnome", "punch",4,'g'},
 {"giant", "punch",5,'G'},
 {"dragon","claw",12,'D'},
 {"canine","bite",1,'d'},
 {"rodent", "bite",3,'r'},
 {"insect", "sting",13,'i'},
 {"undead", "touch",8,'U'},
 {"golem", "crush",11,'g'},
 {"demon", "claw",1,'D'},
 {"troll","claw",10,'T'},
 {"bird", "peck",9,'b'},
 {"fish", "bite",9,'f'},
 {"statue", "pound",15,'S'},
 {"feline","scratch",10,'f'},
 {"plant","scratch",3,'P'},
 {"general_animal", "bite",7,'A'},
 {"faerie","touch",11,'f'},
 {"reptile","bite",10,'R'},
 {"ghost","grasp",15,'G'},
 {"other","scratch",1,'M'},
 {"ogre", "pound",12,'O'},
 {"elemental", "drain",9,'E'},
 {"orc","punch",6,'o'},
 {"dummy", "nothing",7,'d'},
 {"arachnid", "bite",8,'S'},
 {"gnoll","punch",9,'g'},
 {"bugbear", "punch", 3,'B'}, 
 {"skaven", "punch",1,'s'}, 
 {"troglodyte", "punch",8,'t'},
 {"goblin", "punch",5,'g'},
 {"illithid", "punch",12,'i'},
 {"kender", "punch",12 ,'k'}, 
 {"minotaur","gore",9,'M'}, 
 {"sprite", "touch",11,'s'},
 {"draconian","claw",4,'d'},
 {"hobgoblin", "punch",14,'H'},
 {"hobbit", "punch",6,'h'}, 
 {"centaur","kick",3,'C'}, 
 {"mutant", "punch",13,'M'},
 {"nuke", "lala", 2, 'N'},
};

char *const percent_ded[] =
{
  "is at the brink of death",
  "is majorly wounded",
  "is majorly wounded",
  "is wounded",
  "is wounded",
  "is wounded",
  "has several wounds",
  "is minorly wounded",
  "has a few scratches",
  "has a few bruises",
  "is in excellent shape",
  "is in amazing shape",
  "is in incredible shape",
  "is incredibly healthy",
  "is incredibly healthy",
  "is incredibly healthy",
  "is incredibly healthy",
  "is incredibly healthy",
  "is incredibly healthy",
  "is incredibly healthy",
  "is incredibly healthy",
  "is incredibly healthy",
  "is incredibly healthy"

};


/* This table determines how races interact and how they 
view you when you kill some of their members...9 = really
 really likes that race, -9 = really really hates that race. 
When you kill something of that race, it changes their view of you..
stored in the factions code of your race. Then things will
automatically attack you if they don't like you. */


const int factions[MAX_MOB_TYPE][MAX_MOB_TYPE] =

{
  {9,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,
0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,9,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,9,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,9,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,9, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 9,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,9,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,9,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,9,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,9, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
   
  {0,0,0,0,0, 0,0,0,0,0, 9,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,9,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,9,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,9,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,9, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 9,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,9,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,9,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,9,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,9, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 9,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,9,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,9,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,9,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,9, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 9,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,9,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,9,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,9,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,9, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},

  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 9,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,9,0,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,9,0,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,9,0, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,9, 0,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 9,0,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,9,0,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,9,0,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,9,0, 0,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,9, 0,0,0,0},

  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 9,0,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,9,0,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,9,0},
  {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0},
 
};




char *const percent_hit[] =
{
  "awful",
  "bad",
  "bad",
  "hurt",
  "hurt",
  "hurt",
  "hurt",
  "good",
  "good",
  "good",
  "fine",
  "fine",
  "fine",
  "fine",
  "fine",
  "fine",
  "fine",
  "fine"

};


char *const percent_tired[] =
{
  "exhausted",
  "fainty",
  "weak",
  "beat",
  "winded",
  "fatigued",
  "tired",
  "energetic",
  "energetic",
  "energetic",
  "energetic",
  "energetic",
  "fresh",
  "fresh",
  "fresh",
  "fresh",
  "fresh",
  "fresh",
  "fresh",
  "fresh",
  "fresh",
  "fresh",
  "fresh",
  "fresh"

};

char *const language_table[12] =
{
  "common",
  "elvish",
  "dark elvish",
  "dwarvish",
  "gnomish",
  "grunting",
  "kender",
  "shadaoslavian",
  "dragon",
  "buckawn",
  "skulk",
  "beastman"
};
/* Name            colorname                               weight wpn armor cost str  init hit hp mv dam kickdam */
const struct material_data materials[] ={
  {"brass",      "$N$6b$B$4r$6a$4s$N$6s$N"                 ,70, 15,  1, 200,     0,  1, 0, 0,  0,   0, 0, 0},
  {"bronze",      "$6bronze$N"                             ,90, 17,  2, 500,     5,  1, 0, 1,  1,   1, 0, 0},
  {"copper",      "$4c$6o$B$B$4pp$N$6e$4r$N"               ,120, 19, 3, 800,    10, 1, 0, 1,  2,   2, 0, 2},
  {"quartz",      "$B$7quartz$N"                           ,130, 21, 3, 1200,   15, 1, 0, 2,  4,   4, 0, 2},
  {"iron",        "$B$0iron$N"                             ,140, 24, 3, 1800,   20, 1, 0, 2,  6,   6, 0, 2},
  {"silver",      "$B$7silver$N"                           ,170, 27, 4, 2500,   25, 1, 0, 2,  8,   8, 0, 2},
  {"steel",       "$B$7steel$N"                            ,185, 30, 5, 3000,   30, 1, 0, 3, 10,  10, 0, 3},
  {"gold",        "$B$6gold$N"                             ,200, 33, 1, 3600,   35, 1, 0, 0,  0,   0, 1, 2},
  {"platinum",    "$3p$B$3l$B$7a$Nti$B$7n$3u$N$3m$N"       ,210, 36, 2, 14500,  40, 1, 0, 1,  1,   1, 1, 2},
  {"obsidian",    "$B$0o$Nbs$B$7id$Nia$B$0n$N"             ,230, 39, 2, 15600,  45, 1, 0, 2,  2,   2, 1, 3},
  {"onyx",        "$B$0o$Nn$B$7y$0x$N"                     ,255, 42, 3, 16300,  50, 1, 0, 2,  4,   4, 1, 3},
  {"molybdenum",  "$B$1mo$Nly$B$7bde$Nnu$B$1m$N"           ,290, 45, 6, 17100,  55, 1, 0, 3, 12,  12, 0, 4}, 
  {"mithril",     "$B$0m$N$3i$B$3t$B$7h$B$3r$N$3i$B$0l$N"  ,320, 50, 3, 17900,  60, 1, 0, 2,  6,   6, 1, 4},
  {"adamantium",  "$5a$B$5d$Nam$B$7an$Nti$B$5u$N$5m$N"     ,350, 60, 8, 20000,  65, 1, 0, 4, 14,  14, 0, 5},
  {"diamond",     "$B$3d$7i$N$7amo$B$7n$3d$N"              ,370, 70, 5, 40000,  70, 1, 0, 2,  8,   8, 1, 5},
  {"END",         "",  0,  0, 0,     0,  0, 0, 0, 0, 0, 0, 0, 0},
};

const struct forged_items forged[] = {

  {"breastplate", "sturdy", ITEM_WEAR_BODY , ITEM_ARMOR ,13, 3 ,3 ,1 ,1 , 2 , 1},
  {"helmet","heavy" ,ITEM_WEAR_HEAD ,ITEM_ARMOR ,8 ,5 ,5 ,1 ,0 , 0, 2},
  {"greaves","dirty" ,ITEM_WEAR_LEGS ,ITEM_ARMOR ,10 ,5 ,5 , 1  ,2 ,1 ,0 },
  {"boots","dusty" ,ITEM_WEAR_FEET ,ITEM_ARMOR ,8 , 5 ,5 ,1 ,2 ,0 ,0 },
  {"gauntlets","thin" ,ITEM_WEAR_HANDS ,ITEM_ARMOR ,7 ,6 ,6 ,1 ,1 ,0 ,3 },
  {"armplates","thick" ,ITEM_WEAR_ARMS ,ITEM_ARMOR ,8 ,5 ,5 ,1 ,1 ,1 ,3 },
  {"belt","flimsy" ,ITEM_WEAR_WAIST ,ITEM_ARMOR ,7 ,7 ,7 ,1 ,1 ,0 ,1 },
  {"shield","solid" ,ITEM_WEAR_SHIELD ,ITEM_ARMOR ,11,4 ,4 ,1 ,1  ,0 ,4},
  {"mask","slitted" , ITEM_WEAR_FACE ,ITEM_ARMOR ,8 ,7 ,7 ,1 ,0  ,0 ,2},
  {"earring","dangling" ,ITEM_WEAR_EARS ,ITEM_ARMOR ,5 ,9 ,9 ,2, 0 ,0  ,2},
  {"bracelet","sparkling" ,ITEM_WEAR_WRIST ,ITEM_ARMOR ,5 ,9 ,9 ,2 ,1  ,0 ,3},
  {"anklet","spiked" ,ITEM_WEAR_ANKLE ,ITEM_ARMOR ,5 ,9 ,9 ,2 ,2  ,0 ,0},
  {"ring","carved" , ITEM_WEAR_FINGER ,ITEM_ARMOR ,5 ,9 ,9 ,2 ,1  ,0 ,3},
  {"necklace","flowing" , ITEM_WEAR_NECK ,ITEM_ARMOR ,5 ,9 ,9 ,2 ,1 ,0 ,1 },
  {"shoulderplate","layered" ,ITEM_WEAR_SHOULDER ,ITEM_ARMOR ,5  ,9 ,9 ,2 ,1 ,0 ,1 },
  {"kneepad", "reinforced", ITEM_WEAR_KNEE, ITEM_ARMOR, 5, 9, 9, 2, 2, 0, 0},
  {"elbowpad", "protective", ITEM_WEAR_ELBOW, ITEM_ARMOR, 5, 9, 9, 2, 1, 0, 3},
  {"hammer","weighty" ,ITEM_WIELD ,ITEM_TOOL ,20 ,2 ,2 ,1 ,1 ,TOOL_FORGING ,0 },
  {"anvil","huge" ,0 ,ITEM_FURNITURE ,35 ,1 ,1 ,1 ,1 ,FURN_ANVIL ,0 },
  {"chunk","rough" ,ITEM_WIELD ,ITEM_RAW ,0 ,20 ,20 ,1 ,0  ,0 ,0},
  {"needle","sharp" ,ITEM_WIELD ,ITEM_TOOL ,3 ,9 ,9 ,1 , 1 ,TOOL_NEEDLE ,0},
  {"mortar","small" , ITEM_WIELD ,ITEM_CONTAINER ,1 ,10 ,10 ,1 ,0  ,CONT_MORTAR ,0},
  {"pestle","knobbed" , ITEM_WIELD,ITEM_TOOL ,10 ,8 ,8 ,1 ,0  ,TOOL_PESTLE ,0},
  {"flail","razor-edged" ,ITEM_WIELD ,ITEM_WEAPON ,10 ,4 ,4 ,1 ,ITEM_WHIP ,4 ,4 },
  {"dagger","wicked" ,ITEM_WIELD+ITEM_WEAR_BELT ,ITEM_WEAPON ,8,5 ,5 ,1 ,ITEM_PIERCE ,-2 ,11},
  {"sword","serrated" ,ITEM_WIELD ,ITEM_WEAPON ,10 ,3 ,3 ,1 ,ITEM_SLASHING ,2 ,3 },
  {"axe","gigantic" ,ITEM_WIELD ,ITEM_WEAPON ,11 ,2 ,2,1,ITEM_HEAVY_SLASH,0 ,12},
  {"halberd","spiked" ,ITEM_WIELD ,ITEM_WEAPON ,14 ,2 ,2 ,1 ,ITEM_POLEARM  ,0 ,15},
  {"club","lead-shod" ,ITEM_WIELD ,ITEM_WEAPON ,11 ,3 ,3 ,1 ,ITEM_CONCUSSION ,3 ,7 },
  {"shortbow","light" ,ITEM_WIELD ,ITEM_MISSILE ,8 ,7 ,7 ,1
,0,-10 ,7 },
  {"crossbow","heavy" ,ITEM_WIELD ,ITEM_MISSILE ,11 ,5 ,5 ,1
,0,-8 ,7 },
  {"longbow","huge" ,ITEM_WIELD ,ITEM_MISSILE ,15 ,4 ,4 ,1 ,0,-7
,7 },
  {"arrow","short" ,ITEM_WIELD ,ITEM_AMMO ,1 ,40 ,40 ,1, 0 ,-10 ,1 },
  {"bolt","crossbow" ,ITEM_WIELD ,ITEM_AMMO ,2 ,35 ,35 ,1, 0 ,-8 ,2 },
  {"shaft","clothyard" ,ITEM_WIELD ,ITEM_AMMO ,2 ,30 ,30 ,1, 0 ,-6 ,3 },
  {"end_of_list", "",0,0,0,0,0,0,0,0,0},
};




const struct material_data skin_types[] = {

  { "squirrel",        "squirrel ",                 120, 15, 1, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  { "rabbit",          "rabbit",                    120, 15, 1, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  { "raccoon",         "raccoon",                   120, 15, 2, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  { "cow",             "cow",                       120, 15, 2, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  { "fox",             "fox",                       120, 15, 3, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  { "deer",            "deer",                      120, 15, 3, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  { "boar",            "boar",                      120, 15, 4, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  { "wolf",            "wolf",                      120, 15, 5, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  { "bear",            "bear",                      120, 15, 6, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  { "lion",            "lion",                      120, 15, 7, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  { "dragon",          "dragon",                    120, 15,10, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
   {"end_of_list",         "",                                0,  0, 0,   0,                   0, 0, 0, 0, 0, 0, 0, 0},
  
};

const struct material_data cloth_types[] = {
  { "cotton",      "cotton",               120, 15, 1, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  { "wool",        "wool",                 120, 15, 1, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  { "silk",        "silk",                 120, 15, 1, 200,                   0, 1, 0, 0, 0, 0, 0, 0},
  {"end_of_list",         "",                        0,  0, 0,   0,                   0, 0, 0, 0, 0, 0, 0, 0},
  
};


const struct gld_data guild_data[] =
{
{ " Warrior", "warrior",GUILD_WARRIOR, STR},
{ " Wizard", "wizard",GUILD_WIZARD, INT},
{ " Healer", "healer",GUILD_HEALER, WIS},
{ " Thief", "thief",GUILD_THIEF, DEX},
{ " Ranger", "ranger",GUILD_RANGER, CON},
  /* No luck guild apparently... */
{ " Mystic", "mystic",GUILD_MYSTIC, WIS},
{ " Assassin", "assassin", GUILD_ASSASSIN, DEX},
{ " Tinker", "tinker",GUILD_TINKER, CON},
{ " Battlemaster", "battlemaster", GUILD_BATTLEMASTER, STR},
{ " Sorcerer", "sorcerer",GUILD_SORCERER, INT},
{ " None", "end_of_list", 0, -1}
};

const struct mna_data mana_data[] =
{
  {"Any",  " Any", "\x1b[1;37m" , "*", MANA_ANY}, /* Keep any mana as first */
  {"Air", " Air", "\x1b[1;36m" , "A", MANA_AIR},
  {"Earth", " Earth", "\x1b[0;32m" , "E", MANA_EARTH},
  {"Fire", " Fire", "\x1b[0;31m" , "F", MANA_FIRE},
  {"Water", " Water", "\x1b[1;34m" , "W", MANA_WATER},
  {"Spirit", " Spirit", "\x1b[1;33m" , "S", MANA_SPIRIT},
  {"end_of_list", "None ", "", "", 0},
};


const struct flag_data act_1[] =
{
{"sentinel"," sentinel",ACT_SENTINEL},
{"scavenger"," scavenger",ACT_SCAVENGER},
{"aggressive"," aggressive",ACT_AGGRESSIVE},
{"stay_area"," stay_area",ACT_STAY_AREA},
{"wimpy"," wimpy",ACT_WIMPY},
{"switch"," switch",ACT_KILLSQUISHY},
{"fasthunt"," fasthunt",ACT_FASTHUNT},
{"pet"," pet",ACT_PET,},
{"untouchable"," untouchable",ACT_UNTOUCHABLE},
{"practitioner"," practitioner",ACT_PRACTICE},
{"scramble"," scramble",ACT_SCRAMBLE},
{"mountable"," mountable",ACT_MOUNTABLE},
{"angry"," angry",ACT_ANGRY},
{"teller"," teller",ACT_BANK_TELLER},
{"dealer", " dealer", ACT_DEALER},
{"attitude"," attitude",ACT_ATTITUDE},
{"r_weapons"," r_weapons",REPAIRS_ONE},
{"r_armors"," r_armors",REPAIRS_TWO},
{"avenged"," avenged",ACT_AVENGED},
{"reboot_only"," reboot_only"},
{"stayoffroad"," stayoffroad",ACT_STAYOFFROAD},
{"soloyell"," soloyell",ACT_SOLOYELL},
{ "end_of_list", " nothing", 0}
};



const struct flag_data act_3[] = {

  {"3guard_door", " 3guard_door", ACT3_GUARD_DOOR},
  {"3guard_opp", " 3guard_opp", ACT3_GUARD_DOOR_ALIGN},
  {"3ride"," 3ride",ACT3_RIDE},
  {"3follower"," 3follower",ACT3_FOLLOW},
  {"3mute"," 3mute",ACT3_MUTE},
  {"3sleeper"," 3sleeper",ACT3_SLEEP},
  {"3stayroad"," 3stayroad",ACT3_STAYROAD},
  {"3regenerate"," 3regenerate",ACT3_REGENERATE},
  { "end_of_list", " nothing", 0}
};


const struct flag_data act_4[] = {

{"4enterscript"," 4enter",ACT4_ENTERSCRIPT},
{"4leavescript"," 4leave",ACT4_LEAVESCRIPT},
{"4commandscript"," 4command",ACT4_COMMANDSCRIPT},
{"4quicktick"," 4quicktick",ACT4_QUICKTICK},
{"4movescript"," 4move",ACT4_MOVESCRIPT},
{"4rests"," 4rests",ACT4_REST},
{"4killallone"," 4killallone",ACT4_KILLALLONE},
{"4killalltwo"," 4killalltwo",ACT4_KILLALLTWO},
{"4sleepaggro"," 4sleepaggro",ACT4_SLEEPAGGRO},
{"4killopp"," 4killopp",ACT4_KILL_OPP},
{"4protector"," 4protector",ACT4_PROTECTOR},
{"4ranger"," 4ranger",ACT4_RANGER},
{"4summoner"," 4summoner",ACT4_SUMMONER},
 {"4rescue_one"," 4rescue_one",ACT4_RESCUEONE},
{"4rescue_two"," 4rescue_two",ACT4_RESCUETWO},
{"4killgladiator"," 4killgladiator", ACT4_KILLGLADIATOR},
{"4assistone"," 4assistone",ACT4_ASSISTONE},
{"4assisttwo"," 4assisttwo",ACT4_ASSISTTWO},
{"4assistall"," 4assistall",ACT4_ASSISTALL},
{"4kill_clan"," 4kill_clan",ACT4_KILL_CLAN},
{ "end_of_list", " nothing", 0}
};

/* These are the maladictions (HURT) and shields and protections... */

const struct flag_data affect_flags1[] =
{
  {"blind", " Blind", BLIND},
  {"poison", " Poison", POISON},
  {"plague", " Plague", PLAGUE},
  {"curse", " Curse", CURSE},
  {"confuse", " Confuse", CONFUSE},
  {"outline", " Outline", OUTLINE},
  {"wound", " Wound", WOUND},
  {"lethargy", " Lethargy", LETHARGY},
  {"mindsap", " Mindsap", MINDSAP},
  {"paralyze", " Paralyze", PARALYZE},
  {"charm", " Charm", CHARM},
  {"fear", " Fear", FEAR},
  {"slow", " Slow", SLOW},
  {"fumble", " Fumble", FUMBLE},
  {"beacon", " Beacon", BEACON},
  {"mute", " Mute", MUTE},
  {"deaf", " Deaf", DEAF},
  {"numb", " Numb", NUMB},
  {"sleep", " Sleep", SLEEP},
  {"gas", " Gas", GAS},
  {"wind", " Wind", WIND},
  {"acid", " Acid", ACID},
  {"chaos", " Chaos", CHAOS},
  {"shards", " Shards", SHARDS},
  {"shock", " Shock", SHOCK},
  {"ice", " Ice", ICE},
  {"fire", " Fire", FIRE},
  { "end_of_list", " nothing", 0}
};
const struct flag_data affect_flags2[] =
{
  {"invis", " Invis", INVIS},
  {"hide", " Hide", HIDE},
  {"chameleon", " Chameleon", CHAMELEON},
  {"vanish", " Vanish", VANISH},
  {"foggy", " Foggy", FOGGY},
  {"dark", " Dark", DARK},
  {"cold", " Cold", COLD},
  {"sneak", " Sneak", SNEAK},
  {"magic", " Magic", MAGIC},
  {"sanctuary", " Sanctuary", SANCTUARY},
  {"flying", " Flying", FLYING},
  {"regenerate", " Regenerate", REGENERATE},
  {"mindshield", " Mindshield", MINDSHIELD},
  {"water_breath", " Water_Breath", WATER_BREATH},
  {"prot_align", " Prot_Align", PROT_ALIGN},
  {"speed", " Speed", SPEED},
  {"safe", " Safe", SAFE},
  {"reflect", " Reflect", REFLECT},
  {"protect", " Protect", PROTECT},
  {"gas", " Gas", GAS},
  {"wind", " Wind", WIND},
  {"acid", " Acid", ACID},
  {"chaos", " Chaos", CHAOS},
  {"shards", " Shards", SHARDS},
  {"shock", " Shock", SHOCK},
  {"ice", " Ice", ICE},
  {"fire", " Fire", FIRE},
  {"ethereal", " Ethereal", ETHEREAL}
  { "end_of_list", " nothing", 0}
};

const struct flag_data  augment_flagss[] = 
{

  { "leg_armor", " Leg-Armor", AUG_LEG_ARMOR},
  { "body_armor", " Body-Armor", AUG_BODY_ARMOR},
  { "head_armor", " Head-Armor", AUG_HEAD_ARMOR},
  { "arm_armor", " Arm-Armor", AUG_ARM_ARMOR},
  { "body_strength", " Body-Strength", AUG_BODY_STR},
  { "hand_strength", " Hand-Strength", AUG_HAND_STR},
  { "leg_strength", " Leg-Strength", AUG_LEG_STR},
  { "arm_strength", " Arm-Strength", AUG_ARM_STR},
  { "head_int", " Head-Int", AUG_HEAD_INT},
  { "head_wis", " Head-Wis", AUG_HEAD_WIS},
  { "face_spike", " Face-Spike", AUG_FACE_SPIKE},  
  { "hand_speed", " Hand-Speed", AUG_HAND_SPD},
  { "foot_speed", " Foot-Speed", AUG_FOOT_SPD},
  { "leg_speed", " Leg-Speed", AUG_LEG_SPD},
  { "foot_strength", " Foot-Strength", AUG_FOOT_STR},
  { "foot_armor", " Foot-Armor", AUG_FOOT_ARMOR},
  { "mana_boost", " Mana-Boost", AUG_MANA_BOOST},
  { "channeling", " Channeling", AUG_CHANNEL},
  { "mental_armor", " Mental-Armor", AUG_MENTAL_ARMOR},
  { "concentration", " Concentration", AUG_CONCENTRATION},
  { "end_of_list", " nothing", 0}
};




const struct flag_data extra_flagss[] =
{

  { "glow", " Glow", ITEM_GLOW},
  { "hum", " Hum", ITEM_HUM},
  { "dropscript", "", ITEM_DROPSCRIPT},
  { "item_invis", " Item Invis", ITEM_INVIS},
  { "magic", " Magic", ITEM_MAGIC},
  { "nodrop", " Nodrop", ITEM_NODROP}, 
  { "givescript", "", ITEM_GIVESCRIPT},
  { "vampiric", " Vampiric", ITEM_VAMPIRIC},
  { "noremove", " Noremove", ITEM_NOREMOVE},
  { "inventory", " Inventory", ITEM_INVENTORY},
  { "nosave", " Nosave", ITEM_NOSAVE},
  { "commandscript", "", ITEM_COMMANDSCRIPT},
  { "unseen", " Unseen", ITEM_UNSEEN},
  { "piercing", " Piercing", ITEM_PIERCE},
  { "slashing", " Slashing", ITEM_SLASHING},
  { "heavy_slash", " Heavy_Slash", ITEM_HEAVY_SLASH},
  { "light_slash", " Light_Slash", ITEM_LIGHT_SLASH},
  { "whip", " Whip", ITEM_WHIP},
  { "concussion", " Concussion", ITEM_CONCUSSION},
  { "nostore", " Nostore", ITEM_NOSTORE},
  { "polearm", " Polearm", ITEM_POLEARM},
  { "power", " Power", ITEM_POWER},
  { "end_of_list", " nothing", 0}
  
};
const struct flag_data room_flags2[] =
{
 { "fallsfast", " fallsfast", ROOM2_FALLSFAST},
 { "extraheal", " extraheal", ROOM2_EXTRAHEAL},
 { "extramana", " extramana",ROOM2_EXTRAMANA },
 { "moving", " moving",ROOM2_MOVING},
 { "manadrain", " manadrain",ROOM2_MANADRAIN},
 { "firetrap", " firetrap", ROOM2_FIRETRAP},
 { "poisontrap", " poisontrap", ROOM2_POISONTRAP },
 { "arrowtrap", " arrowtrap", ROOM2_ARROWTRAP},
 { "rocktrap", " rocktrap", ROOM2_ROCKTRAP},
 { "spiketrap", " spiketrap", ROOM2_SPIKETRAP},
 { "gastrapone", " gastrapone", ROOM2_GASTRAPONE},
 { "gastraptwo", " gastraptwo", ROOM2_GASTRAPTWO},
 { "geysertrap", " geysertrap", ROOM2_GEYSERTRAP},
 { "avalanche", " avalanche", ROOM2_AVALANCHE},
 { "acidspray", " acidspray", ROOM2_ACIDSPRAY},
 { "end_of_list", " nothing", 0}

};
const struct flag_data room_flagss[] =
{

  { "dark", " dark", ROOM_DARK},
  { "no_mobs", " no_mobs", ROOM_NO_MOB},
  { "indoors", " indoors", ROOM_INDOORS},
  { "lowmagic", " lowmagic", ROOM_LOWMAGIC},
  { "highmagic", " highmagic", ROOM_HIGHMAGIC},
  { "underground", " underground", ROOM_UNDERGROUND},
  { "pet_shop", " pet_shop", ROOM_PET_SHOP},

 
  { "nohear", " nohear", ROOM_NOHEAR},
  { "noisy", " noisy", ROOM_NOISY},
  { "no_summon", " no_summon", ROOM_NOSUMMON},
  { "untrackable", " untrackable", ROOM_UNTRACKABLE},

  { "nomagic", " nomagic", ROOM_NOMAGIC},
  { "silence", " silence", ROOM_SILENCE},
  { "norecall", " norecall", ROOM_NO_RECALL},
  { "clanstore", " clanstore", ROOM_CLANSTORE},
  { "commandscript", " Commandscript", ROOM_COMMANDSCRIPT},
  { "enterscript", " Enterscript", ROOM_ENTERSCRIPT},
 { "leavescript", " leavescript", ROOM_LEAVESCRIPT},
 { "dropscript", " dropscript", ROOM_DROPSCRIPT},
 { "getscript", " getscript", ROOM_GETSCRIPT},
{ "shaded", " shaded", ROOM_SHADED},
{ "lit", " lit", ROOM_LIT},
  { "end_of_list", " nothing", 0}

};




const struct flag_data spell_flags2[]=
{
  { "astral", " Astral", SPELL_ASTRAL},
  { "summon", " Summon", SPELL_SUMMON},
  { "teleport", " Teleport", SPELL_TELEPORT},
  { "message", " Message", SPELL_MESSAGE},
  { "dispel_magic", " Dispel_Magc", SPELL_DISPEL_MAGIC},
  { "identify", " Identify", SPELL_IDENTIFY },
  { "locate_object", " Locate_Object", SPELL_LOCATE_OBJECT },
  { "scry", " Scry", SPELL_SCRY},
  { "locate_person", " Locate_Person", SPELL_LOCATE_PERSON},
  { "recall", " Recall", SPELL_RECALL},
  { "charm_person", " Charm_Person", SPELL_CHARM_PERSON},
  { "obj_to_room", " Obj_To_Room", SPELL_OBJ_TO_ROOM },
  { "mob_to_room", " Mob_To_Room", SPELL_MOB_TO_ROOM },
  { "portal", " Portal", SPELL_PORTAL},
  { "detect_align", " Detect_Align", SPELL_DETECT_ALIGN},
  { "necromancy", " Necromancy", SPELL_NECROMANCY},
 { "end_of_list", " nothing", 0}
};

const struct flag_data spell_flagss[]=
{
  { "acid", " Acid", SPELL_ACID },
  { "firespell", " Firespell", SPELL_FIRE},
  { "ice", " Ice", SPELL_ICE},
  { "shock", " Shock", SPELL_SHOCK},
  { "wind", " Wind", SPELL_WIND},
  { "shard", " Shard", SPELL_SHARD},
  { "vampiric", " Vampiric", SPELL_VAMPIRIC},
  { "remove_bit", " Removes_Bit", SPELL_REMOVES_BIT},
  { "heals_dam", " Heals_Dam", SPELL_HEALS_DAM },
  { "dam1/2", " Dam1/2", SPELL_HALVED_SAVE},
  { "two_saves", " Two_Saves", SPELL_TWO_SAVES},
  { "mass_distortion", "Mass_Distortion", SPELL_MASS_DISTORTION},
  { "add_move", " Add_Move", SPELL_ADD_MOVE},
 { "end_of_list", " nothing", 0}
};



struct race_data race_info[RACE_COUNT];


/* Alignments will get bonuses just like races will...usually smaller amounts tho. */

struct race_data align_info[NUM_ALIGN];

const struct color_data color_table[] =
{
  {"\x1b[0;30m", "$R$0", "black", 0},
  {"\x1b[0;34m", "$R$1", "blue", 1},
  {"\x1b[0;32m", "$R$2", "green", 2},
  {"\x1b[0;36m", "$R$3", "cyan", 3},
  {"\x1b[0;31m", "$R$4", "red", 4},
  {"\x1b[0;35m", "$R$5", "purple", 5},
  {"\x1b[0;33m", "$R$6", "brown", 6},
  {"\x1b[0;37m", "$R$7", "grey", 7},
  {"\x1b[1;30m", "$B$0", "dark_grey", 8},
  {"\x1b[1;34m", "$B$1", "light_blue", 9},
  {"\x1b[1;32m", "$B$2", "light_green", 10},
  {"\x1b[1;36m", "$B$3", "light_cyan", 11},
  {"\x1b[1;31m", "$B$4", "light_red", 12},
  {"\x1b[1;35m", "$B$5", "magenta", 13},
  {"\x1b[1;33m", "$B$6", "yellow", 14},
  {"\x1b[1;37m", "$B$7", "white", 15},
  {"\x1b[1m", "$B", "bold", 16},
  {"\x1b[5m", "$F", "flashing", 17},
  {"\x1b[7m", "$I", "inverse", 18},
  {"\x1b[0m", "$R", "normal", 19}
};




const struct attack_type attack_table[] =
{
  {"hit", TYPE_HIT},		/*  0   */
  {"slice", TYPE_SLASH},	/*  1   */
  {"stab", TYPE_PIERCE},
  {"slash", TYPE_SLASH},
  {"whip", TYPE_WHIP},
  {"claw", TYPE_SLASH},		/*  5   */
  {"hammer", TYPE_POUND},
  {"pound", TYPE_POUND},
  {"crush", TYPE_POUND},
  {"gore", TYPE_PIERCE},
  {"bite", TYPE_PIERCE},	/*  10  */
  {"pierce", TYPE_PIERCE},
  {"cleave", TYPE_SLASH},
  {"stab", TYPE_POLEARM},
  {"slice", TYPE_POLEARM},    
  {"cleave", TYPE_POLEARM},    /* 15 */
  {"wail", TYPE_HIT},
  {"wail", TYPE_HIT},
  {"wail", TYPE_HIT},
  {"wail", TYPE_HIT},
  {"wail", TYPE_HIT},
  {"wail", TYPE_HIT},
  {"wail", TYPE_HIT},
  {"wail", TYPE_HIT}
};






const struct liq_type liq_table[LIQ_MAX + 4] =
{
  {"water", "clear",
   {0, 1, 10}},			/*  0 */
  {"beer", "amber",
   {1, 2, 5}},
  {"wine", "rose",
   {2, 2, 5}},
  {"ale", "brown",
   {2, 2, 5}},
  {"brandy", "dark",
   {5, 2, 5}},
  {"whisky", "golden",
   {6, 1, 4}},			/*  5 */
  {"everclear", "golden",
   {10, 0, 0}},
  {"rum", "brown",
   {3, 3, 3}},
  {"salt water", "clear",
   {0, 1, -2}},
  {"milk", "white",
   {0, 3, 6}},
  {"unused", "none",
   {-1, 1, 6}},			/* 10 */
  {"tea", "tan",
   {0, 1, 6}},
  {"blood", "red",
   {0, 2, -1}},
  {"unblood", "green",
   {0, 2, -2}},
  {"lemonade", "yellow",
   {0, 1, 8}},
  {"slime", "green",
   {0, 3, 3}},
  {"coffee", "black",
   {0, 1, 4}},
  {"cider", "brown",
   {0, 1, 6}},
  {"citrus", "yellow",
   {0, 1, 8}},
  {"citrus", "yellow",
   {0, 1, 8}}
};

int roll_values[NUM_ROLLS][6][NUM_STATS][2] =


/* Across stats STR INT WIS DEX CON LCK WIL CHA, Down are rolls A-F */
{ 
  {{{6,6},{3,3},{2,2},{3,7},{6,7},{2,6}, {3,4}, {5,7}},
   {{3,3},{6,6},{4,4},{4,7},{4,7},{1,5}, {2,5}, {4,5}},
   {{3,3},{4,4},{5,5},{4,6},{4,7},{2,5}, {1,6}, {3,4}},
   {{4,4},{4,4},{3,3},{5,6},{4,8},{1,7}, {4,8}, {2,4}},
   {{4,4},{2,4},{4,4},{4,7},{5,6},{2,4}, {2,5}, {4,7}},
   {{6,6},{4,4},{5,5},{1,6},{1,6},{3,6}, {3,7}, {3,5}}},
  
  /* Second Roll */
  
  {{{2,2},{2,2},{2,2},{2,2},{2,2},{2,2}, {2,2}, {2,2}},
   {{4,4},{0,0},{0,0},{3,3},{4,4},{2,2}, {0,0}, {3,3}},
   {{2,2},{3,3},{3,3},{2,2},{0,0},{2,2}, {2,2}, {2,2}},
   {{0,0},{4,4},{3,3},{3,3},{0,0},{2,2}, {3,3}, {2,2}},
   {{2,2},{0,0},{3,3},{3,3},{3,3},{2,2}, {3,3}, {2,2}},
   {{2,2},{2,2},{2,2},{3,3},{1,1},{2,2}, {2,2}, {1,1}}},
  
  /* Third Roll */
  
  {{{2,2},{2,2},{2,2},{2,2},{2,2},{2,2}, {2,2}, {2,2}},
   {{3,3},{0,0},{0,0},{3,3},{4,4},{1,1}, {0,0}, {3,3}},
   {{2,2},{3,3},{4,4},{2,2},{0,0},{2,2}, {2,2}, {3,3}},
   {{0,0},{4,4},{3,3},{3,3},{0,0},{3,3}, {3,3}, {2,2}},
   {{3,3},{0,0},{2,2},{2,2},{3,3},{1,1}, {1,1}, {3,3}},
   {{1,1},{3,3},{2,2},{3,3},{1,1},{2,2}, {3,3}, {2,2}}},
  
  /* Fourth Roll */
  
  {{{5,13},{4,7},{4,7},{6,12},{7,13},{6,10}, {5,10},  {5,10}},
   {{4,6},{8,15},{6,12},{6,13},{4,6},{6,11}, {8,13},  {7,12}},
   {{3,10},{3,12},{3,12},{3,9},{3,11},{5,12}, {5,12}, {5,12}},
   {{5,10},{4,10},{7,11},{5,10},{6,11},{6,11}, {6,11},{6,11}},
   {{6,11},{5,12},{7,12},{6,9},{3,8},{6,11}, {8,13},  {6,10}},
   {{8,12},{4,8},{5,10},{6,9},{6,13},{5,10}, {5,9},   {9,13}}},
};






/* Spell Gsn, Ingredients (560 + number = vnum of herb), timer, mortar equipment level */ 


/* ALWAYS ALWAYS ALWAYS USE 0 FOR THINGS THAT ARE NOT INGREDIENTS..NEVER
   NEGATIVE AND ALWAYS MAKE SURE THE POTION INGREDIENT NUMBER IS LESS
   THAN OR EQUAL TO 42 SINCE THAT IS THE MAX NUMBER OF HERBS WE HAVE!!! */
const struct potion_ingredients pot_info[] =
{
  {44, {1,21,34,4,9, 9,9,9,0,0},            20,  6}, /* Heal Crit */
  {60, {3,7,2,26,2, 0,0,0,0,0},        20,  2}, /* Refresh */
{48, {3,7,2,26,2, 2,2,0,0,0},        20,  2}, /* Refresh */
  {45, {11,22,33,9,9, 9,9,0,0,0},      100, 8}, /* Healing */
  {44, {1,3,5,7,9, 9,9,0,0,0},            20,  4}, /* Heal serious */
  {44, {1,21,34,4,26, 0,0,0,0,0},            100,  8}, /* cureall */
  {45, {9,9,9,9,9, 9,9,9,9,9},      100, 8}, /* divine */
  {45, {11,22,33,9,9, 9,9,0,0,0},      100, 8}, /* purif */
  {6,  {8,0,31,23,3, 22,26,0,5,0},       20,  10}, /* Protection*/
  {10,  {0,0,5,15,25, 25,30,27,26,0},       100,  6}, /* D-invis */
  {11,  {3,8,17,26,33, 0,0,0,0,0},       100,  4}, /* infra */
  {12,  {6,12,18,26,30, 36,7,28,0,0},       50,  7}, /* d-hidden */
  {14,  {13,26,38,35,36, 32,0,0,0,0},       100,  3}, /* Fly */
  {15,  {26,33,41,42,40, 0,0,0,0,14},       10,  8}, /* water breath */
  {22,  {26,26,26,26,26, 26,26,26,26,26},       20,  12}, /* Passdoor */
  {29,  {31,37,41,5,8, 13,19,21,23,24},       20,  4}, /* bless */
  {30,  {2,7,13,20,28, 37,8,9,11,14},       10,  7}, /* war-bless */
  {32,  {22,23,25,28,32, 37,1,8,16,0},       10,  11}, /* haste */
  {33,  {32,4,6,31,40, 38,29,31,27,7},       10,  3}, /* battle */
  {36,  {13,19,0,0,0, 0,0,0,0,0},       100,  1}, /* minor */
  {37,  {13,19,27,0,0, 0,0,0,0,0},       80,  2}, /* Shield */
  {38,  {13,19,27,17,0, 0,0,0,0,0},       60,  3}, /* major */
  {39,  {13,19,27,17,21, 0,0,0,0,0},       40,  5}, /* Shell */
  {40,  {13,19,27,9,13, 18,0,0,0,0},       20,  7}, /* stone */
  {41,  {13,19,27,31,36, 42,7,0,0,0},       10,  9}, /* warding */
  {-1, {0,0,0,0,0,0,0,0,0,0},        0,    0}, /* End of List keep -1 there */
};



const struct item_info item_types[] =
{
  { "armor", ITEM_ARMOR ,"This helps protect you against damage."},
{ "weapon", ITEM_WEAPON ,"This helps you attack people."},
{ "raw", ITEM_RAW ,"This is a raw material used to create other items."},
{ "food", ITEM_FOOD ,"You eat this."},
{ "container", ITEM_CONTAINER ,"You can put items into this."},
  { "drink", ITEM_DRINK_CON ,"You can drink liquids out of this."},
{ "gem", ITEM_GEM ,"This stores magical energy."},
{ "light", ITEM_LIGHT ,"This lets you see in the dark when lit."},
{ "tool", ITEM_TOOL ,"This item lets you perform certain kinds of tasks like picking locks and mining."},
{ "ammo", ITEM_AMMO ,"This can be shot out of a missile weapon."},
  { "treasure", ITEM_TREASURE ,"This item can be sold for money."},
{ "potion", ITEM_POTION ,"You can quaff this item to gain spell effects."},
{ "book", ITEM_BOOK ,"You can study this item to learn new skills."},
{ "furniture", ITEM_FURNITURE ,"Spiffs up any room and can sometimes be used as a portal."},
{ "trash", ITEM_TRASH ,"Can be used to make blocking items."},
  { "key", ITEM_KEY ,"This will open up locked doors."},
{ "scroll", ITEM_SCROLL ,"You can recite this item on a target to cast spells at it."},
{ "wand", ITEM_WAND ,"You can zap a target with this item to cast spells at it."},
{ "vehicle", ITEM_VEHICLE ,"This item will help you traverse harsher terrain types."},
{ "npc_corpse", ITEM_CORPSE_NPC ,"This is a mob corpse. DO NOT MAKE THESE!!!"},
  { "pc_corpse", ITEM_CORPSE_PC ,"This is a player corpse. DO NOT MAKE THESE!!!!"},
{ "fountain", ITEM_FOUNTAIN ,"This can be drunk from, and can cast spells on the drinker."},
{ "pill", ITEM_PILL ,"Casts spells on whoever eats it."},
{ "staff", ITEM_STAFF ,"This item casts spells on everyone in the room with the person who brandishes it."},
{ "climbable", ITEM_CLIMBABLE ,"This item allows you to climb up or down to different rooms."},
  { "scalable", ITEM_SCALABLE ,"This item allows you to climb up or down to different rooms but requires a device to do it."},
{ "scale_dev", ITEM_SCALE_DEV ,"This item allows you to scale scalable objects."},
{ "map", ITEM_MAP ,"Does nothing - but may in the future allow for something."},
{ "trap", ITEM_TRAP ,"This item can be set onto doors, rooms, or chests to trap it."},
{ "powershield", ITEM_SHIELD, "This item puts up a shield around the character that absorbs some damage and regenerates quickly."},
{ "missile", ITEM_MISSILE, "This item shoots things."},
{ "nuke", ITEM_NUKE, "This item is not saved."},
{ "unknown", ITEM_MAX ,"This is nothing."},
  };



/* These are the names of the affect locations. They are set up so
that they are the same as APPLY_XXX in mud.h */

char *const apply_loc_names[]= 
{

"none",
"strength",
"dexterity",
"intelligence",
"wisdom",
"constitution",
"luck",
"willpower",
"charisma",
"none",
"none",
"none",
"mana",
"hp",
"move",
"none",
"none",
"ac",
"hit",
"dam",
"save",
"none",
"kick",
"sneak",
"hide",
"warmth",
"random_stat"
};


char *const stat_short_name[]=
{
"str",
"int",
"wis",
"dex",
"con",
"lck",
"wil",
"cha"
};

char *const stat_long_name[]=
{
"strength",
"intelligence",
"wisdom",
"dexterity",
"constitution",
"luck",
"willpower",
"charisma"
};


char *const att_word_name[NUM_STATS*6] =
{
  "Weakling",
  "Fairly Weak",
  "Well-Toned",
  "Very Strong",
  "Extremely Strong",
  "Incredibly Strong",

  "Brainless",
  "Pretty Dumb",
  "Moderately Intelligent",
  "Very Smart",
  "Extremely Smart",
  "Genius",

  "No Common Sense",
  "Ignorant",
  "Good Common Sense",
  "Very Wise",
  "Extremely Wise",
  "Sage-Like",

  "Snail-Like",
  "Lethargic",
  "Average Dexterity",
  "Above Average Dexterity",
  "Very Quick",
  "Speed Demon",

  "Flabby",
  "Overweight",
  "Average Constitution",
  "Tough",
  "Very Tough",
  "Amazingly Durable",

  "Unlucky",
  "Moderate Luck",
  "Good Luck",
  "Very Lucky",
  "Extremely Lucky",
  "Irish Luck",

  "Sheep",
  "Pliable",
  "Willful",
  "Self-thinker",
  "Powerful Will",
  "Unshakable Will",

  "Mog",
  "Annoying",
  "Known",
  "Well Liked",
  "Very Personable",
  "Natural Leader"
};

unsigned short resist_costs[] =
{
10,
1,
1,
1,
3, /* Confuse */
5,
3,
3,
4,
8, /* Paralyze */
4,
5,
4,
6,
20, /* Beacon */
7,
5,
5,
0,
5,
5,
5,
5, /* Chaos */
5,
5,
5,
5};