/**************************************************************************/ // const.cpp - constant tables (well were all constant once upon a time) /*************************************************************************** * The Dawn of Time v1.69r (c)1997-2004 Michael Garratt * * >> A number of people have contributed to the Dawn codebase, with the * * majority of code written by Michael Garratt - www.dawnoftime.org * * >> To use this source code, you must fully comply with all the licenses * * in licenses.txt... In particular, you may not remove this copyright * * notice. * *************************************************************************** * >> Original Diku Mud copyright (c)1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, & Katja Nyboe. * * >> Merc Diku Mud improvements copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * >> ROM 2.4 is copyright 1993-1995 Russ Taylor and has been brought to * * you by the ROM consortium: Russ Taylor(rtaylor@pacinfo.com), * * Gabrielle Taylor(gtaylor@pacinfo.com) & Brian Moore(rom@rom.efn.org) * * >> Oblivion 1.2 is copyright 1996 Wes Wagner * **************************************************************************/ #include "include.h" // dawn standard includes #include "magic.h" #include "interp.h" #include "d2magsys.h" #define IMO LEVEL_IMMORTAL char * const he_she [] = { "it", "he", "she" }; char * const him_her [] = { "it", "him", "her" }; char * const his_her [] = { "its", "his", "her" }; /***************************************************************************/ /* item type list */ const struct item_type item_table [] = { { 0, ""}, { ITEM_LIGHT, "light" }, { ITEM_SCROLL, "scroll" }, { ITEM_WAND, "wand" }, { ITEM_STAFF, "staff" }, { ITEM_WEAPON, "weapon" }, /* 5 OLC */ { ITEM_COMPONENT, "component" }, // Component { ITEM_RP, "rp" }, { ITEM_TREASURE, "treasure" }, /* 8 OLC */ { ITEM_ARMOR, "armor" }, { ITEM_POTION, "potion" }, { ITEM_CLOTHING, "clothing" }, { ITEM_FURNITURE, "furniture" }, { ITEM_TRASH, "trash" }, /* 13 OLC */ { ITEM_PARCHMENT, "parchment" }, { ITEM_CONTAINER, "container" }, { ITEM_INSTRUMENT, "instrument" }, { ITEM_DRINK_CON, "drink" }, /* 17 OLC */ { ITEM_KEY, "key" }, { ITEM_FOOD, "food" }, { ITEM_MONEY, "money" }, /* 20 OLC */ { ITEM_HERB, "herb" }, { ITEM_BOAT, "boat" }, /* 22 OLC */ { ITEM_CORPSE_NPC, "npc_corpse" }, { ITEM_CORPSE_PC, "pc_corpse" }, { ITEM_FOUNTAIN, "fountain" }, { ITEM_PILL, "pill" }, { ITEM_PROTECT, "protect" }, { ITEM_MAP, "map" }, { ITEM_PORTAL, "portal" }, { ITEM_WARP_STONE, "warp_stone" }, { ITEM_ROOM_KEY, "room_key" }, { ITEM_GEM, "gem" }, { ITEM_JEWELRY, "jewelry" }, { ITEM_JUKEBOX, "jukebox" }, { ITEM_TOKEN, "token" }, { ITEM_POULTICE, "poultice" }, { ITEM_MORTAR, "mortar" }, { ITEM_CAULDRON, "cauldron" }, { ITEM_FLASK, "flask" }, { ITEM_ORE, "ore" }, { 0, NULL } }; /***************************************************************************/ game_settings_type tgs2; #define GETBYTE_OFFSET(field) (int)(((char*) &(tgs2.field)) \ -((char*) &tgs2)) /***************************************************************************/ /* weapon selection table */ const struct weapon_type weapon_table [] = { { "exotic", -1, 0, NULL }, { "sword", GETBYTE_OFFSET(obj_vnum_outfit_sword), WEAPON_SWORD, &gsn_sword }, { "dagger", GETBYTE_OFFSET(obj_vnum_outfit_dagger), WEAPON_DAGGER, &gsn_dagger }, { "staff", GETBYTE_OFFSET(obj_vnum_outfit_staff), WEAPON_STAFF, &gsn_staff }, { "mace", GETBYTE_OFFSET(obj_vnum_outfit_mace), WEAPON_MACE, &gsn_mace }, { "axe", GETBYTE_OFFSET(obj_vnum_outfit_axe), WEAPON_AXE, &gsn_axe }, { "flail", GETBYTE_OFFSET(obj_vnum_outfit_flail), WEAPON_FLAIL, &gsn_flail }, { "whip", GETBYTE_OFFSET(obj_vnum_outfit_whip), WEAPON_WHIP, &gsn_whip }, { "polearm", GETBYTE_OFFSET(obj_vnum_outfit_polearm),WEAPON_POLEARM, &gsn_polearm }, { "sickle", GETBYTE_OFFSET(obj_vnum_outfit_sickle), WEAPON_SICKLE, &gsn_sickle }, { NULL, 0, 0, NULL } }; /***************************************************************************/ /* wiznet table and prototype for future flag setting */ const struct wiznet_type wiznet_table[]={ { "on", WIZ_ON, IM }, { "beta", WIZ_BETA, L6 }, { "bugs", WIZ_BUGS, L6 }, { "deaths", WIZ_DEATHS, IM }, { "flags", WIZ_FLAGS, L5 }, { "levels", WIZ_LEVELS, IM }, { "links", WIZ_LINKS, L7 }, { "load", WIZ_LOAD, L2 }, { "logins", WIZ_LOGINS, IM }, { "mobdeaths", WIZ_MOBDEATHS, L4 }, { "memcheck", WIZ_MEMCHECK, L2 }, { "newbies", WIZ_NEWBIE, IM }, { "nohelp", WIZ_NOHELP, IM }, { "penalties", WIZ_PENALTIES, L5 }, { "playerlog", WIZ_PLAYER_LOG, L1 }, { "prayers/dreams",WIZ_PRAYERS_DREAMS,IM }, { "questing", WIZ_QUESTING, IM }, { "resets", WIZ_RESETS, L4 }, { "autoon", WIZ_AUTOON, IM }, { "rpexp", WIZ_RPEXP, IM }, { "rpmonitor", WIZ_RPMONITOR, IM }, { "secure", WIZ_SECURE, L2 }, { "sites", WIZ_SITES, L4 }, { "showchannel", WIZ_SHOWCHANNEL,IM }, { "snoops", WIZ_SNOOPS, L2 }, { "spam", WIZ_SPAM, L5 }, { "switches", WIZ_SWITCHES, L2 }, { "thefts", WIZ_THEFTS, IM }, { "ticks", WIZ_TICKS, IM }, { "whispers", WIZ_WHISPERS, IM }, { "newbietells", WIZ_NEWBIETELL, IM }, { NULL, 0, 0 } }; /***************************************************************************/ /* attack table -- not very organized :( */ const struct attack_type attack_table [] = { { "none", "hit", -1 }, // 0 { "slice", "slice", DAM_SLASH }, { "stab", "stab", DAM_PIERCE }, { "slash", "slash", DAM_SLASH }, { "whip", "whip", DAM_SLASH }, { "claw", "claw", DAM_SLASH }, // 5 { "blast", "blast", DAM_BASH }, { "pound", "pound", DAM_BASH }, { "crush", "crush", DAM_BASH }, { "grep", "grep", DAM_SLASH }, { "bite", "bite", DAM_PIERCE }, // 10 { "pierce", "pierce", DAM_PIERCE }, { "suction", "suction", DAM_BASH }, { "beating", "beating", DAM_BASH }, { "digestion", "digestion", DAM_ACID }, { "charge", "charge", DAM_BASH }, // 15 { "slap", "slap", DAM_BASH }, { "punch", "punch", DAM_BASH }, { "wrath", "wrath", DAM_ENERGY }, { "magic", "magic", DAM_ENERGY }, { "divine", "divine power", DAM_HOLY }, // 20 { "cleave", "cleave", DAM_SLASH }, { "scratch", "scratch", DAM_PIERCE }, { "peck", "peck", DAM_PIERCE }, { "peckb", "peck", DAM_BASH }, { "chop", "chop", DAM_SLASH }, // 25 { "sting", "sting", DAM_PIERCE }, { "smash", "smash", DAM_BASH }, { "shbite", "shocking bite",DAM_LIGHTNING }, { "flbite", "flaming bite", DAM_FIRE }, { "frbite", "freezing bite",DAM_COLD }, // 30 { "acbite", "acidic bite", DAM_ACID }, { "chomp", "chomp", DAM_PIERCE }, { "drain", "life drain", DAM_NEGATIVE }, { "thrust", "thrust", DAM_PIERCE }, { "slime", "slime", DAM_ACID }, // 35 { "shock", "shock", DAM_LIGHTNING }, { "thwack", "thwack", DAM_BASH }, { "flame", "flame", DAM_FIRE }, { "chill", "chill", DAM_COLD }, { "gunshot", "gunshot", DAM_PIERCE }, // 40 { "radiance", "radiance", DAM_LIGHT }, // 41 { "phantasm", "phantasm", DAM_ILLUSION }, // 42 { "mental", "mental blast", DAM_MENTAL }, // 43 // if you add any here, make sure to increase MAX_DAMAGE_MESSAGE // at the top of fight.cpp - Kal, Jan 2004 { NULL, NULL, 0 } }; /***************************************************************************/ // Totems const struct totem_type totem_table [TOTEM_MAX+1] = { { TOTEM_BEAR, "bear" }, { TOTEM_STAG, "stag" }, { TOTEM_SWALLOW, "swallow" }, { TOTEM_OSPREY, "osprey" }, { TOTEM_TORTOISE, "tortoise" }, { TOTEM_RAVEN, "raven" }, { TOTEM_BAT, "bat" }, { TOTEM_WOLF, "wolf" }, { TOTEM_SERPENT, "serpent" }, { TOTEM_TOAD, "toad" }, { TOTEM_OWL, "owl" }, { TOTEM_HARE, "hare" } }; /***************************************************************************/ struct classgroup_type classgroup_table[31]= { { "allmage", 0, "All classes with any mage aspect", {A | F,0,0,0,0}, "mage spellfilcher"}, { "allcleric", 1, "All classes with any mage aspect", {B,0,0,0,0},"cleric paladin"}, { "allthief", 2, "All classes with any thief aspect", {C | I,0,0,0,0},"thief spellfilcher"}, { "allwarrior", 3, "All classes with any warrior aspect", {D,0,0,0,0},"warrior paladin ranger"}, { "alldruid", 4, "All classes with any druid aspect", {E,0,0,0,0},"druid ranger"}, { "coremage", 0, "All classes with mage as a core", {A | F,0,0,0,0}, "mage"}, { "corecleric", 1, "All classes with cleric as a core", {B,0,0,0,0},"cleric"}, { "corethief", 2, "All classes with thief as a core", {C | I,0,0,0,0},"thief spellfilcher"}, { "corewarrior", 3, "All classes with warrior as a core", {D,0,0,0,0},"warrior paladin ranger"}, { "coredruid", 4, "All classes with druid as a core", {E,0,0,0,0},"druid"}, { "corecivilian", 5, "All classes with civilian as a core", {J,0,0,0,0},""}, { "", 0, ""} }; /* struct objrestrict_affect_type { char * name; char * description; int flags; char * wear_message; sh_int wear_location; sh_int wear_amount; char * //forced_drop_message; char * remove_message; sh_int move_chance; // how often the move affect will happen - percentage sh_int move_location; sh_int move_amount; char * move_message; sh_int tick_chance; // how often the tick affect will happen - percentage sh_int tick_location; sh_int tick_amount; char * tick_message; }; */ /***************************************************************************/ struct affectprofile_type affectprofile_table[50]= { { "mage-armour", //name "Affects when a mage puts on armour", //description 0, //flags "You feel a dampening sensation as you put $p on.", //wear_message APPLY_MANA, //wear_location -300, //wear_amount "", //forced_drop_message "The dampening sensation from $p lifts as you remove it.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "cleric-armour", //name "Affects when a cleric puts on armour", //description 0, //flags "You are overwhelmed by an emptiness as you put on $p.", //wear_message APPLY_MANA, //wear_location -300, //wear_amount "", //forced_drop_message "The emptiness is lifted as you remove $p.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "" //message }, { "druid-armour", //name "Affects when a druid puts on armour", //description 0, //flags "You feel out of touch with nature as you put $p on.", //wear_message APPLY_MANA, //wear_location -300, //wear_amount "", //forced_drop_message "You feel more in touch with nature as you remove $p on.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "thief-armour", //name "Affects when a thief puts on armour", //description 0, //flags "Your movements are encumbered as you put on $p.", //wear_message APPLY_QU, //wear_location -50, //wear_amount "", ////forced_drop_message "Your movements are less encumbered as you remove $p.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "warrior-armour", //name "Affects when a warrior puts on armour", //description 0, //flags "Your battle insticts are blinded by an intense aura as you put $p on.", //wear_message APPLY_AC, //wear_location -100, //wear_amount "", //forced_drop_message "Your feel more intune to your battle insticts as you remove $p.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "mage-weapon-sword", //name "Affects when a mage wields an sword", //description 0, //flags "You feel as though $p is draining your energy as you wield it.", //wear_message APPLY_MANA, //wear_apply -300, //wear_amount "", ////forced_drop_message "The draining sensation from $p appears to have been subdued.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "mage-weapon-axe", //name "Affects when a mage wields an axe", //description 0, //flags "You can barely lift $p over your head.", //wear_message APPLY_ST, //wear_apply -100, //wear_amount "", ////forced_drop_message "Your movements are less burdened as you stop wielding $p.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "mage-weapon-polearm", //name "Affects when a mage wields an polearm", //description 0, //flags "You can barely lift $p over your head.", //wear_message APPLY_ST, //wear_apply -100, //wear_amount "", ////forced_drop_message "Your movements are less burdened as you stop wielding $p.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "mage-weapon-flail", //name "Affects when a mage wields an flail", //description 0, //flags "You feel as though $p is draining your energy as you wield it.", //wear_message APPLY_MANA, //wear_apply -300, //wear_amount "", ////forced_drop_message "The draining sensation from $p appears to have been subdued.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "mage-weapon-club", //name "Affects when a mage wields an club", //description 0, //flags "You feel as though $p is draining your energy as you wield it.", //wear_message APPLY_MANA, //wear_apply -300, //wear_amount "", ////forced_drop_message "The draining sensation from $p appears to have been subdued.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "druid-weapon-nonnatural", //name "Affects when a druid wields an non-natural weapon", //description 0, //flags "The stink of $p brings on a nauseating feeling.", //wear_message APPLY_MANA, //wear_apply -300, //wear_amount "", ////forced_drop_message "The nauseating feeling from $p appears to have subdued.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "thief-weapon-polearm", //name "Affects when a thief wields an polearm", //description 0, //flags "You can barely lift $p over your head.", //wear_message APPLY_ST, //wear_apply -100, //wear_amount "", ////forced_drop_message "Your movements are less burdened as you stop wielding $p.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "thief-weapon-flail", //name "Affects when a thief wields an flail", //description 0, //flags "You can barely lift $p over your head.", //wear_message APPLY_ST, //wear_apply -100, //wear_amount "", ////forced_drop_message "Your movements are less burdened as you stop wielding $p.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "thief-weapon-sword", //name "Affects when a thief wields an sword", //description 0, //flags "Your movements are encumbered as you wield $p.", //wear_message APPLY_QU, //wear_apply -100, //wear_amount "", ////forced_drop_message "Your movements are less encumbered as you stop wielding $p.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, { "thief-weapon-axe", //name "Affects when a thief wields an axe", //description 0, //flags "Your movements are encumbered as you wield $p.", //wear_message APPLY_QU, //wear_apply -100, //wear_amount "", ////forced_drop_message "Your movements are less encumbered as you stop wielding $p.", //remove_message // == movement == // 0, //chance APPLY_NONE, //location 0, //amount "", //message // == ticks == // 0, //chance APPLY_NONE, //location 0, //amount "", //message }, // MARK END OF TABLE {""} }; /* { "mage-armour", // name "Affect when mages put on armour", // description 0, // flags "You feel a dampening sensation as you put $p on.", // wear_message APPLY_MANA, // wear_location -300, // wear_amount "", // //forced_drop_message "The dampening sensation from $p lifts as you remove it.",// remove_message // == movement == // 0, //chance 0, // location 0, // amount "",// message // ==- ticks -== // 0, //chance 0, // location 0, // amount ""// message }, { "mage-weapon-sword", // name "Affect when mages wields a sword", // description 0, // flags "You feel as though $p is draining your energy as you wield it.", // wear_message APPLY_MANA, // wear_location -300, // wear_amount "", // //forced_drop_message "The draining sensation from $p appears to have been subdued.",// remove_message // == movement == 0, //chance 0, // location 0, // amount "",// message // ==- ticks -== 0, //chance 0, // location 0, // amount ""// message }, */ /***************************************************************************/ /* * Class table. */ struct class_type class_table [MAX_CLASS+1] = { { NULL, "", {0, 0} } }; /***************************************************************************/ /* * Liquid properties. * Used in world.obj. */ const struct liq_type liq_table [] = { // name color proof, full, thirst, food, ssize { "water", "clear", { 0, 1, 10, 0, 16 } }, { "beer", "amber", { 12, 1, 8, 1, 12 } }, { "red wine", "burgundy", { 30, 1, 8, 1, 5 } }, { "ale", "brown", { 15, 1, 8, 1, 12 } }, { "dark ale", "dark", { 16, 1, 8, 1, 12 } }, { "whisky", "golden", { 120, 1, 5, 0, 2 } }, { "lemonade", "pink", { 0, 1, 9, 2, 12 } }, { "firebreather", "boiling", { 190, 0, 4, 0, 2 } }, { "local specialty", "clear", { 151, 1, 3, 0, 2 } }, { "slime mold juice", "green", { 0, 2, -8, 1, 2 } }, { "milk", "white", { 0, 2, 9, 3, 12 } }, { "tea", "tan", { 0, 1, 8, 0, 6 } }, { "coffee", "black", { 0, 1, 8, 0, 6 } }, { "blood", "red", { 0, 2, -1, 2, 6 } }, { "salt water", "clear", { 0, 1, -2, 0, 1 } }, { "coke", "brown", { 0, 2, 9, 2, 12 } }, { "root beer", "brown", { 0, 2, 9, 2, 12 } }, { "elvish wine", "green", { 35, 2, 8, 1, 5 } }, { "white wine", "golden", { 28, 1, 8, 1, 5 } }, { "champagne", "golden", { 32, 1, 8, 1, 5 } }, { "mead", "honey-coloured",{ 34, 2, 8, 2, 12 } }, { "rose wine", "pink", { 26, 1, 8, 1, 5 } }, { "benedictine wine", "burgundy", { 40, 1, 8, 1, 5 } }, { "vodka", "clear", { 130, 1, 5, 0, 2 } }, { "cranberry juice", "red", { 0, 1, 9, 2, 12 } }, { "orange juice", "orange", { 0, 2, 9, 3, 12 } }, { "absinthe", "green", { 200, 1, 4, 0, 2 } }, { "brandy", "golden", { 80, 1, 5, 0, 4 } }, { "aquavit", "clear", { 140, 1, 5, 0, 2 } }, { "schnapps", "clear", { 90, 1, 5, 0, 2 } }, { "icewine", "purple", { 50, 2, 6, 1, 5 } }, { "amontillado", "burgundy", { 35, 2, 8, 1, 5 } }, { "sherry", "red", { 38, 2, 7, 1, 5 } }, { "framboise", "red", { 50, 1, 7, 1, 5 } }, { "rum", "amber", { 151, 1, 10, 0, 2 } }, { "cordial", "clear", { 100, 1, 5, 0, 2 } }, { "martini", "clear", { 100, 1, 5, 0, 2 } }, { "bloodwine", "vermillion", { 80, 1, 5, 0, 4 } }, { "pineapple juice", "yellow", { 0, 0, 8, 1, 12 } }, { "fruit punch", "red", { 0, 1, 9, 0, 12 } }, { "applewine", "tea-coloured", { 30, 1, 8, 1, 5 } }, { "plumwine", "dark-purple", { 30, 1, 8, 1, 5 } }, { "mulled wine", "purple", { 30, 1, 8, 1, 5 } }, { "honey wine", "golden", { 34, 2, 8, 2, 12 } }, { "apple cider", "golden", { 26, 1, 8, 1, 5 } }, { "porter", "green", { 35, 2, 8, 1, 5 } }, { "spiced tea", "crimson", { 0, 1, 10, 0, 6 } }, { "green tea", "green", { 0, 0, 9, 0, 6 } }, { "apple juice", "golden", { 0, 0, 8, 1, 12 } }, { "grape juice", "purple", { 0, 0, 8, 1, 12 } }, { "watermelon juice", "pink", { 0, 0, 8, 1, 12 } }, { "starfruit juice", "yellow", { 0, 0, 8, 1, 12 } }, { "untainted water", "crystal-clear",{ 0, 1, 12, 0, 16 } }, { NULL, NULL, { 0, 0, 0, 0, 0 } } }; /***************************************************************************/ /* * The skill and spell table. * Slot numbers must never be changed as they appear in #OBJECTS sections. */ #define SLOT(n) n #define RACE_R(n) n #define S_FLAGS(n) n class skill_type skill_table[MAX_SKILL]; /***************************************************************************/ struct skillgroup_type skillgroup_table[MAX_SKILLGROUP+1] = { {NULL} }; /***************************************************************************/ struct group_type group_table [MAX_GROUP_TABLE+1] = { // NOTE: YOU SHOULD NOT BE EDITING THIS, INSTEAD DO ANY CHANGES // USING THE OLC BASED SKILL GROUP EDITOR! { "dawn basics", { 0, 0, 0, 0,0,0,0,0,0 }, { "recall" } }, { "mage basics", { 0, -1, -1, -1,-1,-1,-1,-1,-1 }, { "dagger","scrolls", "wands" } }, { "cleric basics", { -1, 0, -1, -1, -1,-1,-1,-1,-1 }, { "mace", "scrolls", "staves" } }, { "thief basics", { -1, -1, 0, -1,-1,-1,-1,-1,-1 }, { "dagger", "steal" } }, { "warrior basics", { -1, -1, -1, 0,-1,-1,-1,-1,-1 }, { "sword" } }, { "druid basics", { -1, -1, -1, -1,0,-1,-1,-1,-1 }, { "mace", "scrolls"} }, { "paladin basics", { -1, -1, -1, -1,-1,0,-1,-1,-1 }, {"sword", "staves", "scrolls"} }, { "ranger basics", { -1, -1, -1, -1,-1,-1,0,-1,-1 }, {"sword", "awareness"} }, { "barbarian basics", {-1,-1,-1,-1,-1,-1,-1,0,-1}, {"berserk", "bash", "axe"} }, { "spellfilcher basics", {-1,-1,-1,-1,-1,-1,-1,-1,0}, {"dagger", "lore", "steal", "scrolls", "wands"} }, { "mage default", { 40, -1, -1, -1,-1,-1,-1,-1,-1 }, // 41 points worth {"scan", "essence", "alteration", "evocation", "dodge", "conjuration", "necromancy", "conjuration", "summoning"} }, { "cleric default", { -1, 40, -1, -1,-1,-1,-1,-1,-1 }, // 42 cp for 40 { "scan", "convocation", "protection", "healing", "death", "meditation", "combat"} }, { "thief default", { -1, -1, 40, -1,-1,-1,-1,-1,-1 }, { "mace", "dirt kicking", "backstab", "disarm", "dodge", "second attack", "hide", "peek", "pick lock", "sneak" } }, { "warrior default", { -1, -1, -1, 40,-1,-1,-1,-1,-1 }, { "weaponsmaster", "shield block", "bash", "disarm", "enhanced damage", "parry", "rescue", "third attack" } }, { "ranger default", { -1, -1, -1, -1,-1,-1,40,-1,-1 }, // 41 for 40 {"scan", "sneak", "build", "awareness", "staff", "axe", //17 "animal training", "domesticate", //4 "land", "water", "plant","animal"} // 20 }, { "druid default", { -1, -1, -1, -1,40,-1,-1,-1,-1 }, // 44 for { "scan", "hand to hand", "animal training", //9 "summer", "winter", "autumn", "spring", // 20 "plant", "animal", "land" }, // 15 }, { "paladin default", { -1, -1, -1, -1,-1,40,-1,-1,-1 }, // 41 for 40 { "scan", "second attack", "third attack", //11 "lay on hands", "shield block" // 5 "convocation", "healing", "death", "combat", "protection"} // 25 }, { "barbarian default", {-1,-1,-1,-1,-1,-1,-1,40,-1}, { "weaponsmaster", "enhanced damage", "dodge", "fast healing", "ultra damage", "second attack", "scan", "hand to hand" } }, { "spellfilcher default", {-1,-1,-1,-1,-1,-1,-1,-1,40}, // 42 for 40 { "scan", "backstab", "second attack", // 12 "dirt kicking", "sneak", "hide", "peek"//15 "evocation", "conjuration", "summoning"} //15 }, { "weaponsmaster", { -1, -1, -1, 15,-1,18,20,10,-1 }, { "axe", "dagger", "flail", "mace", "polearm", "staff", "sword","whip" }, }, { NULL} }; /***************************************************************************/ // // for use of a more IC time system, in 24 hour format const struct timefield_type timefield_table [] = { // TYPE Lowhour Highour Name { TIME_NONE, -1, -1, "none" }, { TIME_SMALL_HOURS, 1, 4, "during the small hours of the night" }, { TIME_DAWN, 5, 5, "at dawn" }, { TIME_MORNING, 6, 11, "in the morning" }, { TIME_NOON, 12, 12, "at noon" }, { TIME_AFTERNOON, 13, 18, "in the afternoon" }, { TIME_DUSK, 19, 19, "at dusk" }, { TIME_EVENING, 20, 23, "in the evening" }, { TIME_MIDNIGHT, 0, 0, "at midnight" }, { 0, -1, -1, NULL } }; /***************************************************************************/ // Difficulty settings for skills and such things const struct modifier_type modifier_table [] = { { DIFF_NONE, "none", 0 }, { DIFF_TRIVIAL, "trivial", 30 }, { DIFF_EASY, "easy", 20 }, { DIFF_LIGHT, "light", 10 }, { DIFF_MEDIUM, "medium", 0 }, { DIFF_HARD, "hard", -10 }, { DIFF_VERY_HARD, "very_hard", -25 }, { DIFF_ABSURD, "absurd", -50 }, { DIFF_SHEER_FOLLY, "sheer_folly", -75 }, { 0, NULL, 0 } }; /***************************************************************************/ /***************************************************************************/