17539 lines
1.1 MiB
17539 lines
1.1 MiB
#include <assert.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include "data.h"
|
|
#include "defs.h"
|
|
#include "flag.h"
|
|
#include "lf.h"
|
|
#include "nexus.h"
|
|
#include "objects.h"
|
|
#include "spell.h"
|
|
|
|
extern behaviour_t *firstbehaviour,*lastbehaviour;
|
|
extern command_t *firstcommand,*lastcommand;
|
|
extern option_t *firstoption,*lastoption;
|
|
extern map_t *firstmap;
|
|
extern race_t *firstrace, *lastrace;
|
|
extern raceclass_t *firstraceclass, *lastraceclass;
|
|
extern job_t *firstjob, *lastjob;
|
|
extern poisontype_t *firstpoisontype,*lastpoisontype;
|
|
extern subjob_t *firstsubjob,*lastsubjob;
|
|
extern skill_t *firstskill, *lastskill;
|
|
extern objecttype_t *objecttype;
|
|
extern objectclass_t *objectclass,*lastobjectclass;
|
|
extern brand_t *firstbrand,*lastbrand;
|
|
extern obmod_t *firstobmod,*lastobmod;
|
|
extern material_t *material,*lastmaterial;
|
|
extern lifeform_t *player;
|
|
|
|
extern hiddennamewithcol_t colour[];
|
|
extern char *bookadjective[];
|
|
extern char *potadjective[];
|
|
extern hiddennamewithcol_t gemtype[];
|
|
extern char *ringadjective[];
|
|
extern char *techadjective[];
|
|
extern char *technoun[];
|
|
extern char *amuletadjective[];
|
|
extern char *amuletnoun[];
|
|
|
|
extern objecttype_t *lastot;
|
|
|
|
void addbonustext(flagpile_t *fp, enum FLAG fid, char *text) {
|
|
int idx = -1;
|
|
flag_t *f;
|
|
// find last index
|
|
for (f = fp->first ; f; f = f->next) {
|
|
if (f->id == fid) {
|
|
if (f->val[0] > idx) idx = f->val[0];
|
|
}
|
|
}
|
|
addflag(fp, fid, idx+1, NA, NA, text);
|
|
}
|
|
|
|
option_t *addoption(enum OPTION id, char *text, int def) {
|
|
option_t *a;
|
|
int thisletter = '\0';
|
|
|
|
// add to the end of the list
|
|
if (firstoption == NULL) {
|
|
firstoption = malloc(sizeof(celltype_t));
|
|
a = firstoption;
|
|
a->prev = NULL;
|
|
thisletter = 'a';
|
|
} else {
|
|
// go to end of list
|
|
a = lastoption;
|
|
a->next = malloc(sizeof(option_t));
|
|
a->next->prev = a;
|
|
a = a->next;
|
|
thisletter = lastoption->letter + 1;
|
|
}
|
|
lastoption = a;
|
|
a->next = NULL;
|
|
|
|
// set props
|
|
a->id = id;
|
|
a->text = strdup(text);
|
|
a->def = def;
|
|
a->enabled = def;
|
|
a->letter = thisletter;
|
|
|
|
return a;
|
|
}
|
|
|
|
behaviour_t *addbehaviour(enum BEHAVIOUR id, char *name) {
|
|
behaviour_t *a;
|
|
|
|
assert(!findbehaviour(id));
|
|
|
|
// add to the end of the list
|
|
if (firstbehaviour == NULL) {
|
|
firstbehaviour = malloc(sizeof(behaviour_t));
|
|
a = firstbehaviour;
|
|
a->prev = NULL;
|
|
} else {
|
|
// go to end of list
|
|
a = lastbehaviour;
|
|
a->next = malloc(sizeof(behaviour_t));
|
|
a->next->prev = a;
|
|
a = a->next;
|
|
}
|
|
lastbehaviour = a;
|
|
a->next = NULL;
|
|
|
|
// set props
|
|
a->id = id;
|
|
a->name = strdup(name);
|
|
a->flags = addflagpile(NULL, NULL);
|
|
|
|
return a;
|
|
}
|
|
|
|
command_t *addcommand(enum COMMAND id, char ch, char *desc) {
|
|
command_t *a;
|
|
|
|
assert(!findcommand(id));
|
|
|
|
// add to the end of the list
|
|
if (firstcommand == NULL) {
|
|
firstcommand = malloc(sizeof(command_t));
|
|
a = firstcommand;
|
|
a->prev = NULL;
|
|
} else {
|
|
// go to end of list
|
|
a = lastcommand;
|
|
a->next = malloc(sizeof(command_t));
|
|
a->next->prev = a;
|
|
a = a->next;
|
|
}
|
|
lastcommand = a;
|
|
a->next = NULL;
|
|
|
|
// set props
|
|
a->id = id;
|
|
a->ch = ch;
|
|
a->desc = strdup(desc);
|
|
|
|
return a;
|
|
}
|
|
|
|
void initcommands(void) {
|
|
// Movement
|
|
addcommand(CMD_MOVE_N, 'k', "Walk north.");
|
|
addcommand(CMD_MOVE_NE, 'u', "Walk northeast.");
|
|
addcommand(CMD_MOVE_E, 'l', "Walk east.");
|
|
addcommand(CMD_MOVE_SE, 'n', "Walk southeast.");
|
|
addcommand(CMD_MOVE_S, 'j', "Walk south.");
|
|
addcommand(CMD_MOVE_SW, 'b', "Walk southwest");
|
|
addcommand(CMD_MOVE_W, 'h', "Walk west.");
|
|
addcommand(CMD_MOVE_NW, 'y', "Walk northwest");
|
|
addcommand(CMD_RUN_N, 'K', "Autowalk north.");
|
|
addcommand(CMD_RUN_NE, 'U', "Autowalk northeast.");
|
|
addcommand(CMD_RUN_E, 'L', "Autowalk east.");
|
|
addcommand(CMD_RUN_SE, 'N', "Autowalk southeast.");
|
|
addcommand(CMD_RUN_S, 'J', "Autowalk south.");
|
|
addcommand(CMD_RUN_SW, 'B', "Autowalk southwest.");
|
|
addcommand(CMD_RUN_W, 'H', "Autowalk west.");
|
|
addcommand(CMD_RUN_NW, 'Y', "Autowalk northwest.");
|
|
addcommand(CMD_TURN_N, CH_TURN_N, "Turn to face North.");
|
|
addcommand(CMD_TURN_NE, CH_TURN_NE, "Turn to face Northeast.");
|
|
addcommand(CMD_TURN_E, CH_TURN_E, "Turn to face East.");
|
|
addcommand(CMD_TURN_SE, CH_TURN_SE, "Turn to face Southeast.");
|
|
addcommand(CMD_TURN_S, CH_TURN_S, "Turn to face South.");
|
|
addcommand(CMD_TURN_SW, CH_TURN_SW, "Turn to face Southwest.");
|
|
addcommand(CMD_TURN_W, CH_TURN_W, "Turn to face West.");
|
|
addcommand(CMD_TURN_NW, CH_TURN_NW, "Turn to face Northwest.");
|
|
// Actions
|
|
addcommand(CMD_UP, '<', "Go up stairs.");
|
|
addcommand(CMD_DOWN, '>', "Go down stairs, enter a shop/portal.");
|
|
addcommand(CMD_REST, '.', "Rest once.");
|
|
addcommand(CMD_PICKUP, ',', "Pick up something from the ground.");
|
|
addcommand(CMD_CLOSE, 'c', "Close a door.");
|
|
addcommand(CMD_COMMS, 'C', "Chat/Communicate with someone.");
|
|
//addcommand(CMD_DROP, 'd', "Drop an item.");
|
|
addcommand(CMD_DROPMULTI, 'd', "Drop one or more items.");
|
|
addcommand(CMD_EAT, 'e', "Eat something.");
|
|
addcommand(CMD_MAGIC, 'm', "Use magic or abilities.");
|
|
addcommand(CMD_MEMMAGIC, 'M', "Memorise a hotkey for magic or abilities.");
|
|
addcommand(CMD_OFFER, 'O', "Offer a sacrifice to the gods.");
|
|
addcommand(CMD_OPERATE, 'o', "Operate a tool/wand/device, or fill a flask.");
|
|
addcommand(CMD_POUR, 'P', "Pour a potion onto something.");
|
|
addcommand(CMD_QUAFF, 'q', "Quaff (drink) a potion.");
|
|
addcommand(CMD_READ, 'r', "Read a scroll/book.");
|
|
addcommand(CMD_RESTFULL, 'R', "Rest until healed, or train your skills.");
|
|
addcommand(CMD_SLOWWALK, 's', "Step carefully.");
|
|
addcommand(CMD_THROW, 't', "Throw an object.");
|
|
addcommand(CMD_TAKEOFF, 'T', "Take off an item of clothing/jewelery.");
|
|
addcommand(CMD_WEILD, 'w', "Weild a weapon.");
|
|
addcommand(CMD_WEAR, 'W', "Wear an item of clothing/jewelery.");
|
|
addcommand(CMD_EXCHANGE, 'x', "Exchange weapon for spare weapon.");
|
|
// Firearms
|
|
addcommand(CMD_FIRE, 'f', "Fire your firearm/bow at your current target.");
|
|
addcommand(CMD_FIRENEW, 'F', "Fire your firearm/bow at a new target.");
|
|
addcommand(CMD_AIM, 'a', "Aim your current firearm/bow at a new target.");
|
|
addcommand(CMD_GUNRELOAD, 'a', "Reload current firearm/bow with current ammo.");
|
|
addcommand(CMD_NEXTTARGET, '\'', "Cycle to next firearm target.");
|
|
// Information
|
|
addcommand(CMD_HELP, '?', "Display this text.");
|
|
addcommand(CMD_INFOPLAYER, '@', "Display player stats.");
|
|
addcommand(CMD_INFOARMOUR, ']', "Display player armour.");
|
|
addcommand(CMD_FORCEATTACK, 'A', "Force an attack in a given direction.");
|
|
addcommand(CMD_LOOKHERE, ':', "Look at current cell.");
|
|
addcommand(CMD_LOOKAROUND, '/', "Look at a remote cell.");
|
|
addcommand(CMD_INFOKNOWLEDGE, '\\', "Display known items.");
|
|
addcommand(CMD_MSGHIST, '|', "Display message history.");
|
|
addcommand(CMD_MSGHIST2, CH_HISTORY, "Display message history.");
|
|
addcommand(CMD_INV, 'i', "Display your inventory.");
|
|
// GAME FUNCTIONS
|
|
addcommand(CMD_OPTIONS, '=', "Change game options.");
|
|
addcommand(CMD_QUIT, 'Q', "Quit the game.");
|
|
addcommand(CMD_SAVEQUIT, 'S', "Save and quit the game.");
|
|
|
|
sortcommands();
|
|
}
|
|
|
|
void initjobs(void) {
|
|
int i;
|
|
flag_t *f;
|
|
|
|
// subjob definitions - keep these in alphabetical order
|
|
addsubjob(SJ_BATTLEMAGE, "Battlemage", "Unlike other warriors Battlemages are skilled in magic, but at the expense of the regular warrior abilities.", 'b');
|
|
addsubjob(SJ_FIREMAGE, "Firemage", "Firemages weild the destructive powers of fire to incinerate their enemies.", 'f');
|
|
addsubjob(SJ_ICEMAGE, "Icemage", "Icemages are masters over the powers of cold. Their magic is less direct damaging than that of their fire-based cousins, but can also be used for defence.", 'i');
|
|
addsubjob(SJ_NECROMANCER, "Necromancer", "", 'n');
|
|
addsubjob(SJ_PALADIN, "Paladin", "Paladins are holy warriors dedicated to the Goddess of Life. They gain powerful abilities and have access to healing magics, but these powers are dependant upon their goddess' approval. Paladins must take holy vows to only ever use battle equipiment which has first been blessed.", 'p');
|
|
addsubjob(SJ_SCOURGE, "Scourge", "Scourges have dedicated their life to ridding the world of magic. Strict training has granted them an innate immunity to magic, but this immunity also extends to beneficial effects.", 's');
|
|
addsubjob(SJ_AIRMAGE, "Skymage", "Initially the weakest of the mages, higher level Skymages become both extremely versatile and extremely power.", 's');
|
|
addsubjob(SJ_WILDMAGE, "Wild Mage", "Wild mages specialise in the random power of wild magic.", 'w');
|
|
|
|
// job definitions
|
|
|
|
// NOTE: try to always make the job's primary weapon be the first object defined.
|
|
// this will make sure that they have the letter 'a'.
|
|
addjob(J_GOD, "Diety", "A divine job mainly known for its importance in debugging. Dieties can use all abilities and are prompted before death. Due to their infinite power, they consider earthly diversions such as high score tables beneath their dignity.");
|
|
/*
|
|
addflag(lastjob->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_AGI, AT_EXHIGH, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_IQ, AT_EXHIGH, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_CON, AT_EXHIGH, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_WIS, AT_EXHIGH, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_CHA, AT_EXHIGH, NA, NULL);
|
|
*/
|
|
addflag(lastjob->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_AGI, AT_RANDOM, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_IQ, AT_EXHIGH, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
//addflag(lastjob->flags, F_OMNIPOTENT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_IQ, AT_VHIGH, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_CHA, AT_EXHIGH, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_MPDICE, 100, NA, NA, NULL);
|
|
//addflag(lastjob->flags, F_MPREGEN, 100, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "short sword of pyromania");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "hand of god");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "10 blocks of chocolate");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "10 vials of ambrosia");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "10 blessed scrolls of identify");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "salt");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "leather armour");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "leather boots");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "leather gloves");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "magic map");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "a digital watch");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "10 blessed scrolls of create monster");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "10 blessed potions of experience");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "ring of miracles");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "ring of control");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "infovisor");
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_ARCANA, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_DEATH, PR_MASTER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_TRANSLOCATION, PR_MASTER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_DIVINATION, PR_MASTER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_MENTAL, PR_MASTER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_SUMMONING, PR_MASTER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_TECHUSAGE, PR_ADEPT, NA, NULL);
|
|
//addflag(lastjob->flags, F_HASPET, NA, NA, NA, "young wolf");
|
|
for (i = 1; i < MAXSKILLS; i++) {
|
|
addflag(lastjob->flags, F_CANLEARN, i, NA, NA, NULL);
|
|
}
|
|
// gods may use all abilities and cast any spell at will
|
|
for (i = SS_NONE+1; i < SS_LAST; i++) {
|
|
if ((i == SS_ABILITY) || (i == SS_DIVINE)) {
|
|
mayusespellschool(lastjob->flags, i, F_CANWILL, B_FALSE);
|
|
} else {
|
|
mayusespellschool(lastjob->flags, i, F_CANCAST, B_FALSE);
|
|
//mayusespellschool(lastjob->flags, i, F_CANWILL);
|
|
}
|
|
}
|
|
addflag(lastjob->flags, F_NOSCORE, B_TRUE, NA, NA, NULL);
|
|
|
|
addjob(J_ADVENTURER, "Adventurer", "Adventurers are a versatile jack-of-all-trades type job. They can learn all skills, and already have basic Cartography and Lore skills. They also start the game with three healing potions. Recommended for beginners.");
|
|
// stat mods
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne"); // ie. select
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "short sword");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "leather armour");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "10 gold coins");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "3 potions of healing");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "lockpick");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "nylon rope");
|
|
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ATHLETICS, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_COOKING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LOCKPICKING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_TECHUSAGE, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ARMOUR, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_HUMANOID, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_UNDEAD, PR_NOVICE, NA, NULL);
|
|
// learnable skills
|
|
for (i = 1; i < MAXSKILLS; i++) {
|
|
addflag(lastjob->flags, F_CANLEARN, i, NA, NA, NULL);
|
|
}
|
|
// abilities
|
|
addflag(lastjob->flags, F_MPDICE, 1, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
/*
|
|
addjob(J_ALLOMANCER, "Allomancer", "Mages specialising in metal-based magic.");
|
|
// stat mods
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 2, NA, NULL);
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "1 gold coins");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "club");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "cloak");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "potion of magic");
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_ALLOMANCY, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ARMOUR, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LOCKPICKING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_THROWING, PR_NOVICE, NA, NULL);
|
|
// learnable skills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_BACKSTAB, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CLIMBING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LISTEN, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SPEECH, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_STEALTH, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TECHUSAGE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_STAVES, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_UNARMED, NA, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_MPDICE, 1, 1, NA, NULL);
|
|
addflag(lastjob->flags, F_CANCAST, OT_S_ABSORBMETAL, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_DETECTMETAL, B_TRUE, NA, NA, NULL);
|
|
mayusespellschool(lastjob->flags, SS_ALLOMANCY, F_CANCAST);
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
*/
|
|
|
|
addjob(J_CHEF, "Chef", "Considered by some to be simple culinary experts, a chef's skillset is in fact surprisingly flexible. Their cooking skill can give a wide range of benefits, while working in a kitchen requires perception and a good ear. Once experienced, their ego lets them enter a bezerk rage during combat.");
|
|
// stat mods
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_IQ, 5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, 5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, -10, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gn"); // ie. select
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "meat cleaver");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "apron");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "toque");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "set of chef whites");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "cloth trousers");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "5 steak knives");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "3 potions of rum");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "3 potions of water");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "butane torch");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "random food");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "random food");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "random food");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "random food");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "random food");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "random food");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "random food");
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CHANNELING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_COOKING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_EVASION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LISTEN, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_NATURE, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SHORTBLADES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_THROWING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_TECHUSAGE, PR_NOVICE, NA, NULL);
|
|
// learnable skills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CLIMBING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_FIRSTAID, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SPEECH, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TWOWEAPON, NA, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_LEVABIL, 3, OT_A_RAGE, NA, NULL);
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addjob(J_COMMANDO, "Commando", "An elite modern military fighter. Commandoes are very well equipped and capable of using (or learning to use) all technology. Unfortunately their adreneline-filled lifestyle leaves them a little lacking in wisdom, and they have no magical aptitude.");
|
|
// stat mods
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 10, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_IQ, -15, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, 15, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "combat knife");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "revolver");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "helmet");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "flak jacket");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "combat pants");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "leather boots");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "nightvis goggles");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "1-2 blocks of c4");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "1-3 grenades");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "1-3 flashbangs");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "digital watch");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "10 bullets");
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ARMOUR, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_COOKING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ATHLETICS, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_FIRSTAID, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_RANGED, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SWIMMING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_TECHUSAGE, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_HUMANOID, PR_SKILLED, NA, NULL);
|
|
// learnable skills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_BACKSTAB, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CARTOGRAPHY, PR_EXPERT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CLIMBING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_FIRSTAID, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LISTEN, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_METALWORK, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_STEALTH, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SHORTBLADES, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_THROWING, PR_EXPERT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_UNARMED, PR_SKILLED, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
addjob(J_DRUID, "Druid", "Druids use the power of nature to aid themselves or harm others. They start with a pet wolf, and their spells are more powerful when near plants. They are willing to eat other lifeforms when neccessary but prefer a vegetable-based diet. Unlike other spellcasters, Druids gain spells automotically when levelling.");
|
|
// stats
|
|
addflag(lastjob->flags, F_MPDICE, 1, 1, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, 15, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, 10, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "quarterstaff");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "sickle");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "robe");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "pair of sandals");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "2 sprigs of mistletoe");
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_COOKING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_EVASION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_NATURE, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_STAVES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SPEECH, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_NATURE, PR_NOVICE, NA, NULL);
|
|
// learnable skills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_EXOTICWEPS, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LISTEN, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_FIRSTAID, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SWIMMING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_THROWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_RANGED, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SHORTBLADES, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CLUBS, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TECHUSAGE, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_DRAGONS, PR_BEGINNER, NA, NULL);
|
|
// abilities
|
|
//mayusespellschool(lastjob->flags, SS_NATURE, F_CANCAST);
|
|
addflag(lastjob->flags, F_LEVSPELLSCHOOLFROMX, 101, SS_NATURE, 3, NULL); // new enviromancy spell every 1 level
|
|
addflag(lastjob->flags, F_HASPET, NA, NA, NA, "young wolf");
|
|
addflag(lastjob->flags, F_PARTVEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVSKILL, 5, SK_LORE_NATURE, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVSPELL, 7, OT_S_PLANTWALK, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVSKILL, 10, SK_LORE_NATURE, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVSKILL, 15, SK_LORE_NATURE, NA, NULL);
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
f = addflag(lastjob->flags, F_RNDSPELLCOUNT, 5, NA, NA, NULL); addcondition(f, FC_IFMONSTER, 100);
|
|
f = addflag(lastjob->flags, F_RNDSPELLSCHOOL, SS_NATURE, 1, 6, NULL); addcondition(f, FC_IFMONSTER, 100);
|
|
|
|
///////////////////////////////////////
|
|
addjob(J_MONK, "Monk", "A life of strict self-discipline from an early age makes Monks masters of unarmed combat. This discipline extends to their minds, sometimes allowing them to develop powerful psionic abilities over time. On the downside, they are useless with most weapons and are strict vegetarians.");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 10, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, 10, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne"); // ie. select
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "robe");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "2 loaf of stale bread");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "2 cheese");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "pair of sandals");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "nylon rope");
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_HUMANOID, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ATHLETICS, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_COOKING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_EVASION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_UNARMED, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_MENTAL, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_STAVES, PR_NOVICE, NA, NULL);
|
|
// learnable skills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CLIMBING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_EXOTICWEPS, PR_BEGINNER, NA, NULL); // limit
|
|
addflag(lastjob->flags, F_CANLEARN, SK_FIRSTAID, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LISTEN, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SEWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_STEALTH, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SWIMMING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_THROWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TRAPS, PR_ADEPT, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_VEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANWILL, OT_A_FEIGNDEATH, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_MAXATTACKS, 1, 1, NA, NULL); // this will go up later
|
|
// gained abilities
|
|
// somewhere: slow falling when next to walls
|
|
// somehwere: alertness when sleeping
|
|
addflag(lastjob->flags, F_LEVFLAG, 2, F_MPDICE, 1, NULL);
|
|
// 2: body control - low metabolism
|
|
addflag(lastjob->flags, F_LEVSPELL, 3, OT_S_LOWERMETAB, NA, NULL);
|
|
// 4: self-healing (mp), immune to haste/slow (innate)
|
|
addflag(lastjob->flags, F_LEVFLAG, 4, F_DISEASEIMMUNE, B_TRUE, NULL);
|
|
addflag(lastjob->flags, F_LEVABIL, 5, OT_A_FLURRY, NA, "pw:1;");
|
|
// 6: waterawlk via 'body equilibrium' (innate)
|
|
addflag(lastjob->flags, F_LEVFLAG, 7, F_TREMORSENSE, NA, NULL);
|
|
// 8: molecular manipulation (ie. lower hardness of physical obs by level-7, not lfs) (innate)
|
|
addflag(lastjob->flags, F_LEVABIL, 8, OT_A_AIMEDSTRIKE, NA, NULL);
|
|
// 9: resistance to charm, hypnosis, sleep (innate)
|
|
addflag(lastjob->flags, F_LEVFLAG, 10, F_DTIMMUNE, DT_POISON, NULL);
|
|
addflag(lastjob->flags, F_LEVSPELL, 11, OT_S_PSYARMOUR, NA, NULL);
|
|
// 12: quivering palm (v.high mp cost OR once every 200 turns or so)
|
|
addflag(lastjob->flags, F_LEVABIL, 12, OT_A_QUIVERINGPALM, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVABIL, 13, OT_S_BLINK, 10, "pw:6;"); // l6 = controlled
|
|
// 14: speak with plants (mp?innate?)
|
|
// 15: mind bar??? what is this
|
|
addflag(lastjob->flags, F_LEVABIL, 16, OT_S_IDENTIFY, 100, NULL);
|
|
// 17: dimension walk (controlled teleport??) (mp)
|
|
// 18: astral projection.. .??useful?
|
|
// 19: premonition of death 1-4 turns before
|
|
// 20: tower of iron will
|
|
// 21: planeshift
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
// monsters
|
|
f = addflag(lastjob->flags, F_RNDSPELLCOUNT, 4, NA, NA, NULL); addcondition(f, FC_IFMONSTER, 100);
|
|
f = addflag(lastjob->flags, F_RNDSPELLSCHOOL, SS_MENTAL, 1, 6, NULL); addcondition(f, FC_IFMONSTER, 100);
|
|
|
|
addjob(J_HUNTER, "Hunter", "Hunters eke out a living hunting game in the woods. Their dependance on wild animals for sustenance has made them skilled archers.");
|
|
// stats
|
|
addflag(lastjob->flags, F_MPDICE, 1, 1, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, 5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, 10, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "hatchet");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "short bow");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "50 arrows");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "throwing net");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "leather armour");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "fur cloak armour");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "cloth trousers");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "pair of leather boots");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "pair of leather gloves");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "sleeping bag");
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ARMOUR, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_AXES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_COOKING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CLIMBING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LISTEN, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_NATURE, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_RANGED, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SWIMMING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_STEALTH, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_THROWING, PR_NOVICE, NA, NULL);
|
|
// learnable skills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_ATHLETICS, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SEWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_EVASION, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_STAVES, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_UNARMED, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TECHUSAGE, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TRAPS, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_HUMANOID, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_DRAGONS, NA, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_CANWILL, OT_S_CALMANIMALS, NA, NA, "pw:1;");
|
|
addflag(lastjob->flags, F_LEVABIL, 3, OT_S_CALMANIMALS, NA, "pw:3;");
|
|
addflag(lastjob->flags, F_LEVSKILL, 5, SK_LORE_NATURE, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVABIL, 7, OT_S_CALMANIMALS, NA, "pw:5;");
|
|
addflag(lastjob->flags, F_LEVSKILL, 10, SK_LORE_NATURE, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVABIL, 12, OT_S_CALMANIMALS, NA, "pw:7;");
|
|
addflag(lastjob->flags, F_LEVSKILL, 15, SK_LORE_NATURE, NA, NULL);
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addjob(J_MECHANIC, "Mechanic", "Mechanics, while great at negotiating high hourly rates, are not generally very suited for adventuring. Their spanner and metal-working skills might come in handy though.");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, -20, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "spanner");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "pair of safety goggles");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "overalls");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "cap");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "80 gold coins");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "block of chocolate");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "2 potions of oil");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "rubber boots");
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CHANNELING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_METALWORK, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SPEECH, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_TECHUSAGE, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ARMOUR, PR_ADEPT, NA, NULL);
|
|
// learnable akills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_COOKING, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CARTOGRAPHY, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CLIMBING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LISTEN, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SWIMMING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_THROWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_ALLOMANCY, NA, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_OBESE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
addjob(J_NINJA, "Ninja", "A dark warrior dedicated to the art of ninjutsu. Ninjas are skilled with exotic weapons, and gain special martial arts abilities at higher levels.");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, -5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_IQ, -5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 10, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, 5, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, -5, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "wakazashi");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "balaclava");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "leather armour");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "cloth trousers");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "5 shurikens");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "manriki");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "3 smoke grenades");
|
|
// shuriken
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ARMOUR, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ATHLETICS, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_NOVICE, NA, NULL); // limit
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_EVASION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_UNARMED, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LONGBLADES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_EXOTICWEPS, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_HUMANOID, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_THROWING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_STEALTH, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_TECHUSAGE, PR_BEGINNER, NA, NULL);
|
|
// learnable skills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_COOKING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_ARMOUR, PR_NOVICE, NA, NULL); // limit
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CARTOGRAPHY, PR_BEGINNER, NA, NULL); // limit
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CHANNELING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CLIMBING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LISTEN, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_RANGED, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SEWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_STAVES, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_WHIPS, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_STEALTH, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TECHUSAGE, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TWOWEAPON, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_DRAGONS, PR_SKILLED, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_MPDICE, 1, NA, NA, NULL);
|
|
// gained abilities
|
|
addflag(lastjob->flags, F_LEVABIL, 2, OT_A_DISARMLF, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVABIL, 4, OT_A_TRIPLF, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVABIL, 6, OT_A_FLIP, NA, NULL);
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
addjob(J_PRINCE, "Prince", "Princes have lived a life of leisure and privilege. Their time is generally spent either hunting (making them quite fit and skilled with a bow) or reading (giving them knowledge about the world around them). As they normally travel with a pack of bodyguards though, their weapons are more for show than actually useful.");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, 20, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, 10, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "blessed ornamental sword");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "100 gold coins");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "golden crown");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "ornamental dagger");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "velvet robe");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "silk shirt");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "riding trousers");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "leather boots");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "short bow");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "15 arrows");
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ARMOUR, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SHIELDS, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SHORTBLADES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LONGBLADES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_HUMANOID, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_NATURE, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_RANGED, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SWIMMING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SPEECH, PR_SKILLED, NA, NULL);
|
|
// learnable skills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_ATHLETICS, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CARTOGRAPHY, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_COOKING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LISTEN, PR_EXPERT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_METALWORK, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CHANNELING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SEWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_ARCANA, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_POLEARMS, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_WHIPS, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_PERCEPTION, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TECHUSAGE, NA, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
addjob(J_PIRATE, "Pirate", "Pirates roam the seven seas, their mug of ale in one hand, and... nothing much in the other, since all pirates (in deference to some kind of ancient tale) have had their left hand replaced with a sharp hook. Their lifestyle has made them very wealthy and given them an impressive ability to handle their alcohol. They even start with a pet hawk. On the other hand, they are missing an eye, and not very attractive.");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 15, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 10, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, 20, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, -15, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, -15, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "cutlass");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "silk shirt");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "cloth trousers");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "eyepatch");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "tricorne");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "300-350 gold coins");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "5 potions of rum");
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CLIMBING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SHORTBLADES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_WHIPS, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_UNARMED, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SWIMMING, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_HUMANOID, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_UNDEAD, PR_NOVICE, NA, NULL);
|
|
// learnable skills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_ATHLETICS, PR_EXPERT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_BACKSTAB, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_COOKING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LISTEN, PR_EXPERT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CHANNELING, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_ARCANA, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SEWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_STEALTH, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_THIEVERY, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_THROWING, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_PERCEPTION, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TECHUSAGE, NA, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_STABILITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_NOBODYPART, BP_LEFTFINGER, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_NOBODYPART, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_EXTRALUCK, 1, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_HASPET, NA, NA, NA, "young hawk");
|
|
addflag(lastjob->flags, F_MAXATTACKS, 2, 2, NA, NULL);// this is so that our hookhand works
|
|
addflag(lastjob->flags, F_INJURY, IJ_EYEDESTROYED, NA, NA, NULL);
|
|
// also: has a hook instead of fists.
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addjob(J_ROGUE, "Rogue", "Rogues (AKA \"thieves\") are criminals who are skilled in the appropriation of valuable goods. They can hide in the shadows, stab unsuspecting victims in the back and foil the most cunning traps.");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, -10, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 15, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, -10, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_NONE, NA, NA, "ne");
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "dagger");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "leather cloak");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "leather armour");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "5 lockpicks");
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ATHLETICS, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ARMOUR, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CLIMBING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_STEALTH, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LISTEN, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_BACKSTAB, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LOCKPICKING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SHORTBLADES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SPEECH, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_THIEVERY, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_THROWING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_HUMANOID, PR_BEGINNER, NA, NULL);
|
|
// learnable skills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_ARMOUR, PR_NOVICE, NA, NULL); // limit
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CHANNELING, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_COOKING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SEWING, NA, NA, NULL); //
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SHORTBLADES, PR_SKILLED, NA, NULL); //
|
|
addflag(lastjob->flags, F_CANLEARN, SK_STAVES, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_WHIPS, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SWIMMING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TECHUSAGE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TWOWEAPON, PR_EXPERT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_UNARMED, PR_EXPERT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_DIVINATION, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_MODIFICATION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_MENTAL, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_TRANSLOCATION, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_ARCANA, PR_ADEPT, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_MPDICE, 1, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
addjob(J_WARRIOR, "Warrior", "Warriors are good at hitting things, hard.");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, 10, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_AGI, 10, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_IQ, -10, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, 10, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CHA, -10, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_WIS, -20, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "helmet");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "suit of ring mail");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "pair of gauntlets");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "buckler");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "10-20 gold coins");
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_AXES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_COOKING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CLUBS, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SHORTBLADES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LONGBLADES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_POLEARMS, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_WHIPS, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ATHLETICS, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ARMOUR, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SHIELDS, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_HUMANOID, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_NATURE, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SEWING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_METALWORK, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
// learnable skills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SS_ALLOMANCY, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CARTOGRAPHY, PR_SKILLED, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CLIMBING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_COOKING, PR_ADEPT, NA, NULL); // limit
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LISTEN, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SWIMMING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_AXES, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_EXOTICWEPS, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_STAVES, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_UNARMED, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TECHUSAGE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_THROWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_TWOWEAPON, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_DRAGONS, PR_ADEPT, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_MPDICE, 1, -1, NA, NULL);
|
|
addflag(lastjob->flags, F_MAXHPMOD, 120, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_SELECTWEAPON, B_TRUE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVABIL, 3, OT_A_HEAVYBLOW, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVABIL, 4, OT_A_WARCRY, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVABIL, 5, OT_A_CHARGE, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVABIL, 6, OT_A_RAGE, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVABIL, 8, OT_A_AIMEDSTRIKE, NA, NULL);
|
|
addflag(lastjob->flags, F_LEVABIL, 10, OT_A_HURRICANESTRIKE, NA, NULL);
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
// sub jobs
|
|
addflag(lastjob->flags, F_CANHAVESUBJOB, SJ_BATTLEMAGE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANHAVESUBJOB, SJ_PALADIN, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANHAVESUBJOB, SJ_SCOURGE, NA, NA, NULL);
|
|
|
|
addjob(J_WIZARD, "Wizard", "Specialising in Arcane lore, high level wizards use their magic to create awe-inspiring effects on the world around them, raining death upon their enemies with eldritch wizardries. Not much is known about low level wizards, as they tend to get mauled to death by newts due to their lack of combat skills.");
|
|
// stats
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_STR, -20, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_IQ, 20, NA, NULL);
|
|
addflag(lastjob->flags, F_JOBATTRMOD, A_CON, -15, NA, NULL);
|
|
addflag(lastjob->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
// initial objects
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "enchanted neophyte staff");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "wizard hat");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "robe");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "2 potions of magic");
|
|
// monster wizards sometimes start with a random book
|
|
f = addflag(lastjob->flags, F_STARTOBCLASS, 100, OC_BOOK, NA, NULL); addcondition(f, FC_IFMONSTER, 50);
|
|
// initial skills
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_COOKING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_ARCANA, PR_BEGINNER, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_UNDEAD, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_LORE_DEMONS, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_CHANNELING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SPEECH, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_STAVES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_AIR, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_DEATH, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_DIVINATION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_FIRE, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_COLD, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_MODIFICATION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_SUMMONING, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_TRANSLOCATION, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_WILD, PR_NOVICE, NA, NULL);
|
|
// learnable skills
|
|
addflag(lastjob->flags, F_CANLEARN, SK_FIRSTAID, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LISTEN, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_CHANNELING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SHORTBLADES, PR_NOVICE, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_SEWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_STAVES, PR_ADEPT, NA, NULL); // limit
|
|
addflag(lastjob->flags, F_CANLEARN, SK_THROWING, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_DEMONS, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_DRAGONS, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANLEARN, SK_LORE_UNDEAD, NA, NA, NULL);
|
|
// abilities
|
|
addflag(lastjob->flags, F_NEEDOBFORSPELLS, OT_WIZARDSTAFF, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_MAXHPMOD, 80, NA, NA, NULL); // low hp
|
|
addflag(lastjob->flags, F_MPDICE, 1, 1, NA, NULL);
|
|
addflag(lastjob->flags, F_RESTHEALTIME, 6, NA, NA, NULL); // wizard heals slowly, but regenerates mp
|
|
addflag(lastjob->flags, F_LEVFLAG, 3, F_DETECTMAGIC, B_TRUE, NULL);
|
|
addflag(lastjob->flags, F_LEVFLAG, 7, F_DETECTAURAS, B_TRUE, NULL);
|
|
addflag(lastjob->flags, F_LEVFLAG, 10, F_CONTROL, B_TRUE, NULL);
|
|
//addflag(lastjob->flags, F_LEVSPELLSCHOOL, 101, SS_NONE, B_TRUE, NULL); // new spell every 1 level
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
// monsters
|
|
f = addflag(lastjob->flags, F_RNDSPELLCOUNT, 4, NA, NA, NULL); addcondition(f, FC_IFMONSTER, 100);
|
|
f = addflag(lastjob->flags, F_RNDSPELLSCHOOL, SS_MENTAL, 1, 6, NULL); addcondition(f, FC_IFMONSTER, 100);
|
|
|
|
// note: monster spells are defined in subjobs, since wizard MUST have a subjob.
|
|
// monster job flags
|
|
addflag(lastjob->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
// sub jobs
|
|
addflag(lastjob->flags, F_CANHAVESUBJOB, SJ_AIRMAGE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANHAVESUBJOB, SJ_FIREMAGE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANHAVESUBJOB, SJ_ICEMAGE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANHAVESUBJOB, SJ_NECROMANCER, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANHAVESUBJOB, SJ_WILDMAGE, NA, NA, NULL);
|
|
|
|
// monster jobs
|
|
addjob(J_GUARD, "Guard", "Guards are paid mercenaries employed to protect a certain area. Accordingly, they are generally outfitetd with high quality armour.");
|
|
addflag(lastjob->flags, F_NOPLAYER, B_TRUE, NA, NA, NULL);
|
|
f = addflag(lastjob->flags, F_STARTOBWEPSK, SK_LONGBLADES, NA, NA, NULL);
|
|
addcondition(f, FC_NOCONDITION, 50);
|
|
addaltval(f, F_STARTOBWEPSK, 100, SK_WHIPS, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "random good armour");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "random good armour");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "random good armour");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "random good armour");
|
|
addflag(lastjob->flags, F_STAYINROOM, NA, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_ARMOUR, PR_SKILLED, NA, NULL);
|
|
// 50% of guards are bribable
|
|
f = addflag(lastjob->flags, F_WANTS, OT_GOLD, NA, NA, NULL); addcondition(f, FC_IFMONSTER, 50);
|
|
|
|
addjob(J_DEMONOLOGIST, "Demonologist", "Demonologists frequently dabble into evil forces, summoning forth horrors from other planes of existence.");
|
|
addflag(lastjob->flags, F_NOPLAYER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTOB, 40, NA, NA, "bone helmet");
|
|
addflag(lastjob->flags, F_STARTOB, 70, NA, NA, "robes");
|
|
addflag(lastjob->flags, F_CANWILL, OT_S_SUMMONDEMON, 10, 10, "pw:2;");
|
|
|
|
addjob(J_SHAMAN, "Shaman", "Shamans call on natural magics to heal allies or summon hordes of angry animals.");
|
|
addflag(lastjob->flags, F_NOPLAYER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTOB, 40, NA, NA, "bone helmet");
|
|
addflag(lastjob->flags, F_STARTOB, 70, NA, NA, "robes");
|
|
addflag(lastjob->flags, F_STARTSKILL, SK_SS_NATURE, PR_ADEPT, NA, NULL);
|
|
addflag(lastjob->flags, F_CANWILL, OT_S_HEALINGMIN, 10, 10, "pw:5;");
|
|
f = addflag(lastjob->flags, F_CANWILL, OT_S_BLINDNESS, 10, 10, "pw:5;"); addcondition(f, FC_IFMONSTER, 30);
|
|
f = addflag(lastjob->flags, F_CANWILL, OT_S_SUMMONANIMALSSM, 10, 10, "pw:5;"); addcondition(f, FC_IFMONSTER, 50);
|
|
f = addflag(lastjob->flags, F_CANWILL, OT_S_SUMMONANIMALSMD, 10, 10, "pw:5;"); addcondition(f, FC_IFMONSTER, 30);
|
|
f = addflag(lastjob->flags, F_CANWILL, OT_S_SUMMONANIMALSLG, 10, 10, "pw:5;"); addcondition(f, FC_IFMONSTER, 15);
|
|
// plus 2 other random nature spells...
|
|
f = addflag(lastjob->flags, F_RNDSPELLCOUNT, 2, NA, NA, NULL); addcondition(f, FC_IFMONSTER, 100);
|
|
f = addflag(lastjob->flags, F_RNDSPELLSCHOOL, SS_NATURE, 1, 3, NULL); addcondition(f, FC_IFMONSTER, 100);
|
|
|
|
addjob(J_BERZERKER, "Berzerker", "Berzerkers can enter a start of berzerk rage for short periods.");
|
|
addflag(lastjob->flags, F_NOPLAYER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_CANWILL, OT_A_RAGE, 20, 20, NULL);
|
|
|
|
/*
|
|
addjob(J_SHOPKEEPER, "Shopkeeper", "Shopkeepers make a living by selling goods to others. Always wary of thieves, most of them keep a shotgun under the counter.");
|
|
addflag(lastjob->flags, F_NOPLAYER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "100-1000 gold coins");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "shotgun");
|
|
addflag(lastjob->flags, F_STARTOB, 100, NA, NA, "5-10 bullets");
|
|
addflag(lastjob->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
*/
|
|
}
|
|
|
|
void initobjects(void) {
|
|
flag_t *f;
|
|
int i,n;
|
|
|
|
|
|
// init poison types
|
|
addpoisontype(P_MIGRAINE, "a migraine", "Sick", "", OT_NONE, 0, 0, PS_DISEASE,20);
|
|
addpoisontype(P_COLD, "hypothermia", "Sick", "^bYOU cough#S violently.", OT_NONE, 1, 25, PS_DISEASE, 30);
|
|
addpoisontype(P_FOOD, "gastroenteritis", "Poisoned", "^bYOU vomit#S violently.", OT_VOMITPOOL, 1, 25, PS_POISON,20);
|
|
addpoisontype(P_FOODBAD, "salmonella poisoning", "Poisoned", "^bYOU vomit#S violently.", OT_VOMITPOOL, 2, 33, PS_POISON, 30);
|
|
addpoisontype(P_GAS, "gas inhalation", "Poisoned", "^bYOU cough#S.", OT_NONE, 1, 25, PS_POISON,0);
|
|
addpoisontype(P_ROT, "the mummy's curse", "Cursed", "", OT_NONE, 0, 0, PS_CURSE, 0);
|
|
addpoisontype(P_TETANUS, "tetanus", "Sick", "^bYOUR muscles spasm violently!", OT_NONE, 0, 3, PS_DISEASE, 15);
|
|
addpoisontype(P_VENOM, "venom poisoning", "Poisoned", "^bYOU cough#S up blood.", OT_BLOODSPLASH, 1, 25, PS_POISON, 0);
|
|
addpoisontype(P_WEAKNESS, "weakening poison", "Poisoned", "cough", B_FALSE, 0, 0, PS_POISON, 0);
|
|
|
|
// generate hidden name text
|
|
for (n = 0; strlen(colour[n].name); n++) {
|
|
char buf[BUFLEN];
|
|
// add it without an adjective
|
|
snprintf(buf, BUFLEN, "%s book", colour[n].name);
|
|
addhiddenname(OC_BOOK, buf);
|
|
// add it with all known adjectives
|
|
for (i = 0; strlen(bookadjective[i]) ; i++) {
|
|
snprintf(buf, BUFLEN, "%s %s book",bookadjective[i], colour[n].name);
|
|
addhiddenname(OC_BOOK, buf);
|
|
}
|
|
}
|
|
|
|
addhiddenname(OC_SCROLL, "scroll titled ABRA CA DABRA");
|
|
addhiddenname(OC_SCROLL, "scroll titled BARBAR");
|
|
addhiddenname(OC_SCROLL, "scroll titled CRATOL JEM");
|
|
addhiddenname(OC_SCROLL, "scroll titled DELENTH YIN");
|
|
addhiddenname(OC_SCROLL, "scroll titled ETEE NOM");
|
|
addhiddenname(OC_SCROLL, "scroll titled FIE JOOHM");
|
|
addhiddenname(OC_SCROLL, "scroll titled GREE VII");
|
|
addhiddenname(OC_SCROLL, "scroll titled HERE HERE");
|
|
addhiddenname(OC_SCROLL, "scroll titled HTEB IH");
|
|
addhiddenname(OC_SCROLL, "scroll titled HOCUS POCUS");
|
|
addhiddenname(OC_SCROLL, "scroll titled ILU-MA ZEE");
|
|
addhiddenname(OC_SCROLL, "scroll titled JUNIPO CHECK");
|
|
addhiddenname(OC_SCROLL, "scroll titled KARELS");
|
|
addhiddenname(OC_SCROLL, "scroll titled LUMLEE GWON");
|
|
addhiddenname(OC_SCROLL, "scroll titled MARIGON");
|
|
addhiddenname(OC_SCROLL, "scroll titled MAXIMOR BLATHUS");
|
|
addhiddenname(OC_SCROLL, "scroll titled NORTH");
|
|
addhiddenname(OC_SCROLL, "scroll titled ORI GREEBLE");
|
|
addhiddenname(OC_SCROLL, "scroll titled POCUS HOCUS");
|
|
addhiddenname(OC_SCROLL, "scroll titled QUANDRILAR");
|
|
addhiddenname(OC_SCROLL, "scroll titled REZZ KINETO");
|
|
addhiddenname(OC_SCROLL, "scroll titled SHAZZARIO");
|
|
addhiddenname(OC_SCROLL, "scroll titled THERIUM LARGOS");
|
|
addhiddenname(OC_SCROLL, "scroll titled TAKA TAKA TAKA");
|
|
addhiddenname(OC_SCROLL, "scroll titled UNDWEL");
|
|
addhiddenname(OC_SCROLL, "scroll titled VOLTR YI MEN");
|
|
addhiddenname(OC_SCROLL, "scroll titled WII");
|
|
addhiddenname(OC_SCROLL, "scroll titled XAND");
|
|
addhiddenname(OC_SCROLL, "scroll titled YES");
|
|
addhiddenname(OC_SCROLL, "scroll titled ZAREL NOR");
|
|
|
|
for (n = 0; strlen(colour[n].name); n++) {
|
|
char buf[BUFLEN];
|
|
// add it without an adjective
|
|
snprintf(buf, BUFLEN, "%s potion", colour[n].name);
|
|
addhiddenname(OC_POTION, buf);
|
|
// add it with all known adjectives
|
|
for (i = 0; strlen(potadjective[i]) ; i++) {
|
|
snprintf(buf, BUFLEN, "%s %s potion",potadjective[i], colour[n].name);
|
|
addhiddenname(OC_POTION, buf);
|
|
}
|
|
}
|
|
|
|
for (n = 0; strlen(gemtype[n].name); n++) {
|
|
char buf[BUFLEN];
|
|
// add it without an adjective
|
|
snprintf(buf, BUFLEN, "%s wand", gemtype[n].name);
|
|
addhiddenname(OC_WAND, buf);
|
|
}
|
|
|
|
for (n = 0; strlen(gemtype[n].name); n++) {
|
|
char buf[BUFLEN];
|
|
// add it without an adjective
|
|
snprintf(buf, BUFLEN, "%s ring", gemtype[n].name);
|
|
addhiddenname(OC_RING, buf);
|
|
// add it with all known adjectives
|
|
for (i = 0; strlen(ringadjective[i]) ; i++) {
|
|
char buf2[BUFLEN];
|
|
snprintf(buf2, BUFLEN, "%s %s",ringadjective[i], buf);
|
|
addhiddenname(OC_RING, buf2);
|
|
}
|
|
}
|
|
|
|
for (n = 0; strlen(amuletnoun[n]); n++) {
|
|
// add it with all known adjectives
|
|
for (i = 0; strlen(ringadjective[i]) ; i++) {
|
|
char buf2[BUFLEN];
|
|
snprintf(buf2, BUFLEN, "%s %s",amuletadjective[i], amuletnoun[n]);
|
|
addhiddenname(OC_AMULET, buf2);
|
|
}
|
|
}
|
|
|
|
for (n = 0; strlen(technoun[n]); n++) {
|
|
// add it without an adjective
|
|
addhiddenname(OC_TECH, technoun[n]);
|
|
// add it with all known adjectives
|
|
for (i = 0; strlen(techadjective[i]) ; i++) {
|
|
char buf[BUFLEN];
|
|
snprintf(buf, BUFLEN, "%s %s",techadjective[i], technoun[n]);
|
|
addhiddenname(OC_TECH, buf);
|
|
}
|
|
}
|
|
|
|
|
|
// object modifiers - flags can be either known or not, depending on if it's obvious
|
|
addobmod(OM_BLOODSTAINED,"bloodstained");
|
|
addflag_real(lastobmod->flags, F_SCARY, 2, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addobmod(OM_ENCHANTED, "enchanted");
|
|
addflag_real(lastobmod->flags, F_ENCHANTED, NA, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addobmod(OM_FLAMING,"flaming");
|
|
addflag_real(lastobmod->flags, F_ONFIRE, B_TRUE, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addobmod(OM_FROZEN,"frozen");
|
|
addflag_real(lastobmod->flags, F_FROZEN, B_TRUE, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addobmod(OM_HEADLESS,"headless");
|
|
addflag_real(lastobmod->flags, F_HEADLESS, B_TRUE, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addobmod(OM_MASTERWORK,"masterwork");
|
|
addflag_real(lastobmod->flags, F_MASTERWORK, B_TRUE, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addomprefix(OM_MASTERWORK, "reinforced");
|
|
addomprefix(OM_MASTERWORK, "studded");
|
|
addomprefix(OM_MASTERWORK, "sturdy");
|
|
addomprefix(OM_MASTERWORK, "tailored");
|
|
addobmod(OM_SHODDY,"shoddy");
|
|
addflag_real(lastobmod->flags, F_SHODDY, B_TRUE, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addomprefix(OM_SHODDY, "blunted");
|
|
addomprefix(OM_SHODDY, "chipped");
|
|
addomprefix(OM_SHODDY, "cracked");
|
|
addomprefix(OM_SHODDY, "crumbling");
|
|
addomprefix(OM_SHODDY, "dented");
|
|
addomprefix(OM_SHODDY, "frayed");
|
|
addomprefix(OM_SHODDY, "notched");
|
|
addomprefix(OM_SHODDY, "rusted");
|
|
addomprefix(OM_SHODDY, "rotted");
|
|
addomprefix(OM_SHODDY, "splintered");
|
|
addomprefix(OM_SHODDY, "torn");
|
|
addobmod(OM_POISONED,"poisoned");
|
|
addflag_real(lastobmod->flags, F_HITCONFER, F_POISONED, SC_POISON, 40, "15-30", PERMENANT, B_KNOWN, -1);
|
|
addflag_real(lastobmod->flags, F_HITCONFERVALS, P_VENOM, 1, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addobmod(OM_WET1,"damp");
|
|
addflag_real(lastobmod->flags, F_WET, W_DAMP, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addobmod(OM_WET2,"wet");
|
|
addflag_real(lastobmod->flags, F_WET, W_WET, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addobmod(OM_WET3,"soaked");
|
|
addflag_real(lastobmod->flags, F_WET, W_SOAKED, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addobmod(OM_RUSTY1,"rusty");
|
|
addflag_real(lastobmod->flags, F_RUSTED, R_RUSTY, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addobmod(OM_RUSTY2,"very rusty");
|
|
addflag_real(lastobmod->flags, F_RUSTED, R_VRUSTY, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
addobmod(OM_RUSTY3,"thoroughly rusty");
|
|
addflag_real(lastobmod->flags, F_RUSTED, R_TRUSTY, NA, NA, NULL, PERMENANT, B_KNOWN, -1);
|
|
|
|
// brands modifiers - flags should be UNKNOWN!
|
|
// also don't double up with names of scrolls,books etc.
|
|
// ie. spellbook of flight, boots of flight.
|
|
|
|
// missile weapons
|
|
addbrand(BR_HOMING, "of seeking", BP_NONE, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_HOMING, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addflag_real(lastbrand->flags, F_ONLYFOROBCLASS, OC_MISSILE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
// weapons
|
|
addbrand(BR_BALANCE, "of balance", BP_WEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_BALANCE, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_IMPACT, "of impact", BP_WEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_ONLYFORDAMTYPE, DT_BASH, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addflag_real(lastbrand->flags, F_HEAVYBLOW, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_MERCY, "of mercy", BP_WEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_MERCIFUL, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_PYROMANIA, "of pyromania", BP_WEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_FLAMESTRIKE, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_REVENGE, "of revenge", BP_WEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_REVENGE, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SHARPNESS, "of penetration", BP_WEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_ARMOURIGNORE, B_TRUE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_LIFESUCK, "of lifesucking", BP_WEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_VAMPIRIC, NA, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_PROTECTION, "of protection", BP_WEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ARBOOST, 10, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
addbrand(BR_REFLECTION, "of reflection", BP_SECWEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_ONLYFOROBWITHFLAG, F_SHIELD, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_REFLECTION, B_TRUE, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
addbrand(BR_SLAY_ANIMAL, "of butchering", BP_WEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_ONLYFORDAMTYPE, DT_SLASH, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addflag_real(lastbrand->flags, F_RACESLAY, RC_ANIMAL, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SLAY_DRAGON, "of dragonslaying", BP_WEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_ONLYFORWEPSKILL, SK_POLEARMS, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addflag_real(lastbrand->flags, F_RACESLAY, RC_DRAGON, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SLAY_MAGIC, "of antimagic", BP_WEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_RACESLAY, RC_MAGIC, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SLAY_PLANT, "of blight", BP_WEAPON, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_ONLYFOROBTYPE, OT_SCYTHE, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addflag_real(lastbrand->flags, F_RACESLAY, RC_PLANT, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SLAY_UNDEAD, "of divine power", BP_WEAPON, B_BLESSED, 80);
|
|
addflag_real(lastbrand->flags, F_ONLYFORWEPSKILL, SK_LONGBLADES, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addflag_real(lastbrand->flags, F_ONLYFORWEPSKILL, SK_SHORTBLADES, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addflag_real(lastbrand->flags, F_RACESLAY, RC_UNDEAD, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_PRODUCESLIGHT, 3, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
// feet
|
|
addbrand(BR_LEVITATION, "of hovering", BP_FEET, B_CURSED, 50);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_LEVITATING, NA, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_FEATHERFALL, "of featherfall", BP_FEET, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_DTIMMUNE, DT_FALL, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SWIFTNESS, "of swiftness", BP_FEET, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_FASTMOVE, 5, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SLOTH, "of sloth", BP_FEET, B_CURSED, 80);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_SLOWMOVE, 5, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_STEALTH, "of stealth", BP_FEET, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_SILENTMOVE, B_TRUE, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_PUNISHMENT, "of punishment", BP_FEET, B_CURSED, 80);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_HOTFEET, 1, DT_FIRE, "red-hot footwear", PERMENANT, B_UNKNOWN, -1);
|
|
|
|
// hands
|
|
addbrand(BR_POWER, "of power", BP_HANDS, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRMOD, A_STR, 15, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_WEAKNESS, "of feebleness", BP_HANDS, B_CURSED, 80);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRMOD, A_STR, -15, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_NIMBLENESS, "of nimbleness", BP_HANDS, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRMOD, A_AGI, 15, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SPIDERCLIMB, "of the spider", BP_HANDS, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_SPIDERCLIMB, B_TRUE, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
// head
|
|
addbrand(BR_THINKING, "of thinking", BP_HEAD, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRMOD, A_IQ, 15, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_KNOWLEDGE, "of knowledge", BP_HEAD, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_DETECTAURAS, B_TRUE, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_DETECTMAGIC, B_TRUE, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_TELEPATHY, "of telepathy", BP_HEAD, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_DETECTLIFE, 5, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_TELEKINESIS, "of the poltergeist", BP_HEAD, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_CANWILL, OT_S_TELEKINESIS, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
// waist
|
|
addbrand(BR_GIANTSTRENGTH, "of giant strength", BP_WAIST, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRSET, A_STR, 90, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_FEEBLENESS, "of feebleness", BP_WAIST, B_CURSED, 80);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRSET, A_STR, 15, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_FLIGHT, "of the eagle", BP_WAIST, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_FLYING, B_TRUE, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SPEED, "of swiftness", BP_WAIST, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_FASTACT, 5, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
// shoulders
|
|
addbrand(BR_CONCEALMENT, "of concealment", BP_SHOULDERS, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_INVISIBLE, B_TRUE, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_ANTIMAG, "of antimagic", BP_SHOULDERS, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_RESISTMAG, 10, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
addbrand(BR_SHADOWS, "of shadows", BP_SHOULDERS, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_SHADOWED, 2, NA, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
// body
|
|
addbrand(BR_HEALTH, "of health", BP_BODY, B_UNCURSED, 0);
|
|
addflag_real(lastbrand->flags, F_EQUIPCONFER, F_ATTRMOD, A_CON, 15, NULL, PERMENANT, B_UNKNOWN, -1);
|
|
|
|
|
|
// materials
|
|
addmaterial(MT_NOTHING, "nothing", 0);
|
|
addmaterial(MT_MAGIC, "magical energy", 0);
|
|
addmaterial(MT_FIRE, "fire", 0);
|
|
addmaterial(MT_GAS, "gas", 0.5);
|
|
addmaterial(MT_WIRE, "wire", 1);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_BASH, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_PROJECTILE, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_HOLY, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_WATER, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_MELT, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_DECAY, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_UNARMED, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_LIGHT, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_NECROTIC, NA, NA, NULL);
|
|
addmaterial(MT_DIRT, "dirt", 1);
|
|
addmaterial(MT_PLANT, "plant matter", 1);
|
|
addflag(lastmaterial->flags, F_FLAMMABLE, PERMENANT, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTVULN, DT_ACID, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_WATER, NA, NA, NULL);
|
|
addmaterial(MT_PAPER, "paper", 1);
|
|
addflag(lastmaterial->flags, F_MATCONVERT, MT_WATER, NA, NA, "lump of soggy paper");
|
|
addflag(lastmaterial->flags, F_MATCONVERTTEXT, MT_WATER, NA, NA, "goes soggy");
|
|
addflag(lastmaterial->flags, F_MATCONVERTTEXTPL, MT_WATER, NA, NA, "go soggy");
|
|
addflag(lastmaterial->flags, F_FLAMMABLE, PERMENANT, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addmaterial(MT_SILK, "silk", 1);
|
|
addflag(lastmaterial->flags, F_FLAMMABLE, 6, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTVULN, DT_FIRE, NA, NA, NULL); // doesn't catch on fire, but IS vulnerable to it
|
|
addflag(lastmaterial->flags, F_DTVULN, DT_ACID, NA, NA, NULL);
|
|
addmaterial(MT_FLESH, "flesh", 2);
|
|
addflag(lastmaterial->flags, F_FLAMMABLE, 3, NA, NA, NULL);
|
|
addmaterial(MT_WETPAPER, "wet paper", 3);
|
|
addmaterial(MT_CLOTH, "cloth", 3);
|
|
addflag(lastmaterial->flags, F_FLAMMABLE, 3, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_CANGETWET, B_TRUE, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_BASH, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTVULN, DT_FIRE, NA, NA, NULL); // doesn't catch on fire, but IS vulnerable to it
|
|
addmaterial(MT_FOOD, "food", 3);
|
|
addmaterial(MT_PLASTIC, "plastic", 3);
|
|
addflag(lastmaterial->flags, F_HARDNESS, 2, NA, NA, NULL);
|
|
addmaterial(MT_WAX, "wax", 3);
|
|
addflag(lastmaterial->flags, F_MATCONVERT, MT_FIRE, NA, NA, "lump of melted wax");
|
|
addflag(lastmaterial->flags, F_MATCONVERTTEXT, MT_FIRE, NA, NA, "melts");
|
|
addflag(lastmaterial->flags, F_MATCONVERTTEXTPL, MT_FIRE, NA, NA, "melt");
|
|
addmaterial(MT_DRAGONWOOD, "wyrmwood", 3);
|
|
addflag(lastmaterial->flags, F_HARDNESS, 5, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_CANGETWET, B_TRUE, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addmaterial(MT_RUBBER, "rubber", 4);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addmaterial(MT_LEATHER, "leather", 4);
|
|
addflag(lastmaterial->flags, F_CANGETWET, B_TRUE, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_BASH, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addmaterial(MT_BONE, "bone", 5);
|
|
addflag(lastmaterial->flags, F_HARDNESS, 3, NA, NA, NULL);
|
|
addmaterial(MT_CRYSTAL, "crystal", 5);
|
|
addflag(lastmaterial->flags, F_HARDNESS, 4, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTVULN, DT_BASH, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addmaterial(MT_OIL, "oil", 5);
|
|
addmaterial(MT_ICE, "ice",6);
|
|
addflag(lastmaterial->flags, F_HARDNESS, 3, NA, NA, NULL);
|
|
addmaterial(MT_WOOD, "wood", 6);
|
|
addflag(lastmaterial->flags, F_HARDNESS, 3, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_FLAMMABLE, 5, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_CANGETWET, B_TRUE, NA, NA, NULL);
|
|
addmaterial(MT_ACID, "acid", 7);
|
|
addmaterial(MT_WATER, "water", 7);
|
|
addmaterial(MT_BLOOD, "blood", 7);
|
|
addmaterial(MT_SLIME, "slime", 9);
|
|
addmaterial(MT_STONE, "stone", 10);
|
|
addflag(lastmaterial->flags, F_HARDNESS, 4, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addmaterial(MT_SILVER, "silver", 11);
|
|
addflag(lastmaterial->flags, F_HARDNESS, 2, NA, NA, NULL);
|
|
addmaterial(MT_METAL, "metal", 13);
|
|
addflag(lastmaterial->flags, F_HARDNESS, 5, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addmaterial(MT_GLASS, "glass", 13);
|
|
addflag(lastmaterial->flags, F_HARDNESS, 2, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTVULN, DT_BASH, NA, NA, NULL);
|
|
addflag(lastmaterial->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addmaterial(MT_GOLD, "gold", 16);
|
|
addflag(lastmaterial->flags, F_HARDNESS, 3, NA, NA, NULL);
|
|
|
|
// object classes
|
|
addoc(OC_BUILDING, "Buildings", "Shops, etc.", '_', C_GREY, RR_RARE);
|
|
addocnoun(lastobjectclass, "building");
|
|
addocnoun(lastobjectclass, "shop");
|
|
addocnoun(lastobjectclass, "store");
|
|
addflag(lastobjectclass->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_ONEPERCELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_SHOP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addoc(OC_DFEATURE, "Dungeon Features", "Doors, etc.", '\\', C_GREY, RR_RARE);
|
|
addoc(OC_FURNITURE, "Furniture", "Various kinds of mundane (or not so mundane) furnishings.", '\\', C_BROWN, RR_FREQUENT);
|
|
addocnoun(lastobjectclass, "furniture");
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_RARITY, H_CAVE, RR_RARE, NA, NULL); // override for habitat
|
|
addflag(lastobjectclass->flags, F_RARITY, H_ANTNEST, RR_NEVER, NA, NULL); // override for habitat
|
|
addoc(OC_TERRAIN, "Terrain", "Water, etc.", '\\', C_GREY, RR_NEVER);
|
|
addoc(OC_TRAP, "Trap", "Fiendish traps.", '^', C_GREY, RR_RARE);
|
|
addocnoun(lastobjectclass, "trap");
|
|
addflag(lastobjectclass->flags, F_RARITY, H_ANTNEST, RR_NEVER, NA, NULL); // override for habitat
|
|
addoc(OC_MONEY, "Money", "The standard currency of Nexus.", '$', C_GREY, RR_UNCOMMON);
|
|
addoc(OC_SCROLL, "Scrolls", "An arcane roll of parchment, inscribed with many magical glyphs.", '?', C_GREY, RR_COMMON);
|
|
addocnoun(lastobjectclass, "scroll");
|
|
addflag(lastobjectclass->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
//addflag(lastobjectclass->flags, F_DTCONVERT, DT_WATER, NA, NA, "lump of soggy paper");
|
|
//addflag(lastobjectclass->flags, F_MATCONVERT, MT_WATER, NA, NA, "lump of soggy paper");
|
|
//addflag(lastobjectclass->flags, F_MATCONVERTTEXT, MT_WATER, NA, NA, "goes soggy");
|
|
//addflag(lastobjectclass->flags, F_MATCONVERTTEXTPL, MT_WATER, NA, NA, "go soggy");
|
|
|
|
addoc(OC_WAND, "Wands", "A limited-use magical wand which casts the imbued spell.", '/', C_GREY, RR_VERYRARE);
|
|
addocnoun(lastobjectclass, "wand");
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_OPERWITHOUTID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_OPERUSECHARGE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_RNDCHARGES, 1, 8, NA, NULL);
|
|
|
|
addoc(OC_POTION, "Potions", "A strange concoction contained within a small flask.", '!', C_GREY, RR_COMMON);
|
|
addocnoun(lastobjectclass, "potion");
|
|
addflag(lastobjectclass->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_POURABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_DRINKABLE, B_TRUE, NA, NA, NULL);
|
|
addoc(OC_RING, "Rings", "A circular band, worn on the finger.", '=', C_GREY, RR_VERYRARE);
|
|
addocnoun(lastobjectclass, "ring");
|
|
addflag(lastobjectclass->flags, F_RARITY, H_SEWER, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastobjectclass->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_GOESON, BP_RIGHTFINGER, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_GOESON, BP_LEFTFINGER, NA, NA, NULL);
|
|
addoc(OC_AMULET, "Amulets", "Items of jewellery worn around the neck, usually on a short metallic chain.", '"', C_GREY, RR_VERYRARE);
|
|
addocnoun(lastobjectclass, "amulet");
|
|
addflag(lastobjectclass->flags, F_RARITY, H_SEWER, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastobjectclass->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_GOESON, BP_NECK, NA, NA, NULL);
|
|
addoc(OC_WEAPON, "Weapons", "An instrument used for the purpose of causing harm or death.", ')', C_GREY, RR_COMMON);
|
|
addocnoun(lastobjectclass, "weapon");
|
|
addflag(lastobjectclass->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_ENCHANTABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_CANHAVEOBMOD, OM_MASTERWORK, 17, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_CANHAVEOBMOD, OM_SHODDY, 34, NA, NULL);
|
|
addoc(OC_ARMOUR, "Armour/Clothing", "Protective gear.", '[', C_GREY, RR_FREQUENT);
|
|
addocnoun(lastobjectclass, "armour");
|
|
addocnoun(lastobjectclass, "clothing");
|
|
addocnoun(lastobjectclass, "clothes");
|
|
addflag(lastobjectclass->flags, F_RARITY, H_SEWER, NA, RR_COMMON, NULL);
|
|
addflag(lastobjectclass->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_ENCHANTABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_CANHAVEOBMOD, OM_MASTERWORK, 17, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_CANHAVEOBMOD, OM_SHODDY, 34, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_CANHAVEOBMOD, OM_BLOODSTAINED, 17, NA, NULL);
|
|
addoc(OC_MISSILE, "Missiles/Ammunition", "An instrument used for the purpose of causing harm or death.", ';', C_GREY, RR_UNCOMMON);
|
|
addocnoun(lastobjectclass, "missile");
|
|
addocnoun(lastobjectclass, "ammo");
|
|
addocnoun(lastobjectclass, "ammunition");
|
|
addflag(lastobjectclass->flags, F_ENCHANTABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addoc(OC_FLORA, "Plants", "Some kind of plant/foliage.", ',', C_GREEN, RR_FREQUENT);
|
|
addocnoun(lastobjectclass, "plant");
|
|
addoc(OC_ROCK, "Rocks/Gems", "Boring (or not so boring) rocks or plants.", '*', C_GREY, RR_FREQUENT);
|
|
addoc(OC_FOOD, "Food", "Yum!", '%', C_GREY, RR_FREQUENT);
|
|
addocnoun(lastobjectclass, "food");
|
|
addflag(lastobjectclass->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_SMELLY, B_TRUE, NA, NA, NULL);
|
|
addoc(OC_GODSTONE, "Godstones", "Ancient artifacts, created by the elder gods.", '*', C_BOLDMAGENTA, RR_NEVER);
|
|
addflag(lastobjectclass->flags, F_UNIQUE, NA, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_THE, NA, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "pulsating stone");
|
|
addflag(lastobjectclass->flags, F_INVULNERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_OPERWITHOUTID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_GODSTONE, B_TRUE, NA, B_TRUE, NULL);
|
|
|
|
addoc(OC_CORPSE, "Corpses", "Dead flesh which was once living.", '%', C_GREY, RR_NEVER);
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_OBHP, 50, 50, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_OBHPDRAIN, 1, DT_DECAY, NA, NULL); // ie. corpses last for 50 turns
|
|
addoc(OC_TECH, "Technology", "A strange piece of futuristic technology.", '[', C_GREY, RR_UNCOMMON);
|
|
addocnoun(lastobjectclass, "technology");
|
|
addocnoun(lastobjectclass, "tech");
|
|
addflag(lastobjectclass->flags, F_RARITY, H_SEWER, NA, RR_COMMON, NULL);
|
|
addflag(lastobjectclass->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_RARITY, H_CAVE, RR_UNCOMMON, NA, NULL); // override for habitat
|
|
addoc(OC_TOOLS, "Tools", "Useful items, from the common to the obscure.", ']', C_GREY, RR_RARE);
|
|
addocnoun(lastobjectclass, "tool");
|
|
addflag(lastobjectclass->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_RARITY, H_CAVE, RR_UNCOMMON, NA, NULL); // override for habitat
|
|
addoc(OC_MISC, "Miscellaneous", "This could be anything.", '\\', C_GREY, RR_COMMON);
|
|
addoc(OC_EFFECT, "Environmental Effects", "Smoke, fire, etc.", '}', C_GREY, RR_NEVER);
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addoc(OC_BOOK, "Books", "Spellbooks, tomes or manuals.", '+', C_GREY, RR_VERYRARE);
|
|
addocnoun(lastobjectclass, "spellbook");
|
|
addocnoun(lastobjectclass, "book");
|
|
addocnoun(lastobjectclass, "tome");
|
|
addflag(lastobjectclass->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastobjectclass->flags, F_RARITY, H_CAVE, RR_NEVER, NA, NULL); // override for habitat
|
|
addoc(OC_SPELL, "Spells", "A magical spell", '&', C_GREY, RR_NEVER); // this is a "virtual" object class
|
|
addoc(OC_ABILITY, "Abilities", "A special ability", '&', C_GREY, RR_NEVER); // this is a "virtual" object class
|
|
|
|
|
|
// shuffle hidden names and ensure no duplicates
|
|
shufflehiddennames();
|
|
validatehiddennames();
|
|
|
|
// object types
|
|
|
|
// dungeon features
|
|
addot(OT_DOORWOOD, "wooden door", "A sturdy wooden door.", MT_WOOD, 150, OC_DFEATURE, SZ_LARGE);
|
|
// GLYPH here is a special case in getglyph
|
|
addflag(lastot->flags, F_DOOR, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSLOF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOCKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBELOCKED, 20, 5, NA, NULL);
|
|
addflag(lastot->flags, F_CANBETRAPPED, 5, 10, 60, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_BASH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_CHOP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANHAVEOBMOD, OM_MASTERWORK, 25, NA, NULL);
|
|
addflag(lastot->flags, F_CANHAVEOBMOD, OM_SHODDY, 25, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, CT_WALLWOOD, VT_CELL, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_BED, VT_OB, NA, NULL);
|
|
|
|
addot(OT_DOORIRON, "iron door", "A strong iron door.", MT_METAL, 300, OC_DFEATURE, SZ_LARGE);
|
|
// GLYPH here is a special case in getglyph
|
|
addflag(lastot->flags, F_DOOR, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSLOF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOCKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBETRAPPED, 10, 10, 60, NULL);
|
|
addflag(lastot->flags, F_OBHP, 60, 60, NA, NULL);
|
|
addflag(lastot->flags, F_DTIMMUNE, DT_PIERCE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTIMMUNE, DT_SLASH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTRESIST, DT_CHOP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, CT_WALLMETAL, VT_CELL, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_SHIELD, VT_OB, NA, NULL);
|
|
|
|
addot(OT_FOUNTAIN, "fountain", "A running fountain of some kind of liquid.", MT_WATER, 20, OC_MISC, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BLUE, '_', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_VILLAGE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 90, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTCONVERT, DT_COLD, NA, NA, "sheet of ice");
|
|
addflag(lastot->flags, F_DTCREATEOB, DT_FIRE, 0, DT_COMPASS, "cloud of steam");
|
|
addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, B_DONTKILL, NULL);
|
|
addflag(lastot->flags, F_LINKOB, OT_POT_WATER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_WATERDEEP, VT_OB, NA, NULL);
|
|
|
|
// blocks movement, but you can see and fire through them.
|
|
addot(OT_GATEIRON, "iron gate", "A gate comprised of a series of vertical iron bars, raised slightly above the floor.", MT_METAL, 500, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '+', NA, NULL);
|
|
addflag(lastot->flags, F_DOOR, SZ_MEDIUM, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MEDIUM, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_LOCKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 120, 120, NA, NULL);
|
|
addflag(lastot->flags, F_DTIMMUNE, DT_PIERCE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTIMMUNE, DT_SLASH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTRESIST, DT_CHOP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, CT_WALLMETAL, VT_CELL, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_IRONSTAFF, VT_OB, NA, NULL);
|
|
|
|
addot(OT_GATEBONE, "bone gate", "A grisly gate created from human bones.", MT_BONE, 60, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '+', NA, NULL);
|
|
addflag(lastot->flags, F_DOOR, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_LOCKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 50, 50, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_BONE, VT_OB, NA, NULL);
|
|
|
|
addot(OT_GATEWOOD, "wooden gate", "A gate comprised of a series of wooden slats.", MT_WOOD, 200, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '+', NA, NULL);
|
|
addflag(lastot->flags, F_DOOR, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_LOCKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_CHOP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, CT_WALLWOOD, VT_CELL, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_BED, VT_OB, NA, NULL);
|
|
|
|
addot(OT_FENCEBONE, "bone fence", "A tell fence created from what appear to be human bones.", MT_BONE, 150, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '/', NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSLOF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 50, 50, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_BONE, VT_OB, NA, NULL);
|
|
|
|
addot(OT_FENCEWOOD, "wooden fence", "A tell fence created from a series of upright logs of wood.", MT_WOOD, 200, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSLOF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_CHOP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, CT_WALLWOOD, VT_CELL, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_BED, VT_OB, NA, NULL);
|
|
|
|
addot(OT_GRATINGFLOOR, "drainage grate", "A hatchway in the ground made of strong iron mesh.", MT_METAL, 40, OC_DFEATURE, SZ_MEDIUM);
|
|
// important: don't make these in a swamp.
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 3, NA, "a slow drip.");
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '#', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_DOWN, NA, NA, "drainage grate");
|
|
addflag(lastot->flags, F_OPPOSITESTAIRS, OT_GRATINGROOF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONEPERCELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOCKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STENCH, B_TRUE, 1, NA, NULL);
|
|
addflag(lastot->flags, F_CANBELOCKED, 50, 0, NA, NULL);
|
|
|
|
addot(OT_GRATINGROOF, "drain in the roof", "An open draining grate set into the roof.", MT_NOTHING, 0, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_BLUE, '<', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_UP, NA, NA, "drainage grate");
|
|
addflag(lastot->flags, F_DONTSHOWDEST, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PIT, D_UP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPPOSITESTAIRS, OT_GRATINGFLOOR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONEPERCELL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_HOLEINGROUND, "hole in the ground", "A gaping hole in the ground.", MT_NOTHING, 0, OC_DFEATURE, SZ_LARGE);
|
|
// important: don't make these in a swamp.
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BLUE, '^', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_DOWN, NA, NA, "hole");
|
|
addflag(lastot->flags, F_DONTSHOWDEST, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PIT, D_DOWN, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPPOSITESTAIRS, OT_HOLEINROOF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONEPERCELL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_HOLEINROOF, "hole in the roof", "A gaping hole in the roof.", MT_NOTHING, 0, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_BLUE, '<', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_UP, NA, NA, "hole");
|
|
addflag(lastot->flags, F_DONTSHOWDEST, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PIT, D_UP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPPOSITESTAIRS, OT_HOLEINGROUND, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONEPERCELL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TREEDOWN, "hollow tree leading down", "A huge hollow tree containing an ascending staircase.", MT_DRAGONWOOD, 3000, OC_DFEATURE, SZ_HUGE);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '>', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_DOWN, NA, NA, "hollow tree");
|
|
addflag(lastot->flags, F_OPPOSITESTAIRS, OT_TREEUP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 1, NA, "rustling leaves.");
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 1, NA, "birds chirping.");
|
|
addot(OT_TREEUP, "hollow tree leading up", "A huge hollow tree containing an ascending staircase.", MT_DRAGONWOOD, 3000, OC_DFEATURE, SZ_HUGE);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '<', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_UP, NA, NA, "hollow tree");
|
|
addflag(lastot->flags, F_OPPOSITESTAIRS, OT_TREEDOWN, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TUNNELDOWN, "tunnel leading down", "A wide tunnel leading downwards.", MT_STONE, 3000, OC_DFEATURE, SZ_HUGE);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '>', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_DOWN, NA, NA, "tunnel");
|
|
addflag(lastot->flags, F_OPPOSITESTAIRS, OT_TUNNELUP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 1, NA, "a strange echoing.");
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 1, NA, "an echoing drip.");
|
|
addot(OT_TUNNELUP, "tunnel leading up", "A wide tunnel leading upwards.", MT_STONE, 3000, OC_DFEATURE, SZ_HUGE);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '<', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_UP, NA, NA, "tunnel");
|
|
addflag(lastot->flags, F_OPPOSITESTAIRS, OT_TUNNELDOWN, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_STAIRSDOWN, "staircase going down", "A stone staircase winding downwards.", MT_STONE, 3000, OC_DFEATURE, SZ_HUGE);
|
|
addflag(lastot->flags, F_GLYPH, NA, '>', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_DOWN, NA, NA, "staircase");
|
|
addflag(lastot->flags, F_OPPOSITESTAIRS, OT_STAIRSUP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_STAIRSUP, "staircase going up", "A stone staircase climbing upwards.", MT_STONE, 3000, OC_DFEATURE, SZ_HUGE);
|
|
addflag(lastot->flags, F_GLYPH, NA, '<', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_UP, NA, NA, "staircase");
|
|
addflag(lastot->flags, F_OPPOSITESTAIRS, OT_STAIRSDOWN, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
// buildings
|
|
|
|
|
|
// baba yaga's hut
|
|
addot(OT_BABAYAGAHUT, "wooden hut", "A small wooden cabin on the ground, two chicken's legs folded underneath it.", MT_DRAGONWOOD, 1000, OC_BUILDING, SZ_LARGE);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '_', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_IN, NA, NA, "hut's door");
|
|
addflag(lastot->flags, F_OPPOSITESTAIRS, OT_BYHUTDOOR, NA, NA, NULL);
|
|
killflagsofid(lastot->flags, F_SHOP);
|
|
|
|
// the exit to baba yaga's hut
|
|
addot(OT_BYHUTDOOR, "hut's doorway", "The front door of Baba Yaga's hut.", MT_STONE, 3000, OC_DFEATURE, SZ_HUGE);
|
|
addflag(lastot->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '>', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_IN, NA, NA, "doorway");
|
|
addflag(lastot->flags, F_OPPOSITESTAIRS, OT_BABAYAGAHUT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOCKED, B_TRUE, 40, NA, NULL);
|
|
addflag(lastot->flags, F_LOCKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_MOTEL, "motel", "A small structure providing cheap overnight rooms for rent", MT_METAL, 500, OC_BUILDING, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SHOPMENU, 0, MA_GOTOMENU, SM_REST, "a:rent a room");
|
|
addflag(lastot->flags, F_SHOPMENU, 1, MA_GOTOMENU, SM_PURCHASEITEMS, "b:buy provisions");
|
|
addflag(lastot->flags, F_SHOPMENU, 3, MA_QUIT, NA, "q:leave");
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 3, NA, "a cash register chiming.");
|
|
for (i = 0; i < 10; i++) {
|
|
f = addflag(lastot->flags, F_STARTOBCLASS, 100, OC_FOOD, NA, NULL);
|
|
addcondition(f, FC_NOCONDITION, 33);
|
|
addaltval(f, F_STARTOB, 100, NA, NA, "potion of rum");
|
|
}
|
|
|
|
addot(OT_SHOPARMOUR, "armour store", "A small kiosk dealing in armour.", MT_METAL, 500, OC_BUILDING, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SHOPACCEPTSFLAG, F_ARMOURRATING, NA, OC_ARMOUR, NULL);
|
|
addflag(lastot->flags, F_SHOPMENU, 0, MA_GOTOMENU, SM_PURCHASEITEMS, "a:buy something");
|
|
addflag(lastot->flags, F_SHOPMENU, 1, MA_GOTOMENU, SM_DONATE, "d:donate something");
|
|
addflag(lastot->flags, F_SHOPMENU, 2, MA_GOTOMENU, SM_REPAIR, "r:repair equipment");
|
|
addflag(lastot->flags, F_SHOPMENU, 3, MA_GOTOMENU, SM_RESIZE, "s:resize equipment");
|
|
addflag(lastot->flags, F_SHOPMENU, 4, MA_QUIT, NA, "q:leave");
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 3, NA, "a cash register chiming.");
|
|
for (i = 0; i < 10; i++) {
|
|
addflag(lastot->flags, F_STARTOBCLASS, 100, OC_ARMOUR, RANDOM, NULL);
|
|
}
|
|
addot(OT_SHOPBOOK, "book store", "A small kiosk dealing in books.", MT_METAL, 500, OC_BUILDING, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
make_basic_shop(lastot->flags);
|
|
for (i = 0; i < 10; i++) {
|
|
f = addflag(lastot->flags, F_STARTOBCLASS, 100, OC_BOOK, RANDOM, NULL);
|
|
addcondition(f, FC_NOCONDITION, 33);
|
|
addaltval(f, F_STARTOBCLASS, 100, OC_SCROLL, RANDOM, NULL);
|
|
}
|
|
addot(OT_SHOPFOOD, "food vendor", "A small kiosk dealing in food.", MT_METAL, 500, OC_BUILDING, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
make_basic_shop(lastot->flags);
|
|
for (i = 0; i < 10; i++) {
|
|
addflag(lastot->flags, F_STARTOBCLASS, 100, OC_FOOD, RANDOM, NULL);
|
|
}
|
|
addot(OT_SHOPGENERAL, "general store", "A small kiosk which sells various objects.", MT_METAL, 500, OC_BUILDING, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
make_basic_shop(lastot->flags);
|
|
for (i = 0; i < 10; i++) {
|
|
addflag(lastot->flags, F_STARTOBRND, 100, RANDOM, NA, NULL);
|
|
}
|
|
addot(OT_SHOPHARDWARE, "hardware store", "A small kiosk which sells tools and technology.", MT_METAL, 500, OC_BUILDING, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
make_basic_shop(lastot->flags);
|
|
for (i = 0; i < 10; i++) {
|
|
f = addflag(lastot->flags, F_STARTOBCLASS, 100, OC_TOOLS, RANDOM, NULL);
|
|
addcondition(f, FC_NOCONDITION, 50);
|
|
addaltval(f, F_STARTOBCLASS, 100, OC_TECH, RANDOM, NULL);
|
|
}
|
|
addot(OT_SHOPPOTION, "potion store", "A small kiosk dealing in liqour and potions.", MT_METAL, 500, OC_BUILDING, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
make_basic_shop(lastot->flags);
|
|
for (i = 0; i < 10; i++) {
|
|
addflag(lastot->flags, F_STARTOBCLASS, 100, OC_POTION, RANDOM, NULL);
|
|
}
|
|
addot(OT_SHOPRING, "jewellery store", "A small kiosk dealing in rings and amulets.", MT_METAL, 500, OC_BUILDING, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SHOPACCEPTSFLAG, F_GEM, 75, NA, NULL);
|
|
addflag(lastot->flags, F_SHOPMENU, 0, MA_GOTOMENU, SM_PURCHASEITEMS, "a:buy something");
|
|
addflag(lastot->flags, F_SHOPMENU, 1, MA_GOTOMENU, SM_SELLITEMS, "b:sell gems");
|
|
addflag(lastot->flags, F_SHOPMENU, 2, MA_QUIT, NA, "q:leave");
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 3, NA, "a cash register chiming.");
|
|
for (i = 0; i < 10; i++) {
|
|
if (onein(3)) {
|
|
addflag(lastot->flags, F_STARTOBCLASS, 100, OC_ROCK, RANDOM, NULL);
|
|
} else {
|
|
addflag(lastot->flags, F_STARTOBCLASS, 100, OC_RING, RANDOM, NULL);
|
|
}
|
|
}
|
|
addot(OT_SHOPWEAPON, "weapon store", "A small kiosk dealing in weapons.", MT_METAL, 500, OC_BUILDING, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SHOPACCEPTSFLAG, F_DAM, NA, OC_WEAPON, NULL);
|
|
addflag(lastot->flags, F_SHOPMENU, 0, MA_GOTOMENU, SM_PURCHASEITEMS, "a:buy something");
|
|
addflag(lastot->flags, F_SHOPMENU, 1, MA_GOTOMENU, SM_DONATE, "d:donate something");
|
|
addflag(lastot->flags, F_SHOPMENU, 2, MA_GOTOMENU, SM_RESIZE, "r:resize equipment");
|
|
addflag(lastot->flags, F_SHOPMENU, 3, MA_QUIT, NA, "q:leave");
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 3, NA, "a cash register chiming.");
|
|
for (i = 0; i < 10; i++) {
|
|
addflag(lastot->flags, F_STARTOBCLASS, 100, OC_WEAPON, RANDOM, NULL);
|
|
}
|
|
addot(OT_TEMPLE, "temple", "A small structure dedicated to one of the gods.", MT_METAL, 500, OC_BUILDING, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SHOPACCEPTSFLAG, F_NONE, NA, OC_MONEY, NULL);
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 3, NA, "voices chanting.");
|
|
addflag(lastot->flags, F_SHOPMENU, 0, MA_GOTOMENU, 1, "a:speak to a deacon (earthly concerns)");
|
|
addflag(lastot->flags, F_SHOPMENU, 1, MA_GOTOMENU, 2, "b:speak to a priest (minor divine administration)");
|
|
addflag(lastot->flags, F_SHOPMENU, 2, MA_GOTOMENU, 3, "c:speak to the bishop (major divine matters)");
|
|
addflag(lastot->flags, F_SHOPMENU, 3, MA_QUIT, NA, "q:leave");
|
|
addflag(lastot->flags, F_SHOPMENU, 100, MA_GOTOMENU, SM_DETECTCURSE, "a:detect auras");
|
|
addflag(lastot->flags, F_SHOPMENU, 101, MA_GOTOMENU, SM_PURCHASEITEMS, "b:buy holy water");
|
|
addflag(lastot->flags, F_SHOPMENU, 102, MA_GOTOMENU, SM_DONATE, "c:donate money");
|
|
addflag(lastot->flags, F_SHOPMENU, 103, MA_GOTOMENU, 0, "q:finished");
|
|
addflag(lastot->flags, F_SHOPMENU, 200, MA_GOTOMENU, SM_ABSOLVE, "a:absolve sins");
|
|
addflag(lastot->flags, F_SHOPMENU, 201, MA_GOTOMENU, SM_BLESS, "b:bless items");
|
|
addflag(lastot->flags, F_SHOPMENU, 202, MA_GOTOMENU, 0, "q:finished");
|
|
addflag(lastot->flags, F_SHOPMENU, 300, MA_GOTOMENU, SM_MIRACLE, "a:pay for miracles");
|
|
addflag(lastot->flags, F_SHOPMENU, 301, MA_GOTOMENU, 0, "q:finished");
|
|
for (i = 0; i < 10; i++) {
|
|
addflag(lastot->flags, F_STARTOB, 100, OC_WEAPON, NA, "potion of holy water");
|
|
}
|
|
|
|
addot(OT_HOLYCIRCLE, "holy circle", "A consecrated area imbued with holy power.", MT_NOTHING, 0, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, NA, "");
|
|
addflag(lastot->flags, F_GLYPH, C_CYAN, '_', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_REPELBLESSED, B_CURSED, B_BLESSED, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_PENTAGRAM, "pentagram", "A area imbued with evil.", MT_NOTHING, 0, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, NA, "");
|
|
addflag(lastot->flags, F_GLYPH, C_RED, '_', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_REPELBLESSED, B_BLESSED, B_CURSED, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_PORTAL, "magic portal", "A magical portal to a different place...", MT_MAGIC, 0, OC_EFFECT, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 80, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BOLDGREEN, '^', NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_IN, NA, NA, "portal");
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_STOMACHEXIT, "gaping hole", "A gaping hole in an enormous creature.", MT_MAGIC, 0, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_DONTSHOWDEST, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CLIMBABLE, D_IN, NA, NA, "hole");
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
// terrain
|
|
addot(OT_WATERDEEP, "water", "Deep water.", MT_WATER, 300, OC_TERRAIN, SZ_HUGE);
|
|
addflag(lastot->flags, F_NO_A, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BLUE, UNI_SOLID, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTCONVERT, DT_COLD, NA, NA, "sheet of ice");
|
|
addflag(lastot->flags, F_DTCREATEOB, DT_FIRE, 1, DT_COMPASS, "cloud of steam");
|
|
addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, B_DONTKILL, NULL);
|
|
addflag(lastot->flags, F_LINKOB, OT_POT_WATER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DEEPWATER, DP_MAX, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONEPERCELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, NA, VT_OB, NA, "water fountain");
|
|
|
|
// traps - cell only
|
|
addot(OT_TRAPARROW, "arrow trap", "A pressure plate which causes arrows to shoot at you.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 25, B_TRUE, NA, "ground");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 76, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 76, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_SECRET, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TRAPARROWP, "poison arrow trap", "A pressure plate which causes poisoned arrows to shoot at you.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 25, B_TRUE, NA, "ground");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 69, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 69, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_SECRET, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TRAPPIT, "pit trap", "A pressure plate which causes the floor to drop away.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 20, B_TRUE, 22, "ground");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 85, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 85, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SECRET, 20, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TRAPROCK, "falling rock trap", "A pressure plate which causes heavy rocks to drop from the ceiling.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 20, B_TRUE, 22, "ground");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 85, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 85, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_SECRET, 25, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TRAPSUMMON, "summoning trap", "A magical trap which causes a monster to appear.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 30, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 60, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 60, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_SECRET, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TRAPTRIP, "tripwire", "A thin wire at ankle height.", MT_WIRE, 0.1, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 15, B_FALSE, 20, "ground");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 90, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_SECRET, 25, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 1, 1, NA, NULL);
|
|
|
|
|
|
// traps - object only
|
|
addot(OT_TRAPNEEDLEP, "poison needle trap", "A springed needle coated with poison.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_OBJECTTRAP, B_TRUE, NA, NA, "ground");
|
|
addflag(lastot->flags, F_TRAP, 23, B_TRUE, 25, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addot(OT_TRAPWIND, "wind trap", "A magical trap which assails the target with a blast of air.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_OBJECTTRAP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TRAP, 20, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_MAGENTA, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
|
|
// traps - either cell on object
|
|
addot(OT_TRAPALARM, "alarm trap", "A pressure-triggered trap which sounds a loud siren.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 18, B_TRUE, NA, "ground");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, NULL);
|
|
addflag(lastot->flags, F_OBJECTTRAP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_SECRET, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TRAPEBLAST, "energy blast trap", "A magical trap which blasts its victim with energy.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 30, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 75, NA, NULL);
|
|
addflag(lastot->flags, F_OBJECTTRAP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_MAGENTA, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_SECRET, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TRAPFIRE, "fire trap", "A trap which fires a pillar of flame.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 30, B_TRUE, 30, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 59, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 59, NA, NULL);
|
|
addflag(lastot->flags, F_OBJECTTRAP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_SECRET, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TRAPLIGHTNING, "electrical trap", "A metal pressure plate which triggers a bolt of arcing electricity.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 30, B_TRUE, NA, "ground");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 59, NA, NULL);
|
|
addflag(lastot->flags, F_OBJECTTRAP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_SECRET, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TRAPGAS, "gas trap", "A trap which releases poisonous gas.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 27, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 69, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 69, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_SECRET, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBJECTTRAP, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TRAPMINE, "landmine trap", "A buried, pressure-sensitive explosive device.", MT_NOTHING, 0, OC_TRAP, SZ_SMALL);
|
|
addflag(lastot->flags, F_TRAP, 30, B_TRUE, NA, "ground");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 50, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 20, NA, NULL);
|
|
addflag(lastot->flags, F_OBJECTTRAP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_SECRET, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TRAPTELEPORT, "teleportation trap", "A magical dispersal field.", MT_NOTHING, 0, OC_TRAP, SZ_LARGE);
|
|
addflag(lastot->flags, F_TRAP, NA, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 80, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 80, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_MAGENTA, '^', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_SECRET, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBJECTTRAP, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
// money etc
|
|
addot(OT_GOLD, "gold coin", "Sparkling nuggets of gold, the standard currency of Nexus.", MT_GOLD, 0.01, OC_MONEY, SZ_MINI);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_FREQUENT, "");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 100, NA, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "some gold");
|
|
|
|
// rocks
|
|
addot(OT_BOULDER, "boulder", "A massive stone boulder.", MT_STONE, 80, OC_ROCK, SZ_HUGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, '\'', NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_LARGE, NA, NULL);
|
|
addflag(lastot->flags, F_PUSHABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSLOF, B_TRUE, NA, NA, NULL);
|
|
// addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 80, 80, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "50-100 stones");
|
|
addflag(lastot->flags, F_GROWSTO, OT_DUSTCLOUD, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_STONE, VT_OB, NA, NULL);
|
|
|
|
addot(OT_ICICLE, "huge icicle", "A massive ice stalacmite.", MT_ICE, 200, OC_ROCK, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_CYAN, '\'', NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_LARGE, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSLOF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 80, 80, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_ICESHEET, VT_OB, NA, NULL);
|
|
|
|
addot(OT_IRONBARS, "iron cage", "A series of vertical iron bars.", MT_METAL, 500, OC_DFEATURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '|', NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_SMALL, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 120, 120, NA, NULL);
|
|
addflag(lastot->flags, F_DTIMMUNE, DT_PIERCE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTIMMUNE, DT_SLASH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTRESIST, DT_CHOP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, CT_WALLMETAL, VT_CELL, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_IRONSTAFF, VT_OB, NA, NULL);
|
|
|
|
addot(OT_STATUE, "statue", "A stone statue of a monster.", MT_STONE, 80, OC_ROCK, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_VILLAGE, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, NA, RR_RARE, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, '\'', NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_LARGE, NA, NULL); // will be overridden
|
|
addflag(lastot->flags, F_PUSHABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSLOF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 80, 80, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "20-50 stones");
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "a statue");
|
|
addot(OT_STONE, "stone", "A medium-sized roundish stone.", MT_STONE, 0.5, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 10, NA, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
|
|
// gems
|
|
addot(OT_AQUAMARINE, "aquamarine stone", "An aqua-coloured gemstone.", MT_STONE, 0.2, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, '*', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_STOMACH, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 250, NA, NA, NULL);
|
|
addot(OT_AMETHYST, "amethyst", "A purple gemstone.", MT_STONE, 0.2, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_MAGENTA, '*', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_STOMACH, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 15, NA, NA, NULL);
|
|
addot(OT_DIAMOND, "diamond", "A sparkling diamond.", MT_STONE, 0.2, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, '*', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_VERYRARE, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_STOMACH, 100, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 1000, NA, NA, NULL);
|
|
addot(OT_EMERALD, "emerald", "A deep green gem.", MT_STONE, 0.2, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, '*', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_VERYRARE, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_STOMACH, 100, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 650, NA, NA, NULL);
|
|
addot(OT_OPAL, "opal", "An amorphous form of silica related to quartz.", MT_STONE, 0.1, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '*', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_STOMACH, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 70, NA, NA, NULL);
|
|
addot(OT_PEARL, "pearl", "A small pinkish-white gem.", MT_STONE, 0.1, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, '*', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_STOMACH, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 30, NA, NA, NULL);
|
|
addot(OT_RUBY, "ruby", "A large red gem.", MT_STONE, 0.2, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_RED, '*', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_STOMACH, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 110, NA, NA, NULL);
|
|
addot(OT_SAPPHIRE, "sapphire", "A brilliant blue gem.", MT_STONE, 0.2, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_CYAN, '*', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_VERYRARE, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_STOMACH, 100, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 850, NA, NA, NULL);
|
|
addot(OT_TOPAZ, "topaz stone", "A dull blue gem.", MT_STONE, 0.2, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BLUE, '*', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_STOMACH, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 60, NA, NA, NULL);
|
|
|
|
|
|
addot(OT_ASH, "pile of ash", "A pile of ash.", MT_STONE, 0.1, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_POWDER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "some ash");
|
|
addflag(lastot->flags, F_GROWSTO, OT_DUSTCLOUD, VT_OB, NA, NULL);
|
|
addot(OT_ASHCONCEAL, "pile of concealing powder", "A pile of ash.", MT_STONE, 0.1, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, RR_RARE, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, RR_RARE, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_POWDER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "pile of ash");
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "some ash");
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_DUSTCLOUD, VT_OB, NA, NULL);
|
|
addot(OT_ASHEXPLODE, "pile of exploding powder", "A pile of ash.", MT_STONE, 0.1, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_EXPLODEONDAM, NA, NA, NA, "1d6");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, RR_RARE, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_POWDER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "pile of ash");
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "some ash");
|
|
addflag(lastot->flags, F_VALUE, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_DUSTCLOUD, VT_OB, NA, NULL);
|
|
addot(OT_ASHINVIS, "pile of prankster's dust", "A pile of ash.", MT_STONE, 0.1, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, RR_RARE, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, RR_RARE, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_POWDER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "pile of ash");
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "some ash");
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_DUSTCLOUD, VT_OB, NA, NULL);
|
|
addot(OT_ASHSLEEP, "pile of sleeping powder", "A pile of ash.", MT_STONE, 0.1, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, RR_RARE, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, RR_RARE, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_POWDER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "pile of ash");
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "some ash");
|
|
addflag(lastot->flags, F_VALUE, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_DUSTCLOUD, VT_OB, NA, NULL);
|
|
addot(OT_GEMOFSEEING, "gem of seeing", "Magically enhances your eyesight.", MT_STONE, 1, OC_ROCK, SZ_TINY);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_XRAYVIS, 1, NA, NULL);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_SEEINVIS, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_ENHANCESEARCH, 20, NA, NULL);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_DETECTAURAS, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_DETECTMAGIC, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 1000, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, RR_VERYRARE, NULL);
|
|
// godstones
|
|
addot(OT_GODSTONE_DESTRUCTION, "Godstone of Destruction", "An ancient artifact representing the power of anger.", MT_STONE, 3, OC_GODSTONE, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, C_RED, '*', NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 1000, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGES, 100, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RECHARGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AIHEALITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LINKGOD, R_GODFIRE, NA, NA, NULL);
|
|
addot(OT_GODSTONE_LIFE, "Godstone of Life", "An ancient artifact representing the power of Life and Healing.", MT_STONE, 3, OC_GODSTONE, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, '*', NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 1000, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGES, 100, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RECHARGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LINKGOD, R_GODLIFE, NA, NA, NULL);
|
|
addot(OT_GODSTONE_MERCY, "Godstone of Mercy", "An ancient artifact representing the power of Mercy and Forgiveness.", MT_STONE, 3, OC_GODSTONE, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, '*', NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 1000, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGES, 100, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RECHARGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LINKGOD, R_GODMERCY, NA, NA, NULL);
|
|
addot(OT_GODSTONE_PURITY, "Godstone of Purity", "An ancient artifact representing the power of Purity and Order.", MT_STONE, 3, OC_GODSTONE, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, C_MAGENTA, '*', NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 1000, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGES, 100, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RECHARGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LINKGOD, R_GODPURITY, NA, NA, NULL);
|
|
|
|
|
|
|
|
addot(OT_GODSTONE_REVENGE, "Godstone of Revenge", "An ancient artifact representing the power of Revenge and Thievery.", MT_STONE, 3, OC_GODSTONE, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, C_BLUE, '*', NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 1000, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGES, 100, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RECHARGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LINKGOD, R_GODTHIEVES, NA, NA, NULL);
|
|
|
|
// flora
|
|
addot(OT_FLOWER, "flower", "A colourful woodland flower.", MT_PLANT, 0.01, OC_FLORA, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_FREQUENT, "");
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_GLYPH, C_MAGENTA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 10, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_FIRE, NA, NA, "3d6");
|
|
addflag(lastot->flags, F_GROWSTO, OT_SHRUB, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_LEAF, VT_OB, NA, NULL);
|
|
addot(OT_LEAF, "leaf", "A fallen leaf from a tree.", MT_PLANT, 0.01, OC_FLORA, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_FREQUENT, "");
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, ',', NA, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 10, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_FIRE, NA, NA, "3d6");
|
|
addflag(lastot->flags, F_GROWSTO, OT_SHRUB, VT_OB, NA, NULL);
|
|
addot(OT_MISTLETOE, "sprig of mistletoe", "A small cutting of mistletoe. Druids can sacrifice these cuttings to increase their magical reserves.", MT_PLANT, 0.01, OC_FLORA, SZ_TINY);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "leaf");
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, NA, "");
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, ',', NA, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 3, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_FIRE, NA, NA, "3d6");
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_SHRUB, VT_OB, NA, NULL);
|
|
addot(OT_SHRUB, "shrub", "A small but dense shrub.", MT_PLANT, 50, OC_FLORA, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_FREQUENT, "");
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_MEDIUM, NA, NULL);
|
|
addflag(lastot->flags, F_REDUCEMOVEMENT, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_FIRE, NA, NA, "2d6");
|
|
addflag(lastot->flags, F_DTVULN, DT_CHOP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_TREE, VT_OB, NA, NULL);
|
|
addot(OT_STUMP, "tree stump", "A large tree stump.", MT_WOOD, 150, OC_FLORA, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_FREQUENT, "");
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '\'', NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_HUMAN, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FLAMMABLE, PERMENANT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_FIRE, NA, NA, "2d6");
|
|
addflag(lastot->flags, F_DTVULN, DT_CHOP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_TREE, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_STICK, VT_OB, NA, NULL);
|
|
addot(OT_TREE, "tree", "A tree.", MT_WOOD, 200, OC_FLORA, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, NA, "");
|
|
//addflag(lastot->flags, F_GLYPH, C_GREEN, '#', NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, UNI_TREE, NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_LARGE, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSLOF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 80, 80, NA, NULL);
|
|
addflag(lastot->flags, F_FLAMMABLE, PERMENANT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_FIRE, NA, NA, "2d6");
|
|
addflag(lastot->flags, F_DTVULN, DT_CHOP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, CT_WALLTREE, VT_CELL, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_STUMP, VT_OB, NA, NULL);
|
|
|
|
// food
|
|
addot(OT_APPLE, "apple", "A crunchy apple.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 40, NA, "");
|
|
addflag(lastot->flags, F_BRUISABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, "");
|
|
addot(OT_BANANA, "banana", "Ba-na-na-na-na-na na-na na-na-na.", MT_FOOD, 0.3, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 50, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, "");
|
|
addot(OT_BANANASKIN, "banana skin", "A slippery banana skin.", MT_FOOD, 0.1, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '%', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_SLIPPERY, 15, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SLIPMOVE, 15, NA, NA, NULL);
|
|
addot(OT_BERRY, "berry", "Juicy, brightly coloured berries.", MT_FOOD, 0.1, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_ORANGE, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 8, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 15, NA, "");
|
|
addot(OT_BREADFRESH, "loaf of fresh bread", "A freshly-baked loaf of bread.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 200, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "some bread");
|
|
addot(OT_BREADGARLIC, "loaf of garlic bread", "A pungent loaf of garlic bread. Nauseates those around you and restores some health.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 100, NA, "");
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "some bread");
|
|
addot(OT_CAKEFRUIT, "fruit cake", "A very dense fruit cake. Restores all Stamina, Hit Points and Mana.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 200, NA, "");
|
|
addot(OT_CARROT, "carrot", "A stout orange carrot. Rumour has it that carrots are good for your eyesight.", MT_FOOD, 0.2, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_ORANGE, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 60, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addot(OT_CHOCOLATE, "block of chocolate", "An entire block of chocolate.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 250, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addot(OT_CLOVER, "four leafed clover", "A rare 4-leafed clover.", MT_FOOD, 0.1, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 5, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_EXTRALUCK, 1, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, "");
|
|
addflag(lastot->flags, F_GROWSTO, OT_SHRUB, VT_OB, NA, NULL);
|
|
killflagsofid(lastot->flags, F_STACKABLE);
|
|
addot(OT_CURADOUGH, "loaf of curadough", "This very rare form of bread can magically heal whoever eats it, as well as lowering their metabolism for a short period afterwards.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 250, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "some bread");
|
|
addot(OT_BREADSTALE, "loaf of stale bread", "A small loaf of old, stale bread.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 100, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "some bread");
|
|
addot(OT_CACFRUIT, "cactus fruit", "The nutritous fruit from a cactus plant.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_RED, '%', NA, NULL);
|
|
addflag(lastot->flags, F_BRUISABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 100, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 90, NA, NULL);
|
|
addot(OT_CHEESE, "chunk of cheese", "A chunk of hard cheese.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 85, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addot(OT_GARLIC, "clove of garlic", "A very pungent clove of raw garlic. ", MT_FOOD, 0.1, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 5, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
addot(OT_HOTDOG, "hot dog", "A chunk of meat sandwiched between two pieces of bread. Temporarily increases strength, and provides some healing.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_RED, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 80, NA, "");
|
|
addflag(lastot->flags, F_ISMEAT, B_TRUE, 80, NA, "");
|
|
addot(OT_JERKY, "jerky", "Salted animal flesh. Lightweight and filling.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 90, NA, "");
|
|
addflag(lastot->flags, F_ISMEAT, B_TRUE, 80, NA, "");
|
|
addot(OT_MUSHROOMSHI, "shiitake mushroom", "A large brown mushroom.", MT_FOOD, 0.2, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 30, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_FREQUENT, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_SWAMP, 100, RR_FREQUENT, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "mushroom");
|
|
addot(OT_MUSHROOMTOAD, "toadstool", "A poisonous variety of mushroom.", MT_FOOD, 0.2, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 50, NA, NULL);
|
|
addflag(lastot->flags, F_TAINTED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_FREQUENT, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_SWAMP, 100, RR_FREQUENT, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_MUSHROOMSHI, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "mushroom");
|
|
addot(OT_MUSHROOMSTUFFED, "stuffed mushroom", "A large brown mushroom stuffed with breadcrumbs. This healthy food slightly increases your maximum hit points..", MT_FOOD, 0.2, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 30, NA, "");
|
|
addot(OT_NUT, "peanut", "A species in the legume family.", MT_FOOD, 0.1, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 22, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 90, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 12, NA, "");
|
|
addflag(lastot->flags, F_GROWSTO, OT_TREE, VT_OB, NA, NULL);
|
|
addot(OT_ONION, "onion", "An edible bulb, known for its irritant effects on the eyes.", MT_FOOD, 0.2, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 60, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addot(OT_PASSIONFRUIT, "passionfruit", "A succulent passionfruit.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_MAGENTA, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 100, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addot(OT_POISONSAC, "venom sac", "A small sac of flesh, filled with potent venom.", MT_FLESH, 0.2, OC_FOOD, SZ_TINY); // weight normally comes from corpse type
|
|
addflag(lastot->flags, F_GLYPH, C_BLUE, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 1, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addot(OT_PSITRUFFLE, "psitruffle", "Psitruffles are extremely rare forms of truffle which can unlock potentials within a living brain. Eating one will double all experience earned for a short period thereafter.", MT_FOOD, 0.5, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_MAGENTA, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 250, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_RARE, NULL);
|
|
addot(OT_ROASTMEAT, "chunk of roast meat", "A chunk of flame-roasted flesh.", MT_FLESH, 1, OC_FOOD, SZ_TINY); // weight normally comes from corpse type
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 100, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_ISMEAT, B_TRUE, 80, NA, "");
|
|
addot(OT_RUMBALL, "rum ball", "A rum-filled ball of chocolate. Cures pain and restores 5-10 hit points.", MT_FOOD, 0.1, OC_FOOD, SZ_TINY); // weight normally comes from corpse type
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 100, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addot(OT_SALT, "pinch of salt", "A small measure of salt. Used for cooking.", MT_FOOD, 0.1, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 5, NA, NULL);
|
|
addflag(lastot->flags, F_POWDER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "0");
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, NULL);
|
|
addot(OT_SANDWICHCHEESE, "cheese sandwich", "A tasty cheese sandwich. Filling, and restores all stamina plus some health.", MT_FOOD, 0.1, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 100, NA, "");
|
|
addot(OT_SANDWICHPB, "peanut butter sandwich", "An extremely filling sandwich. Restores all stamina, boosts Fitness, and restores some health.", MT_FOOD, 0.1, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 200, NA, "");
|
|
addot(OT_SUGAR, "lump of sugar", "A small block of sugar. Used for cooking.", MT_FOOD, 0.1, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 5, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, NULL);
|
|
addot(OT_TOMATO, "tomato", "A juicy red tomato.", MT_FOOD, 0.3, OC_FOOD, SZ_TINY);
|
|
addflag(lastot->flags, F_GLYPH, C_RED, '%', NA, NULL);
|
|
addflag(lastot->flags, F_BRUISABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 30, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, NA, NULL);
|
|
// corpses
|
|
addot(OT_CORPSE, "corpse", "xxx", MT_FLESH, 1, OC_CORPSE, SZ_TINY);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 1, NA, NULL); // will be overridden
|
|
addflag(lastot->flags, F_ISMEAT, B_TRUE, 80, NA, "");
|
|
addot(OT_HEAD, "head", "xxx", MT_FLESH, 1, OC_CORPSE, SZ_SMALL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 1, NA, NULL); // will be overridden
|
|
addflag(lastot->flags, F_ISMEAT, B_TRUE, 80, NA, "");
|
|
addot(OT_FLESHCHUNK, "chunk of flesh", "A chunk of flesh from something.", MT_FLESH, 1, OC_FOOD, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '%', NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 25, NA, NULL);
|
|
addflag(lastot->flags, F_ISMEAT, B_TRUE, 80, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_ANTNEST, 100, RR_COMMON, NULL);
|
|
addot(OT_FINGER, "severed finger", "The severed finger from some kind of creature.", MT_FLESH, 0.02, OC_CORPSE, SZ_TINY);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 1, NA, NULL);
|
|
addflag(lastot->flags, F_ISMEAT, B_TRUE, 80, NA, "");
|
|
|
|
|
|
// potions
|
|
addot(OT_POT_SPIDERCLIMB, "potion of arachnid adhesion", "Temporarily allows you to climb on walls like a spider.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 45, NA, NA, NULL);
|
|
addot(OT_POT_JUICE, "potion of fruit juice", "Tasty (but not very fresh) fruit juice! Sates hunger and restores a little stamina.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 10, NA, NA, NULL);
|
|
addot(OT_POT_CANINETRACKING, "potion of canine tracking", "Mimics the effects of a 'canine tracking' spell.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addot(OT_POT_GROWTH, "potion of growth", "A magical liquid which causes the imbiber's body to instantly undergo rapid growth.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 50, NA, NA, NULL);
|
|
|
|
addot(OT_POT_HEALINGMIN, "potion of minor healing", "Restores 1-10 health to whoever drinks it.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_AIHEALITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 30, NA, NA, NULL);
|
|
addot(OT_POT_WATER, "potion of water", "Plain, regular water.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_VILLAGE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "small puddle of water");
|
|
modflag(lastot->flags, F_HASHIDDENNAME, NA, NA, NA, "clear potion");
|
|
addflag(lastot->flags, F_VALUE, 5, NA, NA, NULL);
|
|
addot(OT_POT_HEALING, "potion of healing", "Restores 10-20 health to whoever drinks it.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_AIHEALITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 90, NA, NA, NULL);
|
|
addot(OT_POT_HEALINGMAJ, "potion of major healing", "Restores 20-30 health to whoever drinks it.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_AIHEALITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 120, NA, NA, NULL);
|
|
addot(OT_POT_OIL, "potion of oil", "A bottle of cooking oil.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "puddle of oil");
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EXPLODEONDAM, DT_FIRE, NA, NA, "2d4");
|
|
addflag(lastot->flags, F_VALUE, 15, NA, NA, NULL);
|
|
addot(OT_POT_COFFEE, "potion of coffee", "A caffeinated beverage prepared from coffee beans. Prevents your stamina from decreasing, but also prevents you from sleeping.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 10, NA, NA, NULL);
|
|
addot(OT_POT_RUM, "potion of rum", "Strong liqour which is sure to make you tipsy. This will make you unsteady and lower your accuracy, but also let you ignore pain, minor damage, and many mental attacks.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_FLAMMABLE, 1, NA, NA, "medium fire");
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EXPLODEONDAM, DT_FIRE, NA, NA, "2d6");
|
|
addflag(lastot->flags, F_BADOBJECT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_POT_WATER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 15, NA, NA, NULL);
|
|
addot(OT_POT_RESTORATION, "potion of restoration", "Restores lost abilities to the drinker.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_AIHEALITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 170, NA, NA, NULL);
|
|
addot(OT_POT_SLEEP, "potion of sleep", "Puts the drinker into a deep sleep.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BADOBJECT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 80, NA, NA, NULL);
|
|
addot(OT_POT_SPEED, "potion of haste", "Temporarily increasees the drinker's speed.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 150, NA, NA, NULL);
|
|
addot(OT_POT_LEVITATION, "potion of levitation", "Causes the drinker to float up in the air.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 150, NA, NA, NULL);
|
|
addot(OT_POT_MAGIC, "potion of magic", "Fully restores the drinker's magical energy.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 60, NA, NA, NULL);
|
|
addot(OT_POT_ACROBATICS, "potion of acrobatics", "Allows the drinker to leap large distances.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 45, NA, NA, NULL);
|
|
addot(OT_POT_INVIS, "potion of invisibility", "Temporarily renders the drinker invisible.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 70, NA, NA, NULL);
|
|
addot(OT_POT_POISON, "potion of poison", "Poisons the drinker.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BADOBJECT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_POT_WATER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 25, NA, NA, NULL);
|
|
addot(OT_POT_ACID, "flask of acid", "Causes massive internal burning if ingested.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "puddle of acid");
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BADOBJECT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_POT_WATER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 25, NA, NA, NULL);
|
|
addot(OT_POT_ELEMENTIMMUNE, "potion of elemental immunity", "Grants the imbiber temporary immunity to both fire and cold.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 75, NA, NA, NULL);
|
|
addot(OT_POT_BLOOD, "potion of blood", "A small quantity of blood.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "splash of blood");
|
|
addflag(lastot->flags, F_VALUE, 15, NA, NA, NULL);
|
|
addot(OT_POT_SANCTUARY, "potion of sanctuary", "Creates a temporary magical barrier abour the drinker.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 75, NA, NA, NULL);
|
|
|
|
addot(OT_POT_ETHEREALNESS, "potion of etherealness", "Allows the walker to temporarily pass through walls.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 140, NA, NA, NULL);
|
|
addot(OT_POT_EXPERIENCE, "potion of experience", "Instantly grants the imbiber the next experience level.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, 40, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 410, NA, NA, NULL);
|
|
|
|
addot(OT_POT_BLOODC, "potion of cockatrice blood", "A small quantity of cockatrice blood.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "splash of cockatrice blood");
|
|
addflag(lastot->flags, F_VALUE, 35, NA, NA, NULL);
|
|
|
|
addot(OT_POT_COMPETENCE, "potion of competence", "Permemantly increases the drinker's base attribites (Strength, IQ, etc).", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, NA, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 160, NA, NA, NULL);
|
|
|
|
addot(OT_POT_FISHLUNG, "potion of fishy lungs", "Grants the imbiber the ability to temporarily breath water.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 75, NA, NA, NULL);
|
|
|
|
addot(OT_POT_FURY, "potion of fury", "Causes the drinker to enter a state of berzerk rage.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 70, NA, NA, NULL);
|
|
addot(OT_POT_GASEOUSFORM, "potion of gaseous form", "Turns the drinker into a cloud of gas. Only intended for emergencies, since it will cause you to drop all your items.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 120, NA, NA, NULL);
|
|
|
|
addot(OT_POT_POLYMORPH, "potion of polymorph self", "Transmutes the drinker into another living race.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 120, NA, NA, NULL);
|
|
addot(OT_POT_INVULN, "potion of invulnerability", "Grants the drinker temporary immunity to physical harm.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, RR_VERYRARE, NA, NULL);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 200, NA, NA, NULL);
|
|
addot(OT_POT_AMBROSIA, "vial of ambrosia", "The nectar of the gods, said to completely restore the drinker's health.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_AIHEALITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 220, NA, NA, NULL);
|
|
|
|
|
|
// potions which come from cooking
|
|
addot(OT_POT_SOUPCHICKEN, "flask of chicken soup", "A watery soup which cures diseases and heals you.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
killflagsofid(lastot->flags, F_HASHIDDENNAME);
|
|
addot(OT_POT_SOUPMUSHROOM, "flask of mushroom soup", "Hearty soup which restores a small amount of stamina and heals you.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
killflagsofid(lastot->flags, F_HASHIDDENNAME);
|
|
addot(OT_POT_SOUPTOMATO, "flask of tomato soup", "Hearty soup which restores a small amount of stamina and heals you.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
killflagsofid(lastot->flags, F_HASHIDDENNAME);
|
|
addot(OT_POT_STROGONOFF, "flask of beef strogonoff", "A beef and mushroom stew which temporarily boosts your Fitness, and heals you a little.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
killflagsofid(lastot->flags, F_HASHIDDENNAME);
|
|
addot(OT_POT_SUGARWATER, "flask of sugar water", "Sweet water, saturated with sugar. Restores a medium amount of stamina and some health.", MT_GLASS, 1, OC_POTION, SZ_TINY);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
killflagsofid(lastot->flags, F_HASHIDDENNAME);
|
|
|
|
|
|
// scrolls
|
|
addot(OT_SCR_AMNESIA, "scroll of amnesia", "Causes the reader to lose all accumulated skill points.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_VALUE, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
|
|
addot(OT_SCR_AWARENESS, "scroll of awareness", "Mimics the effects of a 'heightened awareness' spell.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_VALUE, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_SCR_REMOVECURSE, "scroll of remove curse", "Removes curses from all weilded equipment.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_VALUE, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_FREQUENT, NULL);
|
|
|
|
addot(OT_SCR_IDENTIFY, "scroll of identify", "Completely identifies any one item.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_IDENTIFY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SCROLLNEEDSOB, B_IFNOTBLESSED, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_FREQUENT, NULL);
|
|
|
|
addot(OT_SCR_MENDING, "scroll of mending", "Repairs damage to objects.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_MENDING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SCROLLNEEDSOB, B_IFNOTBLESSED, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 98, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 4, NA, NA, NULL);
|
|
|
|
addot(OT_SCR_NOTHING, "blank paper", "A sheet of blank paper.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_VALUE, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 84, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_GRAPHPAPER, "magic map", "Paper containing a set of grid-lines, which automatically draws a map of its surroundings.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_PHOTOMEM, NA, IFKNOWN, NULL);
|
|
addflag(lastot->flags, F_VALUE, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_MAP, "map", "A visual representation of the area.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
killflagsofid(lastot->flags, F_STACKABLE);
|
|
|
|
addot(OT_SCR_CREATEMONSTER, "scroll of create monster", "Summons a (probably hostile) monster to a nearby location.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_CREATEMONSTER, 4, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_AIBOOSTITEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_SCR_DETECTAURA, "scroll of detect aura", "Senses holiness or evil near the caster.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_DETECTAURA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
|
|
|
|
addot(OT_SCR_DETECTLIFE, "scroll of detect life", "Senses life near the caster.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_DETECTLIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_SCR_DETECTOBS, "scroll of detect objects", "Senses objects near the caster.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_DETECTOBS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
|
|
|
|
addot(OT_SCR_DETECTMAGIC, "scroll of detect magic", "Allows the reader to detect magical enchantments.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_DETECTMAGIC, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
|
|
addot(OT_SCR_FLAMEPILLAR, "scroll of flame pillar", "Creates a tall pillar of flame.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_FLAMEPILLAR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_SCR_FLAMEBURST, "scroll of flame burst", "Creates a radial blast of fire out from the caster, dealing 2d6 damage. Range is based on spell power.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_FLAMEBURST, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_SCR_ENCHANT, "scroll of enhancement", "Magically enhances a weapon or piece of armour.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_ENCHANT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SCROLLNEEDSOB, B_ALWAYS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
|
|
addot(OT_SCR_FREEZEOB, "scroll of freezing touch", "Permenantly changes the next object touched into solid ice.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_FREEZEOB, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_BADOBJECT, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_SCR_KNOCK, "scroll of knock", "Magically opens a barrier.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_KNOCK, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, RR_COMMON, NULL);
|
|
|
|
addot(OT_SCR_LIGHT, "scroll of light", "Creates a permenant light source centred on the caster.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_LIGHT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_SCR_MAPPING, "scroll of sense surroundings", "Magically imbues the caster with a map of his/her surroundings.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_MAPPING, 4, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_SCR_MINDSCAN, "scroll of mind scan", "Allows you to view the world through another creature's eyes.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_MINDSCAN, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_SCR_PERMENANCE, "scroll of permenance", "Makes all effects on an object last forever.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_VALUE, 400, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 50, RR_RARE, NULL);
|
|
|
|
addot(OT_SCR_REPLENISHMENT, "scroll of replenishment", "Restores a random amount of charges to an object.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_SCROLLNEEDSOB, B_ALWAYS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_REPLENISH, NA, NA, NULL);
|
|
|
|
|
|
addot(OT_SCR_TELEPORT, "scroll of teleportation", "Causes the caster to teleport to a random location within the same level.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_TELEPORT, 4, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
addot(OT_SCR_TURNUNDEAD, "scroll of turn undead", "Instills fear in undead creatures.", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_TURNUNDEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_SCR_WISH, "scroll of wishing", "Grants the caster any item of their choice (with some limitations).", MT_PAPER, 0.5, OC_SCROLL, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_WISHLIMITED, NA, NA, NULL);
|
|
|
|
|
|
// spells - actually defined as object types
|
|
// MUST DEFINE THESE _AFTER_ SCROLLS
|
|
|
|
///////////////////
|
|
// allomancy
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_ABSORBMETAL, "absorb metal", "Draws mana from nearby metallic objects.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the maximum amount of metal which can be absorbed.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ALLOMANCY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MPCOST, 0, NA, NA, NULL);
|
|
// l2
|
|
addot(OT_S_ALCHEMY, "alchemy", "Converts any metal item into (^bpower * 10^n)% of its value in gold.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ALLOMANCY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addot(OT_S_PULLMETAL, "pull metal", "Pulls metal objects to the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ALLOMANCY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_WALLSTOP, NA, NULL);
|
|
addot(OT_S_ACCELMETAL, "accelerate metal", "Greatly accelerates a metal object thrown by the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how fast the object is propelled.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ALLOMANCY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_WALLSTOP, NA, NULL);
|
|
addot(OT_S_METALHEAL, "metal healing", "Uses nearby metal for accelerated healing.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how much damage is healed.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ALLOMANCY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
// l3
|
|
addot(OT_S_MAGSHIELD, "magnetic shield", "Surrounds the caster with magnetic force, repelling metal objects and attacks.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how long the magnetic shield will last.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ALLOMANCY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addot(OT_S_HEATMETAL, "heat metal", "Causes all metal in the target area to become red hot.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ALLOMANCY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 2, NA, NA, NULL);
|
|
// l4
|
|
addot(OT_S_EXPLODEMETAL, "explode metal", "Causes all metal objects in a location explode.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ALLOMANCY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l5
|
|
addot(OT_S_ANIMATEMETAL, "animate metal", "Imbues a metallic weapon with temporary life, enabling it to fight on its own.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ALLOMANCY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
|
|
///////////////////
|
|
// death magic / necromancy
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_STENCH, "stench of death", "Nauseates the target with the smell of dying flesh.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines resistability and duration.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 1, NA, NULL);
|
|
addot(OT_S_BLIGHT, "blight", "Covers the target location with a miasma of decay, tainting food and damaging living beings.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines damage and amount of food affected.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER|TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 1, NA, NULL);
|
|
// l2
|
|
addot(OT_S_BLINDNESS, "blindness", "Temporarily blinds the target.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines resistability and duration.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_COMMANDUNDEAD, "command undead", "Compels an undead creature to follow a single simple command.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines resistability.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_FEAR, "cause fear", "Causes intense fear in the target.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines resistability and duration.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 2, NA, NULL);
|
|
addot(OT_S_SMITEGOOD, "smite good", "Instantly deals 1-^bpower*2^n damage to good creatures.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 2, NA, NULL);
|
|
// l3
|
|
addot(OT_S_POISONBOLT, "venom bolt", "Fires a glob of venom at the target.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how difficult the venom is to dodge, and how powerful the poison is.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 3, NA, NULL);
|
|
addot(OT_S_DRAINLIFE, "necrobeam", "Draws life force from the victim in order to heal the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The amount of life force drained is ^b1d6+power^n.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 3, NA, NULL);
|
|
addot(OT_S_FLAYFLESH, "flay flesh", "Causes invisible tendrils to strike your foe, causing an automatic slash critical on fleshy creatures.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_WALLSTOP, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 3, NA, NULL);
|
|
addot(OT_S_PAIN, "pain", "Causes extreme pain in the target whenever they move.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the duration of the pain effect.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 3, NA, NULL);
|
|
// l4
|
|
addot(OT_S_CURSE, "curse", "Bestow a curse upon the target's equipment, applying a -1 penalty and making them impossible to remove.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how many objects will be cursed.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_PROTGOOD, "protection from good", "Repels the next 5+(^bpower^n*2) attacks from Good-aligned creatures. ", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addot(OT_S_WEAKEN, "weaken", "Temporarily lowers the target's muscle strength by ^bpower^n points, and halves their melee damage.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the duration of the weakness effect.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 4, NA, NULL);
|
|
addot(OT_S_PARALYZE, "paralyze", "Disables the target's muscles, leaving them unable to move for ^bpower*2^n turns.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 4, NA, NULL);
|
|
addot(OT_S_FEEBLEMIND, "brain freeze", "Temporarily lowers the target's intelligence to that of an animal.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines duration.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 4, NA, NULL);
|
|
addot(OT_S_ANIMATEDEAD, "animate dead", "Imbues nearby corpses with life, creating an undead zombie.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the chances of the zombies being friendly.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
// TODO: should be "castnearob ot_corpse"
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 4, NA, NULL);
|
|
// l5
|
|
addot(OT_S_DEATHKEEN, "midnight dirge", "Emits a dreadful wailing keen which instantly slays any who hear it.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "This spell will only function at night.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 5, NA, NULL);
|
|
addot(OT_S_HECTASSERVANT, "hecta's hand", "Summons an enormous skeletal hand to drag foes to their doom. BEWARE: the hand will attack anything living, including the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
// l6
|
|
addot(OT_S_POSSESSION, "possession", "Completely possess an enemy, moving your consciousness into their body.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines its resistability.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 6, NA, NULL);
|
|
addot(OT_S_INFINITEDEATH, "infinite death", "Annihilates all nearby life, including the caster!", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines resistability.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CASTINGTIME, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODDEATH, 6, NA, NULL);
|
|
///////////////////
|
|
// divination
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_LOCATEOBJECT, "locate object", "Locates any object within an area the caster has previously travelled.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addot(OT_S_SIXTHSENSE, "sixth sense", "Warns the caster of any creature attempting to sneak up behind them.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, 1, NA, NA, "At Power III, the creature's species will be detected.");
|
|
addflag(lastot->flags, F_EXTRADESC, 2, NA, NA, "At Power V, the exact creature type will be detected.");
|
|
addflag(lastot->flags, F_EXTRADESC, 3, NA, NA, "At Power VII, you can turn to face the creature.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 7, NA, NA, NULL);
|
|
// l2
|
|
addot(OT_S_CANINETRACKING, "canine tracking", "Enhances the caster's sense of smell, allowing them to detect exact scents within a 3 cell radius.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Power determines the spell duration.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addot(OT_S_MAPPING, "sense surroundings", "Magically imbues the caster with a map of his/her surroundings.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the detection range.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addot(OT_S_DETECTLIFE, "detect life", "Senses the size of creatures within a 10-cell radius of the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, 1, NA, NA, "Spell power determines the detection range.");
|
|
addflag(lastot->flags, F_EXTRADESC, 2, NA, NA, "At power VIII, exact creatures types are detected.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
// l3
|
|
addot(OT_S_AWARENESS, "heightened awareness", "This spell effectively gives the caster \"eyes in the back of their head\", expending their field of vision to a full 360 degrees.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addot(OT_S_DETECTOBS, "detect objects", "Senses objects near the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the detection range and spell duration.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addot(OT_S_SEEINVIS, "see invisible", "Allows the caster to see invisible creatures.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
|
|
// l4
|
|
addot(OT_S_DETECTAURA, "detect aura", "Senses holiness or evil near the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addot(OT_S_LORE, "lore", "Obtain knowledge about any one species.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, 1, NA, NA, "At power I, you gain Novice level knowledge.");
|
|
addflag(lastot->flags, F_EXTRADESC, 2, NA, NA, "At power II, you gain Beginner level knowledge.");
|
|
addflag(lastot->flags, F_EXTRADESC, 3, NA, NA, "At power IV, you gain Adept level knowledge.");
|
|
addflag(lastot->flags, F_EXTRADESC, 4, NA, NA, "At power VI, you gain Skilled level knowledge.");
|
|
addflag(lastot->flags, F_EXTRADESC, 5, NA, NA, "At power VIII, you gain Expert level knowledge.");
|
|
addflag(lastot->flags, F_EXTRADESC, 6, NA, NA, "At power X, you gain Master level knowledge.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addot(OT_S_REVEALHIDDEN, "reveal hidden", "Reveals hidden doors or invisible creatures in the caster's line of sight.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
// l5
|
|
addot(OT_S_DETECTMAGIC, "detect magic", "Allows the caster to detect magical enchantments.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines duration.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
// l6
|
|
addot(OT_S_IDENTIFY, "identification", "Completely identifies any one item.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
|
|
|
|
///////////////////
|
|
// elemental - air
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_TRUESTRIKE, "weapon attraction", "Wind currents gives the target unerring accuracy, making their attacks always hit and negating strength penalties.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines the amount of strikes before it expires.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_VARPOWER, B_TRUE, NA, NA, NULL);
|
|
addot(OT_S_MIST, "pea soup", "Envelops an area in front of the caster with a thick cloud of mist.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how long the mist will last.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_ADJSELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_CALLWIND, "zephyr", "Conjures a friendly wind, carrying a single object to the caster's hands.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines its range and the weight of objects affected.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
addot(OT_S_PROPELMISSILE, "propel missile", "Calls a short but powerful jet of air to accelerate a thrown missile.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Target must be at least two metres away.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 5, 2, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
|
|
// l2
|
|
addot(OT_S_GRAVLOWER, "lessen gravity", "Lessens the weight of the caster's items. Also causes the caster to fall very slowly.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Each power level will reduce caster's load by 15kg.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VARPOWER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addot(OT_S_GUSTOFWIND, "gust of wind", "Causes a gust of wind to blow up to ^bpower^n of the target's objects away.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, 1, NA, NA, "The chance of each object blowing away is determined by the spell's power.");
|
|
addflag(lastot->flags, F_EXTRADESC, 2, NA, NA, "This spell's power is boosted when cast outside.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER|TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
addot(OT_S_JOLT, "jolt", "Jolts an adjacent enemy with a short pulse of electricity, dealing 5 electrical damage.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addot(OT_S_REFRACTION, "refraction", "Bends light around the caster, making them harder to hit.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_VARPOWER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addot(OT_S_SHATTER, "shatter", "Instantly shatters all glass in the target location.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_TAILWIND, "tailwind", "Propels the caster from behind, slightly speeding up movement when walking directly forwards.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_WHATGOESUP, "what goes up", "...must come down. Thrown or fired missiles will return to the caster's hands if not destroyed.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
// l3
|
|
addot(OT_S_AIRBLAST, "airblast", "Knocks enemies back with a powerful blast of air.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "This spell's power determines how far objects or enemies will be knocked back.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
addot(OT_S_WINDSHIELD, "cyclonic shield", "Surrounds the caster with a whirling cyclone, dealing 1-^Wpower^n damage to attackers and repelling missiles.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines the speed of missile which can be repelled.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VARPOWER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addot(OT_S_SLOW, "slowness", "Causes the air around the target to thicken to a water-like consistency, greatly decreasing their speed.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long the slowness will last.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_S_FORCESPHERE, "force sphere", "Radiates a shock wave out from the caster, knocking opponents away.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines the radius of the blast (1 - 3 cells).");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_ADJSELF, NA, NA, NULL);
|
|
addot(OT_S_WHIRLWIND, "conjure whirlwind", "Creates a spinning whirlwind at a specified location.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long the whirlwind will last.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER|TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
// l4
|
|
addot(OT_S_CLOUDKILL, "cloudkill", "Creates a cloud of poisonous gas. The cloud's size is 1-3 cells, depending on the spell power.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_S_EQANDOP, "equal and opposite", "Causes the caster to emit strong currents of air in all directions, repelling all missiles in a direct path back to their source.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_S_GRAVBOOST, "boost gravity", "Greatly increases gravity around the target, preventing them from moving.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long its effects will last.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_S_LEVITATION, "levitation", "Causes the caster hover a metre above the ground.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
|
|
// l5
|
|
addot(OT_S_CHAINLIGHTNING, "chain lightning", "Electricity arcs up to 5 times between all nearby enemies. The initial arc deals 3d6 damage, the next deals 3d5 damage, etc.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's range is based on its power.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
addot(OT_S_ETHEREALSTEED, "ethereal steed", "Raises the caster onto a spinning whirlwind, granting them levitation and speed. Smaller whirlwinds are left in a trail behind the caster, deterring pursuit.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long its effects will last.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_FLIGHT, "fly", "Allows the caster to fly.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addot(OT_S_HASTE, "haste", "Increases the speed of the target.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long its effects will last.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_ALLY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_TORNADO, "conjure tornado", "Creates a lethal tornado at a specified location. The tornado will move about, causing damage to everything in its path.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long the tornado will last.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER|TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
// l6
|
|
addot(OT_S_HURRICANE, "conjure hurricane", "Creates a devastating hurricane at a specified location. The hurricane will move about, obliterating all in its path.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long the hurricane will last.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER|TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
|
|
///////////////////
|
|
// elemental - fire magic
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_DANCINGFLAME, "dancing flame", "Causes all fires in sight to 'dance' to adjacent creatures.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 1, NA, NULL);
|
|
addot(OT_S_GATHERFLAME, "harvest flame", "Draws all nearby fire into the caster, boosting the power of their next spell.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Your next spell's power will be boosted by the amount of fire consumed.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the maximum amount of fire consumed.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_SPARK, "flambe", "Creates very hot but short lived burst of flame around the target, dealing 2d3 fire damage to creatures and objects.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 1, NA, NULL);
|
|
addot(OT_S_PYROMANIA, "pyromania", "Increases the potency of all fire within the caster's line of sight.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SPECIAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 1, NA, NULL);
|
|
addot(OT_S_BLADEBURN, "bladeburn", "Ignites the caster's weapon, causing it to temporarily deal fire damage. The spell's power determines how long it will last.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines its duration.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 2, NA, NULL);
|
|
// l2
|
|
addot(OT_S_BLOODBOIL, "bloodboil", "Energised the molecules of the target's blood, causing them to explode into flames upon death.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_CLEANSINGFIRE, "cleansing fire", "Draws power from nearby fires to heal the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell will affect up to ^bpower^n fires, healing 30% hit points from each.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_ANYWHERE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_FIREDART, "flame dart", "Fires a medium-sized dart of fire, dealing 1d6+^bpower^n fire damage.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 2, NA, NULL);
|
|
addot(OT_S_BURNINGFEET, "hotfoot", "Heats the soles of the target's feet to an uncomfortable level, dealing 1 fire damage each turn they remain still.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "If the target is wearing metal footwear, damage is inceased to 2 per turn.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines its duration (maximum 6 turns).");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 1, NA, NULL);
|
|
addot(OT_S_IMMOLATE, "immolate", "If the caster can successfully touch the target, they are instantly engulfed in flames.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 2, NA, NULL);
|
|
addot(OT_S_SUPERHEAT, "superheat", "Excites the liquid molecules in a single potion, causing its contents to explode upon impact (8d2 damage).", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SPECIAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 2, NA, NULL);
|
|
// l3
|
|
addot(OT_S_FLAMEBURST, "flame burst", "Creates a radial blast of fire out from the caster, inflicting 2d6 fire damage to all within.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The size of the radial blast is based on the spell's power.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJSELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 3, NA, NULL);
|
|
addot(OT_S_FIREBALL, "fireball", "Creates a huge ball of fire, dealing up to ^bpower^nd3 damage.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The damage is lower for enemies further away from the ball's centre.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power level 5, the size of the fireball is slightly increased.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL); // TODO: should be "near victim"
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 3, NA, NULL);
|
|
// l4
|
|
addot(OT_S_FLAMEPILLAR, "flame pillar", "Creates a tall pillar of flame.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the spell's range, and the fire's size.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_WALLSTOP, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 4, NA, NULL);
|
|
addot(OT_S_QUICKENFIRE, "quicken fire", "Forms nearby fire into powerful fire primalities.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how many creatures will be created.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power level VI, stronger creatures will be created.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 8, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
// l5
|
|
addot(OT_S_BURNINGWAVE, "burning wave", "Fire bursts from the ground in a line towards the target.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's range is based on its power.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_WALLSTOP, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 5, NA, NULL);
|
|
addot(OT_S_WALLOFFIRE, "wall of fire", "Creates an roaring wall of flames.", MT_ICE, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines the size of the flames.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 5, NA, NULL);
|
|
// l6
|
|
addot(OT_S_METEOR, "meteor", "Launches a white-hot meteorite towards the target location, dealing up to ^bpower^nd6+30 damage.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The damage is lower for enemies further away from the ball's centre.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL); // TODO: should be "near victim"
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODFIRE, 6, NA, NULL);
|
|
///////////////////
|
|
// elemental - cold
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_CHILL, "chill", "Deals 1 cold damage to the target per exposed body part.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_GLACIATE, "glaciate", "Slows down molecules in a given area, instantly freezing any water present. Has no effect on living creatures.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_SNOWBALL, "snowball", "Throws a large snowball, dealing 1 cold damage to all within its blast. The remaining snow will quickly melt to water.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
// l2
|
|
addot(OT_S_FREEZEOB, "freezing touch", "Changes the next thing touched into solid ice. The effect is permenant for inanimate objects, but will wear off on living creatures.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NORANDOM, B_TRUE, NA, NA, NULL);
|
|
addot(OT_S_ICECRUST, "ice crust", "Encrusts your weapon with a layer of sharp ice.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how long the enchantment will remain.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_ALLY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_CRYSTALARM, "crystalline armour", "Summons ice crystal armour to protect you from damage.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, 1, NA, NA, "At power 1-3: one piece of armour is created.");
|
|
addflag(lastot->flags, F_EXTRADESC, 2, NA, NA, "At power 4-6: two pieces of armour are created.");
|
|
addflag(lastot->flags, F_EXTRADESC, 3, NA, NA, "At power 7-9: three pieces of armour are created.");
|
|
addflag(lastot->flags, F_EXTRADESC, 4, NA, NA, "At power 10: four pieces of armour are created.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addot(OT_S_CRYSTALSHIELD, "crystalline shield", "Summons a shield of ice crystals to protect you from missiles.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how effective the shield is.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
// l3
|
|
addot(OT_S_COLDRAY, "cold ray", "Shoots a blast of ice cold air, dealing 3d6 cold damage.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how difficult the ray is to dodge.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addot(OT_S_COLDBURST, "cold burst", "Creates a radial blast of coldness out from the caster, dealing 1d8+3 cold damage.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's range is based on its power.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJSELF, NA, NA, NULL);
|
|
addot(OT_S_ICICLE, "icicle", "A huge icicle rises form the ground, knocking enemies away and blocking passage.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long the icicle will remain.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_SLIDE, "slipslide", "Generate ice underneath your feet, allowing you to slide along the ground at high speeds.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's duration is based on its power, however its effects will also end if you stop moving.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l4
|
|
addot(OT_S_FROSTBITE, "frostbite", "Deals 1d4 cold damage to target creature per exposed body part.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_WALLOFICE, "wall of ice", "Creates an impassable wall of solid ice.", MT_ICE, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long the wall will remain.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODNATURE, 5, NA, NULL);
|
|
addot(OT_S_SHARDSHOT, "shard shot", "Fires a scattered burst of small, fast moving ice shards. The shot will pass through multiple creatures, but damage is reduced with range.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's range is determined by its power.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_WALLSTOP, NA, NULL);
|
|
addot(OT_S_SNAPFREEZE, "snap freeze", "Instantly freezes the target creature. Cold-resistant creatures will take minor damage instead.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
// l6
|
|
addot(OT_S_ABSOLUTEZERO, "absolute zero", "Instantly freezes everything around the caster - creatures, objects, even the ground itself.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
///////////////////
|
|
// nature / enviromancy
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_CALMANIMALS, "calm animals", "Makes animals within the casters line of sight become peaceful.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how many hit dice worth of creatures will be affected.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
// god pleasing for this spell is in spell.c
|
|
addot(OT_S_DETECTPOISON, "detect poison", "Detects any poisoned object in sight of the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addot(OT_S_PURIFYFOOD, "purify food", "Changes any kind of harmful food or drink into a harmless equivilant.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power level I, this spell target's the caster's possessions.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power level III, this spell can target other locations.");
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT, 3, 3, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODNATURE, 1, NA, NULL);
|
|
addot(OT_S_STICKTOSNAKE, "sticks to snakes", "Transforms all rod-shaped objects in sight into allied snakes.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "This spell does not affect the caster's weapon.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
// l2
|
|
addot(OT_S_BARKSKIN, "barkskin", "Covers the caster with a skin of bark, reducing damage but making them vulnerable to fire.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addot(OT_S_CHARMANIMAL, "befriend animal", "Temporarily makes a single animal friendly to you.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how the maximum hit dice creature which can be affected.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_LESSENPOISON, "lessen poison", "Reduces the effects of poison within the caster's bloodstream.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_ALLY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODLIFE, 3, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODNATURE, 2, NA, NULL);
|
|
addot(OT_S_REPELINSECTS, "repel insects", "Surrounds the caster with an insect-repelling smell.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addot(OT_S_SOFTENEARTH, "soften earth", "Converts earth into mud, slowing down all who pass.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how much mud will be created.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_SUMMONANIMALSSM, "summon small animals", "Summons 2-3 small animals.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long the summoned creatures will remain.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addot(OT_S_WARPWOOD, "warp wood", "Causes damage to all wooden objects in the target area.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l3
|
|
addot(OT_S_EVAPORATE, "evaporate", "Instantly converts all water in the given area into scalding steam (including potions).", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines the amount of water affected.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER|TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
|
|
addot(OT_S_CALLLIGHTNING, "call lightning", "Blasts a single enemy with a bolt of lightning from the sky, dealing 3d6 damage (4d6 if outdoors).", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_LIGHTNINGBOLT, "electricity bolt", "Fires a bolt of electricity through multiple enemies, dealing 2d6 damage to each.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's range is based on its power.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_WALLSTOP, NA, NULL);
|
|
addot(OT_S_ENDUREELEMENTS, "endure elements", "Provides resistance to fire and cold.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_ALLY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_QUENCH, "quench", "Extinguishes all fires within the given area.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_SLEETSTORM, "sleet storm", "Creates an cloud of sleet, hampering vision and movement.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines the size of the storm.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "This spell's power is boosted when cast outside.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_THORNS, "thorns", "Sharp thorns grow from your skin, dealing 1d4 damage to attackers.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_WEB, "web", "Slows down pursuers with one or more bursts of sticky spider web.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how many webs are created.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
// l4
|
|
addot(OT_S_DIG, "dig", "Blasts away earth to create passages.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how much earth can be destroyed.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SPECIAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addot(OT_S_ENTANGLE, "entangle", "Causes magical vines to hold enemies.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines the strength of the vines.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_CALMINGSCENT, "calming scent", "Automatically calms any nearby animals.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addot(OT_S_SATEHUNGER, "sate hunger", "Immediately satisfies the hunger of one living creature.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_ALLY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addot(OT_S_SUMMONANIMALSMD, "summon medium animals", "Summons 2-3 medium animals.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long the summoned creatures will remain.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addot(OT_S_WATERJET, "water spray", "Fires a high pressure blast of water from the caster's hands.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how far enemies are knocked back.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
// l5
|
|
addot(OT_S_EARTHQUAKE, "earthquake", "Opens up huge rents in the earth around you, collapsing walls and dropping enemies into the ground.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_HAILSTORM, "hail storm", "Creates an intense storm of hail, causing damage to all within.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines the size of the storm.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "This spell's power is boosted when cast outside.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_COLD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_PLANTWALK, "plantwalk", "Instantly travel through a plant to another nearby plant.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power level I, caster may only travel to plants of the same type.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power level II, caster may travel to any other plant.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SPECIAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l6
|
|
addot(OT_S_LIGHTNINGSTORM, "lightning storm", "Blasts all visible enemies bolts of lightning from the sky, dealing 3d6 damage (4d6 if outdoors).", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how many bolts will appear.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_AIR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addot(OT_S_SUMMONANIMALSLG, "summon large animals", "Summons 2-3 large animals.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long the summoned creatures will remain.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addot(OT_S_FLOOD, "flood", "Creates a massive ball of water.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines the amount of water which appears.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CASTINGTIME, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODNATURE, 5, NA, NULL);
|
|
// l6
|
|
addot(OT_S_ANIMATETREE, "animate tree", "Imbues a nearby tree with the power of life, turning it into a powerful treant.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SPECIAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SPECIAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODNATURE, 25, NA, NULL);
|
|
///////////////////
|
|
// life spells / cleric spells
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_HEALINGMIN, "minor healing", "Restores 1-8 health to the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "This spell heals an extra 2 damage per power level.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_ALLY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODLIFE, 1, NA, NULL);
|
|
addot(OT_S_TURNUNDEAD, "turn undead", "Instills fear in undead creatures.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODLIFE, 1, NA, NULL);
|
|
// l2
|
|
addot(OT_S_SPEAKDEAD, "speak with dead", "When one stands upon a corpse and casts this spell, the corpse will temporarily be able to answer questions about its former life.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell will only function correctly on races capable of speech.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addot(OT_S_SMITEEVIL, "smite evil", "Instantly deals 1-^bpower*2^n damage to evil creatures.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODLIFE, 2, NA, NULL);
|
|
// l3
|
|
addot(OT_S_DISRUPTUNDEAD, "disrupt undead", "Disrupts the very essence of undead creatures, dealing 2-6 damage per spell power.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODLIFE, 1, NA, NULL);
|
|
addot(OT_S_HEALING, "healing", "Restores 10-20 health to the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "This spell heals an extra 2 damage per power level.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_ALLY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODLIFE, 3, NA, NULL);
|
|
addot(OT_S_HOLYAURA, "holy aura", "Surrounds the target with a holy aura, causing their weapon to deal holy damage against vulnerable creatures.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODLIFE, 3, NA, NULL);
|
|
// l4
|
|
addot(OT_S_PROTEVIL, "protection from evil", "Repels the next 5+(^bpower^n*2) attacks from Evil-aligned creatures. ", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addot(OT_S_HEAVENARM, "divine armour", "Protects the target from damage with a holy force field.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "This spell will prevent ^bpower * 10^n points worth of damage from any source.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VARPOWER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_HEALINGMAJ, "major healing", "Restores 20-30 health to the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "This spell heals an extra 2 damage per power level.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_ALLY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODLIFE, 4, NA, NULL);
|
|
addot(OT_S_CUREPOISON, "cure poison", "Cures the target of all poisons.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODLIFE, 4, NA, NULL);
|
|
// l5
|
|
addot(OT_S_RESTORATION, "restoration", "Restore nearly all the target's HP and MP, and remove almost all negative status effects.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_ALLY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODLIFE, 5, NA, NULL);
|
|
// l6
|
|
addot(OT_S_RESSURECTION, "ressurection", "Restore one adjacent corpse to life.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
///////////////////
|
|
// mental/psionic
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_BOOSTCONFIDENCE, "ego boost", "Instils the target with boundless courage, allowing them to (perhaps foolishly) continue fighting even when all seems lost.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER|TT_ALLY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_MINDSCAN, "mind scan", "Reveals detailed information about the target.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER|TT_ALLY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_STUN, "stun", "Stuns the target, preventing them from taking agressive action for a few seconds.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
// l2
|
|
addot(OT_S_ANTICIPATE, "anticipate action", "Allows the caster to automatically dodge the target's attacks.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power detemines the number of attacks dodged.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_S_DISORIENT, "disorient", "Spins the target around to face away from the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_S_LOWERMETAB, "lower metabolism", "Slow your body's functions, decreasing your rate of hunger but also your movement speed.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power level III: your speed penalty is reduced.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power level V: you no longer suffer a speed penalty.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_TELEKINESIS, "telekinesis", "Mentally move or manipulate nearby objects.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "This spell can lift up to 10kg per power level.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SPECIAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_WALLSTOP, NA, NULL);
|
|
addot(OT_S_LETHARGY, "lethargy", "Reduces the target's stamina by ^bpower^n*2.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DEATH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l3
|
|
addot(OT_S_PSIBLAST, "psionic blast", "Assaults the target's brain with a mental feedback loop, dealing damage based on their intelligence.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Creatures with higher intelligence will take more damage.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_PSYARMOUR, "psychic armour", "Mentally block incoming attacks.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The psychic armour's Armour Rating is ^bpower*4^n.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VARPOWER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
// TODO: hardcode how ai casts this
|
|
addot(OT_S_BAFFLE, "baffle", "Confuses the target, causing them to lose control of their movement.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The target will be confused for ^bpower^n*4 turns.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_SLEEP, "sleep", "Puts the target creature to sleep.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how long the sleep effect will last.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_HUNGER, "hunger", "Causes the target to become ravenously hungry.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l4
|
|
addot(OT_S_PACIFY, "pacify", "Induces calmness in another, preventing them from attacking.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines resistability.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_STUNMASS, "mass stun", "Stuns all creatures within sight.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
// l5
|
|
addot(OT_S_CHARM, "charm", "Causes another lifeform to temporary become friendly.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines resistability and duration.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
///////////////////
|
|
// modification
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_OBJECTGROWTH, "enlarge object", "Causes the target object to grow to an enormous size.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_HOLDPORTAL, "seal entrance", "Magically closes and jams a door, preventing it from opening.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_DOOR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
//addot(OT_S_INSCRIBE, "inscribe", "Creates a magical inscription viewable to anyone standing nearby.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
//addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
//addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addot(OT_S_KNOCK, "knock", "Magically opens doors or other such barriers.\n", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At Power VII, this spell will also knock back living creatures.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_DOOR|TT_IMPASSABLE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODTHIEVES, 5, NA, NULL);
|
|
addot(OT_S_LIGHT, "light area", "Creates a temporary light source centred on the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At Power III, you can control where the light appears.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At Power V, the light will blind creatures with night vision.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At Power VIII, the light becomes permenant.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_LIFE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_CREATEWATER, "create water", "Creates a large pool of shallow water.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines the size of the pool.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
// l2
|
|
addot(OT_S_OBJECTSHRINK, "shrink object", "Causes the target object to shrink to a tiny size.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_SIZEUP, "unnatural growth", "Causes the target's body to grow in size. They will become easier to hit, but deal more damage.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how long the effect will last.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power level V, self-targetted spells will also resize your armour.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addot(OT_S_SIZEDOWN, "unnatural shrinkage", "Causes the target's body to shrink in size. They will deal less damage, but become harder to hit.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how long the effect will last.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power level V, self-targetted spells will also resize your armour.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_S_MIRRORIMAGE, "mirror image", "Creates ^bpower^n illusionary clones of the caster to distract enemies. These clones cannot deal damage, and vanish when hit.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how many clones are created, and how many hits they can sustain.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VARPOWER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_DARKNESS, "darkness", "Permenantly darkens the area around the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At Power III, you can control where the darkness appears.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At Power VIII, the darkness becomes permenant.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addot(OT_S_MENDING, "mending", "Repairs minor damage to objects (1d6 + ^bpower^n).", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addot(OT_S_GREASE, "grease", "Creates a large pool of greasy oil.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines the size of the grease pool.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
|
|
// l3
|
|
addot(OT_S_INVISIBILITY, "invisibility", "Temporarily renders the target invisible.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long the invisibility will last.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
//addflag(lastot->flags, F_XPVAL, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_PASSWALL, "passwall", "Allows the caster to temporarily walk through a single wall.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how long the caster can wait before entering a wall.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addot(OT_S_ANIMATESTATUE, "animate statue", "Temporarily brings a statue to life, under control of the caster. Also stops stoning.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell only affects stone which is in the form of a living creature.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT|TT_PLAYER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODNATURE, 25, NA, NULL);
|
|
// l4
|
|
addot(OT_S_EXCAVATE, "excavate", "Creates a large open area surrounding the caster. No effect on living creatures.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addot(OT_S_SHAPESHIFT, "shapeshift", "Causes the caster to take on the form of any creature within sight.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how powerful a creature you can become.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, 10, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
// l5
|
|
addot(OT_S_GASEOUSFORM, "gaseous form", "Changes the caster into a cloud of gas.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addot(OT_S_QUICKENSTONE, "quicken stone", "Crafts nearby stone into powerful stone primalities.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines how many creatures will be created.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power level VI, stronger creatures will be created.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 8, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
// l6
|
|
addot(OT_S_ENCHANT, "enhancement", "Magically enhances a weapon or piece of armour.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
// TODO: hardcode how ai casts this spell
|
|
addot(OT_S_PETRIFY, "petrify", "Causes a living creature to turn into stone.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines resistability.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_S_POLYMORPH, "polymorph", "Transmutes the target into a new living race.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines resistability.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power V, you can choose what kind of creature to polymorph into.");
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, 10, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
|
|
///////////////////
|
|
// summoning
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_GLYPHWARDING, "glyph of warding", "Inscribes a magical glyph in the ground which wards off monsters.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The glyph will stop monsters up to ^bpower^n/2 hit dice.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The glyph will last for ^bpower^n*5 turns.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_FLOATINGDISC, "floating disc", "Creates a disc of energy to carry your equipment.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power level determines how much wight the disc can carry.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_SUMMONWEAPON, "summon weapon", "Summons a blade of pure magic into your hands.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines its Damage Rating.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VARPOWER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
// l2
|
|
addot(OT_S_CREATEFOOD, "sultan's feast", "Creates a meal in the target location.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines how much food is created.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODNATURE, 5, NA, NULL);
|
|
// l3
|
|
addot(OT_S_CREATEMONSTER, "create monster", "Summons a (probably hostile) monster to a nearby location.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At Power V you can control where the monster appears.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At Power VII you can control the type of monster created.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_FRIENDS, "friends!", "Surrounds the caster with a horde of tiny animals to act as a decoy.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
// l5
|
|
addot(OT_S_CLONE, "clone", "Creates an identical clone of the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addot(OT_S_SUMMONDEMON, "summon demon", "Summons a random demonic entity.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "The spell's power determines its chances of success, and how long the demon will remain.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
///////////////////
|
|
// translocation
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_APPORTATION, "apportation", "Instantly transports a single visible object up to 10kg in weight to the caster's pack.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l2
|
|
addot(OT_S_BLINK, "bamf", "Teleports the caster to a random location within view.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At Power VI you can choose where to teleport to.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_SUCK, "get over here!", "Pulls the target lifeform towards the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines resistability.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 5, 2, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
// l3
|
|
addot(OT_S_TWIDDLE, "twiddle", "Swaps places with the target creature.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_INSTANTDISROBE, "instant disrobe", "Transports 1-3 pieces of the target's armour to the air next to them.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines number of items affected.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 8, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l4
|
|
addot(OT_S_BLINKASS, "assassin blink", "Teleports the caster behind an enemy, ready for a sneak attack.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_TELEPORT, "teleportation", "Teleports the caster (and Power-1 adjacent allies) to a new location within the same level.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power V, you can choose the general direction to teleport in.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power VII, you can choose exactly where to teleport to.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_CONFISCATE, "yoink", "Transports one random object directly from the target to the caster.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "At power level II, the target object can be selected.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_DISPERSAL, "dispersal", "Scatters everything in the target cell around the area.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines resistability.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_GATE, "gate", "Creates a portal to a different dungeon level (within ^bpower^n*2 levels).", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
// l5
|
|
addot(OT_S_TRAVEL, "travel", "Instantly teleports the caster to the start of a given dungeon branch.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
// l6
|
|
addot(OT_S_PLANESHIFT, "planeshift", "Instantly transports the caster to a different plane of existence.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
|
|
///////////////////
|
|
// wild
|
|
///////////////////
|
|
// l1
|
|
addot(OT_S_FIREWORKS, "pyrotechnics", "Launches up to ^power^n bursts of dazzling fireworks around the caster, stunning those who view them.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_MANASPIKE, "mana spike", "Fires a small bolt of wild magic, dealing 1d4 magical damage per power level.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
// l2
|
|
addot(OT_S_ENERGYBOLT, "energy bolt", "Fires a medium-sized bolt of wild magic, dealing 1d4 damage per power level.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addot(OT_S_ALARM, "alarm", "Creates a passive alarm which goes off when an enemy is nearby.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addflag(lastot->flags, F_ONGOING, B_TRUE, NA, NA, NULL);
|
|
// l3
|
|
addot(OT_S_ENERGYBLAST, "energy blast", "Causes a ring of energy to expand from the caster, causing 2d6 damage to anything in sight.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the radius of the blast.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJSELF, NA, NA, NULL);
|
|
addot(OT_S_FLASH, "flash", "Causes a very bright flash, stunning anyone who sees it.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the size of the flash.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_NATURE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
// l4
|
|
addot(OT_S_NULLIFY, "nullify", "Permenantly removes the target's ability to use one or more spells/abilities.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the amount of spells nullified.");
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "This spell will not anger gods who dislike magic.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER|TT_DOOR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addot(OT_S_REPLENISH, "replenish", "Restores a some amount of power to a wand.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the amount of charges restored.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addot(OT_S_SPIKEVOLLEY, "spike volley", "Fires a volley of iron spikes, dealing 3 damage plus 1d3 per spell power.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
// l5
|
|
addot(OT_S_DETONATEDELAY, "delayed detonation", "Causes a given area to explode after a short delay.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MAXPOWER, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
// l6
|
|
addot(OT_S_DETONATE, "detonate", "Causes a given area to explode with massive force.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "Spell power determines the size of the explosion.");
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_WILD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TARGETTEDSPELL, TT_MONSTER|TT_DOOR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
|
|
// divine powers (spells/abilities)
|
|
addot(OT_A_BLINDALL, "nosight", "Make everyone on the level blind.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_DEBUG, "debug", "You can toggle debugging for a lifeform.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_ENHANCE, "enhance stats", "Enhance a lifeform's stats.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_LEARN, "learn", "Learn new skills.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_LEVELUP, "levelup", "Bestow the given xp level.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_S_WISH, "wish", "Grants the caster any item of their choice. Beware - casting this powerful spell will reduce the caster's hit points by 50%.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODNATURE, 10, NA, NULL);
|
|
addot(OT_S_WISHLIMITED, "limited wish", "Grants the caster a wish of their choice. Beware - casting this powerful spell will reduce the caster's hit points by 25%.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PLEASESGOD, R_GODNATURE, 5, NA, NULL);
|
|
// l6
|
|
addot(OT_S_GIFT, "gift", "Grants the target any item of their choice (with some limitations).", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINE, NA, NA, NULL);
|
|
addot(OT_S_CLEARLEVEL, "blank level", "Blanks out the current map.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_S_CREATEVAULT, "create vault", "Create a vault of the given type.", MT_NOTHING, 0, OC_SPELL, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLLEVEL, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_DIVINE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
|
|
// abilities
|
|
addot(OT_A_AIMEDSTRIKE, "aimed strike", "A carefully placed strike - much lower accuracy but causes a critical hit if it connects.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STAMCOST, 2, NA, NA, NULL);
|
|
addot(OT_A_ALTERATTACK, "alter attack style", "Adjust your attack style to cause a different kind of damage.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_EMPLOY, "employ", "Assigns a job to the target lifeform.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_CHARGE, "charge", "You can quickly charge into close quarters for battle.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_A_CRUSH, "crush", "You can crush enemies after grabbing them.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NEEDSGRAB, B_TRUE, NA, NA, NULL);
|
|
addot(OT_A_CHECKSTAIRS, "check stairs", "Attempt to determine what lies on the other end of a staircase.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_CLIMB, "climb", "Climb up or down whatever is in front of you (walls or pits).", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SPECIAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SPECIAL, NA, NA, NULL);
|
|
addot(OT_A_COOK, "cook", "Cook a corpse, or combine various foods into a healthy meal.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_DARKWALK, "darkwalk", "Step between the shadows.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
// ai will cast this spell in a special manner...
|
|
addot(OT_A_COMBOSTRIKE, "combination strike", "Perform a combination of blows which continues each time you defeat an enemy.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addot(OT_A_DISARM, "disable trap", "Attempt to disable a known trap.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_DISARMLF, "disarm", "Attempt to knock your opponent's weapon out of their hands.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
addot(OT_A_DRAGUNDERGROUND, "drag underground", "You drag your foe underground to its doom.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NEEDSGRAB, B_TRUE, NA, NA, NULL);
|
|
addot(OT_A_ENHANCEOB, "enhance item", "Combine two regular items into a single masterwork item.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_FEIGNDEATH, "feign death", "Pretend to be dead.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_FLIP, "flip", "Flip your opponent over your head.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addot(OT_A_FLURRY, "flurry", "Perform a flurry of attacks, forcing your opponent backwards.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addot(OT_A_GRAB, "grab", "You can grab hold of nearby enemies to prevent their escape.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addot(OT_A_EXPOSEDSTRIKE, "wild strike", "A wild blow directly at your enemy with no regard for safety. Almost always hits, but leaves you completely exposed to follow-up attacks.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
//addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STAMCOST, 1, NA, NA, NULL);
|
|
addot(OT_A_HEAVYBLOW, "heavy blow", "Mighty blow which knocks enemies backwards.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STAMCOST, 2, NA, NA, NULL);
|
|
addot(OT_A_HIDE, "hide", "You can hide in the shadows.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addot(OT_A_HURRICANESTRIKE, "hurricane strike", "A sweeping attack aginst everything nearby.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJSELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STAMCOST, 4, NA, NA, NULL);
|
|
addot(OT_A_INSPECT, "inspect item", "Try to identify an unknown scroll, book, wand or ring from your pack.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_JUMP, "jump", "You can leap large distances.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SPECIAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SPECIAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STAMCOST, 3, NA, NA, NULL);
|
|
addot(OT_A_PICKLOCK, "pick locks", "Attempt to open a lock using a small object.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_POLYREVERT, "revertform", "Revert to your original form.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOANNOUNCE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, 10, NA, NULL);
|
|
addot(OT_A_QUIVERINGPALM, "quivering palm", "A deadly palm strike which knocks the molecules in the target's body out of alignment.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_PRAY, "pray", "Ask for help from a higher being.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_REFLEXDODGE, "reflexive dodging", "Automatically use all remaining stamina to dodge fatal attacks.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_RAGE, "rage", "Enter a state of berzerker rage, gaining attack and defence bonuses.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJSELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STAMCOST, 5, NA, NA, NULL);
|
|
addot(OT_A_REPAIR, "repair equipment", "Repair damage done to your equipment.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_RESIZE, "resize armour", "Adjust the fit of a piece of armour or clothing.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_SHIELDBASH, "shield bash", "Attempt to stun your opponent by bashing them with your shield.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STAMCOST, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_NEED, NA, NULL);
|
|
addot(OT_A_SNATCH, "snatch", "Quickly grab a single item from an adjacent cell.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
addot(OT_A_SONICBOLT, "sonic bolt", "Emit a damaging burst of sound, targetted at a particular location.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STAMCOST, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_FALSE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_A_SPRINT, "sprint", "You can run at high speed over short distances. This will quickly reduce your stamina.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOFLEE, ST_SELF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STAMCOST, 1, NA, NA, NULL);
|
|
addot(OT_A_STEAL, "steal", "Try to steal an item from an enemy.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addot(OT_A_STINGACID, "sting (acid)", "You can sting your enemies.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 1, NA, NA, NULL);
|
|
addot(OT_A_STUDYSCROLL, "study scroll", "Attempt to learn a spell directly from a scroll.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_STRIKETOKO, "merciful fighting", "Try to knock out your opponents rather than killing them.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_SUCKBLOOD, "suck blood", "You can suck the blood from enemies after attaching to them.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addot(OT_A_SWALLOW, "swallow", "Swallow an enemy whole.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addot(OT_A_SWOOP, "swoop", "You can attack an enemy while flying past them.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_A_THRUST, "thrust", "Perform a long range attack on an enemy up to two cells away.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 2, NA, NA, NULL);
|
|
addot(OT_A_TRIPLF, "trip", "Attempt to trip your opponent over.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ADJVICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_NEED, NA, NULL);
|
|
addot(OT_A_TRAIN, "training", "Start training to gain a new experience level or enhance skill.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addot(OT_A_TUMBLE, "tumble", "You can tumble across the ground.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STAMCOST, 2, NA, NA, NULL);
|
|
addot(OT_A_WARCRY, "warcry", "Inspire fear in your enemies with a mighty war cry.", MT_NOTHING, 0, OC_ABILITY, SZ_TINY);
|
|
addflag(lastot->flags, F_STAMCOST, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLSCHOOL, SS_ABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_ANYWHERE, NA, NA, NULL);
|
|
|
|
|
|
// books
|
|
addot(OT_MANUAL, "manual", "Teaches you one level of its subject matter.", MT_PAPER, 1.5, OC_BOOK, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_VERYRARE, NULL);
|
|
addot(OT_SPELLBOOK, "spellbook", "Spellbooks contain a selection of spells from a single school.", MT_PAPER, 1.5, OC_BOOK, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_VERYRARE, NULL);
|
|
|
|
|
|
addot(OT_GRIMOIRE, "grimoire", "Grimoires contain spells from a variety of schools.", MT_PAPER, 2, OC_BOOK, SZ_SMALL);
|
|
addflag(lastot->flags, F_NO_A, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_VERYRARE, NULL);
|
|
|
|
// wands
|
|
addot(OT_WAND_CREATEFOOD, "wand of culinary abundance", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_CREATEFOOD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_NONE, NA, NA, NULL);
|
|
addot(OT_WAND_KNOCK, "wand of opening", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_KNOCK, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_DOOR, NA, NA, NULL);
|
|
addot(OT_WAND_LIGHT, "wand of light", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_LIGHT, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, TR_NEEDLOF, NA, NULL);
|
|
addot(OT_WAND_NULLIFY, "wand of nullification", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_NULLIFY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, TR_NEEDLOF, NA, NULL);
|
|
addot(OT_WAND_REVEALHIDDEN, "wand of reveal hidden", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_REVEALHIDDEN, NA, NA, NULL);
|
|
addot(OT_WAND_SLOW, "wand of slowness", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_SLOW, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_WAND_DIGGING, "wand of digging", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_DIG, NA, NA, NULL);
|
|
//addflag(lastot->flags, F_OPERNEEDTARGET, TT_NONE, NA, NA, NULL);
|
|
addot(OT_WAND_COLD, "wand of cold", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_COLDRAY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_WAND_FIRE, "wand of fire", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_FIREDART, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_WAND_HASTE, "wand of haste", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_HASTE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addot(OT_WAND_WEAKNESS, "wand of enfeeblement", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_WEAKEN, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_WAND_WONDER, "wand of wonder", "Produces random effects.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_WAND_INVIS, "wand of invisibility", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_INVISIBILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_SELF, NA, NA, NULL);
|
|
addot(OT_WAND_DISPERSAL, "wand of dispersal", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_DISPERSAL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER|TT_OBJECT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AIFLEEITEM, B_TRUE, NA, NA, NULL);
|
|
addot(OT_WAND_FIREBALL, "wand of fireball", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_FIREBALL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_WAND_DETONATION, "wand of detonation", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_DETONATE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER|TT_DOOR, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOSLOF, B_TRUE, LOF_DONTNEED, NA, NULL);
|
|
addot(OT_WAND_POLYMORPH, "wand of polymorph", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_POLYMORPH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AICASTTOATTACK, ST_VICTIM, NA, NA, NULL);
|
|
addot(OT_WAND_TURNUNDEAD, "wand of turn undead", "A limited-use magical wand which casts the imbued spell.", MT_METAL, 0.5, OC_WAND, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_LINKSPELL, OT_S_TURNUNDEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, NA, NA, NULL);
|
|
|
|
// tools - unique
|
|
addot(OT_ORBDUNGEONEXIT, "dungeon exit orb", "When operated, this magical key will disable the barriers around the dungeon exit stairs.", MT_STONE, 2, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, C_MAGENTA, '[', NA, NULL);
|
|
addflag(lastot->flags, F_UNIQUE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_INVULNERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_KEYIRON, "ancient iron key", "An ancient key made from iron. It looks important.", MT_METAL, 2, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '[', NA, NULL);
|
|
addflag(lastot->flags, F_UNIQUE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_INVULNERABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_KEYMOSS, "ancient mossy key", "An ancient key covered with moss. It looks important.", MT_METAL, 2, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, '[', NA, NULL);
|
|
addflag(lastot->flags, F_UNIQUE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_INVULNERABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_KEYSTONE, "ancient stone key", "An ancient key made of stone. It looks important.", MT_METAL, 2, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '[', NA, NULL);
|
|
addflag(lastot->flags, F_UNIQUE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_INVULNERABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
// tools
|
|
addot(OT_BANDAGE, "bandage", "A small medical bandage. When worn, it will counteract bleeding.", MT_CLOTH, 0.5, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 25, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_LEGS, NA, NA, NULL);
|
|
|
|
addot(OT_BLANKET, "wool blanket", "A warm wool blanket for those cold winter nights.", MT_CLOTH, 2, OC_TOOLS, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSREST, 10, NA, NA, NULL);
|
|
|
|
addot(OT_BLINDFOLD, "blindfold", "Short length of wide cloth, used for blocking eyesight.", MT_CLOTH, 0.01, OC_TOOLS, SZ_TINY);
|
|
addflag(lastot->flags, F_GOESON, BP_EYES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_BLIND, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 15, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
|
|
addot(OT_CALTROP, "caltrop", "Connected metal spikes arranged such that one will always point upwards.", MT_METAL, 0.2, OC_TOOLS, SZ_TINY);
|
|
addflag(lastot->flags, F_STACKABLE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 3, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_SHARP, 2, 5, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 20, NA, NA, NULL);
|
|
|
|
addot(OT_BUGLAMP, "glowing flask", "A glass flask with a glowbug corpse inside.", MT_GLASS, 0.3, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, NA, '!', NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_PRODUCESLIGHT, 3, IFKNOWN, NULL);
|
|
addflag(lastot->flags, F_FEELTEXT, NA, NA, NA, "a flask");
|
|
|
|
addot(OT_CANDLE, "candle", "A short wax candle.", MT_WAX, 0.2, OC_TOOLS, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 90, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 20, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERONOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACTIVATEPREFIX, NA, NA, NA, "lit");
|
|
addflag(lastot->flags, F_ACTIVATECONFER, F_PRODUCESLIGHT, 2, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 2, NA, IFACTIVE, NULL);
|
|
addflag(lastot->flags, F_RNDCHARGES, 200, 400, NA, NULL);
|
|
addflag(lastot->flags, F_LIGHTSOURCE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGELOWMSG, B_TRUE, NA, NA, "flickers");
|
|
addflag(lastot->flags, F_CHARGEOUTMSG, B_TRUE, NA, NA, "goes out");
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_FRIDGE, "refrigerator", "An insulated household appliance, made for storing food.", MT_METAL, 120, OC_TOOLS, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 1500, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, ']', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 40, 40, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
|
|
addot(OT_GUNPOWDER, "pile of gunpowder", "A black metallic powder.", MT_METAL, 0.5, OC_TOOLS, SZ_TINY);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "pile of black powder");
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 65, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 25, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EXPLODEONDAM, DT_FIRE, NA, NA, "8d2");
|
|
addflag(lastot->flags, F_DTVULN, DT_FIRE, NA, NA, "2d6");
|
|
addflag(lastot->flags, F_FLAMMABLE, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_POWDER, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_LAMPOIL, "oil lamp", "An oil-powered lamp which produces light.", MT_METAL, 1, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERONOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACTIVATECONFER, F_PRODUCESLIGHT, 5, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 5, NA, IFACTIVE, NULL);
|
|
addflag(lastot->flags, F_RNDCHARGES, 400, 700, NA, NULL);
|
|
addflag(lastot->flags, F_REFILLWITH, OT_POT_OIL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LIGHTSOURCE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGELOWMSG, B_TRUE, NA, NA, "flickers");
|
|
addflag(lastot->flags, F_CHARGEOUTMSG, B_TRUE, NA, NA, "goes out");
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_LANTERNOIL, "oil lantern", "An oil-powered lantern which produces a lot of light.", MT_METAL, 1, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 55, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERONOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACTIVATECONFER, F_PRODUCESLIGHT, 6, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 6, NA, IFACTIVE, NULL);
|
|
addflag(lastot->flags, F_RNDCHARGES, 500, 900, NA, NULL);
|
|
addflag(lastot->flags, F_REFILLWITH, OT_POT_OIL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LIGHTSOURCE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGELOWMSG, B_TRUE, NA, NA, "flickers");
|
|
addflag(lastot->flags, F_CHARGEOUTMSG, B_TRUE, NA, NA, "goes out");
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_LOCKPICK, "lockpick", "An angled piece of metal, used to open locks.", MT_METAL, 0.05, OC_TOOLS, SZ_TINY);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PICKLOCKS, 10, B_DIEONFAIL, NA, NULL);
|
|
|
|
addot(OT_PANPIPES, "set of panpipes", "A set of musical pipes.", MT_METAL, 0.5, OC_TOOLS, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_PICKAXE, "pickaxe", "A heavy tool for breaking rock.", MT_METAL, 8, OC_TOOLS, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSDIG, 10, NA, NA, NULL);
|
|
|
|
addot(OT_ROPE, "nylon rope", "A long length of strong rope.", MT_CLOTH, 5, OC_TOOLS, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, ']', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 35, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSCLIMB, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_WAIST, NA, NA, NULL); // ie. can wear it as a belt
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_ENCHANTABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_SACK, "sack", "A small cloth sack.", MT_CLOTH, 0.5, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 25, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '(', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_SACKLARGE, VT_OB, NA, NULL);
|
|
|
|
addot(OT_SACKLARGE, "large sack", "A large cloth sack.", MT_CLOTH, 1, OC_TOOLS, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '(', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 50, 50, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_SACKHUGE, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_SACK, VT_OB, NA, NULL);
|
|
|
|
addot(OT_SACKHUGE, "huge sack", "An enormous cloth sack.", MT_CLOTH, 1, OC_TOOLS, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 85, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '(', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 50, 50, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_SACKLARGE, VT_OB, NA, NULL);
|
|
|
|
|
|
addot(OT_BAGOFHOLDING, "bag of holding", "A magical sack which causes items placed inside it to become weightless.", MT_CLOTH, 0.5, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '(', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERWITHOUTID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOTRIED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HOLDING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 30, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "sack");
|
|
addflag(lastot->flags, F_GROWSTO, OT_BAGOFHOLDINGLARGE, VT_OB, NA, NULL);
|
|
|
|
addot(OT_BAGOFHOLDINGLARGE, "large bag of holding", "A large magical sack which causes items placed inside it to become weightless.", MT_CLOTH, 0.5, OC_TOOLS, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 220, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '(', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERWITHOUTID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOTRIED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HOLDING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "large sack");
|
|
addflag(lastot->flags, F_GROWSTO, OT_BAGOFHOLDINGHUGE, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_BAGOFHOLDING, VT_OB, NA, NULL);
|
|
|
|
addot(OT_BAGOFHOLDINGHUGE, "huge bag of holding", "An enormous magical sack which causes items placed inside it to become weightless.", MT_CLOTH, 0.5, OC_TOOLS, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '(', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERWITHOUTID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOTRIED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HOLDING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "huge sack");
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_BAGOFHOLDINGLARGE, VT_OB, NA, NULL);
|
|
|
|
addot(OT_SAFEBOX, "safebox", "A small metal container for safely storing valuables.", MT_METAL, 2, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 77, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '(', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTEAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 15, 15, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOCKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBELOCKED, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBETRAPPED, 20, 25, 66, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, NA, NA, NULL);
|
|
|
|
addot(OT_SHOVEL, "shovel", "A lightweight digging tool.", MT_METAL, 4, OC_TOOLS, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 45, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSDIG, 5, NA, NA, NULL);
|
|
|
|
addot(OT_TORCH, "torch", "A metre-long wooden rod with a flammable end.", MT_WOOD, 2, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 85, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 25, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERONOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACTIVATEPREFIX, NA, NA, NA, "lit");
|
|
addflag(lastot->flags, F_ACTIVATECONFER, F_PRODUCESLIGHT, 4, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 4, NA, IFACTIVE, NULL);
|
|
addflag(lastot->flags, F_RNDCHARGES, 100, 200, NA, NULL);
|
|
addflag(lastot->flags, F_REFILLWITH, OT_POT_OIL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_FIRE, 2, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LIGHTSOURCE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGELOWMSG, B_TRUE, NA, NA, "flickers");
|
|
addflag(lastot->flags, F_CHARGEOUTMSG, B_TRUE, NA, NA, "goes out");
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TOWEL, "towel", "An large absorbent cloth used for drawing off moisture.", MT_CLOTH, 1.5, OC_TOOLS, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 73, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 15, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_UNICORNHORN, "unicorn horn", "A two-foot long conical horn, glowing faintly.", MT_BONE, 2, OC_TOOLS, SZ_SMALL);
|
|
addflag(lastot->flags, F_VALUE, 1000, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_DTIMMUNE, DT_POISON, NA, NULL);
|
|
|
|
// tech - l0
|
|
addot(OT_CREDITCARD, "credit card", "A rectangular plastic card.", MT_PLASTIC, 0.01, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 90, NA, NULL);
|
|
addflag(lastot->flags, F_RNDCHARGES, 75, 500, NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_FALSE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PICKLOCKS, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
addot(OT_PAPERCLIP, "paperclip", "A thin, looped wire for holding paper together.", MT_WIRE, 0.01, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 90, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, NA, NULL);
|
|
addflag(lastot->flags, F_PICKLOCKS, 4, B_DIEONFAIL, NA, NULL);
|
|
// can use as a (very bad) weapon too...
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 1, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 50, NA, NA, NULL);
|
|
|
|
addot(OT_SLEEPINGBAG, "sleeping bag", "An insulated bag for sleeping in. Very comfortable.", MT_CLOTH, 2, OC_TECH, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSREST, 15, NA, NA, NULL);
|
|
|
|
// tech - l1
|
|
addot(OT_BUTANETORCH, "butane torch", "A cooking tool which creates an intensely hot flame using butane gas.", MT_METAL, 0.5, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 85, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERUSECHARGE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, TR_NEEDLOF, 1, "Where will you aim?");
|
|
addflag(lastot->flags, F_RNDCHARGES, 5, 10, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_NOVICE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
addot(OT_POCKETWATCH, "pocket watch", "A portable timekeeping device made to be carried in a pocket.", MT_METAL, 0.1, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 90, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 25, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_NOVICE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addot(OT_DIGITALWATCH, "digital watch", "An electronic timekeeping device which shows the time as a number.", MT_METAL, 0.1, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 85, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_NOVICE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addot(OT_INSECTICIDE, "can of insecticide", "A spraycan containing poisonous chemicals.", MT_METAL, 0.5, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_SWAMP, 85, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 85, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERUSECHARGE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDTARGET, TT_MONSTER, NA, NA, "Where will you spray?");
|
|
addflag(lastot->flags, F_RNDCHARGES, 1, 5, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_NOVICE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
addot(OT_LANTERNLED, "LED lantern", "A low-powered but efficient lantern which will last almost forever.", MT_METAL, 0.5, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERONOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACTIVATECONFER, F_PRODUCESLIGHT, 3, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 3, NA, IFACTIVE, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_NOVICE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
|
|
// tech - l2
|
|
addot(OT_BATTERY, "induction battery", "A power storage and provision device which automatically feeds power to nearby devices as needed.", MT_METAL, 1, OC_TECH, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_BEGINNER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RNDCHARGES, 10, 30, NA, NULL);
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
addot(OT_TENT, "tent", "A easy to use, portable shelter made of fabric.", MT_CLOTH, 10, OC_TECH, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSREST, 15, 1, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_BEGINNER, NA, NA, NULL);
|
|
addot(OT_FLASHBANG, "flashbang", "A stun grenade which temporarily blinds all within sight.", MT_METAL, 1, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 90, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 60, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERONOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGES, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_DONTSHOWCHARGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RECHARGEWHENOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FLASHONDEATH, 4, NA, B_IFACTIVATED, NULL);
|
|
addflag(lastot->flags, F_FLASHONDAM, 4, NA, B_IFACTIVATED, NULL);
|
|
addflag(lastot->flags, F_GRENADE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_BEGINNER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addot(OT_GRENADE, "grenade", "An explosive weapon which explodes a short time after activation.", MT_METAL, 1, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERONOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGES, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_DONTSHOWCHARGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RECHARGEWHENOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EXPLODEONDEATH, NA, 1, B_IFACTIVATED, "16d2");
|
|
addflag(lastot->flags, F_EXPLODEONDAM, NA, 1, B_IFACTIVATED, "13d2");
|
|
addflag(lastot->flags, F_GRENADE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_BEGINNER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addot(OT_GRENADESMOKE, "smoke grenade", "A device which once activated, will explode into a cloud of smoke upon impact.", MT_METAL, 1, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 55, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERONOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGES, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_DONTSHOWCHARGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RECHARGEWHENOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, 1, NA, NA, "cloud of smoke");
|
|
addflag(lastot->flags, F_DIECONVERTTEXT, NA, NA, NA, "explodes");
|
|
addflag(lastot->flags, F_DIECONVERTTEXTPL, NA, NA, NA, "explode");
|
|
addflag(lastot->flags, F_GRENADE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_BEGINNER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addot(OT_GRENADEICE, "dry ice grenade", "A specialised grenade which explodes into a cloud of absolute coldness.", MT_METAL, 1, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 90, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 60, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERONOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGES, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_DONTSHOWCHARGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RECHARGEWHENOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SPELLCLOUDONDEATH, OT_S_SNAPFREEZE, 2, B_IFACTIVATED, "OB explodes in a cloud of freezing air!^Something explodes in a cloud of freezing air!^8");
|
|
addflag(lastot->flags, F_SPELLCLOUDONDAM, OT_S_SNAPFREEZE, 2, B_IFACTIVATED, "8");
|
|
addflag(lastot->flags, F_GRENADE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_BEGINNER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addot(OT_C4, "block of c4", "An extremely explosive plastic which explodes a medium time after activation.", MT_PLASTIC, 1, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 76, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERONOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGES, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_DONTSHOWCHARGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RECHARGEWHENOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EXPLODEONDEATH, NA, 2, B_IFACTIVATED, "90d2"); // 90 - 180 damage
|
|
addflag(lastot->flags, F_GRENADE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_BEGINNER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_JACKHAMMER, "jackhammer", "A heavy power tool for quickly digging into hard rock.", MT_METAL, 15, OC_TOOLS, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSDIG, 25, NA, NA, NULL);
|
|
|
|
addot(OT_MOTIONSCANNER, "motion scanner", "Small scanning device which detects nearby lifeforms.", MT_METAL, 1.5, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 200, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HOLDCONFER, F_DETECTLIFE, 10, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_BEGINNER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addot(OT_NVGOGGLES, "nightvis goggles", "Special goggles which allow the wear to see in the dark.", MT_METAL, 1.5, OC_TECH, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 200, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_BEGINNER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_EYES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_SEEINDARK, 5, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addot(OT_SOLDERINGIRON, "soldering iron", "A hand tool with an electrically heated metal tip. This unit is operated by an in-built battery.", MT_METAL, 0.5, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, RR_UNCOMMON, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_HEAT, 6, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_BEGINNER, NA, NA, NULL);
|
|
addot(OT_STYPTIC, "styptic", "A medical compound designed to inhibit bleeding.", MT_METAL, 0.5, OC_TECH, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 65, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_BEGINNER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_POWERCORE, "unstable power core", "An energy-generation device which is now dangerously unstable...", MT_METAL, 0.5, OC_TECH, SZ_SMALL);
|
|
addflag(lastot->flags, F_VALUE, 0, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_BEGINNER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EXPLODEONDEATH, NA, 1, NA, "10d2");
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, SV_TALK, NA, "something sparking.");
|
|
|
|
// tech - l3
|
|
addot(OT_INFOVISOR, "infovisor", "Sleek looking metal visor which displays info directly into the retina.", MT_METAL, 0.2, OC_TECH, SZ_SMALL);
|
|
addflag(lastot->flags, F_GOESON, BP_EYES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 125, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_EXTRAINFO, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ENHANCESEARCH, 10, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_ADEPT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addot(OT_LOCKHACKER, "lock hacker", "A sophisticated machine to manipulate physical locks.", MT_METAL, 3, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 78, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_ADEPT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addot(OT_PORTLADDER, "portable ladder", "A lightweight two metre ladder which automatically folds down to pocket size.", MT_METAL, 2, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 83, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_ADEPT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
|
|
// tech - l4
|
|
addot(OT_JETPACK, "jet pack", "A portable ion-thruster which allows the wearer to fly.", MT_METAL, 10, OC_TECH, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 68, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 200, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERONOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RNDCHARGES, 10, 30, NA, NULL);
|
|
addflag(lastot->flags, F_REFILLWITH, OT_POT_OIL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACTIVATECONFER, F_FLYING, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_ACTIVATECONFER, F_PRODUCESLIGHT, 2, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_SKILLED, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
// tech - l5
|
|
addot(OT_TELEPAD, "teleport beacon", "A metal cone which will teleport the user to the nearest similar cone.", MT_METAL, 3, OC_TECH, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 68, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 250, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_EXPERT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
addot(OT_XRAYGOGGLES, "pair of xray goggles", "Bulky looking goggles which allow you to see through walls.", MT_METAL, 0.3, OC_TECH, SZ_TINY);
|
|
addflag(lastot->flags, F_VALUE, 250, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_EYES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_XRAYVIS, 2, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 60, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_TECHLEVEL, PR_EXPERT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, NULL);
|
|
|
|
// tech - l6 ???
|
|
|
|
// misc
|
|
addot(OT_BONE, "bone", "A bone from an unknown creature.", MT_BONE, 0.1, OC_MISC, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 90, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addot(OT_CHEST, "chest", "An iron treasure chest.", MT_METAL, 40, OC_FURNITURE, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '(', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 6, 6, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOCKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBELOCKED, 30, 10, NA, NULL);
|
|
addflag(lastot->flags, F_CANBETRAPPED, 20, 20, 66, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 90, 5, NA, NULL); // add 5 to depth for object rarity calculation
|
|
addflag(lastot->flags, F_STARTOBRND, 80, 5, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 70, 5, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 60, 5, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, 5, NA, NULL);
|
|
addot(OT_CHESTORNATE, "ornate chest", "An ornate golden treasure chest.", MT_GOLD, 80, OC_FURNITURE, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '(', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LOCKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBELOCKED, 60, 10, NA, NULL);
|
|
addflag(lastot->flags, F_CANBETRAPPED, 50, 20, 100, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 90, 10, NA, NULL); // add 10 to depth for object rarity calculation
|
|
addflag(lastot->flags, F_STARTOBRND, 80, 10, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 70, 10, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 60, 10, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBRND, 50, 10, NA, NULL);
|
|
addot(OT_EMPTYFLASK, "empty flask", "An empty glass flask.", MT_GLASS, 0.2, OC_MISC, SZ_TINY);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, '!', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 90, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 2, NA, NA, NULL);
|
|
addot(OT_EMPTYVIAL, "empty vial", "An empty glass vial.", MT_GLASS, 0.1, OC_MISC, SZ_TINY);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, '!', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 82, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addot(OT_GLASSJAR, "ornate glass jar", "A richly-painted glass jar, inlaid with valuable gemstones.", MT_GLASS, 0.2, OC_MISC, SZ_TINY);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_MAGENTA, '!', NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 800, NA, NA, NULL);
|
|
addot(OT_BROKENGLASS, "piece of broken glass", "Sharp shards of broken glass.", MT_GLASS, 0.1, OC_MISC, SZ_MINI);
|
|
addflag(lastot->flags, F_STACKABLE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 8, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, '^', NA, NULL);
|
|
addflag(lastot->flags, F_SHARP, 1, 2, NA, NULL);
|
|
addflag(lastot->flags, F_CRUSHABLE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 65, NA, NULL);
|
|
addflag(lastot->flags, F_NOSHATTER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 1, NA, NA, NULL);
|
|
addot(OT_ICESHEET, "sheet of ice", "A large sheet of slippery ice.", MT_ICE, 0.5, OC_MISC, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_STACKABLE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, '_', NA, NULL);
|
|
addflag(lastot->flags, F_DTCONVERT, DT_FIRE, NA, NA, "large puddle of water");
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "large puddle of water");
|
|
addflag(lastot->flags, F_DIECONVERTTEXT, NA, NA, NA, "melts");
|
|
addflag(lastot->flags, F_DIECONVERTTEXTPL, NA, NA, NA, "melt");
|
|
addflag(lastot->flags, F_OBHP, 50, 50, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SLIPPERY, 14, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_ICICLE, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_ICECHUNK, VT_OB, NA, NULL);
|
|
addot(OT_ICECHUNK, "chunk of ice", "A chunk of ice.", MT_ICE, 0.5, OC_MISC, SZ_SMALL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 3, NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "small puddle of water");
|
|
addflag(lastot->flags, F_DIECONVERTTEXT, NA, NA, NA, "melts");
|
|
addflag(lastot->flags, F_DIECONVERTTEXTPL, NA, NA, NA, "melt");
|
|
addflag(lastot->flags, F_OBHP, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOSHATTER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_ICICLE, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_PUDDLEWATER, VT_OB, NA, NULL);
|
|
|
|
addot(OT_MELTEDWAX, "lump of melted wax", "A useless lump of melted wax.", MT_WAX, 0.1, OC_MISC, SZ_TINY);
|
|
addflag(lastot->flags, F_STACKABLE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_NOMATCONVERT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_EARS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 1, 1, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTRESIST, DT_SONIC, NA, NULL);
|
|
|
|
addot(OT_SOGGYPAPER, "lump of soggy paper", "A useless lump of soggy paper.", MT_WETPAPER, 0.1, OC_MISC, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_SEWER, 100, RR_FREQUENT, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, '?', NA, NULL);
|
|
addflag(lastot->flags, F_NOMATCONVERT, NA, NA, NA, NULL);
|
|
|
|
addot(OT_VOMITPOOL, "pool of vomit", "A disgusting pool of regurgitated food.", MT_WATER, 1, OC_MISC, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_VILLAGE, 90, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_SEWER, 100, RR_FREQUENT, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, ',', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SLIPPERY, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DRINKABLE, B_TRUE, 0, NA, NULL);
|
|
addflag(lastot->flags, F_TAINTED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_PUDDLEWATERL, NA, NA, NULL);
|
|
|
|
addot(OT_ACIDPOOL, "pool of acid", "A pool of corrosive acid.", MT_ACID, 0, OC_MISC, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, '~', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERTTEXT, NA, NA, NA, "evaporates");
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "puddle of acid");
|
|
addflag(lastot->flags, F_OBHP, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_FEET, DT_ACID, FALLTHRU, "2d4");
|
|
addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LINKOB, OT_POT_ACID, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_PUDDLEWATERL, NA, NA, NULL);
|
|
|
|
addot(OT_ACIDPUDDLE, "puddle of acid", "A small puddle of corrosive acid.", MT_ACID, 0, OC_MISC, SZ_SMALL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, '~', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBDIETEXT, NA, NA, NA, "evaporates");
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_FEET, DT_ACID, FALLTHRU, "1d4");
|
|
addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LINKOB, OT_POT_ACID, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_PUDDLEWATER, NA, NA, NULL);
|
|
|
|
addot(OT_ACIDSPLASH, "splash of acid", "A splash corrosive acid.", MT_ACID, 0, OC_MISC, SZ_SMALL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBDIETEXT, NA, NA, NA, "evaporates");
|
|
addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_FEET, DT_ACID, FALLTHRU, "1d2");
|
|
addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LINKOB, OT_POT_ACID, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_SPLASHWATER, NA, NA, NULL);
|
|
|
|
addot(OT_SLIMEPOOL, "pool of slime", "A deep pool of foul-smelling slime.", MT_SLIME, 300, OC_TERRAIN, SZ_HUGE);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, UNI_SOLID, NA, NULL);
|
|
addflag(lastot->flags, F_STENCH, B_TRUE, 2, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DEEPWATER, DP_MAX, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONEPERCELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_PUDDLEWATERL, NA, NA, NULL);
|
|
|
|
addot(OT_SLIMEPUDDLE, "puddle of slime", "A disgusting mass of foul-smelling slime.", MT_SLIME, 20, OC_MISC, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EDIBLE, B_TRUE, 2, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_PUDDLEWATER, NA, NA, NULL);
|
|
|
|
addot(OT_PUDDLEOIL, "puddle of oil", "A slippery puddle of oil.", MT_OIL, 15, OC_MISC, SZ_SMALL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, ',', NA, NULL); // should really be dark grey
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FLAMMABLE, 5, NA, NA, "medium fire");
|
|
addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LINKOB, OT_POT_OIL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SLIPPERY, 13, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBDIETEXT, NA, NA, NA, "evaporates");
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_PUDDLEWATER, NA, NA, NULL);
|
|
|
|
// this isn't made out of water, so that it won't put out fire etc
|
|
addot(OT_SPLASHWATER, "splash of water", "A small splash of water.", MT_NOTHING, 0.5, OC_MISC, SZ_SMALL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BLUE, ',', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_SWAMP, 90, RR_FREQUENT, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
//addflag(lastot->flags, F_OBDIETEXT, NA, NA, NA, "evaporates");
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_FIRE, NA, NA, "0d1+100");
|
|
addflag(lastot->flags, F_LINKOB, OT_POT_WATER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_COSMETIC, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_MUDPOOL, "pool of mud", "A large puddle of wet mud.", MT_WATER, 60, OC_MISC, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '~', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 90, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_SWAMP, 90, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_OBDIETEXT, NA, NA, NA, "dries up");
|
|
addflag(lastot->flags, F_OBHP, 50, 50, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTIMMUNE, DT_WATER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_REDUCEMOVEMENT, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
//addflag(lastot->flags, F_WALKDAM, DT_WATER, NA, NA, "0d1+1");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_FEET, DT_WATER, FALLTHRU, "0d1+1");
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_PUDDLEWATERL, NA, NA, NULL);
|
|
|
|
addot(OT_PUDDLEWATER, "small puddle of water", "A small puddle of water.", MT_WATER, 10, OC_MISC, SZ_SMALL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BLUE, ',', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_VILLAGE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 75, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 90, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_SWAMP, 90, RR_FREQUENT, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTCONVERT, DT_COLD, NA, NA, "sheet of ice");
|
|
addflag(lastot->flags, F_DTCONVERT, DT_FIRE, NA, NA, "puff of steam");
|
|
addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NUMCONVERT, 5, OT_PUDDLEWATERL, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LINKOB, OT_POT_WATER, NA, NA, NULL);
|
|
//addflag(lastot->flags, F_WALKDAM, DT_WATER, NA, NA, "0d1+1");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_FEET, DT_WATER, FALLTHRU, "0d1+1");
|
|
addflag(lastot->flags, F_SLIPPERY, 1, NA, NA, NULL);
|
|
|
|
addot(OT_PUDDLEWATERL, "large puddle of water", "A large pool of water.", MT_WATER, 20, OC_MISC, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BLUE, '~', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_VILLAGE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 85, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_SWAMP, 90, RR_FREQUENT, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTCONVERT, DT_COLD, NA, NA, "sheet of ice");
|
|
addflag(lastot->flags, F_DTCONVERT, DT_FIRE, NA, NA, "cloud of steam");
|
|
addflag(lastot->flags, F_DRINKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LINKOB, OT_POT_WATER, NA, NA, NULL);
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_FEET, DT_WATER, FALLTHRU, "0d1+2");
|
|
|
|
addot(OT_BLOODSTAIN, "blood stain", "A dried stain of blood.", MT_BLOOD, 0, OC_MISC, SZ_TINY);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_RED, ',', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 60, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 60, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_COSMETIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_SPLASHWATER, NA, NA, NULL);
|
|
|
|
addot(OT_BLOODCSPLASH, "splash of cockatrice blood", "A small pool of cockatrice blood.", MT_BLOOD, 0, OC_MISC, SZ_SMALL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 50, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SLIPPERY, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBDIETEXT, NA, NA, NA, "evaporates");
|
|
addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DRINKABLE, B_TRUE, 0, NA, NULL);
|
|
addflag(lastot->flags, F_LINKOB, OT_POT_BLOODC, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_SPLASHWATER, NA, NA, NULL);
|
|
|
|
addot(OT_BLOODSPLASH, "splash of blood", "A small pool of blood.", MT_BLOOD, 0, OC_MISC, SZ_SMALL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, ',', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_VILLAGE, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 75, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SLIPPERY, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "blood stain");
|
|
//addflag(lastot->flags, F_DIECONVERTTEXT, NA, NA, NA, "dries up");
|
|
//addflag(lastot->flags, F_DIECONVERTTEXTPL, NA, NA, NA, "dry up");
|
|
addflag(lastot->flags, F_NODIECONVERTTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 15, 15, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NUMCONVERT, 5, OT_BLOODPOOL, NA, NULL);
|
|
addflag(lastot->flags, F_COSMETIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_SPLASHWATER, NA, NA, NULL);
|
|
|
|
addot(OT_BLOODPOOL, "pool of blood", "A large pool of blood.", MT_BLOOD, 0, OC_MISC, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, '~', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 65, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 65, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SLIPPERY, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "blood stain");
|
|
addflag(lastot->flags, F_DIECONVERTTEXT, NA, NA, NA, "dries up");
|
|
addflag(lastot->flags, F_DIECONVERTTEXTPL, NA, NA, NA, "dry up");
|
|
addflag(lastot->flags, F_OBHP, 50, 50, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DRINKABLE, B_TRUE, 0, NA, NULL);
|
|
addflag(lastot->flags, F_LINKOB, OT_POT_BLOOD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PURIFIESTO, OT_PUDDLEWATERL, NA, NA, NULL);
|
|
|
|
addot(OT_SIGN, "sign", "A marker with something written on it.", MT_WOOD, 25, OC_MISC, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '|', NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 6, 6, NA, NULL);
|
|
|
|
|
|
// furniture
|
|
addot(OT_ARMOURRACK, "armour rack", "An upright metal rack made for armour storage.", MT_METAL, 150, OC_FURNITURE, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '\\', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOB, 80, NA, NA, "random armour");
|
|
addflag(lastot->flags, F_STARTOB, 60, NA, NA, "random armour");
|
|
addflag(lastot->flags, F_STARTOB, 50, NA, NA, "good armour");
|
|
addflag(lastot->flags, F_STARTOB, 50, NA, NA, "great armour");
|
|
|
|
addot(OT_BED, "wooden bed", "Standard sleep-enhancing apparatus.", MT_WOOD, 150, OC_FURNITURE, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '_', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSREST, 15, 1, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_DOORWOOD, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_WOODENTABLE, VT_OB, NA, NULL);
|
|
|
|
addot(OT_BOOKSHELF, "bookshelf", "A set of wooden shelves, sized for book storage.", MT_WOOD, 150, OC_FURNITURE, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '\\', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOB, 90, NA, NA, "random scroll");
|
|
addflag(lastot->flags, F_STARTOB, 80, NA, NA, "random scroll");
|
|
addflag(lastot->flags, F_STARTOB, 70, NA, NA, "random scroll");
|
|
addflag(lastot->flags, F_STARTOB, 60, NA, NA, "random scroll");
|
|
addflag(lastot->flags, F_STARTOB, 60, NA, NA, "random book");
|
|
addflag(lastot->flags, F_STARTOB, 50, NA, NA, "random book");
|
|
|
|
addot(OT_CANDELABRUM, "candelabrum", "A large (and heavy) decorative candle, about human height.", MT_METAL, 60, OC_FURNITURE, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, '\\', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 85, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 85, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERONOFF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACTIVATEPREFIX, NA, NA, NA, "lit");
|
|
addflag(lastot->flags, F_ACTIVATECONFER, F_PRODUCESLIGHT, 8, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 8, NA, IFACTIVE, NULL);
|
|
addflag(lastot->flags, F_REFILLWITH, OT_POT_OIL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_LIGHTSOURCE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CHARGELOWMSG, B_TRUE, NA, NA, "flickers");
|
|
addflag(lastot->flags, F_CHARGEOUTMSG, B_TRUE, NA, NA, "goes out");
|
|
|
|
addot(OT_MOSSMOON, "patch of moon moss", "A patch of faintly glowing white moss.", MT_PLANT, 0.1, OC_FLORA, SZ_MINI);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, ',', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 2, NA, NA, NULL);
|
|
addot(OT_MOSSSUN, "patch of sun moss", "A patch of brightly glowing yellow moss.", MT_PLANT, 0.1, OC_FLORA, SZ_MINI);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, ',', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 4, NA, NA, NULL);
|
|
|
|
addot(OT_COFFIN, "coffin", "A wooden coffin, made for holding the dead.", MT_WOOD, 100, OC_FURNITURE, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '|', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOB, 80, NA, NA, "corpse");
|
|
addflag(lastot->flags, F_STARTOB, 70, NA, NA, "3-4 piles of ash");
|
|
addflag(lastot->flags, F_STARTOB, 70, NA, NA, "5-10 bones");
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
|
|
addot(OT_FIREPLACE, "brazier", "A heavy iron bowl filled with fire.", MT_METAL, 200, OC_FURNITURE, SZ_LARGE);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_RED, '\\', NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 6, NA, IFACTIVE, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONFIRE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ONLYINROOM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 1, NA, "crackling flames.");
|
|
addflag(lastot->flags, F_GROWSTO, OT_FIRELARGE, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, NA, VT_OB, NA, "red-hot helmet");
|
|
|
|
addot(OT_WEAPONRACK, "weapon rack", "A large matel frame, made to store weapons.", MT_METAL, 150, OC_FURNITURE, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 80, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '\\', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOB, 80, NA, NA, "random weapon");
|
|
addflag(lastot->flags, F_STARTOB, 60, NA, NA, "random weapon");
|
|
addflag(lastot->flags, F_STARTOB, 50, NA, NA, "good weapon");
|
|
addflag(lastot->flags, F_STARTOB, 50, NA, NA, "great weapon");
|
|
|
|
addot(OT_WOODENBARREL, "wooden barrel", "A solid wooden barrel.", MT_WOOD, 40, OC_FURNITURE, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, '(', NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_LARGE, NA, NULL);
|
|
addflag(lastot->flags, F_CRUSHABLE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PUSHABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 12, 12, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CONTAINER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_POTION, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_POTION, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_STARTOBCLASS, 50, OC_FOOD, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_DOORWOOD, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_STICK, VT_OB, NA, NULL);
|
|
|
|
addot(OT_WOODENTABLE, "wooden table", "A waist-height wooden table.", MT_WOOD, 25, OC_FURNITURE, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, '\\', NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_HUMAN, NA, NULL);
|
|
addflag(lastot->flags, F_CRUSHABLE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PUSHABLE, B_TRUE, NA, NA, NULL);
|
|
//addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_BASH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_CHOP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_DOORWOOD, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_WOODENSTOOL, VT_OB, NA, NULL);
|
|
|
|
addot(OT_WOODENSTOOL, "wooden footstool", "A small, wooden footstool.", MT_WOOD, 5, OC_FURNITURE, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 83, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GLYPH, NA, '\\', NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 4, 4, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_CHOP, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_WOODENTABLE, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_STICK, VT_OB, NA, NULL);
|
|
|
|
// trail objects
|
|
addot(OT_FOOTPRINT, "footprints", "Footprints which show the passage of some kind of creature.", MT_NOTHING, 0, OC_MISC, SZ_MINI);
|
|
addflag(lastot->flags, F_NO_A, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NO_PLURAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_INVULNERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOGLYPH, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
// NOTE: must add F_TRAIL when creating this object.
|
|
addot(OT_SCENT, "scent", "The scent of a creature, only perceivable to those with an enhanced sense of smell.", MT_NOTHING, 0, OC_MISC, SZ_MINI);
|
|
addflag(lastot->flags, F_NO_A, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NO_PLURAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_INVULNERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOGLYPH, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOPICKUP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, B_TRUE, NA, NA, NULL);
|
|
// NOTE: must add F_TRAIL when creating this object.
|
|
|
|
// effects
|
|
addot(OT_DUSTCLOUD, "large dust cloud", "A very thick cloud of dust particles.", MT_GAS, 0, OC_EFFECT, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, UNI_SHADELIGHT, NA, NULL);
|
|
addflag(lastot->flags, F_NODIECONVERTTEXT, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, 1, NA, NA, "small dust cloud");
|
|
addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
addflag(lastot->flags, F_CAUSESCOUGH, 18, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_STONE, VT_OB, NA, NULL);
|
|
|
|
addot(OT_DUSTPUFF, "small dust cloud", "A small cloud of dust particles.", MT_GAS, 0, OC_EFFECT, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, UNI_SHADELIGHT, NA, NULL);
|
|
addflag(lastot->flags, F_OBDIETEXT, B_TRUE, NA, NA, "disperses");
|
|
addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_CAUSESCOUGH, 12, NA, NA, NULL);
|
|
|
|
addot(OT_FIRELARGE, "large fire", "A large, roaring inferno.", MT_FIRE, 0, OC_EFFECT, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, C_ORANGE, '}', NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERTTEXT, NA, NA, NA, "dies down a little");
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "medium fire");
|
|
addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_WALKDAM,DT_FIRE, NA, NA, "4d6");
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 3, NA, "roaring flames.");
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_FIREMED, VT_OB, NA, NULL);
|
|
addot(OT_FIREMED, "medium fire", "A medium-sized roaring fire.", MT_FIRE, 0, OC_EFFECT, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_GLYPH, C_RED, '}', NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, NA, NA, NA, "small fire");
|
|
addflag(lastot->flags, F_DIECONVERTTEXT, NA, NA, NA, "dies down a little");
|
|
addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_WALKDAM, DT_FIRE, NA, NA, "2d6");
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 7, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 2, NA, "roaring flames.");
|
|
addflag(lastot->flags, F_GROWSTO, OT_FIRELARGE, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_FIRESMALL, VT_OB, NA, NULL);
|
|
addot(OT_FIRESMALL, "small fire", "A small blaze.", MT_FIRE, 0, OC_EFFECT, SZ_SMALL);
|
|
addflag(lastot->flags, F_GLYPH, C_RED, '}', NA, NULL);
|
|
addflag(lastot->flags, F_OBDIETEXT, B_TRUE, NA, NA, "goes out");
|
|
addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_WALKDAM, DT_FIRE, NA, NA, "1d6");
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
addflag(lastot->flags, F_MAKESNOISE, 33, 1, NA, "crackling flames.");
|
|
addflag(lastot->flags, F_GROWSTO, OT_FIREMED, VT_OB, NA, NULL);
|
|
|
|
addot(OT_STEAMCLOUD, "cloud of steam", "A thick cloud of scalding steam.", MT_GAS, 0, OC_EFFECT, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, UNI_SHADEMED, NA, NULL);
|
|
addflag(lastot->flags, F_NODIECONVERTTEXT, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, 1, NA, NA, "puff of steam");
|
|
addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_WALKDAM, DT_HEAT, NA, NA, "1d4");
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
addot(OT_STEAMPUFF, "puff of steam", "A small puff of scalding steam.", MT_GAS, 0, OC_EFFECT, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_GLYPH, C_WHITE, UNI_SHADELIGHT, NA, NULL);
|
|
addflag(lastot->flags, F_OBDIETEXT, B_TRUE, NA, NA, "disperses");
|
|
addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_WALKDAM, DT_HEAT, NA, NA, "1d4");
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
addot(OT_SLEETSTORM, "storm of sleet", "An intense storm of sleet. Hampers movement and deals minor cold damage.", MT_GAS, 0, OC_EFFECT, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_CYAN, UNI_SHADEMED, NA, NULL);
|
|
addflag(lastot->flags, F_NODIECONVERTTEXT, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_REDUCEMOVEMENT, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
addflag(lastot->flags, F_WALKDAM, DT_COLD, NA, NA, "1d2");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_HEAD, DT_WATER, NA, "1d2");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_SHOULDERS, DT_WATER, NA, "1d2");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_BODY, DT_WATER, NA, "1d2");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_HANDS, DT_WATER, NA, "1d2");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_LEGS, DT_WATER, NA, "1d2");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_FEET, DT_WATER, NA, "1d2");
|
|
|
|
addot(OT_MIST, "thick mist", "A thick cloud of obscuring mist.", MT_GAS, 0, OC_EFFECT, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, NA, UNI_SHADELIGHT, NA, NULL);
|
|
addflag(lastot->flags, F_OBDIETEXT, B_TRUE, NA, NA, "clears");
|
|
addflag(lastot->flags, F_OBHP, 4, 4, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
|
|
addot(OT_SMOKECLOUD, "cloud of smoke", "A thick cloud of black smoke.", MT_GAS, 0, OC_EFFECT, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, UNI_SHADEMED, NA, NULL);
|
|
addflag(lastot->flags, F_NODIECONVERTTEXT, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERT, 1, NA, NA, "puff of smoke");
|
|
addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
addflag(lastot->flags, F_CAUSESCOUGH, 25, NA, NA, NULL);
|
|
|
|
addot(OT_SMOKEPUFF, "puff of smoke", "A small puff of black smoke.", MT_GAS, 0, OC_EFFECT, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, UNI_SHADELIGHT, NA, NULL);
|
|
addflag(lastot->flags, F_OBDIETEXT, B_TRUE, NA, NA, "disperses");
|
|
addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, ".");
|
|
addflag(lastot->flags, F_CAUSESCOUGH, 16, NA, NA, NULL);
|
|
|
|
addot(OT_POISONCLOUD, "cloud of poison gas", "A thick cloud of poisonous gas.", MT_GAS, 0, OC_EFFECT, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, UNI_SHADEMED, NA, NULL);
|
|
addflag(lastot->flags, F_DIECONVERTTEXT, NA, NA, NA, "thins out a little");
|
|
addflag(lastot->flags, F_DIECONVERT, 1, NA, NA, "puff of gas");
|
|
addflag(lastot->flags, F_OBHP, 3, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_WALKDAM, DT_POISONGAS, NA, NA, "1d4");
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
addflag(lastot->flags, F_BLOCKSVIEW, 2, NA, NA, NULL);
|
|
|
|
addot(OT_POISONPUFF, "puff of poison gas", "A small puff of poisonous gas.", MT_GAS, 0, OC_EFFECT, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, UNI_SHADELIGHT, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 4, 4, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_WALKDAM, DT_POISONGAS, NA, NA, "1d2");
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
addot(OT_METHANEPUFF, "puff of methane gas", "A small puff of foul-smelling gas.", MT_GAS, 0, OC_EFFECT, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, UNI_SHADELIGHT, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, "disperses");
|
|
addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STENCH, B_TRUE, 1, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
addot(OT_HAILSTORM, "hail storm", "An intense storm of damaging hail.", MT_GAS, 0, OC_EFFECT, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_BOLDBLUE, UNI_SHADEMED, NA, NULL);
|
|
addflag(lastot->flags, F_NODIECONVERTTEXT, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
addflag(lastot->flags, F_WALKDAM, DT_COLD, NA, NA, "2d3");
|
|
addflag(lastot->flags, F_WALKDAM, DT_PROJECTILE, NA, NA, "2d3");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_HEAD, DT_WATER, NA, "1d2");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_SHOULDERS, DT_WATER, NA, "1d2");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_BODY, DT_WATER, NA, "1d2");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_HANDS, DT_WATER, NA, "1d2");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_LEGS, DT_WATER, NA, "1d2");
|
|
addflag(lastot->flags, F_WALKDAMBP, BP_FEET, DT_WATER, NA, "1d2");
|
|
|
|
addot(OT_HURRICANE, "hurricane", "A massive column of devestating air currents.", MT_GAS, 0, OC_EFFECT, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, UNI_SPIRAL, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 12, 12, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_KNOCKAWAY, 4, 40, 12, "12d3");
|
|
addflag(lastot->flags, F_OBMOVESRANDOMLY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
addot(OT_ICEWALL, "wall of ice", "A wall made of solid ice.", MT_ICE, 0, OC_EFFECT, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_CYAN, '#', NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 100, 100, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
addot(OT_MAGICBARRIER, "magical barrier", "A glowing, impassable barrier of magical energy.", MT_MAGIC, 0, OC_EFFECT, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_YELLOW, UNI_SHADEDARK, NA, NULL);
|
|
addflag(lastot->flags, F_IMPASSABLE, SZ_MIN, SZ_MAX, NA, NULL);
|
|
addflag(lastot->flags, F_REALLYIMPASSABLE, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSVIEW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BLOCKSLOF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBDIETEXT, B_TRUE, NA, NA, "vanishes");
|
|
addflag(lastot->flags, F_PRODUCESLIGHT, 2, NA, NA, NULL);
|
|
|
|
addot(OT_TORNADO, "tornado", "A large column of incredibly fast spinning air.", MT_GAS, 0, OC_EFFECT, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, UNI_SPIRAL, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 8, 8, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_KNOCKAWAY, 2, 35, 10, "8d3");
|
|
addflag(lastot->flags, F_OBMOVESRANDOMLY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
addot(OT_VIBCLOUD, "vibrating cloud", "A cloud of unstable molecules.", MT_GAS, 0, OC_EFFECT, SZ_LARGE);
|
|
addflag(lastot->flags, F_GLYPH, C_ORANGE, UNI_SHADEMED, NA, NULL);
|
|
addflag(lastot->flags, F_NODIECONVERTTEXT, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 4, 4, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EXPLODEONDEATH, NA, 2, NA, "8d2");
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
addot(OT_VINE, "entangling vine", "A living vine which grasps nearby creature", MT_SILK, 0.1, OC_EFFECT, SZ_HUMAN);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 82, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 90, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_SWAMP, 90, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREEN, '^', NA, NULL);
|
|
addflag(lastot->flags, F_RESTRICTMOVEMENT, 30, B_TRUE, B_TRUE, NULL);// the value here will be filled in by the spell.
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_ACID, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
addot(OT_WEB, "web", "A huge, sticky spider web.", MT_SILK, 0.1, OC_EFFECT, SZ_HUMAN);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, '^', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 86, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 86, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 88, NA, NULL);
|
|
addflag(lastot->flags, F_RESTRICTMOVEMENT, 25, B_TRUE, B_TRUE, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DTVULN, DT_ACID, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
addot(OT_WHIRLWIND, "whirlwind", "A large column of very rapidly spinning air.", MT_GAS, 0, OC_EFFECT, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, C_GREY, UNI_SPIRAL, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 4, 4, NA, NULL);
|
|
addflag(lastot->flags, F_OBHPDRAIN, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_KNOCKAWAY, 1, 30, 8, "2d6");
|
|
addflag(lastot->flags, F_THEREISHERE, B_TRUE, NA, NA, "!");
|
|
|
|
// armour objects
|
|
// armour - multipart
|
|
addot(OT_WETSUIT, "wetsuit", "Full-body rubber suit which provides good insulation from cold.", MT_RUBBER, 6, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESONMULTI, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ARMOURPENALTY, 5, 5, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTRESIST, DT_COLD, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 80, NA, NA, NULL);
|
|
|
|
// armour - body
|
|
addot(OT_CHEFJACKET, "set of chef whites", "A large double-breasted white jacket. Its thick cotton cloth is resistant to heat.", MT_CLOTH, 2, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 0, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_DTRESIST, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTRESIST, DT_FIRE, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 33, NA, NA, NULL);
|
|
killflagsofid(lastot->flags, F_FLAMMABLE);
|
|
killflagsofid(lastot->flags, F_DTVULN);
|
|
|
|
addot(OT_COTTONSHIRT, "cotton shirt", "A comfortable white cotton shirt.", MT_CLOTH, 0.7, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 0, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 33, NA, NA, NULL);
|
|
|
|
addot(OT_ARMOURDEMON, "demonskin vest", "Body armour created by flaying the flesh from a living demon, it retains its innate immunity to fire.", MT_FLESH, 7, OC_ARMOUR, SZ_MEDIUM);
|
|
killflagsofid(lastot->flags, F_FLAMMABLE);
|
|
killflagsofid(lastot->flags, F_DTVULN);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTIMMUNE, DT_FIRE, NA, NULL);
|
|
addflag(lastot->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 40, 40, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STARTBLESSED, B_CURSED, NA, NA, NULL);
|
|
addot(OT_ARMOURLEATHER, "leather armour", "Body armour created from soft leather.", MT_LEATHER, 10, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ARMOURPENALTY, 10, 10, NULL);
|
|
addflag(lastot->flags, F_OBHP, 40, 40, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 95, NA, NA, NULL);
|
|
addot(OT_ARMOURRING, "suit of ring mail", "Body armour formed by a series of metallic rings sewn to a leather foundation.", MT_METAL, 15, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ARMOURPENALTY, 20, 20, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 35, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 60, 60, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addot(OT_ARMOURSCALE, "suit of scale armour", "Body armour consisting of many small scales attached to leather.", MT_METAL, 20, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ARMOURPENALTY, 30, 30, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 45, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 70, 70, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addot(OT_ARMOURCHAIN, "suit of chainmail", "Heavy body armour consisting of tightly meshed metal rings.", MT_METAL, 25, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 15, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ARMOURPENALTY, 40, 40, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 45, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 90, 90, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addot(OT_ARMOURSPLINT, "suit of splint mail", "Heavy armour, consisting of strips of metal attached to a leather backing.", MT_METAL, 35, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 20, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ARMOURPENALTY, 50, 50, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 55, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 100, 100, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addot(OT_ARMOURPLATE, "suit of plate mail", "Heavy armour with embedded metal plates.", MT_METAL, 40, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 90, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 25, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ARMOURPENALTY, 60, 60, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 65, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 120, 120, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
|
|
addot(OT_FLAKJACKET, "flak jacket", "Heavy metal body armour. Designed to stop a bullet, but ineffective against melee attacks.", MT_METAL, 30, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ARMOURPENALTY, 10, 10, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 50, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addot(OT_OVERALLS, "pair of overalls", "Well-made, brightly coloured workman overalls.", MT_CLOTH, 1, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 35, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 85, NA, NA, NULL);
|
|
addot(OT_SILKSHIRT, "silk shirt", "A lightweight, comfortable white silk shirt.", MT_SILK, 0.5, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 0, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 50, NA, NA, NULL);
|
|
addot(OT_ROBE, "robe", "A plain robe.", MT_CLOTH, 4, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 70, NA, NA, NULL);
|
|
addot(OT_VELVETROBE, "velvet robe", "A luxurious velvet robe.", MT_CLOTH, 4, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 90, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BRANDCHANCE, 20, NA, NA, NULL);
|
|
|
|
|
|
|
|
// armour - shoulders
|
|
addot(OT_CLOAK, "leather cloak", "A standard leather cloak.", MT_LEATHER, 4, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_WATERPROOF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSREST, 2, NA, NA, NULL);
|
|
addot(OT_CLOAKFUR, "fur cloak", "A warm and lightweight fur cloak, great for winter camping trips.", MT_FLESH, 3, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 0, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTRESIST, DT_COLD, NA, NULL);
|
|
addflag(lastot->flags, F_HELPSREST, 5, NA, NA, NULL);
|
|
addot(OT_APRON, "apron", "A sturdy rubber apron, designed to protect against stains.", MT_RUBBER, 2, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_SHOULDERS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_WATERPROOF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 80, NA, NA, NULL);
|
|
// armour - waist
|
|
addot(OT_BELTLEATHER, "leather belt", "A plain leather belt.", MT_LEATHER, 0.2, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_WAIST, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 15, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
// armour - legs
|
|
addot(OT_CLOTHTROUSERS, "pair of cloth trousers", "A rough pair of cloth trousers.", MT_CLOTH, 2, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 15, 15, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 60, NA, NA, NULL);
|
|
addot(OT_RIDINGTROUSERS, "pair of riding trousers", "A tight pair of durable leather trousers.", MT_LEATHER, 2, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 75, NA, NA, NULL);
|
|
addot(OT_COMBATPANTS, "pair of combat pants", "An lightly-armoured pair of camoflauged trousers.", MT_CLOTH, 2, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 50, 50, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 90, NA, NA, NULL);
|
|
addot(OT_GREAVES, "set of greaves", "A set of heavy metal greaves.", MT_METAL, 4, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_LEGS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 60, 60, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ARMOURPENALTY, 15, 15, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 45, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
// armour - feet
|
|
addot(OT_SANDALS, "pair of sandals", "Comfortable pair of open leather sandals.", MT_LEATHER, 1, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_FEET, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 0, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 30, NA, NA, NULL);
|
|
addot(OT_SHOESLEATHER, "pair of leather shoes", "Cheap and rather uncomfortable leather shoes.", MT_LEATHER, 2, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_FEET, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 15, 15, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 35, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 85, NA, NA, NULL);
|
|
addot(OT_BOOTSRUBBER, "pair of rubber boots", "A waterproof (but somewhat cumbersome) pair of rubber boots.", MT_RUBBER, 6, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_FEET, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ARMOURPENALTY, 0, 5, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTRESIST, DT_ELECTRIC, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 95, NA, NA, NULL);
|
|
addot(OT_BOOTSSPIKED, "pair of spiked boots", "A plain pair of leather boots with spikes on the bottom.", MT_LEATHER, 3, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_FEET, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_STABILITY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 35, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 90, NA, NA, NULL);
|
|
addot(OT_BOOTSLEATHER, "pair of leather boots", "A stout pair of leather boots.", MT_LEATHER, 4, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_FEET, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 35, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 90, NA, NA, NULL);
|
|
addot(OT_BOOTSMETAL, "pair of metal boots", "A strong pair of metal boots.", MT_METAL, 5, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_FEET, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 40, 40, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 35, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
// armour - gloves
|
|
addot(OT_GLOVESCLOTH, "pair of cloth gloves", "A pair of soft cloth gloves.", MT_CLOTH, 0.15, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 0, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 70, NA, NA, NULL);
|
|
addot(OT_GLOVESLEATHER, "pair of leather gloves", "A pair of coarse leather gloves.", MT_LEATHER, 0.25, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 90, NA, NA, NULL);
|
|
addot(OT_GAUNTLETS, "pair of gauntlets", "A durable pair of metal gauntlets.", MT_METAL, 2, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ARMOURPENALTY, 10, 5, NULL);
|
|
addflag(lastot->flags, F_OBHP, 40, 40, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 15, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
// armour - head
|
|
addot(OT_SUNHAT, "sun hat", "Wide-brimmed hat made for working in the sun.", MT_CLOTH, 1, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addot(OT_PIRATEHAT, "tricorne", "A three cornered hat with a skull and crossbones emblem.", MT_CLOTH, 1, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_SCARY, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addot(OT_BALACLAVA, "balaclava", "A form of cloth headgear that covers the whole head, exposing only the eyes.", MT_CLOTH, 1, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 0, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 10, 10, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ANONYMOUS, NA, NA, NULL);
|
|
addot(OT_CAP, "cap", "Close-fitting headwear with a short shade visor at the front.", MT_CLOTH, 1, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addot(OT_CHEFHAT, "toque", "A tall white hat with no brim. Commonly worn by professional cooks.", MT_CLOTH, 1, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addot(OT_GASMASK, "gas mask", "A full face mask which protects the wearer from toxic gasses.", MT_RUBBER, 3.5, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACYMOD, -10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTIMMUNE, DT_POISONGAS, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_VISRANGEMOD, -2, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 65, NA, NA, NULL);
|
|
addot(OT_HELM, "helmet", "A plain metal helmet.", MT_METAL, 2, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 40, 40, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addot(OT_HELMFOOTBALL, "football helmet", "A metal helmet with a grill in front of the face.", MT_METAL, 1, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MULTISIZE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACYMOD, -10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 40, 40, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_VISRANGEMOD, -1, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addot(OT_GOLDCROWN, "golden crown", "A heavy gold crown, encrusted with jewels.", MT_GOLD, 5, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 25, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 33, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BRANDCHANCE, 30, NA, NA, NULL);
|
|
addot(OT_HELMBONE, "bone helmet", "Scary-looking helmet made from the bones of an animal (?).", MT_BONE, 1, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_SCARY, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addot(OT_POINTYHAT, "wizard hat", "A foot-long brimmed conical hat, inscribed with strange symbols.", MT_CLOTH, 1, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 15, 15, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "pointy hat");
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_BRANDCHANCE, 15, NA, NA, NULL);
|
|
|
|
// armour - ears
|
|
addot(OT_EARPLUGS, "set of earplugs", "A pair of cloth plugs designed to give the wearer a peaceful night's sleep. ", MT_CLOTH, 0.01, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_EARS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DEAF, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
|
|
// armour - eyes
|
|
addot(OT_SAFETYGLASSES, "pair of safety goggles", "A plastic eyemask designed for protection.", MT_PLASTIC, 0.01, OC_ARMOUR, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_EYES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 0, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
killflagsofid(lastot->flags, F_ENCHANTABLE);
|
|
addot(OT_SPECTACLES, "pair of spectacles", "Eyewear with special lenses to enhance your vision.", MT_GLASS, 0.01, OC_ARMOUR, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_EYES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 0, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 15, 15, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_VISRANGEMOD, 1, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
killflagsofid(lastot->flags, F_ENCHANTABLE);
|
|
addot(OT_SUNGLASSES, "pair of sunglasses", "Tinted eyewear to protect against sunlight.", MT_GLASS, 0.01, OC_ARMOUR, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_EYES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 0, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 15, 15, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_VISRANGEMOD, -1, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_NIGHTVISRANGEMOD, -1, NA, NULL);
|
|
addflag(lastot->flags, F_TINTED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
killflagsofid(lastot->flags, F_ENCHANTABLE);
|
|
addot(OT_EYEPATCH, "eyepatch", "A small patch of black material which covers one eye. Scary looking.", MT_CLOTH, 0.01, OC_ARMOUR, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_EYES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SCARY, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_VISRANGEMOD, -2, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 50, NA, NA, NULL);
|
|
killflagsofid(lastot->flags, F_ENCHANTABLE);
|
|
|
|
// armour - shields
|
|
addot(OT_BUCKLER, "buckler", "A small, unobtrusive wooden shield.", MT_WOOD, 3.00, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_SHIELD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_ALL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_SHIELDPENALTY, 5, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 20, 20, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_WOODENTABLE, VT_OB, NA, NULL);
|
|
// similar to a buckler, but repairable, lighter, and less durable
|
|
addot(OT_SHIELDHIDE, "hide shield", "A small shield constructed out of animal skin.", MT_LEATHER, 2.00, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_SHIELD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_ALL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_SHIELDPENALTY, 5, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 18, 18, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_CORPSE, VT_OB, NA, NULL);
|
|
addot(OT_SHIELD, "shield", "A medium-sized metal shield.", MT_METAL, 4.00, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_SHIELD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_ALL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_SHIELDPENALTY, 15, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 30, 30, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_SHIELDLARGE, VT_OB, NA, NULL);
|
|
addot(OT_SHIELDLARGE, "large shield", "A large (if somewhat cumbersome) shield.", MT_METAL, 6.00, OC_ARMOUR, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_SHIELD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_SHIELDPENALTY, 20, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 40, 40, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GROWSTO, OT_SHIELDTOWER, VT_OB, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_SHIELD, VT_OB, NA, NULL);
|
|
addot(OT_SHIELDTOWER, "tower shield", "An enormous but very cumbersome shield.", MT_METAL, 11.00, OC_ARMOUR, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_SHIELD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_ALL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_SHIELDPENALTY, 30, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 50, 50, NA, NULL);
|
|
addflag(lastot->flags, F_CRITPROTECTION, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SHRINKSTO, OT_SHIELDLARGE, VT_OB, NA, NULL);
|
|
|
|
// amulets
|
|
addot(OT_AMU_ACROBAT, "amulet of acrobatics", "Allows its wearer to flip or tumple like a master acrobat.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_JUMP, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_TUMBLE, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 600, NA, NA, NULL);
|
|
addot(OT_AMU_ANGER, "amulet of anger", "Allows its wearer to enter a state of bezerk rage at will.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_RAGE, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 600, NA, NA, NULL);
|
|
addot(OT_AMU_BLOOD, "amulet of bloodthirst", "Causes its wearer's body to heal itself by absorbing nearby blood. As a result, the wearer will also never bleed.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 1400, NA, NA, NULL);
|
|
addot(OT_AMU_CHEF, "chef's amulet", "Greatly lowers its wearers' metabolism.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_SLOWMETAB, 3, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_AMU_CHOKING, "amulet of choking", "Once worn, this evil amulet will immediately begin to shrink, choking the life from its wearer!", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 900, NA, NA, NULL);
|
|
addot(OT_AMU_ESCAPE, "amulet of escape", "Grants its wearer the ability to teleport short distances.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_S_BLINK, NA, "pw:6;");
|
|
addflag(lastot->flags, F_VALUE, 600, NA, NA, NULL);
|
|
addot(OT_AMU_EVOLUTION, "amulet of evolution", "These rare amulets grant the wearer the ability to almost instantly evolve their body shape in response to danger.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
// no autoid
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 1400, NA, NA, NULL);
|
|
addot(OT_AMU_FALLING, "amulet of feather fall", "Limits the effects of gravity on its wearer, rendering them immune to fall damage.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTIMMUNE, DT_FALL, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_AMU_FLIGHT, "amulet of flight", "Grants its wearer the ability to fly.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_S_FLIGHT, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 900, NA, NA, NULL);
|
|
addot(OT_AMU_LISTEN, "amulet of amplification", "Greatly enhances the wearer's sense of hearing.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTVULN, DT_SONIC, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_AMU_PARANOIA, "amulet of paranoia", "Makes the caster periodically hear fake noises nearby. Or are they real....?", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
// no autoid!
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_PARANOIA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 900, NA, NA, NULL);
|
|
addot(OT_AMU_PIETY, "amulet of piety", "Makes it easier for the wearer to please their chosen deity.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
// no autoid!
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 600, NA, NA, NULL);
|
|
|
|
addot(OT_AMU_SLEEP, "amulet of peaceful slumber", "Blocks out all sound while the wearer sleeps.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
// no autoid!
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_AMU_SOULS, "amulet of soul feasting", "Allows the caster to consume souls of the recently dead.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
// no autoid!
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CONSUMESOULS, 25, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 900, NA, NA, NULL);
|
|
addot(OT_AMU_SPELLBOOST, "archmage's amulet", "Greatly increases the power of the wearer's spells.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, "");
|
|
addflag(lastot->flags, F_VALUE, 900, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_MAGICBOOST, 5, NA, NULL);
|
|
addot(OT_AMU_SWIMMING, "amulet of graceful swimming", "These amulets were created by the naiads, in an attempt to prolong the life of their thralls. Upon contact with deep water, its wearer will instantly transform into a white swan.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 900, NA, NA, NULL);
|
|
addot(OT_AMU_THIEF, "thief's amulet", "Crafted by a master thief, it allows its wearer the uncanny ability to pick almost any lock.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_PICKLOCK, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_AMU_TRAVEL, "amulet of the traveller", "Until its wearer removes this powerful amulet they will find themselves transported elsewhere.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_STARTBLESSED, B_CURSED, 70, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 900, NA, NA, NULL);
|
|
addot(OT_AMU_VICTIM, "amulet of victimisation", "Causes all creatures who view the wearer to become hostile and agressive.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
// no autoid!
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 900, NA, NA, NULL);
|
|
addot(OT_AMU_VSESP, "amulet versus esp", "Protects its wearer from all psionic attacks.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_MINDSHIELD, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 600, NA, NA, NULL);
|
|
addot(OT_AMU_VSMAGIC, "amulet versus magic", "Confers a moderate level of magic resistance upon its wearer.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_RESISTMAG, 66, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 600, NA, NA, NULL);
|
|
addot(OT_AMU_VSPOISON, "amulet versus poison", "Protects its wearer from all forms of poison.", MT_METAL, 0.3, OC_AMULET, SZ_TINY);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTIMMUNE, DT_POISON, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 600, NA, NA, NULL);
|
|
|
|
|
|
// rings
|
|
addot(OT_RING_EDUCATION, "ring of education", "Boosts earned XP and Skill points.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_LEARNBOOST, 35, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_RING_ENDURANCE, "ring of endurance", "Boosts stamina regeneration.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_STAMREGEN, NA, NA, "0.5");
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_RING_GREED, "ring of greed", "Much sought after by treasure hunters, this ring detects the presence of any nearby objects.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DETECTOBS, 10, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 250, NA, NA, NULL);
|
|
addot(OT_RING_SIGHT, "ring of sight", "Allows the caster to see the invisible, and in the dark.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_SEEINVIS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_SEEINDARK, 3, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_VISRANGEMOD, 1, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 350, NA, NA, NULL);
|
|
addot(OT_RING_MANA, "ring of mana", "Increases the wearer's MP pool.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_EXTRAMP, 10, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_RING_LUCK, "ring of luck", "Makes the wearer more lucky.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_EXTRALUCK, 5, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_RING_PROTFIRE, "ring of fire immunity", "Grants the caster complete immunity to fire.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTIMMUNE, DT_FIRE, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 350, NA, NA, NULL);
|
|
addot(OT_RING_PROTCOLD, "ring of cold immunity", "Grants the caster complete immunity to cold.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTIMMUNE, DT_COLD, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 350, NA, NA, NULL);
|
|
|
|
addot(OT_RING_STR, "ring of strength", "Increases the wearer's strength.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ATTRMOD, A_STR, 5, NULL); // '5' is randomized during generation
|
|
addflag(lastot->flags, F_IDWHENUSED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_RING_IQ, "ring of intelligence", "Increases the wearer's intelligence.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ATTRMOD, A_IQ, 5, NULL); // '5' is randomized during generation
|
|
addflag(lastot->flags, F_IDWHENUSED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_RING_CON, "ring of fitness", "Increases the wearer's fitness.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ATTRMOD, A_CON, 5, NULL); // '5' is randomized during generation
|
|
addflag(lastot->flags, F_IDWHENUSED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_RING_DEX, "ring of agility", "Increases the wearer's agility.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 70, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_ATTRMOD, A_AGI, 5, NULL); // '5' is randomized during generation
|
|
addflag(lastot->flags, F_IDWHENUSED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
|
|
addot(OT_RING_HUNGER, "ring of hunger", "Greatly increases the metabolic rate of the wearer.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 73, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_FASTMETAB, 3, NA, NULL);
|
|
addflag(lastot->flags, F_STARTBLESSED, B_CURSED, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_RING_WOUNDING, "ring of wounding", "Increases the damage output of the wearer.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 73, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_EXTRADAM, NA, NA, "0d0+4");
|
|
addflag(lastot->flags, F_ENCHANTABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_IDWHENUSED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 350, NA, NA, NULL);
|
|
addot(OT_RING_INVIS, "ring of invisibility", "Renders the wearer invisible - but drains the wearer's health at the same time.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_INVISIBLE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_HPDRAIN, 1, DT_DIRECT, "life force draining");
|
|
addflag(lastot->flags, F_VALUE, 400, NA, NA, NULL);
|
|
addot(OT_RING_INVULN, "ring of invulnerability", "Grants the caster complete immunity to physical harm.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_INVULNERABLE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 450, NA, NA, NULL);
|
|
addot(OT_RING_MPREGEN, "ring of recharging", "Slowly regenerates the wearer's mana.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_MPREGEN, 1, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 250, NA, NA, NULL);
|
|
addot(OT_RING_CONTROL, "ring of control", "Allows the wearer control over teleportation and polymorphic effects.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CONTROL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 350, NA, NA, NULL);
|
|
addot(OT_RING_REGENERATION, "ring of regeneration", "Slowly regenerates the wearer's health, even when not resting.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_REGENERATES, 1, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 350, NA, NA, NULL);
|
|
addot(OT_RING_RESISTMAG, "ring of magic resistance", "Confers a minor level of magical immunity to the wearer.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_RESISTMAG, 33, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 350, NA, NA, NULL);
|
|
addot(OT_RING_MEDITATION, "ring of meditation", "Allows the wearer to rest by entering a state of meditation.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_MEDITATES, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 250, NA, NA, NULL);
|
|
addot(OT_RING_MIRACLES, "ring of miracles", "Grants a limited number of miracles to the wearer.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_CHARGES, 1, 3, NA, NULL); // always starts with just 1 charge
|
|
addflag(lastot->flags, F_VALUE, 400, NA, NA, NULL);
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
addot(OT_RING_SPELLBOOST, "ring of arcane power", "Increases the power of the wearer's spells.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_VALUE, 250, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_MAGICBOOST, 1, NA, NULL);
|
|
addot(OT_RING_NOINJURY, "ring of injury prevention", "Completely protects the wearer from crippling body injuries.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_VALUE, 350, NA, NA, NULL);
|
|
addot(OT_RING_DECELERATION, "ring of deceleration", "Slows down all nearby projectiles, providing protection from projectile attacks but also limiting their use.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DTIMMUNE, DT_PROJECTILE, B_TRUE, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_RING_DETECTLIFE, "ring of detect life", "Warns the wearer about any nearby lifeforms.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_DETECTLIFE, 5, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_RING_REFLECTION, "ring of missile turning", "Bounces any projectiles which hit the wearer back to their source.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_REFLECTION, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 350, NA, NA, NULL);
|
|
addot(OT_RING_STENCH, "ring of stench", "Causes the wearer to emit a foul stench.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_STENCH, 2, 1, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
addot(OT_RING_WATERBREATHING, "ring of water breathing", "Allows the wearer to breath normally while underwater.", MT_METAL, 0.1, OC_RING, SZ_MINI);
|
|
addflag(lastot->flags, F_RARITY, H_ALL, 75, RR_UNCOMMON, "");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_BREATHWATER, B_TRUE, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 300, NA, NA, NULL);
|
|
|
|
// unarmed weapons - note these damage/accuracys can be
|
|
// overridded with the lifeform flag F_HASATTACK
|
|
//
|
|
// DAMTYPE _cannot_ be overridden (yet)!
|
|
addot(OT_FISTS, "fists", "human fists", MT_FLESH, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 2, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_UNARMED, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 1, NA, NA, NULL);
|
|
|
|
addot(OT_AIRFISTS, "air currents", "air currents object", MT_GAS, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 2, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_UNARMED, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "pummel");
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 1, NA, NA, NULL);
|
|
|
|
// this one is for the pirate
|
|
addot(OT_HOOKHAND, "hook", "hook", MT_METAL, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 4, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_UNARMED, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, 2, NA, "scratch");
|
|
addflag(lastot->flags, F_ATTACKVERB, 3, 6, NA, "scrape");
|
|
addflag(lastot->flags, F_ATTACKVERB, 7, NA, NA, "rake");
|
|
|
|
|
|
addot(OT_TEETH, "teeth", "teeth object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_BITE, 2, NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 3, NA, NA, NULL);
|
|
|
|
addot(OT_TRAMPLE, "trample", "trample object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_CRUSH, 2, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "trample");
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
|
|
addot(OT_BEAK, "beak", "beak object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_BITE, 2, NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "peck");
|
|
|
|
addot(OT_DRILL, "drills", "drills object", MT_METAL, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 2, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "drill");
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_CLAWS, "claws", "claws object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 2, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, 2, NA, "scratch");
|
|
addflag(lastot->flags, F_ATTACKVERB, 3, 6, NA, "claw");
|
|
addflag(lastot->flags, F_ATTACKVERB, 7, 12, NA, "tear");
|
|
addflag(lastot->flags, F_ATTACKVERB, 13, 18, NA, "rake");
|
|
addflag(lastot->flags, F_ATTACKVERB, 19, 24, NA, "gouge");
|
|
addflag(lastot->flags, F_ATTACKVERB, 25, NA, NA, "shred");
|
|
addflag(lastot->flags, F_KILLVERB, 70, NA, NA, "disembowel");
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
|
|
addot(OT_SAWBLADE, "sawblade", "sawblade object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 2, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, 2, NA, "scratch");
|
|
addflag(lastot->flags, F_ATTACKVERB, 3, 6, NA, "slash");
|
|
addflag(lastot->flags, F_ATTACKVERB, 7, 12, NA, "tear");
|
|
addflag(lastot->flags, F_ATTACKVERB, 13, 18, NA, "rake");
|
|
addflag(lastot->flags, F_ATTACKVERB, 19, 24, NA, "gouge");
|
|
addflag(lastot->flags, F_ATTACKVERB, 25, NA, NA, "shred");
|
|
addflag(lastot->flags, F_KILLVERB, 70, NA, NA, "disembowel");
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
|
|
addot(OT_HOOF, "hooves", "hoof object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 2, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, 11, NA, "kick");
|
|
addflag(lastot->flags, F_ATTACKVERB, 12, NA, NA, "trample");
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
|
|
addot(OT_HORN, "horn", "unicorn horn object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 2, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
|
|
addot(OT_BUTT, "headbutt", "headbutt object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 2, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "butt");
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
|
|
addot(OT_STING, "sting", "sting object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "sting");
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_ACID, 2, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_TAIL, "tail", "tail object", MT_FLESH, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "tailslap");
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 4, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
|
|
addot(OT_TENTACLE, "tentacle", "tentacle object", MT_FLESH, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "slap");
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
|
|
addot(OT_TONGUE, "tongue", "tongue object", MT_FLESH, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 10, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_WHIPATTACK, "whipattack", "whip object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 2, NA, NULL);
|
|
addflag(lastot->flags, F_EXTRADAM, DT_BASH, NA, NA, "1d3");
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_WHIPS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_ZAPPER, "zapper", "zapper object", MT_NOTHING, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_ELECTRIC, 2, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
|
|
// monster weapons
|
|
addot(OT_ACIDATTACK, "acidattack", "acid attack object", MT_WATER, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_ACID, 2, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "sting");
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addot(OT_TOUCHBURN, "burning touch", "burning touch object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_FIRE, 1, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "burn");
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addot(OT_TOUCHCHILL, "chilling touch", "chilling touch object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_COLD, 1, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "freeze");
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addot(OT_TOUCHCONFUSE, "confusing touch", "confusing touch object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 1, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "touch");
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HITCONFER, F_CONFUSED, NA, NA, "3-4");
|
|
addflag(lastot->flags, F_HITCONFERVALS, B_TRUE, NA, NA, NULL);
|
|
addot(OT_TOUCHHOLY, "holy touch", "holy touch object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_HOLY, 1, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "smite");
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addot(OT_TOUCHNECROTIC, "necrotic touch", "generic undead touch object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_DAM, DT_NECROTIC, 1, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "drain");
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addot(OT_TOUCHPARALYZE, "paralyzing touch", "paralyzing touch object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 90, NA, NA, "");
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "touch");
|
|
addflag(lastot->flags, F_DAM, DT_TOUCH, 1, NA, NULL);
|
|
addflag(lastot->flags, F_HITCONFER, F_PARALYZED, SC_CON, 22, "1-2");
|
|
addflag(lastot->flags, F_HITCONFERVALS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addot(OT_TOUCHPARALYZE2, "strong paralyzing touch", "strong paralyzing touch object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 90, NA, NA, "");
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "touch");
|
|
addflag(lastot->flags, F_DAM, DT_TOUCH, 1, NA, NULL);
|
|
addflag(lastot->flags, F_HITCONFER, F_PARALYZED, SC_CON, 30, "3-5");
|
|
addflag(lastot->flags, F_HITCONFERVALS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
addot(OT_TOUCHPOISON, "poisonous touch", "poison touch object", MT_BONE, 0, OC_WEAPON, SZ_TINY);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 100, NA, NA, "");
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, NA, NA, "touch");
|
|
addflag(lastot->flags, F_DAM, DT_TOUCH, 1, NA, NULL);
|
|
addflag(lastot->flags, F_NOSTRDAMMOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNARMEDWEP, B_TRUE, NA, NA, NULL);
|
|
|
|
// missiles
|
|
addot(OT_DART, "dart", "A small, sharp projectile weapon.", MT_WOOD, 0.5, OC_MISSILE, SZ_SMALL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "1");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, "");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
addflag(lastot->flags, F_CANHAVEOBMOD, OM_POISONED, 17, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 15, NA, NULL);
|
|
|
|
addot(OT_DARTNANO, "nanodart", "A metal dart with a nanofibre point. Capable of piercing most armour.", MT_METAL, 0.5, OC_MISSILE, SZ_TINY);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "2");
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 10, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 67, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 67, NA, "");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 10, NA, "");
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEALWAYSDIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANHAVEOBMOD, OM_POISONED, 17, NA, NULL);
|
|
|
|
addot(OT_DARTTRANQ, "tranquiliser dart", "A metal dart coated with a strong sleep-inducing serum.", MT_METAL, 0.5, OC_MISSILE, SZ_TINY);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "0");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 4, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEALWAYSDIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HITCONFER, F_ASLEEP, SC_CON, 27, "20-30");
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_HITCONFERVALS, B_TRUE, ST_ASLEEP, NA, NULL);
|
|
|
|
addot(OT_MANRIKI, "manriki", "A pair of weights on the end of a metal chain, designed to entangle those at whom it is thrown.", MT_METAL, 0.1, OC_MISSILE, SZ_SMALL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "0");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_TANGLEMISSILE, 26, 21, B_FALSE, NULL);
|
|
|
|
addot(OT_NEEDLE, "needle", "A tiny pointed needle.", MT_METAL, 0.02, OC_MISSILE, SZ_TINY);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "It makes sewing easier.");
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "1");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, "");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
addflag(lastot->flags, F_CANHAVEOBMOD, OM_POISONED, 25, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEALWAYSDIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_NET, "throwing net", "A grid of strong cords, weighted at the edges. Made for throwing over a target.", MT_CLOTH, 2, OC_MISSILE, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "0");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 2, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDAMTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TANGLEMISSILE, 33, 30, B_TRUE, NULL);
|
|
|
|
addot(OT_JAVELIN, "javelin", "A long, sharp missile weapon.", MT_METAL, 4, OC_MISSILE, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "3");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 90, NA, "");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 2, NA, "");
|
|
addflag(lastot->flags, F_OBHP, 3, 3, NA, "");
|
|
addflag(lastot->flags, F_CANHAVEOBMOD, OM_POISONED, 17, NA, NULL);
|
|
|
|
addot(OT_JAVELINLT, "lightning javelin", "A long, sharp missile weapon which transforms into a bolt of lightning when thrown.", MT_METAL, 4, OC_MISSILE, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "3");
|
|
addflag(lastot->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 2, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_REPLENISHABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RNDCHARGES, 1, 5, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "javelin");
|
|
|
|
addot(OT_ARROW, "arrow", "A sharp wooden arrow.", MT_WOOD, 0.1, OC_MISSILE, SZ_SMALL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 85, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 85, NA, "");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 10, NA, "");
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "3");
|
|
addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANHAVEOBMOD, OM_POISONED, 17, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 15, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_BOLT, "bolt", "A sharp metal spike, meant for firing from a crossbow.", MT_METAL, 0.25, OC_MISSILE, SZ_SMALL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 80, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 80, NA, "");
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "4");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 10, NA, "");
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANHAVEOBMOD, OM_POISONED, 17, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 20, NA, NULL);
|
|
|
|
addot(OT_BULLET, "bullet", "A regular gun bullet.", MT_METAL, 0.1, OC_MISSILE, SZ_MINI);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 10, NA, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 1, 1, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "4");
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 10, NA, NULL);
|
|
|
|
addot(OT_RUBBERBULLET, "rubber bullet", "A rubber gun bullet - does not do much damage.", MT_RUBBER, 0.05, OC_MISSILE, SZ_MINI);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_COMMON, "");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 10, NA, "");
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "1");
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 1, 1, NA, NULL);
|
|
addflag(lastot->flags, F_NOOBDIETEXT, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_SHURIKEN, "shuriken", "A sharpened star-shaped piece of metal, made for throwing.", MT_METAL, 1, OC_MISSILE, SZ_SMALL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, "");
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "4");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, "");
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, "");
|
|
addflag(lastot->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
addflag(lastot->flags, F_MISSILEALWAYSDIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 15, NA, NULL);
|
|
|
|
// special object for spiekvolley spell
|
|
addot(OT_SPIKEVOLLEY, "volley of spikes", "A large group of spikes moving at high speed.", MT_METAL, 1, OC_MISSILE, SZ_SMALL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "4d3");
|
|
addflag(lastot->flags, F_MISSILEALWAYSDIES, B_TRUE, NA, NA, NULL);
|
|
|
|
// MELEE WEAPONS / melee weapons
|
|
// axes
|
|
addot(OT_AXE, "axe", "A short pole with a heavy, wedge-shaped blade for chopping.", MT_METAL, 5, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 90, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 4, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_CHOP, 6, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 4, NA, "flat of blade");
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_AXES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 45, 65, "10");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
|
|
addot(OT_BATTLEAXE, "battleaxe", "An large axe specifically designed for combat.", MT_METAL, 8, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 8, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_CHOP, 11, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 5, NA, "flat of blade");
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 4, NA, NA, "");
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_AXES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 65, 75, "10");
|
|
addot(OT_GREATAXE, "greataxe", "An enormous axe made designed for combat.", MT_METAL, 10, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 50, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 180, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 10, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_CHOP, 18, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 6, NA, "flat of blade");
|
|
addflag(lastot->flags, F_NEEDSSPACE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_AXES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 75, 80, "15");
|
|
addot(OT_HANDAXE, "hand axe", "A fast one-handed axe, ideal for throwing.", MT_METAL, 2.5, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 80, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 80, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 4, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_CHOP, 7, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MISSILEDAM, NA, NA, NA, "5");
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_AXES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 35, 55, "5");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addot(OT_HATCHET, "hatchet", "Similar to a handaxe but weighted at the head. A fast one-handed axe, ideal for throwing.", MT_METAL, 4, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 80, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 80, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 6, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_CHOP, 8, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_AXES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 40, 60, "5");
|
|
addflag(lastot->flags, F_CRITCHANCE, 6, NA, NA, NULL);
|
|
addot(OT_WARAXE, "war axe", "An axe made for combat.", MT_METAL, 7, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 80, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 80, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 8, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_CHOP, 12, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 5, NA, "flat of blade");
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_AXES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 55, 75, "10");
|
|
|
|
// whips
|
|
addot(OT_WHIPBULL, "bullwhip", "A long, heavy leather whip.", MT_LEATHER, 5, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 3, NA, NULL);
|
|
addflag(lastot->flags, F_EXTRADAM, DT_BASH, B_TRUE, NA, "1d3");
|
|
addflag(lastot->flags, F_ACCURACY, 90, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_WHIPS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_SNATCH, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_S_SUCK, NA, "range:2;pw:1;");
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 40, 60, "5");
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 125, NA, NA, NULL);
|
|
addot(OT_WHIPMT, "steel-tipped whip", "A leather whip with a sharp metal end.", MT_LEATHER, 6, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 4, NA, NULL);
|
|
addflag(lastot->flags, F_EXTRADAM, DT_BASH, B_TRUE, NA, "1d3");
|
|
addflag(lastot->flags, F_ACCURACY, 90, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_WHIPS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 40, 60, "5");
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 125, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_SNATCH, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_S_SUCK, NA, "range:2;pw:1;");
|
|
|
|
addot(OT_FLAIL, "flail", "A flexible chain attached to a heavy weight.", MT_METAL, 9, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 7, NA, NULL);
|
|
addflag(lastot->flags, F_EXTRADAM, DT_SLASH, B_TRUE, NA, "1d2");
|
|
addflag(lastot->flags, F_ACCURACY, 85, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_WHIPS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 50, 70, "5");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 125, NA, NA, NULL);
|
|
|
|
addot(OT_WHIPBARBED, "barbed whip", "A long leather whip with a spiked metal end.", MT_LEATHER, 6, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 4, NA, NULL);
|
|
addflag(lastot->flags, F_EXTRADAM, DT_BASH, B_TRUE, NA, "1d3");
|
|
addflag(lastot->flags, F_EXTRADAM, DT_PIERCE, B_TRUE, NA, "1d3");
|
|
addflag(lastot->flags, F_ACCURACY, 85, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_WHIPS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 40, 60, "5");
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 40, 60, "5");
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 125, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_SNATCH, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_S_SUCK, NA, "range:2;pw:1;");
|
|
|
|
addot(OT_FLAILHEAVY, "heavy flail", "A flexible chain attached to a very heavy weight.", MT_METAL, 12, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 7, NA, NULL);
|
|
addflag(lastot->flags, F_EXTRADAM, DT_SLASH, B_TRUE, NA, "1d4");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_WHIPS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 65, 75, "10");
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 50, NA, "5");
|
|
addflag(lastot->flags, F_CRITCHANCE, 8, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 125, NA, NA, NULL);
|
|
|
|
// short blades
|
|
addot(OT_COMBATKNIFE, "combat knife", "A sharp knife designed for military use.", MT_METAL, 1, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 65, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 65, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 5, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 3, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PICKLOCKS, 7, B_BLUNTONFAIL, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 2, NA, NA, NULL);
|
|
addot(OT_CUTLASS, "cutlass", "An accurate, light-weight pirate blade.", MT_METAL, 4, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 80, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 80, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 9, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 5, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 3, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 90, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 40, 60, "10");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
addot(OT_DAGGER, "dagger", "A short stabbing weapon with a pointed blade.", MT_METAL, 1, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 90, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 4, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_SLASH, 4, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 90, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_PICKLOCKS, 7, B_BLUNTONFAIL, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 10, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_BONE, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, NA, 65, "10");
|
|
addot(OT_BASELARD, "baselard", "A heavy dagger designed for punching through armour.", MT_METAL, 1, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 90, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 5, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 4, NA, NA, "");
|
|
addflag(lastot->flags, F_ACCURACY, 90, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_PICKLOCKS, 6, B_FALSE, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, NA, 65, "10");
|
|
addot(OT_FORK, "fork", "A common kitchen fork.", MT_METAL, 0.2, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 2, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 65, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 2, 2, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, NA, 65, "10");
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addot(OT_KNIFE, "knife", "A moderately sharp stabbing tool.", MT_METAL, 0.5, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 3, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 3, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PICKLOCKS, 7, B_BLUNTONFAIL, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, NA, 65, "10");
|
|
addot(OT_MEATCLEAVER, "meat cleaver", "A short, heavy kitchen knife. Not very accurate but its weight makes it capable of dealing critical blows.", MT_METAL, 1, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 4, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 15, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 30, NA, "15");
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, NA, 65, "10");
|
|
addot(OT_ORNDAGGER, "ornamental dagger", "This dagger is pretty, but not particularly effective.", MT_METAL, 1, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 50, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_SHINY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 3, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_PICKLOCKS, 7, B_BLUNTONFAIL, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, NA, 65, "10");
|
|
addot(OT_SHORTSWORD, "short sword", "A short warrior's blade.", MT_METAL, 4, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 90, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 6, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 6, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 3, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 90, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 30, 50, "5");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 5, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
addot(OT_GLADIUS, "gladius", "A short gladiator blade. Designed for stabbing rather than slashing.", MT_METAL, 4, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 90, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 7, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_SLASH, 6, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 3, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 90, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 30, 50, "5");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 5, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
|
|
addot(OT_EPEE, "epee", "A short, narrow French sword made for fast movement and stabbing.", MT_METAL, 3.5, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 80, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 80, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 8, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 2, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 50, 70, "15");
|
|
addflag(lastot->flags, F_CRITCHANCE, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_PIERCE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
|
|
addot(OT_SABRE, "sabre", "Despite being a showy captain's sword, sabres are finely balanced and deadly.", MT_METAL, 3.5, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 80, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 80, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 8, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 3, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 60, 80, "15");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_PIERCE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 5, NA, NULL);
|
|
addot(OT_SICKLE, "sickle", "A hand-held agricultural tool with a curved blade.", MT_METAL, 1, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 60, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 60, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 6, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 2, NA, NA, NULL);
|
|
addot(OT_STEAKKNIFE, "steak knife", "A common kitchen knife.", MT_METAL, 0.2, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 2, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 2, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_STACKABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_SHORTBLADES, NA, NA, NULL);
|
|
|
|
// long blades
|
|
|
|
addot(OT_RAPIER, "rapier", "A long, narrow French sword lacking a cutting edge. Made for stabbing.", MT_METAL, 3.5, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 80, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 80, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 7, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 3, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 30, 50, "10");
|
|
addflag(lastot->flags, F_CRITCHANCE, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_PIERCE, NA, NA, NULL);
|
|
|
|
addot(OT_BASTARDSWORD, "bastard sword", "Very large, heavy sword. Sometimes called a 'hand and a half sword'.", MT_METAL, 8, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 2, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 11, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 11, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 4, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 160, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 65, 80, "10");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 5, NA, NULL);
|
|
|
|
addot(OT_BROADSWORD, "broadsword", "One step up from the standard longsword, a broadsword is slightly more damaging.", MT_METAL, 5.5, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 9, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 4, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 55, 75, "3");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
|
|
addot(OT_CLAYMORE, "claymore", "A massive two-handed blade with an oversized hilt. Its weight lends it to various forms of attack.", MT_METAL, 9, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 2, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 12, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 12, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_CHOP, 12, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 5, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 170, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 65, 80, "10");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 5, NA, NULL);
|
|
|
|
addot(OT_FALCHION, "falchion", "A single-edged heavy sword made for chopping.", MT_METAL, 6.5, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 61, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 61, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 4, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_CHOP, 11, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 4, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 65, 85, "10");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addot(OT_GREATSWORD, "greatsword", "A massive two-handed sword.", MT_METAL, 12, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 55, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 55, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 175, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 2, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 14, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 13, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 5, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NEEDSSPACE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 75, 90, "3");
|
|
addflag(lastot->flags, F_CRITCHANCE, 7, NA, NA, NULL);
|
|
addot(OT_LONGSWORD, "longsword", "Standard issue long slashing weapon.", MT_METAL, 5, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 8, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 8, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 4, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 50, 70, "3");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 5, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
addot(OT_ORNSWORD, "ornamental sword", "A gleaming (but quite blunt) blade.", MT_METAL, 6, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 50, NA, NULL);
|
|
addflag(lastot->flags, F_SHINY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 5, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 3, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
addot(OT_SCIMITAR, "scimitar", "A fast, sharp, curved blade.", MT_METAL, 4, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 75, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 90, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 9, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 3, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 40, 60, "3");
|
|
addflag(lastot->flags, F_CRITCHANCE, 7, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
|
|
addot(OT_TUSK, "ivory tusk", "A large ivory tusk from a slain elephant. Could be used as weapon by very large creatures.", MT_BONE, 61, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_VALUE, 450, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, NA, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 120, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 12, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 4, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 80, NA, "3");
|
|
addflag(lastot->flags, F_CRITCHANCE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
|
|
addot(OT_ZWEIHANDER, "zweihander", "Even more dangerous than the mighty greatsword, the Zweihander is almost absurdly long, making it very hard to dodge.", MT_METAL, 12, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 55, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 55, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 180, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 2, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 16, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 15, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 6, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 85, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NEEDSSPACE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LONGBLADES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 85, 95, "3");
|
|
addflag(lastot->flags, F_CRITCHANCE, 7, NA, NA, NULL);
|
|
|
|
// polearms
|
|
addot(OT_GLAIVE, "glaive", "A single-edged blade attached to a long pole.", MT_METAL, 10, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 73, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 73, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 12, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 6, NA, "butt bash");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NEEDSSPACE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 65, 85, "5");
|
|
addflag(lastot->flags, F_CRITCHANCE, 1, NA, NA, NULL);
|
|
addot(OT_GUISARME, "guisarme", "A hooked polearm, made by attaching a hook to a spear shaft.", MT_METAL, 10, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 67, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 67, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_TRIPLF, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NEEDSSPACE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 130, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 9, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 6, NA, "butt bash");
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 65, 80, "1");
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 35, 55, "5");
|
|
addflag(lastot->flags, F_CRITCHANCE, 1, NA, NA, NULL);
|
|
addot(OT_HALBERD, "halberd", "A spiked axe blade mounted on a long shaft, with a hook on the back.", MT_METAL, 12, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 71, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 71, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 130, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_TRIPLF, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 4, NA, NA, "");
|
|
addflag(lastot->flags, F_DAM, DT_CHOP, 13, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_SLASH, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NEEDSSPACE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 35, 55, "10");
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 45, 65, "5");
|
|
addflag(lastot->flags, F_CRITCHANCE, 2, NA, NA, NULL);
|
|
addot(OT_LANCE, "lance", "A pole weapon designed for use while mounted.", MT_METAL, 12, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 67, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 67, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 140, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 11, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 6, NA, "butt bash");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_THRUST, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 65, 80, "10");
|
|
addflag(lastot->flags, F_CRITCHANCE, 1, NA, NA, NULL);
|
|
addot(OT_PITCHFORK, "pitchfork", "A multi-pronged agricultural tool designed to lift loose material. Works as a makeshift weapon.", MT_METAL, 5, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 85, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 85, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 3, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 3, NA, "butt bash");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTACKVERB, NA, 2, NA, "scratch");
|
|
addflag(lastot->flags, F_ATTACKVERB, 3, 6, NA, "scrape");
|
|
addflag(lastot->flags, F_ATTACKVERB, 7, NA, NA, "rake");
|
|
addot(OT_RANSEUR, "ranseur", "A long spear and cross hilt, resembling a pole-mounted sai. Good for disarming.", MT_METAL, 12, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 67, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 67, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_DISARMLF, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 120, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 11, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 6, NA, "butt bash");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_THRUST, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 45, 65, "1");
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 65, 80, "5");
|
|
addot(OT_SCYTHE, "scythe", "An agricultural hand tool for mowing grass, or reaping crops.", MT_METAL, 6, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 75, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 8, NA, NULL);
|
|
addflag(lastot->flags, F_NEEDSSPACE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 45, 65, "3");
|
|
addot(OT_SPEAR, "spear", "A long pole with a sharpened head.", MT_METAL, 9, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 75, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 140, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 6, NA, "butt bash");
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_THRUST, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 65, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THROWMISSILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAMAGABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 15, 15, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 50, 70, "5");
|
|
addflag(lastot->flags, F_CRITCHANCE, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addot(OT_TRIDENT, "trident", "A three-pronged stabbing weapon.", MT_METAL, 5, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 75, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 4, NA, "butt bash");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_POLEARMS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 55, 75, "10");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
|
|
// staves
|
|
addot(OT_QUARTERSTAFF, "quarterstaff", "A long, stout pole.", MT_WOOD, 4, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 8, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NEEDSSPACE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_STAVES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 50, 60, "15");
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
|
|
addot(OT_BAMBOOSTAFF, "bamboo staff", "A long hard pole made from bamboo.", MT_WOOD, 3, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 85, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 85, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 9, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NEEDSSPACE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_STAVES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 60, 70, "15");
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
|
|
addot(OT_BLADEDSTAFF, "bladed staff", "A long wooden pole with blades on either end.", MT_WOOD, 5, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 85, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 85, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 12, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 8, NA, NULL);
|
|
addflag(lastot->flags, F_NEEDSSPACE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_STAVES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 75, 85, "15");
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
|
|
addot(OT_IRONSTAFF, "iron staff", "A long, stout metal pole.", MT_METAL, 8, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 60, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 60, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 110, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 10, NA, NULL);
|
|
addflag(lastot->flags, F_NEEDSSPACE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_STAVES, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 60, 70, "10");
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 60, 70, "10");
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 8, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_BASH, NA, NA, NULL);
|
|
|
|
addot(OT_WIZARDSTAFF, "neophyte staff", "A twisted branch of wood.", MT_DRAGONWOOD, 4, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, ')', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LORE_ARCANA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_IQ, 50, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "twisted branch");
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_WIZARDSTAFF2, "enchanter staff", "A twisted branch of wood.", MT_DRAGONWOOD, 4, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, ')', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LORE_ARCANA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_MAGICBOOST, 1, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_IQ, 60, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "twisted branch");
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_WIZARDSTAFF3, "sorcerer staff", "A twisted branch of wood.", MT_DRAGONWOOD, 4, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, ')', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LORE_ARCANA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_MAGICBOOST, 2, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_IQ, 70, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "twisted branch");
|
|
|
|
addot(OT_WIZARDSTAFF4, "spellbinder staff", "A twisted branch of wood.", MT_DRAGONWOOD, 4, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, ')', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LORE_ARCANA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_MAGICBOOST, 3, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_IQ, 80, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "twisted branch");
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_WIZARDSTAFF5, "warlock staff", "A twisted branch of wood.", MT_DRAGONWOOD, 4, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, ')', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LORE_ARCANA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_MAGICBOOST, 4, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_IQ, 85, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "twisted branch");
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_WIZARDSTAFF6, "archmagi staff", "A twisted branch of wood.", MT_DRAGONWOOD, 4, OC_WEAPON, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GLYPH, C_BROWN, ')', NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 3, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_LORE_ARCANA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_MAGICBOOST, 5, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_IQ, 90, NA, NULL);
|
|
addflag(lastot->flags, F_HASHIDDENNAME, B_TRUE, NA, NA, "twisted branch");
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
|
|
// clubs (bashing)
|
|
addot(OT_CLUB, "club", "A heavy, blunt wooden instrument to hit things with.", MT_WOOD, 8, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 6, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 50, 60, "10");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 110, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_BONE, 33, NA, NULL);
|
|
addot(OT_CLUBSPIKE, "spiked club", "A heavy wooden club with embedded spikes.", MT_WOOD, 8, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 8, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 50, 60, "10");
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 110, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_BONE, 33, NA, NULL);
|
|
addot(OT_GREATCLUB, "great club", "An enormous, very heavy, blunt instrument to hit things with.", MT_STONE, 15, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 50, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 50, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 200, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 15, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 75, 85, "10");
|
|
addot(OT_MACE, "mace", "A weapon with a heavy head on a solid shaft used to bludgeon opponents.", MT_METAL, 10, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 90, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 90, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 9, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 4, NA, NA, "");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 60, 80, "10");
|
|
addflag(lastot->flags, F_CRITCHANCE, 7, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 125, NA, NA, NULL);
|
|
addot(OT_MORNINGSTAR, "morningstar", "A heavy, spiked mace. Its weight makes it good for penetrating armour.", MT_METAL, 12, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 150, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 12, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURPIERCE, 6, NA, NA, "");
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 65, 75, "10");
|
|
addflag(lastot->flags, F_CRITCHANCE, 8, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 150, NA, NA, NULL);
|
|
addot(OT_SPANNER, "spanner", "A long, heavy metal wrench.", MT_METAL, 1, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_EXTRADESC, NA, NA, NA, "It makes metalwork easier.");
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 4, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERNEEDDIR, B_TRUE, NA, NA, "Use your spanner in which direction");
|
|
addflag(lastot->flags, F_HELPSDISARM, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, NA, NA, NULL);
|
|
addot(OT_SHILLELAGH, "shillelagh", "An small cudgel with a strap, lightweight yet surprisingly effective. Irish in origin.", MT_WOOD, 2, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 5, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 90, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
addot(OT_STICK, "stick", "A sturdy wooden stick. It's brown and sticky.", MT_WOOD, 0.5, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, 100, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 2, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOBLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_CLUBS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOQUALITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
|
|
// exotic weapons
|
|
addot(OT_KATANA, "katana", "A long, finely balanced blade. Ideal for critical hits.", MT_METAL, 4, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 10, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 3, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_EXOTICWEPS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 70, 80, "15");
|
|
addflag(lastot->flags, F_CRITCHANCE, 15, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 5, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_PIERCE, NA, NA, NULL);
|
|
addot(OT_NUNCHAKU, "nunchaku", "Two stout sticks connected with a short chain. Good for disarming.", MT_WOOD, 4.5, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 80, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 80, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_DISARMLF, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_BASH, 7, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_EXOTICWEPS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 65, 75, "15");
|
|
addflag(lastot->flags, F_CRITCHANCE, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
addot(OT_SAI, "sai", "A dagger with two long prongs on either side, made to trap opponents' weapons.", MT_METAL, 1.5, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 81, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 81, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 4, NA, NULL);
|
|
addflag(lastot->flags, F_EQUIPCONFER, F_CANWILL, OT_A_DISARMLF, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_EXOTICWEPS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 50, 60, "15");
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
addot(OT_UCHIGATANA, "uchigatana", "A blade of exceptional quality and balance, it allows its bearar to attack faster than would seem possible.", MT_METAL, 3.0, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 73, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 73, RR_VERYRARE, NULL);
|
|
addflag(lastot->flags, F_OBATTACKDELAY, 50, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_PIERCE, 7, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_SLASH, 7, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 2, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_EXOTICWEPS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 80, 90, "10");
|
|
addot(OT_WAKAZASHI, "wakazashi", "A short, finely balanced blade. Less raw power then a standard longsword, but its weight gives it a higher critical chance.", MT_METAL, 4, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 70, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 7, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_PIERCE, 7, NA, NULL);
|
|
addflag(lastot->flags, F_ALTDAM, DT_BASH, 2, NA, "hilt bash"); // with the hilt
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_EXOTICWEPS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_AGI, 60, 70, "15");
|
|
addflag(lastot->flags, F_CRITCHANCE, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBEDIFFMAT, MT_SILVER, 5, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_SLASH, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_PIERCE, NA, NA, NULL);
|
|
|
|
// projectile weapons
|
|
addot(OT_BLOWGUN, "blowgun", "A thin reed tube which employs the user's breath to propel darts at high speed.", MT_PLANT, 0.5, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_SWAMP, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_FIREARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FIRESPEED, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOOB, OT_DART, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOOB, OT_DARTNANO, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOOB, OT_DARTTRANQ, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOCAPACITY, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RELOADTURNS, 1, NA, NA, NULL);
|
|
|
|
|
|
addot(OT_BOW, "short bow", "A weapon which projects arrows via its elasticity.", MT_WOOD, 5, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_FIREARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FIRESPEED, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOOB, OT_ARROW, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOCAPACITY, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RELOADTURNS, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 45, NA, NULL);
|
|
addflag(lastot->flags, F_RODSHAPED, B_TRUE, NA, NA, NULL);
|
|
|
|
addot(OT_COMPOSITEBOW, "composite bow", "A short bow, smaller than a longbow but more powerful than a shortbow.", MT_WOOD, 7, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_FIREARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FIRESPEED, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOOB, OT_ARROW, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOCAPACITY, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RELOADTURNS, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 65, NA, NULL);
|
|
|
|
addot(OT_CROSSBOW, "crossbow", "A standard crossbow. Very powerful, but slow to reload and needs high strength to use.", MT_WOOD, 8, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_FIREARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FIRESPEED, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOOB, OT_BOLT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOCAPACITY, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RELOADTURNS, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 75, NA, NULL);
|
|
|
|
addot(OT_CROSSBOWHAND, "hand crossbow", "A small wrist-mounted crossbow. Less powerful and accurate than its full-sized sibling, the hand crossbow's primary strength is its ability to fire multiple shots before reloading.", MT_WOOD, 3, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_FIREARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FIRESPEED, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 75, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOOB, OT_BOLT, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOCAPACITY, 3, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RELOADTURNS, 1, NA, NA, NULL);
|
|
|
|
addot(OT_LONGBOW, "longbow", "A very large (human-sized) bow, capable of firing arrows with great power.", MT_WOOD, 7, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastot->flags, F_FIREARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FIRESPEED, 8, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 8, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOOB, OT_ARROW, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOCAPACITY, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RELOADTURNS, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ATTREQ, A_STR, 65, NA, NULL);
|
|
|
|
addot(OT_REVOLVER, "revolver", "Basic one-handed firearm.", MT_METAL, 1, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_FIREARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
//addflag(lastot->flags, F_DAMTYPE, DT_BASH, NA, NA, NULL);
|
|
//addflag(lastot->flags, F_DAM, 3, 4, NA, NULL);
|
|
addflag(lastot->flags, F_FIRESPEED, 15, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 10, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOOB, OT_BULLET, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOOB, OT_RUBBERBULLET, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOCAPACITY, 6, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RELOADTURNS, 2, NA, NA, NULL);
|
|
|
|
addot(OT_SHOTGUN, "shotgun", "Powerful but short-ranged gun.", MT_METAL, 5, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_RARE, NULL);
|
|
addflag(lastot->flags, F_FIREARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_TWOHANDED, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FIRESPEED, 20, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 80, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOOB, OT_BULLET, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOCAPACITY, 2, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RELOADTURNS, 3, NA, NA, NULL);
|
|
|
|
addot(OT_SLING, "sling", "Stretchy piece of rubber for launching projectiles.", MT_RUBBER, 0.5, OC_WEAPON, SZ_SMALL);
|
|
addflag(lastot->flags, F_RARITY, H_DUNGEON, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastot->flags, F_FIREARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OPERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_FIRESPEED, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 70, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RANGE, 4, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOOB, OT_STONE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_AMMOCAPACITY, 1, NA, NA, NULL);
|
|
addflag(lastot->flags, F_RELOADTURNS, 1, NA, NA, NULL);
|
|
|
|
|
|
// special weapons
|
|
addot(OT_ENERGYBLADE, "energy blade", "A summoned weapon made of pure magical energy.", MT_MAGIC, 0, OC_WEAPON, SZ_MEDIUM);
|
|
addflag(lastot->flags, F_DAM, DT_MAGIC, 4, NA, NULL); // will be replaced when summoned
|
|
addflag(lastot->flags, F_ACCURACY, 100, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CRITCHANCE, 5, NA, NA, NULL);
|
|
|
|
addot(OT_HANDOFGOD, "hand of god", "The ultimate power.", MT_FLESH, 0.1, OC_WEAPON, SZ_MEDIUM);
|
|
//addflag(lastot->flags, F_RARITY, H_DUNGEON, RR_UNIQUE, NA, NULL);
|
|
//addflag(lastot->flags, F_DAMTYPE, DT_HOLY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_DAM, DT_SLASH, 100, NA, NULL);
|
|
addflag(lastot->flags, F_ACCURACY, 500, NA, NA, NULL);
|
|
addflag(lastot->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_THE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_USESSKILL, SK_NONE, NA, NA, NULL);
|
|
|
|
addot(OT_ICESHIELD, "ice crystal shield", "A summoned shield made of ice crystals.", MT_ICE, 0, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_SHIELD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_CANBLOCK, DT_ALL, NA, NA, NULL);
|
|
addflag(lastot->flags, F_GOESON, BP_SECWEAPON, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL); // will be replaced when summoned
|
|
|
|
addot(OT_ICEARMOUR, "ice crystal armour", "Summoned body armour made of ice crystals.", MT_ICE, 0, OC_ARMOUR, SZ_HUMAN);
|
|
addflag(lastot->flags, F_GOESON, BP_BODY, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL); // will be replaced when summoned
|
|
addot(OT_ICEBOOTS, "pair of ice crystal boots", "Summoned boots made of ice crystals.", MT_ICE, 0, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_GOESON, BP_FEET, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL); // will be replaced when summoned
|
|
addot(OT_ICEGLOVES, "pair of ice crystal gauntlets", "Summoned gauntlets made of ice crystals.", MT_ICE, 0, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_GOESON, BP_HANDS, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL); // will be replaced when summoned
|
|
addot(OT_ICEHELMET, "ice crystal helmet", "A summoned helmet made of ice crystals.", MT_ICE, 0, OC_ARMOUR, SZ_SMALL);
|
|
addflag(lastot->flags, F_GOESON, BP_HEAD, NA, NA, NULL);
|
|
addflag(lastot->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastot->flags, F_OBHP, 5, 5, NA, NULL); // will be replaced when summoned
|
|
|
|
// special obs
|
|
addot(OT_PLAYERSTART, "playerstart", "starting pos for player", MT_NOTHING, 0, OC_MISC, SZ_MINI);
|
|
addot(OT_PUSHN, "pushn", "pusher north", MT_NOTHING, 0, OC_MISC, SZ_MINI);
|
|
addflag(lastot->flags, F_INVISOB, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOGLYPH, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MOVELFS, DC_N, NA, NA, NULL);
|
|
addot(OT_PUSHE, "pushe", "pusher east", MT_NOTHING, 0, OC_MISC, SZ_MINI);
|
|
addflag(lastot->flags, F_INVISOB, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOGLYPH, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MOVELFS, DC_E, NA, NA, NULL);
|
|
addot(OT_PUSHS, "pushs", "pusher south", MT_NOTHING, 0, OC_MISC, SZ_MINI);
|
|
addflag(lastot->flags, F_INVISOB, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOGLYPH, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MOVELFS, DC_S, NA, NA, NULL);
|
|
addot(OT_PUSHW, "pushw", "pusher west", MT_NOTHING, 0, OC_MISC, SZ_MINI);
|
|
addflag(lastot->flags, F_INVISOB, B_TRUE, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOGLYPH, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_NOFEEL, NA, NA, NA, NULL);
|
|
addflag(lastot->flags, F_MOVELFS, DC_W, NA, NA, NULL);
|
|
|
|
// recipes - easy
|
|
addrecipe(OT_MUSHROOMSTUFFED,
|
|
OT_MUSHROOMSHI, 1, B_TRUE,
|
|
OT_BREADSTALE, 1, B_TRUE,
|
|
OT_NONE);
|
|
addrecipe(OT_POT_POISON,
|
|
OT_POISONSAC, 1, B_TRUE,
|
|
OT_POT_WATER, 1, B_TRUE,
|
|
OT_NONE);
|
|
addrecipe(OT_POT_SOUPCHICKEN,
|
|
OT_ROASTMEAT, 1, B_TRUE, // special case in getingredients() enforces chicken meat
|
|
OT_POT_WATER, 1, B_TRUE,
|
|
OT_NONE);
|
|
addrecipe(OT_POT_SOUPTOMATO,
|
|
OT_TOMATO, 1, B_TRUE,
|
|
OT_POT_WATER, 1, B_TRUE,
|
|
OT_NONE);
|
|
addrecipe(OT_POT_SOUPMUSHROOM,
|
|
OT_MUSHROOMSHI, 1, B_TRUE,
|
|
OT_POT_WATER, 1, B_TRUE,
|
|
OT_NONE);
|
|
addrecipe(OT_RUMBALL,
|
|
OT_POT_RUM, 1, B_TRUE,
|
|
OT_CHOCOLATE, 1, B_TRUE,
|
|
OT_NONE);
|
|
addrecipe(OT_SANDWICHCHEESE,
|
|
OT_BREADFRESH, 1, B_TRUE,
|
|
OT_CHEESE, 1, B_TRUE,
|
|
OT_NONE);
|
|
addrecipe(OT_POT_SUGARWATER,
|
|
OT_SUGAR, 1, B_TRUE,
|
|
OT_POT_WATER, 1, B_TRUE,
|
|
OT_NONE);
|
|
// recipes - medium
|
|
addrecipe(OT_BREADGARLIC,
|
|
OT_BREADFRESH, 1, B_TRUE,
|
|
OT_GARLIC, 2, B_TRUE,
|
|
OT_SALT, 1, B_TRUE,
|
|
OT_NONE);
|
|
addrecipe(OT_HOTDOG,
|
|
OT_BREADFRESH, 1, B_TRUE,
|
|
OT_CORPSE, 1, B_TRUE,
|
|
OT_TOMATO, 1, B_TRUE,
|
|
OT_NONE);
|
|
addrecipe(OT_JERKY,
|
|
OT_CORPSE, 1, B_TRUE,
|
|
OT_POT_WATER, 1, B_TRUE,
|
|
OT_SALT, 1, B_TRUE,
|
|
OT_NONE);
|
|
addrecipe(OT_POT_JUICE,
|
|
OT_APPLE, 2, B_TRUE,
|
|
OT_STONE, 1, B_FALSE,
|
|
OT_EMPTYFLASK, 1, B_FALSE,
|
|
OT_NONE);
|
|
addrecipe(OT_POT_SPEED,
|
|
OT_BERRY, 2, B_TRUE,
|
|
OT_POT_WATER, 1, B_TRUE,
|
|
OT_SUGAR, 1, B_TRUE,
|
|
OT_NONE);
|
|
addrecipe(OT_POT_STROGONOFF,
|
|
OT_CORPSE, 1, B_TRUE,
|
|
OT_MUSHROOMSHI, 1, B_TRUE,
|
|
OT_POT_WATER, 1, B_TRUE,
|
|
OT_NONE);
|
|
// recipes - hard
|
|
addrecipe(OT_CAKEFRUIT,
|
|
OT_CHOCOLATE, 1, B_TRUE,
|
|
OT_POT_RUM, 1, B_TRUE,
|
|
OT_SUGAR, 1, B_TRUE,
|
|
OT_BERRY, 3, B_TRUE,
|
|
OT_NONE);
|
|
addrecipe(OT_SANDWICHPB,
|
|
OT_BREADFRESH, 1, B_TRUE,
|
|
OT_NUT, 2, B_TRUE,
|
|
OT_SALT, 1, B_TRUE,
|
|
OT_STONE, 1, B_FALSE,
|
|
OT_NONE);
|
|
}
|
|
|
|
void initoptions(void) {
|
|
addoption(OPT_ALWAYSSHOWTRAILS, "always show trail objects", B_FALSE);
|
|
addoption(OPT_AUTORELOAD, "automatically reload empty firearms", B_TRUE);
|
|
addoption(OPT_RETRIEVE_MISSILES, "automatically retrieve used missiles", B_TRUE);
|
|
addoption(OPT_STOPRUNONNOISE, "stop running if sound heard", B_TRUE);
|
|
}
|
|
|
|
void initrace(void) {
|
|
race_t *r;
|
|
flag_t *f;
|
|
objecttype_t *ot;
|
|
skill_t *sk;
|
|
int i;
|
|
|
|
// behaviours
|
|
addbehaviour(BH_INSANE, "insane");
|
|
addflag(lastbehaviour->flags, F_TERRITORIAL, 2, NA , NA, NULL);
|
|
addbehaviour(BH_HUNGRY, "hungry");
|
|
addflag(lastbehaviour->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS , NA, NULL);
|
|
addbehaviour(BH_TIMID, "timid");
|
|
// givebehaviour() will also halve morale
|
|
addflag(lastbehaviour->flags, F_FLEEONDAM, B_TRUE, NA , NA, NULL);
|
|
addbehaviour(BH_DRUGGED, "drugged");
|
|
// givebehaviour() will also remove fleeonxxx flags
|
|
addflag(lastbehaviour->flags, F_NOFLEE, B_TRUE, NA , NA, NULL);
|
|
addbehaviour(BH_DRUNK, "drunk");
|
|
// givebehaviour() will add f_drunk rnd(2,5)
|
|
addbehaviour(BH_DETERMINED, "determined");
|
|
addflag(lastbehaviour->flags, F_FOLLOWTIME, (DEF_AIFOLLOWTIME*2), NA, NA, NULL);
|
|
addbehaviour(BH_LAZY, "lazy");
|
|
addflag(lastbehaviour->flags, F_FOLLOWTIME, (DEF_AIFOLLOWTIME/4), NA, NA, NULL);
|
|
addbehaviour(BH_MUSCLED, "muscled");
|
|
// givebehaviour() will modify maxhp
|
|
addbehaviour(BH_SCRAWNY, "scrawny");
|
|
// givebehaviour() will modify maxhp
|
|
|
|
// unique monsters / bosses
|
|
addrace(R_JAILER, "jailer", 110, '@', C_MAGENTA, MT_FLESH, RC_HUMANOID, "Jailers are generally known for their surplus of brawn and utter lack of brains. This one is no different.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_NAME, NA, NA, NA, "Jimbo");
|
|
addflag(lastrace->flags, F_UNIQUE, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "55-65");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STAYINROOM, NA, B_MAYCHASE, NA, NULL); // stay in our room, but we can chase targets out.
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "50-100 gold coins");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "+2 halberd");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "great armour");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "good armour");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "good armour");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "armour");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "map");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "dungeon exit orb");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "ancient iron key");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "concealing powder");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_POLEARMS, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_ARMOUR, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_HEAVYBLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_HURRICANESTRIKE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_RAGE, 20, 20, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_BABAYAGA, "Baba Yaga", 50, '@', C_MAGENTA, MT_FLESH, RC_HUMANOID, "A hideous old hag with long, thin grey hair. Her face is covered with warts, and her few remaining teeth are filed to sharp points.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_NAME, NA, NA, NA, "Baba Yaga");
|
|
addflag(lastrace->flags, F_UNIQUE, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 16, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 17, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_RESISTMAG, 75, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_MAGIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_NECROTIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINVIS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "ancient mossy key");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FEAR, NA, NA, "pw:3;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WEAKEN, NA, NA, "pw:5;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SUMMONANIMALSSM, 10, 10, "pw:5;count:5;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SUMMONANIMALSMD, 10, 10, "pw:5;count:4;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_ENTANGLE, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BLINK, NA, NA, "pw:6;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "grins");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "cackles");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CONSUMESOULS, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "cackles evilly^an evil cackling");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_BABAYAGAHUT, "walking hut", 1000, '_', C_BROWN, MT_DRAGONWOOD, RC_MAGIC, "A small wooden cabin which walks around upon enormous chicken legs. It has a single doorway, lined with razor-sharp teeth.");
|
|
addbodypart(lastrace, BP_BODY, "walls");
|
|
addbodypart(lastrace, BP_LEGS, "legs");
|
|
addbodypart(lastrace, BP_FEET, "feet");
|
|
addflag(lastrace->flags, F_NAME, NA, NA, NA, "Baba Yaga's hut");
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "wooden hut");
|
|
addflag(lastrace->flags, F_HOSTILE, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 10, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 9, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 12, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STAYINROOM, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_JUMP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 2, NA, "^clucking");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TIMID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
|
|
// races / monsters
|
|
// playable races
|
|
addrace(R_HUMAN, "human", 75, '@', C_BROWN, MT_FLESH, RC_HUMANOID, "Your average example of the Homo Sapiens species.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_PLAYABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_VARLEVEL, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 75, J_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TAMABLE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
|
|
|
|
addrace(R_AVIAD, "aviad", 60, 'h', C_WHITE, MT_FLESH, RC_HUMANOID, "A bipedal bird-like race. Aviads are human-sized but have more delicate bones and are covered in feathers. They have sharp talons in place of fingernails, and large feathered wings sprouting from their backs. While capable of flight from birth, their feathers make them vulnerable to fire and lightning based attacks.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
setbodypartname(lastrace, BP_HANDS, "talons");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right claw");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left claw");
|
|
// stats
|
|
addflag(lastrace->flags, F_PLAYABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
// bonuses
|
|
addbonustext(lastrace->flags, F_BONDESC, "Unarmed claw attack (damage rating 4)");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_VISRANGEMOD, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_EVASION, PR_NOVICE, NA, NULL);
|
|
// penalties
|
|
addbonustext(lastrace->flags, F_PENDESC, "Low hit points.");
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, 3, 4, NULL);
|
|
// other special stuff
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "screechs^a screech");
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_VARLEVEL, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 75, J_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TAMABLE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AVIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
|
|
addrace(R_CYBORG, "cyborg", 150, '@', C_GREY, MT_FLESH, RC_HUMANOID, "A cyborg is a human with cybernetic implants grafted throughout their body. In most cases their body has been partially reconstructed from metal, with a thin later of skin outside to maintain a human appearance. Cyborgs are exceptionaly good with technology due to their computer-enhanced brain, but completely unable to use magic (for much the same reason).");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_EARS, "audio inputs");
|
|
setbodypartname(lastrace, BP_EYES, "video inputs");
|
|
setbodypartname(lastrace, BP_BODY, "central frame");
|
|
setbodypartname(lastrace, BP_LEGS, "stabilisers");
|
|
setbodypartname(lastrace, BP_HANDS, "manipulators");
|
|
setbodypartname(lastrace, BP_FEET, "lower propulsion units");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right sensor");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left sensor");
|
|
// stats
|
|
addflag(lastrace->flags, F_PLAYABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
// bonuses
|
|
addbonustext(lastrace->flags, F_BONDESC, "Computerised brain provides automatic analysis.");
|
|
addflag(lastrace->flags, F_EXTRAINFO, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_TECHUSAGE, PR_ADEPT, NA, NULL);
|
|
// penalties
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_WATER, NA, NA, "2d6");
|
|
addflag(lastrace->flags, F_DTVULN, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SWIMMING, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_ALLOMANCY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_MENTAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_NATURE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_AIR, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_DEATH, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_DIVINATION, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_LIFE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_MODIFICATION, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_SUMMONING, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_TRANSLOCATION, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SS_WILD, NA, NA, NULL);
|
|
// other special stuff
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_VARLEVEL, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "bleeps^a bleep");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TAMABLE, 35, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
|
|
|
|
addrace(R_ASHKARI, "ashkari", 60, '@', C_ORANGE, MT_FLESH, RC_HUMANOID, "The egotistical cat-like Ashkari are nimble, have extraordinary balance, smell, eyesight... and ego. The latter makes them unwise and vulnerable to will-based magic attacks. They instinctually hate canines and avians.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_PLAYABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_VARLEVEL, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 75, J_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "hisses^a hiss");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACEWITHFLAG, F_CANINE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACEWITHFLAG, F_AVIAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FELINE, B_TRUE, NA, NA, NULL);
|
|
// bonuses
|
|
addbonustext(lastrace->flags, F_BONDESC, "Unarmed claw attack (damage rating 3)");
|
|
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_CLIMBING, PR_NOVICE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_NOVICE, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_JUMP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STABILITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
// penalties
|
|
addbonustext(lastrace->flags, F_PENDESC, "Slightly low Hit Points.");
|
|
addbonustext(lastrace->flags, F_PENDESC, "Can never learn Swimming.");
|
|
addbonustext(lastrace->flags, F_PENDESC, "Enters a bezerk rage upon sight of avians or canines.");
|
|
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FASTMETAB, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_MAGIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_SONIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_WATER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_SWIMMING, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TAMABLE, 25, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
|
|
|
|
addrace(R_DWARF, "delver", 60, 'h', C_BROWN, MT_FLESH, RC_HUMANOID, "Delvers are short, hardy creatures who generally spend their entire lives mining underground. As such they have great fitness and enhanced low-light vision, but generally lack great reasoning skills and magical ability.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_PLAYABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_VARLEVEL, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 75, J_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, NULL);
|
|
// bonuses
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_NOVICE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_METALWORK, PR_NOVICE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_ALLOMANCY, PR_NOVICE, NA, NULL);
|
|
// penalties
|
|
addflag(lastrace->flags, F_MPMOD, -3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_LIGHT, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_TAMABLE, 35, NA, NA, NULL);
|
|
// for ai:
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_GEM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
|
|
|
|
addrace(R_ELF, "selnor", 60, '@', C_GREEN, MT_FLESH, RC_HUMANOID, "The Selnor race are slender, graceful beings around human-sized but far nimbler. They have high intelligence and magical affinity, but lack physical strength. The Selnor meditate instead of sleeping, thus maintaining basic awareness.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_PLAYABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_VARLEVEL, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 5, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 80, NA, NA, "1-50 gold coins");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 65, OC_WEAPON, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 65, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 65, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 65, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_SCROLL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_SCROLL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 75, J_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, NULL);
|
|
// bonuses
|
|
addflag(lastrace->flags, F_SEEINDARK, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MEDITATES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MPMOD, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_RANGED, PR_NOVICE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_STEALTH, PR_NOVICE, NA, NULL);
|
|
// penalties
|
|
addbonustext(lastrace->flags, F_PENDESC, "Slightly below average Hit Points.");
|
|
addflag(lastrace->flags, F_TAMABLE, 25, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
|
|
addrace(R_MAMMOAN, "mammoan", 150, '@', C_GREY, MT_LEATHER, RC_HUMANOID, "Mammoans are huge, elephant-like humanoids. Their have great senses of hearing and smell, a photographic memory, and leather skin which greatly lessens damage. On the other hand they vision is poor, their movement slow, and their digestive system cannot cope with meat.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
noarmouron(lastrace, BP_EARS);
|
|
addflag(lastrace->flags, F_PLAYABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_VARLEVEL, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYSLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 65, OC_WEAPON, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_SCROLL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_SCROLL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 75, J_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "roars^a roars");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, NULL);
|
|
// bonuses
|
|
addbonustext(lastrace->flags, F_BONDESC, "Leather skin reduces damage.");
|
|
addflag(lastrace->flags, F_ARMOURRATING, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_PHOTOMEM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_NOVICE, NA, NULL);
|
|
// penalties
|
|
addbonustext(lastrace->flags, F_PENDESC, "Can never learn Athletics.");
|
|
addflag(lastrace->flags, F_VISRANGEMOD, -2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_SONIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSKILL, SK_ATHLETICS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TAMABLE, 25, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
|
|
|
|
|
|
// robots
|
|
addrace(R_ANDROID, "android", 150, 'R', C_GREEN, MT_METAL, RC_ROBOT, "Androids are robots contructed in the likeness of a human. Unlike cyborgs they contain no living tissue at all outside the brain.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_EARS, "audio sensors");
|
|
setbodypartname(lastrace, BP_EYES, "video sensors");
|
|
setbodypartname(lastrace, BP_BODY, "central frame");
|
|
setbodypartname(lastrace, BP_LEGS, "stabilisers");
|
|
setbodypartname(lastrace, BP_HANDS, "manipulators");
|
|
setbodypartname(lastrace, BP_FEET, "lower propulsion units");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right sensor");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left sensor");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_EXTRAINFO, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_TECHUSAGE, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "bleeps^a bleep");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_TECH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_TECH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_TECH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_TECH, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_BOTRIOT, "riot bot", 90, 'b', C_BOLDBLUE, MT_METAL, RC_ROBOT, "Riot bots were created as unmanned crowd-control devices. They use water cannons, gas and electricity to repel violent protestors, and can protect themselves.");
|
|
addbodypart(lastrace, BP_BODY, "central core");
|
|
addbodypart(lastrace, BP_EARS, "aural sensors");
|
|
addbodypart(lastrace, BP_EYES, "video sensors");
|
|
addbodypart(lastrace, BP_FEET, "wheels");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 4, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HEAVENARM, 25, NA, NA, "force field");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_WATERJET, 3, 3, "pw:6;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_CLOUDKILL, 5, 5, "pw:1;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FORCESPHERE, 8, 8, "pw:6;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 80, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "aims its turret");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_TECH, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ZAPPER, 6, NA, NULL);
|
|
|
|
addrace(R_BOTSECURITY, "security bot", 90, 'b', C_BROWN, MT_METAL, RC_ROBOT, "One step up from droids, security bots are basic robotic constructs equipped with razor-sharp sawblades, and a protective force field.");
|
|
addbodypart(lastrace, BP_BODY, "central core");
|
|
addbodypart(lastrace, BP_EARS, "aural sensors");
|
|
addbodypart(lastrace, BP_EYES, "video sensors");
|
|
addbodypart(lastrace, BP_FEET, "wheels");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 4, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HEAVENARM, 6, NA, NA, "force field");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ZAPPER, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_SAWBLADE, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_TECH, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "swivels its sensors");
|
|
|
|
addrace(R_DROID, "droid", 90, 'b', C_GREY, MT_METAL, RC_ROBOT, "Droids are very basic robots designed for one simple function. Generally this function is \"kill\". They can generate short (but powerful) electrical charges to deter trespassers.");
|
|
addbodypart(lastrace, BP_BODY, "central core");
|
|
addbodypart(lastrace, BP_EARS, "aural sensors");
|
|
addbodypart(lastrace, BP_EYES, "video sensors");
|
|
addbodypart(lastrace, BP_FEET, "wheels");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 4, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_TECH, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ZAPPER, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_FLAMETURRET, "flame turret", 100, 'R', C_RED, MT_METAL, RC_ROBOT, "A motorised flamethrower mounted on an automated turntable.");
|
|
addbodypart(lastrace, BP_BODY, "central core");
|
|
addbodypart(lastrace, BP_EYES, "sensors");
|
|
addbodypart(lastrace, BP_FEET, "turntable");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 0, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DOESNTMOVE, B_TRUE, NA, B_TRUE, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_BURNINGWAVE, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 100, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_TECH, NA, NULL);
|
|
addflag(lastrace->flags, F_AUTOROTATE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FOLLOWTIME, 3, NA, NA, NULL);
|
|
|
|
addrace(R_HOVERSCOUT, "hoverscout", 100, 'b', C_CYAN, MT_METAL, RC_ROBOT, "An airborne drone constantly on the lookout for intruders. Hoverscouts are equipped with technology allowing them to teleport in backup units.");
|
|
addbodypart(lastrace, BP_BODY, "central core");
|
|
addbodypart(lastrace, BP_EARS, "aural sensors");
|
|
addbodypart(lastrace, BP_EYES, "video sensors");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 0, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LEVITATING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_CREATEMONSTER, 15, 15, "pw:3;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 100, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FLY, 2, NA, "^whirring");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 5, NA, "blares its siren^a loud siren");
|
|
addflag(lastrace->flags, F_SPELLCASTTIME, 5, OT_S_CREATEMONSTER, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "emits a beam of coloured light");
|
|
addflag(lastrace->flags, F_SPELLCASTCONTTEXT, OT_NONE, NA, NA, "intensifies its beam of light");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_TECH, NA, NULL);
|
|
|
|
// human monsters...
|
|
addrace(R_BANDITLDR, "bandit leader", 75, '@', C_GREY, MT_FLESH, RC_HUMANOID, "Like a regular bandit, but bigger and stronger. Enough so to bully their followers into submission anyway.");
|
|
lastrace->baseid = R_BANDIT;
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_VARLEVEL, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEMANDSBRIBE, NA, NA, NA, "Your money or your life!");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "1-100 gold coins");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 100, OC_WEAPON, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 100, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 100, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_SCROLL, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 100, 1, 3, "bandit");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addrace(R_BANDIT, "bandit", 75, '@', C_GREY, MT_FLESH, RC_HUMANOID, "Bandits prey on travellers, demanding cash in exchange for not beating them to a pulp.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_VARLEVEL, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_DEMANDSBRIBE, NA, NA, NA, "Hand over all your gold!");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "1-100 gold coins");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 100, OC_WEAPON, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 100, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 15, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 15, OC_SCROLL, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOJOBTEXT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 15, J_WIZARD, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 50, J_ROGUE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addrace(R_BEGGAR, "beggar", 50, '@', C_BROWN, MT_FLESH, RC_HUMANOID, "Beggar roam the streets of towns, pleading for any spare cash.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_VILLAGE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-2 gold coins");
|
|
addflag(lastrace->flags, F_STARTOB, 25, OC_POTION, NA, "potion of rum");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_THIEVERY, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_RANDOMTALKPCT, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RANDOMTALK, SP_BEG, SV_WHISPER, SV_TALK, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addrace(R_DRUNK, "drunkard", 90, '@', C_GREY, MT_FLESH, RC_HUMANOID, "A humon who has become hopelessly addicated to alcohol. They exist in a permenant state of inebriation.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_RARITY, H_VILLAGE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_VARLEVEL, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 80, NA, NA, "1-50 gold coins");
|
|
addflag(lastrace->flags, F_STARTOB, 100, OC_POTION, NA, "1-5 potions of rum");
|
|
addflag(lastrace->flags, F_STARTOB, 70, OC_POTION, NA, "1-5 empty flasks");
|
|
addflag(lastrace->flags, F_STARTOB, 60, OC_POTION, NA, "1-2 gold coins");
|
|
addflag(lastrace->flags, F_STARTJOB, 50, J_RANDOM, NA, NULL); // often unemployed
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts drunkenly^a drunken shout");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RANDOMTALKPCT, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RANDOMTALK, SP_DRUNK, SV_WHISPER, SV_SHOUT, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
f = addflag(lastrace->flags, F_DRUNK, 5, NA, NA, NULL);
|
|
addcondition(f, FC_NOCONDITION, 30);
|
|
addaltval(f, F_DRUNK, 3, NA, NA, NULL);
|
|
|
|
addrace(R_PRISONER, "prisoner", 60, '@', C_GREY, MT_FLESH, RC_HUMANOID, "Somebody who has been improsioned.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_VARLEVEL, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-2 stones");
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ISPRISONER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HIREPRICE, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
|
|
addrace(R_TOWNGUARD, "town guard", 100, '@', C_GREY, MT_FLESH, RC_HUMANOID, "A surly guard employed to uphold the laws of a town.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "60-90");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STAYINHABITAT, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_GUARD, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_VILLAGE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_VARLEVEL, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "good weapon");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "scale armour");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "good armour");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "good armour");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "good armour");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "short bow");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-10 arrows");
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
|
|
// gods - kep sorted alphabetically
|
|
addrace(R_GODPURITY, "Amberon", 90, '@', C_BOLDMAGENTA, MT_FLESH, RC_GOD, "Amberon appears as a shining statuesque humanoid with gold-hued skin. He represents Purity, Law and Justice.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "100");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "50");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "90");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "80");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "80");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "80");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed +3 flaming longsword");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "10 blessed potions of water");
|
|
//addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_RARITY, NA, NA, NULL); // ie. everything
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_LIFE, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_FIRSTAID, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gestures imperiously");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 75, NA, NA, NULL);
|
|
// god abilities
|
|
addflag(lastrace->flags, F_GODOF, NA, NA, NA, "Purity & Order");
|
|
addflag(lastrace->flags, F_GENDER, G_MALE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_LIGHT, NA, NA, "pw:10;");
|
|
// may cast all life spells
|
|
for (ot = objecttype ; ot ; ot = ot->next) {
|
|
if ((ot->obclass->id == OC_SPELL) && (getspellschool(ot->id) == SS_LIFE)) {
|
|
addflag(lastrace->flags, F_CANWILL, ot->id, NA, NA, "pw:10;");
|
|
}
|
|
}
|
|
addflag(lastrace->flags, F_SACRIFICEOBBLESSED, B_CURSED, NA, 5, "OB explode#S in a shower of sparks!");
|
|
addflag(lastrace->flags, F_SACRIFICEOB, OT_CORPSE, NA, 10, "OB explode#S in a shower of sparks!");
|
|
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WISHLIMITED, NA, NA, "pw:10;");
|
|
// likes/dislikes
|
|
addflag(lastrace->flags, F_GODPOISON, B_FALSE, 100, NA, NULL);
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "destroying the undead");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "killing evil creatures");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "blessing objects");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "acts of charity");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "sacrificing cursed objects through prayer");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "attacking good, peaceful or helpless creatures");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "the use of poison");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "cursing objects");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "eating pets");
|
|
|
|
|
|
addrace(R_GODBATTLE, "Bjorn", 300, '@', C_BOLDMAGENTA, MT_FLESH, RC_GOD, "Bjorn the Battlelord is the god of honourable combat. He appears as a heavily built, bearded warrior clad in well-used armour.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 95, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "100");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "90");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "50");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "50");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "100");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "70");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed +5 helmet");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed bloodstained +5 plate mail");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed bloodstained +5 set of greaves");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed +2 tower shield of reflection");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed bloodstained +3 pair of gauntlets of power");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed +5 battleaxe of penetration");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed bloodstained +2 pair of metal boots");
|
|
// master of all weapons
|
|
for (sk = firstskill ; sk ; sk = sk->next) {
|
|
if (isweaponskill(sk->id) || (sk->id == SK_UNARMED)) {
|
|
addflag(lastrace->flags, F_STARTSKILL, sk->id, PR_MASTER, NA, NULL);
|
|
}
|
|
}
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_ARMOUR, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SHIELDS, PR_MASTER, NA, NULL);
|
|
// god abilities
|
|
addflag(lastrace->flags, F_GODOF, NA, NA, NA, "Battle & Honour");
|
|
addflag(lastrace->flags, F_GENDER, G_MALE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STAMREGEN, NA, NA, NA, "10"); // ie. basically infinite
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_HEAVYBLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_WARCRY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_RAGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_AIMEDSTRIKE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_HURRICANESTRIKE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_FLURRY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SHIELDBASH, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_GODPOISON, B_FALSE, 25, NA, NULL);
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "victory in battle");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "prolonged peace");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "the use of poison");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "the use of magic");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "cowardice");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "dishonourable combat");
|
|
// sacrifices
|
|
addflag(lastrace->flags, F_SACRIFICEOBWITHFLAG, F_BATTLESPOILS, NA, 3, "OB explode#S into a shower of blood!");
|
|
addflag(lastrace->flags, F_SACRIFICEOB, OT_SPELLBOOK, NA, 10, "OB explode#S into a shower of blood!");
|
|
addflag(lastrace->flags, F_SACRIFICEOB, OT_GRIMOIRE, NA, 10, "OB explode#S into a shower of blood!");
|
|
|
|
addrace(R_GODNATURE, "Ekrub", 200, '@', C_BOLDMAGENTA, MT_FLESH, RC_GOD, "Ekrub is goddess of nature and creation. She appears as a female figure dressed in farming clothes. Ekrub has a burning hatred of all dragonkind, who she views as abhorrent due to their destructive nature.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 95, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "80");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "80");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "85");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "65");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "90");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "60");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed +5 pitchfork of dragonslaying");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed +5 longbow");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "100 arrows of seeking");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed +2 overalls");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed sun hat");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed leather gloves");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed rubber boots");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_POLEARMS, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_CLIMBING, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_COOKING, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_RANGED, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SWIMMING, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_NATURE, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_DRAGONS, PR_ADEPT, NA, NULL); // ekrub hates dragons
|
|
// god abilities
|
|
addflag(lastrace->flags, F_GODOF, NA, NA, NA, "Creation & Nature");
|
|
addflag(lastrace->flags, F_GENDER, G_FEMALE, NA, NA, NULL);
|
|
// may cast all nature spells
|
|
for (ot = objecttype ; ot ; ot = ot->next) {
|
|
if ((ot->obclass->id == OC_SPELL) && (getspellschool(ot->id) == SS_NATURE)) {
|
|
addflag(lastrace->flags, F_CANWILL, ot->id, NA, NA, "pw:10;");
|
|
}
|
|
}
|
|
addflag(lastrace->flags, F_GODPOISON, B_FALSE, 25, NA, NULL);
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "eating animals when hungry");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "killing dragons");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "cooking");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "creating objects");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "casting certain nature spells");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "damaging or destroying objects");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "the use of poison");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "attacking plants");
|
|
addflag(lastrace->flags, F_HATESRACECLASS, RC_DRAGON, NA, NA, NULL);
|
|
// sacrifices
|
|
addflag(lastrace->flags, F_SACRIFICEOB, OT_CORPSE, RC_ANIMAL, 10, "Writhing vines sprout up and drag OB underground.");
|
|
addflag(lastrace->flags, F_SACRIFICEOB, OT_CORPSE, RC_DRAGON, 25, "Writhing vines sprout up and tear OB to pieces!");
|
|
|
|
|
|
addrace(R_GODTHIEVES, "Felix", 300, '@', C_BOLDMAGENTA, MT_FLESH, RC_GOD, "Felix is the god of Thieves, Revenge and Greed. He generally appears as an overweight glutton carrying his contraband loot around in huge sacks. Despite this, he is amazingly agile and is said to be able to steal one's soul right out of their body.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "75");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "100");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "45");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "50");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "40");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "30");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "+5 dagger of sharpness");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed ring of hunger");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "10 huge bags of holding");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "10 huge bags of holding");
|
|
//addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_RARITY, NA, NA, NULL); // ie. everything
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_THIEVERY, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_STEALTH, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_BACKSTAB, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_THROWING, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_CLIMBING, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "waves his hand");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 75, NA, NA, NULL);
|
|
// god abilities
|
|
addflag(lastrace->flags, F_GODOF, NA, NA, NA, "Revenge & Thievery");
|
|
addflag(lastrace->flags, F_GENDER, G_MALE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_HIDE, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CALLWIND, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CONFISCATE, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WISHLIMITED, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BLINKASS, NA, NA, "pw:10;");
|
|
//addflag(lastrace->flags, F_CANCAST, OT_S_HUNGER, NA, NA, "pw:1;");
|
|
// likes/dislikes
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "backstabbing");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "stealing items");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "lockpicking");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "bribery");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "purchasing items");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "giving away or discarding money");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "opening locked objects through force");
|
|
// sacrifices (piety val will be overridden with value)
|
|
addflag(lastrace->flags, F_SACRIFICEOBCLASS, OC_MONEY, NA, 2, "OB IS consumed in a swirl of shadowy blackness.");
|
|
addflag(lastrace->flags, F_SACRIFICEOBWITHFLAG, F_GEM, NA, 2, "OB IS consumed in a swirl of shadowy blackness.");
|
|
|
|
addrace(R_GODLIFE, "Glorana", 2, '@', C_BOLDMAGENTA, MT_FLESH, RC_GOD, "Glorana is the goddess of life. She appears as a pulsating orb of holy energy.");
|
|
addbodypart(lastrace, BP_BODY, "life energy");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 95, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "30");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "85");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "65");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "75");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "65");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "50");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHHOLY, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_CARTOGRAPHY, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_HUMANOID, PR_MASTER, NA, NULL);
|
|
// god abilities
|
|
addflag(lastrace->flags, F_GODOF, NA, NA, NA, "Life & Healing");
|
|
addflag(lastrace->flags, F_GENDER, G_FEMALE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_REGENERATES, 5, NA, NA, NULL);
|
|
// may cast all life spells
|
|
for (ot = objecttype ; ot ; ot = ot->next) {
|
|
if ((ot->obclass->id == OC_SPELL) && (getspellschool(ot->id) == SS_LIFE)) {
|
|
addflag(lastrace->flags, F_CANWILL, ot->id, NA, NA, "pw:10;");
|
|
}
|
|
}
|
|
addflag(lastrace->flags, F_GODPOISON, B_FALSE, 25, NA, NULL);
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "destroying the undead");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "casting certain holy spells");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "natural healing");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "the destruction of healing potions");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "the use of poison");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "the use of necromancy");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "attacking peaceful creatures");
|
|
addflag(lastrace->flags, F_HATESRACECLASS, RC_UNDEAD, NA, NA, NULL);
|
|
// sacrifices
|
|
addflag(lastrace->flags, F_SACRIFICEOB, OT_POT_HEALINGMIN, NA, 10, "OB IS consumed by a shaft of holy light.");
|
|
addflag(lastrace->flags, F_SACRIFICEOB, OT_POT_HEALING, NA, 20, "OB IS consumed by a shaft of holy light.");
|
|
addflag(lastrace->flags, F_SACRIFICEOB, OT_POT_HEALINGMAJ, NA, 30, "OB IS consumed by a shaft of holy light.");
|
|
addflag(lastrace->flags, F_SACRIFICEOB, OT_POT_RESTORATION, NA, 40, "OB IS consumed by a shaft of holy light.");
|
|
addflag(lastrace->flags, F_SACRIFICEOB, OT_POT_AMBROSIA, NA, 40, "OB IS consumed by a shaft of holy light.");
|
|
addflag(lastrace->flags, F_SACRIFICEOB, OT_BANDAGE, NA, 30, "OB IS consumed by a shaft of holy light.");
|
|
addflag(lastrace->flags, F_SACRIFICEOBCLASS, OC_FOOD, NA, 3, "OB IS consumed by a shaft of holy light.");
|
|
|
|
addrace(R_GODDEATH, "Hecta", 100, '@', C_BOLDMAGENTA, MT_BONE, RC_GOD, "The skeletal god of Death is garbed in a cloak made of pure shadow. and weilds an enormous scythe.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "80");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "100");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "75");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "90");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "30");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "30");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 12, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHPARALYZE2, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "cloak of shadows");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "bone helmet");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "10-20 bones");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "+15 scythe of sharpness");
|
|
//addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_DEATH, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "extends a skeletal finger");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 75, NA, NA, NULL);
|
|
// god abilities
|
|
addflag(lastrace->flags, F_GODOF, NA, NA, NA, "Death");
|
|
addflag(lastrace->flags, F_GENDER, G_MALE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 10, NA, NA, NULL);
|
|
// may cast all death spells
|
|
for (ot = objecttype ; ot ; ot = ot->next) {
|
|
if ((ot->obclass->id == OC_SPELL) && (getspellschool(ot->id) == SS_DEATH)) {
|
|
addflag(lastrace->flags, F_CANWILL, ot->id, NA, NA, "pw:10;");
|
|
}
|
|
}
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WISHLIMITED, NA, NA, "pw:10;");
|
|
// likes
|
|
addflag(lastrace->flags, F_GODPOISON, B_TRUE, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "killing (especially the good-aligned)");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "attacking the helpless");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "casting necromancy spells");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "cursing objects");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "allowing enemies to flee");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "magical healing");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "bestowing blessings");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "casting holy spells");
|
|
// sacrifices
|
|
addflag(lastrace->flags, F_SACRIFICEOB, OT_CORPSE, NA, 2, "Bony claws rise up and drag OB underground.");
|
|
|
|
addrace(R_GODFIRE, "Klikirak", 2, '@', C_BOLDMAGENTA, MT_FLESH, RC_GOD, "Klikirak is the burning god of Fire and Destruction. He is visible only as a raging inferno of fire, destroying anything in his path.");
|
|
addbodypart(lastrace, BP_BODY, "flames");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 95, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "50");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "100");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "40");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "40");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "70");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "60");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHBURN, 16, NA, NULL);
|
|
|
|
// god abilities
|
|
// may cast all fire spells
|
|
for (ot = objecttype ; ot ; ot = ot->next) {
|
|
if ((ot->obclass->id == OC_SPELL) && (getspellschool(ot->id) == SS_FIRE)) {
|
|
addflag(lastrace->flags, F_CANWILL, ot->id, NA, NA, "pw:10;");
|
|
}
|
|
}
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_PRODUCESLIGHT, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AUTOCREATEOB, 1, NA, NA, "large fire");
|
|
addflag(lastrace->flags, F_RETALIATE, 2, 4, DT_FIRE, "roaring flames");
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_FIRE, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_GODOF, NA, NA, NA, "Destruction & Fire");
|
|
addflag(lastrace->flags, F_GENDER, G_MALE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "starting fires");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "burning objects");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "killing with fire");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "using destructive fire-based magic");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "creating objects");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "inflicting cold-based damage");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "using cold-based magic");
|
|
// sacrifices
|
|
addflag(lastrace->flags, F_SACRIFICEOBWITHFLAG, F_FLAMMABLE, NA, 2, "OB IS consumed in a burst of fire!");
|
|
|
|
addrace(R_GODMAGIC, "Lumara", 55, '@', C_BOLDMAGENTA, MT_FLESH, RC_GOD, "Lumara is the goddess of magic. She appears as a slender elderly woman, her expression wise with age.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 95, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "50");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "50");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "100");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "100");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "55");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "60");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 25, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "+5 wizard hat of knowledge");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed robe");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "pair of sandals");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "pair of spectacles");
|
|
|
|
// can cast all spells and master of all spell skills
|
|
for (i = SS_NONE+1; i < SS_LAST; i++) {
|
|
if ((i != SS_ABILITY) && (i != SS_DIVINE)) {
|
|
enum SKILL skid;
|
|
skid = getschoolskill(i);
|
|
if (skid != SK_NONE) {
|
|
addflag(lastrace->flags, F_STARTSKILL, skid, PR_MASTER, NA, NULL);
|
|
}
|
|
mayusespellschool(lastjob->flags, i, F_CANWILL, 10);
|
|
}
|
|
}
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
// god abilities
|
|
addflag(lastrace->flags, F_GODOF, NA, NA, NA, "Magic");
|
|
addflag(lastrace->flags, F_GENDER, G_FEMALE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MPREGEN, NA, NA, NA, "100"); // ie. basically infinite
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "the use of magic");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "the use of missile or ranged weapons");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "the use of technology");
|
|
// sacrifices
|
|
addflag(lastrace->flags, F_SACRIFICEOBCLASS, OC_POTION, NA, 2, "OB disappear#S in a swirl of multicoloured lights.");
|
|
addflag(lastrace->flags, F_SACRIFICEOBCLASS, OC_SCROLL, NA, 2, "OB disappear#S in a swirl of multicoloured lights.");
|
|
addflag(lastrace->flags, F_SACRIFICEOBCLASS, OC_WAND, NA, 5, "OB disappear#S in a swirl of multicoloured lights.");
|
|
addflag(lastrace->flags, F_SACRIFICEOBCLASS, OC_RING, NA, 10, "OB disappear#S in a swirl of multicoloured lights.");
|
|
|
|
|
|
addrace(R_GODMERCY, "Yumi", 300, '@', C_BOLDMAGENTA, MT_FLESH, RC_GOD, "Yumi is the goddess of Mercy and Forgiveness. She has a calm, serene face and wears simple clothing.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 95, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "50");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, NA, NA, "50");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, NA, NA, "90");
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "85");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "50");
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, NA, NA, "85");
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_UNIQUE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "cotton shirt of health");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "cloth trousers ");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blessed longsword of mercy");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "ring of miracles");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_FIRSTAID, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LONGBLADES, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "raises her palms");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 75, NA, NA, NULL);
|
|
// god abilities
|
|
addflag(lastrace->flags, F_GODOF, NA, NA, NA, "Mercy & Forgiveness");
|
|
addflag(lastrace->flags, F_GENDER, G_FEMALE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CUREPOISON, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_HEALINGMAJ, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WISHLIMITED, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SATEHUNGER, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_DISPERSAL, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SLEEP, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_GODPOISON, B_FALSE, 25, NA, NULL);
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "allowing fleeing creatures to escape");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "knocking enemies unconscious");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "calming others");
|
|
addflag(lastrace->flags, F_GODLIKES, NA, NA, NA, "acts of charity");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "attacking the innocent or helpless");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "sneak attacks");
|
|
addflag(lastrace->flags, F_GODDISLIKES, NA, NA, NA, "the use of poison");
|
|
// sacrifices
|
|
addflag(lastrace->flags, F_SACRIFICEOBCLASS, OC_WEAPON, NA, 2, "OB IS destroyed in a flash of power.");
|
|
|
|
|
|
|
|
// monsters
|
|
addrace(R_BEHOLDER, "beholder", 5, 'e', C_MAGENTA, MT_FLESH, RC_MAGIC, "A floating orb of flesh with a large mouth, single central eye, and numerous smaller eyestalks.");
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addbodypart(lastrace, BP_EYES, "eyestalks");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LEVITATING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FIREDART, NA, NA, "pw:5;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WEAKEN, NA, NA, "pw:2;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SLEEP, NA, NA, "pw:2;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SUCK, NA, NA, "pw:2;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_PARALYZE, NA, NA, "pw:2;");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gazes");
|
|
addflag(lastrace->flags, F_CASTTYPE, OT_NONE, CT_GAZE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_BOGGART, "bogle", 15, 'n', C_BROWN, MT_WOOD, RC_MAGIC, "An evil household fairy made of wood. They delight in sowing disease and misfortune.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_TWIDDLE, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_INSTANTDISROBE, 3, 3, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BLIGHT, 2, 2, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AVOIDOBTYPE, OT_SALT, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_DEMANDSBRIBE, NA, NA, NA, "Give me gold!");
|
|
|
|
addrace(R_BUGBEAR, "bugbear", 120, 'G', C_BROWN, MT_FLESH, RC_HUMANOID, "A huge goblinoid creature, similar to a hobgoblin but larger again, with a temperament to match.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_HANDS, "paws");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right foreclaw");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left foreclaw");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 9, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "heavy flail");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, 3, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_HEAVYBLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 33, J_GUARD, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 33, J_WARRIOR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 50, 1, 3, "goblin");
|
|
addflag(lastrace->flags, F_MINIONS, 20, 1, 3, "goblin warrior");
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
|
|
addrace(R_CHIMERA, "chimera", 300, 'm', C_MAGENTA, MT_FLESH, RC_MAGIC, "A monstrous hybrid where a goat's rear has been magically attached to a lion's front. It has three heads - a goat's, a lion's and a wyrm's - and a pair of bat-like wings.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
setbodypartname(lastrace, BP_HEAD, "lion's head");
|
|
addbodypart(lastrace, BP_HEAD2, "dragon's head");
|
|
addbodypart(lastrace, BP_HEAD3, "goat's head");
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, BP_HEAD, NULL); // lion head
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, BP_HEAD2, NULL); // dragon head
|
|
addflag(lastrace->flags, F_HASATTACK, OT_HORN, 5, BP_HEAD3, NULL); // goat horns
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL); // front lion claws
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL); // front lion claws
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, SV_CAR, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, SV_SHOUT, NA, "bleats^an angry bleating");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 3, NA, "screeches in pain^screeches of pain");
|
|
addflag(lastrace->flags, F_CANSEVER, BP_HEAD, BP_HEAD, NA, "lion head");
|
|
addflag(lastrace->flags, F_CANSEVER, BP_HEAD2, BP_HEAD2, OT_S_BURNINGWAVE, "red wyrm head");
|
|
addflag(lastrace->flags, F_CANSEVER, BP_HEAD3, BP_HEAD3, NA, "goat head");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, "range:2;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BURNINGWAVE, NA, NA, "pw:6;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "unleashes its fiery breath");
|
|
addflag(lastrace->flags, F_SEEINDARK, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 14, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FELINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AVIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_MUTABLE, B_TRUE, NA, "100");
|
|
|
|
addrace(R_CENTAUR, "centaur", 500, 'u', C_GREY, MT_FLESH, RC_ANIMAL, "Centaurs look like horses with their neck upwards replaced by a human torso and arms.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, "");
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_HOOF, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_HOOF, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
// 50% chance of a shortbow.
|
|
// if not, then 50% chance of a longbow
|
|
f = addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "short bow");
|
|
addcondition(f, FC_NOCONDITION, 50);
|
|
addaltval(f, F_STARTOB, 50, NA, NA, "longbow");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "10-30 arrows");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "shield");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "lance");
|
|
addflag(lastrace->flags, F_STARTOB, 80, NA, NA, "1-20 gold coins");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 4, NA, "screams in pain^screams of pain");
|
|
addflag(lastrace->flags, F_MORALE, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EQUINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_RANGED, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SHIELDS, PR_ADEPT, NA, NULL);
|
|
|
|
addrace(R_COCKATRICE, "cockatrice", 5, 'c', C_YELLOW, MT_FLESH, RC_DRAGON, "A small two-legged wyrm with a rooster's head. Its touch is said to petrify the flesh of living creatures.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "splash of cockatrice blood");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 2, NA, "^clucking");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYSLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_PETRIFY, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTIMMUNE, DT_PETRIFY, NA, "50");
|
|
// special attack handled in attack.c
|
|
|
|
addrace(R_CREEPINGCLAW, "creeping claw", 3, 'x', C_YELLOW, MT_FLESH, RC_MAGIC, "A disembodied hand, animated by magic. Its favourite pastime is to leap onto unsuspecting victims and crush the life out of them.");
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_TINY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 4, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CRUSH, NA, NA, "dam:1d6;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, "range:5;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 70, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_DARKMANTLE, "darklurk", 70, 'U', C_BLUE, MT_FLESH, RC_MAGIC, "A floating squid-like creature, rarely seen due to its ability to cloak itself in a magical darkness. They use their huge tentacles to grab then crush their unsuspecting prey.");
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addbodypart(lastrace, BP_LEGS, "tentacles");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTHIDDENPCT, 80, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYSLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLSPEED, SP_VERYSLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_VERYSLOW, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTWITHOUTIQ, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_DARKNESS, 7, 7, "pw:3;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CRUSH, NA, NA, "dam:0d0+5;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "waves its tentacles");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TENTACLE, 12, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_LIGHT, NA, NA, "0d6+5");
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_NIGHTVISRANGEMOD, 1, NA, "75");
|
|
|
|
addrace(R_DRYAD, "dryad", 65, 'p', C_BROWN, MT_WOOD, RC_MAGIC, "Dryads are gentle forest spirits. These peaceful creatures prefer the tranquility of nature, and will avoid fighting if possible.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, RR_VERYRARE, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_LIFEOB, OT_TREE, 2, 3, NULL);
|
|
addflag(lastrace->flags, F_HOMEOB, 100, NA, NA, "tree");
|
|
addflag(lastrace->flags, F_HOMEOB, 100, NA, NA, "random gem");
|
|
addflag(lastrace->flags, F_HOMEOB, 66, NA, NA, "random gem");
|
|
addflag(lastrace->flags, F_HOMEOB, 33, NA, NA, "random gem");
|
|
addflag(lastrace->flags, F_HOMEOB, 50, NA, NA, "10-50 gold");
|
|
addflag(lastrace->flags, F_HOMELEVOB, 2, 4, NA, "tree");
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "knife");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_PLANTWALK, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CHARM, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 70, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTTYPE, OT_S_CHARM, CT_GAZE, NA, NULL);
|
|
//addflag(lastrace->flags, F_CANCAST, OT_S_SLEEP, 10, 10, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_PLANTWALK, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_CHARM, NA, B_APPENDYOU, "smiles seductively");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_CHARM, NA, B_APPENDYOU, "blows a kiss");
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_GEM, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_NATURE, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_THIEVERY, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STAYINROOM, NA, NA, NA, NULL); // stay in our starting room
|
|
addflag(lastrace->flags, F_MORALE, 2, NA, NA, NULL);
|
|
|
|
addrace(R_DJINNI, "genie", 65, 'Y', C_YELLOW, MT_FLESH, RC_MAGIC, "Genies are powerful air spirits. They resemble richly dressed humans floating on a cone of whirling air.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, RR_RARE, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_PROJECTILE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 7, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "2 scimitars");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "silk shirt");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "riding trousers");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AUTOCREATEOB, 0, NA, NA, "whirlwind");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_AIRBLAST, NA, NA, "pw:3;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_GUSTOFWIND, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_INVISIBILITY, 20, 20, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_GASEOUSFORM, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_MIRRORIMAGE, 10, 10, "pw:2;");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_TWOWEAPON, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_AIR, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
|
|
addrace(R_EFREETI, "efreeti", 65, 'Y', C_RED, MT_FLESH, RC_MAGIC, "Efreeti are evil, fire-based cousins of genies. They resemble richly dressed humans surrounded by crackling flames.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, RR_RARE, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 5, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "flaming scimitar");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AUTOCREATEOB, 0, NA, NA, "medium fire");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WALLOFFIRE, 10, 10, "pw:5;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FLAMEPILLAR, NA, NA, "pw:7;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_GASEOUSFORM, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SIZEUP, 20, 20, "pw:1;");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_TWOWEAPON, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_FIRE, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
|
|
addrace(R_EYEBAT, "eyebat", 5, 'e', C_BLUE, MT_FLESH, RC_MAGIC, "A smaller cousin to the beholder, an eyebat is a single oversized eyeball suspended between bat-like wings.");
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLSPEED, SP_VERYSLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_DISPERSAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_GRAVBOOST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTTYPE, OT_NONE, CT_GAZE, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gazes");
|
|
addflag(lastrace->flags, F_TREMORSENSE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FLY, 1, NA, "^flapping wings");
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_TRICLOPS, "triclops", 160, 'H', C_BROWN, MT_FLESH, RC_HUMANOID, "The three-eyes triclops race are blessed with extraordiny perceptive and are nearly impossible to surprise. They commonly use their third eye to stun enemies, then finish them off with their huge weapons.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 7, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 100, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 80, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 80, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 100, SK_POLEARMS, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "bellows^a bellow");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_STUN, 5, 5, "pw:1;");
|
|
addflag(lastrace->flags, F_CASTTYPE, OT_NONE, CT_GAZE, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_STUN, NA, B_APPENDYOU, "gazes");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_VISRANGEMOD, 1, NA, "50");
|
|
|
|
addrace(R_TREANTYOUNG, "treant youngling", 500, 'T', C_BROWN, MT_WOOD, RC_HUMANOID, "Treants are huge living trees, with humanoid facial features visible on their trunks.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_HEAD, "face");
|
|
setbodypartname(lastrace, BP_BODY, "trunk");
|
|
setbodypartname(lastrace, BP_NECK, "trunk");
|
|
setbodypartname(lastrace, BP_SHOULDERS, "trunk");
|
|
setbodypartname(lastrace, BP_HANDS, "branches");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right branch");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left branch");
|
|
setbodypartname(lastrace, BP_LEGS, "roots");
|
|
setbodypartname(lastrace, BP_FEET, "roots");
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "tree");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "stick");
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "leaf");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 12, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_WATER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_LIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "bellows^a bellow");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 20, NA, NA, NULL);
|
|
|
|
addrace(R_TREANT, "treant", 700, 'T', C_GREEN, MT_WOOD, RC_HUMANOID, "Treants are huge living trees, with humanoid facial features visible on their trunks.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_HEAD, "face");
|
|
setbodypartname(lastrace, BP_BODY, "trunk");
|
|
setbodypartname(lastrace, BP_NECK, "trunk");
|
|
setbodypartname(lastrace, BP_SHOULDERS, "trunk");
|
|
setbodypartname(lastrace, BP_HANDS, "branches");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right branch");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left branch");
|
|
setbodypartname(lastrace, BP_LEGS, "roots");
|
|
setbodypartname(lastrace, BP_FEET, "roots");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "stick");
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "leaf");
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYSLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_VERYSLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 16, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_WATER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_LIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "bellows^a bellow");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 20, NA, NA, NULL);
|
|
|
|
addrace(R_TREANTOLD, "treant elder", 900, 'T', C_BOLDGREEN, MT_WOOD, RC_HUMANOID, "Treants are huge living trees, with humanoid facial features visible on their trunks.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_HEAD, "face");
|
|
setbodypartname(lastrace, BP_BODY, "trunk");
|
|
setbodypartname(lastrace, BP_NECK, "trunk");
|
|
setbodypartname(lastrace, BP_SHOULDERS, "trunk");
|
|
setbodypartname(lastrace, BP_HANDS, "branches");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right branch");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left branch");
|
|
setbodypartname(lastrace, BP_LEGS, "roots");
|
|
setbodypartname(lastrace, BP_FEET, "roots");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "stick");
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "leaf");
|
|
addflag(lastrace->flags, F_HITDICE, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 11, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_ULTRASLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_ULTRASLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 20, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_WATER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_LIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_ANIMATETREE, 25, 25, "pw:1;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_ANIMATETREE, NA, NA, "waves its branches");
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "bellows^a bellow");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 20, NA, NA, NULL);
|
|
|
|
addrace(R_GIANTHILL, "mountain giant", 160, 'H', C_GREY, MT_FLESH, RC_HUMANOID, "Enormous humanoids who dwell in the mountains, using their grat strength to leap between valleys and pelt their prey with enormous boulders.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 13, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 11, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 90, NA, NA, "25-100 gold coins");
|
|
addflag(lastrace->flags, F_STARTOB, 70, NA, NA, "1-2 boulders");
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_ATTRMOD, A_STR, 5, "50");
|
|
|
|
f = addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "great club");
|
|
addcondition(f, FC_NOCONDITION, 70);
|
|
addaltval(f, F_STARTOB, 70, NA, NA, "club");
|
|
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 65, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 65, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "bellows^a bellow");
|
|
addflag(lastrace->flags, F_WANTS, OT_BOULDER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_HEAVYBLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
|
|
addrace(R_GIANTFIRE, "flame giant", 160, 'H', C_RED, MT_FLESH, RC_HUMANOID, "Fire giants are cousins to hill giants who dwell on active vulcanoes. Their constant proximity to intense heat has led them to evolve a natural resistance to fire");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 13, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 13, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 90, NA, NA, "25-100 gold coins");
|
|
f = addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "flaming greatsword");
|
|
addcondition(f, FC_NOCONDITION, 70);
|
|
addaltval(f, F_STARTOB, 100, NA, NA, "flaming longsword");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "javelin");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "javelin");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "javelin");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "javelin");
|
|
addflag(lastrace->flags, F_STARTOB, 80, NA, NA, "plate mail");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 70, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "bellows^a bellow");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_ATTRMOD, A_STR, 5, "50");
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_FIRE, NA, "50");
|
|
|
|
addrace(R_GIANTFIREFC, "flame giant firemaster", 160, 'H', C_RED, MT_FLESH, RC_HUMANOID, "A subspecies of flame giant who have developed the ability to command the primal volcanic fires around them.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
lastrace->baseid = R_GIANTFIRE;
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "fire giant corpse");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 13, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 13, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 90, NA, NA, "25-100 gold coins");
|
|
f = addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "flaming morningstar");
|
|
addcondition(f, FC_NOCONDITION, 70);
|
|
addaltval(f, F_STARTOB, 100, NA, NA, "flaming mace");
|
|
addflag(lastrace->flags, F_STARTOB, 80, NA, NA, "plate mail");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 70, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "bellows^a bellow");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RNDSPELLCOUNT, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RNDSPELLSCHOOL, SS_FIRE, 1, 3, "pw:4;");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_FIRE, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_ATTRMOD, A_STR, 5, "50");
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_FIRE, NA, "50");
|
|
|
|
|
|
// TODO: storm giant
|
|
// TODO: storm titan
|
|
|
|
addrace(R_GNOLL, "gnoll", 130, 'k', C_YELLOW, MT_FLESH, RC_HUMANOID, "Gnolls are doglike warriors - the gladiators of the kobold race. They are highly organised and often travel in packs.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_HANDS, "claws");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right foreclaw");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left foreclaw");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "gnoll corpse");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 2, 3, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 7, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 50, SK_POLEARMS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "shield");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "leather armour");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-40 gold coins");
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 33, J_HUNTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 33, J_GUARD, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 33, J_WARRIOR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 10, J_BERZERKER, NA, NULL);
|
|
|
|
addrace(R_GOBLIN, "goblin", 25, 'g', C_BROWN, MT_FLESH, RC_HUMANOID, "Small humanoids with flat faces, broad noses, pointed ears, and small, sharp fangs.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_FEIGNDEATH, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 87, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, 87, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 87, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 87, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-25 gold coins");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "sling");
|
|
f = addflag(lastrace->flags, F_STARTOBWEPSK, 100, SK_SHORTBLADES, NA, NULL);
|
|
addcondition(f, FC_NOCONDITION, 90);
|
|
addaltval(f, F_STARTOBWEPSK, 100, SK_WHIPS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 40, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DODGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 10, J_ROGUE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 5, SJ_NECROMANCER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 5, J_DEMONOLOGIST, NA, NULL);
|
|
|
|
addrace(R_GOBLINR, "froglin", 25, 'g', C_GREEN, MT_FLESH, RC_HUMANOID, "River goblins (more commonly known as 'froglins') are blueish goblins with sleek, leathery skin. They seems constantly wet, and can leap like a frog.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 87, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 80, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 100, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "trident");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "blowgun");
|
|
f = addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "1-3 tranquiliser darts");
|
|
addcondition(f, FC_NOCONDITION, 50);
|
|
addaltval(f, F_STARTOB, 100, NA, NA, "1-3 darts");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 40, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_JUMP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_FEIGNDEATH, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AUTOCREATEOB, 0, NA, NA, "large puddle of water");
|
|
addflag(lastrace->flags, F_STABILITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DODGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SWIMMING, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 3, NA, NA, NULL);
|
|
|
|
addrace(R_GOBLINS, "dusur", 25, 'g', C_RED, MT_FLESH, RC_HUMANOID, "The red-skinned Dusur (or 'sand goblins') are tribal goblins commonly found in deserts or other sandy regions. They possess an uncanny level of stealth, seemingly able to meld into the very earth itself.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 87, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 80, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "manriki");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "throwing net");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "pinch of salt");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 40, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_DIG, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_PASSWALL, NA, NA, "pw:5;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_PASSWALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_DIG, NA, NA, "burrows into a wall");
|
|
addflag(lastrace->flags, F_STABILITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_DODGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_STEALTH, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_THROWING, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 3, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_GOBLINWAR, "goblin warlord", 30, 'g', C_BROWN, MT_FLESH, RC_HUMANOID, "Goblin Warriors are uncommon goblins with sufficient mental control to ungergo formal combat training (rather than just hack away mindlessly at their foes).");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
lastrace->baseid = R_GOBLIN;
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "goblin corpse");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 75, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 75, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 100, SK_POLEARMS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "1-5 javelins");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "leather armour");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-50 gold coins");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DODGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 90, 1, 2, "goblin");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
|
|
addrace(R_GOBLINSHOOTER, "goblin archer", 20, 'g', C_BROWN, MT_FLESH, RC_HUMANOID, "Deformed goblins born without claws become archers for their communities, pelting their enemies from afar with barrages of arrows.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
lastrace->baseid = R_GOBLIN;
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "goblin corpse");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 70, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 70, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 70, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "hand crossbow");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "1-15 bolts");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "leather armour");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-25 gold coins");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DODGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 70, 1, 2, "goblin");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_HIDE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTHIDDENPCT, 75, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 2, NA, NA, NULL);
|
|
|
|
addrace(R_GOBLINHEXER, "goblin witchdoctor", 20, 'g', C_BROWN, MT_FLESH, RC_HUMANOID, "When a goblin develops an affinity for magic, they become known as witchdoctor. Shamans aim to weaken their foes with hexs, providing easy kills for their comrades.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
lastrace->baseid = R_GOBLIN;
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "goblin corpse");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 63, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 63, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 63, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 50, SK_CLUBS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 80, NA, NA, "leather armour");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DODGES, B_TRUE, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_CANCAST, OT_S_BLINDNESS, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_CANCAST, OT_S_PAIN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RNDSPELLCOUNT, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RNDSPELLSCHOOL, SS_WILD, 1, 3, "pw:3;");
|
|
addflag(lastrace->flags, F_RNDSPELLSCHOOL, SS_DEATH, 1, 2, "pw:3;");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 90, 1, 2, "goblin");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 0, NA, NA, NULL);
|
|
|
|
addrace(R_GOBLINKING, "goblin king", 40, 'g', C_MAGENTA, MT_FLESH, RC_HUMANOID, "On rare occasion a goblin becomes powerful enough to command respect from almost all their peers. Far from standard cowardly goblins, these self-crowned 'kings' are a force to be reckoned with.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
lastrace->baseid = R_GOBLIN;
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "goblin corpse");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 50, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 100, SK_AXES, NA, "great");
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 100, SK_AXES, NA, "great");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "golden crown");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "great suit of ring mail");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "great random armour");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "great random armour");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "100-300 gold coins");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DODGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 90, 4, 6, "goblin");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
|
|
addrace(R_GREMLIN, "gremlin", 20, 'g', C_BOLDGREEN, MT_FLESH, RC_HUMANOID, "Small mischievous imps known for their love of sabotage.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_TECH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, OC_TECH, NA, "wand of wonder");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "chuckles^a chuckle");
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DODGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_GASEOUSFORM, NA, NA, "pw:1;");
|
|
// gremlins also cause tech to fail around them.
|
|
|
|
addrace(R_GRIFFON, "griffon", 220, 'f', C_YELLOW, MT_FLESH, RC_ANIMAL, "Griffons have a lion's body and the head, torso and forelegs of an eagle.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BEAK, 14, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "screeches^a screeches");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 3, NA, "screeches in pain^screeches of pain");
|
|
addflag(lastrace->flags, F_SEEINDARK, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SWOOPRANGE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EQUINE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FELINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AVIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACEWITHFLAG, F_EQUINE, NA, NA, NULL);
|
|
|
|
addrace(R_HIPPOGRIFF, "hippogriff", 500, 'u', C_YELLOW, MT_FLESH, RC_ANIMAL, "Hippogriffs are fierce hybrids of a horse and an eagle. Their head, wings and claws take the form of the latter.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, "");
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BEAK, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 4, NA, "screams in pain^screams of pain");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EQUINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
|
|
addrace(R_HOBGOBLIN, "hobgoblin", 90, 'g', C_CYAN, MT_FLESH, RC_HUMANOID, "A larger, stronger, smarter and more menacing form of a goblin.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 73, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 73, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 73, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
f = addflag(lastrace->flags, F_STARTOBWEPSK, 100, SK_LONGBLADES, NA, NULL);
|
|
addcondition(f, FC_NOCONDITION, 80);
|
|
addaltval(f, F_STARTOBWEPSK, 100, SK_WHIPS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "buckler");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 100, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-50 gold coins");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_PHALANX, 5, NA, 1, "hobgoblin");
|
|
addflag(lastrace->flags, F_MINIONS, 50, 1, 2, "goblin");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 33, J_GUARD, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 15, J_BERZERKER, NA, NULL);
|
|
|
|
addrace(R_HOBGOBLINWAR, "hobgoblin elite", 90, 'g', C_BOLDCYAN, MT_FLESH, RC_HUMANOID, "An exceptional hobgoblin commander who has achieved command of its own unit.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
lastrace->baseid = R_HOBGOBLIN;
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 60, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 60, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 60, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
f = addflag(lastrace->flags, F_STARTOBWEPSK, 100, SK_CLUBS, NA, NULL);
|
|
addcondition(f, FC_NOCONDITION, 80);
|
|
addaltval(f, F_STARTOBWEPSK, 100, SK_WHIPS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-75 gold coins");
|
|
addflag(lastrace->flags, F_STARTOB, 90, NA, NA, "large shield");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "scale armour");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_PHALANX, 8, NA, 1, "hobgoblin");
|
|
addflag(lastrace->flags, F_MINIONS, 50, 1, 4, "goblin");
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 7, NA, NA, NULL);
|
|
|
|
addrace(R_HYDRA, "hydra", 300, 'W', C_BLUE, MT_FLESH, RC_DRAGON, "A four legged serpentine reptile, resembling a wyrm except for its many extra heads.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FILLPOT, OT_POT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 11, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AUTOCREATEOB, -1, NA, NA, "puff of poison gas");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
// note: addlf() will add extra teeth attacks based on heads.
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, SV_CAR, NA, "hisses^a loud hissing");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 3, NA, "roars in pain^roars of pain");
|
|
addflag(lastrace->flags, F_CANSEVER, BP_HEAD, BP_HEAD, NA, "hydra head");
|
|
//addflag(lastrace->flags, F_CANCAST, OT_S_BURNINGWAVE, NA, NA, "pw:6;");
|
|
//addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "unleashes its fiery breath");
|
|
addflag(lastrace->flags, F_SEEINDARK, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_KOBOLD, "kobold", 18, 'k', C_BROWN, MT_FLESH, RC_HUMANOID, "An evil humanoid race with doglike features, kobolds are known for their cowardace and prefer to attack from a distance if at all possible.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_HANDS, "paws");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 95, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 95, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_POISONCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 4, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 40, SK_SHORTBLADES, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 25, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_THROWING, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 33, NA, NA, "1-3 darts");
|
|
addflag(lastrace->flags, F_STARTOB, 10, NA, NA, "javelin");
|
|
addflag(lastrace->flags, F_STARTOB, 15, NA, NA, "buckler");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-10 gold coins");
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 30, NA, NA, "");
|
|
addflag(lastrace->flags, F_MORALE, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
|
|
addrace(R_TROGLODYTE, "troglodyte", 20, 'z', C_GREY, MT_FLESH, RC_HUMANOID, "Troglodytes are smaller, stunted lizardmen who at outcast at birth. They linger on the outskirts of society, scavenging garbage and living in their own filth.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_POISONCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 78, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 78, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 50, SK_CLUBS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "buckler");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-10 gold coins");
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STENCH, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_LEPRECHAUN, "leprechaun", 35, 'n', C_BOLDGREEN, MT_FLESH, RC_HUMANOID, "Leprechauns are tiny Irish humans, with a love for gold and practical jokes. Known for their supernatural luck.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "shillelagh");
|
|
addflag(lastrace->flags, F_STARTOB, 10, NA, NA, "ring of luck");
|
|
addflag(lastrace->flags, F_STARTOB, 75, NA, NA, "50-100 gold coins");
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BLINK, 5, 5, "pw:1;");
|
|
addflag(lastrace->flags, F_RNDSPELLCOUNT, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RNDSPELLSCHOOL, SS_TRANSLOCATION, 1, 3, "pw:3;");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_THIEVERY, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_DODGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EXTRALUCK, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_EXTRALUCK, 1, NA, "25");
|
|
|
|
addrace(R_LESHY, "leshy", 35, 'h', C_GREEN, MT_PLANT, RC_HUMANOID, "Human-like figures with leaves (and the occasional fruit) covering their bodies.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "splash of blood");
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "leaf");
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EXTRACORPSE, 100, NA, NA, "10-20 leaves");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_FAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 66, NA, NA, "1-3 apples");
|
|
addflag(lastrace->flags, F_STARTOB, 66, NA, NA, "banana");
|
|
addflag(lastrace->flags, F_STARTOB, 66, NA, NA, "passionfruit");
|
|
addflag(lastrace->flags, F_STARTOB, 66, NA, NA, "5-10 berries");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DODGES, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_LIZARDMAN, "lizardman", 100, 'z', C_GREEN, MT_LEATHER, RC_HUMANOID, "Lizardmen are as they sound - a cross between a human and a lizard. Their leathery skin helps protect them from pummeling blows, and their tails give them enhanced stability.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 72, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 72, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-50 gold coins");
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 50, SK_POLEARMS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-2 javelins");
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "spits");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_POISONBOLT, 5, 5, "pw:5;");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STABILITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
addflag(lastrace->flags, F_STARTJOB, 15, J_WARRIOR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 15, J_DRUID, NA, NULL);
|
|
|
|
addrace(R_MALIK, "malik", 5, 'n', C_YELLOW, MT_FLESH, RC_MAGIC, "An evil fairy who thrives on murder. They delight in teleporting behind their victims for a quick backstab.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SPELLSPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BLINKASS, 3, 3, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "bloodstained dagger");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_BACKSTAB, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 70, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL);
|
|
|
|
addrace(R_MANTICORE, "manticore", 80, 'm', C_RED, MT_FLESH, RC_MAGIC, "Horrific beasts with the body of a lion, bat-like winds and a human head. The tip of their tail contains a mass of iron spikes.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 90, NA, NA, NULL); // will nearly always use its spikes first.
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_SPIKEVOLLEY, 30, 30, "pw:4;range:4;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_SPIKEVOLLEY, NA, B_APPENDYOU, "aims its tail");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 3, NA, "screams in pain^screams of pain");
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_GEM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
|
|
addrace(R_MINOTAUR, "minotaur", 130, 'H', C_BROWN, MT_FLESH, RC_HUMANOID, "Legendary creatures with the head of a bull, with a strength and temperament to match.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
noarmouron(lastrace, BP_HEAD);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 62, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACE, R_GNOLL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STAYINROOM, NA, NA, NA, NULL); // stay in our maze
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "25-35");
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BUTT, 14, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BUTT, 14, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "good heavy flail");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "greataxe");
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, "range:5;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_OGRE, "ogre", 160, 'O', C_BROWN, MT_FLESH, RC_HUMANOID, "Large, cruel, monstrous and hideous humanoid monsters. Ogres have a raging temper and hunger for flesh.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 60, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, 60, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 66, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 66, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 11, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
f = addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "great club");
|
|
addcondition(f, FC_NOCONDITION, 80);
|
|
addaltval(f, F_STARTOB, 100, NA, NA, "morningstar");
|
|
addflag(lastrace->flags, F_STARTOB, 70, NA, NA, "leather armour");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-70 gold coins");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 50, 1, 5, "orc");
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 20, J_WIZARD, SJ_RANDOM, NULL);
|
|
|
|
addrace(R_NIXIE, "nixie", 5, 'n', C_BLUE, MT_FLESH, RC_MAGIC, "A small, beautiful water spirit with webbed hands and feet.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NEEDSWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CHARM, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "smiles sweetly");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "javelin");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "trident");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "throwing net");
|
|
addflag(lastrace->flags, F_STARTOB, 25, NA, NA, "1-3 pearl");
|
|
addflag(lastrace->flags, F_STARTOB, 25, NA, NA, "1-2 opal");
|
|
addflag(lastrace->flags, F_STARTOB, 25, NA, NA, "potion of fishy lungs");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_THROWING, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RESISTMAG, 25, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_GEM, B_COVETS, NA, NULL);
|
|
|
|
addrace(R_OGRA, "ogra", 160, 'O', C_BROWN, MT_FLESH, RC_HUMANOID, "Female ogres (known as 'ogras' are no less angry of hungry than the males of the species. They are however slightly faster and weaker.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 60, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, 60, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 66, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 66, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_DODGES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
f = addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "morningstar");
|
|
addcondition(f, FC_NOCONDITION, 80);
|
|
addaltval(f, F_STARTOB, 100, NA, NA, "club");
|
|
addflag(lastrace->flags, F_STARTOB, 70, NA, NA, "leather armour");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-70 gold coins");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_NOVICE, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 20, J_WIZARD, SJ_RANDOM, NULL);
|
|
|
|
addrace(R_OGREWARHULK, "warhulk", 160, 'O', C_BROWN, MT_FLESH, RC_HUMANOID, "Warhulks are huge ogres, even angrier than their comrades.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
lastrace->baseid = R_OGRE;
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 45, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, 45, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 50, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 50, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 16, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 16, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
f = addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "heavy flail");
|
|
addcondition(f, FC_NOCONDITION, 80);
|
|
addaltval(f, F_STARTOB, 100, NA, NA, "great club");
|
|
addflag(lastrace->flags, F_STARTOB, 70, NA, NA, "leather armour");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-100 gold coins");
|
|
addflag(lastrace->flags, F_HEAVYBLOW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 14, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 25, 1, 8, "orc");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_ATTRMOD, A_STR, 5, "75");
|
|
|
|
addrace(R_ORC, "orc", 90, 'o', C_BROWN, MT_FLESH, RC_HUMANOID, "Orcs are fierce humanoid monsters with green skin and grotesque features.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 78, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, 78, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 80, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 80, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
f = addflag(lastrace->flags, F_STARTOBWEPSK, 100, SK_CLUBS, NA, NULL);
|
|
addcondition(f, FC_NOCONDITION, 70);
|
|
addaltval(f, F_STARTOBWEPSK, 50, SK_SHORTBLADES, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "leather armour");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "bone helmet");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-50 gold coins");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 2, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_STARTJOB, 20, J_WIZARD, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SPRINT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 25, J_WARRIOR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 25, J_GUARD, NA, NULL);
|
|
|
|
addrace(R_ORCGREY, "grey orc", 90, 'o', C_GREY, MT_FLESH, RC_HUMANOID, "Grey orcs are mysterious cousins of the orc family. With tattoos covering their grey pallid skin, they command strange magical arts against their prey.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 80, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, 100, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 80, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 80, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
f = addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "enchanter staff");
|
|
addcondition(f, FC_NOCONDITION, 50);
|
|
addaltval(f, F_STARTOBWEPSK, 50, NA, NA, "sorcerer staff");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 80, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 60, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 40, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "robes");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_DISORIENT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BAFFLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_INVISIBILITY, 10, 10, "pw:1;");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 20, J_DEMONOLOGIST, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 20, J_SHAMAN, NA, NULL);
|
|
|
|
addrace(R_ORCN, "norc", 90, 'o', C_BLUE, MT_FLESH, RC_HUMANOID, "While all orcs prefer the darkness, night orcs (or 'norcs') can actually _create_ it, spewing darkness from their bodies and blotting out all that is good and holy.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 80, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, 100, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 80, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SMITEGOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_DARKNESS, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
|
|
addrace(R_ORK, "ork", 90, 'o', C_GREEN, MT_FLESH, RC_HUMANOID, "Orcs who have become fascinated with technology tend to become shunned by their peers, and have taken the name 'Orks' for themselves.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "orc corpse");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 81, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, 81, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 81, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBDT, 100, DT_SLASH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBDT, 30, DT_BASH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 30, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "flak jacket");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "leather boots");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "football helmet");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-25 gold coins");
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_POTION, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_TECH, 10, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_OPERABLE, B_COVETS, NA, NULL); // ie. tech
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
|
|
addrace(R_ORCB, "borc", 90, 'o', C_RED, MT_FLESH, RC_HUMANOID, "Blood orcs (or 'borcs') are larger and more muscled than standard orcs. When they enter a state of blood rage, they are feared even by their own kind.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, 80, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_RAGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LOWHPABIL, OT_A_RAGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_A_RAGE, NA, NA, "rakes its claws down its chest");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 9, NA, NA, NULL);
|
|
|
|
addrace(R_ORCGRAND, "grorc", 120, 'o', C_MAGENTA, MT_FLESH, RC_HUMANOID, "Even more powerful than blood orcs, grand orcs (or 'grorcs') are both extremely rare and extremely powerful.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, 80, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SEEINDARK, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_CRYMIDIA, "crymidia", 10, 'e', C_WHITE, MT_ICE, RC_MAGIC, "A floating crystalline form, a crymidia is formed when a mass of crystal becomes sentient.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "10-20 chunks of ice");
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "chunk of ice");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LEVITATING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_LEVITATION, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_LEVITATION, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SUMMONWEAPON, NA, NA, "pw:4;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_ICECRUST, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CRYSTALARM, NA, NA, "pw:4;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CRYSTALSHIELD, NA, NA, "pw:4;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "shimmers");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_BASH, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_COLD, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SHIELDS, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_COLD, NA, "80");
|
|
|
|
addrace(R_PEGASUS, "pegasus", 500, 'u', C_CYAN, MT_FLESH, RC_ANIMAL, "A legendary white, winged horse.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANTALK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 57, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 57, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 57, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_HOOF, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_HOOF, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 3, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SWOOPRANGE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SMITEEVIL, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 4, NA, "screams in pain^screams of pain");
|
|
addflag(lastrace->flags, F_RESISTMAG, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_EQUINE, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_PIXIE, "pixie", 5, 'n', C_MAGENTA, MT_FLESH, RC_MAGIC, "A small magical woodland creature, flying around on moth-like wings.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_EXTRACORPSE, 15, NA, NA, "pile of prankster's dust");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_RNDSPELLCOUNT, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RNDSPELLSCHOOL, SS_NATURE, 1, 2, "pw:2;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "short bow");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "2-6 arrows");
|
|
addflag(lastrace->flags, F_STARTOB, 60, NA, NA, "cap");
|
|
addflag(lastrace->flags, F_STARTOB, 60, NA, NA, "leather shoes");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_RANGED, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RESISTMAG, 25, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_GEM, B_COVETS, NA, NULL);
|
|
|
|
addrace(R_POLTERGEIST, "poltergeist", 50, 'p', C_GREEN, MT_FLESH, RC_UNDEAD, "An evil ghostly spirit who telekinetically throws objects at its enemies."); // sPirit
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 75, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_TELEKINESIS, NA, NA, "pw:4;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_MENTAL, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_XPMULTIPLY, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_INVISIBLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STAYINROOM, NA, NA, NA, NULL);
|
|
|
|
addrace(R_PRIMALFIRE, "fire primality", 50, 'E', C_RED, MT_FIRE, RC_MAGIC, "A living mass of fire, animated by powerful magic.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_WATER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AUTOCREATEOB, 0, NA, NA, "small fire");
|
|
addflag(lastrace->flags, F_FLAMESTRIKE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHBURN, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTWITHOUTIQ, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_PYROMANIA, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FLAMEBURST, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "burns brightly");
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "large fire");
|
|
addflag(lastrace->flags, F_UNSUMMONOB, NA, NA, NA, "large fire");
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_PRIMALFIREL, "lesser fire primality", 30, 'E', C_RED, MT_FIRE, RC_MAGIC, "A living mass of fire, animated by powerful magic.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_WATER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AUTOCREATEOB, 0, NA, NA, "small fire");
|
|
addflag(lastrace->flags, F_FLAMESTRIKE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHBURN, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTWITHOUTIQ, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_PYROMANIA, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "burns brightly");
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "medium fire");
|
|
addflag(lastrace->flags, F_UNSUMMONOB, NA, NA, NA, "medium fire");
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_PRIMALSTONE, "stone primality", 200, 'E', C_GREY, MT_STONE, RC_MAGIC, "A living mass of stone, animated by powerful magic.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, 72, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 14, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_VERYSLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 16, NA, NULL);
|
|
addflag(lastrace->flags, F_HEAVYBLOW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "boulder");
|
|
addflag(lastrace->flags, F_UNSUMMONOB, NA, NA, NA, "boulder");
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_PRIMALSTONEL, "lesser stone primality", 120, 'E', C_GREY, MT_STONE, RC_MAGIC, "A living mass of stone, animated by powerful magic.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, 72, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_VERYSLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 12, NA, NULL);
|
|
addflag(lastrace->flags, F_HEAVYBLOW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "boulder");
|
|
addflag(lastrace->flags, F_UNSUMMONOB, NA, NA, NA, "boulder");
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
|
|
|
|
addrace(R_PRIMALSTORM, "storm primality", 50, 'E', C_CYAN, MT_GAS, RC_MAGIC, "A living storm of seething winds and electricity, animated by powerful magic.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_PROJECTILE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_WATER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYFAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_VERYFAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_AIRFISTS, 5, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ZAPPER, 5, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WINDSHIELD, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTWITHOUTIQ, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CHAINLIGHTNING, NA, NA, "pw:2;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_HAILSTORM, 15, 15, "pw:4;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "whirls violently");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_UNSUMMONOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_PRIMALSTORML, "lesser storm primality", 50, 'E', C_CYAN, MT_GAS, RC_MAGIC, "A living storm of seething winds and electricity, animated by powerful magic.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_PROJECTILE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_WATER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYFAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_VERYFAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_AIRFISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ZAPPER, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WINDSHIELD, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_LIGHTNINGBOLT, NA, NA, "pw:2;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SLEETSTORM, 15, 15, "pw:4;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "whirls violently");
|
|
addflag(lastrace->flags, F_CASTWITHOUTIQ, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_UNSUMMONOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_SANDMAN, "sandman", 10, 'y', C_BROWN, MT_DIRT, RC_OTHER, "A whirling tornado of sand, with a humanoid figure dimly visible within.");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "small dust cloud");
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "large dust cloud");
|
|
addflag(lastrace->flags, F_EXTRACORPSE, 50, NA, NA, "pile of sleeping powder");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SLEEP, NA, NA, "range:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_SLEEP, NA, B_APPENDYOU, "throws a handful of sand");
|
|
addflag(lastrace->flags, F_TREMORSENSE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FLY, 1, NA, "^rushing air");
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_LAVAX, "lavax", 90, 'h', C_RED, MT_FLESH, RC_HUMANOID, "The Lavax are a race of humanoid creatures who dwell in volcanic regions. Their skin has hardened into a clay-like substance, and is completely immune to the effects of heat or fire.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 9, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_WEAPON, RANDOM, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
|
|
addrace(R_SASQUATCH, "sasquatch", 90, 'h', C_CYAN, MT_FLESH, RC_HUMANOID, "Over the years, humans dwelling in cold climates have evolved into sasquatches, their skin now covered with fur to protect against the elements.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_WEAPON, RANDOM, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 9, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_SATYR, "satyr", 80, 'h', C_YELLOW, MT_FLESH, RC_HUMANOID, "A goat-like humanoid equipped with a set of magical panpipes.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 72, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, 75, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, 72, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BUTT, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 50, SK_SHORTBLADES, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "panpipes");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "short bow");
|
|
addflag(lastrace->flags, F_STARTOB, 75, NA, NA, "1-10 arrows");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "1-30 gold coins");
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "plays its pipes");
|
|
addflag(lastrace->flags, F_RESISTMAG, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NEEDOBFORSPELLS, OT_PANPIPES, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CHARM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SLEEP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FEAR, 15, 15, "pw:1;");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_MENTAL, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_HIDE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTHIDDENPCT, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_SKOOB, "skoob", 40, 'g', C_WHITE, MT_WATER, RC_MAGIC, "Your typical snowman right down to the carrot nose, with just a two key differences: it is alive, and it is homocidal.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "carrot");
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "puddle of water");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STABILITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SNOWBALL, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SLIDE, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "rubs its hands together");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHCHILL, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_COLD, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_COLD, NA, "50");
|
|
|
|
|
|
addrace(R_OOZEGREY, "sizzling slime", 10, 'j', C_GREEN, MT_SLIME, RC_SLIME, "Exactly what it sounds like - a small lump of green ooze. Green, acidic ooze.");
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "puddle of slime");
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 80, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYSLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ACIDATTACK, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^slurping");
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_ACID, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_AUTOCREATEOB, 0, NA, NA, "puddle of acid");
|
|
addflag(lastrace->flags, F_DIESPLATTER, 3, 0, NA, "splash of acid");
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_SINKMITE, "sinkmite", 2, 'm', C_GREY, MT_FLESH, RC_ANIMAL, "A mutated humanoid with large drills in place of hands. It gained its name from its ability to 'sink' out of range when threatened.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_PROJECTILE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_FALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_DRILL, 5, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_DIG, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "pounds its drills into the ground");
|
|
addflag(lastrace->flags, F_EATCONFER, F_MUTABLE, B_TRUE, NA, "100");
|
|
|
|
addrace(R_SPRIGGAN, "spriggan", 10, 'n', C_GREEN, MT_FLESH, RC_MAGIC, "Small, grotesque, and green. All words used to describe the diminuative spriggan race.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, NA, NA, "55-100");
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SIZEUP, NA, NA, "pw:5;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SHATTER, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FEAR, 10, 10, "pw:2;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_PYROMANIA, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "dagger");
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 60, SK_POLEARMS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 25, NA, NA, "mace");
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 25, SK_LONGBLADES, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 80, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 50, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_TRAPS, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LOCKPICKING, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_STEALTH, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERARM, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_SPRITEFIRE, "fire sprite", 5, 'n', C_RED, MT_FIRE, RC_MAGIC, "A small magical creature surrounded by crackling flames.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_EXTRACORPSE, NA, NA, NA, "small fire");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SPELLSPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FIREDART, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_RNDSPELLCOUNT, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RNDSPELLSCHOOL, SS_FIRE, 1, 2, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_PRODUCESLIGHT, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_WATER, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^crackling flames");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_FIRE, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_FIRE, NA, "25");
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_GEM, B_COVETS, NA, NULL);
|
|
|
|
addrace(R_SPRITEGRAVE, "grave sprite", 5, 'n', C_GREY, MT_FLESH, RC_MAGIC, "A small magical creature made from corpse dust.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SPELLSPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SMITEGOOD, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_LETHARGY, NA, NA, "pw:3;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_ANIMATEDEAD, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_DEATH, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_GEM, B_COVETS, NA, NULL);
|
|
|
|
addrace(R_SPRITEICE, "ice sprite", 5, 'n', C_CYAN, MT_ICE, RC_MAGIC, "A small magical creature made from freezing ice.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_EXTRACORPSE, NA, NA, NA, "sheet of ice");
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "small puddle of water");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SPELLSPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FROSTBITE, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_ICICLE, 3, 3, "pw:1;");
|
|
addflag(lastrace->flags, F_RNDSPELLCOUNT, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RNDSPELLSCHOOL, SS_COLD, 1, 2, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_COLD, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_COLD, NA, "25");
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_GEM, B_COVETS, NA, NULL);
|
|
|
|
addrace(R_SPRITEWEED, "weed sprite", 5, 'n', C_ORANGE, MT_FLESH, RC_MAGIC, "The bright colour of weed sprites belies their evil nature.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SMITEGOOD, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_RNDSPELLCOUNT, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RNDSPELLSCHOOL, SS_WILD, 1, 3, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "gestures");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_WILD, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL);
|
|
|
|
addrace(R_TROLL, "troll", 100, 't', C_GREEN, MT_FLESH, RC_HUMANOID, "A savage, hairy green monster. Trolls are extremely muscular, move abnormally quickly and regenerate.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_HANDS, "claws");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right foreclaw");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left foreclaw");
|
|
lastrace->baseid = R_TROLL;
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FILLPOT, OT_POT_HEALINGMIN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FILLPOT, OT_POT_HEALING, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FILLPOT, OT_POT_HEALINGMAJ, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_REGENERATES, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_REVIVETIMER, 0, 25, R_TROLL, "comes to life!");
|
|
|
|
addrace(R_TROLLKIN, "trollkin", 100, 't', C_GREY, MT_FLESH, RC_HUMANOID, "Trollkins are the horrific offspring of a troll and a human. While they lack the regenerative abilities of a standard troll, their human genes grant them a greater level of intelligence.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_HANDS, "claws");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right foreclaw");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left foreclaw");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 7, NA, NULL);
|
|
addflag(lastrace->flags, F_REGENERATES, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 90, OC_WEAPON, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 70, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBCLASS, 60, OC_ARMOUR, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 25, J_WARRIOR, NA, NULL);
|
|
|
|
addrace(R_TROLLSNOW, "snow troll", 100, 't', C_WHITE, MT_FLESH, RC_HUMANOID, "A savage, hairy monster covered with white fur. Trolls are extremely muscular, move abnormally quickly and regenerate.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_HANDS, "claws");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right foreclaw");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left foreclaw");
|
|
lastrace->baseid = R_TROLL;
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FILLPOT, OT_POT_HEALINGMIN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FILLPOT, OT_POT_HEALING, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FILLPOT, OT_POT_HEALINGMAJ, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_EXTRADAM, DT_COLD, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_REGENERATES, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FROSTBITE, NA, NA, "pw:1; range:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FROSTBITE, NA, NA, "exhales a freezing wind");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_REVIVETIMER, 0, 25, R_TROLLSNOW, "comes to life!");
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_COLD, NA, "50");
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
|
|
addrace(R_TROLLSWAMP, "swamp troll", 100, 't', C_BOLDGREEN, MT_FLESH, RC_HUMANOID, "Twisted trolls who roam the swamplands, their claws infected with a lethal poison.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_HANDS, "claws");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right foreclaw");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left foreclaw");
|
|
lastrace->baseid = R_TROLL;
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FILLPOT, OT_POT_HEALINGMIN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FILLPOT, OT_POT_HEALING, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FILLPOT, OT_POT_HEALINGMAJ, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFER, F_POISONED, SC_POISON, 32, "5-10");
|
|
addflag(lastrace->flags, F_HITCONFERVALS, P_VENOM, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_REGENERATES, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_REVIVETIMER, 0, 25, R_TROLLSWAMP, "comes to life!");
|
|
|
|
addrace(R_UNICORN, "unicorn", 500, 'u', C_WHITE, MT_FLESH, RC_ANIMAL, "Powerful steeds with gleaming coats of pure white, and a single ivory horn protruding from their forehead.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANTALK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_HOOF, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_HORN, 12, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 3, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, "range:5;");
|
|
//addflag(lastrace->flags, F_CANCAST, OT_S_SMITEEVIL, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 4, NA, "screams in pain^screams of pain");
|
|
addflag(lastrace->flags, F_RESISTMAG, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_NECROTIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCHARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_TELEPORT, 20, 20, "pw:8;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CUREPOISON, 20, 20, "pw:10;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "raises its horn");
|
|
addflag(lastrace->flags, F_EQUINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACE, R_ORC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACE, R_GRIFFON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACECLASS, RC_DRAGON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EXTRACORPSE, 100, NA, NA, "unicorn horn");
|
|
|
|
|
|
addrace(R_XAT, "xat", 2, 'x', C_BROWN, MT_FLESH, RC_ANIMAL, "Xats are wild pigs with the claws of a dog.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 4, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "snorts^a snort");
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
|
|
// fish
|
|
addrace(R_CRAB, "giant crab", 150, ';', C_ORANGE, MT_FLESH, RC_AQUATIC, "A massive orange crab with sharp pincers.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
setbodypartname(lastrace, BP_HANDS, "pincers");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 20, NA, NA, NULL); // very high armour
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYSLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_VERYSLOW, NA, NA, "");
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
|
|
addrace(R_FISHFOLK, "fishfolk", 75, 'h', C_BOLDBLUE, MT_FLESH, RC_HUMANOID, "Water-dwelling humanoids capable of breathing normally in both water and air.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "trident");
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "spear");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERWEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSBETTERARM, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NONE, NA, NA, "gne");
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_BREATHWATER, B_TRUE, NA, NA, "");
|
|
|
|
addrace(R_MERLOCH, "merloch", 250, 'm', C_ORANGE, MT_FLESH, RC_AQUATIC, "Merlochs are bipedal, fishlike beings. Equally at home in the water or on land, they use their sonic scream to disable foes.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
noarmouron(lastrace, BP_RIGHTFINGER);
|
|
noarmouron(lastrace, BP_LEFTFINGER);
|
|
noarmouron(lastrace, BP_HANDS);
|
|
noarmouron(lastrace, BP_FEET);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 15, NA, NA, NULL); // high armour
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_SLOW, NA, NA, "");
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_BREATHWATER, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SONICBOLT, 4, 4, "pw:5;dam:2d6;");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 2, NA, "^gurgling");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "gurgles loudly^a loud gurgle");
|
|
addflag(lastrace->flags, F_EATCONFER, F_MUTABLE, B_TRUE, NA, "100");
|
|
|
|
|
|
addrace(R_PIRANHA, "piranha", 0.5, ';', C_GREEN, MT_FLESH, RC_AQUATIC, "A vicious, flesh-eating fish");
|
|
setbodytype(lastrace, BT_FISH);
|
|
addflag(lastrace->flags, F_NEEDSWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_TINY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 2, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addrace(R_PIRANHAKING, "king piranha", 1, ';', C_GREEN, MT_FLESH, RC_AQUATIC, "A larger version of a standard piranha. King piranhas can leap through the air.");
|
|
setbodytype(lastrace, BT_FISH);
|
|
addflag(lastrace->flags, F_NEEDSWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_TINY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 6, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 3, NA, "");
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, "range:5;");
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addrace(R_EELELEC, "electric eel", 120, ';', C_CYAN, MT_FLESH, RC_AQUATIC, "A sliippery eel charged with electricity.");
|
|
setbodytype(lastrace, BT_FISH);
|
|
addflag(lastrace->flags, F_NEEDSWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ZAPPER, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_ELECTRIC, NA, "50");
|
|
addrace(R_EELGIANT, "giant eel", 150, ';', C_BLUE, MT_FLESH, RC_AQUATIC, "A very long, slippery eel. They tend to catch and crush their prey.");
|
|
setbodytype(lastrace, BT_FISH);
|
|
addflag(lastrace->flags, F_NEEDSWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CRUSH, NA, NA, "dam:2d6;");
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
// plants
|
|
addrace(R_BINGEBARK, "bingebark", 30, 'T', C_RED, MT_WOOD, RC_PLANT, "A dry, withered tree with many leafless branches, its dead bark stained by blood.");
|
|
addbodypart(lastrace, BP_BODY, "trunk");
|
|
addbodypart(lastrace, BP_HANDS, "branches");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, "stick");
|
|
addflag(lastrace->flags, F_HARMLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DOESNTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_WHIPATTACK, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SNATCH, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_SUCK, NA, NA, "pw:1;range:2;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "extends its branches");
|
|
|
|
addrace(R_BRIARTHRASH, "briar thrash", 30, 'T', C_YELLOW, MT_PLANT, RC_PLANT, "A stringy mass of upright, thorny vines.");
|
|
addbodypart(lastrace, BP_BODY, "vines");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HARMLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_RETALIATE, 1, 4, DT_PIERCE, "thorns");
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DOESNTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_WHIPATTACK, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, "dam:1d4;");
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_CACTUS, "cactus", 30, 'F', C_BOLDGREEN, MT_PLANT, RC_PLANT, "A wide upright plant coated with sharp spines. Said to sprout delicious fruit.");
|
|
addbodypart(lastrace, BP_BODY, "stalk");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HARMLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_RETALIATE, 1, 4, DT_PIERCE, "sharp spines");
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "cactus fruit");
|
|
addflag(lastrace->flags, F_DOESNTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_FUNGUSDREAM, "dreamfungus", 0.5, 'F', C_MAGENTA, MT_PLANT, RC_PLANT, "A huge, spotty, purple mold which releases speed-inducing spores on the slightest contact.");
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HARMLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "pile of sleeping powder");
|
|
addflag(lastrace->flags, F_DOESNTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_BASH, NA, NA, NULL);
|
|
addrace(R_FUNGUSRAGE, "ragefungus", 0.5, 'F', C_RED, MT_PLANT, RC_PLANT, "This deep red fungus protects itself by explelling rage-inducing pheremones, causing predators to attack each other instead of it.");
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HARMLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "1-4 shiitake mushrooms");
|
|
addflag(lastrace->flags, F_DOESNTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_BASH, NA, NA, NULL);
|
|
|
|
addrace(R_GLUON, "gluon", 1, 'F', C_YELLOW, MT_PLANT, RC_PLANT, "A walking plant-based monster whose body is covered with a thick glue-like secretion.");
|
|
addbodypart(lastrace, BP_BODY, "stalk");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ACIDATTACK, 5, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ADHESIVE, 25, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_IVYRAPID, "rapid ivy", 1, 'F', C_CYAN, MT_PLANT, RC_PLANT, "A strain of ivy which reproduces with incredible speed. Farmers find it difficult to remove due to its sharp spines.");
|
|
addbodypart(lastrace, BP_BODY, "stalk");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DOESNTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "passionfruit");
|
|
addflag(lastrace->flags, F_RETALIATE, 1, 1, DT_PIERCE, "sharp spines");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_BASH, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_CLONE, 0, 100, "pw:1;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_ENTANGLE, 50, 50, "pw:2; range:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_CLONE, NA, NA, "expands");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_ENTANGLE, NA, NA, "writhes");
|
|
|
|
addrace(R_NUTTER, "nutter", 0.5, 'F', C_BROWN, MT_PLANT, RC_PLANT, "Nutters are dense brown bushes covered by clumps of hard-shelled nuts. When threatened, they can propel these nuts towards their predators at very high speeds.");
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addbodypart(lastrace, BP_HANDS, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HARMLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "5-10 peanuts");
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "5-10 peanuts");
|
|
addflag(lastrace->flags, F_WILLTHROW, OT_NUT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_THROWING, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_DOESNTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_SAWGRASS, "sawgrass", 1, 'F', C_GREY, MT_METAL, RC_PLANT, "Razor sharp metallic grass with serrated edges. This plant senses vibrations in the air around it and lashes out with its sharp fronds.");
|
|
addbodypart(lastrace, BP_BODY, "stalk");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DOESNTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_ELECTRIC, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_UNYON, "unyon", 0.5, 'F', C_WHITE, MT_PLANT, RC_PLANT, "This genetically engineered onion plant has developed its stinging fumes into a self-defense mechanism.");
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HARMLESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "1-2 onions");
|
|
addflag(lastrace->flags, F_DOESNTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 4, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_BASH, NA, NA, NULL);
|
|
// end plants
|
|
|
|
// animals
|
|
addrace(R_BAT, "giant bat", 3, 'B', C_BROWN, MT_FLESH, RC_ANIMAL, "A larger (and more savage) version of your average household bat.");
|
|
setbodytype(lastrace, BT_BIRD);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYFAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 4, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FLY, 1, NA, "^flapping wings");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addrace(R_BATMUTATED, "mutated bat", 3, 'B', C_MAGENTA, MT_FLESH, RC_ANIMAL, "Bats exposed to toxic radiation become mutated, and their sonic navigation skills turn deadly.");
|
|
setbodytype(lastrace, BT_BIRD);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SONICBOLT, 3, 3, "pw:5;dam:1d4;");
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FLY, 1, NA, "^flapping wings");
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_MUTABLE, B_TRUE, NA, "100");
|
|
addrace(R_BATBRAIN, "brain bat", 6, 'B', C_RED, MT_FLESH, RC_ANIMAL, "Rare bats, said to exhibit strange psionic behaviour.");
|
|
setbodytype(lastrace, BT_BIRD);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYFAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FLY, 1, NA, "^flapping wings");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_STUN, 3, 3, "pw:3;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_DISORIENT, 3, 3, "pw:3;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_PSIBLAST, 3, 3, "pw:1;");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 6, NA, NA, NULL);
|
|
addrace(R_BATVAMPIRE, "vampire bat", 6, 'B', C_BLUE, MT_FLESH, RC_ANIMAL, "Bats which suck the blood of their victims.");
|
|
setbodytype(lastrace, BT_BIRD);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYFAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VAMPIRIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MATVULN, MT_SILVER, 200, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FLY, 1, NA, "^flapping wings");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_CATCHEETAH, "cheetah", 250, 'f', C_BROWN, MT_FLESH, RC_ANIMAL, "A large cat capable of amazing running speeds. It also has unique paws which do not allow for gripping.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_FAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_JUMP, NA, NA, "stamcost:0;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SPRINT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SKILLCHECKMOD, SC_SLIP, -3, NA, NULL); // paws can't grip
|
|
addflag(lastrace->flags, F_SKILLCHECKMOD, SC_FALL, -3, NA, NULL); // paws can't grip
|
|
addflag(lastrace->flags, F_FELINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACEWITHFLAG, F_CANINE, NA, NA, NULL);
|
|
|
|
addrace(R_CATLION, "lion", 275, 'f', C_ORANGE, MT_FLESH, RC_ANIMAL, "The \'King of the Jungle\' is the most powerful large cat, its neck rings by a great mane of fur. Lions lack leaping or jumping abilites of other cats, but make up for this in raw power.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_FAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 5, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 5, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STABILITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FELINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACEWITHFLAG, F_CANINE, NA, NA, NULL);
|
|
|
|
addrace(R_CATPANTHER, "panther", 90, 'f', C_MAGENTA, MT_FLESH, RC_ANIMAL, "Panthers are graceful large cats, skilled at climbing and swimming.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_FAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, "dam:1d3;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_JUMP, NA, NA, "stamcost:0;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STABILITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SWIMMING, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_CLIMBING, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FELINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACEWITHFLAG, F_CANINE, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_CATTIGER, "tiger", 50, 'f', C_RED, MT_FLESH, RC_ANIMAL, "One of the largest of the natural cats, tigers are known for their combination of power and agility.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_FAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, "range:5;");
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STABILITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FELINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACEWITHFLAG, F_CANINE, NA, NA, NULL);
|
|
|
|
addrace(R_CATSHADOW, "shadowcat", 5, 'f', C_BLUE, MT_FLESH, RC_MAGIC, "A huge, feral black cat, surrounded by clouds of black smoke.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, 65, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "hisses^a hiss");
|
|
addflag(lastrace->flags, F_SEEINDARK, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANSEETHROUGHMAT, MT_GAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AUTOCREATEOB, 1, NA, NA, "puff of smoke");
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_CANSEETHROUGHMAT, MT_GAS, NA, "80");
|
|
addflag(lastrace->flags, F_FELINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACEWITHFLAG, F_CANINE, NA, NA, NULL);
|
|
|
|
addrace(R_BEAR, "black bear", 150, 'Q', C_BLUE, MT_FLESH, RC_ANIMAL, "A medium sized omnivorous bear.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addflag(lastrace->flags, F_TERRITORIAL, 2, NA , NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 80, NA, NA, NULL); // hibernating
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 3, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_VEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CRUSH, NA, NA, "dam:2d4;");
|
|
addflag(lastrace->flags, F_MINIONS, 25, 1, 2, "bear cub");
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addrace(R_BEARGRIZZLY, "grizzly bear", 200, 'Q', C_YELLOW, MT_FLESH, RC_ANIMAL, "A large angry bear.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
lastrace->baseid = R_BEAR;
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTASLEEPPCT, 80, NA, NA, NULL); // hibernating
|
|
addflag(lastrace->flags, F_HITDICE, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 3, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CRUSH, NA, NA, "dam:2d6;");
|
|
addflag(lastrace->flags, F_CRITKNOCKDOWN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LOWHPABIL, OT_A_RAGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 25, 1, 2, "bear cub");
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addrace(R_BEARCUB, "bear cub", 60, 'q', C_BROWN, MT_FLESH, RC_ANIMAL, "Cute little baby bears. Still dangerous though.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
lastrace->baseid = R_BEAR;
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_SEEINDARK, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CRITKNOCKDOWN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, "");
|
|
addflag(lastrace->flags, F_TAMABLE, 35, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addrace(R_ANT, "giant ant", 20, 'a', C_BROWN, MT_FLESH, RC_ANIMAL, "Giant ants are enormous (for an ant, anyway), and keen to take avenge their smaller ancestors who were crushed by small children.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
lastrace->baseid = R_ANT;
|
|
addflag(lastrace->flags, F_TERRITORIAL, 3, NA , NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 3, 4, NA, "");
|
|
addflag(lastrace->flags, F_ARMOURRATING, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, "");
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^scuttling");
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 6, NA, NA, NULL);
|
|
addrace(R_ANTS, "giant soldier ant", 25, 'a', C_ORANGE, MT_FLESH, RC_ANIMAL, "The fighter of the giant ant family. Giant soldier ants are equipped with a powerful acidic stinger.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
lastrace->baseid = R_ANT;
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, "");
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_STING, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, "dam:1d6;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_STINGACID, NA, NA, "dam:3d3;needgrab:1;");
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^scuttling");
|
|
addflag(lastrace->flags, F_MINIONS, 50, 2, 3, "giant ant");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
addrace(R_ANTLION, "giant antlion", 30, 'a', C_YELLOW, MT_FLESH, RC_ANIMAL, "Antlions are mammoth giant ants with the head of a lion.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
lastrace->baseid = R_ANT;
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, "");
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, "dam:2d4;");
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^scuttling");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
|
|
// note: queen and does NOT have baseid ant. this is so that ant nests will only
|
|
// have one queen.
|
|
addrace(R_ANTQUEEN, "queen ant", 50, 'a', C_MAGENTA, MT_FLESH, RC_ANIMAL, "Like their regular-sized counterparts, giant queen ants prefer to rely largely on their workers and soldiers for protection. If required however, they are quite capable of protecting themselves.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_MINIONS, 100, 5, 8, "random ant");
|
|
addflag(lastrace->flags, F_ARMOURRATING, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, "");
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_STING, 12, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^scuttling");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_BILCO, "bilco", 25, ';', C_BOLDCYAN, MT_FLESH, RC_ANIMAL, "Bilcos appear to be abnormally large frogs with a strange blue tinge. Seasoned travellers know to beware the bilco's gurgle, which portends them belching out a massive torrent of water.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VULNTOSALT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TONGUE, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, SV_SHOUT, NA, "croaks^croaking");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, SV_SHOUT, NA, "croaks^croaking");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_SPELLCAST, SV_SHOUT, NA, "gurgles loudly^a loud gurgling");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_JUMP, NA, NA, "stamcost:0;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLOOD, 20, 20, "pw:6;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_WATERJET, NA, NA, "pw:4;");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SWIMMING, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AISPELLTARGETOVERRIDE, OT_S_FLOOD, F_AICASTTOATTACK, ST_SELF, "100");
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "hop");
|
|
addflag(lastrace->flags, F_EATCONFER, F_BREATHWATER, B_TRUE, NA, "50");
|
|
|
|
|
|
addrace(R_CHICKEN, "chicken", 0.5, 'c', C_BROWN, MT_FLESH, RC_ANIMAL, "A common farm-yard chicken.");
|
|
setbodytype(lastrace, BT_BIRD);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_VILLAGE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 0, NA, 1, NULL);
|
|
addflag(lastrace->flags, F_TR, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BEAK, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 2, NA, "squarks^squarking");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^clucking");
|
|
addflag(lastrace->flags, F_MORALE, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TIMID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AVIAN, B_TRUE, NA, NA, NULL);
|
|
addrace(R_DOG, "dog", 35, 'd', C_BROWN, MT_FLESH, RC_ANIMAL, "A medium-sized canine.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_RNDHOSTILE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_VILLAGE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "barks^barking");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, 3, NA, "growls^growling");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 2, NA, "whines in pain^whining");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 60, NA, NA, "");
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SWIMMING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_TAMABLE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
addrace(R_DOGBLINK, "blink dog", 35, 'd', C_YELLOW, MT_FLESH, RC_ANIMAL, "Magical canines who can teleport small distances at will.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANTALK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 2, 4, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, NULL); // don't announce spellcasting
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BLINK, 2, 2, "pw:1;");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "barks^barking");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, 3, NA, "growls^growling");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 2, NA, "whines in pain^whining");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SWIMMING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
addrace(R_DOGDEATH, "death hound", 40, 'd', C_MAGENTA, MT_FLESH, RC_ANIMAL, "Possessed evil canines who thrive on death and destruction.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 2, 6, NA, "");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 2, NA, "whines in pain^whining");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "howls^a howl");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, 3, NA, "growls^growling");
|
|
addflag(lastrace->flags, F_HITCONFER, F_POISONED, SC_POISON, 24, "10-15");
|
|
addflag(lastrace->flags, F_HITCONFERVALS, P_VENOM, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_CRITKNOCKDOWN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SWIMMING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
addrace(R_DOGWAR, "war hound", 40, 'd', C_BROWN, MT_FLESH, RC_ANIMAL, "Canines bred for war.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 4, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "barks^barking");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, 2, NA, "growls^growling");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 2, NA, "whines in pain^whining");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SWIMMING, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TAMABLE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_HORSE, "horse", 500, 'u', C_BROWN, MT_FLESH, RC_ANIMAL, "Large quadrapeds with many purposes: transport, moving goods, pulling ploughs to name but a few.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, "");
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_HOOF, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_HOOF, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 4, NA, "screams in pain^screams of pain");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 80, NA, NA, "");
|
|
addflag(lastrace->flags, F_EQUINE, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_FROG, "impaler frog", 10, ';', C_BOLDGREEN, MT_FLESH, RC_ANIMAL, "As their name implies, impaler frogs are dangerous frogs whose tongues end in a very sharp point. They use this to spear their enemies from afar, often while hiding underwater.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VULNTOSALT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TONGUE, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "croaks^croaking");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, 3, NA, "croaking^croaking");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_THRUST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_JUMP, NA, NA, "stamcost:0;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 100, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "hop");
|
|
|
|
addrace(R_HARPY, "harpy", 60, 'A', C_ORANGE, MT_FLESH, RC_HUMANOID, "Hideous humanoid females, with the lower body and wings of a vulture."); // 'A' for Avian
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
setbodypartname(lastrace, BP_HANDS, "talons");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right claw");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left claw");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 2, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 3, NA, "screeches in pain^screeches of pain");
|
|
addflag(lastrace->flags, F_AVIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "bone club");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CHARM, 15, 15, "pw:5;");
|
|
addflag(lastrace->flags, F_CASTTYPE, OT_S_CHARM, CT_SOUNDBASED, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_CHARM, NA, B_APPENDYOU, "sings a seductive song");
|
|
|
|
addrace(R_HAWKYOUNG, "young hawk", 1, 'A', C_GREY, MT_FLESH, RC_ANIMAL, "A young baby hawk."); // 'A' for Avian
|
|
setbodytype(lastrace, BT_BIRD);
|
|
lastrace->baseid = R_HAWK;
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_TERRITORIAL, 2, NA , NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SWOOPRANGE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LEVRACE, 4, R_HAWK, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 3, NA, "screeches in pain^screeches of pain");
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TAMABLE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AVIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_HAWK, "hawk", 1, 'A', C_GREY, MT_FLESH, RC_ANIMAL, "A large bird of prey."); // 'A' for Avian
|
|
setbodytype(lastrace, BT_BIRD);
|
|
lastrace->baseid = R_HAWK;
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_TERRITORIAL, 3, NA , NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SWOOPRANGE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LEVRACE, 8, R_HAWKBLOOD, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 3, NA, "screeches in pain^screeches of pain");
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AVIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_HAWKBLOOD, "blood hawk", 1, 'A', C_RED, MT_FLESH, RC_ANIMAL, "A stronger version of a hawk."); // 'A' for Avian
|
|
setbodytype(lastrace, BT_BIRD);
|
|
lastrace->baseid = R_HAWK;
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_TERRITORIAL, 5, NA , NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 7, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SWOOPRANGE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 3, NA, "screeches in pain^screeches of pain");
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AVIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addrace(R_HAWKFROST, "frost hawk", 1, 'A', C_CYAN, MT_FLESH, RC_ANIMAL, "A hawk imbued with the power of ice. Frost hawks can release a powerufl blast of freezing air when threatened."); // 'A' for Avian
|
|
setbodytype(lastrace, BT_BIRD);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_TERRITORIAL, 6, NA , NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 11, NA, NULL);
|
|
addflag(lastrace->flags, F_EXTRADAM, DT_COLD, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SWOOPRANGE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_COLDBURST, 2, 2, "pw:2;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "screeches");
|
|
addflag(lastrace->flags, F_MORALE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 3, NA, "screeches in pain^screeches of pain");
|
|
addflag(lastrace->flags, F_AVIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_COLD, NA, "20");
|
|
|
|
addrace(R_ELEPHANT, "elephant", 4000, 'Q', C_GREY, MT_LEATHER, RC_ANIMAL, "A massive grey mammal with a long trunk and sharp tusks.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_EXTRACORPSE, 50, NA, NA, "ivory tusk");
|
|
addflag(lastrace->flags, F_EXTRACORPSE, 50, NA, NA, "ivory tusk");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 11, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 11, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BUTT, 12, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TRAMPLE, 16, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_VEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_NUT, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "trumpets loudly^a loud trumpeting");
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VISRANGEMOD, -2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_SONIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 5, NA, NA, NULL);
|
|
|
|
addrace(R_GOAT, "goat", 37, 'q', C_YELLOW, MT_FLESH, RC_ANIMAL, "Small, horned livestocks animals known for their appetite.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TERRITORIAL, 3, NA , NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, "");
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 1, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_HORN, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, "range:3;");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 4, NA, "bleats in pain^bleating");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, SV_SHOUT, NA, "bleats^an angry bleating");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 80, NA, NA, "");
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATMATERIAL, MT_WOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATMATERIAL, MT_CLOTH, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATMATERIAL, MT_LEATHER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATMATERIAL, MT_PAPER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATMATERIAL, MT_PLASTIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATMATERIAL, MT_WETPAPER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATMATERIAL, MT_RUBBER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATMATERIAL, MT_SILK, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATMATERIAL, MT_PLANT, NA, NA, NULL);
|
|
|
|
addrace(R_GYRFALCON, "gyrfalcon", 1, 'A', C_WHITE, MT_FLESH, RC_ANIMAL, "An enormous falcon, commonly found in arctic climates."); // 'A' for Avian
|
|
setbodytype(lastrace, BT_BIRD);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 14, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SWOOPRANGE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "screeches");
|
|
addflag(lastrace->flags, F_MORALE, 13, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 3, NA, "screeches in pain^screeches of pain");
|
|
addflag(lastrace->flags, F_AVIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_COLD, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_COLD, NA, "20");
|
|
addrace(R_LEECH, "giant leech", 10, 'j', C_MAGENTA, MT_FLESH, RC_ANIMAL, "A boneless blood-sucking creature. Quite dangerous until it eats it becomes satiated with blood, at which point it will slither off and fall asleep.");
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VULNTOSALT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, "range:4;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SUCKBLOOD, NA, NA, "dam:0d1+4;");
|
|
addflag(lastrace->flags, F_WANTS, OT_BLOODSPLASH, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_BLOODPOOL, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "slither");
|
|
|
|
addrace(R_MAMMOTH, "mammoth", 6000, 'Q', C_BROWN, MT_LEATHER, RC_ANIMAL, "A massive ancenstor of the elephant, mammoths are covered with fur, slightly larger and more dangerous.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_EXTRACORPSE, 50, NA, NA, "ivory tusk");
|
|
addflag(lastrace->flags, F_EXTRACORPSE, 50, NA, NA, "ivory tusk");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 13, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BUTT, 14, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TRAMPLE, 18, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_VEGETARIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "trumpets loudly^a loud trumpeting");
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VISRANGEMOD, -2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_SONIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
|
|
addrace(R_NEWT, "giant newt", 4, ':', C_BROWN, MT_FLESH, RC_ANIMAL, "An abnormally large example of the lizard family.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 4, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONDAM, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addrace(R_PORCUPINE, "giant porcupine", 10, 'r', C_GREY, MT_FLESH, RC_ANIMAL, "A large four legged creature covered with sharp spines.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACE, R_ANT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RETALIATE, 1, 4, DT_PIERCE, "sharp spines");
|
|
addflag(lastrace->flags, F_CORPSEFLAG, F_SHARP, 1, 4, NULL);
|
|
|
|
addrace(R_RAT, "giant rat", 3, 'r', C_BROWN, MT_FLESH, RC_ANIMAL, "An aggressive rodent, approximately the size of a cat.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "scuttle");
|
|
|
|
addrace(R_RATDIRE, "dire rat", 3, 'r', C_MAGENTA, MT_FLESH, RC_ANIMAL, "Dire rats are massive rats, larger than most dogs. Unlike dogs, dire rats are equipped with razor sharp shark-like teeth and their bite is very much worse than their bark.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "scuttle");
|
|
|
|
addrace(R_RATPLAGUE, "plague rat", 3, 'r', C_GREEN, MT_FLESH, RC_ANIMAL, "Plague rats are named both for their infectious bite as well as the great speed at which they run.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_NOSMELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYFAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_TINY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 0, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFER, F_POISONED, SC_POISON, 10, "2-4");
|
|
addflag(lastrace->flags, F_HITCONFERVALS, P_VENOM, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "scuttle");
|
|
|
|
addrace(R_ROC, "roc", 1, 'A', C_MAGENTA, MT_FLESH, RC_ANIMAL, "Rocs are unbelievably gargantuan birds or prey, large enough to carry a fully-grown elephant. They are generally peaceful, but deadly once provoked."); // 'A' for Avian
|
|
setbodytype(lastrace, BT_BIRD);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_ENORMOUS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 18, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 18, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 18, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SWOOPRANGE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "screeches");
|
|
addflag(lastrace->flags, F_SEEINDARK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 5, NA, "screeches in pain^screeches of pain");
|
|
addflag(lastrace->flags, F_AVIAN, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_CANWILL, OT_S_FLIGHT, NA, "90");
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACE, R_DWARF, NA, NA, NULL);
|
|
|
|
addrace(R_SLUG, "acid slug", 150, 'P', C_GREY, MT_FLESH, RC_ANIMAL, "While acid slugs lack the protective shell of their snail cousings, their rubbery flesh is extremely resilient. Their acid-based attacks also make them much more dangerous.");
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addbodypart(lastrace, BP_HEAD, NULL);
|
|
addbodypart(lastrace, BP_EYES, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_VERYSLOW, NA, NA, "");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYSLOW, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 18, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ACIDATTACK, 11, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^slurping");
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_ACID, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_SLASH, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AUTOCREATEOB, 0, NA, NA, "puddle of acid");
|
|
addflag(lastrace->flags, F_DIESPLATTER, 3, 0, NA, "splash of acid");
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VULNTOSALT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addrace(R_SNAIL, "mottled snail", 150, 'P', C_BROWN, MT_FLESH, RC_ANIMAL, "An enormous snail, protected by a hard, scaled shell and gifted with long, sharp fangs.");
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addbodypart(lastrace, BP_HEAD, NULL);
|
|
addbodypart(lastrace, BP_EYES, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_VERYSLOW, NA, NA, "");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYSLOW, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 18, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VULNTOSALT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AUTOCREATEOB, 0, NA, NA, "puddle of slime");
|
|
addflag(lastrace->flags, F_DIESPLATTER, 3, 0, NA, "puddle of slime");
|
|
addflag(lastrace->flags, F_DTRESIST, DT_SLASH, NA, NA, NULL);
|
|
addrace(R_SNAKE, "brown snake", 3, 's', C_BROWN, MT_FLESH, RC_ANIMAL, "Common venomous snakes.");
|
|
setbodytype(lastrace, BT_SNAKE);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSMELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFER, F_POISONED, SC_POISON, 20, "5-10");
|
|
addflag(lastrace->flags, F_HITCONFERVALS, P_VENOM, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "slither");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^slithering");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "hisses^hissing");
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_POISON, NA, "10");
|
|
addrace(R_SNAKECARPET, "carpet snake", 3, 's', C_GREY, MT_FLESH, RC_ANIMAL, "Non-venemous (but not quite harmless) snakes.");
|
|
setbodytype(lastrace, BT_SNAKE);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_NOSMELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "slither");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^slithering");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "hisses^hissing");
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addrace(R_SNAKETREE, "tree snake", 3, 's', C_GREEN, MT_FLESH, RC_ANIMAL, "Non-venomous snakes which leap at their prey.");
|
|
setbodytype(lastrace, BT_SNAKE);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSMELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 5, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "slither");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^slithering");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "hisses^hissing");
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addrace(R_SNAKECOBRABLACK, "black cobra", 3, 's', C_BLUE, MT_FLESH, RC_ANIMAL, "Black cobras can spit globs of venom at their prey.");
|
|
setbodytype(lastrace, BT_SNAKE);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSMELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "slither");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^slithering");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "hisses^hissing");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_POISONBOLT, 4, 4, "pw:3;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "spits");
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_POISON, NA, "15");
|
|
addrace(R_SNAKECOBRAGOLDEN, "golden cobra", 3, 's', C_YELLOW, MT_FLESH, RC_ANIMAL, "Golden cobras spit a blindness-inducing venom at their enemies.");
|
|
setbodytype(lastrace, BT_SNAKE);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSMELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "slither");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^slithering");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "hisses^hissing");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "spits");
|
|
addflag(lastrace->flags, F_CASTTYPE, OT_NONE, CT_EYESPIT, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_BLINDNESS, 4, 4, "pw:3;range:2;");
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_POISON, NA, "15");
|
|
addrace(R_SNAKECONSTRICTOR, "constrictor", 3, 's', C_MAGENTA, MT_FLESH, RC_ANIMAL, "A huge snake which coils around its victims then crushes them to death.");
|
|
setbodytype(lastrace, BT_SNAKE);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSMELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "slither");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^slithering");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "hisses^hissing");
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CRUSH, NA, NA, "dam:2d6;");
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addrace(R_SNAKEWATER, "water snake", 3, 's', C_BLUE, MT_FLESH, RC_ANIMAL, "Aquatic snakes who can nevertheless exist quite happily on land. Non-venomous.");
|
|
setbodytype(lastrace, BT_SNAKE);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSMELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NEEDSWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_COLDBLOOD, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 5, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "slither");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^slithering");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "hisses^hissing");
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addrace(R_SPIDER, "giant spider", 5, 'S', C_GREY, MT_FLESH, RC_ANIMAL, "An eight legged beast which features prominently in many nightmares.");
|
|
setbodytype(lastrace, BT_SPIDER);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NOSMELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, NULL); // don't announce spellcasting
|
|
addflag(lastrace->flags, F_SPIDERCLIMB, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WEB, 3, 3, "pw:1;range:4;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CLIMB, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_LIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_POISONCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOMEOB, 100, NA, NA, "web");
|
|
addflag(lastrace->flags, F_HOMELEVOB, NA, NA, NA, "1-10 webs");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 25, NA, NA, "");
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "creep");
|
|
addrace(R_SPIDERFUNNELWEB, "giant funnelweb", 5, 'S', C_MAGENTA, MT_FLESH, RC_ANIMAL, "Like a giant spider... but extremely venomous.");
|
|
setbodytype(lastrace, BT_SPIDER);
|
|
lastrace->baseid = R_SPIDER;
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSMELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPIDERCLIMB, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFER, F_POISONED, SC_POISON, 26, "10-20");
|
|
addflag(lastrace->flags, F_HITCONFERVALS, P_VENOM, 3, NA, NULL); // strong!
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, NULL); // don't announce spellcasting
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WEB, 3, 3, "pw:5;range:2;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CLIMB, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_LIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_POISONCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOMEOB, 100, NA, NA, "web");
|
|
addflag(lastrace->flags, F_HOMELEVOB, NA, NA, NA, "20-30 webs");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 25, NA, NA, "");
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_POISON, NA, "15");
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "creep");
|
|
addrace(R_SPIDERREDBACK, "giant redback", 5, 'S', C_RED, MT_FLESH, RC_ANIMAL, "A version of a giant spider with a highly painful bite.");
|
|
setbodytype(lastrace, BT_SPIDER);
|
|
lastrace->baseid = R_SPIDER;
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSMELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPIDERCLIMB, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFER, F_PAIN, SC_POISON, 26, "5-15");
|
|
addflag(lastrace->flags, F_HITCONFERVALS, DT_POISON, NA, NA, "1d2");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, NULL); // don't announce spellcasting
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WEB, 3, 3, "pw:7;range:3;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CLIMB, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_LIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_POISONCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOMEOB, 100, NA, NA, "web");
|
|
addflag(lastrace->flags, F_HOMELEVOB, NA, NA, NA, "10-20 webs");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 25, NA, NA, "");
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_POISON, NA, "10");
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "creep");
|
|
addrace(R_SPIDERTOMB, "tomb spider", 5, 'S', C_BLUE, MT_FLESH, RC_ANIMAL, "Tomb spiders are truly nightmarish beings. Their skin can absorb light itself, and they can boost their own life force by consuming the flesh of their victims.");
|
|
setbodytype(lastrace, BT_SPIDER);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NOSMELL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 7, NA, NULL);
|
|
addflag(lastrace->flags, F_VAMPIRIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_DARKNESS, NA, NA, "sucks in light from around it");
|
|
addflag(lastrace->flags, F_SPIDERCLIMB, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WEB, 3, 3, "pw:8;range:4;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_DARKNESS, 10, 10, "pw:3;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CLIMB, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_LIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, UNLIMITED, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_POISONCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOMEOB, 100, NA, NA, "web");
|
|
addflag(lastrace->flags, F_HOMELEVOB, NA, NA, NA, "1-10 webs");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 25, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_WALKVERB, NA, NA, NA, "creep");
|
|
|
|
addrace(R_SWAN, "swan", 1, 'c', C_WHITE, MT_FLESH, RC_ANIMAL, "A graceful waterbird.");
|
|
setbodytype(lastrace, BT_BIRD);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 6, NULL);
|
|
addflag(lastrace->flags, F_TR, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BEAK, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_BEAK, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SWIMMING, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "squarks^squarking");
|
|
addflag(lastrace->flags, F_MORALE, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TIMID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AVIAN, B_TRUE, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_WOLFYOUNG, "young wolf", 10, 'd', C_GREY, MT_FLESH, RC_ANIMAL, "Immature wolves.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_TERRITORIAL, 2, NA , NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SPRINT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LEVRACE, 5, R_WOLF, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 2, NA, "whines in pain^whining");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, 3, NA, "growls^growling");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 75, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASSKILL, SK_SWIMMING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_TAMABLE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
addrace(R_WOLF, "wolf", 25, 'd', C_GREY, MT_FLESH, RC_ANIMAL, "Highly intelligent members of the canine family.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_TERRITORIAL, 3, NA , NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_FREQUENT, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 5, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 5, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SPRINT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 2, NA, "whines in pain^whining");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, 3, NA, "growls^growling");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASSKILL, SK_SWIMMING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
|
|
addrace(R_WOLFDIRE, "dire wolf", 60, 'd', C_BLUE, MT_FLESH, RC_ANIMAL, "Enormous wolves which attack with an intelligence and ferocity far beyond their regular kin.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 7, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 7, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL); // can't fool it with food
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SPRINT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 2, NA, "whines in pain^whining");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, 3, NA, "growls^growling");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASSKILL, SK_SWIMMING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
|
|
addrace(R_WOLFWINTER, "winter wolf", 25, 'd', C_CYAN, MT_FLESH, RC_ANIMAL, "Wolves which have lived in close proximity to the undead sometimes mutate into these frosty beasts. While their claws have become less sharp, they instead deal unnatural cold damage.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_EXTRADAM, DT_COLD, NA, NA, "1d6");
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SPRINT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 2, NA, "whines in pain^whining");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, 3, NA, "growls^growling");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASSKILL, SK_SWIMMING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_COLDRAY, 10, 10, "pw:2;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "unleashes its icy breath");
|
|
addflag(lastrace->flags, F_CANINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FATALFOOD, OT_CHOCOLATE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_COLD, NA, "25");
|
|
|
|
addrace(R_CRYSTALCUR, "crystal cur", 60, 'd', C_WHITE, MT_CRYSTAL, RC_ANIMAL, "Crystal Curs are magical hounds, imbued with magical defenses by over-protective owners.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "random gem");
|
|
addflag(lastrace->flags, F_EXTRACORPSE, 80, NA, NA, "random gem");
|
|
addflag(lastrace->flags, F_EXTRACORPSE, 50, NA, NA, "random gem");
|
|
addflag(lastrace->flags, F_EXTRACORPSE, 25, NA, NA, "random gem");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SPRINT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_LOWHP, 2, NA, "whines in pain^whining");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, 3, NA, "growls^growling");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 50, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASSKILL, SK_SWIMMING, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_CANINE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
|
|
// end animals
|
|
|
|
// dragons / wyrms
|
|
addrace(R_WORMGLUT, "glutwyrm", 2500, 'W', C_MAGENTA, MT_FLESH, RC_DRAGON, "Gigantic wyrms who have become so obese over the centuries that they have evolved to be wingless. They swallow their prey whole, slowly digesting their still living bodies.");
|
|
addbodypart(lastrace, BP_HEAD, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_HATESALL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_ENORMOUS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_WANTSOBFLAG, F_RARITY, NA, NA, NULL); // ie. everything
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWALLOW, 5, 5, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 100, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "opens its mouth wide..");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, SV_CAR, NA, "^slithering");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 20, NA, NA, "");
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_EARTHWYRM, "earthwyrm", 25, 'w', C_BROWN, MT_FLESH, RC_DRAGON, "Giant scaled wormlike creatures. Their large mouths are ringed with hundreds of sharp teeth.");
|
|
addbodypart(lastrace, BP_HEAD, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
//addflag(lastrace->flags, F_HATESALL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOTALK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, SV_TALK, NA, "^slithering");
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_WYVERN, "wyvern", 150, 'w', C_MAGENTA, MT_FLESH, RC_DRAGON, "Wyverns are smaller, malformed wyrms which were born without their usual breath powers.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 5, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_DRAGONS, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_DRAGONBLUE, "blue wyrm", 400, 'W', C_CYAN, MT_FLESH, RC_DRAGON, "Blue wyrms are massive reptilian creatures who can (and will) consume almost any living creature.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 28, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 16, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 18, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 16, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, 12, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_ATTACKRANGE, 2, 5, NA, NULL); // maintain distance
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_AIR, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_DRAGONS, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_ARCANA, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPEECH, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_GUSTOFWIND, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_LIGHTNINGBOLT, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "unleashes its lightning breath");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_GUSTOFWIND, NA, NA, "flaps its wings");
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_ELECTRIC, NA, "100");
|
|
|
|
addrace(R_DRAGONBLUEY, "blue wyrmling", 150, 'w', C_CYAN, MT_FLESH, RC_DRAGON, "Blue wyrms are massive reptilian creatures who can (and will) consume almost any living creature.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 13, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 5, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_ATTACKRANGE, 2, 5, NA, NULL); // maintain distance
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_AIR, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_DRAGONS, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPEECH, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_AIRBLAST, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_GUSTOFWIND, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_LIGHTNINGBOLT, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FLOOD, NA, NA, "pw:2;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "unleashes its lightning breath");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_GUSTOFWIND, NA, NA, "flaps its wings");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_AIRBLAST, NA, NA, "flaps its wings");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLOOD, NA, NA, "discharges electricity into the ground");
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_ELECTRIC, NA, "50");
|
|
addflag(lastrace->flags, F_EATCONFER, F_ATTRMOD, A_STR, 5, "25");
|
|
addrace(R_DRAGONBLUEA, "ancient blue wyrm", 600, 'W', C_CYAN, MT_FLESH, RC_DRAGON, "Blue wyrms are massive reptilian creatures who can (and will) consume almost any living creature.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 19, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 24, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 30, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, 21, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 5, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ATTACKRANGE, 2, 5, NA, NULL); // maintain distance
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_AIR, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_DRAGONS, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_ARCANA, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPEECH, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_AIRBLAST, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_GUSTOFWIND, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_LIGHTNINGBOLT, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FLOOD, NA, NA, "pw:4;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CHAINLIGHTNING, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FEAR, 30, 30, "pw:6;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "unleashes its lightning breath");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_GUSTOFWIND, NA, NA, "flaps its wings");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_AIRBLAST, NA, NA, "flaps its wings");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLOOD, NA, NA, "discharges electricity into the ground");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FEAR, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_ELECTRIC, NA, "100");
|
|
addflag(lastrace->flags, F_EATCONFER, F_ATTRMOD, A_STR, 5, "100");
|
|
|
|
|
|
addrace(R_DRAGONRED, "red wyrm", 400, 'W', C_RED, MT_FLESH, RC_DRAGON, "Red wyrms are massive evil reptilians who thrive on destruction, especially by means of fire.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 17, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 18, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 20, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, 16, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_FIRE, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_DRAGONS, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_ARCANA, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPEECH, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_PYROMANIA, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FIREBALL, NA, NA, "pw:7;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BURNINGWAVE, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_HEATMETAL, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "unleashes its fiery breath");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_HEATMETAL, NA, NA, "radiates an aura of intense heat");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_PYROMANIA, NA, NA, "flaps its wings");
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_FIRE, NA, "100");
|
|
addflag(lastrace->flags, F_EATCONFER, F_ATTRMOD, A_STR, 5, "50");
|
|
addrace(R_DRAGONREDY, "red wyrmling", 150, 'w', C_RED, MT_FLESH, RC_DRAGON, "Red wyrms are massive evil reptilians who thrive on destruction, especially by means of fire.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 14, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 5, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_FIRE, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_DRAGONS, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPEECH, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FIREDART, NA, NA, "pw:7;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_PYROMANIA, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_HEATMETAL, NA, NA, "pw:7;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "unleashes its fiery breath");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_HEATMETAL, NA, NA, "radiates an aura of intense heat");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_PYROMANIA, NA, NA, "flaps its wings");
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_FIRE, NA, "50");
|
|
addflag(lastrace->flags, F_EATCONFER, F_ATTRMOD, A_STR, 5, "25");
|
|
addrace(R_DRAGONREDA, "ancient red wyrm", 600, 'W', C_RED, MT_FLESH, RC_DRAGON, "Red wyrms are massive evil reptilians who thrive on destruction, especially by means of fire.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 45, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 24, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 30, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, 21, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 5, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_FIRE, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_DRAGONS, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_ARCANA, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPEECH, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FIREBALL, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FLAMEPILLAR, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BURNINGWAVE, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_PYROMANIA, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FEAR, 30, 30, "pw:6;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "unleashes its fiery breath");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FEAR, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLAMEPILLAR, NA, NA, "breaths fire into the ground");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_PYROMANIA, NA, NA, "flaps its wings");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_FIRE, NA, "100");
|
|
addflag(lastrace->flags, F_EATCONFER, F_ATTRMOD, A_STR, 5, "100");
|
|
|
|
addrace(R_DRAGONWHITE, "white wyrm", 400, 'W', C_WHITE, MT_FLESH, RC_DRAGON, "Although white wyrms are smaller than other varieties, their icy breath still makes them a formidable threat.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 22, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STABILITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 16, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 4, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_COLD, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_DRAGONS, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_ARCANA, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPEECH, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_COLDRAY, NA, NA, "pw:7;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_COLDBURST, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WALLOFICE, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "unleashes its icy breath");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_WALLOFICE, NA, NA, "breaths a line of frost along the ground");
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_COLD, NA, "100");
|
|
addflag(lastrace->flags, F_EATCONFER, F_ATTRMOD, A_STR, 5, "50");
|
|
addrace(R_DRAGONWHITEY, "white wyrmling", 150, 'w', C_WHITE, MT_FLESH, RC_DRAGON, "Although white wyrms are smaller than other varieties, their icy breath still makes them a formidable threat.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STABILITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 5, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_COLD, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_DRAGONS, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPEECH, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_COLDBURST, NA, NA, "pw:5;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "unleashes its icy breath");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_WALLOFICE, NA, NA, "breaths a line of frost along the ground");
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_COLD, NA, "50");
|
|
addflag(lastrace->flags, F_EATCONFER, F_ATTRMOD, A_STR, 5, "25");
|
|
addrace(R_DRAGONWHITEA, "ancient white wyrm", 600, 'W', C_WHITE, MT_FLESH, RC_DRAGON, "Although white wyrms are smaller than other varieties, their icy breath still makes them a formidable threat.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 32, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 18, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 16, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STABILITY, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 30, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TAIL, 21, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 5, NA, "roars^a roar");
|
|
addflag(lastrace->flags, F_FLEEONHPPCT, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_COLD, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_DRAGONS, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_ARCANA, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LISTEN, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SPEECH, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SWOOP, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_COLDRAY, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_COLDBURST, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_WALLOFICE, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SHARDSHOT, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_HAILSTORM, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "unleashes its icy breath");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_WALLOFICE, NA, NA, "breaths a line of frost along the ground");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_HAILSTORM, NA, NA, "breaths out a blast of hailstones");
|
|
addflag(lastrace->flags, F_DIURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_GOLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_COLD, NA, "100");
|
|
addflag(lastrace->flags, F_EATCONFER, F_ATTRMOD, A_STR, 5, "100");
|
|
// end dragons / wyrms
|
|
|
|
// insects
|
|
addrace(R_BLASTBUG, "blastbug", 2, 'x', C_ORANGE, MT_STONE, RC_INSECT, "Blastbugs have somehow evolved the ability to de-stabalise nearby oxygen molecules, resulting in devestation explosions.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, NA, NA, "100"); // massively strong to hold stones
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "snorts^a snort");
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_EXPLOSIVE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSEFLAG, F_EXPLODEONDEATH, NA, 2, "32d2");
|
|
addflag(lastrace->flags, F_WANTS, OT_STONE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_DETONATEDELAY, 20, 20, "pw:1;range:3;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "vibrates");
|
|
|
|
addrace(R_BUTTERFLY, "butterfly", 0.01, 'i', C_YELLOW, MT_FLESH, RC_INSECT, "A harmless, colourful butterfly.");
|
|
setbodytype(lastrace, BT_BIRD);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_INSECT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYFAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_TINY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 0, NA, 1, NULL);
|
|
addflag(lastrace->flags, F_TR, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TIMID, B_TRUE, NA, NA, NULL);
|
|
addrace(R_GIANTFLY, "giant gnat", 1, 'i', C_GREY, MT_FLESH, RC_INSECT, "Giant gnats buzz around the places, feeding on corpses. Usually no more than a nuisance.");
|
|
setbodytype(lastrace, BT_BIRD);
|
|
lastrace->baseid = R_GIANTFLY;
|
|
addflag(lastrace->flags, F_INSECT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_POISONCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYFAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 0, NA, 1, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "buzzes angrily^an angry buzzing");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FLY, 1, NA, "^buzzing");
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_CORPSE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_ATTACKRANGE, 1, 2, NA, NULL); // just buzz around
|
|
addflag(lastrace->flags, F_MORALE, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addrace(R_GIANTBLOWFLY, "giant ur-gnat", 2, 'i', C_GREY, MT_FLESH, RC_INSECT, "Large, more solid versions of giant gnats. These can actually cause damage, albeit rarely.");
|
|
setbodytype(lastrace, BT_BIRD);
|
|
lastrace->baseid = R_GIANTFLY;
|
|
addflag(lastrace->flags, F_INSECT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_POISONCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "giant gnat corpse");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYFAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "buzzes angrily^an angry buzzing");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FLY, 1, NA, "^buzzing");
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_CORPSE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ATTACKRANGE, 1, 2, NA, NULL); // just buzz around
|
|
addflag(lastrace->flags, F_MORALE, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addrace(R_STIRGE, "mosquitoid", 10, 'i', C_BROWN, MT_FLESH, RC_INSECT, "Mosquitoids look like giant dog-sized mosquitoes but are equipped with human-like arms and clawed hands.");
|
|
setbodytype(lastrace, BT_BIRD);
|
|
addflag(lastrace->flags, F_INSECT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "buzzes angrily^an angry buzzing");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FLY, 2, NA, "^buzzing");
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SUCKBLOOD, NA, NA, "dam:1d1;");
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_CENTIPEDE, "giant centipede", 3, 'I', C_GREEN, MT_FLESH, RC_INSECT, "Giant centipedes are long, many-legged creatures with a poisonous bite.");
|
|
addbodypart(lastrace, BP_EYES, NULL);
|
|
addbodypart(lastrace, BP_HEAD, NULL);
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addbodypart(lastrace, BP_LEGS, NULL);
|
|
addbodypart(lastrace, BP_FEET, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ANTNEST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_INSECT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFER, F_POISONED, SC_POISON, 25, "10-15");
|
|
addflag(lastrace->flags, F_HITCONFERVALS, P_WEAKNESS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^scuttling");
|
|
addflag(lastrace->flags, F_TREMORSENSE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addrace(R_FIREBUG, "firebug", 2, 'x', C_RED, MT_FLESH, RC_INSECT, "Constantly burning insects which attack their victims with fire.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addflag(lastrace->flags, F_EXTRACORPSE, NA, NA, NA, "small fire");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHBURN, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "flares its flames^crackling flames");
|
|
addflag(lastrace->flags, F_DAMAGEGROUNDOBS, 2, DT_FIRE, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_FIRE, NA, "10");
|
|
addrace(R_GLOWBUG, "glowbug", 1, 'i', C_WHITE, MT_FLESH, RC_INSECT, "Glowbugs are tiny flying creatures, magically producing light from their bodies.");
|
|
setbodytype(lastrace, BT_BIRD);
|
|
addflag(lastrace->flags, F_INSECT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_VERYFAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, 4, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 60, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_ZAPPER, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLASH, 15, 15, "pw:4;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "pulses");
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_PRODUCESLIGHT, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FLY, 1, NA, "^buzzing");
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_PRODUCESLIGHT, B_TRUE, NA, "100");
|
|
addrace(R_STINKBUG, "stinkbeetle", 1, 'x', C_MAGENTA, MT_FLESH, RC_INSECT, "A dog-sized beetle with tough scales. Emits a foul odour upon death.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addflag(lastrace->flags, F_INSECT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_ANIMAL, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_STINGACID, NA, NA, "dam:1d1;");
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_WALK, 1, NA, "^scuttling");
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 0, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSEFLAG, F_STENCH, 1, 3, NULL);
|
|
|
|
|
|
// demons
|
|
addrace(R_BALROG, "balrog", 300, '&', C_ORANGE, MT_FLESH, RC_DEMON, "Towering winged humanoids with bright red skin, surrounded by a roaring inferno.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_HEAVEN, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 13, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 13, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 12, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_ACID, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_WATER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SUCK, NA, NA, "pw:6;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FLAMEBURST, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FEAR, 30, 30, "pw:6;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_TELEKINESIS, NA, NA, "pw:2;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SUMMONDEMON, 20, 20, "pw:3;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "flares its flames");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_SUCK, NA, B_APPENDYOU, "cracks its flaming whip");
|
|
addflag(lastrace->flags, F_AUTOCREATEOB, 1, NA, NA, "large fire");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "flaming bastard sword");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "flaming barbed whip");
|
|
addflag(lastrace->flags, F_RESISTMAG, 10, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_DRETCH, "dretch", 30, '&', C_BROWN, MT_FLESH, RC_DEMON, "An ape-like creature with extended forearms ending in clawed hands. They stand about 4 feet tall and weigh 60 pounds.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_HEAVEN, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 18, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 7, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DETECTLIFE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_ACID, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FEAR, 20, 20, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CLOUDKILL, 20, 20, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SUMMONDEMON, 20, 20, "pw:3;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "narrows its eyes");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "roars^an other-wordly roar");
|
|
|
|
addrace(R_GRIDDLER, "griddler", 30, '&', C_RED, MT_FLESH, RC_DEMON, "A small, squat creature with firey red skin. It carries a small red-hot trident.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_HEAVEN, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_ACID, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_WATER, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_HEATMETAL, 5, 5, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "waves its trident");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "red-hot trident");
|
|
addflag(lastrace->flags, F_NEEDOBFORSPELLS, OT_TRIDENT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RESISTMAG, 10, NA, NA, NULL);
|
|
|
|
addrace(R_ICEDEMON, "ice demon", 80, '&', C_WHITE, MT_ICE, RC_DEMON, "A dense, humanoid demon comprised of solid ice and covered with sharp icicles.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_HEAVEN, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 12, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_EXTRADAM, DT_COLD, NA, NA, "2d4");
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RETALIATE, 2, 3, DT_COLD, "icy spikes");
|
|
addflag(lastrace->flags, F_SEEINDARK, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_ACID, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SHARDSHOT, 5, 5, "pw:3;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "points its arm");
|
|
addflag(lastrace->flags, F_RESISTMAG, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "roars^an other-wordly roar");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "roars^an other-wordly roar");
|
|
|
|
addrace(R_LURKINGHORROR, "lurking horror", 100, 'U', C_MAGENTA, MT_FLESH, RC_DEMON, "A creeping, seething mass of pulsating flesh. A multitide of misshapen eyes and limbs protude from the writhing ooze in all directions. The very sight of this creature inspires a sense of cold dread.");
|
|
addbodypart(lastrace, BP_BODY, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_INDUCEFEAR, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_LINGPARASITE, "ling parasite", 2, 'x', C_GREEN, MT_FLESH, RC_DEMON, "A tiny demonic parasite resembling a centipede. Harmless in their normal form, they can become much more dangerous by crawling inside a corpse and re-animating it.");
|
|
setbodytype(lastrace, BT_QUADRAPED);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_TINY, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "screeches^a screech");
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
|
|
addrace(R_LINGREAPER, "ling reaper", 65, 'N', C_RED, MT_FLESH, RC_DEMON, "An evil demonic creature, covered in spikes and the bright red blood of its victims.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RETALIATE, 1, 4, DT_PIERCE, "razor-sharp spikes");
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_REGENERATES, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_HURRICANESTRIKE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BLINKASS, 3, 3, "pw:1;");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_VAMPIRIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DETECTMAGIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_POLEARMS, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "scythe");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "screechs^an other-wordly screech");
|
|
|
|
addrace(R_LINGTRAPPER, "ling trapper", 65, 'N', C_BLUE, MT_FLESH, RC_DEMON, "A wiry, muscled humanoid whose blue-black flesh seems to writhe and pulse. Its elongatd jaw holds razor-sharp fangs which drip with saliva.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTHIDDENPCT, 70, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_REGENERATES, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_VAMPIRIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DETECTMAGIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_STEALTH, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_ENTANGLE, 3, 3, "pw:5;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_INVISIBILITY, 5, 5, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "grins");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "screechs^an other-wordly screech");
|
|
|
|
addrace(R_QUASIT, "quasit", 4, '&', C_BROWN, MT_FLESH, RC_DEMON, "A tiny, bald humanoid with small spiked horns running down the middle of its scalp, leathery bat-like wings and of course sharp claws...");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addbodypart(lastrace, BP_TAIL, NULL);
|
|
addbodypart(lastrace, BP_WINGS, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_HEAVEN, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_REGENERATES, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 18, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_RANDOM, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFER, F_POISONED, SC_POISON, 28, "3-5");
|
|
addflag(lastrace->flags, F_HITCONFERVALS, P_VENOM, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DETECTMAGIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_STEALTH, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FEAR, 20, 20, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_INVISIBILITY, 20, 20, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "narrows its eyes");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "screechs^an other-wordly screech");
|
|
|
|
// undead
|
|
addrace(R_ZOMBIE, "zombie", 50, 'Z', C_BLUE, MT_FLESH, RC_UNDEAD, "The re-animated corpse of a once living entity, zombies seek to consume the brains of living creatures in an attempt to regain their soul.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "30");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NUMAPPEAR, 1, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RANDOMTALKPCT, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RANDOMTALK, NA, SV_WHISPER, SV_TALK, "Braaaains...");
|
|
addflag(lastrace->flags, F_RANDOMTALK, NA, SV_WHISPER, SV_TALK, "Fooodd...");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "moans^a gutteral moan");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "groans^a gutteral groan");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "gurgles^a gurgle");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "growls^a growl");
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
|
|
addrace(R_SKELETON, "skeleton", 20, 'Z', C_GREY, MT_BONE, RC_UNDEAD, "A walking set of bones, animated through the use of necromancy. Due to their lack of soft flesh, they have little to fear from edged weapons.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_WEAPON, "right metacarpals");
|
|
setbodypartname(lastrace, BP_SECWEAPON, "left metacarpals");
|
|
setbodypartname(lastrace, BP_BODY, "ribs");
|
|
setbodypartname(lastrace, BP_HEAD, "skull");
|
|
setbodypartname(lastrace, BP_SHOULDERS, "scapulas");
|
|
setbodypartname(lastrace, BP_HANDS, "carpals");
|
|
setbodypartname(lastrace, BP_WAIST, "coccyx");
|
|
setbodypartname(lastrace, BP_LEGS, "fibulas");
|
|
setbodypartname(lastrace, BP_FEET, "tarsals");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right phalange");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left phalange");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "30");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "5-20 bones");
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 50, SK_AXES, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 25, NA, NA, "buckler");
|
|
addflag(lastrace->flags, F_DTVULN, DT_BASH, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FALL, NA, NA, "1d3+3");
|
|
addflag(lastrace->flags, F_DTRESIST, DT_PIERCE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
|
|
addrace(R_SKELETONFIRE, "fire skeleton", 20, 'Z', C_RED, MT_BONE, RC_UNDEAD, "A walking set of flaming bones, imbued with the power of fire. They have all the advantages of normal skeletons but tend to burn victims with their flame rather than use weapons.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_WEAPON, "right metacarpals");
|
|
setbodypartname(lastrace, BP_SECWEAPON, "left metacarpals");
|
|
setbodypartname(lastrace, BP_BODY, "ribs");
|
|
setbodypartname(lastrace, BP_HEAD, "skull");
|
|
setbodypartname(lastrace, BP_SHOULDERS, "scapulas");
|
|
setbodypartname(lastrace, BP_HANDS, "carpals");
|
|
setbodypartname(lastrace, BP_WAIST, "coccyx");
|
|
setbodypartname(lastrace, BP_LEGS, "fibulas");
|
|
setbodypartname(lastrace, BP_FEET, "tarsals");
|
|
setbodypartname(lastrace, BP_RIGHTFINGER, "right phalange");
|
|
setbodypartname(lastrace, BP_LEFTFINGER, "left phalange");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, NA, NA, "30");
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "5-20 flaming bones");
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHBURN, 7, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_BASH, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FALL, NA, NA, "1d3+3");
|
|
addflag(lastrace->flags, F_DTRESIST, DT_PIERCE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
|
|
addrace(R_SKELLION, "skellion", 10, 'r', C_RED, MT_BONE, RC_UNDEAD, "A floating skull, immersed in flames. Skellions are often created when attempting to animate a beheaded corpse.");
|
|
addbodypart(lastrace, BP_HEAD, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "skull");
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LEVITATING, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_LEVITATION, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_LEVITATION, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_SONICBOLT, 4, NA, "screams!^an otherworldly scream!");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SONICBOLT, 3, 3, "pw:4;dam:1d7;");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 2, NA, NULL);
|
|
addflag(lastrace->flags, F_EXTRADAM, DT_FIRE, NA, NA, "1d4");
|
|
addflag(lastrace->flags, F_DTRESIST, DT_SLASH, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_WRAITHBOG, "bog wraith", 20, 'Z', C_BROWN, MT_PLANT, RC_UNDEAD, "Bog wraiths take the form of vaguely humanoid blobs of putrid mud.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHPOISON, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFER, F_POISONED, SC_POISON, 32, "5-10");
|
|
addflag(lastrace->flags, F_HITCONFERVALS, P_VENOM, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BLIGHT, NA, NA, "pw:5;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_POISONBOLT, NA, NA, "pw:7;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, B_APPENDYOU, "undulates");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "screeches^a screech");
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_POISONCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_POISON, NA, "15");
|
|
|
|
addrace(R_WRAITHICE, "ice wraith", 20, 'Z', C_CYAN, MT_ICE, RC_UNDEAD, "Ice wraiths look like frozen humanoid forms, often garbed in threadbare clothing.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHCHILL, 7, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DAMAGEGROUNDOBS, 4, DT_COLD, B_TRUE, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "shoddy cloak");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "screeches^a screech");
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_SPRINT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EATCONFER, F_DTRESIST, DT_COLD, NA, "15");
|
|
|
|
addrace(R_BANSHEE, "banshee", 50, 'p', C_BLUE, MT_FLESH, RC_UNDEAD, "A floating phantom, with wild unbrushed hair.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHNECROTIC, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_DEATHKEEN, 100, 100, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_DEATHKEEN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_INDUCEFEAR, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NONCORPOREAL, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_GHAST, "ghast", 50, 'Z', C_BOLDGREEN, MT_FLESH, RC_UNDEAD, "A more slender and ghost-like form of ghoul. Ghasts are cunning and deadly, and possess a paralyzing touch.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_HANDS, "claws");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHPARALYZE2, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
|
|
addrace(R_GHOST, "ghost", 50, 'p', C_GREY, MT_FLESH, RC_UNDEAD, "Wispy spirits formed when a soul refuses to depart the earthly realm after death, ghosts exist part way between dimensions. The sight of a ghost can cause fear in all who behold it, and their ethereal nature makes them immune to most attacks."); // p for sPirit
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHCHILL, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NONCORPOREAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_XRAYVIS, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_INDUCEFEAR, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_INVISIBILITY, 40, 40, "pw:1;");
|
|
addflag(lastrace->flags, F_LIFEOB, OT_CORPSE, 5, 4, NULL);
|
|
addflag(lastrace->flags, F_HOMEOB, 100, NA, NA, "humanoid corpse");
|
|
|
|
// special: ghosts gain canwill->possession if they are near
|
|
// their previous corpse. use f_lifeob with text=oid for this.
|
|
|
|
addrace(R_GHOUL, "ghoul", 50, 'Z', C_GREEN, MT_FLESH, RC_UNDEAD, "Ghouls are monstrous, undead humanoids who feed on flesh and reek of carrion. Their bodies are grey and hairless, their teeth fanged, and their nails sharped into deadly claws.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
setbodypartname(lastrace, BP_HANDS, "claws");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_CAVE, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SWAMP, NA, RR_COMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STENCH, 3, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_SLOW, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHPARALYZE, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTSOBFLAG, F_EDIBLE, B_COVETS, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
|
|
addrace(R_LICH, "lich", 50, 'L', C_MAGENTA, MT_FLESH, RC_UNDEAD, "Immensely powerful wizards can on rare occasions extend their own lives by becoming undead lichs. While their physical body continues to slowly decay, they remain all of their intellect and power.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_VERYRARE, NULL);
|
|
addflag(lastrace->flags, F_INDUCEFEAR, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 11, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 11, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHCHILL, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFER, F_PARALYZED, SC_CON, 30, "1-2");
|
|
addflag(lastrace->flags, F_HITCONFERVALS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MINDSHIELD, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RNDSPELLCOUNT, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RNDSPELLSCHOOL, SS_DEATH, 1, 5, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_LORE_ARCANA, PR_EXPERT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_SS_DEATH, PR_MASTER, NA, NULL);
|
|
addflag(lastrace->flags, F_LIFEOB, OT_GLASSJAR, 12, 20, NULL);
|
|
addflag(lastrace->flags, F_HOMEOB, 100, NA, NA, "ornate glass jar");
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOISETEXT, N_GETANGRY, 2, NA, "shouts^a shout");
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
|
|
|
|
addrace(R_MUMMY, "mummy", 54, 'M', C_GREY, MT_FLESH, RC_UNDEAD, "A rotting humanoid figure clad in bandages.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSTAIRS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHNECROTIC, 12, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFER, F_POISONED, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFERVALS, P_ROT, 3, NA, NULL); // strong!
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FEAR, 50, 50, "pw:3;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FEAR, NA, B_APPENDYOU, "gazes");
|
|
addflag(lastrace->flags, F_CASTTYPE, OT_NONE, CT_GAZE, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
|
|
addrace(R_MUMMYG, "mummy king", 54, 'M', C_MAGENTA, MT_FLESH, RC_UNDEAD, "A hugely muscled rotting figure, wearing priestly garments.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_STARTOB, 100, NA, NA, "cursed robe");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TOUCHNECROTIC, 16, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFER, F_POISONED, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITCONFERVALS, P_ROT, 5, NA, NULL);
|
|
addflag(lastrace->flags, F_RESISTMAG, 15, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FEAR, 50, 50, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_STENCH, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_BLINDNESS, NA, NA, "pw:8;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SMITEGOOD, 6, 6, "pw:5;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_DRAINLIFE, 6, 6, "pw:8;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_FLAYFLESH, 10, 10, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_ANIMATEDEAD, NA, NA, "pw:10;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CHILL, 10, 10, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CURSE, 5, 5, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_PROTGOOD, NA, NA, "pw:1;");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "begins to chant"); // default
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
|
|
addrace(R_REVENANT, "revenant", 60, 'Z', C_BOLDBLUE, MT_FLESH, RC_UNDEAD, "A powerful zombie which retains full memory of its former life and abilities.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_ALL, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MAXATTACKS, 1, 1, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 8, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 25, J_DRUID, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 25, J_NINJA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 25, J_WARRIOR, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTJOB, 100, J_WIZARD, SJ_RANDOM, NULL);
|
|
addflag(lastrace->flags, F_REVIVETIMER, 0, 25, R_REVENANT, "rises from the dead!");
|
|
|
|
addrace(R_VAMPIRE, "vampire", 75, 'V', C_BLUE, MT_FLESH, RC_UNDEAD, "Blood-drinking creatures of the night, vampires have pale white skin and prominent fangs protuding from their mouthes. They are said to be near immortal, able to survive even seemingly fatal attacks by converting themselves to a gaseous form.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_VAMPIRIC, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_LIGHT, NA, NA, "3d6");
|
|
addflag(lastrace->flags, F_MATVULN, MT_SILVER, 200, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINVIS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AVOIDOBTYPE, OT_GARLIC, B_TRUE, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_FAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 9, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ARMOURRATING, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, -10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOMEOB, 100, NA, NA, "coffin");
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 10, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 7, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_CHARM, 3, 3, "pw:6;");
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CHARGE, NA, NA, "range:3;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_STUN, 5, 5, "pw:1;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SHAPESHIFT, 3, 3, "pw:1;race:vampire bat;");
|
|
addflag(lastrace->flags, F_AISPELLTARGETOVERRIDE, OT_S_SHAPESHIFT, F_AICASTTOATTACK, ST_SELF, "100");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DETECTOBS, 10, OT_COFFIN, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "pile of ash");
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "gestures");
|
|
addflag(lastrace->flags, F_NOISETEXT, N_FRUSTRATED, 3, NA, "hisses angrily^an angry hiss");
|
|
// special: change to gas cloud with 1 hp on death, if not asleep
|
|
// special: flee from garlic
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
|
|
addrace(R_WEREBEAR, "werebear", 90, '@', C_BROWN, MT_FLESH, RC_HUMANOID, "Stout, well-muscled humans with large, thick beards.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_GOOD, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_RARE, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MATVULN, MT_SILVER, 200, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLSPEED, SP_SLOW, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 6, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_REGENERATES, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_CRUSH, NA, NA, "dam:2d8;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SHAPESHIFT, 3, 3, "pw:1;race:grizzly bear;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SUMMONANIMALSLG, 10, 10, "pw:5;race:black bear;count:2;");
|
|
addflag(lastrace->flags, F_CASTCHANCE, 20, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "bares its teeth");
|
|
addflag(lastrace->flags, F_AISPELLTARGETOVERRIDE, OT_S_SHAPESHIFT, F_AICASTTOATTACK, ST_SELF, "100");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_FIRSTAID, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_UNARMED, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 50, NA, NA, "hatchet");
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACE, R_WERERAT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESRACE, R_WEREWOLF, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LYCANTHROPE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 8, NA, NA, NULL);
|
|
addflag(lastjob->flags, F_HIRABLE, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_WERERAT, "wererat", 50, '@', C_BROWN, MT_FLESH, RC_HUMANOID, "Weedy humans with shifty eyes and whiskers, wererats are known for their extreme cunning.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_LTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_SEWER, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MATVULN, MT_SILVER, 200, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 7, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLSPEED, SP_ULTRAFAST, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_CLAWS, 3, NA, NULL);
|
|
addflag(lastrace->flags, F_REGENERATES, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SHAPESHIFT, 3, 3, "pw:1;race:plague rat;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SUMMONANIMALSSM, 10, 10, "pw:5;race:giant rat;count:5;");
|
|
addflag(lastrace->flags, F_STARTOBWEPSK, 100, SK_SHORTBLADES, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTOB, 10, NA, NA, "potion of rum");
|
|
addflag(lastrace->flags, F_AISPELLTARGETOVERRIDE, OT_S_SHAPESHIFT, F_AICASTTOFLEE, ST_SELF, "100");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_SKILLED, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_THIEVERY, PR_BEGINNER, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_WANTS, OT_POT_RUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "twitches its nose");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LYCANTHROPE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_WEREWOLF, "werewolf", 100, '@', C_BROWN, MT_FLESH, RC_HUMANOID, "Shaggy humans with the uncanny ability to shapeshift into a ferocious wolf.");
|
|
setbodytype(lastrace, BT_HUMANOID);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_LOW, NA, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_DUNGEON, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_RARITY, H_FOREST, NA, RR_UNCOMMON, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUMAN, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MATVULN, MT_SILVER, 200, NA, NULL);
|
|
addflag(lastrace->flags, F_SEEINDARK, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_ACTIONSPEED, SP_NORMAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_FISTS, 6, NA, NULL);
|
|
addflag(lastrace->flags, F_REGENERATES, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SHAPESHIFT, 3, 3, "pw:1;race:dire wolf;");
|
|
addflag(lastrace->flags, F_CANCAST, OT_S_SUMMONANIMALSMD, 10, 10, "pw:5;race:young wolf;");
|
|
addflag(lastrace->flags, F_AISPELLTARGETOVERRIDE, OT_S_SHAPESHIFT, F_AICASTTOATTACK, ST_SELF, "100");
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_FIRSTAID, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTSKILL, SK_PERCEPTION, PR_ADEPT, NA, NULL);
|
|
addflag(lastrace->flags, F_ENHANCESMELL, 3, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 40, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_NONE, NA, NA, "howls");
|
|
addflag(lastrace->flags, F_NOCTURNAL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_LYCANTHROPE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CARNIVORE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANINE, B_TRUE, NA, NA, NULL); // ie. cats will know!
|
|
addflag(lastrace->flags, F_CANEATRAW, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 6, NA, NA, NULL);
|
|
|
|
// special monsters
|
|
addrace(R_GASCLOUD, "cloud of gas", 0.1, 'y', C_GREY, MT_GAS, RC_OTHER, "A large cloud of gas which seems to move with a life of its own...");
|
|
addflag(lastrace->flags, F_MOVESPEED, SP_ULTRAFAST, NA, NA, "");
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_VHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_LARGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 300, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOATTACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPACK, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 4, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTIMMUNE, DT_ALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
// special: fully heal if our origrace is a vampire, and we are resting over a coffin
|
|
addrace(R_HECTASSERVANT, "skeletal hand", 20, 'Z', C_MAGENTA, MT_BONE, RC_UNDEAD, "An enormous skeletal hand.");
|
|
addbodypart(lastrace, BP_WEAPON, NULL);
|
|
setbodypartname(lastrace, BP_WEAPON, "digits");
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_EVIL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NODEATHANNOUNCE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_CORPSETYPE, NA, NA, NA, "5-20 bones");
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HATESALL, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_HUGE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DOESNTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_GRAB, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CANWILL, OT_A_DRAGUNDERGROUND, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_CASTCHANCE, 100, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTVULN, DT_BASH, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DTRESIST, DT_PIERCE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_XPVAL, 0, NA, NA, NULL);
|
|
|
|
addrace(R_DANCINGWEAPON, "dancing weapon", 0, ')', C_GREY, MT_METAL, RC_OTHER, "A magically animated weapon.");
|
|
addflag(lastrace->flags, F_SIZE, SZ_SMALL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_HIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_GTAVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_NATURALFLIGHT, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_CANWILL, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SPELLCASTTEXT, OT_S_FLIGHT, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 8, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_EVASION, 50, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NODEATHANNOUNCE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_FLOATINGDISC, "floating disc", 0, '_', C_BOLDGREEN, MT_METAL, RC_OTHER, "A magically created disc of energy which floats in the air.");
|
|
addflag(lastrace->flags, F_SIZE, SZ_MEDIUM, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_EXHIGH, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_LEVITATING, B_TRUE, NA, NA, "");
|
|
addflag(lastrace->flags, F_HITDICE, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 1, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_FOLLOWRANGE, 1, 1, NA, NULL); // stay right next to master
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_INVULNERABLE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSPELLS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NODEATHANNOUNCE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 10, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SILENTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
|
|
addrace(R_TOOTH, "tooth", 20, '^', C_WHITE, MT_BONE, RC_OTHER, "The sharp tooth of an enormous creature.");
|
|
addbodypart(lastrace, BP_WEAPON, NULL);
|
|
addflag(lastrace->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_AWARENESS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NODEATHANNOUNCE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOCORPSE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_STR, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_AGI, AT_VLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_IQ, IQ_MINDLESS, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_WIS, AT_EXLOW, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CON, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_STARTATT, A_CHA, AT_AVERAGE, NA, NULL);
|
|
addflag(lastrace->flags, F_BLOODOB, NA, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HOSTILE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_SIZE, SZ_ENORMOUS, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HITDICE, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TR, 2, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DOESNTMOVE, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_NOPRINTS, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_HASATTACK, OT_TEETH, 4, NA, NULL);
|
|
addflag(lastrace->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_DEAF, B_TRUE, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_TREMORSENSE, 5, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(lastrace->flags, F_XPVAL, 0, NA, NA, NULL);
|
|
|
|
// now do final steps in race initialisation:
|
|
// - add flags based on raceclass, etc
|
|
// - fill in missing alignments
|
|
for (r = firstrace ; r ; r = r->next) {
|
|
if (hasflag(r->flags, F_PLAYABLE)) {
|
|
r->known = B_TRUE;
|
|
}
|
|
if (r->raceclass->id == RC_AQUATIC) {
|
|
addflag(r->flags, F_HASSKILL, SK_SWIMMING, PR_MASTER, NA, NULL);
|
|
addflag(r->flags, F_AQUATIC, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_DTIMMUNE, DT_WATER, NA, NA, NULL);
|
|
} else if (r->raceclass->id == RC_DEMON) {
|
|
addflag(r->flags, F_NOBREATH, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_DISEASEIMMUNE, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_MATVULN, MT_SILVER, 200, NA, NULL);
|
|
addflag(r->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_SEEINVIS, B_TRUE, NA, NA, NULL);
|
|
} else if (r->raceclass->id == RC_DRAGON) {
|
|
// wyrms hate hydras
|
|
if (r->id != R_HYDRA) {
|
|
addflag(r->flags, F_HATESRACE, R_HYDRA, NA, NA, NULL);
|
|
}
|
|
} else if (r->raceclass->id == RC_GOD) {
|
|
addflag(r->flags, F_NOBREATH, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_PIETY, 100, NA, NA, NULL);
|
|
addflag(r->flags, F_HUMANOID, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(r->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_DISEASEIMMUNE, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_DTIMMUNE, DT_NECROTIC, NA, NA, NULL);
|
|
addflag(r->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(r->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(r->flags, F_FLEEONHPPCT, 20, NA, NA, NULL);
|
|
addflag(r->flags, F_RESISTMAG, 15, NA, NA, NULL);
|
|
addflag(r->flags, F_MEDITATES, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_SEEINDARK, 10, NA, NA, NULL);
|
|
addflag(r->flags, F_SEEINVIS, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_CANWILL, OT_S_PLANESHIFT, NA, NA, "pw:1;");
|
|
} else if (r->raceclass->id == RC_MAGIC) {
|
|
addflag(r->flags, F_NOBREATH, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_DISEASEIMMUNE, B_TRUE, NA, NA, NULL);
|
|
} else if (r->raceclass->id == RC_PLANT) {
|
|
addflag(r->flags, F_NOBREATH, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_DISEASEIMMUNE, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_DTRESIST, DT_BASH, NA, NA, NULL);
|
|
addflag(r->flags, F_DTVULN, DT_FIRE, NA, NA, NULL);
|
|
addflag(r->flags, F_DTVULN, DT_COLD, NA, NA, NULL);
|
|
addflag(r->flags, F_DTVULN, DT_DECAY, NA, NA, NULL);
|
|
addflag(r->flags, F_FLAMMABLE, PERMENANT, NA, NA, NULL);
|
|
addflag(r->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
} else if (r->raceclass->id == RC_SLIME) {
|
|
addflag(r->flags, F_NOBREATH, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_DISEASEIMMUNE, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
} else if (r->raceclass->id == RC_ROBOT) {
|
|
addflag(r->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_NOBREATH, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_DISEASEIMMUNE, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_NOINJURIES, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_DTVULN, DT_ELECTRIC, NA, NA, NULL);
|
|
addflag(r->flags, F_DTVULN, DT_WATER, NA, NA, NULL);
|
|
addflag(r->flags, F_CORPSETYPE, NA, NA, NA, "unstable power core");
|
|
addflag(r->flags, F_MORALE, 30, NA, NA, NULL);
|
|
addflag(r->flags, F_SEEINDARK, B_TRUE, NA, NA, NULL);
|
|
if (!hasflagval(r->flags, F_NOISETEXT, N_WALK, NA, NA, NULL)) {
|
|
addflag(r->flags, F_NOISETEXT, N_WALK, 2, NA, "^whirring");
|
|
}
|
|
if (!hasflagval(r->flags, F_NOISETEXT, N_GETANGRY, NA, NA, NULL)) {
|
|
addflag(r->flags, F_NOISETEXT, N_GETANGRY, 3, NA, "beeps^a beep");
|
|
}
|
|
|
|
// will probably also be immune to fire/cold because they are metal
|
|
|
|
} else if (r->raceclass->id == RC_UNDEAD) {
|
|
addflag(r->flags, F_DISEASEIMMUNE, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
addflag(r->flags, F_DTIMMUNE, DT_POISON, NA, NA, NULL);
|
|
addflag(r->flags, F_DTIMMUNE, DT_POISONGAS, NA, NA, NULL);
|
|
addflag(r->flags, F_DTIMMUNE, DT_DECAY, NA, NA, NULL);
|
|
addflag(r->flags, F_DTIMMUNE, DT_NECROTIC, NA, NA, NULL);
|
|
addflag(r->flags, F_BREATHWATER, B_TRUE, NA, NA, NULL);
|
|
|
|
switch (r->id) {
|
|
case R_SKELETONFIRE:
|
|
f = hasflagval(r->flags, F_DTIMMUNE, DT_COLD, NA, NA, NULL);
|
|
if (f) killflag(f);
|
|
break;
|
|
case R_MUMMYG:
|
|
break;
|
|
default:
|
|
addflag(r->flags, F_DTVULN, DT_HOLY, NA, NA, NULL);
|
|
break;
|
|
}
|
|
|
|
addflag(r->flags, F_SEEINDARK, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_NOFLEE, B_TRUE, NA, NA, NULL);
|
|
addflag(r->flags, F_NOSLEEP, B_TRUE, NA, NA, NULL);
|
|
}
|
|
|
|
// fill in missins alignments
|
|
if (!hasflag(r->flags, F_ALIGNMENT)) {
|
|
addflag(r->flags, F_ALIGNMENT, AL_NEUTRAL, NA, NA, NULL);
|
|
}
|
|
}
|
|
}
|
|
|
|
void initraceclasses(void) {
|
|
// race classes
|
|
addraceclass(RC_OTHER, "strange creature", "strange creatures", SK_NONE);
|
|
addraceclass(RC_ANIMAL, "animal", "animals and insects", SK_LORE_NATURE);
|
|
addraceclass(RC_AQUATIC, "aquatic creature", "aquatic creatures", SK_LORE_NATURE);
|
|
addraceclass(RC_DEMON, "demon", "demons", SK_LORE_DEMONS);
|
|
addraceclass(RC_DRAGON, "wyrm", "wyrms", SK_LORE_DRAGONS);
|
|
addraceclass(RC_GOD, "god", "dieties", SK_NONE);
|
|
addraceclass(RC_HUMANOID, "humanoid", "humanoid creatures", SK_LORE_HUMANOID);
|
|
addraceclass(RC_INSECT, "insect", "insects and animals", SK_LORE_NATURE);
|
|
addraceclass(RC_MAGIC, "magical creature", "magical creatures", SK_LORE_ARCANA);
|
|
addraceclass(RC_PLANT, "plant", "plants", SK_LORE_NATURE);
|
|
addraceclass(RC_ROBOT, "robot", "robots", SK_TECHUSAGE);
|
|
addraceclass(RC_SLIME, "slime", "slimes", SK_NONE);
|
|
addraceclass(RC_UNDEAD, "undead", "the undead", SK_LORE_UNDEAD);
|
|
}
|
|
|
|
void initskills(void) {
|
|
skill_t *sk;
|
|
// note: any skill names >13 characters should have a shortened version.
|
|
addskill(SK_ARMOUR, "Armour", "Reduces evasion and stealth penalties from wearing armour.", 100);
|
|
addskilldesc(SK_ARMOUR, PR_INEPT, "- Reduces the noise you make when wearing metal armour.", B_FALSE);
|
|
addskilldesc(SK_ARMOUR, PR_NOVICE, "^gReduces armour penalties by 10%.^n", B_FALSE);
|
|
addskilldesc(SK_ARMOUR, PR_BEGINNER, "^gReduces armour penalties by 20%.^n", B_FALSE);
|
|
addskilldesc(SK_ARMOUR, PR_ADEPT, "^gReduces armour penalties by 30%.^n", B_FALSE);
|
|
addskilldesc(SK_ARMOUR, PR_SKILLED, "^gReduces armour penalties by 40%.^n", B_FALSE);
|
|
addskilldesc(SK_ARMOUR, PR_EXPERT, "^gReduces armour penalties by 50%.^n", B_FALSE);
|
|
addskilldesc(SK_ARMOUR, PR_MASTER, "^gReduces armour penalties by 60%.^n", B_FALSE);
|
|
addskill(SK_ATHLETICS, "Athletics", "Grants various athletic abilities and increases Stamina.", 50);
|
|
addskilldesc(SK_ATHLETICS, PR_NOVICE, "^gYou gain the 'sprint' ability.^n", B_FALSE);
|
|
addskilldesc(SK_ATHLETICS, PR_ADEPT, "^gYou gain the 'tumble' ability.^n", B_FALSE);
|
|
addskilldesc(SK_ATHLETICS, PR_EXPERT, "^gYou gain the 'jump' ability.^n", B_FALSE);
|
|
addskill(SK_BACKSTAB, "Backstabbing", "Lets you inflict massive damage when unseen and using a piercing weapon.", 50);
|
|
addskilldesc(SK_BACKSTAB, PR_NOVICE, "^gYour unseen attacks inflict double damage.^n", B_FALSE);
|
|
addskilldesc(SK_BACKSTAB, PR_BEGINNER, "^gYour unseen attacks inflict triple damage.^n", B_FALSE);
|
|
addskilldesc(SK_BACKSTAB, PR_ADEPT, "^gYour unseen attacks inflict quadruple damage.^n", B_FALSE);
|
|
addskilldesc(SK_BACKSTAB, PR_SKILLED, "^gYour unseen attacks inflict 5x damage.^n", B_FALSE);
|
|
addskilldesc(SK_BACKSTAB, PR_EXPERT, "^gYour unseen attacks inflict 6x damage.^n", B_FALSE);
|
|
addskilldesc(SK_BACKSTAB, PR_MASTER, "^gYour unseen attacks inflict 7x damage.^n", B_FALSE);
|
|
addskill(SK_CARTOGRAPHY, "Cartography", "Your ability to create and interpret maps.", 0); // untrainable
|
|
addskilldesc(SK_CARTOGRAPHY, PR_INEPT, "- Without this skill, you will quickly forget your surroundings.", B_FALSE);
|
|
addskilldesc(SK_CARTOGRAPHY, PR_NOVICE, "^gYou can now remember the basics of your surroundings.^n", B_TRUE);
|
|
addskilldesc(SK_CARTOGRAPHY, PR_BEGINNER, "^gYou can now remember the location of staircases.^n", B_TRUE);
|
|
addskilldesc(SK_CARTOGRAPHY, PR_ADEPT, "^gYour can now remember the location of doors.^n", B_TRUE);
|
|
addskilldesc(SK_CARTOGRAPHY, PR_SKILLED, "^gYou no longer forget your surroundings.^n", B_FALSE);
|
|
addskilldesc(SK_CARTOGRAPHY, PR_EXPERT, "^gYour can now remember the location of objects.^n", B_TRUE);
|
|
addskilldesc(SK_CARTOGRAPHY, PR_MASTER, "^gEvery 50 turns, you can intuitively map a small area around you.^n", B_FALSE);
|
|
addskill(SK_CHANNELING, "Channeling", "Lets you make better use of magical items.", 0); // untrainable
|
|
addskilldesc(SK_CHANNELING, PR_NOVICE, "^gThe power level of wands and scrolls is increased by 1.^n", B_FALSE);
|
|
addskilldesc(SK_CHANNELING, PR_NOVICE, "^gYou can now recognise when objects are low on charges.^n", B_TRUE);
|
|
addskilldesc(SK_CHANNELING, PR_BEGINNER, "^gThe power level of wands and scrolls is increased by 2.^n", B_FALSE);
|
|
addskilldesc(SK_CHANNELING, PR_BEGINNER, "^gYou now know when objects have a single charge remaining.^n", B_TRUE);
|
|
addskilldesc(SK_CHANNELING, PR_ADEPT, "^gThe power level of wands and scrolls is increased by 4.^n", B_FALSE);
|
|
addskilldesc(SK_CHANNELING, PR_ADEPT, "^gYou now know when objects have less than four charges left.^n", B_TRUE);
|
|
addskilldesc(SK_CHANNELING, PR_SKILLED, "^gThe power level of wands and scrolls is increased by 6.^n", B_FALSE);
|
|
addskilldesc(SK_CHANNELING, PR_SKILLED, "^gYou now know when objects have less than seven charges left.^n", B_TRUE);
|
|
addskilldesc(SK_CHANNELING, PR_EXPERT, "^gThe power level of wands and scrolls is increased by 8.^n", B_FALSE);
|
|
addskilldesc(SK_CHANNELING, PR_EXPERT, "^gUsing any object will now reveal its remaining charges.^n", B_TRUE);
|
|
addskilldesc(SK_CHANNELING, PR_MASTER, "^gThe power level of wands and scrolls is increased by 10.^n", B_FALSE);
|
|
addskilldesc(SK_CHANNELING, PR_MASTER, "^gYou now always know remaining charges for all objects.^n", B_TRUE);
|
|
addskill(SK_CLIMBING, "Climbing", "Helps you to climb walls, mountains or other terrain.", 50);
|
|
addskilldesc(SK_CLIMBING, PR_INEPT, "Increases your chances of successfully climbing by 10% per level.", B_FALSE);
|
|
addskilldesc(SK_CLIMBING, PR_NOVICE, "You gain the 'climb walls' ability. Cannot attack while climbing.", B_FALSE);
|
|
addskilldesc(SK_CLIMBING, PR_BEGINNER, "May attack while climbing, with -15 accuracy.", B_FALSE);
|
|
addskilldesc(SK_CLIMBING, PR_ADEPT, "-10 accuracy penalty while climbing.", B_FALSE);
|
|
addskilldesc(SK_CLIMBING, PR_SKILLED, "-5 accuracy penalty while climbing.", B_FALSE);
|
|
addskilldesc(SK_CLIMBING, PR_EXPERT, "-2 accuracy penalty while climbing.", B_FALSE);
|
|
addskilldesc(SK_CLIMBING, PR_MASTER, "No accuracy penalty or stamina cost to remain climbing.", B_FALSE);
|
|
addskill(SK_COOKING, "Cooking", "Your ability to combine foods into nutritious meals.", 50);
|
|
addskilldesc(SK_COOKING, PR_INEPT, " - Note: when cooking, all ingredients must already be recognised.", B_FALSE);
|
|
addskilldesc(SK_COOKING, PR_NOVICE, "^gYou can now cook corpses before consumption.", B_TRUE);
|
|
addskilldesc(SK_COOKING, PR_BEGINNER, "^gYou now recognise bad food.^n", B_TRUE);
|
|
addskilldesc(SK_COOKING, PR_BEGINNER, "^gYou can now cook recipes using up to 2 ingredients.", B_TRUE);
|
|
addskilldesc(SK_COOKING, PR_ADEPT, "^gYou can now cook recipes using up to 3 ingredients.", B_TRUE);
|
|
addskilldesc(SK_COOKING, PR_SKILLED, "^gYou can now cook recipes using up to 4 ingredients.", B_TRUE);
|
|
addskilldesc(SK_COOKING, PR_EXPERT, "^gYou can now cook recipes using up to 5 ingredients.", B_TRUE);
|
|
addskilldesc(SK_COOKING, PR_MASTER, "^gYou can now cook all recipes.", B_TRUE);
|
|
addskill(SK_EVASION, "Evasion", "Your ability to dodge blows or traps.", 50);
|
|
addskilldesc(SK_EVASION, PR_NOVICE, "^gIncreases your EV by 12%.^n", B_FALSE);
|
|
addskilldesc(SK_EVASION, PR_BEGINNER, "^gIncreases your EV by 24%.^n", B_FALSE);
|
|
addskilldesc(SK_EVASION, PR_ADEPT, "^gIncreases your EV by 36%.^n", B_FALSE);
|
|
addskilldesc(SK_EVASION, PR_ADEPT, "^gYou gain the 'snatch' ability.^n", B_FALSE);
|
|
addskilldesc(SK_EVASION, PR_SKILLED, "^gIncreases your EV by 48%.^n", B_FALSE);
|
|
addskilldesc(SK_EVASION, PR_SKILLED, "^gYou now automatically dodge fatal attacks if you have free stamina.^n", B_TRUE);
|
|
addskilldesc(SK_EVASION, PR_EXPERT, "^gIncreases your EV by 60%.^n", B_FALSE);
|
|
addskilldesc(SK_EVASION, PR_MASTER, "^gIncreases your EV by 72%.^n", B_FALSE);
|
|
addskill(SK_FIRSTAID, "First Aid", "Increases your healing rate and reduces duration of poison.", 0); // untrainable
|
|
addskilldesc(SK_FIRSTAID, PR_INEPT, "- Lets you recognise how healthy your opponents are.", B_FALSE);
|
|
addskilldesc(SK_FIRSTAID, PR_INEPT, "- Determines how fast you heal when resting. ", B_FALSE);
|
|
addskilldesc(SK_FIRSTAID, PR_INEPT, "- Determines how long poison effects will last.", B_FALSE);
|
|
addskilldesc(SK_FIRSTAID, PR_NOVICE, "+2 hit points per level.", B_FALSE);
|
|
addskilldesc(SK_FIRSTAID, PR_BEGINNER, "+4 hit points per level.", B_FALSE);
|
|
addskilldesc(SK_FIRSTAID, PR_BEGINNER, "You now recognise the onset of poison or sickness.", B_TRUE);
|
|
addskilldesc(SK_FIRSTAID, PR_ADEPT, "+6 hit points per level.", B_FALSE);
|
|
addskilldesc(SK_FIRSTAID, PR_ADEPT, "^gYou can now recognise when poison is potentially fatal.^n", B_TRUE);
|
|
addskilldesc(SK_FIRSTAID, PR_SKILLED, "+8 hit points per level.", B_FALSE);
|
|
addskilldesc(SK_FIRSTAID, PR_EXPERT, "+10 hit points per level.", B_FALSE);
|
|
addskilldesc(SK_FIRSTAID, PR_MASTER, "+12 hit points per level.", B_FALSE);
|
|
addskill(SK_LISTEN, "Listen", "How good you are at hearing and interpreting sounds.", 200);
|
|
addskilldesc(SK_LISTEN, PR_NOVICE, "^gYou now gauge the distance of sounds.^n", B_TRUE);
|
|
addskilldesc(SK_LISTEN, PR_BEGINNER, "^gYou now more accurately gauge the distance of sounds.^n", B_TRUE);
|
|
addskilldesc(SK_LISTEN, PR_ADEPT, "^gYou can now determine the direction sounds are coming from.^n", B_TRUE);
|
|
addskilldesc(SK_LISTEN, PR_ADEPT, "^gYou can now listen at staircases before descending.^n", B_TRUE);
|
|
addskilldesc(SK_LISTEN, PR_EXPERT, "^gYou can now identify monsters based on sound.^n", B_TRUE);
|
|
addskilldesc(SK_LISTEN, PR_MASTER, "^gYou can now locate monsters based on sound.^n", B_TRUE);
|
|
addskill(SK_LOCKPICKING, "Lockpicking", "Enhances your ability to pick locks.", 50);
|
|
addskilldesc(SK_LOCKPICKING, PR_NOVICE, "^gYou gain the 'pick locks' ability.^n", B_FALSE);
|
|
addskill(SK_METALWORK, "Metalwork", "Lets you repair metal objects.", 25);
|
|
addskilldesc(SK_METALWORK, PR_NOVICE, "^gYou can repair metal items with condition >= 80%.^n", B_FALSE);
|
|
addskilldesc(SK_METALWORK, PR_BEGINNER, "^gYou can repair metal items with condition >= 65%.^n", B_FALSE);
|
|
addskilldesc(SK_METALWORK, PR_ADEPT, "^gYou can repair metal items with condition >= 50%.^n", B_FALSE);
|
|
addskilldesc(SK_METALWORK, PR_SKILLED, "^gYou can repair metal items with condition >= 25%.^n", B_FALSE);
|
|
addskilldesc(SK_METALWORK, PR_SKILLED, "^gYou can re-size metal armour (at the expense of durability).^n", B_FALSE);
|
|
addskilldesc(SK_METALWORK, PR_EXPERT, "^gYou can fully repair metal items.^n", B_FALSE);
|
|
addskilldesc(SK_METALWORK, PR_MASTER, "^gYou can increase an item's quality to masterwork using a duplicate.^n", B_FALSE);
|
|
addskill(SK_RANGED, "Ranged Weapons", "Your ability to aim a ranged weapon like a bow or gun.", 50);
|
|
addskilldesc(SK_RANGED, PR_INEPT, "^gYour ranged accuracy decreases by 32% per cell.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_NOVICE, "^gYour ranged accuracy decreases by 22% per cell.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_BEGINNER, "^gYour ranged accuracy decreases by 16% per cell.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_ADEPT, "^gYou can now reload ranged weapons instantly.^n", B_TRUE);
|
|
addskilldesc(SK_RANGED, PR_ADEPT, "^gYour ranged accuracy decreases by 12% per cell.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_SKILLED, "^gYour ranged accuracy decreases by 10% per cell.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_EXPERT, "^gMonsters no longer block your line of fire for ranged weapons.^n", B_TRUE);
|
|
addskilldesc(SK_RANGED, PR_EXPERT, "^gYour ranged accuracy decreases by 8% per cell.^n", B_FALSE);
|
|
addskilldesc(SK_RANGED, PR_MASTER, "^gYour ranged attacks now deal 50% more damage.^n", B_TRUE);
|
|
addskilldesc(SK_RANGED, PR_MASTER, "^gYour ranged accuracy decreases by 6% per cell.^n", B_FALSE);
|
|
free(lastskill->shortname); lastskill->shortname = strdup("Ranged Wpns");
|
|
addskill(SK_SEWING, "Sewing", "Lets you repair cloth or leather objects.", 25);
|
|
addskilldesc(SK_SEWING, PR_NOVICE, "^gYou can repair cloth items with condition >= 80%.^n", B_FALSE);
|
|
addskilldesc(SK_SEWING, PR_BEGINNER, "^gYou can repair cloth items with condition >= 65%.^n", B_FALSE);
|
|
addskilldesc(SK_SEWING, PR_ADEPT, "^gYou can repair cloth items with condition >= 50%.^n", B_FALSE);
|
|
addskilldesc(SK_SEWING, PR_SKILLED, "^gYou can repair cloth items with condition >= 25%.^n", B_FALSE);
|
|
addskilldesc(SK_SEWING, PR_SKILLED, "^gYou can re-size cloth armour (at the expense of durability).^n", B_FALSE);
|
|
addskilldesc(SK_SEWING, PR_EXPERT, "^gYou can fully repair cloth items.^n", B_FALSE);
|
|
addskilldesc(SK_SEWING, PR_MASTER, "^gYou can increase an item's quality to masterwork using a duplicate.^n", B_FALSE);
|
|
addskill(SK_SHIELDS, "Shields", "Reduces shield accuracy penalty, and raises chance to block attacks.", 50);
|
|
addskilldesc(SK_SHIELDS, PR_INEPT, "- Without this skill, shield accuracy penalties are tripled.", B_FALSE);
|
|
addskilldesc(SK_SHIELDS, PR_NOVICE, "^gShield accuracy penalties are reduced by 1.^n", B_FALSE);
|
|
addskilldesc(SK_SHIELDS, PR_BEGINNER, "^gShield accuracy penalties are reduced by 2.^n", B_FALSE);
|
|
addskilldesc(SK_SHIELDS, PR_BEGINNER, "^gYou gain the 'shield bash' ability.^n", B_FALSE);
|
|
addskilldesc(SK_SHIELDS, PR_ADEPT, "^gShield accuracy penalties are reduced by 3.^n", B_FALSE);
|
|
addskilldesc(SK_SHIELDS, PR_SKILLED, "^gShield accuracy penalties are reduced by 4.^n", B_FALSE);
|
|
addskilldesc(SK_SHIELDS, PR_EXPERT, "^gShield accuracy penalties are reduced by 5.^n", B_FALSE);
|
|
addskilldesc(SK_SHIELDS, PR_MASTER, "^gShield accuracy penalties are reduced by 6.^n", B_FALSE);
|
|
addskill(SK_SPEECH, "Psychology", "Your skill at reading others, haggling prices, and negotiation.", 50);
|
|
addskilldesc(SK_SPEECH, PR_INEPT, "- Each skill level reduces shop prices by 5%.", B_TRUE);
|
|
addskilldesc(SK_SPEECH, PR_NOVICE, "^gYou can determine when others are peaceful.^n", B_TRUE);
|
|
addskilldesc(SK_SPEECH, PR_NOVICE, "^gYou can now question people about nearby traps or monsters.^n", B_TRUE);
|
|
addskilldesc(SK_SPEECH, PR_BEGINNER, "^gYou can now offer gems as payment in shops.^n", B_TRUE);
|
|
addskilldesc(SK_SPEECH, PR_BEGINNER, "^gYou can now question people about items on the current level.^n", B_TRUE);
|
|
addskilldesc(SK_SPEECH, PR_ADEPT, "^gYou can now recognise which items others desire.^n", B_TRUE);
|
|
addskilldesc(SK_SPEECH, PR_SKILLED, "^gYou can now trade knowledge and spells with other people.^n", B_TRUE);
|
|
addskilldesc(SK_SPEECH, PR_EXPERT, "^gYou can now persuade people to join to as followers.^n", B_TRUE);
|
|
addskilldesc(SK_SPEECH, PR_MASTER, "^gYou can now choose which skills to learn from people.^n", B_TRUE);
|
|
addskill(SK_PERCEPTION, "Perception", "Your ability to notice hidden details, from simple footprints to sinister traps.", 50);
|
|
addskilldesc(SK_PERCEPTION, PR_INEPT, "- At higher levels this skill will also let you obscure your own tracks.", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_NOVICE, "^gYou can now see footprints.^n", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_NOVICE, "^gYou can now check for trails on staircases before descending.^n", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_BEGINNER, "^gYou can now determine the depth and direction of footprints.^n", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_BEGINNER, "^gYou now have perception of your blind spots.^n", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_BEGINNER, "^gYou can now recognise the quality of items.^n", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_ADEPT, "^gYour field of vision is now wider.^n", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_EXPERT, "^gYou can now move without leaving footprints.^n", B_TRUE);
|
|
addskilldesc(SK_PERCEPTION, PR_MASTER, "^gYou field of vision now extends behind you.^n", B_TRUE);
|
|
addskill(SK_STEALTH, "Stealth", "Affects your ability to move silently.", 0); // untrainable?
|
|
addskilldesc(SK_STEALTH, PR_NOVICE, "^gYou gain the 'hide' ability.^n", B_FALSE);
|
|
addskilldesc(SK_STEALTH, PR_BEGINNER, "^gYou can now move while hiding.^n", B_TRUE);
|
|
addskilldesc(SK_STEALTH, PR_SKILLED, "^gYou can now peek down staircases.^n", B_TRUE);
|
|
addskill(SK_SWIMMING, "Swimming", "Allows you to safely swim through deep water.", 50);
|
|
addskilldesc(SK_SWIMMING, PR_NOVICE, "^gYou can now swim.^n", B_TRUE);
|
|
addskilldesc(SK_SWIMMING, PR_BEGINNER, "^gYou can now swim a bit faster.^n", B_TRUE);
|
|
addskilldesc(SK_SWIMMING, PR_ADEPT, "^gYou can now swim a bit faster.^n", B_TRUE);
|
|
addskilldesc(SK_SWIMMING, PR_SKILLED, "^gYou can now swim a bit faster.^n", B_TRUE);
|
|
addskilldesc(SK_SWIMMING, PR_EXPERT, "^gYou can now attack (awkwardly) and cast spells while swimming.^n", B_TRUE);
|
|
addskilldesc(SK_SWIMMING, PR_MASTER, "^gYou can now attack while swimming with no penalty.^n", B_TRUE);
|
|
addskill(SK_TECHUSAGE, "Technology", "Determines your comprehension of modern technological items.", 0); // untrain
|
|
addskill(SK_THIEVERY, "Thievery", "Your ability to pick pockets and steal items.", 50);
|
|
addskilldesc(SK_THIEVERY, PR_NOVICE, "^gYou gain the 'steal' ability, usable on enemies or in shops.^n", B_FALSE);
|
|
addskilldesc(SK_THIEVERY, PR_BEGINNER, "^gYour accuracy penalty when stealing is reduced.^n", B_TRUE);
|
|
addskilldesc(SK_THIEVERY, PR_ADEPT, "^gYou can now choose which items to steal.^n", B_TRUE);
|
|
addskilldesc(SK_THIEVERY, PR_SKILLED, "gYou can now steal heavy items.", B_TRUE);
|
|
addskilldesc(SK_THIEVERY, PR_EXPERT, "gYou can now steal multiple items.", B_TRUE);
|
|
addskilldesc(SK_THIEVERY, PR_MASTER, "gYou can now steal equipped items.", B_TRUE);
|
|
addskill(SK_THROWING, "Throwing", "Your accuracy when throwing objects at things.", 50);
|
|
addskilldesc(SK_THROWING, PR_INEPT, "^gYour throw accuracy decreases by 32%% per cell.^n", B_FALSE);
|
|
addskilldesc(SK_THROWING, PR_NOVICE, "^gYour throw accuracy decreases by 22%% per cell.^n", B_FALSE);
|
|
addskilldesc(SK_THROWING, PR_BEGINNER, "^gYour throw accuracy decreases by 16%% per cell.^n", B_FALSE);
|
|
addskilldesc(SK_THROWING, PR_ADEPT, "^gYour throw accuracy decreases by 12%% per cell.^n", B_FALSE);
|
|
addskilldesc(SK_THROWING, PR_SKILLED, "^gYour throw accuracy decreases by 10%% per cell.^n", B_FALSE);
|
|
addskilldesc(SK_THROWING, PR_EXPERT, "^gYour throw accuracy decreases by 8%% per cell.^n", B_FALSE);
|
|
addskilldesc(SK_THROWING, PR_MASTER, "^gYour throw accuracy decreases by 6%% per cell.^n", B_FALSE);
|
|
addskill(SK_TRAPS, "Traps", "Affects your ability to locate and disarm traps.", 25);
|
|
addskilldesc(SK_TRAPS, PR_NOVICE, "^gYou gain the 'disarm traps' ability.^n", B_FALSE);
|
|
addskill(SK_TWOWEAPON, "Dual Weilding", "Allows you to weild two melee weapons at once.", 50);
|
|
addskilldesc(SK_TWOWEAPON, PR_NOVICE, "^gYou can now weild two weapons at once, with -4 accuracy.^n", B_TRUE);
|
|
addskilldesc(SK_TWOWEAPON, PR_BEGINNER, "^gDual-weapon accuracy penalty reduced to -2.^n", B_FALSE);
|
|
addskilldesc(SK_TWOWEAPON, PR_ADEPT, "^gYou no longer suffer an accuracy penalty when weilding two weapons.^n", B_TRUE);
|
|
addskilldesc(SK_TWOWEAPON, PR_SKILLED, "^gFollow-up attacks with your second weapon are now more accurate.^n", B_TRUE);
|
|
addskilldesc(SK_TWOWEAPON, PR_EXPERT, "^gYou gain the 'flurry attack' ability.^n", B_FALSE);
|
|
addskilldesc(SK_TWOWEAPON, PR_MASTER, "^gYou can now deflect attacks with your second weapon.^n", B_TRUE);
|
|
// knowledge
|
|
// descriptions for all of these will be added later.
|
|
addskill(SK_LORE_ARCANA, "Lore:Arcana", "Allows you a chance of recognising magical objects and creatures.", 5);
|
|
addskilldesc(SK_LORE_ARCANA, PR_NOVICE, "^gYou can attempt to identify objects with the 'inspect' ability.^n", B_FALSE);
|
|
addskilldesc(SK_LORE_ARCANA, PR_ADEPT, "^gYou gain the 'study scrolls' ability.", B_FALSE);
|
|
addskill(SK_LORE_DEMONS, "Lore:Demonology", "Determines your knowledge about demons.", 5);
|
|
free(lastskill->shortname); lastskill->shortname = strdup("Lore:Demons");
|
|
addskill(SK_LORE_HUMANOID, "Lore:Humanoid", "Determines your knowledge about humanoid (bipedal) creatures.", 5);
|
|
addskill(SK_LORE_NATURE, "Lore:Nature", "Determines your knowledge of plants, animals and insects.", 5);
|
|
addskill(SK_LORE_UNDEAD, "Lore:Undead", "Determines your knowledge of the undead.", 5);
|
|
addskill(SK_LORE_DRAGONS, "Lore:Wyrms", "Determines your knowledge about wryms.", 5);
|
|
|
|
// weaponry
|
|
addskill(SK_AXES, "Axes", "Helps you use chopping weapons like axes.", 50);
|
|
addskill(SK_CLUBS, "Clubs", "Helps you use bashing weapons like maces or clubs.", 50);
|
|
addskill(SK_EXOTICWEPS, "Exotic Weapons", "Helps you use nunchaku, sais, etc.", 50);
|
|
free(lastskill->shortname); lastskill->shortname = strdup("Exotic Wpns");
|
|
addskill(SK_LONGBLADES, "Long Blades", "Helps you use long swords, scimitars, etc.", 50);
|
|
addskill(SK_POLEARMS, "Polearms", "Helps you use long bladed weapons like halberds.", 50);
|
|
addskill(SK_SHORTBLADES, "Short Blades", "Helps you use daggers, gladius', etc.", 50);
|
|
addskill(SK_STAVES, "Staves", "Helps you use quarterstaffs, staffs, etc.", 50);
|
|
addskill(SK_WHIPS, "Whips", "Helps you use whips, flails, etc.", 50);
|
|
addskill(SK_UNARMED, "Unarmed Combat", "Helps you fight using your bare hands.", 50);
|
|
free(lastskill->shortname); lastskill->shortname = strdup("Unarmed");
|
|
addskilldesc(SK_UNARMED, PR_ADEPT, "^gYour unarmed attacks can now smash wooden objects.^n", B_TRUE);
|
|
addskilldesc(SK_UNARMED, PR_SKILLED, "^gYou can now make melee attacks with your off-hand.^n", B_TRUE);
|
|
addskilldesc(SK_UNARMED, PR_EXPERT, "^gYou gain the 'flip' ability.^n", B_FALSE);
|
|
|
|
// spell schools
|
|
addskill(SK_SS_ALLOMANCY, "Allomancy", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_ALLOMANCY, PR_INEPT, "- Spell power power depends on your Level and Strength.", B_FALSE);
|
|
addskilldesc(SK_SS_ALLOMANCY, PR_INEPT, "- Each rank gives you a 20% chance to learn a new allomantic ability when levelling up.", B_FALSE);
|
|
addskilldesc(SK_SS_ALLOMANCY, PR_NOVICE, "Allows you to cast Allomancy spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_ALLOMANCY, PR_BEGINNER, "Allows you to cast Allomancy spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_ALLOMANCY, PR_ADEPT, "Allows you to cast Allomancy spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_ALLOMANCY, PR_SKILLED, "Allows you to cast Allomancy spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_ALLOMANCY, PR_EXPERT, "Allows you to cast Allomancy spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_ALLOMANCY, PR_MASTER, "Allows you to cast Allomancy spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_MENTAL, "Psionics", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_MENTAL, PR_INEPT, "- Spell power power depends on your Level and Intelligence.", B_FALSE);
|
|
addskilldesc(SK_SS_MENTAL, PR_INEPT, "- Each rank gives you a 20% chance to learn a new psionic ability when levelling up.", B_FALSE);
|
|
addskilldesc(SK_SS_MENTAL, PR_NOVICE, "Allows you to cast Psionic spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_MENTAL, PR_BEGINNER, "Allows you to cast Psionic spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_MENTAL, PR_ADEPT, "Allows you to cast Psionic spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_MENTAL, PR_SKILLED, "Allows you to cast Psionic spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_MENTAL, PR_EXPERT, "Allows you to cast Psionic spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_MENTAL, PR_MASTER, "Allows you to cast Psionic spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_NATURE, "Enviromancy", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_NATURE, PR_INEPT, "- Spell power power depends on your Level and Wisdom.", B_FALSE);
|
|
addskilldesc(SK_SS_NATURE, PR_NOVICE, "Allows you to cast Nature spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_NATURE, PR_BEGINNER, "Allows you to cast Nature spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_NATURE, PR_ADEPT, "Allows you to cast Nature spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_NATURE, PR_SKILLED, "Allows you to cast Nature spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_NATURE, PR_EXPERT, "Allows you to cast Nature spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_NATURE, PR_MASTER, "Allows you to cast Nature spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_AIR, "Sorcery:Air Magic", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_AIR, PR_INEPT, "- Spell power power depends on your Level and Intelligence.", B_FALSE);
|
|
addskilldesc(SK_SS_AIR, PR_NOVICE, "Allows you to cast Air Magic spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_AIR, PR_BEGINNER, "Allows you to cast Air Magic spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_AIR, PR_ADEPT, "Allows you to cast Air Magic spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_AIR, PR_SKILLED, "Allows you to cast Air Magic spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_AIR, PR_EXPERT, "Allows you to cast Air Magic spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_AIR, PR_MASTER, "Allows you to cast Air Magic spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_DEATH, "Sorcery:Necromancy", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_DEATH, PR_INEPT, "- Spell power power depends on your Level, your Intelligence, and Hecta's pleasure.", B_FALSE);
|
|
addskilldesc(SK_SS_DEATH, PR_NOVICE, "Allows you to cast Necromancy spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_DEATH, PR_BEGINNER, "Allows you to cast Necromancy spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_DEATH, PR_ADEPT, "Allows you to cast Necromancy spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_DEATH, PR_SKILLED, "Allows you to cast Necromancy spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_DEATH, PR_EXPERT, "Allows you to cast Necromancy spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_DEATH, PR_MASTER, "Allows you to cast Necromancy spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_DIVINATION, "Sorcery:Divination", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_DIVINATION, PR_INEPT, "- Spell power power depends on your Level and Intelligence.", B_FALSE);
|
|
addskilldesc(SK_SS_DIVINATION, PR_NOVICE, "Allows you to cast Divination spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_DIVINATION, PR_BEGINNER, "Allows you to cast Divination spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_DIVINATION, PR_ADEPT, "Allows you to cast Divination spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_DIVINATION, PR_SKILLED, "Allows you to cast Divination spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_DIVINATION, PR_EXPERT, "Allows you to cast Divination spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_DIVINATION, PR_MASTER, "Allows you to cast Divination spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_FIRE, "Sorcery:Fire Magic", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_FIRE, PR_INEPT, "- Spell power power depends on your Level and Intelligence.", B_FALSE);
|
|
addskilldesc(SK_SS_FIRE, PR_NOVICE, "Allows you to cast Fire Magic spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_FIRE, PR_BEGINNER, "Allows you to cast Fire Magic spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_FIRE, PR_ADEPT, "Allows you to cast Fire Magic spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_FIRE, PR_SKILLED, "Allows you to cast Fire Magic spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_FIRE, PR_EXPERT, "Allows you to cast Fire Magic spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_FIRE, PR_MASTER, "Allows you to cast Fire Magic spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_COLD, "Sorcery:Cold Magic", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_COLD, PR_INEPT, "- Spell power power depends on your Level and Intelligence.", B_FALSE);
|
|
addskilldesc(SK_SS_COLD, PR_NOVICE, "Allows you to cast Cold Magic spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_COLD, PR_BEGINNER, "Allows you to cast Cold Magic spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_COLD, PR_ADEPT, "Allows you to cast Cold Magic spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_COLD, PR_SKILLED, "Allows you to cast Cold Magic spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_COLD, PR_EXPERT, "Allows you to cast Cold Magic spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_COLD, PR_MASTER, "Allows you to cast Cold Magic spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_LIFE, "Sorcery:Life Magic", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_LIFE, PR_INEPT, "- Spell power power depends on your Level, your Intelligence, and Glorana's pleasure.", B_FALSE);
|
|
addskilldesc(SK_SS_LIFE, PR_NOVICE, "Allows you to cast Life Magic spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_LIFE, PR_BEGINNER, "Allows you to cast Life Magic spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_LIFE, PR_ADEPT, "Allows you to cast Life Magic spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_LIFE, PR_SKILLED, "Allows you to cast Life Magic spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_LIFE, PR_EXPERT, "Allows you to cast Life Magic spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_LIFE, PR_MASTER, "Allows you to cast Life Magic spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_MODIFICATION, "Sorcery:Modification", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_MODIFICATION, PR_INEPT, "- Spell power power depends on your Level and Intelligence.", B_FALSE);
|
|
addskilldesc(SK_SS_MODIFICATION, PR_NOVICE, "Allows you to cast Modification spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_MODIFICATION, PR_BEGINNER, "Allows you to cast Modification spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_MODIFICATION, PR_ADEPT, "Allows you to cast Modification spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_MODIFICATION, PR_SKILLED, "Allows you to cast Modification spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_MODIFICATION, PR_EXPERT, "Allows you to cast Modification spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_MODIFICATION, PR_MASTER, "Allows you to cast Modification spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_SUMMONING, "Sorcery:Summoning", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_SUMMONING, PR_INEPT, "- Spell power power depends on your Level and Intelligence.", B_FALSE);
|
|
addskilldesc(SK_SS_SUMMONING, PR_NOVICE, "Allows you to cast Summoning spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_SUMMONING, PR_BEGINNER, "Allows you to cast Summoning spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_SUMMONING, PR_ADEPT, "Allows you to cast Summoning spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_SUMMONING, PR_SKILLED, "Allows you to cast Summoning spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_SUMMONING, PR_EXPERT, "Allows you to cast Summoning spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_SUMMONING, PR_MASTER, "Allows you to cast Summoning spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_TRANSLOCATION, "Sorcery:Translocation", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_TRANSLOCATION, PR_INEPT, "- Spell power power depends on your Level and Intelligence.", B_FALSE);
|
|
addskilldesc(SK_SS_TRANSLOCATION, PR_NOVICE, "Allows you to cast Translocation spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_TRANSLOCATION, PR_BEGINNER, "Allows you to cast Translocation spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_TRANSLOCATION, PR_ADEPT, "Allows you to cast Translocation spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_TRANSLOCATION, PR_SKILLED, "Allows you to cast Translocation spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_TRANSLOCATION, PR_EXPERT, "Allows you to cast Translocation spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_TRANSLOCATION, PR_MASTER, "Allows you to cast Translocation spells up to level 6.", B_FALSE);
|
|
addskill(SK_SS_WILD, "Sorcery:Wild Magic", "Boosts casting of spells from this school.", 50);
|
|
addskilldesc(SK_SS_WILD, PR_INEPT, "- Spell power power depends on your Level and Intelligence.", B_FALSE);
|
|
addskilldesc(SK_SS_WILD, PR_NOVICE, "Allows you to cast Wild Magic spells up to level 1.", B_FALSE);
|
|
addskilldesc(SK_SS_WILD, PR_BEGINNER, "Allows you to cast Wild Magic spells up to level 2.", B_FALSE);
|
|
addskilldesc(SK_SS_WILD, PR_ADEPT, "Allows you to cast Wild Magic spells up to level 3.", B_FALSE);
|
|
addskilldesc(SK_SS_WILD, PR_SKILLED, "Allows you to cast Wild Magic spells up to level 4.", B_FALSE);
|
|
addskilldesc(SK_SS_WILD, PR_EXPERT, "Allows you to cast Wild Magic spells up to level 5.", B_FALSE);
|
|
addskilldesc(SK_SS_WILD, PR_MASTER, "Allows you to cast Wild Magic spells up to level 6.", B_FALSE);
|
|
|
|
for (sk = firstskill ; sk ; sk = sk->next) {
|
|
if (isloreskill(sk->id)) {
|
|
raceclass_t *rc;
|
|
// find raceclass for this one
|
|
for (rc = firstraceclass ; rc ; rc = rc->next) {
|
|
if (rc->skill == sk->id) {
|
|
break;
|
|
}
|
|
}
|
|
if (rc) {
|
|
char buf[BUFLEN];
|
|
|
|
addskilldesc(sk->id, PR_INEPT, "At each skill level, more information about related creatures will be shown.", B_FALSE);
|
|
addskilldesc(sk->id, PR_INEPT, "Each level also gives +1 damage and +2 accuracy against related creatures.", B_FALSE);
|
|
|
|
snprintf(buf, BUFLEN, "^gYou now know basic information about %s.^n", rc->pluralname);
|
|
addskilldesc(sk->id, PR_NOVICE, buf, B_TRUE);
|
|
snprintf(buf, BUFLEN, "^gYou can now determine how much damage %s will deal.^n", rc->pluralname);
|
|
addskilldesc(sk->id, PR_BEGINNER, buf, B_TRUE);
|
|
snprintf(buf, BUFLEN, "^gYou can now determine how dangerous %s are.^n", rc->pluralname);
|
|
addskilldesc(sk->id, PR_ADEPT, buf, B_TRUE);
|
|
snprintf(buf, BUFLEN, "^gYou can now anticipate how %s will react.^n", rc->pluralname);
|
|
addskilldesc(sk->id, PR_SKILLED, buf, B_TRUE);
|
|
snprintf(buf, BUFLEN, "^gYou now know everything there is to know about %s.^n", rc->pluralname);
|
|
addskilldesc(sk->id, PR_MASTER, buf, B_TRUE);
|
|
}
|
|
}
|
|
|
|
if (isweaponskill(sk->id) || (sk->id == SK_UNARMED)) {
|
|
addskilldesc(sk->id, PR_INEPT, "This skill increases your accuracy and damage when using matching weapons.", B_FALSE);
|
|
if (sk->id == SK_CLUBS) addskilldesc(sk->id, PR_NOVICE, "^gYou gain the 'merciful fighting' ability.^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_BEGINNER, "^g+1 accuracy.^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_BEGINNER, "^gYou gain the 'wild strike' ability.^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_ADEPT, "^g+10% damage bonus.^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_ADEPT, "^g+2 accuracy.^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_ADEPT, "^gYou can now alter your attacks' damage types^n.", B_FALSE);
|
|
addskilldesc(sk->id, PR_SKILLED, "^g+3 accuracy, +20% damage bonus.^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_SKILLED, "^gYou can now block certain attacks with this kind of weapon.^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_EXPERT, "^g+4 accuracy, +30% damage bonus.^n", B_FALSE);
|
|
addskilldesc(sk->id, PR_MASTER, "^g+6 accuracy, +40%% damage bonus, combination strike ability.^n", B_FALSE);
|
|
}
|
|
}
|
|
}
|
|
|
|
void killoption(option_t *w) {
|
|
option_t *nextone, *lastone;
|
|
|
|
// free mem
|
|
if (w->text) free(w->text);
|
|
|
|
// remove from list
|
|
nextone = w->next;
|
|
if (nextone != NULL) {
|
|
nextone->prev = w->prev;
|
|
} else { /* last */
|
|
lastoption = w->prev;
|
|
}
|
|
|
|
if (w->prev == NULL) {
|
|
/* first */
|
|
nextone = w->next;
|
|
free(firstoption);
|
|
firstoption = nextone;
|
|
} else {
|
|
lastone = w->prev;
|
|
free (lastone->next );
|
|
lastone->next = nextone;
|
|
}
|
|
}
|
|
|
|
void killbehaviour(behaviour_t *b) {
|
|
behaviour_t *nextone, *lastone;
|
|
|
|
// free mem
|
|
if (b->name) free(b->name);
|
|
killflagpile(b->flags);
|
|
|
|
// remove from list
|
|
nextone = b->next;
|
|
if (nextone != NULL) {
|
|
nextone->prev = b->prev;
|
|
} else { /* last */
|
|
lastbehaviour = b->prev;
|
|
}
|
|
|
|
if (b->prev == NULL) {
|
|
/* first */
|
|
nextone = b->next;
|
|
free(firstbehaviour);
|
|
firstbehaviour = nextone;
|
|
} else {
|
|
lastone = b->prev;
|
|
free (lastone->next );
|
|
lastone->next = nextone;
|
|
}
|
|
}
|
|
|
|
void killcommand(command_t *cmd) {
|
|
command_t *nextone, *lastone;
|
|
|
|
// free mem
|
|
if (cmd->desc) free(cmd->desc);
|
|
|
|
// remove from list
|
|
nextone = cmd->next;
|
|
if (nextone != NULL) {
|
|
nextone->prev = cmd->prev;
|
|
} else { /* last */
|
|
lastcommand = cmd->prev;
|
|
}
|
|
|
|
if (cmd->prev == NULL) {
|
|
/* first */
|
|
nextone = cmd->next;
|
|
free(firstcommand);
|
|
firstcommand = nextone;
|
|
} else {
|
|
lastone = cmd->prev;
|
|
free (lastone->next );
|
|
lastone->next = nextone;
|
|
}
|
|
}
|
|
|
|
void make_basic_shop(flagpile_t *fp) {
|
|
addflag(fp, F_SHOPMENU, 0, MA_GOTOMENU, SM_PURCHASEITEMS, "a:buy something");
|
|
addflag(fp, F_SHOPMENU, 1, MA_QUIT, NA, "q:leave");
|
|
addflag(fp, F_MAKESNOISE, 33, 3, NA, "a cash register chiming.");
|
|
}
|
|
|
|
void sortcommands(void) {
|
|
command_t *c;
|
|
int donesomething = B_TRUE;
|
|
while (donesomething) {
|
|
donesomething = B_FALSE;
|
|
for (c = firstcommand ; c->next ; c = c->next) {
|
|
// move up one position if required.
|
|
if (c->ch > c->next->ch) {
|
|
command_t *temp;
|
|
|
|
// remember next element
|
|
temp = c->next;
|
|
|
|
// remove this element from list
|
|
if (c->prev == NULL) {
|
|
// first
|
|
firstcommand = c->next;
|
|
c->next->prev = NULL;
|
|
} else {
|
|
// not first
|
|
c->prev->next = c->next;
|
|
c->next->prev = c->prev;
|
|
}
|
|
|
|
// re-add element afterwards
|
|
c->next = temp->next;
|
|
c->prev = temp;
|
|
temp->next = c;
|
|
if (c->next == NULL) {
|
|
lastcommand = c;
|
|
} else {
|
|
c->next->prev = c;
|
|
}
|
|
|
|
// mark as done.
|
|
donesomething = B_TRUE;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|