/***************************************************************************
* STAR WARS REALITY 1.0 *
*--------------------------------------------------------------------------*
* Star Wars Reality Code Additions and changes from the Smaug Code *
* copyright (c) 1997 by Sean Cooper *
* -------------------------------------------------------------------------*
* Starwars and Starwars Names copyright(c) Lucas Film Ltd. *
*--------------------------------------------------------------------------*
* SMAUG 1.0 (C) 1994, 1995, 1996 by Derek Snider *
* SMAUG code team: Thoric, Altrag, Blodkai, Narn, Haus, *
* Scryn, Rennard, Swordbearer, Gorog, Grishnakh and Tricops *
* ------------------------------------------------------------------------ *
* Merc 2.1 Diku Mud improvments copyright (C) 1992, 1993 by Michael *
* Chastain, Michael Quan, and Mitchell Tse. *
* Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer, *
* Michael Seifert, Hans Henrik St{rfeldt, Tom Madsen, and Katja Nyboe. *
* ------------------------------------------------------------------------ *
* All SWR:SQL additions/modifications added by Rojan *
* ------------------------------------------------------------------------ *
* Mud constants module *
****************************************************************************/
#include <sys/types.h>
#include <stdio.h>
#include <time.h>
#include "mud.h"
/* undef these at EOF */
#define AM 95
#define AC 95
#define AT 85
#define AW 85
#define AV 95
#define AD 95
#define AR 90
#define AA 95
/*
* Race table.
*/
const struct race_type race_table[MAX_RACE] = {
/*
* race name DEF_AFF st dx ws in cn ch lk fc hp mn re su RESTRICTION LANGUAGE
*/
{
"Human", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, LANG_COMMON},
{
"Wookiee", 0, 8, -1, -3, 0, 2, -2, 0, 0, 3, 0, 0, 0, 0, LANG_WOOKIEE},
{
"Twi'lek", 0, 0, 2, 2, 2, -1, -1, 0, 0, 0, 0, 0, 0, 0, LANG_TWI_LEK},
{
"Rodian", 0, 0, 3, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, LANG_RODIAN},
{
"Hutt", 0, -3, -9, -3, 3, 5, -6, 0, 0, 3, 0, 0, 0, 0, LANG_HUTT},
{
"Mon Calamari", AFF_AQUA_BREATH, 0, -1, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, LANG_MON_CALAMARI},
{
"Noghri", AFF_SNEAK, 0, 8, -2, -1, 0, -3, 0, 0, 0, 0, 0, 0, 0, LANG_NOGHRI},
{
"Gamorrean", 0, 6, 0, -5, -5, 5, -2, 0, 0, 3, 0, 0, 0, 0, LANG_GAMORREAN},
{
"Jawa", 0, -3, 3, 1, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, LANG_JAWA},
{
"Adarian", 0, -2, -1, +2, +2, -1, +2, 0, 0, 0, 0, 0, 0, 0, LANG_ADARIAN},
{
"Ewok", 0, -2, -1, -5, -5, -2, +8, 0, 0, 0, 0, 0, 0, 0, LANG_EWOK},
{
"Verpine", 0, -1, 0, +1, +6, -1, 0, 0, 0, 0, 0, 0, 0, 0, LANG_VERPINE},
{
"Defel", AFF_INVISIBLE, +1, +3, -3, -3, +1, 0, 0, 0, 0, 0, 0, 0, 0, LANG_DEFEL},
{
"Trandoshan", AFF_INFRARED, +2, 0, 0, 0, +6, -1, 0, 0, 0, 0, 0, 0, 0, LANG_TRANDOSHAN},
{
"Chadra-Fan", AFF_INFRARED, -3, +3, 0, +2, -1, 0, 0, 0, 0, 0, 0, 0, 0, LANG_CHADRA_FAN},
{
"Quarren", AFF_AQUA_BREATH + AFF_INFRARED, -1, +1, 0, +1, -1, 0, 0, 0, 0, 0, 0, 0, 0, LANG_MON_CALAMARI},
{
"Duinuogwuin", AFF_FLYING, 0, -1, +3, 0, +8, +1, 0, 0, 0, +10, 0, 0, 0, LANG_DUINUOGWUIN}
};
char *const npc_race[MAX_NPC_RACE] = {
"Human", "Wookiee", "Twi'lek", "Rodian", "Hutt", "Mon Calamari", "Noghri",
"Gamorrean", "Jawa", "Adarian", "Ewok", "Verpine", "Defel", "Trandoshan", "Chadra-Fan", "Quarren",
"Duinuogwuin", "r17", "r18", "r19", "r20", "r21", "r22", "r23", "r24", "r25",
"r26", "r27", "r28", "r29", "r30", "r31", "r32", "r33",
"r34", "r35", "r36", "r37", "r38", "r39", "r40",
"r41", "r42", "r43", "r44", "r45", "r46",
"r47", "r48", "r49", "r50", "r51", "r52", "r53",
"r54", "r55", "r56", "r57", "r58", "r59",
"r60", "r61", "r62", "r63", "r64", "r65", "r66",
"r67", "r68", "r69", "r70", "r71", "r72", "r73", "r74",
"r75", "r76", "r77", "r78", "r79", "r80", "r81", "r82",
"r83", "r84", "r85", "r86", "r87", "r88", "r89", "r90"
};
char *const ability_name[MAX_ABILITY] = {
"combat", "piloting", "engineering", "bounty hunting", "smuggling", "diplomacy",
"leadership", "force"
};
/*
* 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, 8},
{0, 0, 100, 10},
{0, 0, 100, 12},
{0, 0, 115, 14}, /* 10 */
{0, 0, 115, 15},
{0, 0, 140, 16},
{0, 0, 140, 17}, /* 13 */
{0, 1, 170, 18},
{1, 1, 170, 19}, /* 15 */
{1, 2, 195, 20},
{2, 3, 220, 22},
{2, 4, 250, 25}, /* 18 */
{3, 5, 400, 30},
{3, 6, 500, 35}, /* 20 */
{4, 7, 600, 40},
{5, 7, 700, 45},
{6, 8, 800, 50},
{8, 10, 900, 55},
{10, 12, 999, 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},
{85},
{99} /* 25 */
};
const struct wis_app_type wis_app[26] = {
{0}, /* 0 */
{0}, /* 1 */
{0},
{0}, /* 3 */
{0},
{1}, /* 5 */
{1},
{1},
{1},
{2},
{2}, /* 10 */
{2},
{2},
{2},
{2},
{3}, /* 15 */
{3},
{4},
{5}, /* 18 */
{5},
{5}, /* 20 */
{6},
{6},
{6},
{6},
{7} /* 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 */
};
const struct cha_app_type cha_app[26] = {
{-60}, /* 0 */
{-50}, /* 1 */
{-50},
{-40},
{-30},
{-20}, /* 5 */
{-10},
{-5},
{-1},
{0},
{0}, /* 10 */
{0},
{0},
{0},
{1},
{5}, /* 15 */
{10},
{20},
{30},
{40},
{50}, /* 20 */
{60},
{70},
{80},
{90},
{99} /* 25 */
};
/* Have to fix this up - not exactly sure how it works (Scryn) */
const struct lck_app_type lck_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 frc_app_type frc_app[26] = {
{0}, /* 0 */
{0}, /* 1 */
{0},
{0},
{0},
{0}, /* 5 */
{0},
{0},
{0},
{0},
{0}, /* 10 */
{0},
{0},
{0},
{0},
{0}, /* 15 */
{0},
{0},
{0},
{0},
{0}, /* 20 */
{0},
{0},
{0},
{0},
{0} /* 25 */
};
/*
* Liquid properties.
* Used in #OBJECT section of area file.
*/
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 */
{"mead", "honey color", {4, 2, 5}}, /* 16 */
{"grog", "thick brown", {3, 2, 5}}, /* 17 */
{"milkshake", "creamy", {0, 8, 5}} /* 18 */
};
char *const attack_table[13] = {
"hit",
"slice", "stab", "slash", "whip", "claw",
"blast", "pound", "crush", "shot", "bite",
"pierce", "suction"
};
/*
* The skill and spell table.
* Slot numbers must never be changed as they appear in #OBJECTS sections.
*/
#define SLOT(n) n
#define LI LEVEL_IMMORTAL
#undef AM
#undef AC
#undef AT
#undef AW
#undef AV
#undef AD
#undef AR
#undef AA
#undef LI